/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes} checked by tsc
 */
/**
 * @license
 * Copyright UIUX Engineering All Rights Reserved.
 */
import * as tslib_1 from "tslib";
import { Injectable, Optional, SkipSelf } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import * as i0 from "@angular/core";
var IxMenuSubject = /** @class */ (function (_super) {
    tslib_1.__extends(IxMenuSubject, _super);
    function IxMenuSubject() {
        return _super.call(this) || this;
    }
    /**
     * @return {?}
     */
    IxMenuSubject.prototype.close = /**
     * @return {?}
     */
    function () {
        _super.prototype.next.call(this, 'close');
    };
    IxMenuSubject.decorators = [
        { type: Injectable, args: [{
                    providedIn: 'root',
                },] },
    ];
    /** @nocollapse */
    IxMenuSubject.ctorParameters = function () { return []; };
    /** @nocollapse */ IxMenuSubject.ngInjectableDef = i0.defineInjectable({ factory: function IxMenuSubject_Factory() { return new IxMenuSubject(); }, token: IxMenuSubject, providedIn: "root" });
    return IxMenuSubject;
}(Subject));
export { IxMenuSubject };
function IxMenuSubject_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    IxMenuSubject.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    IxMenuSubject.ctorParameters;
}
/**
 * @license
 * Copyright UIUX Engineering All Rights Reserved.
 */
var IxMenuModel = /** @class */ (function () {
    function IxMenuModel() {
        this._cache = {};
    }
    /**
     * @param {?} _id
     * @return {?}
     */
    IxMenuModel.prototype.getModelByID = /**
     * @param {?} _id
     * @return {?}
     */
    function (_id) {
        if (!this._cache[_id]) {
            this._cache[_id] = new IxMenuSubject();
        }
        return this._cache[_id];
    };
    IxMenuModel.decorators = [
        { type: Injectable, args: [{
                    providedIn: 'root',
                },] },
    ];
    /** @nocollapse */ IxMenuModel.ngInjectableDef = i0.defineInjectable({ factory: function IxMenuModel_Factory() { return new IxMenuModel(); }, token: IxMenuModel, providedIn: "root" });
    return IxMenuModel;
}());
export { IxMenuModel };
function IxMenuModel_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    IxMenuModel.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    IxMenuModel.ctorParameters;
    /** @type {?} */
    IxMenuModel.prototype._cache;
}
/**
 * \@docs-private
 * @param {?} parentDispatcher
 * @return {?}
 */
export function _MENU_MODEL_FACTORY(parentDispatcher) {
    return parentDispatcher || new IxMenuModel();
}
export var /** @type {?} */ MENU_MODEL_PROVIDER = {
    provide: IxMenuModel,
    deps: [
        [new Optional(), new SkipSelf(), IxMenuModel]
    ],
    useFactory: _MENU_MODEL_FACTORY,
};

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1tb2RlbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVpdXgvbWF0ZXJpYWwvIiwic291cmNlcyI6WyJsaWIvbWVudS9zcmMvX21vZGVsL21lbnUtbW9kZWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGNBQWMsQ0FBQzs7O0lBS0YseUNBQWU7SUFDOUM7ZUFDSSxpQkFBTztLQUNWOzs7O0lBRUQsNkJBQUs7OztJQUFMO1FBQ0ksaUJBQU0sSUFBSSxZQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZCOztnQkFWSixVQUFVLFNBQUM7b0JBQ0UsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Ozt3QkFWYjtFQVdtQyxPQUFPO1NBQTdCLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7c0JBbUI4QixFQUFFOzs7Ozs7SUFFdEQsa0NBQVk7Ozs7SUFBWixVQUFhLEdBQVc7UUFDcEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7U0FDMUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMzQjs7Z0JBWkosVUFBVSxTQUFDO29CQUNFLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7O3NCQTVCYjs7U0E2QmEsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFheEIsTUFBTSw4QkFBK0IsZ0JBQTZCO0lBQzlELE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO0NBQ2hEO0FBRUQsTUFBTSxDQUFDLHFCQUFNLG1CQUFtQixHQUFHO0lBQy9CLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLElBQUksRUFBRTtRQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLFdBQVcsQ0FBQztLQUNoRDtJQUNELFVBQVUsRUFBRSxtQkFBbUI7Q0FDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBVSVVYIEVuZ2luZWVyaW5nIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbCwgU2tpcFNlbGZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzL1N1YmplY3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgICAgICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgICAgIH0pXG5leHBvcnQgY2xhc3MgSXhNZW51U3ViamVjdCBleHRlbmRzIFN1YmplY3Q8c3RyaW5nPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5leHQoJ2Nsb3NlJyk7XG4gICAgfVxufVxuXG5cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBVSVVYIEVuZ2luZWVyaW5nIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICAgICAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgICAgICAgICAgfSlcbmV4cG9ydCBjbGFzcyBJeE1lbnVNb2RlbCB7XG4gICAgcHJpdmF0ZSBfY2FjaGU6IHsgWyBrZXk6IHN0cmluZ106IEl4TWVudVN1YmplY3QgfSA9IHt9O1xuXG4gICAgZ2V0TW9kZWxCeUlEKF9pZDogc3RyaW5nKTogSXhNZW51U3ViamVjdCB7XG4gICAgICAgIGlmICghdGhpcy5fY2FjaGVbX2lkXSkge1xuICAgICAgICAgICAgdGhpcy5fY2FjaGVbX2lkXSA9IG5ldyBJeE1lbnVTdWJqZWN0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY2FjaGVbX2lkXTtcbiAgICB9XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgZnVuY3Rpb24gX01FTlVfTU9ERUxfRkFDVE9SWSggcGFyZW50RGlzcGF0Y2hlcjogSXhNZW51TW9kZWwpOiBJeE1lbnVNb2RlbCB7XG4gICAgcmV0dXJuIHBhcmVudERpc3BhdGNoZXIgfHwgbmV3IEl4TWVudU1vZGVsKCk7XG59XG5cbmV4cG9ydCBjb25zdCBNRU5VX01PREVMX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IEl4TWVudU1vZGVsLFxuICAgIGRlcHM6IFtcbiAgICAgICAgW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgSXhNZW51TW9kZWxdXG4gICAgXSxcbiAgICB1c2VGYWN0b3J5OiBfTUVOVV9NT0RFTF9GQUNUT1JZLFxufTtcbiJdfQ==