UI: Resources service - avoid modules scan recursion. Update markdown template sanitize according to the latest angular template requirements.
This commit is contained in:
parent
1d6b6a3f40
commit
4ca215fdee
@ -237,34 +237,32 @@ export class ResourcesService {
|
|||||||
standaloneComponents: []
|
standaloneComponents: []
|
||||||
},
|
},
|
||||||
visitedModules: Set<any> = new Set<any>()): ModulesWithComponents {
|
visitedModules: Set<any> = new Set<any>()): ModulesWithComponents {
|
||||||
if (module && ['object', 'function'].includes(typeof module)) {
|
if (module && ['object', 'function'].includes(typeof module) && !visitedModules.has(module)) {
|
||||||
|
visitedModules.add(module);
|
||||||
if (ɵNG_MOD_DEF in module) {
|
if (ɵNG_MOD_DEF in module) {
|
||||||
const moduleDef: ɵNgModuleDef<any> = module[ɵNG_MOD_DEF];
|
const moduleDef: ɵNgModuleDef<any> = module[ɵNG_MOD_DEF];
|
||||||
if (!visitedModules.has(moduleDef.type)) {
|
const moduleInfo: ModuleInfo = {
|
||||||
visitedModules.add(moduleDef.type);
|
module: moduleDef,
|
||||||
const moduleInfo: ModuleInfo = {
|
components: []
|
||||||
module: moduleDef,
|
}
|
||||||
components: []
|
modulesWithComponents.modules.push(moduleInfo);
|
||||||
}
|
const exportsDecl = moduleDef.exports;
|
||||||
modulesWithComponents.modules.push(moduleInfo);
|
let exports: Type<any>[];
|
||||||
const exportsDecl = moduleDef.exports;
|
if (Array.isArray(exportsDecl)) {
|
||||||
let exports: Type<any>[];
|
exports = exportsDecl;
|
||||||
if (Array.isArray(exportsDecl)) {
|
} else {
|
||||||
exports = exportsDecl;
|
exports = exportsDecl();
|
||||||
} else {
|
}
|
||||||
exports = exportsDecl();
|
for (const element of exports) {
|
||||||
}
|
if (ɵNG_COMP_DEF in element) {
|
||||||
for (const element of exports) {
|
const component: ɵComponentDef<any> = element[ɵNG_COMP_DEF];
|
||||||
if (ɵNG_COMP_DEF in element) {
|
if (!component.standalone) {
|
||||||
const component: ɵComponentDef<any> = element[ɵNG_COMP_DEF];
|
moduleInfo.components.push(component);
|
||||||
if (!component.standalone) {
|
|
||||||
moduleInfo.components.push(component);
|
|
||||||
} else {
|
|
||||||
modulesWithComponents.standaloneComponents.push(component);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
this.extractModulesWithComponents(module, modulesWithComponents, visitedModules);
|
modulesWithComponents.standaloneComponents.push(component);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
this.extractModulesWithComponents(module, modulesWithComponents, visitedModules);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (ɵNG_COMP_DEF in module) {
|
} else if (ɵNG_COMP_DEF in module) {
|
||||||
|
|||||||
@ -127,7 +127,7 @@ export class TbMarkdownComponent implements OnChanges {
|
|||||||
const preHtml = preElements.item(i).outerHTML.replace('ngnonbindable=""', 'ngNonBindable');
|
const preHtml = preElements.item(i).outerHTML.replace('ngnonbindable=""', 'ngNonBindable');
|
||||||
template = template.replace(matches[i][0], preHtml);
|
template = template.replace(matches[i][0], preHtml);
|
||||||
}
|
}
|
||||||
template = this.sanitizeCurlyBraces(template);
|
template = this.sanitize(template);
|
||||||
this.markdownContainer.clear();
|
this.markdownContainer.clear();
|
||||||
let styles: string[] = [];
|
let styles: string[] = [];
|
||||||
let readyObservable: Observable<void>;
|
let readyObservable: Observable<void>;
|
||||||
@ -259,8 +259,8 @@ export class TbMarkdownComponent implements OnChanges {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private sanitizeCurlyBraces(template: string): string {
|
private sanitize(template: string): string {
|
||||||
return template.replace(/{/g, '{').replace(/}/g, '}');
|
return template.replace(/{/g, '{').replace(/}/g, '}').replace(/@/g, '@');
|
||||||
}
|
}
|
||||||
|
|
||||||
private destroyMarkdownInstanceResources() {
|
private destroyMarkdownInstanceResources() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user