valtech-components 2.0.323 → 2.0.325
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/esm2022/lib/services/content-loader.service.mjs +89 -28
- package/fesm2022/valtech-components.mjs +87 -26
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/article/article.component.d.ts +2 -2
- package/lib/services/content-loader.service.d.ts +26 -9
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
2
|
import { TextContent } from './lang-provider/types';
|
|
3
|
+
import { ValtechConfigService } from './types';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./lang-provider/lang-provider.service";
|
|
5
5
|
/**
|
|
6
6
|
* ContentLoader Service - Dynamic content loading system.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* REFACTORED: Now uses ValtechConfigService properly instead of hacking LangService.
|
|
9
|
+
* This provides a clean, maintainable way to register content dynamically.
|
|
10
10
|
*
|
|
11
11
|
* @example Basic usage:
|
|
12
12
|
* ```typescript
|
|
@@ -16,30 +16,36 @@ import * as i1 from "./lang-provider/lang-provider.service";
|
|
|
16
16
|
* en: { title: 'My User Page', welcome: 'Welcome {{name}}' }
|
|
17
17
|
* };
|
|
18
18
|
*
|
|
19
|
-
* // In component
|
|
19
|
+
* // In component
|
|
20
20
|
* import { UserPageContent } from './user-page.content';
|
|
21
|
-
*
|
|
21
|
+
* registerContent('UserPage', UserPageContent);
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
export class ContentLoaderService {
|
|
25
|
-
constructor(
|
|
26
|
-
this.
|
|
25
|
+
constructor() {
|
|
26
|
+
this.valtechConfig = inject(ValtechConfigService);
|
|
27
27
|
this.registeredContent = new Map();
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Register content for a specific component/page class.
|
|
31
|
+
* ✅ CLEAN: Uses proper ValtechConfigService API instead of hacking LangService
|
|
31
32
|
*/
|
|
32
33
|
registerContent(className, content) {
|
|
34
|
+
// Store locally for tracking
|
|
33
35
|
this.registeredContent.set(className, content);
|
|
34
|
-
|
|
36
|
+
// Update the configuration properly
|
|
37
|
+
this.addContentToProvider(className, content);
|
|
38
|
+
console.log(`✅ ContentLoader: Registered content for "${className}"`);
|
|
35
39
|
}
|
|
36
40
|
/**
|
|
37
41
|
* Register multiple content modules at once.
|
|
38
42
|
*/
|
|
39
43
|
loadContent(contentModules) {
|
|
44
|
+
console.log(`🔄 ContentLoader: Loading ${contentModules.length} content modules...`);
|
|
40
45
|
contentModules.forEach(module => {
|
|
41
46
|
this.registerContent(module.className, module.content);
|
|
42
47
|
});
|
|
48
|
+
console.log('✅ ContentLoader: All content modules loaded successfully');
|
|
43
49
|
}
|
|
44
50
|
/**
|
|
45
51
|
* Check if content is registered for a class.
|
|
@@ -65,6 +71,13 @@ export class ContentLoaderService {
|
|
|
65
71
|
unregisterContent(className) {
|
|
66
72
|
const existed = this.registeredContent.has(className);
|
|
67
73
|
this.registeredContent.delete(className);
|
|
74
|
+
// Also remove from the provider
|
|
75
|
+
if (existed && this.valtechConfig.content) {
|
|
76
|
+
const updatedContent = { ...this.valtechConfig.content };
|
|
77
|
+
delete updatedContent[className];
|
|
78
|
+
this.valtechConfig.content = updatedContent;
|
|
79
|
+
console.log(`🗑️ ContentLoader: Unregistered content for "${className}"`);
|
|
80
|
+
}
|
|
68
81
|
return existed;
|
|
69
82
|
}
|
|
70
83
|
/**
|
|
@@ -72,26 +85,39 @@ export class ContentLoaderService {
|
|
|
72
85
|
*/
|
|
73
86
|
clearAllContent() {
|
|
74
87
|
this.registeredContent.clear();
|
|
88
|
+
console.log('🧹 ContentLoader: Cleared all registered content');
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get current content provider state.
|
|
92
|
+
* Useful for debugging.
|
|
93
|
+
*/
|
|
94
|
+
getContentProvider() {
|
|
95
|
+
return this.valtechConfig.content;
|
|
75
96
|
}
|
|
76
97
|
/**
|
|
77
|
-
* Add content to
|
|
98
|
+
* ✅ CLEAN: Add content to provider using proper API
|
|
78
99
|
* @private
|
|
79
100
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
101
|
+
addContentToProvider(className, content) {
|
|
102
|
+
try {
|
|
103
|
+
// Get current content provider
|
|
104
|
+
const currentContent = this.valtechConfig.content || {};
|
|
105
|
+
// Create TextContent instance
|
|
83
106
|
const textContent = new TextContent(content);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
107
|
+
// Update the content provider properly
|
|
108
|
+
const updatedContent = {
|
|
109
|
+
...currentContent,
|
|
110
|
+
[className]: textContent,
|
|
111
|
+
};
|
|
112
|
+
// Set the updated content - this is the clean way
|
|
113
|
+
this.valtechConfig.content = updatedContent;
|
|
114
|
+
console.log(`📝 ContentLoader: Added "${className}" to content provider`);
|
|
89
115
|
}
|
|
90
|
-
|
|
91
|
-
console.error(
|
|
116
|
+
catch (error) {
|
|
117
|
+
console.error(`❌ ContentLoader: Error adding content for "${className}":`, error);
|
|
92
118
|
}
|
|
93
119
|
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderService, deps: [
|
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
95
121
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderService, providedIn: 'root' }); }
|
|
96
122
|
}
|
|
97
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderService, decorators: [{
|
|
@@ -99,26 +125,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
99
125
|
args: [{
|
|
100
126
|
providedIn: 'root',
|
|
101
127
|
}]
|
|
102
|
-
}]
|
|
128
|
+
}] });
|
|
103
129
|
/**
|
|
104
130
|
* Helper function to create a content module.
|
|
105
131
|
*/
|
|
106
132
|
export function createContentModule(className, content) {
|
|
107
133
|
return { className, content };
|
|
108
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* ✅ CLEAN: Global registry using proper array instead of globalThis hack
|
|
137
|
+
*/
|
|
138
|
+
const globalContentRegistry = [];
|
|
109
139
|
/**
|
|
110
140
|
* Simple function to register content directly.
|
|
141
|
+
* ✅ IMPROVED: Cleaner global registry management
|
|
111
142
|
*/
|
|
112
143
|
export function registerContent(className, content) {
|
|
113
|
-
|
|
114
|
-
|
|
144
|
+
// Add to global registry
|
|
145
|
+
globalContentRegistry.push({ className, content });
|
|
146
|
+
console.log(`📝 registerContent: Queued "${className}" for registration`);
|
|
115
147
|
}
|
|
116
148
|
/**
|
|
117
149
|
* Load all content from the global registry.
|
|
150
|
+
* ✅ IMPROVED: Better error handling and logging
|
|
118
151
|
*/
|
|
119
152
|
export function loadRegisteredContent(contentLoader) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
153
|
+
if (globalContentRegistry.length === 0) {
|
|
154
|
+
console.log('ℹ️ ContentLoader: No content registered to load');
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
console.log(`🚀 ContentLoader: Loading ${globalContentRegistry.length} registered content modules...`);
|
|
158
|
+
try {
|
|
159
|
+
// Load all content
|
|
160
|
+
contentLoader.loadContent([...globalContentRegistry]);
|
|
161
|
+
// Clear the registry after loading
|
|
162
|
+
globalContentRegistry.length = 0;
|
|
163
|
+
console.log('🎉 ContentLoader: All registered content loaded and registry cleared');
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
console.error('❌ ContentLoader: Error loading registered content:', error);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* ✅ NEW: Debugging helper
|
|
171
|
+
* Get current global registry state
|
|
172
|
+
*/
|
|
173
|
+
export function getRegisteredContentQueue() {
|
|
174
|
+
return [...globalContentRegistry];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* ✅ NEW: Debugging helper
|
|
178
|
+
* Clear the global registry without loading
|
|
179
|
+
*/
|
|
180
|
+
export function clearRegisteredContentQueue() {
|
|
181
|
+
const count = globalContentRegistry.length;
|
|
182
|
+
globalContentRegistry.length = 0;
|
|
183
|
+
console.log(`🧹 ContentLoader: Cleared ${count} items from registration queue`);
|
|
123
184
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2NvbnRlbnQtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQW9CLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFDdEU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFGcEMsc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7SUFFakIsQ0FBQztJQUVoRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxTQUFpQixFQUFFLE9BQXlCO1FBQzFELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLGNBQStCO1FBQ3pDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsU0FBaUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLFNBQWlCO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSyx1QkFBdUIsQ0FBQyxTQUFpQixFQUFFLE9BQXlCO1FBQzFFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFrQixDQUFDO1FBRS9DLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxDQUFDO1lBRWhELElBQUksY0FBYyxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQzVDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQzVDLENBQUM7WUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7SUFDSCxDQUFDOytHQTlFVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQTBGRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFpQixFQUFFLE9BQXlCO0lBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDaEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxTQUFpQixFQUFFLE9BQXlCO0lBQ3pFLFVBQWtCLENBQUMsd0JBQXdCLEdBQUksVUFBa0IsQ0FBQyx3QkFBd0IsSUFBSSxFQUFFLENBQUM7SUFDakcsVUFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsYUFBbUM7SUFDdkUsTUFBTSxpQkFBaUIsR0FBSSxVQUFrQixDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQztJQUM3RSxhQUFhLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUMsVUFBa0IsQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50LCBUZXh0Q29udGVudCB9IGZyb20gJy4vbGFuZy1wcm92aWRlci90eXBlcyc7XG4vKipcbiAqIENvbnRlbnRMb2FkZXIgU2VydmljZSAtIER5bmFtaWMgY29udGVudCBsb2FkaW5nIHN5c3RlbS5cbiAqXG4gKiBBbGxvd3MgbG9hZGluZyBjb250ZW50IGZyb20gZGlzdHJpYnV0ZWQgLmNvbnRlbnQudHMgZmlsZXMgdGhyb3VnaG91dCB0aGUgcHJvamVjdCxcbiAqIGtlZXBpbmcgY29udGVudCBjbG9zZSB0byB3aGVyZSBpdCdzIHVzZWQgaW5zdGVhZCBvZiBjZW50cmFsaXppbmcgZXZlcnl0aGluZyBpbiBtYWluLnRzLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gdXNlci1wYWdlLmNvbnRlbnQudHNcbiAqIGV4cG9ydCBjb25zdCBVc2VyUGFnZUNvbnRlbnQgPSB7XG4gKiAgIGVzOiB7IHRpdGxlOiAnTWkgUMOhZ2luYSBkZSBVc3VhcmlvJywgd2VsY29tZTogJ0JpZW52ZW5pZG8ge3tuYW1lfX0nIH0sXG4gKiAgIGVuOiB7IHRpdGxlOiAnTXkgVXNlciBQYWdlJywgd2VsY29tZTogJ1dlbGNvbWUge3tuYW1lfX0nIH1cbiAqIH07XG4gKlxuICogLy8gSW4gY29tcG9uZW50IG9yIG1haW4udHNcbiAqIGltcG9ydCB7IFVzZXJQYWdlQ29udGVudCB9IGZyb20gJy4vdXNlci1wYWdlLmNvbnRlbnQnO1xuICogY29udGVudExvYWRlci5yZWdpc3RlckNvbnRlbnQoJ1VzZXJQYWdlJywgVXNlclBhZ2VDb250ZW50KTtcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudExvYWRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlZ2lzdGVyZWRDb250ZW50ID0gbmV3IE1hcDxzdHJpbmcsIExhbmd1YWdlc0NvbnRlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGNvbnRlbnQgZm9yIGEgc3BlY2lmaWMgY29tcG9uZW50L3BhZ2UgY2xhc3MuXG4gICAqL1xuICByZWdpc3RlckNvbnRlbnQoY2xhc3NOYW1lOiBzdHJpbmcsIGNvbnRlbnQ6IExhbmd1YWdlc0NvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyZWRDb250ZW50LnNldChjbGFzc05hbWUsIGNvbnRlbnQpO1xuICAgIHRoaXMuYWRkQ29udGVudFRvTGFuZ1NlcnZpY2UoY2xhc3NOYW1lLCBjb250ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBtdWx0aXBsZSBjb250ZW50IG1vZHVsZXMgYXQgb25jZS5cbiAgICovXG4gIGxvYWRDb250ZW50KGNvbnRlbnRNb2R1bGVzOiBDb250ZW50TW9kdWxlW10pOiB2b2lkIHtcbiAgICBjb250ZW50TW9kdWxlcy5mb3JFYWNoKG1vZHVsZSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyQ29udGVudChtb2R1bGUuY2xhc3NOYW1lLCBtb2R1bGUuY29udGVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY29udGVudCBpcyByZWdpc3RlcmVkIGZvciBhIGNsYXNzLlxuICAgKi9cbiAgaGFzQ29udGVudEZvcihjbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyZWRDb250ZW50LmhhcyhjbGFzc05hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgcmVnaXN0ZXJlZCBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGdldFJlZ2lzdGVyZWRDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdGVyZWRDb250ZW50LmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlZ2lzdGVyZWQgY29udGVudCBmb3IgYSBzcGVjaWZpYyBjbGFzcy5cbiAgICovXG4gIGdldENvbnRlbnRGb3IoY2xhc3NOYW1lOiBzdHJpbmcpOiBMYW5ndWFnZXNDb250ZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkQ29udGVudC5nZXQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgY29udGVudCByZWdpc3RyYXRpb24gZm9yIGEgY2xhc3MuXG4gICAqL1xuICB1bnJlZ2lzdGVyQ29udGVudChjbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4aXN0ZWQgPSB0aGlzLnJlZ2lzdGVyZWRDb250ZW50LmhhcyhjbGFzc05hbWUpO1xuICAgIHRoaXMucmVnaXN0ZXJlZENvbnRlbnQuZGVsZXRlKGNsYXNzTmFtZSk7XG4gICAgcmV0dXJuIGV4aXN0ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIHJlZ2lzdGVyZWQgY29udGVudC5cbiAgICovXG4gIGNsZWFyQWxsQ29udGVudCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyZWRDb250ZW50LmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGNvbnRlbnQgdG8gdGhlIExhbmdTZXJ2aWNlIGNvbnRlbnQgcHJvdmlkZXIuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFkZENvbnRlbnRUb0xhbmdTZXJ2aWNlKGNsYXNzTmFtZTogc3RyaW5nLCBjb250ZW50OiBMYW5ndWFnZXNDb250ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbGFuZ1NlcnZpY2VBbnkgPSB0aGlzLmxhbmdTZXJ2aWNlIGFzIGFueTtcblxuICAgIGlmIChsYW5nU2VydmljZUFueS5jb250ZW50KSB7XG4gICAgICBjb25zdCB0ZXh0Q29udGVudCA9IG5ldyBUZXh0Q29udGVudChjb250ZW50KTtcbiAgICAgIGxhbmdTZXJ2aWNlQW55LmNvbnRlbnRbY2xhc3NOYW1lXSA9IHRleHRDb250ZW50O1xuXG4gICAgICBpZiAobGFuZ1NlcnZpY2VBbnkuZGV0ZWN0QXZhaWxhYmxlTGFuZ3VhZ2VzKSB7XG4gICAgICAgIGxhbmdTZXJ2aWNlQW55LmRldGVjdEF2YWlsYWJsZUxhbmd1YWdlcygpO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyhgQ29udGVudExvYWRlcjogUmVnaXN0ZXJlZCBjb250ZW50IGZvciBcIiR7Y2xhc3NOYW1lfVwiYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvbnRlbnRMb2FkZXI6IFVuYWJsZSB0byBhY2Nlc3MgTGFuZ1NlcnZpY2UgY29udGVudCBwcm92aWRlcicpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgY29udGVudCBtb2R1bGUgcmVnaXN0cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRNb2R1bGUge1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgY29udGVudDogTGFuZ3VhZ2VzQ29udGVudDtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgY29udGVudCBtb2R1bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250ZW50TW9kdWxlKGNsYXNzTmFtZTogc3RyaW5nLCBjb250ZW50OiBMYW5ndWFnZXNDb250ZW50KTogQ29udGVudE1vZHVsZSB7XG4gIHJldHVybiB7IGNsYXNzTmFtZSwgY29udGVudCB9O1xufVxuXG4vKipcbiAqIFNpbXBsZSBmdW5jdGlvbiB0byByZWdpc3RlciBjb250ZW50IGRpcmVjdGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBjb250ZW50OiBMYW5ndWFnZXNDb250ZW50KTogdm9pZCB7XG4gIChnbG9iYWxUaGlzIGFzIGFueSkuX192YWx0ZWNoQ29udGVudFJlZ2lzdHJ5ID0gKGdsb2JhbFRoaXMgYXMgYW55KS5fX3ZhbHRlY2hDb250ZW50UmVnaXN0cnkgfHwgW107XG4gIChnbG9iYWxUaGlzIGFzIGFueSkuX192YWx0ZWNoQ29udGVudFJlZ2lzdHJ5LnB1c2goeyBjbGFzc05hbWUsIGNvbnRlbnQgfSk7XG59XG5cbi8qKlxuICogTG9hZCBhbGwgY29udGVudCBmcm9tIHRoZSBnbG9iYWwgcmVnaXN0cnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVnaXN0ZXJlZENvbnRlbnQoY29udGVudExvYWRlcjogQ29udGVudExvYWRlclNlcnZpY2UpOiB2b2lkIHtcbiAgY29uc3QgcmVnaXN0ZXJlZENvbnRlbnQgPSAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fdmFsdGVjaENvbnRlbnRSZWdpc3RyeSB8fCBbXTtcbiAgY29udGVudExvYWRlci5sb2FkQ29udGVudChyZWdpc3RlcmVkQ29udGVudCk7XG4gIChnbG9iYWxUaGlzIGFzIGFueSkuX192YWx0ZWNoQ29udGVudFJlZ2lzdHJ5ID0gW107XG59XG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2NvbnRlbnQtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFvQixXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBQy9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSVUsa0JBQWEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM3QyxzQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztLQThHakU7SUE1R0M7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLFNBQWlCLEVBQUUsT0FBeUI7UUFDMUQsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRS9DLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLGNBQStCO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLGNBQWMsQ0FBQyxNQUFNLHFCQUFxQixDQUFDLENBQUM7UUFFckYsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFT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QUFxQixDQUFDLE1BQU0sQ0FBQztJQUMzQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEtBQUssZ0NBQWdDLENBQUMsQ0FBQztBQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJy4vbGFuZy1wcm92aWRlci9jb250ZW50JztcbmltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQsIFRleHRDb250ZW50IH0gZnJvbSAnLi9sYW5nLXByb3ZpZGVyL3R5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi90eXBlcyc7XG4vKipcbiAqIENvbnRlbnRMb2FkZXIgU2VydmljZSAtIER5bmFtaWMgY29udGVudCBsb2FkaW5nIHN5c3RlbS5cbiAqXG4gKiBSRUZBQ1RPUkVEOiBOb3cgdXNlcyBWYWx0ZWNoQ29uZmlnU2VydmljZSBwcm9wZXJseSBpbnN0ZWFkIG9mIGhhY2tpbmcgTGFuZ1NlcnZpY2UuXG4gKiBUaGlzIHByb3ZpZGVzIGEgY2xlYW4sIG1haW50YWluYWJsZSB3YXkgdG8gcmVnaXN0ZXIgY29udGVudCBkeW5hbWljYWxseS5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIHVzZXItcGFnZS5jb250ZW50LnRzXG4gKiBleHBvcnQgY29uc3QgVXNlclBhZ2VDb250ZW50ID0ge1xuICogICBlczogeyB0aXRsZTogJ01pIFDDoWdpbmEgZGUgVXN1YXJpbycsIHdlbGNvbWU6ICdCaWVudmVuaWRvIHt7bmFtZX19JyB9LFxuICogICBlbjogeyB0aXRsZTogJ015IFVzZXIgUGFnZScsIHdlbGNvbWU6ICdXZWxjb21lIHt7bmFtZX19JyB9XG4gKiB9O1xuICpcbiAqIC8vIEluIGNvbXBvbmVudFxuICogaW1wb3J0IHsgVXNlclBhZ2VDb250ZW50IH0gZnJvbSAnLi91c2VyLXBhZ2UuY29udGVudCc7XG4gKiByZWdpc3RlckNvbnRlbnQoJ1VzZXJQYWdlJywgVXNlclBhZ2VDb250ZW50KTtcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudExvYWRlclNlcnZpY2Uge1xuICBwcml2YXRlIHZhbHRlY2hDb25maWcgPSBpbmplY3QoVmFsdGVjaENvbmZpZ1NlcnZpY2UpO1xuICBwcml2YXRlIHJlZ2lzdGVyZWRDb250ZW50ID0gbmV3IE1hcDxzdHJpbmcsIExhbmd1YWdlc0NvbnRlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGNvbnRlbnQgZm9yIGEgc3BlY2lmaWMgY29tcG9uZW50L3BhZ2UgY2xhc3MuXG4gICAqIOKchSBDTEVBTjogVXNlcyBwcm9wZXIgVmFsdGVjaENvbmZpZ1NlcnZpY2UgQVBJIGluc3RlYWQgb2YgaGFja2luZyBMYW5nU2VydmljZVxuICAgKi9cbiAgcmVnaXN0ZXJDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBjb250ZW50OiBMYW5ndWFnZXNDb250ZW50KTogdm9pZCB7XG4gICAgLy8gU3RvcmUgbG9jYWxseSBmb3IgdHJhY2tpbmdcbiAgICB0aGlzLnJlZ2lzdGVyZWRDb250ZW50LnNldChjbGFzc05hbWUsIGNvbnRlbnQpO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBjb25maWd1cmF0aW9uIHByb3Blcmx5XG4gICAgdGhpcy5hZGRDb250ZW50VG9Qcm92aWRlcihjbGFzc05hbWUsIGNvbnRlbnQpO1xuXG4gICAgY29uc29sZS5sb2coYOKchSBDb250ZW50TG9hZGVyOiBSZWdpc3RlcmVkIGNvbnRlbnQgZm9yIFwiJHtjbGFzc05hbWV9XCJgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBtdWx0aXBsZSBjb250ZW50IG1vZHVsZXMgYXQgb25jZS5cbiAgICovXG4gIGxvYWRDb250ZW50KGNvbnRlbnRNb2R1bGVzOiBDb250ZW50TW9kdWxlW10pOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhg8J+UhCBDb250ZW50TG9hZGVyOiBMb2FkaW5nICR7Y29udGVudE1vZHVsZXMubGVuZ3RofSBjb250ZW50IG1vZHVsZXMuLi5gKTtcblxuICAgIGNvbnRlbnRNb2R1bGVzLmZvckVhY2gobW9kdWxlID0+IHtcbiAgICAgIHRoaXMucmVnaXN0ZXJDb250ZW50KG1vZHVsZS5jbGFzc05hbWUsIG1vZHVsZS5jb250ZW50KTtcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKCfinIUgQ29udGVudExvYWRlcjogQWxsIGNvbnRlbnQgbW9kdWxlcyBsb2FkZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY29udGVudCBpcyByZWdpc3RlcmVkIGZvciBhIGNsYXNzLlxuICAgKi9cbiAgaGFzQ29udGVudEZvcihjbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyZWRDb250ZW50LmhhcyhjbGFzc05hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgcmVnaXN0ZXJlZCBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGdldFJlZ2lzdGVyZWRDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdGVyZWRDb250ZW50LmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlZ2lzdGVyZWQgY29udGVudCBmb3IgYSBzcGVjaWZpYyBjbGFzcy5cbiAgICovXG4gIGdldENvbnRlbnRGb3IoY2xhc3NOYW1lOiBzdHJpbmcpOiBMYW5ndWFnZXNDb250ZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkQ29udGVudC5nZXQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgY29udGVudCByZWdpc3RyYXRpb24gZm9yIGEgY2xhc3MuXG4gICAqL1xuICB1bnJlZ2lzdGVyQ29udGVudChjbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4aXN0ZWQgPSB0aGlzLnJlZ2lzdGVyZWRDb250ZW50LmhhcyhjbGFzc05hbWUpO1xuICAgIHRoaXMucmVnaXN0ZXJlZENvbnRlbnQuZGVsZXRlKGNsYXNzTmFtZSk7XG5cbiAgICAvLyBBbHNvIHJlbW92ZSBmcm9tIHRoZSBwcm92aWRlclxuICAgIGlmIChleGlzdGVkICYmIHRoaXMudmFsdGVjaENvbmZpZy5jb250ZW50KSB7XG4gICAgICBjb25zdCB1cGRhdGVkQ29udGVudCA9IHsgLi4udGhpcy52YWx0ZWNoQ29uZmlnLmNvbnRlbnQgfTtcbiAgICAgIGRlbGV0ZSB1cGRhdGVkQ29udGVudFtjbGFzc05hbWVdO1xuICAgICAgdGhpcy52YWx0ZWNoQ29uZmlnLmNvbnRlbnQgPSB1cGRhdGVkQ29udGVudDtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5eR77iPIENvbnRlbnRMb2FkZXI6IFVucmVnaXN0ZXJlZCBjb250ZW50IGZvciBcIiR7Y2xhc3NOYW1lfVwiYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4aXN0ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIHJlZ2lzdGVyZWQgY29udGVudC5cbiAgICovXG4gIGNsZWFyQWxsQ29udGVudCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyZWRDb250ZW50LmNsZWFyKCk7XG4gICAgY29uc29sZS5sb2coJ/Cfp7kgQ29udGVudExvYWRlcjogQ2xlYXJlZCBhbGwgcmVnaXN0ZXJlZCBjb250ZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgY29udGVudCBwcm92aWRlciBzdGF0ZS5cbiAgICogVXNlZnVsIGZvciBkZWJ1Z2dpbmcuXG4gICAqL1xuICBnZXRDb250ZW50UHJvdmlkZXIoKTogUHJvdmlkZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhbHRlY2hDb25maWcuY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiDinIUgQ0xFQU46IEFkZCBjb250ZW50IHRvIHByb3ZpZGVyIHVzaW5nIHByb3BlciBBUElcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYWRkQ29udGVudFRvUHJvdmlkZXIoY2xhc3NOYW1lOiBzdHJpbmcsIGNvbnRlbnQ6IExhbmd1YWdlc0NvbnRlbnQpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgLy8gR2V0IGN1cnJlbnQgY29udGVudCBwcm92aWRlclxuICAgICAgY29uc3QgY3VycmVudENvbnRlbnQgPSB0aGlzLnZhbHRlY2hDb25maWcuY29udGVudCB8fCB7fTtcblxuICAgICAgLy8gQ3JlYXRlIFRleHRDb250ZW50IGluc3RhbmNlXG4gICAgICBjb25zdCB0ZXh0Q29udGVudCA9IG5ldyBUZXh0Q29udGVudChjb250ZW50KTtcblxuICAgICAgLy8gVXBkYXRlIHRoZSBjb250ZW50IHByb3ZpZGVyIHByb3Blcmx5XG4gICAgICBjb25zdCB1cGRhdGVkQ29udGVudDogUHJvdmlkZXIgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRDb250ZW50LFxuICAgICAgICBbY2xhc3NOYW1lXTogdGV4dENvbnRlbnQsXG4gICAgICB9O1xuXG4gICAgICAvLyBTZXQgdGhlIHVwZGF0ZWQgY29udGVudCAtIHRoaXMgaXMgdGhlIGNsZWFuIHdheVxuICAgICAgdGhpcy52YWx0ZWNoQ29uZmlnLmNvbnRlbnQgPSB1cGRhdGVkQ29udGVudDtcblxuICAgICAgY29uc29sZS5sb2coYPCfk50gQ29udGVudExvYWRlcjogQWRkZWQgXCIke2NsYXNzTmFtZX1cIiB0byBjb250ZW50IHByb3ZpZGVyYCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYOKdjCBDb250ZW50TG9hZGVyOiBFcnJvciBhZGRpbmcgY29udGVudCBmb3IgXCIke2NsYXNzTmFtZX1cIjpgLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBjb250ZW50IG1vZHVsZSByZWdpc3RyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudE1vZHVsZSB7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBjb250ZW50OiBMYW5ndWFnZXNDb250ZW50O1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSBjb250ZW50IG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRlbnRNb2R1bGUoY2xhc3NOYW1lOiBzdHJpbmcsIGNvbnRlbnQ6IExhbmd1YWdlc0NvbnRlbnQpOiBDb250ZW50TW9kdWxlIHtcbiAgcmV0dXJuIHsgY2xhc3NOYW1lLCBjb250ZW50IH07XG59XG5cbi8qKlxuICog4pyFIENMRUFOOiBHbG9iYWwgcmVnaXN0cnkgdXNpbmcgcHJvcGVyIGFycmF5IGluc3RlYWQgb2YgZ2xvYmFsVGhpcyBoYWNrXG4gKi9cbmNvbnN0IGdsb2JhbENvbnRlbnRSZWdpc3RyeTogQ29udGVudE1vZHVsZVtdID0gW107XG5cbi8qKlxuICogU2ltcGxlIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyIGNvbnRlbnQgZGlyZWN0bHkuXG4gKiDinIUgSU1QUk9WRUQ6IENsZWFuZXIgZ2xvYmFsIHJlZ2lzdHJ5IG1hbmFnZW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udGVudChjbGFzc05hbWU6IHN0cmluZywgY29udGVudDogTGFuZ3VhZ2VzQ29udGVudCk6IHZvaWQge1xuICAvLyBBZGQgdG8gZ2xvYmFsIHJlZ2lzdHJ5XG4gIGdsb2JhbENvbnRlbnRSZWdpc3RyeS5wdXNoKHsgY2xhc3NOYW1lLCBjb250ZW50IH0pO1xuICBjb25zb2xlLmxvZyhg8J+TnSByZWdpc3RlckNvbnRlbnQ6IFF1ZXVlZCBcIiR7Y2xhc3NOYW1lfVwiIGZvciByZWdpc3RyYXRpb25gKTtcbn1cblxuLyoqXG4gKiBMb2FkIGFsbCBjb250ZW50IGZyb20gdGhlIGdsb2JhbCByZWdpc3RyeS5cbiAqIOKchSBJTVBST1ZFRDogQmV0dGVyIGVycm9yIGhhbmRsaW5nIGFuZCBsb2dnaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVnaXN0ZXJlZENvbnRlbnQoY29udGVudExvYWRlcjogQ29udGVudExvYWRlclNlcnZpY2UpOiB2b2lkIHtcbiAgaWYgKGdsb2JhbENvbnRlbnRSZWdpc3RyeS5sZW5ndGggPT09IDApIHtcbiAgICBjb25zb2xlLmxvZygn4oS577iPIENvbnRlbnRMb2FkZXI6IE5vIGNvbnRlbnQgcmVnaXN0ZXJlZCB0byBsb2FkJyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc29sZS5sb2coXG4gICAgYPCfmoAgQ29udGVudExvYWRlcjogTG9hZGluZyAke2dsb2JhbENvbnRlbnRSZWdpc3RyeS5sZW5ndGh9IHJlZ2lzdGVyZWQgY29udGVudCBtb2R1bGVzLi4uYFxuICApO1xuXG4gIHRyeSB7XG4gICAgLy8gTG9hZCBhbGwgY29udGVudFxuICAgIGNvbnRlbnRMb2FkZXIubG9hZENvbnRlbnQoWy4uLmdsb2JhbENvbnRlbnRSZWdpc3RyeV0pO1xuXG4gICAgLy8gQ2xlYXIgdGhlIHJlZ2lzdHJ5IGFmdGVyIGxvYWRpbmdcbiAgICBnbG9iYWxDb250ZW50UmVnaXN0cnkubGVuZ3RoID0gMDtcblxuICAgIGNvbnNvbGUubG9nKCfwn46JIENvbnRlbnRMb2FkZXI6IEFsbCByZWdpc3RlcmVkIGNvbnRlbnQgbG9hZGVkIGFuZCByZWdpc3RyeSBjbGVhcmVkJyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcign4p2MIENvbnRlbnRMb2FkZXI6IEVycm9yIGxvYWRpbmcgcmVnaXN0ZXJlZCBjb250ZW50OicsIGVycm9yKTtcbiAgfVxufVxuXG4vKipcbiAqIOKchSBORVc6IERlYnVnZ2luZyBoZWxwZXJcbiAqIEdldCBjdXJyZW50IGdsb2JhbCByZWdpc3RyeSBzdGF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVnaXN0ZXJlZENvbnRlbnRRdWV1ZSgpOiBDb250ZW50TW9kdWxlW10ge1xuICByZXR1cm4gWy4uLmdsb2JhbENvbnRlbnRSZWdpc3RyeV07XG59XG5cbi8qKlxuICog4pyFIE5FVzogRGVidWdnaW5nIGhlbHBlclxuICogQ2xlYXIgdGhlIGdsb2JhbCByZWdpc3RyeSB3aXRob3V0IGxvYWRpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyUmVnaXN0ZXJlZENvbnRlbnRRdWV1ZSgpOiB2b2lkIHtcbiAgY29uc3QgY291bnQgPSBnbG9iYWxDb250ZW50UmVnaXN0cnkubGVuZ3RoO1xuICBnbG9iYWxDb250ZW50UmVnaXN0cnkubGVuZ3RoID0gMDtcbiAgY29uc29sZS5sb2coYPCfp7kgQ29udGVudExvYWRlcjogQ2xlYXJlZCAke2NvdW50fSBpdGVtcyBmcm9tIHJlZ2lzdHJhdGlvbiBxdWV1ZWApO1xufVxuIl19
|
|
@@ -8112,8 +8112,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8112
8112
|
/**
|
|
8113
8113
|
* ContentLoader Service - Dynamic content loading system.
|
|
8114
8114
|
*
|
|
8115
|
-
*
|
|
8116
|
-
*
|
|
8115
|
+
* REFACTORED: Now uses ValtechConfigService properly instead of hacking LangService.
|
|
8116
|
+
* This provides a clean, maintainable way to register content dynamically.
|
|
8117
8117
|
*
|
|
8118
8118
|
* @example Basic usage:
|
|
8119
8119
|
* ```typescript
|
|
@@ -8123,30 +8123,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8123
8123
|
* en: { title: 'My User Page', welcome: 'Welcome {{name}}' }
|
|
8124
8124
|
* };
|
|
8125
8125
|
*
|
|
8126
|
-
* // In component
|
|
8126
|
+
* // In component
|
|
8127
8127
|
* import { UserPageContent } from './user-page.content';
|
|
8128
|
-
*
|
|
8128
|
+
* registerContent('UserPage', UserPageContent);
|
|
8129
8129
|
* ```
|
|
8130
8130
|
*/
|
|
8131
8131
|
class ContentLoaderService {
|
|
8132
|
-
constructor(
|
|
8133
|
-
this.
|
|
8132
|
+
constructor() {
|
|
8133
|
+
this.valtechConfig = inject(ValtechConfigService);
|
|
8134
8134
|
this.registeredContent = new Map();
|
|
8135
8135
|
}
|
|
8136
8136
|
/**
|
|
8137
8137
|
* Register content for a specific component/page class.
|
|
8138
|
+
* ✅ CLEAN: Uses proper ValtechConfigService API instead of hacking LangService
|
|
8138
8139
|
*/
|
|
8139
8140
|
registerContent(className, content) {
|
|
8141
|
+
// Store locally for tracking
|
|
8140
8142
|
this.registeredContent.set(className, content);
|
|
8141
|
-
|
|
8143
|
+
// Update the configuration properly
|
|
8144
|
+
this.addContentToProvider(className, content);
|
|
8145
|
+
console.log(`✅ ContentLoader: Registered content for "${className}"`);
|
|
8142
8146
|
}
|
|
8143
8147
|
/**
|
|
8144
8148
|
* Register multiple content modules at once.
|
|
8145
8149
|
*/
|
|
8146
8150
|
loadContent(contentModules) {
|
|
8151
|
+
console.log(`🔄 ContentLoader: Loading ${contentModules.length} content modules...`);
|
|
8147
8152
|
contentModules.forEach(module => {
|
|
8148
8153
|
this.registerContent(module.className, module.content);
|
|
8149
8154
|
});
|
|
8155
|
+
console.log('✅ ContentLoader: All content modules loaded successfully');
|
|
8150
8156
|
}
|
|
8151
8157
|
/**
|
|
8152
8158
|
* Check if content is registered for a class.
|
|
@@ -8172,6 +8178,13 @@ class ContentLoaderService {
|
|
|
8172
8178
|
unregisterContent(className) {
|
|
8173
8179
|
const existed = this.registeredContent.has(className);
|
|
8174
8180
|
this.registeredContent.delete(className);
|
|
8181
|
+
// Also remove from the provider
|
|
8182
|
+
if (existed && this.valtechConfig.content) {
|
|
8183
|
+
const updatedContent = { ...this.valtechConfig.content };
|
|
8184
|
+
delete updatedContent[className];
|
|
8185
|
+
this.valtechConfig.content = updatedContent;
|
|
8186
|
+
console.log(`🗑️ ContentLoader: Unregistered content for "${className}"`);
|
|
8187
|
+
}
|
|
8175
8188
|
return existed;
|
|
8176
8189
|
}
|
|
8177
8190
|
/**
|
|
@@ -8179,26 +8192,39 @@ class ContentLoaderService {
|
|
|
8179
8192
|
*/
|
|
8180
8193
|
clearAllContent() {
|
|
8181
8194
|
this.registeredContent.clear();
|
|
8195
|
+
console.log('🧹 ContentLoader: Cleared all registered content');
|
|
8196
|
+
}
|
|
8197
|
+
/**
|
|
8198
|
+
* Get current content provider state.
|
|
8199
|
+
* Useful for debugging.
|
|
8200
|
+
*/
|
|
8201
|
+
getContentProvider() {
|
|
8202
|
+
return this.valtechConfig.content;
|
|
8182
8203
|
}
|
|
8183
8204
|
/**
|
|
8184
|
-
* Add content to
|
|
8205
|
+
* ✅ CLEAN: Add content to provider using proper API
|
|
8185
8206
|
* @private
|
|
8186
8207
|
*/
|
|
8187
|
-
|
|
8188
|
-
|
|
8189
|
-
|
|
8208
|
+
addContentToProvider(className, content) {
|
|
8209
|
+
try {
|
|
8210
|
+
// Get current content provider
|
|
8211
|
+
const currentContent = this.valtechConfig.content || {};
|
|
8212
|
+
// Create TextContent instance
|
|
8190
8213
|
const textContent = new TextContent(content);
|
|
8191
|
-
|
|
8192
|
-
|
|
8193
|
-
|
|
8194
|
-
|
|
8195
|
-
|
|
8214
|
+
// Update the content provider properly
|
|
8215
|
+
const updatedContent = {
|
|
8216
|
+
...currentContent,
|
|
8217
|
+
[className]: textContent,
|
|
8218
|
+
};
|
|
8219
|
+
// Set the updated content - this is the clean way
|
|
8220
|
+
this.valtechConfig.content = updatedContent;
|
|
8221
|
+
console.log(`📝 ContentLoader: Added "${className}" to content provider`);
|
|
8196
8222
|
}
|
|
8197
|
-
|
|
8198
|
-
console.error(
|
|
8223
|
+
catch (error) {
|
|
8224
|
+
console.error(`❌ ContentLoader: Error adding content for "${className}":`, error);
|
|
8199
8225
|
}
|
|
8200
8226
|
}
|
|
8201
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderService, deps: [
|
|
8227
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8202
8228
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderService, providedIn: 'root' }); }
|
|
8203
8229
|
}
|
|
8204
8230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderService, decorators: [{
|
|
@@ -8206,27 +8232,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8206
8232
|
args: [{
|
|
8207
8233
|
providedIn: 'root',
|
|
8208
8234
|
}]
|
|
8209
|
-
}]
|
|
8235
|
+
}] });
|
|
8210
8236
|
/**
|
|
8211
8237
|
* Helper function to create a content module.
|
|
8212
8238
|
*/
|
|
8213
8239
|
function createContentModule(className, content) {
|
|
8214
8240
|
return { className, content };
|
|
8215
8241
|
}
|
|
8242
|
+
/**
|
|
8243
|
+
* ✅ CLEAN: Global registry using proper array instead of globalThis hack
|
|
8244
|
+
*/
|
|
8245
|
+
const globalContentRegistry = [];
|
|
8216
8246
|
/**
|
|
8217
8247
|
* Simple function to register content directly.
|
|
8248
|
+
* ✅ IMPROVED: Cleaner global registry management
|
|
8218
8249
|
*/
|
|
8219
8250
|
function registerContent(className, content) {
|
|
8220
|
-
|
|
8221
|
-
|
|
8251
|
+
// Add to global registry
|
|
8252
|
+
globalContentRegistry.push({ className, content });
|
|
8253
|
+
console.log(`📝 registerContent: Queued "${className}" for registration`);
|
|
8222
8254
|
}
|
|
8223
8255
|
/**
|
|
8224
8256
|
* Load all content from the global registry.
|
|
8257
|
+
* ✅ IMPROVED: Better error handling and logging
|
|
8225
8258
|
*/
|
|
8226
8259
|
function loadRegisteredContent(contentLoader) {
|
|
8227
|
-
|
|
8228
|
-
|
|
8229
|
-
|
|
8260
|
+
if (globalContentRegistry.length === 0) {
|
|
8261
|
+
console.log('ℹ️ ContentLoader: No content registered to load');
|
|
8262
|
+
return;
|
|
8263
|
+
}
|
|
8264
|
+
console.log(`🚀 ContentLoader: Loading ${globalContentRegistry.length} registered content modules...`);
|
|
8265
|
+
try {
|
|
8266
|
+
// Load all content
|
|
8267
|
+
contentLoader.loadContent([...globalContentRegistry]);
|
|
8268
|
+
// Clear the registry after loading
|
|
8269
|
+
globalContentRegistry.length = 0;
|
|
8270
|
+
console.log('🎉 ContentLoader: All registered content loaded and registry cleared');
|
|
8271
|
+
}
|
|
8272
|
+
catch (error) {
|
|
8273
|
+
console.error('❌ ContentLoader: Error loading registered content:', error);
|
|
8274
|
+
}
|
|
8275
|
+
}
|
|
8276
|
+
/**
|
|
8277
|
+
* ✅ NEW: Debugging helper
|
|
8278
|
+
* Get current global registry state
|
|
8279
|
+
*/
|
|
8280
|
+
function getRegisteredContentQueue() {
|
|
8281
|
+
return [...globalContentRegistry];
|
|
8282
|
+
}
|
|
8283
|
+
/**
|
|
8284
|
+
* ✅ NEW: Debugging helper
|
|
8285
|
+
* Clear the global registry without loading
|
|
8286
|
+
*/
|
|
8287
|
+
function clearRegisteredContentQueue() {
|
|
8288
|
+
const count = globalContentRegistry.length;
|
|
8289
|
+
globalContentRegistry.length = 0;
|
|
8290
|
+
console.log(`🧹 ContentLoader: Cleared ${count} items from registration queue`);
|
|
8230
8291
|
}
|
|
8231
8292
|
|
|
8232
8293
|
const text = {
|
|
@@ -8403,5 +8464,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8403
8464
|
* Generated bundle index. Do not edit.
|
|
8404
8465
|
*/
|
|
8405
8466
|
|
|
8406
|
-
export { ARTICLE_SPACING, ActionType, AlertBoxComponent, ArticleBuilder, ArticleComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CardSection, CardType, CheckInputComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CommentInputComponent, ComponentContentHelper, ComponentStates, ContentLoaderComponent, ContentLoaderService, ContentService, DateInputComponent, DisplayComponent, DividerComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FileInputComponent, FooterComponent, FormComponent, FormFooterComponent, GlobalContent, HeaderComponent, HintComponent, HourInputComponent, HrefComponent, Icon, IconComponent, IconService, ImageComponent, InAppBrowserService, InputType, ItemListComponent, LANGUAGES, LangService, LanguageSelectorComponent, LayeredCardComponent, LayoutComponent, LinkComponent, LinkProcessorService, LinksCakeComponent, ListContentHelper, LocalStorageService, MOTION, NavigationService, NoContentComponent, NotesBoxComponent, NumberInputComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PasswordInputComponent, PinInputComponent, PopoverSelectorComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProgressBarComponent, ProgressStatusComponent, PrompterComponent, RadioInputComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SelectSearchComponent, SimpleComponent, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, TextComponent, TextContent, TextInputComponent, ThemeOption, ThemeService, TitleBlockComponent, TitleComponent, ToastService, ToolbarActionType, ToolbarComponent, ValtechConfigService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, content, createButtonProps, createComponentContentHelper, createContentHelper, createContentModule, createDisplayProps, createReactiveProps, createTextProps, createTitleProps, fromContent, fromContentWithInterpolation, fromMultipleContent, globalContentData, goToTop, interpolateContent, isAtEnd, loadRegisteredContent, maxLength, registerContent, replaceSpecialChars, resolveColor, resolveInputDefaultValue, shouldUseReactiveContent };
|
|
8467
|
+
export { ARTICLE_SPACING, ActionType, AlertBoxComponent, ArticleBuilder, ArticleComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CardSection, CardType, CheckInputComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CommentInputComponent, ComponentContentHelper, ComponentStates, ContentLoaderComponent, ContentLoaderService, ContentService, DateInputComponent, DisplayComponent, DividerComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FileInputComponent, FooterComponent, FormComponent, FormFooterComponent, GlobalContent, HeaderComponent, HintComponent, HourInputComponent, HrefComponent, Icon, IconComponent, IconService, ImageComponent, InAppBrowserService, InputType, ItemListComponent, LANGUAGES, LangService, LanguageSelectorComponent, LayeredCardComponent, LayoutComponent, LinkComponent, LinkProcessorService, LinksCakeComponent, ListContentHelper, LocalStorageService, MOTION, NavigationService, NoContentComponent, NotesBoxComponent, NumberInputComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PasswordInputComponent, PinInputComponent, PopoverSelectorComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProgressBarComponent, ProgressStatusComponent, PrompterComponent, RadioInputComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SelectSearchComponent, SimpleComponent, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, TextComponent, TextContent, TextInputComponent, ThemeOption, ThemeService, TitleBlockComponent, TitleComponent, ToastService, ToolbarActionType, ToolbarComponent, ValtechConfigService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, clearRegisteredContentQueue, content, createButtonProps, createComponentContentHelper, createContentHelper, createContentModule, createDisplayProps, createReactiveProps, createTextProps, createTitleProps, fromContent, fromContentWithInterpolation, fromMultipleContent, getRegisteredContentQueue, globalContentData, goToTop, interpolateContent, isAtEnd, loadRegisteredContent, maxLength, registerContent, replaceSpecialChars, resolveColor, resolveInputDefaultValue, shouldUseReactiveContent };
|
|
8407
8468
|
//# sourceMappingURL=valtech-components.mjs.map
|