@optifye/dashboard-core 6.5.12 → 6.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +674 -64
- package/dist/index.d.mts +681 -163
- package/dist/index.d.ts +681 -163
- package/dist/index.js +8612 -5884
- package/dist/index.mjs +8591 -5888
- package/global.css +58 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -389,6 +389,8 @@ interface AuthUser {
|
|
|
389
389
|
email?: string;
|
|
390
390
|
role?: string;
|
|
391
391
|
role_level?: 'owner' | 'plant_head' | 'supervisor' | 'optifye';
|
|
392
|
+
company_id?: string;
|
|
393
|
+
first_login_completed?: boolean;
|
|
392
394
|
}
|
|
393
395
|
|
|
394
396
|
/**
|
|
@@ -1126,6 +1128,66 @@ interface SKUListProps {
|
|
|
1126
1128
|
isLoading?: boolean;
|
|
1127
1129
|
}
|
|
1128
1130
|
|
|
1131
|
+
/**
|
|
1132
|
+
* Supervisor-related type definitions for the dashboard
|
|
1133
|
+
*/
|
|
1134
|
+
interface Supervisor {
|
|
1135
|
+
/** Unique identifier for the supervisor */
|
|
1136
|
+
id: string;
|
|
1137
|
+
/** Full name of the supervisor */
|
|
1138
|
+
name: string;
|
|
1139
|
+
/** Email address of the supervisor */
|
|
1140
|
+
email?: string;
|
|
1141
|
+
/** Phone number of the supervisor */
|
|
1142
|
+
phone?: string;
|
|
1143
|
+
/** Whether the supervisor is currently active */
|
|
1144
|
+
isActive: boolean;
|
|
1145
|
+
/** Date when the supervisor was created */
|
|
1146
|
+
createdAt?: string;
|
|
1147
|
+
/** Date when the supervisor was last updated */
|
|
1148
|
+
updatedAt?: string;
|
|
1149
|
+
}
|
|
1150
|
+
interface Line$1 {
|
|
1151
|
+
/** Unique identifier for the line */
|
|
1152
|
+
id: string;
|
|
1153
|
+
/** Name of the line */
|
|
1154
|
+
name: string;
|
|
1155
|
+
/** Company ID that owns this line */
|
|
1156
|
+
companyId: string;
|
|
1157
|
+
/** Currently assigned supervisor ID */
|
|
1158
|
+
supervisorId?: string;
|
|
1159
|
+
/** Location of the line */
|
|
1160
|
+
location?: string;
|
|
1161
|
+
/** Whether the line is currently active */
|
|
1162
|
+
isActive: boolean;
|
|
1163
|
+
/** Date when the line was created */
|
|
1164
|
+
createdAt?: string;
|
|
1165
|
+
/** Date when the line was last updated */
|
|
1166
|
+
updatedAt?: string;
|
|
1167
|
+
/** Factory ID that the line belongs to */
|
|
1168
|
+
factoryId?: string;
|
|
1169
|
+
}
|
|
1170
|
+
interface SupervisorAssignment {
|
|
1171
|
+
/** Line ID */
|
|
1172
|
+
lineId: string;
|
|
1173
|
+
/** Line name for display */
|
|
1174
|
+
lineName: string;
|
|
1175
|
+
/** Currently assigned supervisor */
|
|
1176
|
+
currentSupervisor?: Supervisor;
|
|
1177
|
+
/** Available supervisors for assignment */
|
|
1178
|
+
availableSupervisors: Supervisor[];
|
|
1179
|
+
}
|
|
1180
|
+
interface SupervisorManagementData {
|
|
1181
|
+
/** List of line-supervisor assignments */
|
|
1182
|
+
assignments: SupervisorAssignment[];
|
|
1183
|
+
/** All available supervisors */
|
|
1184
|
+
allSupervisors: Supervisor[];
|
|
1185
|
+
/** Loading state */
|
|
1186
|
+
loading: boolean;
|
|
1187
|
+
/** Error state */
|
|
1188
|
+
error?: string;
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1129
1191
|
/**
|
|
1130
1192
|
* S3 Clips Service - Secure Version
|
|
1131
1193
|
* Uses API routes instead of direct S3 access
|
|
@@ -1139,7 +1201,7 @@ interface SKUListProps {
|
|
|
1139
1201
|
* 3. Ensure API routes are deployed
|
|
1140
1202
|
*/
|
|
1141
1203
|
|
|
1142
|
-
interface VideoIndexEntry {
|
|
1204
|
+
interface VideoIndexEntry$1 {
|
|
1143
1205
|
uri: string;
|
|
1144
1206
|
category: string;
|
|
1145
1207
|
timestamp: string;
|
|
@@ -1148,9 +1210,9 @@ interface VideoIndexEntry {
|
|
|
1148
1210
|
date: string;
|
|
1149
1211
|
shiftId: string;
|
|
1150
1212
|
}
|
|
1151
|
-
interface VideoIndex {
|
|
1152
|
-
byCategory: Map<string, VideoIndexEntry[]>;
|
|
1153
|
-
allVideos: VideoIndexEntry[];
|
|
1213
|
+
interface VideoIndex$1 {
|
|
1214
|
+
byCategory: Map<string, VideoIndexEntry$1[]>;
|
|
1215
|
+
allVideos: VideoIndexEntry$1[];
|
|
1154
1216
|
counts: Record<string, number>;
|
|
1155
1217
|
workspaceId: string;
|
|
1156
1218
|
date: string;
|
|
@@ -1158,15 +1220,15 @@ interface VideoIndex {
|
|
|
1158
1220
|
lastUpdated: Date;
|
|
1159
1221
|
_debugId?: string;
|
|
1160
1222
|
}
|
|
1161
|
-
interface ClipCountsWithIndex {
|
|
1223
|
+
interface ClipCountsWithIndex$2 {
|
|
1162
1224
|
counts: Record<string, number>;
|
|
1163
|
-
videoIndex: VideoIndex;
|
|
1225
|
+
videoIndex: VideoIndex$1;
|
|
1164
1226
|
}
|
|
1165
1227
|
/**
|
|
1166
1228
|
* S3 Clips Service - Secure Implementation
|
|
1167
1229
|
* All S3 operations go through secure API routes
|
|
1168
1230
|
*/
|
|
1169
|
-
declare class S3ClipsService {
|
|
1231
|
+
declare class S3ClipsService$1 {
|
|
1170
1232
|
private apiClient;
|
|
1171
1233
|
private config;
|
|
1172
1234
|
private readonly defaultLimitPerCategory;
|
|
@@ -1207,12 +1269,12 @@ declare class S3ClipsService {
|
|
|
1207
1269
|
* Get clip counts
|
|
1208
1270
|
*/
|
|
1209
1271
|
getClipCounts(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
|
|
1210
|
-
getClipCounts(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex>;
|
|
1272
|
+
getClipCounts(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex$2>;
|
|
1211
1273
|
/**
|
|
1212
1274
|
* Get clip counts with cache-first strategy
|
|
1213
1275
|
*/
|
|
1214
1276
|
getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
|
|
1215
|
-
getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex>;
|
|
1277
|
+
getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex$2>;
|
|
1216
1278
|
/**
|
|
1217
1279
|
* Get first clip for category
|
|
1218
1280
|
*/
|
|
@@ -1220,7 +1282,7 @@ declare class S3ClipsService {
|
|
|
1220
1282
|
/**
|
|
1221
1283
|
* Get video from index (for compatibility)
|
|
1222
1284
|
*/
|
|
1223
|
-
getVideoFromIndex(videoIndex: VideoIndex, category: string, index: number, includeCycleTime?: boolean, includeMetadata?: boolean): Promise<BottleneckVideoData | null>;
|
|
1285
|
+
getVideoFromIndex(videoIndex: VideoIndex$1, category: string, index: number, includeCycleTime?: boolean, includeMetadata?: boolean): Promise<BottleneckVideoData | null>;
|
|
1224
1286
|
/**
|
|
1225
1287
|
* Get clip by index
|
|
1226
1288
|
*/
|
|
@@ -1253,6 +1315,17 @@ declare class S3ClipsService {
|
|
|
1253
1315
|
* Create empty video index for compatibility
|
|
1254
1316
|
*/
|
|
1255
1317
|
private createEmptyVideoIndex;
|
|
1318
|
+
/**
|
|
1319
|
+
* Get clip by ID
|
|
1320
|
+
*/
|
|
1321
|
+
getClipById(clipId: string, sopCategories?: SOPCategory[]): Promise<BottleneckVideoData | null>;
|
|
1322
|
+
/**
|
|
1323
|
+
* Get neighboring clips
|
|
1324
|
+
*/
|
|
1325
|
+
getNeighboringClips(workspaceId: string, date: string, shiftId: string | number, category: string, currentClipId: string, sopCategories?: SOPCategory[]): Promise<{
|
|
1326
|
+
previous: BottleneckVideoData | null;
|
|
1327
|
+
next: BottleneckVideoData | null;
|
|
1328
|
+
}>;
|
|
1256
1329
|
/**
|
|
1257
1330
|
* Cleanup
|
|
1258
1331
|
*/
|
|
@@ -1316,7 +1389,7 @@ interface PrefetchRequest {
|
|
|
1316
1389
|
/**
|
|
1317
1390
|
* Promise for the prefetch operation
|
|
1318
1391
|
*/
|
|
1319
|
-
promise: Promise<ClipCountsWithIndex | null>;
|
|
1392
|
+
promise: Promise<ClipCountsWithIndex$2 | null>;
|
|
1320
1393
|
/**
|
|
1321
1394
|
* Current status of the request
|
|
1322
1395
|
*/
|
|
@@ -1324,7 +1397,7 @@ interface PrefetchRequest {
|
|
|
1324
1397
|
/**
|
|
1325
1398
|
* Cached data (null until available)
|
|
1326
1399
|
*/
|
|
1327
|
-
data: ClipCountsWithIndex | null;
|
|
1400
|
+
data: ClipCountsWithIndex$2 | null;
|
|
1328
1401
|
/**
|
|
1329
1402
|
* Any error that occurred
|
|
1330
1403
|
*/
|
|
@@ -1338,9 +1411,9 @@ interface PrefetchRequest {
|
|
|
1338
1411
|
*/
|
|
1339
1412
|
subscribers: Set<string>;
|
|
1340
1413
|
}
|
|
1341
|
-
type StatusChangeCallback$1 = (key: string, status: PrefetchStatus$1, data?: ClipCountsWithIndex | null, error?: Error | null) => void;
|
|
1342
|
-
type RenderReadyCallback$1 = (key: string, data: ClipCountsWithIndex) => void;
|
|
1343
|
-
type FullyIndexedCallback$1 = (key: string, data: ClipCountsWithIndex) => void;
|
|
1414
|
+
type StatusChangeCallback$1 = (key: string, status: PrefetchStatus$1, data?: ClipCountsWithIndex$2 | null, error?: Error | null) => void;
|
|
1415
|
+
type RenderReadyCallback$1 = (key: string, data: ClipCountsWithIndex$2) => void;
|
|
1416
|
+
type FullyIndexedCallback$1 = (key: string, data: ClipCountsWithIndex$2) => void;
|
|
1344
1417
|
type ErrorCallback$1 = (key: string, error: Error) => void;
|
|
1345
1418
|
interface PrefetchSubscriptionCallbacks {
|
|
1346
1419
|
/**
|
|
@@ -1368,7 +1441,7 @@ interface PrefetchStatusResult {
|
|
|
1368
1441
|
/**
|
|
1369
1442
|
* Available data (null until render-ready)
|
|
1370
1443
|
*/
|
|
1371
|
-
data: ClipCountsWithIndex | null;
|
|
1444
|
+
data: ClipCountsWithIndex$2 | null;
|
|
1372
1445
|
/**
|
|
1373
1446
|
* Any error that occurred
|
|
1374
1447
|
*/
|
|
@@ -1448,7 +1521,7 @@ interface UsePrefetchClipCountsResult$1 {
|
|
|
1448
1521
|
/**
|
|
1449
1522
|
* Clip counts data (available when render ready or fully indexed)
|
|
1450
1523
|
*/
|
|
1451
|
-
data: ClipCountsWithIndex | null;
|
|
1524
|
+
data: ClipCountsWithIndex$2 | null;
|
|
1452
1525
|
/**
|
|
1453
1526
|
* Any error that occurred during prefetching
|
|
1454
1527
|
*/
|
|
@@ -1468,7 +1541,7 @@ interface UsePrefetchClipCountsResult$1 {
|
|
|
1468
1541
|
/**
|
|
1469
1542
|
* Manual trigger function for re-prefetching
|
|
1470
1543
|
*/
|
|
1471
|
-
prefetchClipCounts: () => Promise<ClipCountsWithIndex | null>;
|
|
1544
|
+
prefetchClipCounts: () => Promise<ClipCountsWithIndex$2 | null>;
|
|
1472
1545
|
/**
|
|
1473
1546
|
* Cache key used for this request
|
|
1474
1547
|
*/
|
|
@@ -1566,7 +1639,7 @@ interface PrefetchResult {
|
|
|
1566
1639
|
/**
|
|
1567
1640
|
* The prefetched data
|
|
1568
1641
|
*/
|
|
1569
|
-
data: ClipCountsWithIndex | null;
|
|
1642
|
+
data: ClipCountsWithIndex$2 | null;
|
|
1570
1643
|
/**
|
|
1571
1644
|
* Whether this came from cache
|
|
1572
1645
|
*/
|
|
@@ -1603,10 +1676,10 @@ type PrefetchKey = string;
|
|
|
1603
1676
|
type SubscriberId = string;
|
|
1604
1677
|
type CleanupFunction = () => void;
|
|
1605
1678
|
interface IPrefetchManager {
|
|
1606
|
-
prefetch(params: PrefetchParams$1, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex | null>;
|
|
1679
|
+
prefetch(params: PrefetchParams$1, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex$2 | null>;
|
|
1607
1680
|
getStatus(params: PrefetchParams$1): PrefetchStatusResult;
|
|
1608
1681
|
isDataAvailable(params: PrefetchParams$1): boolean;
|
|
1609
|
-
getCachedData(params: PrefetchParams$1): ClipCountsWithIndex | null;
|
|
1682
|
+
getCachedData(params: PrefetchParams$1): ClipCountsWithIndex$2 | null;
|
|
1610
1683
|
subscribe(params: PrefetchParams$1, subscriberId: string, callbacks: PrefetchSubscriptionCallbacks): CleanupFunction;
|
|
1611
1684
|
cancel(params: PrefetchParams$1, subscriberId?: string): void;
|
|
1612
1685
|
clear(): void;
|
|
@@ -1722,6 +1795,10 @@ interface AuthContextType {
|
|
|
1722
1795
|
loading: boolean;
|
|
1723
1796
|
error: Error | null;
|
|
1724
1797
|
signOut: () => Promise<void>;
|
|
1798
|
+
markFirstLoginCompleted: () => Promise<boolean>;
|
|
1799
|
+
showOnboarding: boolean;
|
|
1800
|
+
setShowOnboarding: (show: boolean) => void;
|
|
1801
|
+
completeOnboarding: () => Promise<void>;
|
|
1725
1802
|
}
|
|
1726
1803
|
declare const useAuth: () => AuthContextType;
|
|
1727
1804
|
declare const AuthProvider: React__default.FC<{
|
|
@@ -2405,7 +2482,7 @@ declare const useTargets: (options?: UseTargetsOptions) => {
|
|
|
2405
2482
|
* @property {string} [createdAt] - Timestamp of creation.
|
|
2406
2483
|
* @property {string} [updatedAt] - Timestamp of last update.
|
|
2407
2484
|
*/
|
|
2408
|
-
interface ShiftData$
|
|
2485
|
+
interface ShiftData$3 {
|
|
2409
2486
|
id: string | number;
|
|
2410
2487
|
name: string;
|
|
2411
2488
|
startTime: string;
|
|
@@ -2436,7 +2513,7 @@ interface ShiftData$2 {
|
|
|
2436
2513
|
* // Render shifts information
|
|
2437
2514
|
*/
|
|
2438
2515
|
declare const useShifts: () => {
|
|
2439
|
-
shifts: ShiftData$
|
|
2516
|
+
shifts: ShiftData$3[];
|
|
2440
2517
|
isLoading: boolean;
|
|
2441
2518
|
error: MetricsError | null;
|
|
2442
2519
|
refetch: () => Promise<void>;
|
|
@@ -2794,7 +2871,7 @@ declare const useSKUs: (companyId: string) => UseSKUsReturn;
|
|
|
2794
2871
|
|
|
2795
2872
|
/**
|
|
2796
2873
|
* Hook to check if the current user can save targets
|
|
2797
|
-
*
|
|
2874
|
+
* TEMPORARILY DISABLED: All users can save targets
|
|
2798
2875
|
*/
|
|
2799
2876
|
declare const useCanSaveTargets: () => boolean;
|
|
2800
2877
|
|
|
@@ -2854,19 +2931,170 @@ interface UseTicketHistoryReturn {
|
|
|
2854
2931
|
declare function useTicketHistory(companyId?: string): UseTicketHistoryReturn;
|
|
2855
2932
|
|
|
2856
2933
|
/**
|
|
2857
|
-
*
|
|
2934
|
+
* S3 Clips Service - Supabase Version
|
|
2935
|
+
* Uses Supabase database instead of S3 listing for clip management
|
|
2858
2936
|
*
|
|
2859
|
-
*
|
|
2860
|
-
*
|
|
2937
|
+
* This is a drop-in replacement for s3-clips-secure.ts that uses
|
|
2938
|
+
* the new Supabase-based API endpoints.
|
|
2861
2939
|
*
|
|
2862
|
-
*
|
|
2863
|
-
* -
|
|
2864
|
-
* -
|
|
2865
|
-
* -
|
|
2866
|
-
* -
|
|
2867
|
-
* - Automatic cleanup and error handling
|
|
2940
|
+
* Benefits:
|
|
2941
|
+
* - Faster loading (direct DB queries vs S3 listing)
|
|
2942
|
+
* - Richer metadata immediately available
|
|
2943
|
+
* - Better filtering and sorting capabilities
|
|
2944
|
+
* - Lower AWS costs
|
|
2868
2945
|
*/
|
|
2869
2946
|
|
|
2947
|
+
interface VideoIndexEntry {
|
|
2948
|
+
uri: string;
|
|
2949
|
+
category: string;
|
|
2950
|
+
timestamp: string;
|
|
2951
|
+
videoId: string;
|
|
2952
|
+
workspaceId: string;
|
|
2953
|
+
date: string;
|
|
2954
|
+
shiftId: string;
|
|
2955
|
+
}
|
|
2956
|
+
interface VideoIndex {
|
|
2957
|
+
byCategory: Map<string, VideoIndexEntry[]>;
|
|
2958
|
+
allVideos: VideoIndexEntry[];
|
|
2959
|
+
counts: Record<string, number>;
|
|
2960
|
+
workspaceId: string;
|
|
2961
|
+
date: string;
|
|
2962
|
+
shiftId: string;
|
|
2963
|
+
lastUpdated: Date;
|
|
2964
|
+
_debugId?: string;
|
|
2965
|
+
}
|
|
2966
|
+
interface ClipCountsWithIndex$1 {
|
|
2967
|
+
counts: Record<string, number>;
|
|
2968
|
+
videoIndex: VideoIndex;
|
|
2969
|
+
}
|
|
2970
|
+
interface ClipType {
|
|
2971
|
+
id: string;
|
|
2972
|
+
type: string;
|
|
2973
|
+
label: string;
|
|
2974
|
+
color: string;
|
|
2975
|
+
description?: string;
|
|
2976
|
+
subtitle?: string;
|
|
2977
|
+
icon?: string;
|
|
2978
|
+
sort_order?: number;
|
|
2979
|
+
severity_levels?: string[];
|
|
2980
|
+
count?: number;
|
|
2981
|
+
metadata?: {
|
|
2982
|
+
label?: string;
|
|
2983
|
+
color?: string;
|
|
2984
|
+
description?: string;
|
|
2985
|
+
icon?: string;
|
|
2986
|
+
sort_order?: number;
|
|
2987
|
+
severity_levels?: string[];
|
|
2988
|
+
};
|
|
2989
|
+
}
|
|
2990
|
+
/**
|
|
2991
|
+
* S3 Clips Service - Supabase Implementation
|
|
2992
|
+
* All clip operations go through Supabase database
|
|
2993
|
+
*/
|
|
2994
|
+
declare class S3ClipsSupabaseService {
|
|
2995
|
+
private config;
|
|
2996
|
+
private requestCache;
|
|
2997
|
+
private readonly defaultLimitPerCategory;
|
|
2998
|
+
private readonly maxLimitPerCategory;
|
|
2999
|
+
private readonly concurrencyLimit;
|
|
3000
|
+
private readonly maxInitialFetch;
|
|
3001
|
+
private isIndexBuilding;
|
|
3002
|
+
private isPrefetching;
|
|
3003
|
+
private currentMetadataFetches;
|
|
3004
|
+
private readonly MAX_CONCURRENT_METADATA;
|
|
3005
|
+
constructor(config: DashboardConfig);
|
|
3006
|
+
/**
|
|
3007
|
+
* Fetch with authentication and error handling
|
|
3008
|
+
*/
|
|
3009
|
+
private fetchWithAuth;
|
|
3010
|
+
/**
|
|
3011
|
+
* Deduplicate requests to prevent multiple API calls
|
|
3012
|
+
*/
|
|
3013
|
+
private deduplicate;
|
|
3014
|
+
/**
|
|
3015
|
+
* Lists clips using Supabase API
|
|
3016
|
+
*/
|
|
3017
|
+
listS3Clips(params: S3ListObjectsParams): Promise<string[]>;
|
|
3018
|
+
/**
|
|
3019
|
+
* Get metadata cycle time
|
|
3020
|
+
*/
|
|
3021
|
+
getMetadataCycleTime(clipId: string): Promise<number | null>;
|
|
3022
|
+
/**
|
|
3023
|
+
* Control prefetch mode
|
|
3024
|
+
*/
|
|
3025
|
+
setPrefetchMode(enabled: boolean): void;
|
|
3026
|
+
/**
|
|
3027
|
+
* Get full metadata
|
|
3028
|
+
*/
|
|
3029
|
+
getFullMetadata(clipId: string): Promise<VideoMetadata | null>;
|
|
3030
|
+
/**
|
|
3031
|
+
* Get clip counts with optional video index
|
|
3032
|
+
*/
|
|
3033
|
+
getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex?: boolean): Promise<ClipCountsWithIndex$1 | Record<string, number>>;
|
|
3034
|
+
/**
|
|
3035
|
+
* Get clip counts (simplified version)
|
|
3036
|
+
*/
|
|
3037
|
+
getClipCounts(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
|
|
3038
|
+
/**
|
|
3039
|
+
* Get clip by ID - stable navigation method
|
|
3040
|
+
* This ensures navigation works even when new clips are added
|
|
3041
|
+
*/
|
|
3042
|
+
getClipById(clipId: string, sopCategories?: SOPCategory[]): Promise<BottleneckVideoData | null>;
|
|
3043
|
+
/**
|
|
3044
|
+
* Get neighboring clips for navigation
|
|
3045
|
+
* Returns previous and next clips based on timestamp
|
|
3046
|
+
*/
|
|
3047
|
+
getNeighboringClips(workspaceId: string, date: string, shiftId: string | number, category: string, currentClipId: string, sopCategories?: SOPCategory[]): Promise<{
|
|
3048
|
+
previous: BottleneckVideoData | null;
|
|
3049
|
+
next: BottleneckVideoData | null;
|
|
3050
|
+
}>;
|
|
3051
|
+
/**
|
|
3052
|
+
* Get clip by index
|
|
3053
|
+
* @deprecated Use getClipById for stable navigation
|
|
3054
|
+
*/
|
|
3055
|
+
getClipByIndex(workspaceId: string, date: string, shiftId: string | number, category: string, index: number): Promise<BottleneckVideoData | null>;
|
|
3056
|
+
/**
|
|
3057
|
+
* Get first clip for all categories
|
|
3058
|
+
*/
|
|
3059
|
+
getFirstClipsForAllCategories(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, BottleneckVideoData | null>>;
|
|
3060
|
+
/**
|
|
3061
|
+
* Get first clip for a specific category
|
|
3062
|
+
*/
|
|
3063
|
+
getFirstClipForCategory(workspaceId: string, date: string, shiftId: string | number, category: string): Promise<BottleneckVideoData | null>;
|
|
3064
|
+
/**
|
|
3065
|
+
* Batch fetch videos (alias for batchFetchClips for compatibility)
|
|
3066
|
+
*/
|
|
3067
|
+
batchFetchVideos(workspaceId: string, date: string, shiftId: string | number, requests: Array<{
|
|
3068
|
+
category: string;
|
|
3069
|
+
index: number;
|
|
3070
|
+
}>): Promise<Array<BottleneckVideoData | null>>;
|
|
3071
|
+
/**
|
|
3072
|
+
* Batch fetch clips
|
|
3073
|
+
*/
|
|
3074
|
+
batchFetchClips(workspaceId: string, date: string, shiftId: string | number, requests: Array<{
|
|
3075
|
+
category: string;
|
|
3076
|
+
index: number;
|
|
3077
|
+
}>): Promise<Array<BottleneckVideoData | null>>;
|
|
3078
|
+
/**
|
|
3079
|
+
* Get all clip types from Supabase
|
|
3080
|
+
*/
|
|
3081
|
+
getClipTypes(): Promise<ClipType[]>;
|
|
3082
|
+
/**
|
|
3083
|
+
* Ensure videos are loaded for navigation
|
|
3084
|
+
*/
|
|
3085
|
+
ensureVideosLoaded(workspaceId: string, date: string, shiftId: string | number, category: string, currentIndex: number): Promise<void>;
|
|
3086
|
+
}
|
|
3087
|
+
|
|
3088
|
+
/**
|
|
3089
|
+
* Video Prefetch Manager - DISABLED
|
|
3090
|
+
*
|
|
3091
|
+
* This service has been disabled as part of removing all client-side caching and preloading.
|
|
3092
|
+
* All methods now return empty/null values to prevent any caching or prefetching.
|
|
3093
|
+
*
|
|
3094
|
+
* The file is kept for compatibility but all functionality is disabled.
|
|
3095
|
+
*/
|
|
3096
|
+
|
|
3097
|
+
declare const S3ClipsService: typeof S3ClipsService$1 | typeof S3ClipsSupabaseService;
|
|
2870
3098
|
declare enum PrefetchStatus {
|
|
2871
3099
|
IDLE = "idle",
|
|
2872
3100
|
PENDING = "pending",
|
|
@@ -2879,73 +3107,47 @@ interface PrefetchParams {
|
|
|
2879
3107
|
date: string;
|
|
2880
3108
|
shift: string;
|
|
2881
3109
|
}
|
|
2882
|
-
type StatusChangeCallback = (key: string, status: PrefetchStatus, data?: ClipCountsWithIndex | null, error?: Error | null) => void;
|
|
2883
|
-
type RenderReadyCallback = (key: string, data: ClipCountsWithIndex) => void;
|
|
2884
|
-
type FullyIndexedCallback = (key: string, data: ClipCountsWithIndex) => void;
|
|
3110
|
+
type StatusChangeCallback = (key: string, status: PrefetchStatus, data?: ClipCountsWithIndex$2 | null, error?: Error | null) => void;
|
|
3111
|
+
type RenderReadyCallback = (key: string, data: ClipCountsWithIndex$2) => void;
|
|
3112
|
+
type FullyIndexedCallback = (key: string, data: ClipCountsWithIndex$2) => void;
|
|
2885
3113
|
type ErrorCallback = (key: string, error: Error) => void;
|
|
2886
3114
|
/**
|
|
2887
|
-
*
|
|
3115
|
+
* DISABLED Video Prefetch Manager
|
|
2888
3116
|
*
|
|
2889
|
-
*
|
|
2890
|
-
* Prevents duplicate requests and provides granular loading states.
|
|
3117
|
+
* All methods return null/empty values - no caching or prefetching occurs
|
|
2891
3118
|
*/
|
|
2892
3119
|
declare class VideoPrefetchManager extends EventEmitter {
|
|
2893
|
-
private requests;
|
|
2894
3120
|
private s3Services;
|
|
2895
|
-
private cleanupInterval;
|
|
2896
|
-
private readonly REQUEST_TTL;
|
|
2897
|
-
private readonly CLEANUP_INTERVAL;
|
|
2898
|
-
private readonly MAX_CONCURRENT_REQUESTS;
|
|
2899
3121
|
constructor();
|
|
2900
3122
|
/**
|
|
2901
|
-
*
|
|
2902
|
-
|
|
2903
|
-
private generateKey;
|
|
2904
|
-
/**
|
|
2905
|
-
* Get or create S3 service instance for dashboard config
|
|
2906
|
-
* Public method to allow sharing the same S3Service instance across components
|
|
2907
|
-
*/
|
|
2908
|
-
getS3Service(dashboardConfig: DashboardConfig): S3ClipsService;
|
|
2909
|
-
/**
|
|
2910
|
-
* Emit status change event with error handling
|
|
2911
|
-
*/
|
|
2912
|
-
private safeEmit;
|
|
2913
|
-
/**
|
|
2914
|
-
* Update request status and emit events
|
|
2915
|
-
*/
|
|
2916
|
-
private updateRequestStatus;
|
|
2917
|
-
/**
|
|
2918
|
-
* Perform the actual prefetch operation with timeout protection
|
|
3123
|
+
* Get or create S3 service instance
|
|
3124
|
+
* Still functional to provide S3 service instances
|
|
2919
3125
|
*/
|
|
2920
|
-
|
|
3126
|
+
getS3Service(dashboardConfig: DashboardConfig): InstanceType<typeof S3ClipsService>;
|
|
2921
3127
|
/**
|
|
2922
|
-
*
|
|
3128
|
+
* DISABLED - Returns null immediately
|
|
2923
3129
|
*/
|
|
2924
|
-
|
|
3130
|
+
prefetch(params: PrefetchParams, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex$2 | null>;
|
|
2925
3131
|
/**
|
|
2926
|
-
*
|
|
2927
|
-
*/
|
|
2928
|
-
prefetch(params: PrefetchParams, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex | null>;
|
|
2929
|
-
/**
|
|
2930
|
-
* Get current status of a prefetch request
|
|
3132
|
+
* DISABLED - Returns idle status
|
|
2931
3133
|
*/
|
|
2932
3134
|
getStatus(params: PrefetchParams): {
|
|
2933
3135
|
status: PrefetchStatus;
|
|
2934
|
-
data: ClipCountsWithIndex | null;
|
|
3136
|
+
data: ClipCountsWithIndex$2 | null;
|
|
2935
3137
|
error: Error | null;
|
|
2936
3138
|
isRenderReady: boolean;
|
|
2937
3139
|
isFullyIndexed: boolean;
|
|
2938
3140
|
};
|
|
2939
3141
|
/**
|
|
2940
|
-
*
|
|
3142
|
+
* DISABLED - Always returns false
|
|
2941
3143
|
*/
|
|
2942
3144
|
isDataAvailable(params: PrefetchParams): boolean;
|
|
2943
3145
|
/**
|
|
2944
|
-
*
|
|
3146
|
+
* DISABLED - Always returns null
|
|
2945
3147
|
*/
|
|
2946
|
-
getCachedData(params: PrefetchParams): ClipCountsWithIndex | null;
|
|
3148
|
+
getCachedData(params: PrefetchParams): ClipCountsWithIndex$2 | null;
|
|
2947
3149
|
/**
|
|
2948
|
-
*
|
|
3150
|
+
* DISABLED - Returns empty cleanup function
|
|
2949
3151
|
*/
|
|
2950
3152
|
subscribe(params: PrefetchParams, subscriberId: string, callbacks: {
|
|
2951
3153
|
onStatusChange?: StatusChangeCallback;
|
|
@@ -2954,15 +3156,15 @@ declare class VideoPrefetchManager extends EventEmitter {
|
|
|
2954
3156
|
onError?: ErrorCallback;
|
|
2955
3157
|
}): () => void;
|
|
2956
3158
|
/**
|
|
2957
|
-
*
|
|
3159
|
+
* DISABLED - Does nothing
|
|
2958
3160
|
*/
|
|
2959
3161
|
cancel(params: PrefetchParams, subscriberId?: string): void;
|
|
2960
3162
|
/**
|
|
2961
|
-
*
|
|
3163
|
+
* DISABLED - Does nothing
|
|
2962
3164
|
*/
|
|
2963
3165
|
clear(): void;
|
|
2964
3166
|
/**
|
|
2965
|
-
*
|
|
3167
|
+
* DISABLED - Returns empty stats
|
|
2966
3168
|
*/
|
|
2967
3169
|
getStats(): {
|
|
2968
3170
|
totalRequests: number;
|
|
@@ -2971,90 +3173,44 @@ declare class VideoPrefetchManager extends EventEmitter {
|
|
|
2971
3173
|
totalSubscribers: number;
|
|
2972
3174
|
};
|
|
2973
3175
|
/**
|
|
2974
|
-
*
|
|
2975
|
-
*/
|
|
2976
|
-
private startCleanup;
|
|
2977
|
-
/**
|
|
2978
|
-
* Stop cleanup task
|
|
3176
|
+
* DISABLED - Does nothing
|
|
2979
3177
|
*/
|
|
2980
3178
|
destroy(): void;
|
|
2981
3179
|
}
|
|
2982
3180
|
declare const videoPrefetchManager: VideoPrefetchManager;
|
|
2983
3181
|
|
|
2984
3182
|
/**
|
|
2985
|
-
* usePrefetchClipCounts Hook
|
|
3183
|
+
* usePrefetchClipCounts Hook - DISABLED
|
|
2986
3184
|
*
|
|
2987
|
-
*
|
|
2988
|
-
*
|
|
2989
|
-
* enabling 70-90% faster rendering when they do access the clips.
|
|
3185
|
+
* This hook has been disabled as part of removing all client-side caching and preloading.
|
|
3186
|
+
* All functionality returns empty/null values to prevent any prefetching.
|
|
2990
3187
|
*
|
|
2991
|
-
*
|
|
3188
|
+
* The file is kept for compatibility but all functionality is disabled.
|
|
2992
3189
|
*/
|
|
2993
3190
|
|
|
3191
|
+
declare const USE_SUPABASE_CLIPS = true;
|
|
3192
|
+
|
|
3193
|
+
type ClipCountsWithIndex = typeof USE_SUPABASE_CLIPS extends true ? ClipCountsWithIndex$1 : ClipCountsWithIndex$2;
|
|
2994
3194
|
interface UsePrefetchClipCountsOptions {
|
|
2995
|
-
/**
|
|
2996
|
-
* Workspace ID to prefetch counts for
|
|
2997
|
-
*/
|
|
2998
3195
|
workspaceId: string;
|
|
2999
|
-
/**
|
|
3000
|
-
* Optional date string (YYYY-MM-DD). If not provided, uses operational date
|
|
3001
|
-
*/
|
|
3002
3196
|
date?: string;
|
|
3003
|
-
/**
|
|
3004
|
-
* Optional shift ID (0 = day, 1 = night). If not provided, uses current shift
|
|
3005
|
-
*/
|
|
3006
3197
|
shift?: number | string;
|
|
3007
|
-
/**
|
|
3008
|
-
* Whether to enable prefetching. Defaults to true
|
|
3009
|
-
*/
|
|
3010
3198
|
enabled?: boolean;
|
|
3011
|
-
/**
|
|
3012
|
-
* Whether to build full video index. Defaults to false for cost efficiency.
|
|
3013
|
-
* Set to true only if you need the complete video index.
|
|
3014
|
-
*/
|
|
3015
3199
|
buildIndex?: boolean;
|
|
3016
|
-
/**
|
|
3017
|
-
* Subscriber ID for tracking. Auto-generated if not provided
|
|
3018
|
-
*/
|
|
3019
3200
|
subscriberId?: string;
|
|
3020
3201
|
}
|
|
3021
3202
|
interface UsePrefetchClipCountsResult {
|
|
3022
|
-
/**
|
|
3023
|
-
* Current prefetch status
|
|
3024
|
-
*/
|
|
3025
3203
|
status: PrefetchStatus;
|
|
3026
|
-
/**
|
|
3027
|
-
* Clip counts data (available when render ready or fully indexed)
|
|
3028
|
-
*/
|
|
3029
3204
|
data: ClipCountsWithIndex | null;
|
|
3030
|
-
/**
|
|
3031
|
-
* Any error that occurred during prefetching
|
|
3032
|
-
*/
|
|
3033
3205
|
error: Error | null;
|
|
3034
|
-
/**
|
|
3035
|
-
* Whether data is ready for rendering (counts available)
|
|
3036
|
-
*/
|
|
3037
3206
|
isRenderReady: boolean;
|
|
3038
|
-
/**
|
|
3039
|
-
* Whether full video index is available
|
|
3040
|
-
*/
|
|
3041
3207
|
isFullyIndexed: boolean;
|
|
3042
|
-
/**
|
|
3043
|
-
* Whether the prefetch is currently in progress
|
|
3044
|
-
*/
|
|
3045
3208
|
isLoading: boolean;
|
|
3046
|
-
/**
|
|
3047
|
-
* Manual trigger function for re-prefetching
|
|
3048
|
-
*/
|
|
3049
3209
|
prefetchClipCounts: () => Promise<ClipCountsWithIndex | null>;
|
|
3050
|
-
/**
|
|
3051
|
-
* Cache key used for this request
|
|
3052
|
-
*/
|
|
3053
3210
|
cacheKey: string;
|
|
3054
3211
|
}
|
|
3055
3212
|
/**
|
|
3056
|
-
* Hook
|
|
3057
|
-
* Enhanced with videoPrefetchManager integration
|
|
3213
|
+
* DISABLED Hook - Returns empty/null values
|
|
3058
3214
|
*/
|
|
3059
3215
|
declare const usePrefetchClipCounts: ({ workspaceId, date, shift, enabled, buildIndex, subscriberId }: UsePrefetchClipCountsOptions) => UsePrefetchClipCountsResult;
|
|
3060
3216
|
|
|
@@ -3117,6 +3273,30 @@ interface UseHourEndTimerProps {
|
|
|
3117
3273
|
*/
|
|
3118
3274
|
declare const useHourEndTimer: ({ onHourEnd, enabled }: UseHourEndTimerProps) => void;
|
|
3119
3275
|
|
|
3276
|
+
/**
|
|
3277
|
+
* useClipTypes Hook
|
|
3278
|
+
* Fetches and manages clip types from Supabase
|
|
3279
|
+
* Provides the single source of truth for available clip categories
|
|
3280
|
+
*/
|
|
3281
|
+
|
|
3282
|
+
interface UseClipTypesResult {
|
|
3283
|
+
clipTypes: ClipType[];
|
|
3284
|
+
isLoading: boolean;
|
|
3285
|
+
error: string | null;
|
|
3286
|
+
refresh: () => Promise<void>;
|
|
3287
|
+
}
|
|
3288
|
+
/**
|
|
3289
|
+
* Hook to fetch and manage clip types from Supabase
|
|
3290
|
+
* Uses the shared S3ClipsService instance for consistency
|
|
3291
|
+
*/
|
|
3292
|
+
declare function useClipTypes(): UseClipTypesResult;
|
|
3293
|
+
/**
|
|
3294
|
+
* Hook to get clip types with counts for a specific workspace/date/shift
|
|
3295
|
+
*/
|
|
3296
|
+
declare function useClipTypesWithCounts(workspaceId: string, date: string, shiftId: string | number): UseClipTypesResult & {
|
|
3297
|
+
counts: Record<string, number>;
|
|
3298
|
+
};
|
|
3299
|
+
|
|
3120
3300
|
/**
|
|
3121
3301
|
* Interface for navigation method used across packages
|
|
3122
3302
|
* Abstracts navigation implementation details from components
|
|
@@ -3344,6 +3524,22 @@ interface UseFormatNumberResult {
|
|
|
3344
3524
|
*/
|
|
3345
3525
|
declare const useFormatNumber: () => UseFormatNumberResult;
|
|
3346
3526
|
|
|
3527
|
+
type UserRole = 'owner' | 'plant_head' | 'supervisor';
|
|
3528
|
+
interface AccessControlReturn {
|
|
3529
|
+
userRole: UserRole | null;
|
|
3530
|
+
hasAccess: (path: string) => boolean;
|
|
3531
|
+
accessiblePages: string[];
|
|
3532
|
+
isPageVisible: (path: string) => boolean;
|
|
3533
|
+
canAccessPage: (path: string) => boolean;
|
|
3534
|
+
}
|
|
3535
|
+
/**
|
|
3536
|
+
* Hook to manage role-based access control
|
|
3537
|
+
* TEMPORARILY DISABLED: All users have access to all pages
|
|
3538
|
+
*
|
|
3539
|
+
* @returns {AccessControlReturn} Access control utilities and state
|
|
3540
|
+
*/
|
|
3541
|
+
declare function useAccessControl(): AccessControlReturn;
|
|
3542
|
+
|
|
3347
3543
|
declare const actionService: {
|
|
3348
3544
|
getActionsByName(actionNames: string[], companyIdInput?: string): Promise<Action[]>;
|
|
3349
3545
|
};
|
|
@@ -3744,6 +3940,166 @@ declare class AudioServiceClass {
|
|
|
3744
3940
|
declare const AudioService: AudioServiceClass;
|
|
3745
3941
|
declare const useAudioService: () => AudioServiceClass;
|
|
3746
3942
|
|
|
3943
|
+
/**
|
|
3944
|
+
* Line data formatted for the UI
|
|
3945
|
+
*/
|
|
3946
|
+
interface Line {
|
|
3947
|
+
id: string;
|
|
3948
|
+
name: string;
|
|
3949
|
+
companyId: string;
|
|
3950
|
+
isActive: boolean;
|
|
3951
|
+
createdAt?: string;
|
|
3952
|
+
factoryId?: string;
|
|
3953
|
+
}
|
|
3954
|
+
/**
|
|
3955
|
+
* Service for managing lines data
|
|
3956
|
+
*/
|
|
3957
|
+
declare class LinesService {
|
|
3958
|
+
private supabase;
|
|
3959
|
+
constructor(supabase: SupabaseClient$1);
|
|
3960
|
+
/**
|
|
3961
|
+
* Fetch all active lines for a given company
|
|
3962
|
+
* @param companyId - The company ID to fetch lines for
|
|
3963
|
+
* @returns Promise<Line[]> - Array of lines for the company
|
|
3964
|
+
*/
|
|
3965
|
+
getLinesByCompanyId(companyId: string): Promise<Line[]>;
|
|
3966
|
+
/**
|
|
3967
|
+
* Fetch all active lines (for all companies)
|
|
3968
|
+
* @returns Promise<Line[]> - Array of all active lines
|
|
3969
|
+
*/
|
|
3970
|
+
getAllLines(): Promise<Line[]>;
|
|
3971
|
+
/**
|
|
3972
|
+
* Fetch a single line by ID
|
|
3973
|
+
* @param lineId - The line ID to fetch
|
|
3974
|
+
* @returns Promise<Line | null> - The line data or null if not found
|
|
3975
|
+
*/
|
|
3976
|
+
getLineById(lineId: string): Promise<Line | null>;
|
|
3977
|
+
}
|
|
3978
|
+
/**
|
|
3979
|
+
* Create a lines service instance
|
|
3980
|
+
* @param supabase - Supabase client instance
|
|
3981
|
+
* @returns LinesService instance
|
|
3982
|
+
*/
|
|
3983
|
+
declare const createLinesService: (supabase: SupabaseClient$1) => LinesService;
|
|
3984
|
+
/**
|
|
3985
|
+
* Default export for convenience
|
|
3986
|
+
*/
|
|
3987
|
+
declare const linesService: {
|
|
3988
|
+
create: (supabase: SupabaseClient$1) => LinesService;
|
|
3989
|
+
};
|
|
3990
|
+
|
|
3991
|
+
/**
|
|
3992
|
+
* Service for managing supervisor assignments with real lines data and real user data
|
|
3993
|
+
*/
|
|
3994
|
+
declare class SupervisorService {
|
|
3995
|
+
private supabase;
|
|
3996
|
+
private linesService;
|
|
3997
|
+
private userService;
|
|
3998
|
+
constructor(supabase: SupabaseClient$1);
|
|
3999
|
+
/**
|
|
4000
|
+
* Get supervisor management data for a specific company
|
|
4001
|
+
* Uses real lines data and real user data from the database
|
|
4002
|
+
* @param companyId - The company ID to fetch data for
|
|
4003
|
+
* @returns Promise<SupervisorManagementData>
|
|
4004
|
+
*/
|
|
4005
|
+
getSupervisorManagementData(companyId: string): Promise<SupervisorManagementData>;
|
|
4006
|
+
/**
|
|
4007
|
+
* Get all supervisors for a specific company (real data from database)
|
|
4008
|
+
* @param companyId - The company ID to fetch supervisors for
|
|
4009
|
+
* @returns Promise<Supervisor[]>
|
|
4010
|
+
*/
|
|
4011
|
+
getAllSupervisors(companyId: string): Promise<Supervisor[]>;
|
|
4012
|
+
/**
|
|
4013
|
+
* Get active supervisors only for a specific company
|
|
4014
|
+
* @param companyId - The company ID to fetch active supervisors for
|
|
4015
|
+
* @returns Promise<Supervisor[]>
|
|
4016
|
+
*/
|
|
4017
|
+
getActiveSupervisors(companyId: string): Promise<Supervisor[]>;
|
|
4018
|
+
/**
|
|
4019
|
+
* Assign a supervisor to a line
|
|
4020
|
+
* This is a mock implementation - in production, this would update the database
|
|
4021
|
+
* @param lineId - The line ID
|
|
4022
|
+
* @param supervisorId - The supervisor ID to assign
|
|
4023
|
+
* @returns Promise<boolean> - Success status
|
|
4024
|
+
*/
|
|
4025
|
+
assignSupervisorToLine(lineId: string, supervisorId?: string): Promise<boolean>;
|
|
4026
|
+
/**
|
|
4027
|
+
* Helper method to simulate supervisor assignments
|
|
4028
|
+
* In production, this would be fetched from the database
|
|
4029
|
+
* @param lineId - The line ID
|
|
4030
|
+
* @param supervisors - Available supervisors
|
|
4031
|
+
* @returns Supervisor or undefined
|
|
4032
|
+
*/
|
|
4033
|
+
private getRandomSupervisorForLine;
|
|
4034
|
+
}
|
|
4035
|
+
/**
|
|
4036
|
+
* Create a supervisor service instance
|
|
4037
|
+
* @param supabase - Supabase client instance
|
|
4038
|
+
* @returns SupervisorService instance
|
|
4039
|
+
*/
|
|
4040
|
+
declare const createSupervisorService: (supabase: SupabaseClient$1) => SupervisorService;
|
|
4041
|
+
/**
|
|
4042
|
+
* Simulate API delay for realistic loading states
|
|
4043
|
+
*/
|
|
4044
|
+
declare const simulateApiDelay: (ms?: number) => Promise<void>;
|
|
4045
|
+
|
|
4046
|
+
/**
|
|
4047
|
+
* User data formatted for the UI (compatible with Supervisor interface)
|
|
4048
|
+
*/
|
|
4049
|
+
interface CompanyUser {
|
|
4050
|
+
id: string;
|
|
4051
|
+
name: string;
|
|
4052
|
+
email: string;
|
|
4053
|
+
isActive: boolean;
|
|
4054
|
+
createdAt?: string;
|
|
4055
|
+
updatedAt?: string;
|
|
4056
|
+
}
|
|
4057
|
+
/**
|
|
4058
|
+
* Service for managing user data from the database
|
|
4059
|
+
*/
|
|
4060
|
+
declare class UserService {
|
|
4061
|
+
private supabase;
|
|
4062
|
+
constructor(supabase: SupabaseClient$1);
|
|
4063
|
+
/**
|
|
4064
|
+
* Fetch all users mapped to a specific company
|
|
4065
|
+
* @param companyId - The company ID to fetch users for
|
|
4066
|
+
* @returns Promise<CompanyUser[]> - Array of users in the company
|
|
4067
|
+
*/
|
|
4068
|
+
getUsersByCompanyId(companyId: string): Promise<CompanyUser[]>;
|
|
4069
|
+
/**
|
|
4070
|
+
* Fallback method to fetch users by company ID using basic queries
|
|
4071
|
+
* Gets real user emails from the database
|
|
4072
|
+
* @param companyId - The company ID to fetch users for
|
|
4073
|
+
* @returns Promise<CompanyUser[]> - Array of users in the company
|
|
4074
|
+
*/
|
|
4075
|
+
private getUsersByCompanyIdFallback;
|
|
4076
|
+
/**
|
|
4077
|
+
* Check if a user is mapped to a specific company
|
|
4078
|
+
* @param userId - The user ID to check
|
|
4079
|
+
* @param companyId - The company ID to check against
|
|
4080
|
+
* @returns Promise<boolean> - Whether the user is mapped to the company
|
|
4081
|
+
*/
|
|
4082
|
+
isUserInCompany(userId: string, companyId: string): Promise<boolean>;
|
|
4083
|
+
/**
|
|
4084
|
+
* Get user details by user ID (if they exist in auth.users)
|
|
4085
|
+
* @param userId - The user ID to fetch
|
|
4086
|
+
* @returns Promise<CompanyUser | null> - The user data or null if not found
|
|
4087
|
+
*/
|
|
4088
|
+
getUserById(userId: string): Promise<CompanyUser | null>;
|
|
4089
|
+
}
|
|
4090
|
+
/**
|
|
4091
|
+
* Create a user service instance
|
|
4092
|
+
* @param supabase - Supabase client instance
|
|
4093
|
+
* @returns UserService instance
|
|
4094
|
+
*/
|
|
4095
|
+
declare const createUserService: (supabase: SupabaseClient$1) => UserService;
|
|
4096
|
+
/**
|
|
4097
|
+
* Default export for convenience
|
|
4098
|
+
*/
|
|
4099
|
+
declare const userService: {
|
|
4100
|
+
create: (supabase: SupabaseClient$1) => UserService;
|
|
4101
|
+
};
|
|
4102
|
+
|
|
3747
4103
|
/**
|
|
3748
4104
|
* Helper object for making authenticated API requests using Supabase auth token.
|
|
3749
4105
|
* Assumes endpoints are relative to the apiBaseUrl configured in DashboardConfig.
|
|
@@ -4013,32 +4369,17 @@ declare const getDefaultTabForWorkspace: (workspaceId?: string, displayName?: st
|
|
|
4013
4369
|
declare const getWorkspaceNavigationParams: (workspaceId: string, displayName: string, lineId?: string) => string;
|
|
4014
4370
|
|
|
4015
4371
|
/**
|
|
4016
|
-
* VideoPreloader –
|
|
4372
|
+
* VideoPreloader – DISABLED
|
|
4017
4373
|
*
|
|
4018
|
-
*
|
|
4019
|
-
*
|
|
4020
|
-
* .mp4) as well as HLS playlists (.m3u8). For the latter it dynamically imports
|
|
4021
|
-
* `hls.js`, buffers a single fragment, and tears everything down afterwards.
|
|
4374
|
+
* This video preloader has been disabled as part of removing all client-side caching and preloading.
|
|
4375
|
+
* All methods now do nothing to prevent any preloading.
|
|
4022
4376
|
*
|
|
4023
|
-
*
|
|
4024
|
-
* URL pre-loading.
|
|
4377
|
+
* The file is kept for compatibility but all functionality is disabled.
|
|
4025
4378
|
*/
|
|
4026
4379
|
declare class VideoPreloader {
|
|
4027
|
-
/** URLs that have finished (or at least attempted) pre-loading. */
|
|
4028
|
-
private readonly cache;
|
|
4029
|
-
/** FIFO queue of pending URLs. */
|
|
4030
|
-
private queue;
|
|
4031
|
-
/** Currently running pre-load operations. */
|
|
4032
|
-
private active;
|
|
4033
4380
|
preloadVideo: (url: string | null | undefined) => void;
|
|
4034
4381
|
preloadVideos: (urls: (string | null | undefined)[]) => void;
|
|
4035
4382
|
clear: () => void;
|
|
4036
|
-
private processQueue;
|
|
4037
|
-
private preloadUrlInternal;
|
|
4038
|
-
private canPlayHlsNatively;
|
|
4039
|
-
private bufferNative;
|
|
4040
|
-
private handleHls;
|
|
4041
|
-
private bufferHls;
|
|
4042
4383
|
}
|
|
4043
4384
|
declare const videoPreloader: VideoPreloader;
|
|
4044
4385
|
declare const preloadVideoUrl: (url: string | null | undefined) => void;
|
|
@@ -4199,6 +4540,29 @@ declare const withAuth: <P extends object>(WrappedComponent: React$1.ComponentTy
|
|
|
4199
4540
|
requireAuth?: boolean;
|
|
4200
4541
|
}) => React$1.NamedExoticComponent<P>;
|
|
4201
4542
|
|
|
4543
|
+
interface WithAccessControlOptions {
|
|
4544
|
+
/**
|
|
4545
|
+
* The path to check for access. If not provided, uses the current pathname
|
|
4546
|
+
*/
|
|
4547
|
+
requiredPath?: string;
|
|
4548
|
+
/**
|
|
4549
|
+
* Where to redirect if access is denied. Defaults to home page
|
|
4550
|
+
*/
|
|
4551
|
+
redirectTo?: string;
|
|
4552
|
+
/**
|
|
4553
|
+
* Custom component to render when access is denied
|
|
4554
|
+
*/
|
|
4555
|
+
UnauthorizedComponent?: React__default.ComponentType;
|
|
4556
|
+
}
|
|
4557
|
+
/**
|
|
4558
|
+
* Higher-order component that wraps a component with access control
|
|
4559
|
+
* TEMPORARILY DISABLED: All users have access to all pages
|
|
4560
|
+
*/
|
|
4561
|
+
declare function withAccessControl<P extends object>(WrappedComponent: React__default.ComponentType<P>, options?: WithAccessControlOptions): {
|
|
4562
|
+
(props: P): react_jsx_runtime.JSX.Element;
|
|
4563
|
+
displayName: string;
|
|
4564
|
+
};
|
|
4565
|
+
|
|
4202
4566
|
interface LoginPageProps {
|
|
4203
4567
|
onRateLimitCheck?: (email: string) => Promise<{
|
|
4204
4568
|
allowed: boolean;
|
|
@@ -4575,19 +4939,19 @@ interface LinePdfExportButtonProps {
|
|
|
4575
4939
|
}
|
|
4576
4940
|
declare const LinePdfExportButton: React__default.FC<LinePdfExportButtonProps>;
|
|
4577
4941
|
|
|
4578
|
-
interface ShiftData$
|
|
4942
|
+
interface ShiftData$2 {
|
|
4579
4943
|
avg_efficiency: number;
|
|
4580
4944
|
underperforming_workspaces: number;
|
|
4581
4945
|
total_workspaces: number;
|
|
4582
4946
|
hasData?: boolean;
|
|
4583
4947
|
}
|
|
4584
|
-
interface DayData$
|
|
4948
|
+
interface DayData$4 {
|
|
4585
4949
|
date: Date | string;
|
|
4586
|
-
dayShift: ShiftData$
|
|
4587
|
-
nightShift: ShiftData$
|
|
4950
|
+
dayShift: ShiftData$2;
|
|
4951
|
+
nightShift: ShiftData$2;
|
|
4588
4952
|
}
|
|
4589
4953
|
interface LineHistoryCalendarProps {
|
|
4590
|
-
data: DayData$
|
|
4954
|
+
data: DayData$4[];
|
|
4591
4955
|
month: number;
|
|
4592
4956
|
year: number;
|
|
4593
4957
|
lineId: string;
|
|
@@ -4653,7 +5017,7 @@ interface WorkspacePerformance {
|
|
|
4653
5017
|
efficiency?: number;
|
|
4654
5018
|
}[];
|
|
4655
5019
|
}
|
|
4656
|
-
interface DayData$
|
|
5020
|
+
interface DayData$3 {
|
|
4657
5021
|
date: Date;
|
|
4658
5022
|
dayShift: PerformanceData;
|
|
4659
5023
|
nightShift: PerformanceData;
|
|
@@ -4661,7 +5025,7 @@ interface DayData$2 {
|
|
|
4661
5025
|
interface LineMonthlyPdfGeneratorProps {
|
|
4662
5026
|
lineId: string;
|
|
4663
5027
|
lineName: string;
|
|
4664
|
-
monthlyData: DayData$
|
|
5028
|
+
monthlyData: DayData$3[];
|
|
4665
5029
|
underperformingWorkspaces: {
|
|
4666
5030
|
dayShift: WorkspacePerformance[];
|
|
4667
5031
|
nightShift: WorkspacePerformance[];
|
|
@@ -4822,6 +5186,35 @@ interface WorkspaceCardProps {
|
|
|
4822
5186
|
}
|
|
4823
5187
|
declare const WorkspaceCard: React__default.FC<WorkspaceCardProps>;
|
|
4824
5188
|
|
|
5189
|
+
interface ShiftData$1 {
|
|
5190
|
+
efficiency: number;
|
|
5191
|
+
output: number;
|
|
5192
|
+
cycleTime: number;
|
|
5193
|
+
pph: number;
|
|
5194
|
+
pphThreshold: number;
|
|
5195
|
+
idealOutput: number;
|
|
5196
|
+
rank: number;
|
|
5197
|
+
idleTime: number;
|
|
5198
|
+
hasData?: boolean;
|
|
5199
|
+
}
|
|
5200
|
+
interface DayData$2 {
|
|
5201
|
+
date: Date;
|
|
5202
|
+
dayShift: ShiftData$1;
|
|
5203
|
+
nightShift: ShiftData$1;
|
|
5204
|
+
}
|
|
5205
|
+
interface WorkspaceHistoryCalendarProps {
|
|
5206
|
+
data: DayData$2[];
|
|
5207
|
+
onDateSelect: (date: string) => void;
|
|
5208
|
+
month: number;
|
|
5209
|
+
year: number;
|
|
5210
|
+
workspaceId: string;
|
|
5211
|
+
selectedShift?: 'day' | 'night';
|
|
5212
|
+
onMonthNavigate?: (newMonth: number, newYear: number) => void;
|
|
5213
|
+
onShiftChange?: (shift: 'day' | 'night') => void;
|
|
5214
|
+
className?: string;
|
|
5215
|
+
}
|
|
5216
|
+
declare const WorkspaceHistoryCalendar: React__default.FC<WorkspaceHistoryCalendarProps>;
|
|
5217
|
+
|
|
4825
5218
|
interface ShiftData {
|
|
4826
5219
|
efficiency: number;
|
|
4827
5220
|
output: number;
|
|
@@ -4838,18 +5231,19 @@ interface DayData$1 {
|
|
|
4838
5231
|
dayShift: ShiftData;
|
|
4839
5232
|
nightShift: ShiftData;
|
|
4840
5233
|
}
|
|
4841
|
-
interface
|
|
5234
|
+
interface WorkspaceMonthlyHistoryProps {
|
|
4842
5235
|
data: DayData$1[];
|
|
4843
|
-
onDateSelect: (date: string) => void;
|
|
4844
5236
|
month: number;
|
|
4845
5237
|
year: number;
|
|
4846
5238
|
workspaceId: string;
|
|
4847
5239
|
selectedShift?: 'day' | 'night';
|
|
5240
|
+
onDateSelect: (date: string, shift: 'day' | 'night') => void;
|
|
4848
5241
|
onMonthNavigate?: (newMonth: number, newYear: number) => void;
|
|
4849
5242
|
onShiftChange?: (shift: 'day' | 'night') => void;
|
|
5243
|
+
monthlyDataLoading?: boolean;
|
|
4850
5244
|
className?: string;
|
|
4851
5245
|
}
|
|
4852
|
-
declare const
|
|
5246
|
+
declare const WorkspaceMonthlyHistory: React__default.FC<WorkspaceMonthlyHistoryProps>;
|
|
4853
5247
|
|
|
4854
5248
|
interface WorkspaceWhatsAppShareProps {
|
|
4855
5249
|
workspace: WorkspaceDetailedMetrics;
|
|
@@ -5486,6 +5880,24 @@ interface VideoPlayerProps {
|
|
|
5486
5880
|
*/
|
|
5487
5881
|
declare const VideoPlayer: React__default.ForwardRefExoticComponent<VideoPlayerProps & React__default.RefAttributes<VideoPlayerRef>>;
|
|
5488
5882
|
|
|
5883
|
+
interface CropConfig {
|
|
5884
|
+
x: number;
|
|
5885
|
+
y: number;
|
|
5886
|
+
width: number;
|
|
5887
|
+
height: number;
|
|
5888
|
+
}
|
|
5889
|
+
interface CroppedVideoPlayerProps extends VideoPlayerProps {
|
|
5890
|
+
/** Crop configuration */
|
|
5891
|
+
crop?: CropConfig | null;
|
|
5892
|
+
/** Whether to show debug info */
|
|
5893
|
+
debug?: boolean;
|
|
5894
|
+
}
|
|
5895
|
+
/**
|
|
5896
|
+
* Video player with canvas-based cropping capability
|
|
5897
|
+
* Crops video based on percentage coordinates and maintains aspect ratio
|
|
5898
|
+
*/
|
|
5899
|
+
declare const CroppedVideoPlayer: React__default.ForwardRefExoticComponent<CroppedVideoPlayerProps & React__default.RefAttributes<VideoPlayerRef>>;
|
|
5900
|
+
|
|
5489
5901
|
interface BackButtonProps {
|
|
5490
5902
|
/**
|
|
5491
5903
|
* Click handler for the back button
|
|
@@ -5544,6 +5956,20 @@ interface InlineEditableTextProps {
|
|
|
5544
5956
|
}
|
|
5545
5957
|
declare const InlineEditableText: React__default.FC<InlineEditableTextProps>;
|
|
5546
5958
|
|
|
5959
|
+
/**
|
|
5960
|
+
* NewClipsNotification Component
|
|
5961
|
+
* Displays a notification when new clips are available
|
|
5962
|
+
* Following S-tier design principles: subtle, non-disruptive, user-controlled
|
|
5963
|
+
*/
|
|
5964
|
+
|
|
5965
|
+
interface NewClipsNotificationProps {
|
|
5966
|
+
count: number;
|
|
5967
|
+
onRefresh: () => void;
|
|
5968
|
+
onDismiss: () => void;
|
|
5969
|
+
className?: string;
|
|
5970
|
+
}
|
|
5971
|
+
declare const NewClipsNotification: React__default.FC<NewClipsNotificationProps>;
|
|
5972
|
+
|
|
5547
5973
|
interface LoadingStateProps {
|
|
5548
5974
|
message?: string;
|
|
5549
5975
|
subMessage?: string;
|
|
@@ -5643,6 +6069,88 @@ declare const getDefaultCameraStreamUrl: (workspaceName: string, baseUrl: string
|
|
|
5643
6069
|
*/
|
|
5644
6070
|
declare const SingleVideoStream: React__default.FC<SingleVideoStreamProps>;
|
|
5645
6071
|
|
|
6072
|
+
interface SupervisorDropdownProps {
|
|
6073
|
+
/** Currently selected supervisor */
|
|
6074
|
+
selectedSupervisor?: Supervisor;
|
|
6075
|
+
/** Available supervisors to choose from */
|
|
6076
|
+
availableSupervisors: Supervisor[];
|
|
6077
|
+
/** Callback when supervisor is selected */
|
|
6078
|
+
onSelect: (supervisor: Supervisor | null) => void;
|
|
6079
|
+
/** Additional className for styling */
|
|
6080
|
+
className?: string;
|
|
6081
|
+
/** Whether the dropdown is disabled */
|
|
6082
|
+
disabled?: boolean;
|
|
6083
|
+
/** Placeholder text when no supervisor is selected */
|
|
6084
|
+
placeholder?: string;
|
|
6085
|
+
}
|
|
6086
|
+
declare const SupervisorDropdown: React__default.FC<SupervisorDropdownProps>;
|
|
6087
|
+
|
|
6088
|
+
interface FirstTimeLoginHandlerProps {
|
|
6089
|
+
children: React__default.ReactNode;
|
|
6090
|
+
onboardingComponent?: React__default.ComponentType<{
|
|
6091
|
+
onComplete: () => void | Promise<void>;
|
|
6092
|
+
isCompleting?: boolean;
|
|
6093
|
+
}>;
|
|
6094
|
+
enableAutoDetection?: boolean;
|
|
6095
|
+
}
|
|
6096
|
+
/**
|
|
6097
|
+
* Component that handles first-time login detection and onboarding flow
|
|
6098
|
+
* Automatically shows onboarding popup for first-time users
|
|
6099
|
+
*
|
|
6100
|
+
* Usage:
|
|
6101
|
+
* ```tsx
|
|
6102
|
+
* // With custom onboarding component
|
|
6103
|
+
* <FirstTimeLoginHandler onboardingComponent={CustomOnboarding}>
|
|
6104
|
+
* <YourMainApp />
|
|
6105
|
+
* </FirstTimeLoginHandler>
|
|
6106
|
+
*
|
|
6107
|
+
* // With default onboarding popup
|
|
6108
|
+
* <FirstTimeLoginHandler>
|
|
6109
|
+
* <YourMainApp />
|
|
6110
|
+
* </FirstTimeLoginHandler>
|
|
6111
|
+
* ```
|
|
6112
|
+
*/
|
|
6113
|
+
declare const FirstTimeLoginHandler: React__default.FC<FirstTimeLoginHandlerProps>;
|
|
6114
|
+
/**
|
|
6115
|
+
* Simple debug component to show first-time login status
|
|
6116
|
+
* Useful for development and testing
|
|
6117
|
+
*/
|
|
6118
|
+
declare const FirstTimeLoginDebug: React__default.FC;
|
|
6119
|
+
|
|
6120
|
+
interface SimpleOnboardingPopupProps {
|
|
6121
|
+
onComplete: () => void | Promise<void>;
|
|
6122
|
+
isCompleting?: boolean;
|
|
6123
|
+
}
|
|
6124
|
+
/**
|
|
6125
|
+
* Simple onboarding popup component for first-time users
|
|
6126
|
+
* Shows a welcome message and brief introduction to the dashboard
|
|
6127
|
+
*/
|
|
6128
|
+
declare const SimpleOnboardingPopup: React__default.FC<SimpleOnboardingPopupProps>;
|
|
6129
|
+
/**
|
|
6130
|
+
* Minimal onboarding popup - just a simple welcome message
|
|
6131
|
+
*/
|
|
6132
|
+
declare const MinimalOnboardingPopup: React__default.FC<SimpleOnboardingPopupProps>;
|
|
6133
|
+
|
|
6134
|
+
interface OnboardingTourProps {
|
|
6135
|
+
isOpen: boolean;
|
|
6136
|
+
onComplete: () => void;
|
|
6137
|
+
onSkip: () => void;
|
|
6138
|
+
}
|
|
6139
|
+
declare const OnboardingTour: React__default.FC<OnboardingTourProps>;
|
|
6140
|
+
|
|
6141
|
+
interface InteractiveOnboardingTourProps {
|
|
6142
|
+
isOpen: boolean;
|
|
6143
|
+
onComplete: () => void;
|
|
6144
|
+
onSkip: () => void;
|
|
6145
|
+
}
|
|
6146
|
+
declare const InteractiveOnboardingTour: React__default.FC<InteractiveOnboardingTourProps>;
|
|
6147
|
+
|
|
6148
|
+
/**
|
|
6149
|
+
* Demo component to manually trigger the onboarding tour
|
|
6150
|
+
* This is useful for development and testing purposes
|
|
6151
|
+
*/
|
|
6152
|
+
declare const OnboardingDemo: React__default.FC;
|
|
6153
|
+
|
|
5646
6154
|
/**
|
|
5647
6155
|
* AI Agent Chat View
|
|
5648
6156
|
*
|
|
@@ -5978,6 +6486,16 @@ declare const _default: React__default.NamedExoticComponent<WorkspaceHealthViewP
|
|
|
5978
6486
|
|
|
5979
6487
|
declare const AuthenticatedWorkspaceHealthView: React__default.FC<WorkspaceHealthViewProps>;
|
|
5980
6488
|
|
|
6489
|
+
interface SupervisorManagementViewProps {
|
|
6490
|
+
/** Function to handle navigation */
|
|
6491
|
+
onNavigate?: (path: string) => void;
|
|
6492
|
+
/** Function to handle back navigation */
|
|
6493
|
+
onBack?: () => void;
|
|
6494
|
+
/** Additional className for styling */
|
|
6495
|
+
className?: string;
|
|
6496
|
+
}
|
|
6497
|
+
declare const SupervisorManagementView: React__default.FC<SupervisorManagementViewProps>;
|
|
6498
|
+
|
|
5981
6499
|
type CoreComponents = {
|
|
5982
6500
|
Card: any;
|
|
5983
6501
|
CardHeader: any;
|
|
@@ -6195,4 +6713,4 @@ interface ThreadSidebarProps {
|
|
|
6195
6713
|
}
|
|
6196
6714
|
declare const ThreadSidebar: React__default.FC<ThreadSidebarProps>;
|
|
6197
6715
|
|
|
6198
|
-
export { ACTION_NAMES, AIAgentView, type Action, type ActionName, type ActionService, type ActionThreshold, type ActiveBreak, type AnalyticsConfig, AudioService, AuthCallback, type AuthCallbackProps, AuthCallbackView, type AuthCallbackViewProps, type AuthConfig, AuthProvider, type AuthUser, AuthenticatedFactoryView, AuthenticatedHelpView, AuthenticatedHomeView, AuthenticatedShiftsView, AuthenticatedTargetsView, AuthenticatedWorkspaceHealthView, BackButton, BackButtonMinimal, BarChart, type BarChartDataItem, type BarChartProps, type BarProps, BaseHistoryCalendar, type BaseHistoryCalendarProps, type BaseLineMetric, type BasePerformanceMetric, type BottleneckFilterType, type BottleneckVideo, type BottleneckVideoData, BottlenecksContent, type BottlenecksContentProps, type BreadcrumbItem, type Break, BreakNotificationPopup, type BreakNotificationPopupProps, type BreakRowProps, type CacheEntryWithPrefetch, CachePrefetchStatus, type CachePrefetchStatusCallback, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChatMessage, type ChatThread, type CleanupFunction, type ClipCounts, type ClipCountsWithIndex, CompactWorkspaceHealthCard, type ComponentOverride, CongratulationsOverlay, type CongratulationsOverlayProps, type CoreComponents, type CurrentShiftResult, CycleTimeChart, type CycleTimeChartProps, CycleTimeOverTimeChart, type CycleTimeOverTimeChartProps, DEFAULT_ANALYTICS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_DATE_TIME_CONFIG, DEFAULT_ENDPOINTS_CONFIG, DEFAULT_ENTITY_CONFIG, DEFAULT_SHIFT_CONFIG, DEFAULT_THEME_CONFIG, DEFAULT_VIDEO_CONFIG, DEFAULT_WORKSPACE_CONFIG, DEFAULT_WORKSPACE_POSITIONS, type DashboardConfig, DashboardHeader, type DashboardKPIs, DashboardLayout, type DashboardLayoutProps, DashboardOverridesProvider, DashboardProvider, type DashboardService, type DatabaseConfig, DateDisplay, type DateTimeConfig, DateTimeDisplay, type DateTimeDisplayProps, type DayHistoryData, type DaySummaryData, DebugAuth, DebugAuthView, DetailedHealthStatus, EmptyStateMessage, type EmptyStateMessageProps, EncouragementOverlay, type EndpointsConfig, type EntityConfig, type ErrorCallback$1 as ErrorCallback, type ExtendedCacheMetrics, type FactoryOverviewData, FactoryView, type FactoryViewProps, type FormatNumberOptions, type FullyIndexedCallback$1 as FullyIndexedCallback, GaugeChart, type GaugeChartProps, GridComponentsPlaceholder, HamburgerButton, type HamburgerButtonProps, Header, type HeaderProps, type HealthAlertConfig, type HealthAlertHistory, type HealthFilterOptions, type HealthMetrics, type HealthStatus, HealthStatusGrid, HealthStatusIndicator, type HealthSummary, HelpView, type HelpViewProps, type HistoryCalendarProps, HomeView, type HookOverride, type HourlyAchievement, HourlyOutputChart, type HourlyOutputChartProps, type HourlyPerformance, type IPrefetchManager, type ISTDateProps, ISTTimer, type ISTTimerProps, InlineEditableText, KPICard, type KPICardProps, KPIDetailViewWithDisplayNames as KPIDetailView, type KPIDetailViewProps, KPIGrid, type KPIGridProps, KPIHeader, type KPIHeaderProps, KPISection, type KPITrend, KPIsOverviewView, type KPIsOverviewViewProps, LINE_1_UUID, LINE_2_UUID, LargeOutputProgressChart, type LargeOutputProgressChartProps, LeaderboardDetailViewWithDisplayNames as LeaderboardDetailView, type LeaderboardDetailViewProps, type LeaderboardEntry, Legend, LineChart, type LineChartDataItem, type LineChartProps, type LineDetails, type LineDisplayData, LineHistoryCalendar, type LineHistoryCalendarProps, type LineInfo, type LineMetrics, LineMonthlyHistory, type LineMonthlyHistoryProps, type LineMonthlyMetric, LineMonthlyPdfGenerator, type LineMonthlyPdfGeneratorProps, type LineNavigationParams, LinePdfExportButton, type LinePdfExportButtonProps, LinePdfGenerator, type LinePdfGeneratorProps, type LineProps, type LineShiftConfig, type LineSnapshot, type LineThreshold, LineWhatsAppShareButton, type LineWhatsAppShareProps, LiveTimer, LoadingInline, LoadingInline as LoadingInlineProps, LoadingOverlay, LoadingPage, LoadingSkeleton, LoadingSkeleton as LoadingSkeletonProps, LoadingState, LoadingState as LoadingStateProps, LoginPage, type LoginPageProps, LoginView, type LoginViewProps, MainLayout, type MainLayoutProps, type Metric, MetricCard, type MetricCardProps$1 as MetricCardProps, type MetricsError, type NavItem, type NavItemTrackingEvent, type NavigationMethod, NoWorkspaceData, type OperatorData, type OperatorInfo, OptifyeAgentClient, type OptifyeAgentContext, type OptifyeAgentRequest, type OptifyeAgentResponse, OptifyeLogoLoader, OutputProgressChart, type OutputProgressChartProps, type OverridesMap, type OverviewLineMetric, type OverviewWorkspaceMetric, PageHeader, type PageHeaderProps, type PageOverride, PieChart, type PieChartProps, type PoorPerformingWorkspace, PrefetchConfigurationError, PrefetchError, PrefetchEvents, type PrefetchKey, type PrefetchManagerConfig, type PrefetchManagerStats, type PrefetchOptions, type PrefetchParams$1 as PrefetchParams, type PrefetchRequest, type PrefetchResult, PrefetchStatus$1 as PrefetchStatus, type PrefetchStatusResult, type PrefetchSubscriptionCallbacks, PrefetchTimeoutError, type ProfileMenuItem, ProfileView, type QualityMetric, type QualityOverview, type QualityService, type RateLimitOptions, type RateLimitResult, type RealtimeService, RegistryProvider, type RenderReadyCallback$1 as RenderReadyCallback, type RoutePath, type S3ClipsAPIParams, S3ClipsService, type S3Config, type S3ListObjectsParams, S3Service, type S3ServiceConfig, type SKU, type SKUConfig, type SKUCreateInput, type SKUListProps, SKUManagementView, type SKUModalProps, type SKUSelectorProps, type SKUUpdateInput, type SOPCategory, SOPComplianceChart, type SOPComplianceChartProps, SSEChatClient, type SSEEvent, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type ShiftConfig, type ShiftConfiguration, type ShiftConfigurationRecord, type ShiftData$2 as ShiftData, ShiftDisplay, type ShiftHistoryData, type ShiftHoursMap, type ShiftPanelProps, type ShiftSummaryData, type ShiftTime, ShiftsView, type ShiftsViewProps, SideNavBar, type SideNavBarProps, type SimpleLine, SingleVideoStream, type SingleVideoStreamProps, Skeleton, type StatusChangeCallback$1 as StatusChangeCallback, type StreamProxyConfig, type SubscriberId, SubscriptionManager, SubscriptionManagerProvider, type SupabaseClient, SupabaseProvider, type Target, TargetWorkspaceGrid, type TargetWorkspaceGridProps, TargetsViewWithDisplayNames as TargetsView, type TargetsViewProps, type ThemeColorValue, type ThemeConfig, ThreadSidebar, TicketHistory, TicketHistoryService, TimeDisplay, TimePickerDropdown, type TrackingEventProperties, type TrendDirection, type UnderperformingWorkspace, type UnderperformingWorkspaces, type UptimeDetails, type UseActiveBreaksResult, type UseDashboardMetricsProps, type UseFactoryOverviewOptions, type UseFormatNumberResult, type UseMessagesResult, type UsePrefetchClipCountsOptions$1 as UsePrefetchClipCountsOptions, type UsePrefetchClipCountsResult$1 as UsePrefetchClipCountsResult, type UseRealtimeLineMetricsProps, type UseTargetsOptions, type UseThreadsResult, type UseTicketHistoryReturn, type UseWorkspaceOperatorsOptions, type UserProfileConfig, VideoCard, type VideoConfig, type VideoCroppingConfig, type VideoCroppingRect, VideoGridView, type VideoIndex, type VideoIndexEntry, type VideoMetadata, VideoPlayer, type VideoPlayerEventData, type VideoPlayerProps, type VideoPlayerRef, VideoPreloader, type VideoSeverity, type VideoSummary, type VideoType, WORKSPACE_POSITIONS, type WhatsAppSendResult, WhatsAppShareButton, type WhatsAppShareButtonProps, type WhatsappService, type Workspace, type WorkspaceActionUpdate, WorkspaceCard, type WorkspaceCardProps, type WorkspaceConfig, WrappedComponent as WorkspaceDetailView, type WorkspaceDetailedMetrics, WorkspaceDisplayNameExample, WorkspaceGrid, WorkspaceGridItem, type WorkspaceGridItemProps, type WorkspaceHealth, WorkspaceHealthCard, type WorkspaceHealthInfo, _default as WorkspaceHealthView, type WorkspaceHealthWithStatus, WorkspaceHistoryCalendar, WorkspaceMetricCards, WorkspaceMetricCardsImpl, type WorkspaceMetricCardsProps, type WorkspaceMetrics, WorkspaceMonthlyDataFetcher, type WorkspaceMonthlyDataFetcherProps, type WorkspaceMonthlyMetric, WorkspaceMonthlyPdfGenerator, type WorkspaceMonthlyPdfGeneratorProps, type WorkspaceNavigationParams, WorkspacePdfExportButton, type WorkspacePdfExportButtonProps, WorkspacePdfGenerator, type WorkspacePdfGeneratorProps, type WorkspacePosition, type WorkspaceQualityData, type WorkspaceUrlMapping, WorkspaceWhatsAppShareButton, type WorkspaceWhatsAppShareProps, actionService, apiUtils, authCoreService, authOTPService, authRateLimitService, checkRateLimit, clearAllRateLimits, clearRateLimit, clearS3VideoCache, clearS3VideoFromCache, clearWorkspaceDisplayNamesCache, cn, createStreamProxyHandler, createSupabaseClient, createThrottledReload, dashboardService, deleteThread, forceRefreshWorkspaceDisplayNames, formatDateInZone, formatDateTimeInZone, formatISTDate, formatIdleTime, formatTimeInZone, fromUrlFriendlyName, getAllLineDisplayNames, getAllThreadMessages, getAllWorkspaceDisplayNamesAsync, getAnonClient, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getConfiguredLineIds, getCoreSessionRecordingProperties, getCoreSessionReplayUrl, getCurrentShift, getCurrentTimeInZone, getDashboardHeaderTimeInZone, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultLineId, getDefaultTabForWorkspace, getLineDisplayName, getManufacturingInsights, getMetricsTablePrefix, getOperationalDate, getS3SignedUrl, getS3VideoSrc, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getSubscriptionManager, getThreadMessages, getUserThreads, getUserThreadsPaginated, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, identifyCoreUser, initializeCoreMixpanel, isLegacyConfiguration, isPrefetchError, isTransitionPeriod, isUrlPermanentlyFailed, isValidFactoryViewConfiguration, isValidLineInfoPayload, isValidPrefetchParams, isValidPrefetchStatus, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, mergeWithDefaultConfig, migrateLegacyConfiguration, optifyeAgentClient, parseS3Uri, preInitializeWorkspaceDisplayNames, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, resetFailedUrl, resetSubscriptionManager, s3VideoPreloader, shuffleArray, skuService, startCoreSessionRecording, stopCoreSessionRecording, storeWorkspaceMapping, streamProxyConfig, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, updateThreadTitle, useActiveBreaks, useAllWorkspaceMetrics, useAnalyticsConfig, useAudioService, useAuth, useAuthConfig, useCanSaveTargets, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHistoricWorkspaceMetrics, useHlsStream, useHlsStreamWithCropping, useHookOverride, useHourEndTimer, useHourlyTargetAchievements, useHourlyTargetMisses, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineWorkspaceMetrics, useMessages, useMetrics, useNavigation, useOverrides, usePageOverride, usePrefetchClipCounts, useRealtimeLineMetrics, useRegistry, useSKUs, useShiftConfig, useShifts, useSubscriptionManager, useSubscriptionManagerSafe, useSupabase, useSupabaseClient, useTargets, useTheme, useThemeConfig, useThreads, useTicketHistory, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceHealth, useWorkspaceHealthById, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, videoPrefetchManager, videoPreloader, whatsappService, withAuth, withRegistry, workspaceHealthService, workspaceService };
|
|
6716
|
+
export { ACTION_NAMES, AIAgentView, type AccessControlReturn, type Action, type ActionName, type ActionService, type ActionThreshold, type ActiveBreak, type AnalyticsConfig, AudioService, AuthCallback, type AuthCallbackProps, AuthCallbackView, type AuthCallbackViewProps, type AuthConfig, AuthProvider, type AuthUser, AuthenticatedFactoryView, AuthenticatedHelpView, AuthenticatedHomeView, AuthenticatedShiftsView, AuthenticatedTargetsView, AuthenticatedWorkspaceHealthView, BackButton, BackButtonMinimal, BarChart, type BarChartDataItem, type BarChartProps, type BarProps, BaseHistoryCalendar, type BaseHistoryCalendarProps, type BaseLineMetric, type BasePerformanceMetric, type BottleneckFilterType, type BottleneckVideo, type BottleneckVideoData, BottlenecksContent, type BottlenecksContentProps, type BreadcrumbItem, type Break, BreakNotificationPopup, type BreakNotificationPopupProps, type BreakRowProps, type CacheEntryWithPrefetch, CachePrefetchStatus, type CachePrefetchStatusCallback, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChatMessage, type ChatThread, type CleanupFunction, type ClipCounts, type ClipCountsWithIndex$2 as ClipCountsWithIndex, CompactWorkspaceHealthCard, type CompanyUser, type ComponentOverride, CongratulationsOverlay, type CongratulationsOverlayProps, type CoreComponents, type CropConfig, CroppedVideoPlayer, type CroppedVideoPlayerProps, type CurrentShiftResult, CycleTimeChart, type CycleTimeChartProps, CycleTimeOverTimeChart, type CycleTimeOverTimeChartProps, DEFAULT_ANALYTICS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_DATE_TIME_CONFIG, DEFAULT_ENDPOINTS_CONFIG, DEFAULT_ENTITY_CONFIG, DEFAULT_SHIFT_CONFIG, DEFAULT_THEME_CONFIG, DEFAULT_VIDEO_CONFIG, DEFAULT_WORKSPACE_CONFIG, DEFAULT_WORKSPACE_POSITIONS, type DashboardConfig, DashboardHeader, type DashboardKPIs, DashboardLayout, type DashboardLayoutProps, DashboardOverridesProvider, DashboardProvider, type DashboardService, type DatabaseConfig, DateDisplay, type DateTimeConfig, DateTimeDisplay, type DateTimeDisplayProps, type DayHistoryData, type DaySummaryData, DebugAuth, DebugAuthView, DetailedHealthStatus, EmptyStateMessage, type EmptyStateMessageProps, EncouragementOverlay, type EndpointsConfig, type EntityConfig, type ErrorCallback$1 as ErrorCallback, type ExtendedCacheMetrics, type FactoryOverviewData, FactoryView, type FactoryViewProps, FirstTimeLoginDebug, FirstTimeLoginHandler, type FormatNumberOptions, type FullyIndexedCallback$1 as FullyIndexedCallback, GaugeChart, type GaugeChartProps, GridComponentsPlaceholder, HamburgerButton, type HamburgerButtonProps, Header, type HeaderProps, type HealthAlertConfig, type HealthAlertHistory, type HealthFilterOptions, type HealthMetrics, type HealthStatus, HealthStatusGrid, HealthStatusIndicator, type HealthSummary, HelpView, type HelpViewProps, type HistoryCalendarProps, HomeView, type HookOverride, type HourlyAchievement, HourlyOutputChart, type HourlyOutputChartProps, type HourlyPerformance, type IPrefetchManager, type ISTDateProps, ISTTimer, type ISTTimerProps, InlineEditableText, InteractiveOnboardingTour, KPICard, type KPICardProps, KPIDetailViewWithDisplayNames as KPIDetailView, type KPIDetailViewProps, KPIGrid, type KPIGridProps, KPIHeader, type KPIHeaderProps, KPISection, type KPITrend, KPIsOverviewView, type KPIsOverviewViewProps, LINE_1_UUID, LINE_2_UUID, LargeOutputProgressChart, type LargeOutputProgressChartProps, LeaderboardDetailViewWithDisplayNames as LeaderboardDetailView, type LeaderboardDetailViewProps, type LeaderboardEntry, Legend, type Line$1 as Line, LineChart, type LineChartDataItem, type LineChartProps, type LineDetails, type LineDisplayData, LineHistoryCalendar, type LineHistoryCalendarProps, type LineInfo, type LineMetrics, LineMonthlyHistory, type LineMonthlyHistoryProps, type LineMonthlyMetric, LineMonthlyPdfGenerator, type LineMonthlyPdfGeneratorProps, type LineNavigationParams, LinePdfExportButton, type LinePdfExportButtonProps, LinePdfGenerator, type LinePdfGeneratorProps, type LineProps, type LineShiftConfig, type LineSnapshot, type LineThreshold, LineWhatsAppShareButton, type LineWhatsAppShareProps, LinesService, LiveTimer, LoadingInline, LoadingInline as LoadingInlineProps, LoadingOverlay, LoadingPage, LoadingSkeleton, LoadingSkeleton as LoadingSkeletonProps, LoadingState, LoadingState as LoadingStateProps, LoginPage, type LoginPageProps, LoginView, type LoginViewProps, MainLayout, type MainLayoutProps, type Metric, MetricCard, type MetricCardProps$1 as MetricCardProps, type MetricsError, MinimalOnboardingPopup, type NavItem, type NavItemTrackingEvent, type NavigationMethod, NewClipsNotification, type NewClipsNotificationProps, NoWorkspaceData, OnboardingDemo, OnboardingTour, type OperatorData, type OperatorInfo, OptifyeAgentClient, type OptifyeAgentContext, type OptifyeAgentRequest, type OptifyeAgentResponse, OptifyeLogoLoader, OutputProgressChart, type OutputProgressChartProps, type OverridesMap, type OverviewLineMetric, type OverviewWorkspaceMetric, PageHeader, type PageHeaderProps, type PageOverride, PieChart, type PieChartProps, type PoorPerformingWorkspace, PrefetchConfigurationError, PrefetchError, PrefetchEvents, type PrefetchKey, type PrefetchManagerConfig, type PrefetchManagerStats, type PrefetchOptions, type PrefetchParams$1 as PrefetchParams, type PrefetchRequest, type PrefetchResult, PrefetchStatus$1 as PrefetchStatus, type PrefetchStatusResult, type PrefetchSubscriptionCallbacks, PrefetchTimeoutError, type ProfileMenuItem, ProfileView, type QualityMetric, type QualityOverview, type QualityService, type RateLimitOptions, type RateLimitResult, type RealtimeService, RegistryProvider, type RenderReadyCallback$1 as RenderReadyCallback, type RoutePath, type S3ClipsAPIParams, S3ClipsService$1 as S3ClipsService, type S3Config, type S3ListObjectsParams, S3Service, type S3ServiceConfig, type SKU, type SKUConfig, type SKUCreateInput, type SKUListProps, SKUManagementView, type SKUModalProps, type SKUSelectorProps, type SKUUpdateInput, type SOPCategory, SOPComplianceChart, type SOPComplianceChartProps, SSEChatClient, type SSEEvent, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type ShiftConfig, type ShiftConfiguration, type ShiftConfigurationRecord, type ShiftData$3 as ShiftData, ShiftDisplay, type ShiftHistoryData, type ShiftHoursMap, type ShiftPanelProps, type ShiftSummaryData, type ShiftTime, ShiftsView, type ShiftsViewProps, SideNavBar, type SideNavBarProps, type SimpleLine, SimpleOnboardingPopup, SingleVideoStream, type SingleVideoStreamProps, Skeleton, type StatusChangeCallback$1 as StatusChangeCallback, type StreamProxyConfig, type SubscriberId, SubscriptionManager, SubscriptionManagerProvider, type SupabaseClient, SupabaseProvider, type Supervisor, type SupervisorAssignment, SupervisorDropdown, type SupervisorDropdownProps, type SupervisorManagementData, SupervisorManagementView, type SupervisorManagementViewProps, SupervisorService, type Target, TargetWorkspaceGrid, type TargetWorkspaceGridProps, TargetsViewWithDisplayNames as TargetsView, type TargetsViewProps, type ThemeColorValue, type ThemeConfig, ThreadSidebar, TicketHistory, TicketHistoryService, TimeDisplay, TimePickerDropdown, type TrackingEventProperties, type TrendDirection, type UnderperformingWorkspace, type UnderperformingWorkspaces, type UptimeDetails, type UseActiveBreaksResult, type UseClipTypesResult, type UseDashboardMetricsProps, type UseFactoryOverviewOptions, type UseFormatNumberResult, type UseMessagesResult, type UsePrefetchClipCountsOptions$1 as UsePrefetchClipCountsOptions, type UsePrefetchClipCountsResult$1 as UsePrefetchClipCountsResult, type UseRealtimeLineMetricsProps, type UseTargetsOptions, type UseThreadsResult, type UseTicketHistoryReturn, type UseWorkspaceOperatorsOptions, type UserProfileConfig, type UserRole, UserService, VideoCard, type VideoConfig, type VideoCroppingConfig, type VideoCroppingRect, VideoGridView, type VideoIndex$1 as VideoIndex, type VideoIndexEntry$1 as VideoIndexEntry, type VideoMetadata, VideoPlayer, type VideoPlayerEventData, type VideoPlayerProps, type VideoPlayerRef, VideoPreloader, type VideoSeverity, type VideoSummary, type VideoType, WORKSPACE_POSITIONS, type WhatsAppSendResult, WhatsAppShareButton, type WhatsAppShareButtonProps, type WhatsappService, type Workspace, type WorkspaceActionUpdate, WorkspaceCard, type WorkspaceCardProps, type WorkspaceConfig, WrappedComponent as WorkspaceDetailView, type WorkspaceDetailedMetrics, WorkspaceDisplayNameExample, WorkspaceGrid, WorkspaceGridItem, type WorkspaceGridItemProps, type WorkspaceHealth, WorkspaceHealthCard, type WorkspaceHealthInfo, _default as WorkspaceHealthView, type WorkspaceHealthWithStatus, WorkspaceHistoryCalendar, WorkspaceMetricCards, WorkspaceMetricCardsImpl, type WorkspaceMetricCardsProps, type WorkspaceMetrics, WorkspaceMonthlyDataFetcher, type WorkspaceMonthlyDataFetcherProps, WorkspaceMonthlyHistory, type WorkspaceMonthlyMetric, WorkspaceMonthlyPdfGenerator, type WorkspaceMonthlyPdfGeneratorProps, type WorkspaceNavigationParams, WorkspacePdfExportButton, type WorkspacePdfExportButtonProps, WorkspacePdfGenerator, type WorkspacePdfGeneratorProps, type WorkspacePosition, type WorkspaceQualityData, type WorkspaceUrlMapping, WorkspaceWhatsAppShareButton, type WorkspaceWhatsAppShareProps, actionService, apiUtils, authCoreService, authOTPService, authRateLimitService, checkRateLimit, clearAllRateLimits, clearRateLimit, clearS3VideoCache, clearS3VideoFromCache, clearWorkspaceDisplayNamesCache, cn, createLinesService, createStreamProxyHandler, createSupabaseClient, createSupervisorService, createThrottledReload, createUserService, dashboardService, deleteThread, forceRefreshWorkspaceDisplayNames, formatDateInZone, formatDateTimeInZone, formatISTDate, formatIdleTime, formatTimeInZone, fromUrlFriendlyName, getAllLineDisplayNames, getAllThreadMessages, getAllWorkspaceDisplayNamesAsync, getAnonClient, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getConfiguredLineIds, getCoreSessionRecordingProperties, getCoreSessionReplayUrl, getCurrentShift, getCurrentTimeInZone, getDashboardHeaderTimeInZone, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultLineId, getDefaultTabForWorkspace, getLineDisplayName, getManufacturingInsights, getMetricsTablePrefix, getOperationalDate, getS3SignedUrl, getS3VideoSrc, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getSubscriptionManager, getThreadMessages, getUserThreads, getUserThreadsPaginated, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, identifyCoreUser, initializeCoreMixpanel, isLegacyConfiguration, isPrefetchError, isTransitionPeriod, isUrlPermanentlyFailed, isValidFactoryViewConfiguration, isValidLineInfoPayload, isValidPrefetchParams, isValidPrefetchStatus, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, linesService, mergeWithDefaultConfig, migrateLegacyConfiguration, optifyeAgentClient, parseS3Uri, preInitializeWorkspaceDisplayNames, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, resetFailedUrl, resetSubscriptionManager, s3VideoPreloader, shuffleArray, simulateApiDelay, skuService, startCoreSessionRecording, stopCoreSessionRecording, storeWorkspaceMapping, streamProxyConfig, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, updateThreadTitle, useAccessControl, useActiveBreaks, useAllWorkspaceMetrics, useAnalyticsConfig, useAudioService, useAuth, useAuthConfig, useCanSaveTargets, useClipTypes, useClipTypesWithCounts, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHistoricWorkspaceMetrics, useHlsStream, useHlsStreamWithCropping, useHookOverride, useHourEndTimer, useHourlyTargetAchievements, useHourlyTargetMisses, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineWorkspaceMetrics, useMessages, useMetrics, useNavigation, useOverrides, usePageOverride, usePrefetchClipCounts, useRealtimeLineMetrics, useRegistry, useSKUs, useShiftConfig, useShifts, useSubscriptionManager, useSubscriptionManagerSafe, useSupabase, useSupabaseClient, useTargets, useTheme, useThemeConfig, useThreads, useTicketHistory, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceHealth, useWorkspaceHealthById, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, userService, videoPrefetchManager, videoPreloader, whatsappService, withAccessControl, withAuth, withRegistry, workspaceHealthService, workspaceService };
|