var NgSwitchDefault = (function () {
    function NgSwitchDefault(viewContainer, protoViewRef, sswitch) {
        sswitch._registerView(_whenDefault, new SwitchView(viewContainer, protoViewRef));
    }
    NgSwitchDefault = __decorate([
        annotations_1.Directive({ selector: '[ng-switch-default]' }),
        __param(2, annotations_1.Parent()), 
        __metadata('design:paramtypes', [core_1.ViewContainerRef, core_1.ProtoViewRef, NgSwitch])
    ], NgSwitchDefault);
    return NgSwitchDefault;
})();
var NgSwitchWhen = (function () {
    function NgSwitchWhen(viewContainer, protoViewRef, sswitch) {
        // `_whenDefault` is used as a marker for a not yet initialized value
        this._value = _whenDefault;
        this._switch = sswitch;
        this._view = new SwitchView(viewContainer, protoViewRef);
    }
    NgSwitchWhen.prototype.onDestroy = function () { this._switch; };
    Object.defineProperty(NgSwitchWhen.prototype, "ngSwitchWhen", {
        set: function (value) {
            this._switch._onWhenValueChanged(this._value, value, this._view);
            this._value = value;
        },
        enumerable: true,
        configurable: true
    });
    NgSwitchWhen = __decorate([
        annotations_1.Directive({ selector: '[ng-switch-when]', properties: ['ngSwitchWhen'] }),
        __param(2, annotations_1.Parent()), 
        __metadata('design:paramtypes', [core_1.ViewContainerRef, core_1.ProtoViewRef, NgSwitch])
    ], NgSwitchWhen);
    return NgSwitchWhen;
})();