tin-spa 20.14.99 → 20.14.113

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 (51) hide show
  1. package/core/index.d.ts +3033 -0
  2. package/fesm2022/tin-spa-accounting.module-Cg4vWaJE.mjs +2231 -0
  3. package/fesm2022/tin-spa-accounting.module-Cg4vWaJE.mjs.map +1 -0
  4. package/fesm2022/tin-spa-agent-page.component-DJvMPjCQ.mjs +39 -0
  5. package/fesm2022/tin-spa-agent-page.component-DJvMPjCQ.mjs.map +1 -0
  6. package/fesm2022/tin-spa-agent.component-D0CGGnGZ.mjs +1379 -0
  7. package/fesm2022/tin-spa-agent.component-D0CGGnGZ.mjs.map +1 -0
  8. package/fesm2022/tin-spa-assets.module-qIWNwJ2E.mjs +167 -0
  9. package/fesm2022/tin-spa-assets.module-qIWNwJ2E.mjs.map +1 -0
  10. package/fesm2022/tin-spa-core.mjs +13628 -0
  11. package/fesm2022/tin-spa-core.mjs.map +1 -0
  12. package/fesm2022/tin-spa-general-erp.module-CoYxceLj.mjs +138 -0
  13. package/fesm2022/tin-spa-general-erp.module-CoYxceLj.mjs.map +1 -0
  14. package/fesm2022/tin-spa-hr.module-CKPZ9ZOj.mjs +134 -0
  15. package/fesm2022/tin-spa-hr.module-CKPZ9ZOj.mjs.map +1 -0
  16. package/fesm2022/tin-spa-http.mjs +117 -0
  17. package/fesm2022/tin-spa-http.mjs.map +1 -0
  18. package/fesm2022/tin-spa-inventory.module-DRKAcNau.mjs +338 -0
  19. package/fesm2022/tin-spa-inventory.module-DRKAcNau.mjs.map +1 -0
  20. package/fesm2022/tin-spa-keys.mjs +14 -0
  21. package/fesm2022/tin-spa-keys.mjs.map +1 -0
  22. package/fesm2022/tin-spa-landing.mjs +189 -0
  23. package/fesm2022/tin-spa-landing.mjs.map +1 -0
  24. package/fesm2022/tin-spa-loans.module-BTDmgrWo.mjs +115 -0
  25. package/fesm2022/tin-spa-loans.module-BTDmgrWo.mjs.map +1 -0
  26. package/fesm2022/tin-spa-login.mjs +719 -0
  27. package/fesm2022/tin-spa-login.mjs.map +1 -0
  28. package/fesm2022/tin-spa-manufacturing.module-CHta6oV_.mjs +96 -0
  29. package/fesm2022/tin-spa-manufacturing.module-CHta6oV_.mjs.map +1 -0
  30. package/fesm2022/tin-spa-map.mjs +750 -0
  31. package/fesm2022/tin-spa-map.mjs.map +1 -0
  32. package/fesm2022/tin-spa-payroll.module-CZ_GO1jF.mjs +847 -0
  33. package/fesm2022/tin-spa-payroll.module-CZ_GO1jF.mjs.map +1 -0
  34. package/fesm2022/tin-spa-purchasing.module-NCdwquaF.mjs +161 -0
  35. package/fesm2022/tin-spa-purchasing.module-NCdwquaF.mjs.map +1 -0
  36. package/fesm2022/tin-spa-sales.module-D0uEGJW7.mjs +1346 -0
  37. package/fesm2022/tin-spa-sales.module-D0uEGJW7.mjs.map +1 -0
  38. package/fesm2022/tin-spa-tenancy-erp.module-GwIv8Wbc.mjs +932 -0
  39. package/fesm2022/tin-spa-tenancy-erp.module-GwIv8Wbc.mjs.map +1 -0
  40. package/fesm2022/tin-spa-tin-spa-Cqe5hYTr.mjs +22576 -0
  41. package/fesm2022/tin-spa-tin-spa-Cqe5hYTr.mjs.map +1 -0
  42. package/fesm2022/tin-spa.mjs +2 -42079
  43. package/fesm2022/tin-spa.mjs.map +1 -1
  44. package/http/index.d.ts +16 -0
  45. package/index.d.ts +588 -4687
  46. package/keys/index.d.ts +4 -0
  47. package/landing/index.d.ts +175 -0
  48. package/login/index.d.ts +141 -0
  49. package/map/index.d.ts +148 -0
  50. package/package.json +25 -1
  51. package/src/tin-styles.css +81 -2
@@ -0,0 +1,338 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Component, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/router';
4
+ import { RouterModule } from '@angular/router';
5
+ import { InventoryService } from 'tin-spa/core';
6
+ import { P as PageComponent, T as TilesComponent, C as ChartsComponent, e as SpaAdminModule } from './tin-spa-tin-spa-Cqe5hYTr.mjs';
7
+ import * as i3 from '@angular/material/icon';
8
+ import { CommonModule } from '@angular/common';
9
+
10
+ // Component now uses centralized inventory service for configurations
11
+ class ProductsComponent {
12
+ constructor() {
13
+ this.inventoryService = inject(InventoryService);
14
+ this.pageConfig = {
15
+ title: 'Products',
16
+ tableConfig: this.inventoryService.productsTableConfig
17
+ };
18
+ }
19
+ ngOnInit() { }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ProductsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ProductsComponent, isStandalone: false, selector: "spa-products", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ProductsComponent, decorators: [{
24
+ type: Component,
25
+ args: [{
26
+ selector: 'spa-products',
27
+ standalone: false,
28
+ template: '<spa-page [config]="pageConfig"></spa-page>'
29
+ }]
30
+ }] });
31
+
32
+ // Component now uses centralized inventory service for configurations
33
+ class InventoryItemsComponent {
34
+ constructor() {
35
+ this.inventoryService = inject(InventoryService);
36
+ this.pageConfig = {
37
+ title: 'Inventory Items',
38
+ tableConfig: this.inventoryService.inventoryItemsTableConfig
39
+ };
40
+ }
41
+ ngOnInit() { }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: InventoryItemsComponent, isStandalone: false, selector: "spa-inventory-items", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryItemsComponent, decorators: [{
46
+ type: Component,
47
+ args: [{
48
+ selector: 'spa-inventory-items',
49
+ template: '<spa-page [config]="pageConfig"></spa-page>',
50
+ standalone: false
51
+ }]
52
+ }] });
53
+
54
+ // Component now uses centralized inventory service for configurations
55
+ class RequisitionsComponent {
56
+ constructor() {
57
+ this.inventoryService = inject(InventoryService);
58
+ this.pageConfig = {
59
+ title: 'Requisitions',
60
+ tableConfig: this.inventoryService.requisitionsTableConfig
61
+ };
62
+ }
63
+ ngOnInit() { }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RequisitionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: RequisitionsComponent, isStandalone: false, selector: "spa-requisitions", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RequisitionsComponent, decorators: [{
68
+ type: Component,
69
+ args: [{
70
+ selector: 'spa-requisitions',
71
+ template: '<spa-page [config]="pageConfig"></spa-page>',
72
+ standalone: false
73
+ }]
74
+ }] });
75
+
76
+ // Component now uses centralized inventory service for configurations
77
+ class InventoryAdjustmentsComponent {
78
+ constructor() {
79
+ this.inventoryService = inject(InventoryService);
80
+ this.pageConfig = {
81
+ title: 'Inventory Adjustments',
82
+ tableConfig: this.inventoryService.inventoryAdjustmentsTableConfig
83
+ };
84
+ }
85
+ ngOnInit() { }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryAdjustmentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: InventoryAdjustmentsComponent, isStandalone: false, selector: "spa-inventory-adjustments", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryAdjustmentsComponent, decorators: [{
90
+ type: Component,
91
+ args: [{
92
+ selector: 'spa-inventory-adjustments',
93
+ template: '<spa-page [config]="pageConfig"></spa-page>',
94
+ standalone: false
95
+ }]
96
+ }] });
97
+
98
+ class InventoryReturnsComponent {
99
+ constructor() {
100
+ // Changed: Inject InventoryService and use shared config instead of inline config
101
+ this.inventoryService = inject(InventoryService);
102
+ this.tableConfig = this.inventoryService.inventoryReturnsTableConfig;
103
+ this.pageConfig = {
104
+ title: 'Inventory Returns',
105
+ tableConfig: this.tableConfig
106
+ };
107
+ }
108
+ ngOnInit() { }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryReturnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: InventoryReturnsComponent, isStandalone: false, selector: "spa-inventory-returns", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryReturnsComponent, decorators: [{
113
+ type: Component,
114
+ args: [{
115
+ selector: 'spa-inventory-returns',
116
+ template: '<spa-page [config]="pageConfig"></spa-page>',
117
+ standalone: false
118
+ }]
119
+ }] });
120
+
121
+ // Component now uses centralized inventory service for configurations
122
+ class InventoryTransactionsComponent {
123
+ constructor() {
124
+ this.inventoryService = inject(InventoryService);
125
+ this.pageConfig = {
126
+ title: 'Inventory Transactions',
127
+ tableConfig: this.inventoryService.inventoryTransactionsTableConfig
128
+ };
129
+ }
130
+ ngOnInit() { }
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryTransactionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: InventoryTransactionsComponent, isStandalone: false, selector: "spa-inventory-transactions", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
133
+ }
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryTransactionsComponent, decorators: [{
135
+ type: Component,
136
+ args: [{
137
+ selector: 'spa-inventory-transactions',
138
+ template: '<spa-page [config]="pageConfig"></spa-page>',
139
+ standalone: false
140
+ }]
141
+ }] });
142
+
143
+ // Inventory module dashboard with stock KPI tiles and charts
144
+ class InventoryDashboardComponent {
145
+ constructor() {
146
+ this.summaryTiles = {
147
+ tiles: [
148
+ { name: 'totalProducts', alias: 'Total Products', color: '#2196f3', icon: 'category', style: 'icon', info: 'Total active products' },
149
+ { name: 'lowStockItems', alias: 'Low Stock Items', color: '#f44336', icon: 'warning', style: 'icon', info: 'Products below reorder level' },
150
+ { name: 'totalStockValue', alias: 'Stock Value', color: '#4caf50', icon: 'attach_money', style: 'icon', info: 'Total inventory value' }, // Changed: Removed prefix
151
+ { name: 'itemsInStock', alias: 'Items In Stock', color: '#ff9800', icon: 'inventory', style: 'icon', info: 'Total inventory item count' },
152
+ { name: 'adjustmentsThisMonth', alias: 'Adjustments (MTD)', color: '#9c27b0', icon: 'tune', style: 'icon', info: 'Inventory adjustments this month' },
153
+ ],
154
+ loadAction: { url: 'products/dashboard-summary/x' }, // Changed: Use module-specific CustomCriteria endpoint
155
+ loadInit: true
156
+ };
157
+ // Changed: Chart-style tiles now use loadAction with dataField for dynamic data
158
+ this.chartTiles = {
159
+ tiles: [
160
+ { name: 'stockHealth', alias: 'Stock Health', color: '#4caf50', chart: { type: 'doughnut', gaugeColor: '#4caf50', height: 130, dataField: 'stockHealth' }, footer: 'Items above reorder level', footerIcon: 'health_and_safety' }, // Changed: dataField replaces gaugeValue
161
+ { name: 'movementSpark', alias: 'Stock Movement', color: '#2196f3', chart: { type: 'line', color: '#2196f3', height: 130, dataField: 'movementSpark' }, footer: 'Last 12 months', footerIcon: 'trending_up' }, // Changed: dataField replaces inline data
162
+ { name: 'categorySplit', alias: 'By Category', color: '#ff9800', chart: { type: 'pie', colors: ['#2196f3', '#4caf50', '#ff9800', '#f44336', '#9c27b0'], height: 130, dataField: 'categorySplit' }, footer: 'Value distribution', footerIcon: 'donut_large' }, // Changed: dataField replaces inline data
163
+ ],
164
+ loadAction: { url: 'products/dashboard-chart-tiles/x' }, // Changed: Load chart tile data from API
165
+ loadInit: true
166
+ };
167
+ this.chartConfig = {
168
+ charts: [
169
+ { name: 'stockByCategory', title: 'Stock Levels by Category', type: 'bar', height: '300px', colors: ['#2196f3', '#4caf50', '#ff9800', '#f44336', '#9c27b0', '#795548', '#607d8b'] },
170
+ { name: 'lowStockProducts', title: 'Low Stock Products', type: 'bar', height: '300px', colors: ['#f44336'] },
171
+ { name: 'valueByCategory', title: 'Value by Category', type: 'pie', height: '300px', colors: ['#2196f3', '#4caf50', '#ff9800', '#f44336', '#9c27b0', '#795548', '#607d8b'] },
172
+ { name: 'movementTrend', title: 'Stock Movement Trend', type: 'line', height: '300px', showPoints: true, tension: 0.4, colors: ['#4caf50', '#f44336', '#2196f3'], showLegend: true }, // Changed: showLegend for line chart
173
+ ],
174
+ loadAction: { url: 'products/dashboard-charts/x' }, // Changed: Use module-specific CustomCriteria endpoint
175
+ loadInit: true,
176
+ columns: 2
177
+ };
178
+ }
179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: InventoryDashboardComponent, isStandalone: false, selector: "spa-inventory-dashboard", ngImport: i0, template: `
181
+ <div class="dashboard-container">
182
+ <h4 class="dashboard-title"><mat-icon>inventory_2</mat-icon> Inventory Dashboard</h4>
183
+ <spa-tiles [config]="summaryTiles"></spa-tiles>
184
+ <!-- Changed: Spacer div ensures margin between summary and chart tiles -->
185
+ <div style="margin-top: 16px;"></div>
186
+ <spa-tiles [config]="chartTiles"></spa-tiles>
187
+ <spa-charts [config]="chartConfig"></spa-charts>
188
+ </div>
189
+ `, isInline: true, styles: [".dashboard-container{padding:16px}.dashboard-title{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:#333;font-weight:500}\n"], dependencies: [{ kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: TilesComponent, selector: "spa-tiles", inputs: ["config", "lastSearch", "data", "reload"], outputs: ["tileActionSelected", "tileClick", "tileUnClick"] }, { kind: "component", type: ChartsComponent, selector: "spa-charts", inputs: ["config", "data", "reload"] }] }); }
190
+ }
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryDashboardComponent, decorators: [{
192
+ type: Component,
193
+ args: [{ selector: 'spa-inventory-dashboard', template: `
194
+ <div class="dashboard-container">
195
+ <h4 class="dashboard-title"><mat-icon>inventory_2</mat-icon> Inventory Dashboard</h4>
196
+ <spa-tiles [config]="summaryTiles"></spa-tiles>
197
+ <!-- Changed: Spacer div ensures margin between summary and chart tiles -->
198
+ <div style="margin-top: 16px;"></div>
199
+ <spa-tiles [config]="chartTiles"></spa-tiles>
200
+ <spa-charts [config]="chartConfig"></spa-charts>
201
+ </div>
202
+ `, standalone: false, styles: [".dashboard-container{padding:16px}.dashboard-title{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:#333;font-weight:500}\n"] }]
203
+ }] });
204
+
205
+ // Component to display inventory stock grouped by product
206
+ class InventoryStockComponent {
207
+ constructor() {
208
+ this.inventoryService = inject(InventoryService);
209
+ this.pageConfig = {
210
+ title: 'Inventory Stock',
211
+ tableConfig: this.inventoryService.inventoryStockTableConfig
212
+ };
213
+ }
214
+ ngOnInit() { }
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryStockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
216
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: InventoryStockComponent, isStandalone: false, selector: "spa-inventory-stock", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
217
+ }
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryStockComponent, decorators: [{
219
+ type: Component,
220
+ args: [{
221
+ selector: 'spa-inventory-stock',
222
+ template: '<spa-page [config]="pageConfig"></spa-page>',
223
+ standalone: false
224
+ }]
225
+ }] });
226
+
227
+ // Component for managing bundle/combo products
228
+ class BundleProductsComponent {
229
+ constructor() {
230
+ this.inventoryService = inject(InventoryService);
231
+ this.pageConfig = {
232
+ title: 'Bundle Products',
233
+ tableConfig: this.inventoryService.bundleProductsTableConfig
234
+ };
235
+ }
236
+ ngOnInit() { }
237
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: BundleProductsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
238
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: BundleProductsComponent, isStandalone: false, selector: "spa-bundle-products", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
239
+ }
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: BundleProductsComponent, decorators: [{
241
+ type: Component,
242
+ args: [{
243
+ selector: 'spa-bundle-products',
244
+ standalone: false,
245
+ template: '<spa-page [config]="pageConfig"></spa-page>'
246
+ }]
247
+ }] });
248
+
249
+ // ServiceItems component for managing service items
250
+ class ServiceItemsComponent {
251
+ constructor() {
252
+ this.inventoryService = inject(InventoryService);
253
+ this.pageConfig = {
254
+ title: 'Services',
255
+ tableConfig: this.inventoryService.serviceItemsTableConfig
256
+ };
257
+ }
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ServiceItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
259
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ServiceItemsComponent, isStandalone: false, selector: "spa-service-items", ngImport: i0, template: '<spa-page [config]="pageConfig"></spa-page>', isInline: true, dependencies: [{ kind: "component", type: PageComponent, selector: "spa-page", inputs: ["config"], outputs: ["searchModeActivated", "searchModeDeactivated", "refreshClick", "actionClick", "actionResponse", "inputChange", "createClick", "searchClick", "dataLoad", "titleActionChange"] }] }); }
260
+ }
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ServiceItemsComponent, decorators: [{
262
+ type: Component,
263
+ args: [{
264
+ selector: 'spa-service-items',
265
+ standalone: false,
266
+ template: '<spa-page [config]="pageConfig"></spa-page>'
267
+ }]
268
+ }] });
269
+
270
+ // Changed: Exported routes array for use by SpaHomeRoutingModule
271
+ const INVENTORY_ROUTES = [
272
+ { path: "products", component: ProductsComponent },
273
+ { path: "service-items", component: ServiceItemsComponent },
274
+ { path: "items", component: InventoryItemsComponent },
275
+ { path: "requisitions", component: RequisitionsComponent },
276
+ { path: "adjustments", component: InventoryAdjustmentsComponent },
277
+ { path: "returns", component: InventoryReturnsComponent },
278
+ { path: "transactions", component: InventoryTransactionsComponent },
279
+ { path: "dashboard", component: InventoryDashboardComponent },
280
+ { path: "stock", component: InventoryStockComponent },
281
+ { path: "bundle-products", component: BundleProductsComponent }
282
+ ];
283
+ class InventoryRoutingModule {
284
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
285
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: InventoryRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
286
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryRoutingModule, imports: [RouterModule.forChild(INVENTORY_ROUTES), RouterModule] }); }
287
+ }
288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryRoutingModule, decorators: [{
289
+ type: NgModule,
290
+ args: [{
291
+ imports: [RouterModule.forChild(INVENTORY_ROUTES)],
292
+ exports: [RouterModule]
293
+ }]
294
+ }] });
295
+
296
+ class InventoryModule {
297
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
298
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: InventoryModule, declarations: [ProductsComponent,
299
+ InventoryItemsComponent,
300
+ RequisitionsComponent,
301
+ InventoryAdjustmentsComponent,
302
+ InventoryReturnsComponent,
303
+ InventoryTransactionsComponent,
304
+ InventoryDashboardComponent,
305
+ InventoryStockComponent,
306
+ BundleProductsComponent,
307
+ ServiceItemsComponent], imports: [InventoryRoutingModule,
308
+ CommonModule,
309
+ SpaAdminModule] }); }
310
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryModule, imports: [InventoryRoutingModule,
311
+ CommonModule,
312
+ SpaAdminModule] }); }
313
+ }
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: InventoryModule, decorators: [{
315
+ type: NgModule,
316
+ args: [{
317
+ declarations: [
318
+ ProductsComponent,
319
+ InventoryItemsComponent,
320
+ RequisitionsComponent,
321
+ InventoryAdjustmentsComponent,
322
+ InventoryReturnsComponent,
323
+ InventoryTransactionsComponent,
324
+ InventoryDashboardComponent,
325
+ InventoryStockComponent,
326
+ BundleProductsComponent,
327
+ ServiceItemsComponent
328
+ ],
329
+ imports: [
330
+ InventoryRoutingModule,
331
+ CommonModule,
332
+ SpaAdminModule
333
+ ]
334
+ }]
335
+ }] });
336
+
337
+ export { InventoryModule };
338
+ //# sourceMappingURL=tin-spa-inventory.module-DRKAcNau.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tin-spa-inventory.module-DRKAcNau.mjs","sources":["../../../projects/tin-spa/src/lib/pages/inventory/products/products.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/inventory-items/inventory-items.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/requisitions/requisitions.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/inventory-adjustments/inventory-adjustments.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/inventory-returns/inventory-returns.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/inventory-transactions/inventory-transactions.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/inventory-dashboard/inventory-dashboard.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/inventory-stock/inventory-stock.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/bundle-products/bundle-products.component.ts","../../../projects/tin-spa/src/lib/pages/inventory/service-items/service-items.component.ts","../../../projects/tin-spa/src/lib/modules/inventory/inventory-routing.module.ts","../../../projects/tin-spa/src/lib/modules/inventory/inventory.module.ts"],"sourcesContent":["import { Component, inject, OnInit } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n// Component now uses centralized inventory service for configurations\n@Component({\n selector: 'spa-products',\n standalone: false,\n template: '<spa-page [config]=\"pageConfig\"></spa-page>'\n})\nexport class ProductsComponent implements OnInit {\n\n private inventoryService = inject(InventoryService);\n\n ngOnInit(): void { }\n\n pageConfig: PageConfig = {\n title: 'Products',\n tableConfig: this.inventoryService.productsTableConfig\n };\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n// Component now uses centralized inventory service for configurations\n@Component({\n selector: 'spa-inventory-items',\n template: '<spa-page [config]=\"pageConfig\"></spa-page>',\n standalone: false\n})\nexport class InventoryItemsComponent implements OnInit {\n\n private inventoryService = inject(InventoryService);\n\n ngOnInit(): void { }\n\n pageConfig: PageConfig = {\n title: 'Inventory Items',\n tableConfig: this.inventoryService.inventoryItemsTableConfig\n };\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n// Component now uses centralized inventory service for configurations\n@Component({\n selector: 'spa-requisitions',\n template: '<spa-page [config]=\"pageConfig\"></spa-page>',\n standalone: false\n})\nexport class RequisitionsComponent implements OnInit {\n\n private inventoryService = inject(InventoryService);\n\n ngOnInit(): void { }\n\n pageConfig: PageConfig = {\n title: 'Requisitions',\n tableConfig: this.inventoryService.requisitionsTableConfig\n };\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n// Component now uses centralized inventory service for configurations\n@Component({\n selector: 'spa-inventory-adjustments',\n template: '<spa-page [config]=\"pageConfig\"></spa-page>',\n standalone: false\n})\nexport class InventoryAdjustmentsComponent implements OnInit {\n\n private inventoryService = inject(InventoryService);\n\n ngOnInit(): void { }\n\n pageConfig: PageConfig = {\n title: 'Inventory Adjustments',\n tableConfig: this.inventoryService.inventoryAdjustmentsTableConfig\n };\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n@Component({\n selector: 'spa-inventory-returns',\n template: '<spa-page [config]=\"pageConfig\"></spa-page>',\n standalone: false\n})\nexport class InventoryReturnsComponent implements OnInit {\n // Changed: Inject InventoryService and use shared config instead of inline config\n private inventoryService = inject(InventoryService);\n\n tableConfig = this.inventoryService.inventoryReturnsTableConfig;\n\n pageConfig: PageConfig = {\n title: 'Inventory Returns',\n tableConfig: this.tableConfig\n };\n\n ngOnInit(): void { }\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n// Component now uses centralized inventory service for configurations\n@Component({\n selector: 'spa-inventory-transactions',\n template: '<spa-page [config]=\"pageConfig\"></spa-page>',\n standalone: false\n})\nexport class InventoryTransactionsComponent implements OnInit {\n\n private inventoryService = inject(InventoryService);\n\n ngOnInit(): void { }\n\n pageConfig: PageConfig = {\n title: 'Inventory Transactions',\n tableConfig: this.inventoryService.inventoryTransactionsTableConfig\n };\n}\n","import { Component } from '@angular/core';\nimport { TileConfig, ChartConfig } from 'tin-spa/core';\n\n// Inventory module dashboard with stock KPI tiles and charts\n@Component({\n selector: 'spa-inventory-dashboard',\n template: `\n <div class=\"dashboard-container\">\n <h4 class=\"dashboard-title\"><mat-icon>inventory_2</mat-icon> Inventory Dashboard</h4>\n <spa-tiles [config]=\"summaryTiles\"></spa-tiles>\n <!-- Changed: Spacer div ensures margin between summary and chart tiles -->\n <div style=\"margin-top: 16px;\"></div>\n <spa-tiles [config]=\"chartTiles\"></spa-tiles>\n <spa-charts [config]=\"chartConfig\"></spa-charts>\n </div>\n `,\n styles: [`\n .dashboard-container { padding: 16px; }\n .dashboard-title { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; color: #333; font-weight: 500; }\n `],\n standalone: false\n})\nexport class InventoryDashboardComponent {\n summaryTiles: TileConfig = {\n tiles: [\n { name: 'totalProducts', alias: 'Total Products', color: '#2196f3', icon: 'category', style: 'icon', info: 'Total active products' },\n { name: 'lowStockItems', alias: 'Low Stock Items', color: '#f44336', icon: 'warning', style: 'icon', info: 'Products below reorder level' },\n { name: 'totalStockValue', alias: 'Stock Value', color: '#4caf50', icon: 'attach_money', style: 'icon', info: 'Total inventory value' }, // Changed: Removed prefix\n { name: 'itemsInStock', alias: 'Items In Stock', color: '#ff9800', icon: 'inventory', style: 'icon', info: 'Total inventory item count' },\n { name: 'adjustmentsThisMonth', alias: 'Adjustments (MTD)', color: '#9c27b0', icon: 'tune', style: 'icon', info: 'Inventory adjustments this month' },\n ],\n loadAction: { url: 'products/dashboard-summary/x' }, // Changed: Use module-specific CustomCriteria endpoint\n loadInit: true\n };\n\n // Changed: Chart-style tiles now use loadAction with dataField for dynamic data\n chartTiles: TileConfig = {\n tiles: [\n { name: 'stockHealth', alias: 'Stock Health', color: '#4caf50', chart: { type: 'doughnut', gaugeColor: '#4caf50', height: 130, dataField: 'stockHealth' }, footer: 'Items above reorder level', footerIcon: 'health_and_safety' }, // Changed: dataField replaces gaugeValue\n { name: 'movementSpark', alias: 'Stock Movement', color: '#2196f3', chart: { type: 'line', color: '#2196f3', height: 130, dataField: 'movementSpark' }, footer: 'Last 12 months', footerIcon: 'trending_up' }, // Changed: dataField replaces inline data\n { name: 'categorySplit', alias: 'By Category', color: '#ff9800', chart: { type: 'pie', colors: ['#2196f3', '#4caf50', '#ff9800', '#f44336', '#9c27b0'], height: 130, dataField: 'categorySplit' }, footer: 'Value distribution', footerIcon: 'donut_large' }, // Changed: dataField replaces inline data\n ],\n loadAction: { url: 'products/dashboard-chart-tiles/x' }, // Changed: Load chart tile data from API\n loadInit: true\n };\n\n chartConfig: ChartConfig = {\n charts: [\n { name: 'stockByCategory', title: 'Stock Levels by Category', type: 'bar', height: '300px', colors: ['#2196f3', '#4caf50', '#ff9800', '#f44336', '#9c27b0', '#795548', '#607d8b'] },\n { name: 'lowStockProducts', title: 'Low Stock Products', type: 'bar', height: '300px', colors: ['#f44336'] },\n { name: 'valueByCategory', title: 'Value by Category', type: 'pie', height: '300px', colors: ['#2196f3', '#4caf50', '#ff9800', '#f44336', '#9c27b0', '#795548', '#607d8b'] },\n { name: 'movementTrend', title: 'Stock Movement Trend', type: 'line', height: '300px', showPoints: true, tension: 0.4, colors: ['#4caf50', '#f44336', '#2196f3'], showLegend: true }, // Changed: showLegend for line chart\n ],\n loadAction: { url: 'products/dashboard-charts/x' }, // Changed: Use module-specific CustomCriteria endpoint\n loadInit: true,\n columns: 2\n };\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n// Component to display inventory stock grouped by product\n@Component({\n selector: 'spa-inventory-stock',\n template: '<spa-page [config]=\"pageConfig\"></spa-page>',\n standalone: false\n})\nexport class InventoryStockComponent implements OnInit {\n\n private inventoryService = inject(InventoryService);\n\n ngOnInit(): void { }\n\n pageConfig: PageConfig = {\n title: 'Inventory Stock',\n tableConfig: this.inventoryService.inventoryStockTableConfig\n };\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n// Component for managing bundle/combo products\n@Component({\n selector: 'spa-bundle-products',\n standalone: false,\n template: '<spa-page [config]=\"pageConfig\"></spa-page>'\n})\nexport class BundleProductsComponent implements OnInit {\n\n private inventoryService = inject(InventoryService);\n\n ngOnInit(): void { }\n\n pageConfig: PageConfig = {\n title: 'Bundle Products',\n tableConfig: this.inventoryService.bundleProductsTableConfig\n };\n}\n","import { Component, inject } from '@angular/core';\nimport { PageConfig } from 'tin-spa/core';\nimport { InventoryService } from 'tin-spa/core';\n\n// ServiceItems component for managing service items\n@Component({\n selector: 'spa-service-items',\n standalone: false,\n template: '<spa-page [config]=\"pageConfig\"></spa-page>'\n})\nexport class ServiceItemsComponent {\n private inventoryService = inject(InventoryService);\n\n pageConfig: PageConfig = {\n title: 'Services',\n tableConfig: this.inventoryService.serviceItemsTableConfig\n };\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ProductsComponent } from '../../pages/inventory/products/products.component';\nimport { InventoryItemsComponent } from '../../pages/inventory/inventory-items/inventory-items.component';\nimport { RequisitionsComponent } from '../../pages/inventory/requisitions/requisitions.component';\nimport { InventoryAdjustmentsComponent } from '../../pages/inventory/inventory-adjustments/inventory-adjustments.component';\nimport { InventoryReturnsComponent } from '../../pages/inventory/inventory-returns/inventory-returns.component';\nimport { InventoryTransactionsComponent } from '../../pages/inventory/inventory-transactions/inventory-transactions.component';\nimport { InventoryDashboardComponent } from '../../pages/inventory/inventory-dashboard/inventory-dashboard.component';\nimport { InventoryStockComponent } from '../../pages/inventory/inventory-stock/inventory-stock.component';\nimport { BundleProductsComponent } from '../../pages/inventory/bundle-products/bundle-products.component';\nimport { ServiceItemsComponent } from '../../pages/inventory/service-items/service-items.component';\n\n// Changed: Exported routes array for use by SpaHomeRoutingModule\nexport const INVENTORY_ROUTES: Routes = [\n { path: \"products\", component: ProductsComponent },\n { path: \"service-items\", component: ServiceItemsComponent },\n { path: \"items\", component: InventoryItemsComponent },\n { path: \"requisitions\", component: RequisitionsComponent },\n { path: \"adjustments\", component: InventoryAdjustmentsComponent },\n { path: \"returns\", component: InventoryReturnsComponent },\n { path: \"transactions\", component: InventoryTransactionsComponent },\n { path: \"dashboard\", component: InventoryDashboardComponent },\n { path: \"stock\", component: InventoryStockComponent },\n { path: \"bundle-products\", component: BundleProductsComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(INVENTORY_ROUTES)],\n exports: [RouterModule]\n})\nexport class InventoryRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { InventoryRoutingModule } from './inventory-routing.module'; // Added (S10-part-1): this domain is now reached by loadChildren, so it carries its own RouterModule.forChild table instead of contributing routes to the eager parent\nimport { CommonModule } from '@angular/common';\nimport { SpaAdminModule } from '../spa-admin.module';\nimport { ProductsComponent } from '../../pages/inventory/products/products.component';\nimport { InventoryItemsComponent } from '../../pages/inventory/inventory-items/inventory-items.component';\nimport { RequisitionsComponent } from '../../pages/inventory/requisitions/requisitions.component';\nimport { InventoryAdjustmentsComponent } from '../../pages/inventory/inventory-adjustments/inventory-adjustments.component';\nimport { InventoryReturnsComponent } from '../../pages/inventory/inventory-returns/inventory-returns.component';\nimport { InventoryTransactionsComponent } from '../../pages/inventory/inventory-transactions/inventory-transactions.component';\nimport { InventoryDashboardComponent } from '../../pages/inventory/inventory-dashboard/inventory-dashboard.component';\nimport { InventoryStockComponent } from '../../pages/inventory/inventory-stock/inventory-stock.component';\nimport { BundleProductsComponent } from '../../pages/inventory/bundle-products/bundle-products.component';\nimport { ServiceItemsComponent } from '../../pages/inventory/service-items/service-items.component';\n\n@NgModule({\n declarations: [\n ProductsComponent,\n InventoryItemsComponent,\n RequisitionsComponent,\n InventoryAdjustmentsComponent,\n InventoryReturnsComponent,\n InventoryTransactionsComponent,\n InventoryDashboardComponent,\n InventoryStockComponent,\n BundleProductsComponent,\n ServiceItemsComponent\n ],\n imports: [\n InventoryRoutingModule,\n CommonModule,\n SpaAdminModule\n ]\n})\nexport class InventoryModule { }\n"],"names":["i1.PageComponent","i1","i2.TilesComponent","i3.ChartsComponent"],"mappings":";;;;;;;;;AAIA;MAMa,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAInD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACpC;AACF,IAAA;AANC,IAAA,QAAQ,KAAW;+GAJR,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,yEAFlB,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE5C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE;AACX,iBAAA;;;ACLD;MAMa,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAInD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACpC;AACF,IAAA;AANC,IAAA,QAAQ,KAAW;+GAJR,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,gFAHxB,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG5C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACLD;MAMa,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAInD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACpC;AACF,IAAA;AANC,IAAA,QAAQ,KAAW;+GAJR,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,6EAHtB,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG5C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACLD;MAMa,6BAA6B,CAAA;AAL1C,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAInD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACpC;AACF,IAAA;AANC,IAAA,QAAQ,KAAW;+GAJR,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,sFAH9B,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG5C,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCAY,yBAAyB,CAAA;AALtC,IAAA,WAAA,GAAA;;AAOU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEnD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,2BAA2B;AAE/D,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,IAAI,CAAC;SACnB;AAGF,IAAA;AADC,IAAA,QAAQ,KAAW;+GAXR,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,kFAH1B,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG5C,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACJD;MAMa,8BAA8B,CAAA;AAL3C,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAInD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACpC;AACF,IAAA;AANC,IAAA,QAAQ,KAAW;+GAJR,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,uFAH/B,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG5C,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACND;MAmBa,2BAA2B,CAAA;AAlBxC,IAAA,WAAA,GAAA;AAmBE,QAAA,IAAA,CAAA,YAAY,GAAe;AACzB,YAAA,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE;gBACpI,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE;gBAC3I,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE;gBACvI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE;gBACzI,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,EAAE;AACtJ,aAAA;AACD,YAAA,UAAU,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE;AACnD,YAAA,QAAQ,EAAE;SACX;;AAGD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE;AACL,gBAAA,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,UAAU,EAAE,mBAAmB,EAAE;AACjO,gBAAA,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE;gBAC7M,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,aAAa,EAAE;AAC7P,aAAA;AACD,YAAA,UAAU,EAAE,EAAE,GAAG,EAAE,kCAAkC,EAAE;AACvD,YAAA,QAAQ,EAAE;SACX;AAED,QAAA,IAAA,CAAA,WAAW,GAAgB;AACzB,YAAA,MAAM,EAAE;AACN,gBAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;gBACnL,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;AAC5G,gBAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;AAC5K,gBAAA,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;AACrL,aAAA;AACD,YAAA,UAAU,EAAE,EAAE,GAAG,EAAE,6BAA6B,EAAE;AAClD,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,OAAO,EAAE;SACV;AACF,IAAA;+GAnCY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhB5B;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAOU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAlBvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,QAAA,EACzB;;;;;;;;;AAST,EAAA,CAAA,EAAA,UAAA,EAKW,KAAK,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA;;;AChBnB;MAMa,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAInD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACpC;AACF,IAAA;AANC,IAAA,QAAQ,KAAW;+GAJR,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,gFAHxB,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG5C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACLD;MAMa,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAInD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACpC;AACF,IAAA;AANC,IAAA,QAAQ,KAAW;+GAJR,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,gFAFxB,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE5C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE;AACX,iBAAA;;;ACLD;MAMa,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;AAMU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEnD,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACpC;AACF,IAAA;+GAPY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,8EAFtB,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE5C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE;AACX,iBAAA;;;ACID;AACO,MAAM,gBAAgB,GAAW;AACtC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE;AAClD,IAAA,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,qBAAqB,EAAE;AAC3D,IAAA,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE;AACrD,IAAA,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,qBAAqB,EAAE;AAC1D,IAAA,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,6BAA6B,EAAE;AACjE,IAAA,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,yBAAyB,EAAE;AACzD,IAAA,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,8BAA8B,EAAE;AACnE,IAAA,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,2BAA2B,EAAE;AAC7D,IAAA,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE;AACrD,IAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB;CAC9D;MAMY,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,wCAFvB,YAAY,CAAA,EAAA,CAAA,CAAA;gHAEX,sBAAsB,EAAA,OAAA,EAAA,CAHvB,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACvC,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAEX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;oBAClD,OAAO,EAAE,CAAC,YAAY;AACvB,iBAAA;;;MCIY,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAjBxB,iBAAiB;YACjB,uBAAuB;YACvB,qBAAqB;YACrB,6BAA6B;YAC7B,yBAAyB;YACzB,8BAA8B;YAC9B,2BAA2B;YAC3B,uBAAuB;YACvB,uBAAuB;AACvB,YAAA,qBAAqB,aAGrB,sBAAsB;YACtB,YAAY;YACZ,cAAc,CAAA,EAAA,CAAA,CAAA;AAGL,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YALxB,sBAAsB;YACtB,YAAY;YACZ,cAAc,CAAA,EAAA,CAAA,CAAA;;4FAGL,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,uBAAuB;wBACvB,qBAAqB;wBACrB,6BAA6B;wBAC7B,yBAAyB;wBACzB,8BAA8B;wBAC9B,2BAA2B;wBAC3B,uBAAuB;wBACvB,uBAAuB;wBACvB;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,sBAAsB;wBACtB,YAAY;wBACZ;AACD;AACF,iBAAA;;;;;"}
@@ -0,0 +1,14 @@
1
+ // The auth storage keys. SINGLE SOURCE OF TRUTH — the primary's Constants and the landing entry point's
2
+ // anonymous-visitor probe both read them from here, so they cannot drift.
3
+ const AUTH_TOKEN_KEY = 'd';
4
+ const AUTH_REFRESH_TOKEN_KEY = 'g';
5
+
6
+ // tin-spa/keys — dependency-free constants shared by the PRIMARY and by tin-spa/landing.
7
+ // It imports NOTHING, so both may depend on it without forming a cycle.
8
+
9
+ /**
10
+ * Generated bundle index. Do not edit.
11
+ */
12
+
13
+ export { AUTH_REFRESH_TOKEN_KEY, AUTH_TOKEN_KEY };
14
+ //# sourceMappingURL=tin-spa-keys.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tin-spa-keys.mjs","sources":["../../../projects/tin-spa/keys/src/lib/auth-keys.ts","../../../projects/tin-spa/keys/src/public-api.ts","../../../projects/tin-spa/keys/src/tin-spa-keys.ts"],"sourcesContent":["// The auth storage keys. SINGLE SOURCE OF TRUTH — the primary's Constants and the landing entry point's\n// anonymous-visitor probe both read them from here, so they cannot drift.\nexport const AUTH_TOKEN_KEY = 'd';\nexport const AUTH_REFRESH_TOKEN_KEY = 'g';\n","// tin-spa/keys — dependency-free constants shared by the PRIMARY and by tin-spa/landing.\n// It imports NOTHING, so both may depend on it without forming a cycle.\nexport * from './lib/auth-keys';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;AACA;AACO,MAAM,cAAc,GAAG;AACvB,MAAM,sBAAsB,GAAG;;ACHtC;AACA;;ACDA;;AAEG;;;;"}