UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

86 lines (85 loc) 3.68 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { Injectable } from 'angular2/src/core/di'; import { Map } from 'angular2/src/facade/collection'; import { isPresent } from 'angular2/src/facade/lang'; import { DirectiveMetadata, ComponentMetadata } from '../core/metadata'; import { DirectiveResolver } from 'angular2/src/compiler/directive_resolver'; /** * An implementation of {@link DirectiveResolver} that allows overriding * various properties of directives. */ export let MockDirectiveResolver = class MockDirectiveResolver extends DirectiveResolver { constructor(...args) { super(...args); this._providerOverrides = new Map(); this.viewProviderOverrides = new Map(); } resolve(type) { var dm = super.resolve(type); var providerOverrides = this._providerOverrides.get(type); var viewProviderOverrides = this.viewProviderOverrides.get(type); var providers = dm.providers; if (isPresent(providerOverrides)) { var originalViewProviders = isPresent(dm.providers) ? dm.providers : []; providers = originalViewProviders.concat(providerOverrides); } if (dm instanceof ComponentMetadata) { var viewProviders = dm.viewProviders; if (isPresent(viewProviderOverrides)) { var originalViewProviders = isPresent(dm.viewProviders) ? dm.viewProviders : []; viewProviders = originalViewProviders.concat(viewProviderOverrides); } return new ComponentMetadata({ selector: dm.selector, inputs: dm.inputs, outputs: dm.outputs, host: dm.host, exportAs: dm.exportAs, moduleId: dm.moduleId, queries: dm.queries, changeDetection: dm.changeDetection, providers: providers, viewProviders: viewProviders }); } return new DirectiveMetadata({ selector: dm.selector, inputs: dm.inputs, outputs: dm.outputs, host: dm.host, providers: providers, exportAs: dm.exportAs, queries: dm.queries }); } /** * @deprecated */ setBindingsOverride(type, bindings) { this._providerOverrides.set(type, bindings); } /** * @deprecated */ setViewBindingsOverride(type, viewBindings) { this.viewProviderOverrides.set(type, viewBindings); } setProvidersOverride(type, providers) { this._providerOverrides.set(type, providers); } setViewProvidersOverride(type, viewProviders) { this.viewProviderOverrides.set(type, viewProviders); } }; MockDirectiveResolver = __decorate([ Injectable(), __metadata('design:paramtypes', []) ], MockDirectiveResolver);