@burdenoff/microfe-timecampus 2026.703.7 → 2026.707.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 (66) hide show
  1. package/dist/generated/wspace-operations.js +1023 -1514
  2. package/dist/generated/wspace-operations.js.map +1 -1
  3. package/dist/generated/wspace-types.js +12 -18
  4. package/dist/generated/wspace-types.js.map +1 -1
  5. package/dist/index.js +4 -4
  6. package/dist/timecampus/TimeCampusRoot.js +82 -150
  7. package/dist/timecampus/TimeCampusRoot.js.map +1 -1
  8. package/dist/timecampus/TimeCampusRoutes.js +96 -164
  9. package/dist/timecampus/TimeCampusRoutes.js.map +1 -1
  10. package/dist/timecampus/components/index.js +2 -2
  11. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.js +7 -7
  12. package/dist/timecampus/pages/client-portal/ClientPortalPage.js +6 -6
  13. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.js +8 -8
  14. package/dist/timecampus/pages/geofencing/GeofencingPage.js +6 -6
  15. package/dist/timecampus/pages/lifetime/FiniteLifePage.js +91 -91
  16. package/dist/timecampus/pages/lifetime/FiniteLifePage.js.map +1 -1
  17. package/dist/timecampus/pages/lifetime/LifeBalancePage.js +18 -18
  18. package/dist/timecampus/pages/lifetime/LifeTimelinePage.js +7 -7
  19. package/dist/timecampus/pages/lifetime/ValuesGoalsPage.js +1 -1
  20. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.js +6 -6
  21. package/dist/timecampus/pages/projects/ProjectDetailPage.js +7 -7
  22. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.js +212 -212
  23. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.js.map +1 -1
  24. package/dist/timecampus/pages/team/TeamMembersPage.js +4 -4
  25. package/dist/timecampus/pages/time/TimeTrackingPage.js +143 -143
  26. package/dist/timecampus/pages/time/TimeTrackingPage.js.map +1 -1
  27. package/dist/timecampus/pages/time-approval/TimeApprovalPage.js +1 -1
  28. package/dist/timecampus/pages/timeline/TimelinePage.js +1 -1
  29. package/dist/timecampus/pages/timeline/TimelinePage.js.map +1 -1
  30. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.js +87 -93
  31. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.js.map +1 -1
  32. package/package.json +1 -1
  33. package/dist/timecampus/pages/applets/AppletStorePage.js +0 -167
  34. package/dist/timecampus/pages/applets/AppletStorePage.js.map +0 -1
  35. package/dist/timecampus/pages/applets/InstalledAppletsPage.js +0 -162
  36. package/dist/timecampus/pages/applets/InstalledAppletsPage.js.map +0 -1
  37. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.js +0 -133
  38. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.js.map +0 -1
  39. package/dist/timecampus/pages/channels/ChannelsPage.js +0 -418
  40. package/dist/timecampus/pages/channels/ChannelsPage.js.map +0 -1
  41. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.js +0 -142
  42. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.js.map +0 -1
  43. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.js +0 -119
  44. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.js.map +0 -1
  45. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.js +0 -110
  46. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.js.map +0 -1
  47. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.js +0 -83
  48. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.js.map +0 -1
  49. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.js +0 -198
  50. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.js.map +0 -1
  51. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.js +0 -124
  52. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.js.map +0 -1
  53. package/dist/timecampus/pages/templates/TemplateApplicationPage.js +0 -88
  54. package/dist/timecampus/pages/templates/TemplateApplicationPage.js.map +0 -1
  55. package/dist/timecampus/pages/templates/TemplateDetailPage.js +0 -135
  56. package/dist/timecampus/pages/templates/TemplateDetailPage.js.map +0 -1
  57. package/dist/timecampus/pages/templates/TemplatesPage.js +0 -191
  58. package/dist/timecampus/pages/templates/TemplatesPage.js.map +0 -1
  59. package/dist/timecampus/pages/widgets/WidgetDetailPage.js +0 -196
  60. package/dist/timecampus/pages/widgets/WidgetDetailPage.js.map +0 -1
  61. package/dist/timecampus/pages/widgets/WidgetsPage.js +0 -297
  62. package/dist/timecampus/pages/widgets/WidgetsPage.js.map +0 -1
  63. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.js +0 -133
  64. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.js.map +0 -1
  65. package/dist/timecampus/pages/workflows/WorkflowsPage.js +0 -311
  66. package/dist/timecampus/pages/workflows/WorkflowsPage.js.map +0 -1
@@ -2,38 +2,38 @@ import { TimeCampusProvider as e } from "./providers/TimeCampusProvider.js";
2
2
  import { TimeCampusRoutes as t } from "./TimeCampusRoutes.js";
3
3
  import { ErrorBoundary as n } from "./components/ErrorBoundary.js";
4
4
  import { useEffect as r } from "react";
5
- import { Activity as i, Brain as a, Building2 as o, CalendarDays as s, CalendarRange as c, CheckCircle as l, Clock as u, Factory as d, FolderOpen as f, GitBranch as p, Heart as m, LayoutDashboard as h, LayoutGrid as g, Mail as _, MapPin as v, Monitor as y, Puzzle as b, Radio as x, Receipt as S, Sparkles as C, Timer as w, TrendingUp as T, Users as E } from "lucide-react";
6
- import { jsx as D } from "react/jsx-runtime";
7
- import { FeatureFlagProvider as O } from "@burdenoff/fe-libs/shared/feature-flags";
5
+ import { Activity as i, Brain as a, Building2 as o, CalendarDays as s, CalendarRange as c, CheckCircle as l, Clock as u, FolderOpen as d, Heart as f, LayoutDashboard as p, Mail as m, MapPin as h, Monitor as g, Receipt as _, Timer as v, TrendingUp as y, Users as b } from "lucide-react";
6
+ import { jsx as x } from "react/jsx-runtime";
7
+ import { FeatureFlagProvider as S } from "@burdenoff/fe-libs/shared/feature-flags";
8
8
  //#region src/timecampus/TimeCampusRoot.tsx
9
- var k = (k) => {
10
- let { registerNavItems: A, registerFooterItems: j, basePath: M = "/" } = k, N = (e, t) => (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : `/${t}`);
9
+ var C = (C) => {
10
+ let { registerNavItems: w, registerFooterItems: T, basePath: E = "/" } = C, D = (e, t) => (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : `/${t}`);
11
11
  return r(() => {
12
- if (A) return A([
12
+ if (w) return w([
13
13
  {
14
14
  id: "timecampus-dashboard",
15
15
  label: "Dashboard",
16
- path: N(M, ""),
17
- icon: /* @__PURE__ */ D(h, { size: 20 }),
16
+ path: D(E, ""),
17
+ icon: /* @__PURE__ */ x(p, { size: 20 }),
18
18
  order: 1,
19
19
  group: "main",
20
20
  children: [
21
21
  {
22
22
  id: "timecampus-dashboard-overview",
23
23
  label: "Overview",
24
- path: N(M, ""),
24
+ path: D(E, ""),
25
25
  order: 1
26
26
  },
27
27
  {
28
28
  id: "timecampus-dashboard-analytics",
29
29
  label: "Analytics",
30
- path: N(M, "analytics"),
30
+ path: D(E, "analytics"),
31
31
  order: 2
32
32
  },
33
33
  {
34
34
  id: "timecampus-dashboard-reports",
35
35
  label: "Reports",
36
- path: N(M, "reports"),
36
+ path: D(E, "reports"),
37
37
  order: 3
38
38
  }
39
39
  ]
@@ -41,57 +41,57 @@ var k = (k) => {
41
41
  {
42
42
  id: "timecampus-life",
43
43
  label: "Life",
44
- path: N(M, "life-timeline"),
45
- icon: /* @__PURE__ */ D(m, { size: 20 }),
44
+ path: D(E, "life-timeline"),
45
+ icon: /* @__PURE__ */ x(f, { size: 20 }),
46
46
  order: 23,
47
47
  group: "main",
48
48
  children: [
49
49
  {
50
50
  id: "timecampus-life-timeline",
51
51
  label: "Life Timeline",
52
- path: N(M, "life-timeline"),
52
+ path: D(E, "life-timeline"),
53
53
  order: 1
54
54
  },
55
55
  {
56
56
  id: "timecampus-life-balance",
57
57
  label: "Life Balance",
58
- path: N(M, "life-balance"),
58
+ path: D(E, "life-balance"),
59
59
  order: 2
60
60
  },
61
61
  {
62
62
  id: "timecampus-finite-life",
63
63
  label: "Life in Weeks",
64
- path: N(M, "finite-life"),
64
+ path: D(E, "finite-life"),
65
65
  order: 3
66
66
  },
67
67
  {
68
68
  id: "timecampus-time-well-spent",
69
69
  label: "Time Well Spent",
70
- path: N(M, "time-well-spent"),
70
+ path: D(E, "time-well-spent"),
71
71
  order: 4
72
72
  },
73
73
  {
74
74
  id: "timecampus-dead-time-radar",
75
75
  label: "Dead-Time Radar",
76
- path: N(M, "dead-time-radar"),
76
+ path: D(E, "dead-time-radar"),
77
77
  order: 5
78
78
  },
79
79
  {
80
80
  id: "timecampus-values-goals",
81
81
  label: "Values & Goals",
82
- path: N(M, "values-goals"),
82
+ path: D(E, "values-goals"),
83
83
  order: 6
84
84
  },
85
85
  {
86
86
  id: "timecampus-recommendations",
87
87
  label: "Recommendations",
88
- path: N(M, "recommendations"),
88
+ path: D(E, "recommendations"),
89
89
  order: 7
90
90
  },
91
91
  {
92
92
  id: "timecampus-personal-corporate",
93
93
  label: "Personal & Corporate",
94
- path: N(M, "personal-corporate"),
94
+ path: D(E, "personal-corporate"),
95
95
  order: 8
96
96
  }
97
97
  ]
@@ -99,27 +99,27 @@ var k = (k) => {
99
99
  {
100
100
  id: "timecampus-time",
101
101
  label: "Time Tracking",
102
- path: N(M, "time"),
103
- icon: /* @__PURE__ */ D(u, { size: 20 }),
102
+ path: D(E, "time"),
103
+ icon: /* @__PURE__ */ x(u, { size: 20 }),
104
104
  order: 2,
105
105
  group: "main",
106
106
  children: [
107
107
  {
108
108
  id: "timecampus-time-tracking",
109
109
  label: "Time Tracking",
110
- path: N(M, "time"),
110
+ path: D(E, "time"),
111
111
  order: 1
112
112
  },
113
113
  {
114
114
  id: "timecampus-time-timer",
115
115
  label: "Timer",
116
- path: N(M, "time/timer"),
116
+ path: D(E, "time/timer"),
117
117
  order: 2
118
118
  },
119
119
  {
120
120
  id: "timecampus-time-entries",
121
121
  label: "Time Entries",
122
- path: N(M, "time/entries"),
122
+ path: D(E, "time/entries"),
123
123
  order: 3
124
124
  }
125
125
  ]
@@ -127,35 +127,35 @@ var k = (k) => {
127
127
  {
128
128
  id: "timecampus-projects",
129
129
  label: "Projects",
130
- path: N(M, "projects"),
131
- icon: /* @__PURE__ */ D(f, { size: 20 }),
130
+ path: D(E, "projects"),
131
+ icon: /* @__PURE__ */ x(d, { size: 20 }),
132
132
  order: 3,
133
133
  group: "main"
134
134
  },
135
135
  {
136
136
  id: "timecampus-pomodoro",
137
137
  label: "Pomodoro",
138
- path: N(M, "pomodoro"),
139
- icon: /* @__PURE__ */ D(w, { size: 20 }),
138
+ path: D(E, "pomodoro"),
139
+ icon: /* @__PURE__ */ x(v, { size: 20 }),
140
140
  order: 4,
141
141
  group: "main",
142
142
  children: [
143
143
  {
144
144
  id: "timecampus-pomodoro-timer",
145
145
  label: "Timer",
146
- path: N(M, "pomodoro"),
146
+ path: D(E, "pomodoro"),
147
147
  order: 1
148
148
  },
149
149
  {
150
150
  id: "timecampus-pomodoro-analytics",
151
151
  label: "Analytics",
152
- path: N(M, "pomodoro/analytics"),
152
+ path: D(E, "pomodoro/analytics"),
153
153
  order: 2
154
154
  },
155
155
  {
156
156
  id: "timecampus-pomodoro-settings",
157
157
  label: "Settings",
158
- path: N(M, "pomodoro/settings"),
158
+ path: D(E, "pomodoro/settings"),
159
159
  order: 3
160
160
  }
161
161
  ]
@@ -163,27 +163,27 @@ var k = (k) => {
163
163
  {
164
164
  id: "timecampus-team",
165
165
  label: "Team",
166
- path: N(M, "team"),
167
- icon: /* @__PURE__ */ D(E, { size: 20 }),
166
+ path: D(E, "team"),
167
+ icon: /* @__PURE__ */ x(b, { size: 20 }),
168
168
  order: 5,
169
169
  group: "main",
170
170
  children: [
171
171
  {
172
172
  id: "timecampus-team-overview",
173
173
  label: "Overview",
174
- path: N(M, "team"),
174
+ path: D(E, "team"),
175
175
  order: 1
176
176
  },
177
177
  {
178
178
  id: "timecampus-team-members",
179
179
  label: "Members",
180
- path: N(M, "team/members"),
180
+ path: D(E, "team/members"),
181
181
  order: 2
182
182
  },
183
183
  {
184
184
  id: "timecampus-team-analytics",
185
185
  label: "Analytics",
186
- path: N(M, "team/analytics"),
186
+ path: D(E, "team/analytics"),
187
187
  order: 3
188
188
  }
189
189
  ]
@@ -191,212 +191,144 @@ var k = (k) => {
191
191
  {
192
192
  id: "timecampus-resource-planning",
193
193
  label: "Resource Planning",
194
- path: N(M, "resource-planning"),
195
- icon: /* @__PURE__ */ D(c, { size: 20 }),
194
+ path: D(E, "resource-planning"),
195
+ icon: /* @__PURE__ */ x(c, { size: 20 }),
196
196
  order: 6,
197
197
  group: "management"
198
198
  },
199
199
  {
200
200
  id: "timecampus-time-approval",
201
201
  label: "Time Approval",
202
- path: N(M, "time-approval"),
203
- icon: /* @__PURE__ */ D(l, { size: 20 }),
202
+ path: D(E, "time-approval"),
203
+ icon: /* @__PURE__ */ x(l, { size: 20 }),
204
204
  order: 7,
205
205
  group: "management"
206
206
  },
207
207
  {
208
208
  id: "timecampus-team-activity",
209
209
  label: "Team Activity",
210
- path: N(M, "team-activity"),
211
- icon: /* @__PURE__ */ D(i, { size: 20 }),
210
+ path: D(E, "team-activity"),
211
+ icon: /* @__PURE__ */ x(i, { size: 20 }),
212
212
  order: 8,
213
213
  group: "insights"
214
214
  },
215
215
  {
216
216
  id: "timecampus-work-patterns",
217
217
  label: "Work Patterns",
218
- path: N(M, "work-patterns"),
219
- icon: /* @__PURE__ */ D(T, { size: 20 }),
218
+ path: D(E, "work-patterns"),
219
+ icon: /* @__PURE__ */ x(y, { size: 20 }),
220
220
  order: 9,
221
221
  group: "insights"
222
222
  },
223
223
  {
224
224
  id: "timecampus-focus-score",
225
225
  label: "Focus Score",
226
- path: N(M, "focus-score"),
227
- icon: /* @__PURE__ */ D(a, { size: 20 }),
226
+ path: D(E, "focus-score"),
227
+ icon: /* @__PURE__ */ x(a, { size: 20 }),
228
228
  order: 10,
229
229
  group: "insights"
230
230
  },
231
231
  {
232
232
  id: "timecampus-app-usage",
233
233
  label: "App Usage",
234
- path: N(M, "application-usage"),
235
- icon: /* @__PURE__ */ D(y, { size: 20 }),
234
+ path: D(E, "application-usage"),
235
+ icon: /* @__PURE__ */ x(g, { size: 20 }),
236
236
  order: 11,
237
237
  group: "insights"
238
238
  },
239
239
  {
240
240
  id: "timecampus-email-tracking",
241
241
  label: "Email Tracking",
242
- path: N(M, "email-tracking"),
243
- icon: /* @__PURE__ */ D(_, { size: 20 }),
242
+ path: D(E, "email-tracking"),
243
+ icon: /* @__PURE__ */ x(m, { size: 20 }),
244
244
  order: 12,
245
245
  group: "tracking",
246
- children: [
247
- {
248
- id: "timecampus-email-all",
249
- label: "All Emails",
250
- path: N(M, "email-tracking"),
251
- order: 1
252
- },
253
- {
254
- id: "timecampus-email-analytics",
255
- label: "Analytics",
256
- path: N(M, "email-tracking/analytics"),
257
- order: 2
258
- },
259
- {
260
- id: "timecampus-email-settings",
261
- label: "Settings",
262
- path: N(M, "email-tracking/settings"),
263
- order: 3
264
- }
265
- ]
246
+ children: [{
247
+ id: "timecampus-email-all",
248
+ label: "All Emails",
249
+ path: D(E, "email-tracking"),
250
+ order: 1
251
+ }, {
252
+ id: "timecampus-email-analytics",
253
+ label: "Analytics",
254
+ path: D(E, "email-tracking/analytics"),
255
+ order: 2
256
+ }]
266
257
  },
267
258
  {
268
259
  id: "timecampus-meetings",
269
260
  label: "Meetings",
270
- path: N(M, "meetings"),
271
- icon: /* @__PURE__ */ D(s, { size: 20 }),
261
+ path: D(E, "meetings"),
262
+ icon: /* @__PURE__ */ x(s, { size: 20 }),
272
263
  order: 13,
273
264
  group: "tracking",
274
265
  children: [{
275
266
  id: "timecampus-meetings-all",
276
267
  label: "All Meetings",
277
- path: N(M, "meetings"),
268
+ path: D(E, "meetings"),
278
269
  order: 1
279
270
  }, {
280
271
  id: "timecampus-meetings-analytics",
281
272
  label: "Analytics",
282
- path: N(M, "meetings/analytics"),
273
+ path: D(E, "meetings/analytics"),
283
274
  order: 2
284
275
  }]
285
276
  },
286
277
  {
287
278
  id: "timecampus-location",
288
279
  label: "Location Tracking",
289
- path: N(M, "location-tracking"),
290
- icon: /* @__PURE__ */ D(v, { size: 20 }),
280
+ path: D(E, "location-tracking"),
281
+ icon: /* @__PURE__ */ x(h, { size: 20 }),
291
282
  order: 14,
292
283
  group: "tracking",
293
284
  children: [{
294
285
  id: "timecampus-location-all",
295
286
  label: "Locations",
296
- path: N(M, "location-tracking"),
287
+ path: D(E, "location-tracking"),
297
288
  order: 1
298
289
  }, {
299
290
  id: "timecampus-location-geofencing",
300
291
  label: "Geofencing",
301
- path: N(M, "geofencing"),
292
+ path: D(E, "geofencing"),
302
293
  order: 2
303
294
  }]
304
295
  },
305
296
  {
306
297
  id: "timecampus-expense-tracking",
307
298
  label: "Expense Tracking",
308
- path: N(M, "expense-tracking"),
309
- icon: /* @__PURE__ */ D(S, { size: 20 }),
299
+ path: D(E, "expense-tracking"),
300
+ icon: /* @__PURE__ */ x(_, { size: 20 }),
310
301
  order: 15,
311
302
  group: "business"
312
303
  },
313
304
  {
314
305
  id: "timecampus-client-portal",
315
306
  label: "Client Portal",
316
- path: N(M, "client-portal"),
317
- icon: /* @__PURE__ */ D(o, { size: 20 }),
307
+ path: D(E, "client-portal"),
308
+ icon: /* @__PURE__ */ x(o, { size: 20 }),
318
309
  order: 16,
319
310
  group: "business"
320
- },
321
- {
322
- id: "timecampus-channels",
323
- label: "Channels",
324
- path: N(M, "channels"),
325
- icon: /* @__PURE__ */ D(x, { size: 20 }),
326
- order: 17,
327
- group: "platform"
328
- },
329
- {
330
- id: "timecampus-widgets",
331
- label: "Widgets",
332
- path: N(M, "widgets"),
333
- icon: /* @__PURE__ */ D(g, { size: 20 }),
334
- order: 18,
335
- group: "platform"
336
- },
337
- {
338
- id: "timecampus-workflows",
339
- label: "Workflows",
340
- path: N(M, "workflows"),
341
- icon: /* @__PURE__ */ D(p, { size: 20 }),
342
- order: 19,
343
- group: "platform"
344
- },
345
- {
346
- id: "timecampus-applets",
347
- label: "Applets",
348
- path: N(M, "applets"),
349
- icon: /* @__PURE__ */ D(b, { size: 20 }),
350
- order: 20,
351
- group: "platform",
352
- children: [{
353
- id: "timecampus-applets-installed",
354
- label: "Installed",
355
- path: N(M, "applets"),
356
- order: 1
357
- }, {
358
- id: "timecampus-applets-store",
359
- label: "Store",
360
- path: N(M, "applets/store"),
361
- order: 2
362
- }]
363
- },
364
- {
365
- id: "timecampus-templates",
366
- label: "Templates",
367
- path: N(M, "templates"),
368
- icon: /* @__PURE__ */ D(C, { size: 20 }),
369
- order: 21,
370
- group: "platform"
371
- },
372
- {
373
- id: "timecampus-industry-solutions",
374
- label: "Industry Solutions",
375
- path: N(M, "industry-solutions"),
376
- icon: /* @__PURE__ */ D(d, { size: 20 }),
377
- order: 22,
378
- group: "platform"
379
311
  }
380
312
  ]);
381
- }, [A, M]), r(() => {
382
- if (j) return j([{
313
+ }, [w, E]), r(() => {
314
+ if (T) return T([{
383
315
  id: "timecampus-status",
384
316
  label: "TimeCampus Ready",
385
317
  type: "status",
386
318
  order: 10,
387
319
  section: "left"
388
320
  }]);
389
- }, [j]), /* @__PURE__ */ D(O, {
321
+ }, [T]), /* @__PURE__ */ x(S, {
390
322
  workspaceId: null,
391
323
  gateway: "global",
392
324
  defaultEnabled: !0,
393
- children: /* @__PURE__ */ D(e, {
394
- ...k,
395
- children: /* @__PURE__ */ D(n, { children: /* @__PURE__ */ D(t, {}) })
325
+ children: /* @__PURE__ */ x(e, {
326
+ ...C,
327
+ children: /* @__PURE__ */ x(n, { children: /* @__PURE__ */ x(t, {}) })
396
328
  })
397
329
  });
398
330
  };
399
331
  //#endregion
400
- export { k as TimeCampusRoot };
332
+ export { C as TimeCampusRoot };
401
333
 
402
334
  //# sourceMappingURL=TimeCampusRoot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimeCampusRoot.js","names":[],"sources":["../../src/timecampus/TimeCampusRoot.tsx"],"sourcesContent":["/**\n * TimeCampus Root Component\n * @module timecampus\n */\n\nimport type { FC } from \"react\";\nimport { useEffect } from \"react\";\nimport {\n LayoutDashboard,\n Clock,\n FolderOpen,\n Timer,\n Users,\n CalendarRange,\n CheckCircle,\n Activity,\n TrendingUp,\n Brain,\n Monitor,\n Mail,\n CalendarDays,\n MapPin,\n Receipt,\n Building2,\n Radio,\n LayoutGrid,\n GitBranch,\n Puzzle,\n Sparkles,\n Factory,\n Heart,\n} from \"lucide-react\";\nimport { TimeCampusProvider } from \"./providers/TimeCampusProvider\";\nimport { FeatureFlagProvider } from \"@burdenoff/fe-libs/shared/feature-flags\";\nimport { TimeCampusRoutes } from \"./TimeCampusRoutes\";\nimport { ErrorBoundary } from \"./components/ErrorBoundary\";\nimport type { TimeCampusRootProps, NavItem } from \"./types\";\n\nexport const TimeCampusRoot: FC<TimeCampusRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = \"/\" } = props;\n\n // Helper to join paths correctly\n const joinPath = (base: string, path: string): string => {\n const cleanBase = base.endsWith(\"/\") ? base.slice(0, -1) : base;\n const cleanPath = path.startsWith(\"/\") ? path : `/${path}`;\n return cleanBase + cleanPath;\n };\n\n // Register navigation items with shell on mount\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItems: NavItem[] = [\n // 1. Dashboard\n {\n id: \"timecampus-dashboard\",\n label: \"Dashboard\",\n path: joinPath(basePath, \"\"),\n icon: <LayoutDashboard size={20} />,\n order: 1,\n group: \"main\",\n children: [\n {\n id: \"timecampus-dashboard-overview\",\n label: \"Overview\",\n path: joinPath(basePath, \"\"),\n order: 1,\n },\n {\n id: \"timecampus-dashboard-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-dashboard-reports\",\n label: \"Reports\",\n path: joinPath(basePath, \"reports\"),\n order: 3,\n },\n ],\n },\n\n // Life — the whole of your time (work + personal). Unique order (23) — the\n // shell keys nav items by order within a group, so it must not collide.\n {\n id: \"timecampus-life\",\n label: \"Life\",\n path: joinPath(basePath, \"life-timeline\"),\n icon: <Heart size={20} />,\n order: 23,\n group: \"main\",\n children: [\n {\n id: \"timecampus-life-timeline\",\n label: \"Life Timeline\",\n path: joinPath(basePath, \"life-timeline\"),\n order: 1,\n },\n {\n id: \"timecampus-life-balance\",\n label: \"Life Balance\",\n path: joinPath(basePath, \"life-balance\"),\n order: 2,\n },\n {\n id: \"timecampus-finite-life\",\n label: \"Life in Weeks\",\n path: joinPath(basePath, \"finite-life\"),\n order: 3,\n },\n {\n id: \"timecampus-time-well-spent\",\n label: \"Time Well Spent\",\n path: joinPath(basePath, \"time-well-spent\"),\n order: 4,\n },\n {\n id: \"timecampus-dead-time-radar\",\n label: \"Dead-Time Radar\",\n path: joinPath(basePath, \"dead-time-radar\"),\n order: 5,\n },\n {\n id: \"timecampus-values-goals\",\n label: \"Values & Goals\",\n path: joinPath(basePath, \"values-goals\"),\n order: 6,\n },\n {\n id: \"timecampus-recommendations\",\n label: \"Recommendations\",\n path: joinPath(basePath, \"recommendations\"),\n order: 7,\n },\n {\n id: \"timecampus-personal-corporate\",\n label: \"Personal & Corporate\",\n path: joinPath(basePath, \"personal-corporate\"),\n order: 8,\n },\n ],\n },\n\n // 2. Time Tracking\n {\n id: \"timecampus-time\",\n label: \"Time Tracking\",\n path: joinPath(basePath, \"time\"),\n icon: <Clock size={20} />,\n order: 2,\n group: \"main\",\n children: [\n {\n id: \"timecampus-time-tracking\",\n label: \"Time Tracking\",\n path: joinPath(basePath, \"time\"),\n order: 1,\n },\n {\n id: \"timecampus-time-timer\",\n label: \"Timer\",\n path: joinPath(basePath, \"time/timer\"),\n order: 2,\n },\n {\n id: \"timecampus-time-entries\",\n label: \"Time Entries\",\n path: joinPath(basePath, \"time/entries\"),\n order: 3,\n },\n ],\n },\n\n // 3. Projects\n {\n id: \"timecampus-projects\",\n label: \"Projects\",\n path: joinPath(basePath, \"projects\"),\n icon: <FolderOpen size={20} />,\n order: 3,\n group: \"main\",\n },\n\n // 4. Pomodoro\n {\n id: \"timecampus-pomodoro\",\n label: \"Pomodoro\",\n path: joinPath(basePath, \"pomodoro\"),\n icon: <Timer size={20} />,\n order: 4,\n group: \"main\",\n children: [\n {\n id: \"timecampus-pomodoro-timer\",\n label: \"Timer\",\n path: joinPath(basePath, \"pomodoro\"),\n order: 1,\n },\n {\n id: \"timecampus-pomodoro-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"pomodoro/analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-pomodoro-settings\",\n label: \"Settings\",\n path: joinPath(basePath, \"pomodoro/settings\"),\n order: 3,\n },\n ],\n },\n\n // 5. Team\n {\n id: \"timecampus-team\",\n label: \"Team\",\n path: joinPath(basePath, \"team\"),\n icon: <Users size={20} />,\n order: 5,\n group: \"main\",\n children: [\n {\n id: \"timecampus-team-overview\",\n label: \"Overview\",\n path: joinPath(basePath, \"team\"),\n order: 1,\n },\n {\n id: \"timecampus-team-members\",\n label: \"Members\",\n path: joinPath(basePath, \"team/members\"),\n order: 2,\n },\n {\n id: \"timecampus-team-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"team/analytics\"),\n order: 3,\n },\n ],\n },\n\n // 6. Resource Planning\n {\n id: \"timecampus-resource-planning\",\n label: \"Resource Planning\",\n path: joinPath(basePath, \"resource-planning\"),\n icon: <CalendarRange size={20} />,\n order: 6,\n group: \"management\",\n },\n\n // 7. Time Approval\n {\n id: \"timecampus-time-approval\",\n label: \"Time Approval\",\n path: joinPath(basePath, \"time-approval\"),\n icon: <CheckCircle size={20} />,\n order: 7,\n group: \"management\",\n },\n\n // 8. Team Activity\n {\n id: \"timecampus-team-activity\",\n label: \"Team Activity\",\n path: joinPath(basePath, \"team-activity\"),\n icon: <Activity size={20} />,\n order: 8,\n group: \"insights\",\n },\n\n // 9. Work Patterns\n {\n id: \"timecampus-work-patterns\",\n label: \"Work Patterns\",\n path: joinPath(basePath, \"work-patterns\"),\n icon: <TrendingUp size={20} />,\n order: 9,\n group: \"insights\",\n },\n\n // 10. Focus Score\n {\n id: \"timecampus-focus-score\",\n label: \"Focus Score\",\n path: joinPath(basePath, \"focus-score\"),\n icon: <Brain size={20} />,\n order: 10,\n group: \"insights\",\n },\n\n // 11. App Usage\n {\n id: \"timecampus-app-usage\",\n label: \"App Usage\",\n path: joinPath(basePath, \"application-usage\"),\n icon: <Monitor size={20} />,\n order: 11,\n group: \"insights\",\n },\n\n // 12. Email Tracking\n {\n id: \"timecampus-email-tracking\",\n label: \"Email Tracking\",\n path: joinPath(basePath, \"email-tracking\"),\n icon: <Mail size={20} />,\n order: 12,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-email-all\",\n label: \"All Emails\",\n path: joinPath(basePath, \"email-tracking\"),\n order: 1,\n },\n {\n id: \"timecampus-email-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"email-tracking/analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-email-settings\",\n label: \"Settings\",\n path: joinPath(basePath, \"email-tracking/settings\"),\n order: 3,\n },\n ],\n },\n\n // 13. Meetings\n {\n id: \"timecampus-meetings\",\n label: \"Meetings\",\n path: joinPath(basePath, \"meetings\"),\n icon: <CalendarDays size={20} />,\n order: 13,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-meetings-all\",\n label: \"All Meetings\",\n path: joinPath(basePath, \"meetings\"),\n order: 1,\n },\n {\n id: \"timecampus-meetings-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"meetings/analytics\"),\n order: 2,\n },\n ],\n },\n\n // 14. Location Tracking\n {\n id: \"timecampus-location\",\n label: \"Location Tracking\",\n path: joinPath(basePath, \"location-tracking\"),\n icon: <MapPin size={20} />,\n order: 14,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-location-all\",\n label: \"Locations\",\n path: joinPath(basePath, \"location-tracking\"),\n order: 1,\n },\n {\n id: \"timecampus-location-geofencing\",\n label: \"Geofencing\",\n path: joinPath(basePath, \"geofencing\"),\n order: 2,\n },\n ],\n },\n\n // 15. Expense Tracking\n {\n id: \"timecampus-expense-tracking\",\n label: \"Expense Tracking\",\n path: joinPath(basePath, \"expense-tracking\"),\n icon: <Receipt size={20} />,\n order: 15,\n group: \"business\",\n },\n\n // 16. Client Portal\n {\n id: \"timecampus-client-portal\",\n label: \"Client Portal\",\n path: joinPath(basePath, \"client-portal\"),\n icon: <Building2 size={20} />,\n order: 16,\n group: \"business\",\n },\n\n // 17. Channels\n {\n id: \"timecampus-channels\",\n label: \"Channels\",\n path: joinPath(basePath, \"channels\"),\n icon: <Radio size={20} />,\n order: 17,\n group: \"platform\",\n },\n\n // 18. Widgets\n {\n id: \"timecampus-widgets\",\n label: \"Widgets\",\n path: joinPath(basePath, \"widgets\"),\n icon: <LayoutGrid size={20} />,\n order: 18,\n group: \"platform\",\n },\n\n // 19. Workflows\n {\n id: \"timecampus-workflows\",\n label: \"Workflows\",\n path: joinPath(basePath, \"workflows\"),\n icon: <GitBranch size={20} />,\n order: 19,\n group: \"platform\",\n },\n\n // 20. Applets\n {\n id: \"timecampus-applets\",\n label: \"Applets\",\n path: joinPath(basePath, \"applets\"),\n icon: <Puzzle size={20} />,\n order: 20,\n group: \"platform\",\n children: [\n {\n id: \"timecampus-applets-installed\",\n label: \"Installed\",\n path: joinPath(basePath, \"applets\"),\n order: 1,\n },\n {\n id: \"timecampus-applets-store\",\n label: \"Store\",\n path: joinPath(basePath, \"applets/store\"),\n order: 2,\n },\n ],\n },\n\n // 21. Templates\n {\n id: \"timecampus-templates\",\n label: \"Templates\",\n path: joinPath(basePath, \"templates\"),\n icon: <Sparkles size={20} />,\n order: 21,\n group: \"platform\",\n },\n\n // 22. Industry Solutions\n {\n id: \"timecampus-industry-solutions\",\n label: \"Industry Solutions\",\n path: joinPath(basePath, \"industry-solutions\"),\n icon: <Factory size={20} />,\n order: 22,\n group: \"platform\",\n },\n ];\n\n const cleanup = registerNavItems(navItems);\n return cleanup;\n }, [registerNavItems, basePath]);\n\n // Register footer items\n useEffect(() => {\n if (!registerFooterItems) return;\n\n const footerItems = [\n {\n id: \"timecampus-status\",\n label: \"TimeCampus Ready\",\n type: \"status\" as const,\n order: 10,\n section: \"left\" as const,\n },\n ];\n\n const cleanup = registerFooterItems(footerItems);\n return cleanup;\n }, [registerFooterItems]);\n\n return (\n <FeatureFlagProvider\n workspaceId={null}\n gateway=\"global\"\n defaultEnabled={true}\n >\n <TimeCampusProvider {...props}>\n <ErrorBoundary>\n <TimeCampusRoutes />\n </ErrorBoundary>\n </TimeCampusProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"TimeCampusRoot.js","names":[],"sources":["../../src/timecampus/TimeCampusRoot.tsx"],"sourcesContent":["/**\n * TimeCampus Root Component\n * @module timecampus\n */\n\nimport type { FC } from \"react\";\nimport { useEffect } from \"react\";\nimport {\n LayoutDashboard,\n Clock,\n FolderOpen,\n Timer,\n Users,\n CalendarRange,\n CheckCircle,\n Activity,\n TrendingUp,\n Brain,\n Monitor,\n Mail,\n CalendarDays,\n MapPin,\n Receipt,\n Building2,\n Heart,\n} from \"lucide-react\";\nimport { TimeCampusProvider } from \"./providers/TimeCampusProvider\";\nimport { FeatureFlagProvider } from \"@burdenoff/fe-libs/shared/feature-flags\";\nimport { TimeCampusRoutes } from \"./TimeCampusRoutes\";\nimport { ErrorBoundary } from \"./components/ErrorBoundary\";\nimport type { TimeCampusRootProps, NavItem } from \"./types\";\n\nexport const TimeCampusRoot: FC<TimeCampusRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = \"/\" } = props;\n\n // Helper to join paths correctly\n const joinPath = (base: string, path: string): string => {\n const cleanBase = base.endsWith(\"/\") ? base.slice(0, -1) : base;\n const cleanPath = path.startsWith(\"/\") ? path : `/${path}`;\n return cleanBase + cleanPath;\n };\n\n // Register navigation items with shell on mount\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItems: NavItem[] = [\n // 1. Dashboard\n {\n id: \"timecampus-dashboard\",\n label: \"Dashboard\",\n path: joinPath(basePath, \"\"),\n icon: <LayoutDashboard size={20} />,\n order: 1,\n group: \"main\",\n children: [\n {\n id: \"timecampus-dashboard-overview\",\n label: \"Overview\",\n path: joinPath(basePath, \"\"),\n order: 1,\n },\n {\n id: \"timecampus-dashboard-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-dashboard-reports\",\n label: \"Reports\",\n path: joinPath(basePath, \"reports\"),\n order: 3,\n },\n ],\n },\n\n // Life — the whole of your time (work + personal). Unique order (23) — the\n // shell keys nav items by order within a group, so it must not collide.\n {\n id: \"timecampus-life\",\n label: \"Life\",\n path: joinPath(basePath, \"life-timeline\"),\n icon: <Heart size={20} />,\n order: 23,\n group: \"main\",\n children: [\n {\n id: \"timecampus-life-timeline\",\n label: \"Life Timeline\",\n path: joinPath(basePath, \"life-timeline\"),\n order: 1,\n },\n {\n id: \"timecampus-life-balance\",\n label: \"Life Balance\",\n path: joinPath(basePath, \"life-balance\"),\n order: 2,\n },\n {\n id: \"timecampus-finite-life\",\n label: \"Life in Weeks\",\n path: joinPath(basePath, \"finite-life\"),\n order: 3,\n },\n {\n id: \"timecampus-time-well-spent\",\n label: \"Time Well Spent\",\n path: joinPath(basePath, \"time-well-spent\"),\n order: 4,\n },\n {\n id: \"timecampus-dead-time-radar\",\n label: \"Dead-Time Radar\",\n path: joinPath(basePath, \"dead-time-radar\"),\n order: 5,\n },\n {\n id: \"timecampus-values-goals\",\n label: \"Values & Goals\",\n path: joinPath(basePath, \"values-goals\"),\n order: 6,\n },\n {\n id: \"timecampus-recommendations\",\n label: \"Recommendations\",\n path: joinPath(basePath, \"recommendations\"),\n order: 7,\n },\n {\n id: \"timecampus-personal-corporate\",\n label: \"Personal & Corporate\",\n path: joinPath(basePath, \"personal-corporate\"),\n order: 8,\n },\n ],\n },\n\n // 2. Time Tracking\n {\n id: \"timecampus-time\",\n label: \"Time Tracking\",\n path: joinPath(basePath, \"time\"),\n icon: <Clock size={20} />,\n order: 2,\n group: \"main\",\n children: [\n {\n id: \"timecampus-time-tracking\",\n label: \"Time Tracking\",\n path: joinPath(basePath, \"time\"),\n order: 1,\n },\n {\n id: \"timecampus-time-timer\",\n label: \"Timer\",\n path: joinPath(basePath, \"time/timer\"),\n order: 2,\n },\n {\n id: \"timecampus-time-entries\",\n label: \"Time Entries\",\n path: joinPath(basePath, \"time/entries\"),\n order: 3,\n },\n ],\n },\n\n // 3. Projects\n {\n id: \"timecampus-projects\",\n label: \"Projects\",\n path: joinPath(basePath, \"projects\"),\n icon: <FolderOpen size={20} />,\n order: 3,\n group: \"main\",\n },\n\n // 4. Pomodoro\n {\n id: \"timecampus-pomodoro\",\n label: \"Pomodoro\",\n path: joinPath(basePath, \"pomodoro\"),\n icon: <Timer size={20} />,\n order: 4,\n group: \"main\",\n children: [\n {\n id: \"timecampus-pomodoro-timer\",\n label: \"Timer\",\n path: joinPath(basePath, \"pomodoro\"),\n order: 1,\n },\n {\n id: \"timecampus-pomodoro-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"pomodoro/analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-pomodoro-settings\",\n label: \"Settings\",\n path: joinPath(basePath, \"pomodoro/settings\"),\n order: 3,\n },\n ],\n },\n\n // 5. Team\n {\n id: \"timecampus-team\",\n label: \"Team\",\n path: joinPath(basePath, \"team\"),\n icon: <Users size={20} />,\n order: 5,\n group: \"main\",\n children: [\n {\n id: \"timecampus-team-overview\",\n label: \"Overview\",\n path: joinPath(basePath, \"team\"),\n order: 1,\n },\n {\n id: \"timecampus-team-members\",\n label: \"Members\",\n path: joinPath(basePath, \"team/members\"),\n order: 2,\n },\n {\n id: \"timecampus-team-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"team/analytics\"),\n order: 3,\n },\n ],\n },\n\n // 6. Resource Planning\n {\n id: \"timecampus-resource-planning\",\n label: \"Resource Planning\",\n path: joinPath(basePath, \"resource-planning\"),\n icon: <CalendarRange size={20} />,\n order: 6,\n group: \"management\",\n },\n\n // 7. Time Approval\n {\n id: \"timecampus-time-approval\",\n label: \"Time Approval\",\n path: joinPath(basePath, \"time-approval\"),\n icon: <CheckCircle size={20} />,\n order: 7,\n group: \"management\",\n },\n\n // 8. Team Activity\n {\n id: \"timecampus-team-activity\",\n label: \"Team Activity\",\n path: joinPath(basePath, \"team-activity\"),\n icon: <Activity size={20} />,\n order: 8,\n group: \"insights\",\n },\n\n // 9. Work Patterns\n {\n id: \"timecampus-work-patterns\",\n label: \"Work Patterns\",\n path: joinPath(basePath, \"work-patterns\"),\n icon: <TrendingUp size={20} />,\n order: 9,\n group: \"insights\",\n },\n\n // 10. Focus Score\n {\n id: \"timecampus-focus-score\",\n label: \"Focus Score\",\n path: joinPath(basePath, \"focus-score\"),\n icon: <Brain size={20} />,\n order: 10,\n group: \"insights\",\n },\n\n // 11. App Usage\n {\n id: \"timecampus-app-usage\",\n label: \"App Usage\",\n path: joinPath(basePath, \"application-usage\"),\n icon: <Monitor size={20} />,\n order: 11,\n group: \"insights\",\n },\n\n // 12. Email Tracking\n {\n id: \"timecampus-email-tracking\",\n label: \"Email Tracking\",\n path: joinPath(basePath, \"email-tracking\"),\n icon: <Mail size={20} />,\n order: 12,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-email-all\",\n label: \"All Emails\",\n path: joinPath(basePath, \"email-tracking\"),\n order: 1,\n },\n {\n id: \"timecampus-email-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"email-tracking/analytics\"),\n order: 2,\n },\n ],\n },\n\n // 13. Meetings\n {\n id: \"timecampus-meetings\",\n label: \"Meetings\",\n path: joinPath(basePath, \"meetings\"),\n icon: <CalendarDays size={20} />,\n order: 13,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-meetings-all\",\n label: \"All Meetings\",\n path: joinPath(basePath, \"meetings\"),\n order: 1,\n },\n {\n id: \"timecampus-meetings-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"meetings/analytics\"),\n order: 2,\n },\n ],\n },\n\n // 14. Location Tracking\n {\n id: \"timecampus-location\",\n label: \"Location Tracking\",\n path: joinPath(basePath, \"location-tracking\"),\n icon: <MapPin size={20} />,\n order: 14,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-location-all\",\n label: \"Locations\",\n path: joinPath(basePath, \"location-tracking\"),\n order: 1,\n },\n {\n id: \"timecampus-location-geofencing\",\n label: \"Geofencing\",\n path: joinPath(basePath, \"geofencing\"),\n order: 2,\n },\n ],\n },\n\n // 15. Expense Tracking\n {\n id: \"timecampus-expense-tracking\",\n label: \"Expense Tracking\",\n path: joinPath(basePath, \"expense-tracking\"),\n icon: <Receipt size={20} />,\n order: 15,\n group: \"business\",\n },\n\n // 16. Client Portal\n {\n id: \"timecampus-client-portal\",\n label: \"Client Portal\",\n path: joinPath(basePath, \"client-portal\"),\n icon: <Building2 size={20} />,\n order: 16,\n group: \"business\",\n },\n\n ];\n\n const cleanup = registerNavItems(navItems);\n return cleanup;\n }, [registerNavItems, basePath]);\n\n // Register footer items\n useEffect(() => {\n if (!registerFooterItems) return;\n\n const footerItems = [\n {\n id: \"timecampus-status\",\n label: \"TimeCampus Ready\",\n type: \"status\" as const,\n order: 10,\n section: \"left\" as const,\n },\n ];\n\n const cleanup = registerFooterItems(footerItems);\n return cleanup;\n }, [registerFooterItems]);\n\n return (\n <FeatureFlagProvider\n workspaceId={null}\n gateway=\"global\"\n defaultEnabled={true}\n >\n <TimeCampusProvider {...props}>\n <ErrorBoundary>\n <TimeCampusRoutes />\n </ErrorBoundary>\n </TimeCampusProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":"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"}