ngx-universal-zone 1.0.6 → 1.0.7

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.
@@ -0,0 +1,2 @@
1
+ import { Provider } from '@angular/core';
2
+ export declare function provideUzAnalytics(): Provider[];
@@ -0,0 +1,135 @@
1
+ import * as i0 from "@angular/core";
2
+ export interface IAnalyticsConfig {
3
+ apiKey: string;
4
+ authDomain: string;
5
+ projectId: string;
6
+ storageBucket: string;
7
+ messagingSenderId: string;
8
+ appId: string;
9
+ measurementId: string;
10
+ }
11
+ export interface IAnalyticsService {
12
+ /**
13
+ * Track page view
14
+ */
15
+ trackPageView(pageName: string, pageTitle?: string): void;
16
+ /**
17
+ * Track button click events
18
+ */
19
+ trackButtonClick(buttonName: string, buttonLocation?: string): void;
20
+ /**
21
+ * Track user navigation events
22
+ */
23
+ trackNavigation(from: string, to: string, method?: string): void;
24
+ /**
25
+ * Track user actions in the app
26
+ */
27
+ trackUserAction(action: string, category: string, label?: string, value?: number): void;
28
+ /**
29
+ * Track business-specific events
30
+ */
31
+ trackBusinessEvent(eventName: string, parameters: {
32
+ [key: string]: any;
33
+ }): void;
34
+ /**
35
+ * Track errors that occur in the app
36
+ */
37
+ trackError(errorMessage: string, errorLocation: string, errorType?: string): void;
38
+ /**
39
+ * Set user ID for analytics
40
+ */
41
+ setUserId(userId: string): void;
42
+ /**
43
+ * Set user properties
44
+ */
45
+ setUserProperties(properties: {
46
+ [key: string]: any;
47
+ }): void;
48
+ /**
49
+ * Test analytics functionality
50
+ */
51
+ testAnalytics(): void;
52
+ /**
53
+ * Get analytics debug info
54
+ */
55
+ getDebugInfo(): any;
56
+ /**
57
+ * Dashboard specific events
58
+ */
59
+ trackDashboardEvents: {
60
+ dashboardViewed(): void;
61
+ dashboardButtonClicked(buttonType: string): void;
62
+ storeInfoClicked(): void;
63
+ lottieAnimationCompleted(): void;
64
+ syncStatusViewed(status: string): void;
65
+ };
66
+ }
67
+ export declare abstract class BaseAnalyticsService implements IAnalyticsService {
68
+ protected isDebugMode: boolean;
69
+ protected eventCount: number;
70
+ abstract trackPageView(pageName: string, pageTitle?: string): void;
71
+ abstract trackButtonClick(buttonName: string, buttonLocation?: string): void;
72
+ abstract trackNavigation(from: string, to: string, method?: string): void;
73
+ abstract trackUserAction(action: string, category: string, label?: string, value?: number): void;
74
+ abstract trackBusinessEvent(eventName: string, parameters: {
75
+ [key: string]: any;
76
+ }): void;
77
+ abstract trackError(errorMessage: string, errorLocation: string, errorType?: string): void;
78
+ abstract setUserId(userId: string): void;
79
+ abstract setUserProperties(properties: {
80
+ [key: string]: any;
81
+ }): void;
82
+ abstract testAnalytics(): void;
83
+ abstract getDebugInfo(): any;
84
+ /**
85
+ * Dashboard specific events
86
+ */
87
+ abstract trackDashboardEvents: {
88
+ dashboardViewed(): void;
89
+ dashboardButtonClicked(buttonType: string): void;
90
+ storeInfoClicked(): void;
91
+ lottieAnimationCompleted(): void;
92
+ syncStatusViewed(status: string): void;
93
+ };
94
+ /**
95
+ * Internal method to track event count in debug mode
96
+ */
97
+ protected incrementEventCount(): void;
98
+ /**
99
+ * Log debug information
100
+ */
101
+ protected logDebug(message: string, data?: any): void;
102
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseAnalyticsService, never>;
103
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseAnalyticsService>;
104
+ }
105
+ /**
106
+ * No-op implementation for development environment
107
+ */
108
+ export declare class NoOpAnalyticsService extends BaseAnalyticsService {
109
+ trackPageView(pageName: string, pageTitle?: string): void;
110
+ trackButtonClick(buttonName: string, buttonLocation?: string): void;
111
+ trackNavigation(from: string, to: string, method?: string): void;
112
+ trackUserAction(action: string, category: string, label?: string, value?: number): void;
113
+ trackBusinessEvent(eventName: string, parameters: {
114
+ [key: string]: any;
115
+ }): void;
116
+ trackError(errorMessage: string, errorLocation: string, errorType?: string): void;
117
+ setUserId(userId: string): void;
118
+ setUserProperties(properties: {
119
+ [key: string]: any;
120
+ }): void;
121
+ testAnalytics(): void;
122
+ getDebugInfo(): any;
123
+ /**
124
+ * Dashboard specific events
125
+ */
126
+ trackDashboardEvents: {
127
+ dashboardViewed: () => void;
128
+ dashboardButtonClicked: (buttonType: string) => void;
129
+ storeInfoClicked: () => void;
130
+ lottieAnimationCompleted: () => void;
131
+ syncStatusViewed: (status: string) => void;
132
+ };
133
+ static ɵfac: i0.ɵɵFactoryDeclaration<NoOpAnalyticsService, never>;
134
+ static ɵprov: i0.ɵɵInjectableDeclaration<NoOpAnalyticsService>;
135
+ }
@@ -0,0 +1,81 @@
1
+ import { BaseAnalyticsService, IAnalyticsConfig } from './base-analytics.service';
2
+ import * as i0 from "@angular/core";
3
+ export interface IFirebaseAnalytics {
4
+ logEvent: (eventName: string, parameters?: {
5
+ [key: string]: any;
6
+ }) => void;
7
+ setUserId: (userId: string) => void;
8
+ setUserProperties: (properties: {
9
+ [key: string]: any;
10
+ }) => void;
11
+ setCurrentScreen: (screenName: string) => void;
12
+ }
13
+ export declare class FirebaseAnalyticsService extends BaseAnalyticsService {
14
+ private analytics;
15
+ private config;
16
+ constructor();
17
+ /**
18
+ * Initialize Firebase Analytics
19
+ */
20
+ initialize(analytics: IFirebaseAnalytics, config: IAnalyticsConfig, isDebugMode?: boolean): void;
21
+ /**
22
+ * Monitor gtag calls for debugging
23
+ */
24
+ private monitorGtagCalls;
25
+ /**
26
+ * Track page view
27
+ */
28
+ trackPageView(pageName: string, pageTitle?: string): void;
29
+ /**
30
+ * Track button click events
31
+ */
32
+ trackButtonClick(buttonName: string, buttonLocation?: string): void;
33
+ /**
34
+ * Track user navigation events
35
+ */
36
+ trackNavigation(from: string, to: string, method?: string): void;
37
+ /**
38
+ * Track user actions in the app
39
+ */
40
+ trackUserAction(action: string, category: string, label?: string, value?: number): void;
41
+ /**
42
+ * Track business-specific events
43
+ */
44
+ trackBusinessEvent(eventName: string, parameters: {
45
+ [key: string]: any;
46
+ }): void;
47
+ /**
48
+ * Track errors that occur in the app
49
+ */
50
+ trackError(errorMessage: string, errorLocation: string, errorType?: string): void;
51
+ /**
52
+ * Set user ID for analytics
53
+ */
54
+ setUserId(userId: string): void;
55
+ /**
56
+ * Set user properties
57
+ */
58
+ setUserProperties(properties: {
59
+ [key: string]: any;
60
+ }): void;
61
+ /**
62
+ * Test analytics functionality
63
+ */
64
+ testAnalytics(): void;
65
+ /**
66
+ * Get analytics debug info
67
+ */
68
+ getDebugInfo(): any;
69
+ /**
70
+ * Dashboard specific events
71
+ */
72
+ trackDashboardEvents: {
73
+ dashboardViewed: () => void;
74
+ dashboardButtonClicked: (buttonType: string) => void;
75
+ storeInfoClicked: () => void;
76
+ lottieAnimationCompleted: () => void;
77
+ syncStatusViewed: (status: string) => void;
78
+ };
79
+ static ɵfac: i0.ɵɵFactoryDeclaration<FirebaseAnalyticsService, never>;
80
+ static ɵprov: i0.ɵɵInjectableDeclaration<FirebaseAnalyticsService>;
81
+ }
@@ -0,0 +1,4 @@
1
+ export * from './base-analytics.service';
2
+ export * from './firebase-analytics.service';
3
+ export * from './router-analytics.service';
4
+ export * from './analytics.module';
@@ -0,0 +1,16 @@
1
+ import { Router } from '@angular/router';
2
+ import { BaseAnalyticsService } from './base-analytics.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class RouterAnalyticsService {
5
+ private router;
6
+ private analyticsService;
7
+ private previousUrl;
8
+ private currentUrl;
9
+ constructor(router: Router, analyticsService: BaseAnalyticsService);
10
+ private initializeRouterTracking;
11
+ private trackPageView;
12
+ private trackNavigation;
13
+ private getPageNameFromUrl;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<RouterAnalyticsService, never>;
15
+ static ɵprov: i0.ɵɵInjectableDeclaration<RouterAnalyticsService>;
16
+ }
@@ -0,0 +1,403 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i1 from '@angular/router';
4
+ import { NavigationEnd } from '@angular/router';
5
+ import { filter } from 'rxjs/operators';
6
+
7
+ class BaseAnalyticsService {
8
+ constructor() {
9
+ this.isDebugMode = false;
10
+ this.eventCount = 0;
11
+ }
12
+ /**
13
+ * Internal method to track event count in debug mode
14
+ */
15
+ incrementEventCount() {
16
+ if (this.isDebugMode) {
17
+ this.eventCount++;
18
+ console.log(`[Analytics] Total events tracked: ${this.eventCount}`);
19
+ }
20
+ }
21
+ /**
22
+ * Log debug information
23
+ */
24
+ logDebug(message, data) {
25
+ if (this.isDebugMode) {
26
+ console.log(`[Analytics] ${message}`, {
27
+ ...data,
28
+ timestamp: new Date().toISOString()
29
+ });
30
+ }
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseAnalyticsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseAnalyticsService, providedIn: 'root' }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseAnalyticsService, decorators: [{
36
+ type: Injectable,
37
+ args: [{
38
+ providedIn: 'root'
39
+ }]
40
+ }] });
41
+ /**
42
+ * No-op implementation for development environment
43
+ */
44
+ class NoOpAnalyticsService extends BaseAnalyticsService {
45
+ constructor() {
46
+ super(...arguments);
47
+ /**
48
+ * Dashboard specific events
49
+ */
50
+ this.trackDashboardEvents = {
51
+ dashboardViewed: () => {
52
+ this.logDebug('[Dev] Dashboard viewed');
53
+ },
54
+ dashboardButtonClicked: (buttonType) => {
55
+ this.logDebug(`[Dev] Dashboard button clicked: ${buttonType}`);
56
+ },
57
+ storeInfoClicked: () => {
58
+ this.logDebug('[Dev] Store info clicked');
59
+ },
60
+ lottieAnimationCompleted: () => {
61
+ this.logDebug('[Dev] Lottie animation completed');
62
+ },
63
+ syncStatusViewed: (status) => {
64
+ this.logDebug(`[Dev] Sync status viewed: ${status}`);
65
+ }
66
+ };
67
+ }
68
+ trackPageView(pageName, pageTitle) {
69
+ this.logDebug(`[Dev] Page View: ${pageName}`, { pageTitle });
70
+ }
71
+ trackButtonClick(buttonName, buttonLocation) {
72
+ this.logDebug(`[Dev] Button Click: ${buttonName}`, { buttonLocation });
73
+ }
74
+ trackNavigation(from, to, method) {
75
+ this.logDebug(`[Dev] Navigation: ${from} -> ${to}`, { method });
76
+ }
77
+ trackUserAction(action, category, label, value) {
78
+ this.logDebug(`[Dev] User Action: ${action}`, { category, label, value });
79
+ }
80
+ trackBusinessEvent(eventName, parameters) {
81
+ this.logDebug(`[Dev] Business Event: ${eventName}`, parameters);
82
+ }
83
+ trackError(errorMessage, errorLocation, errorType) {
84
+ this.logDebug(`[Dev] Error: ${errorMessage}`, { errorLocation, errorType });
85
+ }
86
+ setUserId(userId) {
87
+ this.logDebug(`[Dev] Set User ID: ${userId}`);
88
+ }
89
+ setUserProperties(properties) {
90
+ this.logDebug(`[Dev] Set User Properties:`, properties);
91
+ }
92
+ testAnalytics() {
93
+ console.log('[Dev] Analytics test - no-op implementation');
94
+ }
95
+ getDebugInfo() {
96
+ return {
97
+ implementation: 'no-op',
98
+ isDebugMode: this.isDebugMode,
99
+ eventCount: this.eventCount
100
+ };
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoOpAnalyticsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
103
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoOpAnalyticsService, providedIn: 'root' }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoOpAnalyticsService, decorators: [{
106
+ type: Injectable,
107
+ args: [{
108
+ providedIn: 'root'
109
+ }]
110
+ }] });
111
+
112
+ class FirebaseAnalyticsService extends BaseAnalyticsService {
113
+ constructor() {
114
+ super();
115
+ this.analytics = null;
116
+ this.config = null;
117
+ /**
118
+ * Dashboard specific events
119
+ */
120
+ this.trackDashboardEvents = {
121
+ dashboardViewed: () => {
122
+ this.trackPageView('dashboard', 'Dashboard');
123
+ },
124
+ dashboardButtonClicked: (buttonType) => {
125
+ this.trackButtonClick(`dashboard_${buttonType}`, 'dashboard');
126
+ this.trackBusinessEvent('dashboard_action', {
127
+ action_type: buttonType,
128
+ screen: 'dashboard'
129
+ });
130
+ },
131
+ storeInfoClicked: () => {
132
+ this.trackButtonClick('store_info', 'dashboard');
133
+ this.trackBusinessEvent('store_interaction', {
134
+ action: 'info_clicked',
135
+ screen: 'dashboard'
136
+ });
137
+ },
138
+ lottieAnimationCompleted: () => {
139
+ this.trackUserAction('lottie_animation_completed', 'ui_interaction', 'dashboard');
140
+ },
141
+ syncStatusViewed: (status) => {
142
+ this.trackBusinessEvent('sync_status_viewed', {
143
+ status: status,
144
+ screen: 'dashboard'
145
+ });
146
+ }
147
+ };
148
+ }
149
+ /**
150
+ * Initialize Firebase Analytics
151
+ */
152
+ initialize(analytics, config, isDebugMode = false) {
153
+ this.analytics = analytics;
154
+ this.config = config;
155
+ this.isDebugMode = isDebugMode;
156
+ if (this.isDebugMode) {
157
+ console.log('[Firebase Analytics] Service initialized in debug mode');
158
+ console.log('[Firebase Analytics] Config:', config);
159
+ this.monitorGtagCalls();
160
+ }
161
+ }
162
+ /**
163
+ * Monitor gtag calls for debugging
164
+ */
165
+ monitorGtagCalls() {
166
+ const originalGtag = window.gtag;
167
+ if (originalGtag) {
168
+ window.gtag = (...args) => {
169
+ console.log('[Firebase Analytics] gtag call:', args);
170
+ return originalGtag.apply(window, args);
171
+ };
172
+ }
173
+ }
174
+ /**
175
+ * Track page view
176
+ */
177
+ trackPageView(pageName, pageTitle) {
178
+ if (!this.analytics)
179
+ return;
180
+ this.logDebug(`Page View: ${pageName}`, { page_title: pageTitle });
181
+ // Set current screen
182
+ this.analytics.setCurrentScreen(pageName);
183
+ // Log page view event
184
+ this.analytics.logEvent('page_view', {
185
+ page_name: pageName,
186
+ page_title: pageTitle || pageName
187
+ });
188
+ this.incrementEventCount();
189
+ }
190
+ /**
191
+ * Track button click events
192
+ */
193
+ trackButtonClick(buttonName, buttonLocation) {
194
+ if (!this.analytics)
195
+ return;
196
+ this.logDebug(`Button Click: ${buttonName}`, { location: buttonLocation });
197
+ this.analytics.logEvent('button_click', {
198
+ button_name: buttonName,
199
+ button_location: buttonLocation || 'unknown'
200
+ });
201
+ this.incrementEventCount();
202
+ }
203
+ /**
204
+ * Track user navigation events
205
+ */
206
+ trackNavigation(from, to, method = 'click') {
207
+ if (!this.analytics)
208
+ return;
209
+ this.logDebug(`Navigation: ${from} -> ${to}`, { method });
210
+ this.analytics.logEvent('navigation', {
211
+ from_page: from,
212
+ to_page: to,
213
+ method: method
214
+ });
215
+ this.incrementEventCount();
216
+ }
217
+ /**
218
+ * Track user actions in the app
219
+ */
220
+ trackUserAction(action, category, label, value) {
221
+ if (!this.analytics)
222
+ return;
223
+ this.logDebug(`User Action: ${action}`, { category, label, value });
224
+ this.analytics.logEvent('user_action', {
225
+ action: action,
226
+ category: category,
227
+ label: label || '',
228
+ value: value || 0
229
+ });
230
+ this.incrementEventCount();
231
+ }
232
+ /**
233
+ * Track business-specific events
234
+ */
235
+ trackBusinessEvent(eventName, parameters) {
236
+ if (!this.analytics)
237
+ return;
238
+ this.logDebug(`Business Event: ${eventName}`, parameters);
239
+ this.analytics.logEvent(eventName, parameters);
240
+ this.incrementEventCount();
241
+ }
242
+ /**
243
+ * Track errors that occur in the app
244
+ */
245
+ trackError(errorMessage, errorLocation, errorType = 'runtime') {
246
+ if (!this.analytics)
247
+ return;
248
+ this.logDebug(`Error: ${errorMessage}`, { location: errorLocation, type: errorType });
249
+ this.analytics.logEvent('error', {
250
+ error_message: errorMessage,
251
+ error_location: errorLocation,
252
+ error_type: errorType
253
+ });
254
+ this.incrementEventCount();
255
+ }
256
+ /**
257
+ * Set user ID for analytics
258
+ */
259
+ setUserId(userId) {
260
+ if (!this.analytics)
261
+ return;
262
+ this.logDebug(`Set User ID: ${userId}`);
263
+ this.analytics.setUserId(userId);
264
+ }
265
+ /**
266
+ * Set user properties
267
+ */
268
+ setUserProperties(properties) {
269
+ if (!this.analytics)
270
+ return;
271
+ this.logDebug(`Set User Properties:`, properties);
272
+ this.analytics.setUserProperties(properties);
273
+ }
274
+ /**
275
+ * Test analytics functionality
276
+ */
277
+ testAnalytics() {
278
+ console.log('[Analytics] Testing Firebase Analytics...');
279
+ console.log('[Analytics] Analytics initialized:', !!this.analytics);
280
+ console.log('[Analytics] Config:', this.config);
281
+ if (!this.analytics) {
282
+ console.error('[Analytics] Analytics not initialized! Call initialize() first.');
283
+ return;
284
+ }
285
+ // Test events
286
+ this.trackBusinessEvent('analytics_test', {
287
+ test_type: 'manual_validation',
288
+ timestamp: Date.now(),
289
+ user_agent: navigator.userAgent
290
+ });
291
+ this.trackPageView('test_page', 'Analytics Test Page');
292
+ this.trackButtonClick('test_button', 'analytics_validation');
293
+ console.log('[Analytics] Test events sent.');
294
+ }
295
+ /**
296
+ * Get analytics debug info
297
+ */
298
+ getDebugInfo() {
299
+ return {
300
+ isDebugMode: this.isDebugMode,
301
+ eventCount: this.eventCount,
302
+ analyticsInitialized: !!this.analytics,
303
+ config: this.config
304
+ };
305
+ }
306
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: FirebaseAnalyticsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
307
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: FirebaseAnalyticsService, providedIn: 'root' }); }
308
+ }
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: FirebaseAnalyticsService, decorators: [{
310
+ type: Injectable,
311
+ args: [{
312
+ providedIn: 'root'
313
+ }]
314
+ }], ctorParameters: () => [] });
315
+
316
+ class RouterAnalyticsService {
317
+ constructor(router, analyticsService) {
318
+ this.router = router;
319
+ this.analyticsService = analyticsService;
320
+ this.previousUrl = '';
321
+ this.currentUrl = '';
322
+ this.initializeRouterTracking();
323
+ }
324
+ initializeRouterTracking() {
325
+ this.router.events
326
+ .pipe(filter(event => event instanceof NavigationEnd))
327
+ .subscribe((event) => {
328
+ this.previousUrl = this.currentUrl;
329
+ this.currentUrl = event.url;
330
+ // Track page view
331
+ this.trackPageView(event.url);
332
+ // Track navigation if we have a previous URL
333
+ if (this.previousUrl && this.previousUrl !== this.currentUrl) {
334
+ this.trackNavigation(this.previousUrl, this.currentUrl);
335
+ }
336
+ });
337
+ }
338
+ trackPageView(url) {
339
+ try {
340
+ const pageName = this.getPageNameFromUrl(url);
341
+ if (this.analyticsService && typeof this.analyticsService.trackPageView === 'function') {
342
+ this.analyticsService.trackPageView(pageName, `Page: ${pageName}`);
343
+ }
344
+ }
345
+ catch (error) {
346
+ console.warn('[RouterAnalytics] Error tracking page view:', error);
347
+ }
348
+ }
349
+ trackNavigation(from, to) {
350
+ try {
351
+ const fromPage = this.getPageNameFromUrl(from);
352
+ const toPage = this.getPageNameFromUrl(to);
353
+ if (this.analyticsService && typeof this.analyticsService.trackNavigation === 'function') {
354
+ this.analyticsService.trackNavigation(fromPage, toPage, 'router_navigation');
355
+ }
356
+ }
357
+ catch (error) {
358
+ console.warn('[RouterAnalytics] Error tracking navigation:', error);
359
+ }
360
+ }
361
+ getPageNameFromUrl(url) {
362
+ // Remove query parameters and fragments
363
+ const cleanUrl = url.split('?')[0].split('#')[0];
364
+ // Handle specific routes
365
+ if (cleanUrl === '/' || cleanUrl === '/home')
366
+ return 'dashboard';
367
+ if (cleanUrl.startsWith('/admin'))
368
+ return 'admin';
369
+ if (cleanUrl.startsWith('/checkout'))
370
+ return 'checkout';
371
+ if (cleanUrl.startsWith('/auth'))
372
+ return 'auth';
373
+ if (cleanUrl.startsWith('/store'))
374
+ return 'store';
375
+ // Default: remove leading slash and take first segment
376
+ return cleanUrl.replace('/', '').split('/')[0] || 'unknown';
377
+ }
378
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RouterAnalyticsService, deps: [{ token: i1.Router }, { token: BaseAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
379
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RouterAnalyticsService, providedIn: 'root' }); }
380
+ }
381
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RouterAnalyticsService, decorators: [{
382
+ type: Injectable,
383
+ args: [{
384
+ providedIn: 'root'
385
+ }]
386
+ }], ctorParameters: () => [{ type: i1.Router }, { type: BaseAnalyticsService }] });
387
+
388
+ function provideUzAnalytics() {
389
+ return [
390
+ {
391
+ provide: BaseAnalyticsService,
392
+ useClass: NoOpAnalyticsService
393
+ },
394
+ RouterAnalyticsService,
395
+ ];
396
+ }
397
+
398
+ /**
399
+ * Generated bundle index. Do not edit.
400
+ */
401
+
402
+ export { BaseAnalyticsService, FirebaseAnalyticsService, NoOpAnalyticsService, RouterAnalyticsService, provideUzAnalytics };
403
+ //# sourceMappingURL=ngx-universal-zone-analytics.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-universal-zone-analytics.mjs","sources":["../../../projects/ngx-universal-zone/analytics/base-analytics.service.ts","../../../projects/ngx-universal-zone/analytics/firebase-analytics.service.ts","../../../projects/ngx-universal-zone/analytics/router-analytics.service.ts","../../../projects/ngx-universal-zone/analytics/analytics.module.ts","../../../projects/ngx-universal-zone/analytics/ngx-universal-zone-analytics.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nexport interface IAnalyticsConfig {\n apiKey: string;\n authDomain: string;\n projectId: string;\n storageBucket: string;\n messagingSenderId: string;\n appId: string;\n measurementId: string;\n}\n\nexport interface IAnalyticsService {\n /**\n * Track page view\n */\n trackPageView(pageName: string, pageTitle?: string): void;\n \n /**\n * Track button click events\n */\n trackButtonClick(buttonName: string, buttonLocation?: string): void;\n \n /**\n * Track user navigation events\n */\n trackNavigation(from: string, to: string, method?: string): void;\n \n /**\n * Track user actions in the app\n */\n trackUserAction(action: string, category: string, label?: string, value?: number): void;\n \n /**\n * Track business-specific events\n */\n trackBusinessEvent(eventName: string, parameters: { [key: string]: any }): void;\n \n /**\n * Track errors that occur in the app\n */\n trackError(errorMessage: string, errorLocation: string, errorType?: string): void;\n \n /**\n * Set user ID for analytics\n */\n setUserId(userId: string): void;\n \n /**\n * Set user properties\n */\n setUserProperties(properties: { [key: string]: any }): void;\n \n /**\n * Test analytics functionality\n */\n testAnalytics(): void;\n \n /**\n * Get analytics debug info\n */\n getDebugInfo(): any;\n\n /**\n * Dashboard specific events\n */\n trackDashboardEvents: {\n dashboardViewed(): void;\n dashboardButtonClicked(buttonType: string): void;\n storeInfoClicked(): void;\n lottieAnimationCompleted(): void;\n syncStatusViewed(status: string): void;\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class BaseAnalyticsService implements IAnalyticsService {\n protected isDebugMode = false;\n protected eventCount = 0;\n \n abstract trackPageView(pageName: string, pageTitle?: string): void;\n abstract trackButtonClick(buttonName: string, buttonLocation?: string): void;\n abstract trackNavigation(from: string, to: string, method?: string): void;\n abstract trackUserAction(action: string, category: string, label?: string, value?: number): void;\n abstract trackBusinessEvent(eventName: string, parameters: { [key: string]: any }): void;\n abstract trackError(errorMessage: string, errorLocation: string, errorType?: string): void;\n abstract setUserId(userId: string): void;\n abstract setUserProperties(properties: { [key: string]: any }): void;\n abstract testAnalytics(): void;\n abstract getDebugInfo(): any;\n \n /**\n * Dashboard specific events\n */\n abstract trackDashboardEvents: {\n dashboardViewed(): void;\n dashboardButtonClicked(buttonType: string): void;\n storeInfoClicked(): void;\n lottieAnimationCompleted(): void;\n syncStatusViewed(status: string): void;\n };\n \n /**\n * Internal method to track event count in debug mode\n */\n protected incrementEventCount() {\n if (this.isDebugMode) {\n this.eventCount++;\n console.log(`[Analytics] Total events tracked: ${this.eventCount}`);\n }\n }\n\n /**\n * Log debug information\n */\n protected logDebug(message: string, data?: any) {\n if (this.isDebugMode) {\n console.log(`[Analytics] ${message}`, {\n ...data,\n timestamp: new Date().toISOString()\n });\n }\n }\n}\n\n/**\n * No-op implementation for development environment\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class NoOpAnalyticsService extends BaseAnalyticsService {\n trackPageView(pageName: string, pageTitle?: string): void {\n this.logDebug(`[Dev] Page View: ${pageName}`, { pageTitle });\n }\n\n trackButtonClick(buttonName: string, buttonLocation?: string): void {\n this.logDebug(`[Dev] Button Click: ${buttonName}`, { buttonLocation });\n }\n\n trackNavigation(from: string, to: string, method?: string): void {\n this.logDebug(`[Dev] Navigation: ${from} -> ${to}`, { method });\n }\n\n trackUserAction(action: string, category: string, label?: string, value?: number): void {\n this.logDebug(`[Dev] User Action: ${action}`, { category, label, value });\n }\n\n trackBusinessEvent(eventName: string, parameters: { [key: string]: any }): void {\n this.logDebug(`[Dev] Business Event: ${eventName}`, parameters);\n }\n\n trackError(errorMessage: string, errorLocation: string, errorType?: string): void {\n this.logDebug(`[Dev] Error: ${errorMessage}`, { errorLocation, errorType });\n }\n\n setUserId(userId: string): void {\n this.logDebug(`[Dev] Set User ID: ${userId}`);\n }\n\n setUserProperties(properties: { [key: string]: any }): void {\n this.logDebug(`[Dev] Set User Properties:`, properties);\n }\n\n testAnalytics(): void {\n console.log('[Dev] Analytics test - no-op implementation');\n }\n\n getDebugInfo(): any {\n return {\n implementation: 'no-op',\n isDebugMode: this.isDebugMode,\n eventCount: this.eventCount\n };\n }\n\n /**\n * Dashboard specific events\n */\n trackDashboardEvents = {\n dashboardViewed: () => {\n this.logDebug('[Dev] Dashboard viewed');\n },\n \n dashboardButtonClicked: (buttonType: string) => {\n this.logDebug(`[Dev] Dashboard button clicked: ${buttonType}`);\n },\n \n storeInfoClicked: () => {\n this.logDebug('[Dev] Store info clicked');\n },\n \n lottieAnimationCompleted: () => {\n this.logDebug('[Dev] Lottie animation completed');\n },\n \n syncStatusViewed: (status: string) => {\n this.logDebug(`[Dev] Sync status viewed: ${status}`);\n }\n };\n}\n","import { Injectable } from '@angular/core';\nimport { BaseAnalyticsService, IAnalyticsConfig } from './base-analytics.service';\n\n// Firebase Analytics types (to avoid importing Firebase directly in the base library)\nexport interface IFirebaseAnalytics {\n logEvent: (eventName: string, parameters?: { [key: string]: any }) => void;\n setUserId: (userId: string) => void;\n setUserProperties: (properties: { [key: string]: any }) => void;\n setCurrentScreen: (screenName: string) => void;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FirebaseAnalyticsService extends BaseAnalyticsService {\n private analytics: IFirebaseAnalytics | null = null;\n private config: IAnalyticsConfig | null = null;\n \n constructor() {\n super();\n }\n\n /**\n * Initialize Firebase Analytics\n */\n initialize(analytics: IFirebaseAnalytics, config: IAnalyticsConfig, isDebugMode: boolean = false) {\n this.analytics = analytics;\n this.config = config;\n this.isDebugMode = isDebugMode;\n \n if (this.isDebugMode) {\n console.log('[Firebase Analytics] Service initialized in debug mode');\n console.log('[Firebase Analytics] Config:', config);\n this.monitorGtagCalls();\n }\n }\n\n /**\n * Monitor gtag calls for debugging\n */\n private monitorGtagCalls() {\n const originalGtag = (window as any).gtag;\n if (originalGtag) {\n (window as any).gtag = (...args: any[]) => {\n console.log('[Firebase Analytics] gtag call:', args);\n return originalGtag.apply(window, args);\n };\n }\n }\n\n /**\n * Track page view\n */\n trackPageView(pageName: string, pageTitle?: string): void {\n if (!this.analytics) return;\n \n this.logDebug(`Page View: ${pageName}`, { page_title: pageTitle });\n \n // Set current screen\n this.analytics.setCurrentScreen(pageName);\n \n // Log page view event\n this.analytics.logEvent('page_view', {\n page_name: pageName,\n page_title: pageTitle || pageName\n });\n \n this.incrementEventCount();\n }\n\n /**\n * Track button click events\n */\n trackButtonClick(buttonName: string, buttonLocation?: string): void {\n if (!this.analytics) return;\n \n this.logDebug(`Button Click: ${buttonName}`, { location: buttonLocation });\n \n this.analytics.logEvent('button_click', {\n button_name: buttonName,\n button_location: buttonLocation || 'unknown'\n });\n \n this.incrementEventCount();\n }\n\n /**\n * Track user navigation events\n */\n trackNavigation(from: string, to: string, method: string = 'click'): void {\n if (!this.analytics) return;\n \n this.logDebug(`Navigation: ${from} -> ${to}`, { method });\n \n this.analytics.logEvent('navigation', {\n from_page: from,\n to_page: to,\n method: method\n });\n \n this.incrementEventCount();\n }\n\n /**\n * Track user actions in the app\n */\n trackUserAction(action: string, category: string, label?: string, value?: number): void {\n if (!this.analytics) return;\n \n this.logDebug(`User Action: ${action}`, { category, label, value });\n \n this.analytics.logEvent('user_action', {\n action: action,\n category: category,\n label: label || '',\n value: value || 0\n });\n \n this.incrementEventCount();\n }\n\n /**\n * Track business-specific events\n */\n trackBusinessEvent(eventName: string, parameters: { [key: string]: any }): void {\n if (!this.analytics) return;\n \n this.logDebug(`Business Event: ${eventName}`, parameters);\n \n this.analytics.logEvent(eventName, parameters);\n \n this.incrementEventCount();\n }\n\n /**\n * Track errors that occur in the app\n */\n trackError(errorMessage: string, errorLocation: string, errorType: string = 'runtime'): void {\n if (!this.analytics) return;\n \n this.logDebug(`Error: ${errorMessage}`, { location: errorLocation, type: errorType });\n \n this.analytics.logEvent('error', {\n error_message: errorMessage,\n error_location: errorLocation,\n error_type: errorType\n });\n \n this.incrementEventCount();\n }\n\n /**\n * Set user ID for analytics\n */\n setUserId(userId: string): void {\n if (!this.analytics) return;\n \n this.logDebug(`Set User ID: ${userId}`);\n \n this.analytics.setUserId(userId);\n }\n\n /**\n * Set user properties\n */\n setUserProperties(properties: { [key: string]: any }): void {\n if (!this.analytics) return;\n \n this.logDebug(`Set User Properties:`, properties);\n \n this.analytics.setUserProperties(properties);\n }\n\n /**\n * Test analytics functionality\n */\n testAnalytics(): void {\n console.log('[Analytics] Testing Firebase Analytics...');\n console.log('[Analytics] Analytics initialized:', !!this.analytics);\n console.log('[Analytics] Config:', this.config);\n \n if (!this.analytics) {\n console.error('[Analytics] Analytics not initialized! Call initialize() first.');\n return;\n }\n \n // Test events\n this.trackBusinessEvent('analytics_test', {\n test_type: 'manual_validation',\n timestamp: Date.now(),\n user_agent: navigator.userAgent\n });\n \n this.trackPageView('test_page', 'Analytics Test Page');\n this.trackButtonClick('test_button', 'analytics_validation');\n \n console.log('[Analytics] Test events sent.');\n }\n\n /**\n * Get analytics debug info\n */\n getDebugInfo(): any {\n return {\n isDebugMode: this.isDebugMode,\n eventCount: this.eventCount,\n analyticsInitialized: !!this.analytics,\n config: this.config\n };\n }\n\n /**\n * Dashboard specific events\n */\n trackDashboardEvents = {\n dashboardViewed: () => {\n this.trackPageView('dashboard', 'Dashboard');\n },\n \n dashboardButtonClicked: (buttonType: string) => {\n this.trackButtonClick(`dashboard_${buttonType}`, 'dashboard');\n this.trackBusinessEvent('dashboard_action', {\n action_type: buttonType,\n screen: 'dashboard'\n });\n },\n \n storeInfoClicked: () => {\n this.trackButtonClick('store_info', 'dashboard');\n this.trackBusinessEvent('store_interaction', {\n action: 'info_clicked',\n screen: 'dashboard'\n });\n },\n \n lottieAnimationCompleted: () => {\n this.trackUserAction('lottie_animation_completed', 'ui_interaction', 'dashboard');\n },\n \n syncStatusViewed: (status: string) => {\n this.trackBusinessEvent('sync_status_viewed', {\n status: status,\n screen: 'dashboard'\n });\n }\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { BaseAnalyticsService } from './base-analytics.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RouterAnalyticsService {\n private previousUrl: string = '';\n private currentUrl: string = '';\n\n constructor(\n private router: Router,\n private analyticsService: BaseAnalyticsService\n ) {\n this.initializeRouterTracking();\n }\n\n private initializeRouterTracking() {\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe((event: NavigationEnd) => {\n this.previousUrl = this.currentUrl;\n this.currentUrl = event.url;\n \n // Track page view\n this.trackPageView(event.url);\n \n // Track navigation if we have a previous URL\n if (this.previousUrl && this.previousUrl !== this.currentUrl) {\n this.trackNavigation(this.previousUrl, this.currentUrl);\n }\n });\n }\n\n private trackPageView(url: string) {\n try {\n const pageName = this.getPageNameFromUrl(url);\n if (this.analyticsService && typeof this.analyticsService.trackPageView === 'function') {\n this.analyticsService.trackPageView(pageName, `Page: ${pageName}`);\n }\n } catch (error) {\n console.warn('[RouterAnalytics] Error tracking page view:', error);\n }\n }\n\n private trackNavigation(from: string, to: string) {\n try {\n const fromPage = this.getPageNameFromUrl(from);\n const toPage = this.getPageNameFromUrl(to);\n if (this.analyticsService && typeof this.analyticsService.trackNavigation === 'function') {\n this.analyticsService.trackNavigation(fromPage, toPage, 'router_navigation');\n }\n } catch (error) {\n console.warn('[RouterAnalytics] Error tracking navigation:', error);\n }\n }\n\n private getPageNameFromUrl(url: string): string {\n // Remove query parameters and fragments\n const cleanUrl = url.split('?')[0].split('#')[0];\n \n // Handle specific routes\n if (cleanUrl === '/' || cleanUrl === '/home') return 'dashboard';\n if (cleanUrl.startsWith('/admin')) return 'admin';\n if (cleanUrl.startsWith('/checkout')) return 'checkout';\n if (cleanUrl.startsWith('/auth')) return 'auth';\n if (cleanUrl.startsWith('/store')) return 'store';\n \n // Default: remove leading slash and take first segment\n return cleanUrl.replace('/', '').split('/')[0] || 'unknown';\n }\n}\n","import { Provider } from '@angular/core';\nimport { BaseAnalyticsService, NoOpAnalyticsService } from './base-analytics.service';\nimport { RouterAnalyticsService } from './router-analytics.service';\n\nexport function provideUzAnalytics(): Provider[] {\n return [\n {\n provide: BaseAnalyticsService,\n useClass: NoOpAnalyticsService\n },\n RouterAnalyticsService,\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.BaseAnalyticsService"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-universal-zone.mjs","sources":["../../../projects/ngx-universal-zone/shared/app-injector.ts","../../../projects/ngx-universal-zone/database/db-base.service.ts","../../../projects/ngx-universal-zone/database/db-web.service.ts","../../../projects/ngx-universal-zone/database/schema.service.ts","../../../projects/ngx-universal-zone/database/db-setting-constant.ts","../../../projects/ngx-universal-zone/database/db.module.ts","../../../projects/ngx-universal-zone/shared/app-setting.service.ts","../../../projects/ngx-universal-zone/shared/helper.service.ts","../../../projects/ngx-universal-zone/shared/universal-zone.module.ts","../../../projects/ngx-universal-zone/shared/message-bus/message-bus.ts","../../../projects/ngx-universal-zone/shared/message-bus/models.ts","../../../projects/ngx-universal-zone/shared/message-bus/message-bus.testing.ts","../../../projects/ngx-universal-zone/shared/message-bus/messages.ts","../../../projects/ngx-universal-zone/shared/flag-based-preloading-strategy.ts","../../../projects/ngx-universal-zone/public-api.ts","../../../projects/ngx-universal-zone/ngx-universal-zone.ts"],"sourcesContent":["import { Injector } from '@angular/core';\n\n// https://blogs.msdn.microsoft.com/premier_developer/2018/06/17/angular-how-to-simplify-components-with-typescript-inheritance/\nexport class AppInjector {\n private static injector: Injector;\n\n static setInjector(injector: Injector) {\n AppInjector.injector = injector;\n }\n\n static getInjector(): Injector {\n return AppInjector.injector;\n }\n}\n","// @ts-ignore\n\nimport { Observable } from \"rxjs\";\n\nimport { ITableOptions } from \"./schema.service\";\nimport { DbFilter } from \"./db-web.service\";\n\nexport class DbServiceConfig {\n dbType!: DbServiceType;\n dbName!: string;\n schema!: ITableOptions[];\n}\n\nexport enum DbServiceType {\n IndexDd,\n Sqlite\n}\n\nexport abstract class DbService {\n dbInitialized$ = new Observable<any>();\n\n get Db(): any {\n return;\n }\n\n putLocal(store, data): Promise<{ rowsAffected; insertId }> {\n // @ts-ignore\n\n return;\n }\n\n putLocalRx(store, data): Observable<any> {\n // @ts-ignore\n return;\n }\n\n get<T>(store: string, key: any): Promise<T> {\n // @ts-ignore\n return;\n }\n getRx<T>(store: string, key: any): Observable<T> { \n // @ts-ignore\n return; \n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n // @ts-ignore\n return;\n }\n\n getAllRx<T>(store: string, opt?: DbFilter): Observable<T> {\n // @ts-ignore\n return;\n }\n\n remove(store, id): Promise<any> {\n // @ts-ignore\n return;\n }\n\n removeRx(store, key): Observable<any> {\n // @ts-ignore\n return;\n }\n\n removeAll(store): Promise<any> {\n // @ts-ignore\n return;\n }\n\n removeAllRx(store: string): Observable<any> {\n // @ts-ignore\n return;\n }\n\n count(store, opts?: { key }): Promise<number> {\n // @ts-ignore\n return;\n }\n\n countRx(store, opts?: { key }): Observable<number> {\n // @ts-ignore\n return;\n }\n\n deleteDb(): Promise<any> {\n // @ts-ignore\n return;\n }\n\n deleteTable(store): Observable<void> {\n // @ts-ignore\n return;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport Dexie, { IndexableType } from 'dexie';\nimport { forkJoin, Observable, of, Subject, switchMap } from 'rxjs';\n\nimport { SchemaService } from './schema.service';\nimport { DbService, DbServiceConfig } from './db-base.service';\n\n// @Injectable()\nexport class DbWebService extends Dexie implements DbService {\n private _db!: Dexie;\n private dbInitialized = new Subject<any>();\n\n constructor(\n private config: DbServiceConfig,\n private schemaService: SchemaService\n ) {\n super(config.dbName);\n\n const schema: {\n [tableName: string]: string | null;\n } = {};\n schemaService.schema.stores.forEach((s) => {\n let cols = ``;\n for (let c of s.columns) {\n cols += `${c.isPrimaryKey ? `++${c.name}` : `,${c.name}`}`;\n }\n schema[s.name] = cols;\n });\n this.version(1).stores(schema);\n this.open()\n .then((d) => {\n this._db = d;\n\n this.dbInitialized.next(d);\n })\n .catch((e) => alert(e));\n }\n \n dbInitialized$ = this.dbInitialized.asObservable();\n\n get Db() {\n return this._db;\n }\n\n putLocal(store, data): Promise<{ rowsAffected; insertId }> {\n return new Promise(async (resolve, reject) => {\n const schema = this.schemaService.schema.stores.filter(\n (s) => s.name == store\n )[0];\n const key = schema.columns.filter((s) => s.isPrimaryKey)[0];\n\n const exist = data[key.name] ? await this.get(store, data[key.name]) : null;\n if (exist) {\n //update\n this.Db\n .table(store)\n .update(data[key.name], data)\n .then(\n (r) => resolve(null as any),\n (e) => reject(e)\n );\n } else {\n this.Db\n .table(store)\n .add(data)\n .then(\n (r) => resolve(null as any),\n (e) => reject(e)\n );\n }\n });\n }\n\n putLocalRx(store, data) {\n return new Observable((observer) => {\n this.putLocal(store, data).then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n get<T>(store: string, key: any): Promise<T> {\n return new Promise((resolve, reject) => {\n if(!this.Db) {\n return reject('Database not initialized. Please wait for dbInitialized$ to emit.');\n }\n \n this.Db\n .table(store)\n .get(key)\n .then((r) => {\n resolve(<T>r);\n }, (e) => reject(e));\n });\n }\n\n getRx<T>(store: string, key: any) {\n return new Observable<T>((observer) => {\n this.get<T>(store, key).then((value) => {\n observer.next(value);\n observer.complete();\n });\n });\n }\n\n getByFieldName<T>(storeName, fieldName, key): Promise<Array<T>> {\n const filter = {};\n filter[fieldName] = key;\n return this.Db.table(storeName).where(filter).toArray();\n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n return new Promise(async (resolve, reject) => {\n if(!this.Db) {\n return reject('Database not initialized. Please wait for dbInitialized$ to emit.');\n }\n\n let table = this.Db.table(store);\n let collection = table.toCollection();\n\n if(opt?.sortBy) {\n collection = table.orderBy(opt.sortBy);\n }\n\n if(opt?.sortType && opt?.sortType == 'desc') {\n collection = table.reverse();\n }\n\n // collection = this.Db.table(store).toCollection();\n if (opt && opt.key && opt.value) {\n if(!opt.keyRange) {\n opt.keyRange = KeyRangeType.equalTo;\n }\n\n switch (opt.keyRange) {\n case KeyRangeType.startsWithIgnoreCase:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .startsWithIgnoreCase(opt.value);\n break;\n case KeyRangeType.equalTo:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .equals(opt.value);\n break;\n case KeyRangeType.notEqualTo:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .notEqual(opt.value);\n break;\n case KeyRangeType.equalToIgnoreCase:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .equalsIgnoreCase(opt.value);\n break;\n }\n }\n\n if(opt?.pageIndex != null) {\n collection = collection.offset((opt.pageIndex - 1) * opt.pageSize);\n }\n\n if(opt?.pageSize != null) {\n collection = collection.limit(opt.pageSize)\n }\n\n // let data!: T;\n // if(opt?.sortBy) {\n // data = <T>await collection.sortBy(opt.sortBy);\n // } else {\n // data = <T>await collection.toArray();\n // }\n\n // if(opt.sortType == 'desc') {\n // data = <T>(<any[]>data).reverse();\n // }\n\n const data = <T>await collection.toArray();\n resolve(data);\n });\n }\n\n getAllRx<T>(store: string, opt?: DbFilter) {\n return new Observable<T>((observer) => {\n this.getAll<T>(store, opt).then((value) => {\n observer.next(value);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n remove(store, key): Promise<any> {\n return this.Db.table(store).delete(key);\n }\n\n removeRx(store, key): Observable<any> {\n return new Observable((observer) => {\n this.remove(store, key).then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n async removeAll(store) {\n const all = await this.getAll<any[]>(store);\n const schema = this.schemaService.schema.stores.filter(\n (s) => s.name == store\n )[0];\n const key = schema.columns.filter((s) => s.isPrimaryKey)[0];\n\n const promises: any = [];\n for (let r of all) {\n promises.push(this.Db.table(store).delete(key.name));\n }\n\n await Promise.all(promises);\n }\n\n removeAllRx(store: string) {\n return this.getAllRx<any[]>(store).pipe(\n switchMap((entries) => {\n const observables: Array<Observable<any>> = [];\n for(let entry of entries) {\n observables.push(this.removeRx(store, entry.id));\n }\n \n if(!observables.length) {\n return of(null);\n }\n\n return forkJoin(observables);\n })\n );\n }\n\n count(store, opts?: { key }): Promise<number> {\n if (opts && opts.key) {\n const pk = this.schemaService.schema.stores\n .filter((s) => s.name == store)[0]\n .columns.filter((s) => s.isPrimaryKey)[0];\n return this.Db.table(store).where(pk.name).equals(opts.key).count();\n }\n\n return this.Db.table(store).count();\n }\n\n countRx(store, opts?: { key }) {\n return new Observable<number>((observer) => {\n this.count(store, opts).then((value) => {\n observer.next(value);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n deleteDb() {\n return new Promise(async (resolve, reject) => {\n await this.Db.delete();\n resolve(null);\n });\n }\n\n deleteTable(store) {\n return new Observable<void>((observer) => {\n this.Db.table(store).clear().then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n}\n\nexport interface DbFilter {\n key?: any;\n value?: any;\n keyRange?: KeyRangeType;\n pageIndex?: number;\n pageSize?: number;\n sortBy?: any;\n sortType?: 'asc' | 'desc';\n}\n\nexport enum KeyRangeType {\n equalToIgnoreCase = 1,\n startsWithIgnoreCase = 2,\n equalTo = 3,\n notEqualTo = 4\n}\n","import { Injectable } from '@angular/core';\nimport { DbServiceConfig } from './db-base.service';\n\n\nexport interface ITableOptions {\n name: string;\n columns: Array<{ name; isPrimaryKey?; type? }>;\n}\n\n@Injectable()\nexport class SchemaService {\n schema = {\n stores: <ITableOptions[]>[]\n };\n tables: Record<string, string> = {};\n\n private _config = {} as DbServiceConfig;\n\n /**\n * Represents a SchemaService that manages the database schema.\n */\n constructor() {\n\n }\n\n get config() {\n return this._config;\n }\n\n init(config: DbServiceConfig) {\n this._config = config;\n\n if(config.schema && config.schema.length) {\n this.schema.stores = this.config.schema;\n this.schema.stores.forEach((s) => this.tables[s.name] = s.name);\n }\n }\n}","import { ITableOptions } from \"./schema.service\";\r\n\r\nexport class DbSettingConstant {\r\n public static readonly SETTING = 'setting';\r\n}\r\n\r\nexport const DbSettingConfig = {\r\n schema: <ITableOptions>{\r\n name: DbSettingConstant.SETTING,\r\n columns: [\r\n {\r\n name: 'key',\r\n isPrimaryKey: true,\r\n type: 'TEXT',\r\n },\r\n {\r\n name: 'value',\r\n type: 'TEXT',\r\n },\r\n ],\r\n }\r\n};","import { EnvironmentProviders, makeEnvironmentProviders, Provider, inject, Optional, Type } from '@angular/core';\r\n\r\nimport { SchemaService } from './schema.service';\r\nimport { DbWebService } from './db-web.service';\r\nimport { DbService, DbServiceType } from './db-base.service';\r\n\r\n// Accept an optional custom DbService provider (e.g., for SQLite)\r\nexport function dbFactory(schemaSvc: SchemaService, customDbService?: Type<DbService>) {\r\n const dbConfig = schemaSvc.config;\r\n\r\n if (customDbService) {\r\n // If a custom DbService is provided (e.g., SQLite), instantiate it\r\n return inject(customDbService, { optional: false });\r\n }\r\n\r\n switch (dbConfig.dbType) {\r\n case DbServiceType.IndexDd:\r\n return new DbWebService(dbConfig, schemaSvc);\r\n // Remove Sqlite case from here\r\n default:\r\n throw new Error('Unsupported dbType or missing customDbService');\r\n }\r\n}\r\n\r\n/**\r\n * Optionally accepts a custom DbService class (e.g., from ngx-ionic-zone).\r\n */\r\nexport function provideDb(customDbService?: Type<DbService>): EnvironmentProviders {\r\n const providers: Provider[] = [\r\n SchemaService,\r\n {\r\n provide: DbService,\r\n useFactory: (schemaSvc: SchemaService) => dbFactory(schemaSvc, customDbService),\r\n deps: [SchemaService],\r\n }\r\n ];\r\n\r\n return makeEnvironmentProviders(providers);\r\n}","import { Injectable, Optional } from '@angular/core';\n\nimport { DbService, SchemaService, DbSettingConstant } from '../database';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class AppSettingService {\n protected static settingCache = new Map();\n\n constructor(private _dbService: DbService, private _schemaSvc: SchemaService) {\n }\n\n protected get<T>(key: string): Promise<T> {\n if (AppSettingService.settingCache.has(key)) {\n return new Promise((resolve, reject) => {\n let settingCacheMap = AppSettingService.settingCache.get(key);\n resolve(settingCacheMap);\n });\n } else {\n return this._dbService\n .get<any>(this._schemaSvc.tables[DbSettingConstant.SETTING], key)\n .then((setting) => {\n if (setting && setting.value) {\n AppSettingService.settingCache.set(key, setting.value);\n return setting.value;\n }\n return null;\n });\n }\n }\n\n protected getRx<T>(key: string) {\n return new Observable<T>((obs) => {\n this.get<T>(key).then((setting) => {\n obs.next(setting);\n obs.complete(); \n }, (error) => obs.error(error));\n });\n }\n\n protected put(key: string, values) {\n return this._dbService\n .putLocal(this._schemaSvc.tables[DbSettingConstant.SETTING], {\n key: key,\n value: values,\n })\n .then(() => {\n AppSettingService.settingCache.set(key, values);\n });\n }\n\n protected putRx(key: string, values) {\n return new Observable<void>((obs) => {\n this.put(key, values).then(() => {\n obs.next();\n obs.complete(); \n }, (error) => obs.error(error));\n });\n }\n\n protected remove(key: string) {\n return this._dbService\n .remove(this._schemaSvc.tables[DbSettingConstant.SETTING], key)\n .then(() => {\n AppSettingService.settingCache.delete(key);\n });\n }\n\n protected removeRx(key: string) {\n return new Observable<void>((obs) => {\n this.remove(key).then(() => {\n obs.next();\n obs.complete(); \n }, (error) => obs.error(error));\n });\n }\n\n protected removeCache(key: string) {\n AppSettingService.settingCache.delete(key);\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class HelperService {\r\n constructor() {}\r\n\r\n deepCopy(obj: any) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return obj;\r\n }\r\n\r\n if (obj instanceof Date) {\r\n return new Date(obj.getTime());\r\n }\r\n\r\n if (obj instanceof Array) {\r\n return obj.reduce((arr, item, i) => {\r\n arr[i] = this.deepCopy(item);\r\n return arr;\r\n }, []);\r\n }\r\n\r\n if (obj instanceof Object) {\r\n return Object.keys(obj).reduce((newObj, key) => {\r\n newObj[key] = this.deepCopy(obj[key]);\r\n return newObj;\r\n }, {});\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/a/20285053/859968\r\n toDataURL(url) {\r\n return new Promise((resolve) => {\r\n let xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n resolve(reader.result);\r\n };\r\n reader.readAsDataURL(xhr.response);\r\n };\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n });\r\n }\r\n\r\n //https://stackoverflow.com/a/2117523/859968\r\n generateGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\r\n /[xy]/g,\r\n function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n }\r\n );\r\n }\r\n\r\n getRandomNumber() {\r\n const random = new Date().getTime() + Math.floor(Math.random() * 1000000);\r\n return random;\r\n }\r\n\r\n getRandomColor() {\r\n var letters = '0123456789ABCDEF';\r\n var color = '#';\r\n for (var i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n return color;\r\n }\r\n\r\n getFormValidationErrors(formName) {\r\n Object.keys(formName.controls).forEach((key) => {\r\n const controlErrors = formName.get(key).errors;\r\n if (controlErrors != null) {\r\n Object.keys(controlErrors).forEach((keyError) => {\r\n console.log(\r\n 'Key control: ' + key + ', keyError: ' + keyError + ', err value: ',\r\n controlErrors[keyError]\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n removeFormValidationErrors(formName, controlName, errorKey) {\r\n const controlErrors = formName.get(controlName).errors;\r\n if (controlErrors != null) {\r\n const error = Object.keys(controlErrors).filter((k) => k == errorKey);\r\n if (error) {\r\n controlErrors[errorKey] = undefined;\r\n delete controlErrors[errorKey];\r\n }\r\n }\r\n }\r\n\r\n downloadCanvasAsImage(canvas: HTMLCanvasElement) {\r\n // const download = document.getElementById(\"download\");\r\n const image = canvas\r\n .toDataURL('image/png')\r\n .replace('image/png', 'image/octet-stream');\r\n\r\n const link = document.createElement('a');\r\n link.setAttribute('href', image);\r\n link.download = `${this.generateGuid()}.png`;\r\n link.click();\r\n\r\n // setTimeout(() => {\r\n // link.remove();\r\n // });\r\n }\r\n\r\n getParamsObjectsFromUrl(url) {\r\n let obj;\r\n if (url) {\r\n url = decodeURI(url);\r\n }\r\n let urlArr = url.split(';');\r\n if (urlArr.length) {\r\n urlArr.shift();\r\n }\r\n for (const urlItem of urlArr) {\r\n if (!obj) {\r\n obj = {};\r\n }\r\n //e.g key = value\r\n const urlItemObj = urlItem.split('=');\r\n obj[urlItemObj[0]] = urlItemObj[1];\r\n }\r\n return obj;\r\n }\r\n}\r\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\r\n\r\nimport { AppSettingService } from \"./app-setting.service\";\r\nimport { HelperService } from \"./helper.service\";\r\n\r\nexport const provideUniversalZone = (): EnvironmentProviders => {\r\n const providers: Provider[] = [\r\n AppSettingService, HelperService\r\n ];\r\n\r\n return makeEnvironmentProviders(providers);\r\n};\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { Message } from './models';\r\n\r\nexport const EVENT_NAME = 'uz-message-bus';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MessageBus {\r\n private readonly eventHandler: (customEvent: CustomEvent<Message>) => void;\r\n private messageSubject = new Subject<Message>();\r\n event$ = this.messageSubject.asObservable();\r\n\r\n constructor() {\r\n this.eventHandler = this.handleEvent.bind(this);\r\n }\r\n\r\n dispatch(message: Message) {\r\n const event = new CustomEvent(EVENT_NAME, { detail: message });\r\n document.dispatchEvent(event);\r\n }\r\n\r\n startListening() {\r\n document.addEventListener(EVENT_NAME, this.eventHandler);\r\n }\r\n\r\n stopListening() {\r\n document.removeEventListener(EVENT_NAME, this.eventHandler);\r\n }\r\n\r\n private handleEvent(customEvent: CustomEvent<Message>) {\r\n this.messageSubject.next(customEvent.detail);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n/* eslint-disable @typescript-eslint/ban-types */\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\nimport { OperatorFunction } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n/**\r\n * Messaging system is taken from NGRX (Actions) and adapted to fit our needs.\r\n */\r\n\r\nexport interface Message {\r\n type: string;\r\n}\r\n\r\n// declare to make it property-renaming safe\r\nexport declare interface TypedMessage<T extends string> extends Message {\r\n readonly type: T;\r\n}\r\n\r\nexport function props<P extends object>(): Props<P> {\r\n return { _as: 'props', _p: undefined! };\r\n}\r\n\r\nexport type FunctionWithParametersType<P extends unknown[], R = void> = (...args: P) => R;\r\n\r\n/**\r\n * A function that returns an object in the shape of the `Action` interface. Configured using `createAction`.\r\n */\r\nexport type Creator<P extends any[] = any[], R extends object = object> = FunctionWithParametersType<P, R>;\r\n\r\nexport interface Props<T> {\r\n _as: 'props';\r\n _p: T;\r\n}\r\n\r\n/**\r\n * See `Creator`.\r\n */\r\nexport type MessageCreator<T extends string = string, C extends Creator = Creator> = C & TypedMessage<T>;\r\n\r\nexport const arraysAreNotAllowedMsg = 'arrays are not allowed in action creators';\r\ntype ArraysAreNotAllowed = typeof arraysAreNotAllowedMsg;\r\n\r\nexport const typePropertyIsNotAllowedMsg = 'type property is not allowed in action creators';\r\ntype TypePropertyIsNotAllowed = typeof typePropertyIsNotAllowedMsg;\r\n\r\nexport type NotAllowedCheck<T extends object> = T extends any[]\r\n ? ArraysAreNotAllowed\r\n : T extends { type: any }\r\n ? TypePropertyIsNotAllowed\r\n : unknown;\r\n\r\nexport function createMessage<T extends string>(type: T): MessageCreator<T, () => TypedMessage<T>>;\r\nexport function createMessage<T extends string, P extends object>(\r\n type: T,\r\n config: Props<P> & NotAllowedCheck<P>\r\n): MessageCreator<T, (props: P & NotAllowedCheck<P>) => P & TypedMessage<T>>;\r\nexport function createMessage<T extends string, P extends any[], R extends object>(\r\n type: T,\r\n creator: Creator<P, R> & NotAllowedCheck<R>\r\n): FunctionWithParametersType<P, R & TypedMessage<T>> & TypedMessage<T>;\r\n\r\nexport function createMessage<T extends string, C extends Creator>(type: T, config?: { _as: 'props' } | C): MessageCreator<T> {\r\n if (typeof config === 'function') {\r\n return defineType(type, (...args: any[]) => ({\r\n ...config(...args),\r\n type,\r\n }));\r\n }\r\n const as = config ? config._as : 'empty';\r\n switch (as) {\r\n case 'empty':\r\n return defineType(type, () => ({ type }));\r\n case 'props':\r\n return defineType(type, (propz: object) => ({\r\n ...propz,\r\n type,\r\n }));\r\n default:\r\n throw new Error('Unexpected config.');\r\n }\r\n}\r\n\r\nfunction defineType<T extends string>(type: T, creator: Creator): MessageCreator<T> {\r\n return Object.defineProperty(creator, 'type', {\r\n value: type,\r\n writable: false,\r\n }) as Creator & { type: T }; // Cast added to fix type system.\r\n}\r\n\r\nexport function ofMessageType<AC extends MessageCreator<string, Creator>[], U extends Message = Message, V = ReturnType<AC[number]>>(\r\n ...allowedTypes: AC\r\n): OperatorFunction<U, V>;\r\n\r\nexport function ofMessageType<\r\n E extends Extract<U, { type: T1 }>,\r\n AC extends MessageCreator<string, Creator>,\r\n T1 extends string | AC,\r\n U extends Message = Message,\r\n V = T1 extends string ? E : ReturnType<Extract<T1, AC>>\r\n>(t1: T1): OperatorFunction<U, V>;\r\n\r\nexport function ofMessageType(...allowedTypes: Array<string | MessageCreator<string, Creator>>): OperatorFunction<Message, Message> {\r\n return filter((action: Message) =>\r\n allowedTypes.some((typeOrActionCreator) => {\r\n if (typeof typeOrActionCreator === 'string') {\r\n // Comparing the string to type\r\n return typeOrActionCreator === action.type;\r\n }\r\n\r\n // We are filtering by ActionCreator\r\n return typeOrActionCreator.type === action.type;\r\n })\r\n );\r\n}\r\n","import { defer, Observable } from 'rxjs';\r\n\r\nimport { MessageBus } from './message-bus';\r\nimport { Message } from './models';\r\n\r\nexport function provideTestMessages(getMessages: () => Observable<Message>) {\r\n return {\r\n provide: MessageBus,\r\n useFactory: () => ({\r\n event$: defer(getMessages),\r\n }),\r\n };\r\n}\r\n","import { createMessage } from './models';\r\n\r\n/** Indicates that the global styling has changed & loaded (Light/Dark) */\r\n// export const applicationStylesChanged = createMessage('Application styles changed');\r\n","import { Injectable } from \"@angular/core\";\nimport { PreloadingStrategy, Route, Router } from \"@angular/router\";\n\nimport { delay, Observable, of, switchMap } from \"rxjs\";\n\ndeclare const navigator: any;\n\n@Injectable({ providedIn: \"root\" })\nexport class FlagBasedPreloadingStrategy extends PreloadingStrategy {\n constructor(private router: Router) {\n super();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n preload(route: Route, load: () => Observable<any>): Observable<any> {\n const preload = route.data?.[\"preload\"];\n const preloadNextRoutes = this.getCurrentRouteData()?.['preloadNextRoutes'] as string[] ?? [];\n\n if(preload || preloadNextRoutes.length) {\n if(preload) {\n return load();\n }\n\n if(preloadNextRoutes.includes(route.path)) {\n const delayTime = route.data?.[\"delay\"] ?? 0;\n return of(null).pipe(\n delay(delayTime),\n switchMap(() => this.waitForNetworkIdle()),\n switchMap(() => {\n return load();\n })\n );\n }\n }\n \n return of(null);\n }\n\n private getCurrentRouteData() {\n let route = this.router.routerState.snapshot.root;\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route.data;\n }\n\n private waitForNetworkIdle(): Observable<void> {\n return new Observable<void>((observer) => {\n if (navigator.connection && navigator.connection.downlink > 0) {\n observer.next();\n observer.complete();\n } else {\n const onNetworkIdle = () => {\n if (navigator.connection.downlink > 0) {\n observer.next();\n observer.complete();\n navigator.connection.removeEventListener('change', onNetworkIdle);\n }\n };\n navigator.connection.addEventListener('change', onNetworkIdle);\n }\n });\n }\n}\n","/*\r\n * Public API Surface of ngx-universal-zone\r\n */\r\n\r\n//fix: Internal error: failed to get symbol for entrypoint\r\n// export default {};\r\nexport * from './shared/app-injector';\r\nexport * from './shared/app-setting.service';\r\nexport * from './shared/helper.service';\r\n\r\nexport * from './shared/universal-zone.module';\r\nexport * from './shared/message-bus';\r\nexport * from './shared/flag-based-preloading-strategy';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DbService","i1.SchemaService"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-universal-zone.mjs","sources":["../../../projects/ngx-universal-zone/shared/app-injector.ts","../../../projects/ngx-universal-zone/database/db-base.service.ts","../../../projects/ngx-universal-zone/database/db-web.service.ts","../../../projects/ngx-universal-zone/database/schema.service.ts","../../../projects/ngx-universal-zone/database/db-setting-constant.ts","../../../projects/ngx-universal-zone/database/db.module.ts","../../../projects/ngx-universal-zone/shared/app-setting.service.ts","../../../projects/ngx-universal-zone/shared/helper.service.ts","../../../projects/ngx-universal-zone/shared/universal-zone.provider.ts","../../../projects/ngx-universal-zone/shared/message-bus/message-bus.ts","../../../projects/ngx-universal-zone/shared/message-bus/models.ts","../../../projects/ngx-universal-zone/shared/message-bus/message-bus.testing.ts","../../../projects/ngx-universal-zone/shared/message-bus/messages.ts","../../../projects/ngx-universal-zone/shared/flag-based-preloading-strategy.ts","../../../projects/ngx-universal-zone/public-api.ts","../../../projects/ngx-universal-zone/ngx-universal-zone.ts"],"sourcesContent":["import { Injector } from '@angular/core';\n\n// https://blogs.msdn.microsoft.com/premier_developer/2018/06/17/angular-how-to-simplify-components-with-typescript-inheritance/\nexport class AppInjector {\n private static injector: Injector;\n\n static setInjector(injector: Injector) {\n AppInjector.injector = injector;\n }\n\n static getInjector(): Injector {\n return AppInjector.injector;\n }\n}\n","// @ts-ignore\n\nimport { Observable } from \"rxjs\";\n\nimport { ITableOptions } from \"./schema.service\";\nimport { DbFilter } from \"./db-web.service\";\n\nexport class DbServiceConfig {\n dbType!: DbServiceType;\n dbName!: string;\n schema!: ITableOptions[];\n}\n\nexport enum DbServiceType {\n IndexDd,\n Sqlite\n}\n\nexport abstract class DbService {\n dbInitialized$ = new Observable<any>();\n\n get Db(): any {\n return;\n }\n\n putLocal(store, data): Promise<{ rowsAffected; insertId }> {\n // @ts-ignore\n\n return;\n }\n\n putLocalRx(store, data): Observable<any> {\n // @ts-ignore\n return;\n }\n\n get<T>(store: string, key: any): Promise<T> {\n // @ts-ignore\n return;\n }\n getRx<T>(store: string, key: any): Observable<T> { \n // @ts-ignore\n return; \n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n // @ts-ignore\n return;\n }\n\n getAllRx<T>(store: string, opt?: DbFilter): Observable<T> {\n // @ts-ignore\n return;\n }\n\n remove(store, id): Promise<any> {\n // @ts-ignore\n return;\n }\n\n removeRx(store, key): Observable<any> {\n // @ts-ignore\n return;\n }\n\n removeAll(store): Promise<any> {\n // @ts-ignore\n return;\n }\n\n removeAllRx(store: string): Observable<any> {\n // @ts-ignore\n return;\n }\n\n count(store, opts?: { key }): Promise<number> {\n // @ts-ignore\n return;\n }\n\n countRx(store, opts?: { key }): Observable<number> {\n // @ts-ignore\n return;\n }\n\n deleteDb(): Promise<any> {\n // @ts-ignore\n return;\n }\n\n deleteTable(store): Observable<void> {\n // @ts-ignore\n return;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport Dexie, { IndexableType } from 'dexie';\nimport { forkJoin, Observable, of, Subject, switchMap } from 'rxjs';\n\nimport { SchemaService } from './schema.service';\nimport { DbService, DbServiceConfig } from './db-base.service';\n\n// @Injectable()\nexport class DbWebService extends Dexie implements DbService {\n private _db!: Dexie;\n private dbInitialized = new Subject<any>();\n\n constructor(\n private config: DbServiceConfig,\n private schemaService: SchemaService\n ) {\n super(config.dbName);\n\n const schema: {\n [tableName: string]: string | null;\n } = {};\n schemaService.schema.stores.forEach((s) => {\n let cols = ``;\n for (let c of s.columns) {\n cols += `${c.isPrimaryKey ? `++${c.name}` : `,${c.name}`}`;\n }\n schema[s.name] = cols;\n });\n this.version(1).stores(schema);\n this.open()\n .then((d) => {\n this._db = d;\n\n this.dbInitialized.next(d);\n })\n .catch((e) => alert(e));\n }\n \n dbInitialized$ = this.dbInitialized.asObservable();\n\n get Db() {\n return this._db;\n }\n\n putLocal(store, data): Promise<{ rowsAffected; insertId }> {\n return new Promise(async (resolve, reject) => {\n const schema = this.schemaService.schema.stores.filter(\n (s) => s.name == store\n )[0];\n const key = schema.columns.filter((s) => s.isPrimaryKey)[0];\n\n const exist = data[key.name] ? await this.get(store, data[key.name]) : null;\n if (exist) {\n //update\n this.Db\n .table(store)\n .update(data[key.name], data)\n .then(\n (r) => resolve(null as any),\n (e) => reject(e)\n );\n } else {\n this.Db\n .table(store)\n .add(data)\n .then(\n (r) => resolve(null as any),\n (e) => reject(e)\n );\n }\n });\n }\n\n putLocalRx(store, data) {\n return new Observable((observer) => {\n this.putLocal(store, data).then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n get<T>(store: string, key: any): Promise<T> {\n return new Promise((resolve, reject) => {\n if(!this.Db) {\n return reject('Database not initialized. Please wait for dbInitialized$ to emit.');\n }\n \n this.Db\n .table(store)\n .get(key)\n .then((r) => {\n resolve(<T>r);\n }, (e) => reject(e));\n });\n }\n\n getRx<T>(store: string, key: any) {\n return new Observable<T>((observer) => {\n this.get<T>(store, key).then((value) => {\n observer.next(value);\n observer.complete();\n });\n });\n }\n\n getByFieldName<T>(storeName, fieldName, key): Promise<Array<T>> {\n const filter = {};\n filter[fieldName] = key;\n return this.Db.table(storeName).where(filter).toArray();\n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n return new Promise(async (resolve, reject) => {\n if(!this.Db) {\n return reject('Database not initialized. Please wait for dbInitialized$ to emit.');\n }\n\n let table = this.Db.table(store);\n let collection = table.toCollection();\n\n if(opt?.sortBy) {\n collection = table.orderBy(opt.sortBy);\n }\n\n if(opt?.sortType && opt?.sortType == 'desc') {\n collection = table.reverse();\n }\n\n // collection = this.Db.table(store).toCollection();\n if (opt && opt.key && opt.value) {\n if(!opt.keyRange) {\n opt.keyRange = KeyRangeType.equalTo;\n }\n\n switch (opt.keyRange) {\n case KeyRangeType.startsWithIgnoreCase:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .startsWithIgnoreCase(opt.value);\n break;\n case KeyRangeType.equalTo:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .equals(opt.value);\n break;\n case KeyRangeType.notEqualTo:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .notEqual(opt.value);\n break;\n case KeyRangeType.equalToIgnoreCase:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .equalsIgnoreCase(opt.value);\n break;\n }\n }\n\n if(opt?.pageIndex != null) {\n collection = collection.offset((opt.pageIndex - 1) * opt.pageSize);\n }\n\n if(opt?.pageSize != null) {\n collection = collection.limit(opt.pageSize)\n }\n\n // let data!: T;\n // if(opt?.sortBy) {\n // data = <T>await collection.sortBy(opt.sortBy);\n // } else {\n // data = <T>await collection.toArray();\n // }\n\n // if(opt.sortType == 'desc') {\n // data = <T>(<any[]>data).reverse();\n // }\n\n const data = <T>await collection.toArray();\n resolve(data);\n });\n }\n\n getAllRx<T>(store: string, opt?: DbFilter) {\n return new Observable<T>((observer) => {\n this.getAll<T>(store, opt).then((value) => {\n observer.next(value);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n remove(store, key): Promise<any> {\n return this.Db.table(store).delete(key);\n }\n\n removeRx(store, key): Observable<any> {\n return new Observable((observer) => {\n this.remove(store, key).then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n async removeAll(store) {\n const all = await this.getAll<any[]>(store);\n const schema = this.schemaService.schema.stores.filter(\n (s) => s.name == store\n )[0];\n const key = schema.columns.filter((s) => s.isPrimaryKey)[0];\n\n const promises: any = [];\n for (let r of all) {\n promises.push(this.Db.table(store).delete(key.name));\n }\n\n await Promise.all(promises);\n }\n\n removeAllRx(store: string) {\n return this.getAllRx<any[]>(store).pipe(\n switchMap((entries) => {\n const observables: Array<Observable<any>> = [];\n for(let entry of entries) {\n observables.push(this.removeRx(store, entry.id));\n }\n \n if(!observables.length) {\n return of(null);\n }\n\n return forkJoin(observables);\n })\n );\n }\n\n count(store, opts?: { key }): Promise<number> {\n if (opts && opts.key) {\n const pk = this.schemaService.schema.stores\n .filter((s) => s.name == store)[0]\n .columns.filter((s) => s.isPrimaryKey)[0];\n return this.Db.table(store).where(pk.name).equals(opts.key).count();\n }\n\n return this.Db.table(store).count();\n }\n\n countRx(store, opts?: { key }) {\n return new Observable<number>((observer) => {\n this.count(store, opts).then((value) => {\n observer.next(value);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n deleteDb() {\n return new Promise(async (resolve, reject) => {\n await this.Db.delete();\n resolve(null);\n });\n }\n\n deleteTable(store) {\n return new Observable<void>((observer) => {\n this.Db.table(store).clear().then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n}\n\nexport interface DbFilter {\n key?: any;\n value?: any;\n keyRange?: KeyRangeType;\n pageIndex?: number;\n pageSize?: number;\n sortBy?: any;\n sortType?: 'asc' | 'desc';\n}\n\nexport enum KeyRangeType {\n equalToIgnoreCase = 1,\n startsWithIgnoreCase = 2,\n equalTo = 3,\n notEqualTo = 4\n}\n","import { Injectable } from '@angular/core';\nimport { DbServiceConfig } from './db-base.service';\n\n\nexport interface ITableOptions {\n name: string;\n columns: Array<{ name; isPrimaryKey?; type? }>;\n}\n\n@Injectable()\nexport class SchemaService {\n schema = {\n stores: <ITableOptions[]>[]\n };\n tables: Record<string, string> = {};\n\n private _config = {} as DbServiceConfig;\n\n /**\n * Represents a SchemaService that manages the database schema.\n */\n constructor() {\n\n }\n\n get config() {\n return this._config;\n }\n\n init(config: DbServiceConfig) {\n this._config = config;\n\n if(config.schema && config.schema.length) {\n this.schema.stores = this.config.schema;\n this.schema.stores.forEach((s) => this.tables[s.name] = s.name);\n }\n }\n}","import { ITableOptions } from \"./schema.service\";\r\n\r\nexport class DbSettingConstant {\r\n public static readonly SETTING = 'setting';\r\n}\r\n\r\nexport const DbSettingConfig = {\r\n schema: <ITableOptions>{\r\n name: DbSettingConstant.SETTING,\r\n columns: [\r\n {\r\n name: 'key',\r\n isPrimaryKey: true,\r\n type: 'TEXT',\r\n },\r\n {\r\n name: 'value',\r\n type: 'TEXT',\r\n },\r\n ],\r\n }\r\n};","import { EnvironmentProviders, makeEnvironmentProviders, Provider, inject, Optional, Type } from '@angular/core';\r\n\r\nimport { SchemaService } from './schema.service';\r\nimport { DbWebService } from './db-web.service';\r\nimport { DbService, DbServiceType } from './db-base.service';\r\n\r\n// Accept an optional custom DbService provider (e.g., for SQLite)\r\nexport function dbFactory(schemaSvc: SchemaService, customDbService?: Type<DbService>) {\r\n const dbConfig = schemaSvc.config;\r\n\r\n if (customDbService) {\r\n // If a custom DbService is provided (e.g., SQLite), instantiate it\r\n return inject(customDbService, { optional: false });\r\n }\r\n\r\n switch (dbConfig.dbType) {\r\n case DbServiceType.IndexDd:\r\n return new DbWebService(dbConfig, schemaSvc);\r\n // Remove Sqlite case from here\r\n default:\r\n throw new Error('Unsupported dbType or missing customDbService');\r\n }\r\n}\r\n\r\n/**\r\n * Optionally accepts a custom DbService class (e.g., from ngx-ionic-zone).\r\n */\r\nexport function provideDb(customDbService?: Type<DbService>): EnvironmentProviders {\r\n const providers: Provider[] = [\r\n SchemaService,\r\n {\r\n provide: DbService,\r\n useFactory: (schemaSvc: SchemaService) => dbFactory(schemaSvc, customDbService),\r\n deps: [SchemaService],\r\n }\r\n ];\r\n\r\n return makeEnvironmentProviders(providers);\r\n}","import { Injectable, Optional } from '@angular/core';\n\nimport { DbService, SchemaService, DbSettingConstant } from '../database';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class AppSettingService {\n protected static settingCache = new Map();\n\n constructor(private _dbService: DbService, private _schemaSvc: SchemaService) {\n }\n\n protected get<T>(key: string): Promise<T> {\n if (AppSettingService.settingCache.has(key)) {\n return new Promise((resolve, reject) => {\n let settingCacheMap = AppSettingService.settingCache.get(key);\n resolve(settingCacheMap);\n });\n } else {\n return this._dbService\n .get<any>(this._schemaSvc.tables[DbSettingConstant.SETTING], key)\n .then((setting) => {\n if (setting && setting.value) {\n AppSettingService.settingCache.set(key, setting.value);\n return setting.value;\n }\n return null;\n });\n }\n }\n\n protected getRx<T>(key: string) {\n return new Observable<T>((obs) => {\n this.get<T>(key).then((setting) => {\n obs.next(setting);\n obs.complete(); \n }, (error) => obs.error(error));\n });\n }\n\n protected put(key: string, values) {\n return this._dbService\n .putLocal(this._schemaSvc.tables[DbSettingConstant.SETTING], {\n key: key,\n value: values,\n })\n .then(() => {\n AppSettingService.settingCache.set(key, values);\n });\n }\n\n protected putRx(key: string, values) {\n return new Observable<void>((obs) => {\n this.put(key, values).then(() => {\n obs.next();\n obs.complete(); \n }, (error) => obs.error(error));\n });\n }\n\n protected remove(key: string) {\n return this._dbService\n .remove(this._schemaSvc.tables[DbSettingConstant.SETTING], key)\n .then(() => {\n AppSettingService.settingCache.delete(key);\n });\n }\n\n protected removeRx(key: string) {\n return new Observable<void>((obs) => {\n this.remove(key).then(() => {\n obs.next();\n obs.complete(); \n }, (error) => obs.error(error));\n });\n }\n\n protected removeCache(key: string) {\n AppSettingService.settingCache.delete(key);\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class HelperService {\r\n constructor() {}\r\n\r\n deepCopy(obj: any) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return obj;\r\n }\r\n\r\n if (obj instanceof Date) {\r\n return new Date(obj.getTime());\r\n }\r\n\r\n if (obj instanceof Array) {\r\n return obj.reduce((arr, item, i) => {\r\n arr[i] = this.deepCopy(item);\r\n return arr;\r\n }, []);\r\n }\r\n\r\n if (obj instanceof Object) {\r\n return Object.keys(obj).reduce((newObj, key) => {\r\n newObj[key] = this.deepCopy(obj[key]);\r\n return newObj;\r\n }, {});\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/a/20285053/859968\r\n toDataURL(url) {\r\n return new Promise((resolve) => {\r\n let xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n resolve(reader.result);\r\n };\r\n reader.readAsDataURL(xhr.response);\r\n };\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n });\r\n }\r\n\r\n //https://stackoverflow.com/a/2117523/859968\r\n generateGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\r\n /[xy]/g,\r\n function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n }\r\n );\r\n }\r\n\r\n getRandomNumber() {\r\n const random = new Date().getTime() + Math.floor(Math.random() * 1000000);\r\n return random;\r\n }\r\n\r\n getRandomColor() {\r\n var letters = '0123456789ABCDEF';\r\n var color = '#';\r\n for (var i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n return color;\r\n }\r\n\r\n getFormValidationErrors(formName) {\r\n Object.keys(formName.controls).forEach((key) => {\r\n const controlErrors = formName.get(key).errors;\r\n if (controlErrors != null) {\r\n Object.keys(controlErrors).forEach((keyError) => {\r\n console.log(\r\n 'Key control: ' + key + ', keyError: ' + keyError + ', err value: ',\r\n controlErrors[keyError]\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n removeFormValidationErrors(formName, controlName, errorKey) {\r\n const controlErrors = formName.get(controlName).errors;\r\n if (controlErrors != null) {\r\n const error = Object.keys(controlErrors).filter((k) => k == errorKey);\r\n if (error) {\r\n controlErrors[errorKey] = undefined;\r\n delete controlErrors[errorKey];\r\n }\r\n }\r\n }\r\n\r\n downloadCanvasAsImage(canvas: HTMLCanvasElement) {\r\n // const download = document.getElementById(\"download\");\r\n const image = canvas\r\n .toDataURL('image/png')\r\n .replace('image/png', 'image/octet-stream');\r\n\r\n const link = document.createElement('a');\r\n link.setAttribute('href', image);\r\n link.download = `${this.generateGuid()}.png`;\r\n link.click();\r\n\r\n // setTimeout(() => {\r\n // link.remove();\r\n // });\r\n }\r\n\r\n getParamsObjectsFromUrl(url) {\r\n let obj;\r\n if (url) {\r\n url = decodeURI(url);\r\n }\r\n let urlArr = url.split(';');\r\n if (urlArr.length) {\r\n urlArr.shift();\r\n }\r\n for (const urlItem of urlArr) {\r\n if (!obj) {\r\n obj = {};\r\n }\r\n //e.g key = value\r\n const urlItemObj = urlItem.split('=');\r\n obj[urlItemObj[0]] = urlItemObj[1];\r\n }\r\n return obj;\r\n }\r\n}\r\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\n\nimport { AppSettingService } from \"./app-setting.service\";\nimport { HelperService } from \"./helper.service\";\n\nexport const provideUniversalZone = (): EnvironmentProviders => {\n const providers: Provider[] = [\n AppSettingService, HelperService\n ];\n\n return makeEnvironmentProviders(providers);\n};\n\n\n\n\n\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { Message } from './models';\r\n\r\nexport const EVENT_NAME = 'uz-message-bus';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MessageBus {\r\n private readonly eventHandler: (customEvent: CustomEvent<Message>) => void;\r\n private messageSubject = new Subject<Message>();\r\n event$ = this.messageSubject.asObservable();\r\n\r\n constructor() {\r\n this.eventHandler = this.handleEvent.bind(this);\r\n }\r\n\r\n dispatch(message: Message) {\r\n const event = new CustomEvent(EVENT_NAME, { detail: message });\r\n document.dispatchEvent(event);\r\n }\r\n\r\n startListening() {\r\n document.addEventListener(EVENT_NAME, this.eventHandler);\r\n }\r\n\r\n stopListening() {\r\n document.removeEventListener(EVENT_NAME, this.eventHandler);\r\n }\r\n\r\n private handleEvent(customEvent: CustomEvent<Message>) {\r\n this.messageSubject.next(customEvent.detail);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n/* eslint-disable @typescript-eslint/ban-types */\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\nimport { OperatorFunction } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n/**\r\n * Messaging system is taken from NGRX (Actions) and adapted to fit our needs.\r\n */\r\n\r\nexport interface Message {\r\n type: string;\r\n}\r\n\r\n// declare to make it property-renaming safe\r\nexport declare interface TypedMessage<T extends string> extends Message {\r\n readonly type: T;\r\n}\r\n\r\nexport function props<P extends object>(): Props<P> {\r\n return { _as: 'props', _p: undefined! };\r\n}\r\n\r\nexport type FunctionWithParametersType<P extends unknown[], R = void> = (...args: P) => R;\r\n\r\n/**\r\n * A function that returns an object in the shape of the `Action` interface. Configured using `createAction`.\r\n */\r\nexport type Creator<P extends any[] = any[], R extends object = object> = FunctionWithParametersType<P, R>;\r\n\r\nexport interface Props<T> {\r\n _as: 'props';\r\n _p: T;\r\n}\r\n\r\n/**\r\n * See `Creator`.\r\n */\r\nexport type MessageCreator<T extends string = string, C extends Creator = Creator> = C & TypedMessage<T>;\r\n\r\nexport const arraysAreNotAllowedMsg = 'arrays are not allowed in action creators';\r\ntype ArraysAreNotAllowed = typeof arraysAreNotAllowedMsg;\r\n\r\nexport const typePropertyIsNotAllowedMsg = 'type property is not allowed in action creators';\r\ntype TypePropertyIsNotAllowed = typeof typePropertyIsNotAllowedMsg;\r\n\r\nexport type NotAllowedCheck<T extends object> = T extends any[]\r\n ? ArraysAreNotAllowed\r\n : T extends { type: any }\r\n ? TypePropertyIsNotAllowed\r\n : unknown;\r\n\r\nexport function createMessage<T extends string>(type: T): MessageCreator<T, () => TypedMessage<T>>;\r\nexport function createMessage<T extends string, P extends object>(\r\n type: T,\r\n config: Props<P> & NotAllowedCheck<P>\r\n): MessageCreator<T, (props: P & NotAllowedCheck<P>) => P & TypedMessage<T>>;\r\nexport function createMessage<T extends string, P extends any[], R extends object>(\r\n type: T,\r\n creator: Creator<P, R> & NotAllowedCheck<R>\r\n): FunctionWithParametersType<P, R & TypedMessage<T>> & TypedMessage<T>;\r\n\r\nexport function createMessage<T extends string, C extends Creator>(type: T, config?: { _as: 'props' } | C): MessageCreator<T> {\r\n if (typeof config === 'function') {\r\n return defineType(type, (...args: any[]) => ({\r\n ...config(...args),\r\n type,\r\n }));\r\n }\r\n const as = config ? config._as : 'empty';\r\n switch (as) {\r\n case 'empty':\r\n return defineType(type, () => ({ type }));\r\n case 'props':\r\n return defineType(type, (propz: object) => ({\r\n ...propz,\r\n type,\r\n }));\r\n default:\r\n throw new Error('Unexpected config.');\r\n }\r\n}\r\n\r\nfunction defineType<T extends string>(type: T, creator: Creator): MessageCreator<T> {\r\n return Object.defineProperty(creator, 'type', {\r\n value: type,\r\n writable: false,\r\n }) as Creator & { type: T }; // Cast added to fix type system.\r\n}\r\n\r\nexport function ofMessageType<AC extends MessageCreator<string, Creator>[], U extends Message = Message, V = ReturnType<AC[number]>>(\r\n ...allowedTypes: AC\r\n): OperatorFunction<U, V>;\r\n\r\nexport function ofMessageType<\r\n E extends Extract<U, { type: T1 }>,\r\n AC extends MessageCreator<string, Creator>,\r\n T1 extends string | AC,\r\n U extends Message = Message,\r\n V = T1 extends string ? E : ReturnType<Extract<T1, AC>>\r\n>(t1: T1): OperatorFunction<U, V>;\r\n\r\nexport function ofMessageType(...allowedTypes: Array<string | MessageCreator<string, Creator>>): OperatorFunction<Message, Message> {\r\n return filter((action: Message) =>\r\n allowedTypes.some((typeOrActionCreator) => {\r\n if (typeof typeOrActionCreator === 'string') {\r\n // Comparing the string to type\r\n return typeOrActionCreator === action.type;\r\n }\r\n\r\n // We are filtering by ActionCreator\r\n return typeOrActionCreator.type === action.type;\r\n })\r\n );\r\n}\r\n","import { defer, Observable } from 'rxjs';\r\n\r\nimport { MessageBus } from './message-bus';\r\nimport { Message } from './models';\r\n\r\nexport function provideTestMessages(getMessages: () => Observable<Message>) {\r\n return {\r\n provide: MessageBus,\r\n useFactory: () => ({\r\n event$: defer(getMessages),\r\n }),\r\n };\r\n}\r\n","import { createMessage } from './models';\r\n\r\n/** Indicates that the global styling has changed & loaded (Light/Dark) */\r\n// export const applicationStylesChanged = createMessage('Application styles changed');\r\n","import { Injectable } from \"@angular/core\";\nimport { PreloadingStrategy, Route, Router } from \"@angular/router\";\n\nimport { delay, Observable, of, switchMap } from \"rxjs\";\n\ndeclare const navigator: any;\n\n@Injectable({ providedIn: \"root\" })\nexport class FlagBasedPreloadingStrategy extends PreloadingStrategy {\n constructor(private router: Router) {\n super();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n preload(route: Route, load: () => Observable<any>): Observable<any> {\n const preload = route.data?.[\"preload\"];\n const preloadNextRoutes = this.getCurrentRouteData()?.['preloadNextRoutes'] as string[] ?? [];\n\n if(preload || preloadNextRoutes.length) {\n if(preload) {\n return load();\n }\n\n if(preloadNextRoutes.includes(route.path)) {\n const delayTime = route.data?.[\"delay\"] ?? 0;\n return of(null).pipe(\n delay(delayTime),\n switchMap(() => this.waitForNetworkIdle()),\n switchMap(() => {\n return load();\n })\n );\n }\n }\n \n return of(null);\n }\n\n private getCurrentRouteData() {\n let route = this.router.routerState.snapshot.root;\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route.data;\n }\n\n private waitForNetworkIdle(): Observable<void> {\n return new Observable<void>((observer) => {\n if (navigator.connection && navigator.connection.downlink > 0) {\n observer.next();\n observer.complete();\n } else {\n const onNetworkIdle = () => {\n if (navigator.connection.downlink > 0) {\n observer.next();\n observer.complete();\n navigator.connection.removeEventListener('change', onNetworkIdle);\n }\n };\n navigator.connection.addEventListener('change', onNetworkIdle);\n }\n });\n }\n}\n","/*\r\n * Public API Surface of ngx-universal-zone\r\n */\r\n\r\n//fix: Internal error: failed to get symbol for entrypoint\r\n// export default {};\r\nexport * from './shared/app-injector';\r\nexport * from './shared/app-setting.service';\r\nexport * from './shared/helper.service';\r\n\r\nexport * from './shared/universal-zone.provider';\r\nexport * from './shared/message-bus';\r\nexport * from './shared/flag-based-preloading-strategy';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DbService","i1.SchemaService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-universal-zone",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.0.0",
6
6
  "@angular/core": "^19.0.0",
@@ -20,6 +20,10 @@
20
20
  "types": "./index.d.ts",
21
21
  "default": "./fesm2022/ngx-universal-zone.mjs"
22
22
  },
23
+ "./analytics": {
24
+ "types": "./analytics/index.d.ts",
25
+ "default": "./fesm2022/ngx-universal-zone-analytics.mjs"
26
+ },
23
27
  "./database": {
24
28
  "types": "./database/index.d.ts",
25
29
  "default": "./fesm2022/ngx-universal-zone-database.mjs"
package/public-api.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export * from './shared/app-injector';
2
2
  export * from './shared/app-setting.service';
3
3
  export * from './shared/helper.service';
4
- export * from './shared/universal-zone.module';
4
+ export * from './shared/universal-zone.provider';
5
5
  export * from './shared/message-bus';
6
6
  export * from './shared/flag-based-preloading-strategy';