Merge pull request #4071 from dpalou/MOBILE-4470

Mobile 4470
main
Pau Ferrer Ocaña 2024-05-28 11:34:02 +02:00 committed by GitHub
commit f8d2127ebe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 2 additions and 31 deletions

View File

@ -1,28 +0,0 @@
// (C) Copyright 2015 Moodle Pty Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import { Injectable, Pipe, PipeTransform } from '@angular/core';
import { TranslatePipe } from '@ngx-translate/core';
/**
* Copy of translate pipe to use when compiling a dynamic component.
* For some reason, when compiling a dynamic component the original translate pipe isn't found so we use this copy instead.
*/
@Injectable()
@Pipe({
name: 'translate',
pure: false, // required to update the value when the promise is resolved
standalone: true,
})
export class TranslatePipeForCompile extends TranslatePipe implements PipeTransform {}

View File

@ -33,7 +33,6 @@ import {
ToastController, ToastController,
} from '@ionic/angular'; } from '@ionic/angular';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { TranslatePipeForCompile } from '../pipes/translate';
import { CoreLogger } from '@singletons/logger'; import { CoreLogger } from '@singletons/logger';
import { CoreEvents } from '@singletons/events'; import { CoreEvents } from '@singletons/events';
@ -161,6 +160,7 @@ export class CoreCompileProvider {
getModWorkshopComponentModules, getModWorkshopComponentModules,
]; ];
protected componentId = 0;
protected libraries?: unknown[]; protected libraries?: unknown[];
protected exportedObjects?: Record<string, unknown>; protected exportedObjects?: Record<string, unknown>;
@ -187,14 +187,13 @@ export class CoreCompileProvider {
await import('@angular/compiler'); await import('@angular/compiler');
// Create the component using the template and the class. // Create the component using the template and the class.
const component = Component({ template })(componentClass); const component = Component({ template, host: { 'compiled-component-id': String(this.componentId++) } })(componentClass);
const lazyImports = await Promise.all(this.LAZY_IMPORTS.map(getModules => getModules())); const lazyImports = await Promise.all(this.LAZY_IMPORTS.map(getModules => getModules()));
const imports = [ const imports = [
...lazyImports.flat(), ...lazyImports.flat(),
...this.IMPORTS, ...this.IMPORTS,
...extraImports, ...extraImports,
TranslatePipeForCompile,
]; ];
try { try {