/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import {CompileDirectiveMetadata, CompileEntryComponentMetadata, CompileProviderMetadata, CompileQueryMetadata, CompileStylesheetMetadata, CompileTemplateMetadata, CompileTypeMetadata, ProxyClass, StaticSymbol, preserveWhitespacesDefault} from '@angular/compiler'; import {ChangeDetectionStrategy, RendererType2, ViewEncapsulation} from '@angular/core'; import {noUndefined} from '../../../src/util'; export function createTypeMeta({reference, diDeps}: {reference: any, diDeps?: any[]}): CompileTypeMetadata { return {reference: reference, diDeps: diDeps || [], lifecycleHooks: []}; } export function compileDirectiveMetadataCreate( {isHost, type, isComponent, selector, exportAs, inputs, outputs, host, providers, viewProviders, queries, guards, viewQueries, entryComponents, template, componentViewType, rendererType}: Partial[0]>) { return CompileDirectiveMetadata.create({ isHost: !!isHost, type: noUndefined(type) !, isComponent: !!isComponent, selector: noUndefined(selector), exportAs: noUndefined(exportAs), changeDetection: null, inputs: inputs || [], outputs: outputs || [], host: host || {}, providers: providers || [], viewProviders: viewProviders || [], queries: queries || [], guards: guards || {}, viewQueries: viewQueries || [], entryComponents: entryComponents || [], template: noUndefined(template) !, componentViewType: noUndefined(componentViewType), rendererType: noUndefined(rendererType), componentFactory: null, }); } export function compileTemplateMetadata( {encapsulation, template, templateUrl, styles, styleUrls, externalStylesheets, animations, ngContentSelectors, interpolation, isInline, preserveWhitespaces}: Partial): CompileTemplateMetadata { return new CompileTemplateMetadata({ encapsulation: noUndefined(encapsulation), template: noUndefined(template), templateUrl: noUndefined(templateUrl), htmlAst: null, styles: styles || [], styleUrls: styleUrls || [], externalStylesheets: externalStylesheets || [], animations: animations || [], ngContentSelectors: ngContentSelectors || [], interpolation: noUndefined(interpolation), isInline: !!isInline, preserveWhitespaces: preserveWhitespacesDefault(noUndefined(preserveWhitespaces)), }); }