{"remainingRequest":"/Users/jaslan/Development/nifi-fds/angular-url-loader.js!/Users/jaslan/Development/nifi-fds/node_modules/babel-loader/lib/index.js??ref--5-2!/Users/jaslan/Development/nifi-fds/webapp/fds.js","dependencies":[{"path":"/Users/jaslan/Development/nifi-fds/webapp/fds.js","mtime":1562689731053},{"path":"/Users/jaslan/Development/nifi-fds/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/jaslan/Development/nifi-fds/angular-url-loader.js","mtime":1562689731025},{"path":"/Users/jaslan/Development/nifi-fds/node_modules/babel-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":["/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License.  You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, ViewChild, ChangeDetectorRef } from '@angular/core';\nimport FdsService from 'webapp/services/fds.service.js';\nimport { FdsAnimations } from '@nifi-fds/core';\n/**\n * Fds constructor.\n *\n * @param fdsService            The fds service.\n * @param changeDetectorRef     The change detector ref.\n * @constructor\n */\n\nfunction Fds(fdsService, changeDetectorRef) {\n  this.fdsService = fdsService;\n  this.cd = changeDetectorRef;\n}\n\nFds.prototype = {\n  constructor: Fds,\n\n  /**\n   * Initialize the component\n   */\n  ngOnInit: function ngOnInit() {\n    this.fdsService.sidenav = this.sidenav; //ngCore.ViewChild\n  },\n\n  /**\n   * Since the child views are updating the fdsService values that are used to display\n   * the breadcrumbs in this component's view we need to manually detect changes at the correct\n   * point in the lifecycle.\n   */\n  ngAfterViewChecked: function ngAfterViewChecked() {\n    this.cd.detectChanges();\n  }\n};\nFds.annotations = [new Component({\n  selector: 'fds-app',\n  template: require('./fds.html'),\n  queries: {\n    sidenav: new ViewChild('sidenav')\n  },\n  animations: [FdsAnimations.flyInOutAnimation]\n})];\nFds.parameters = [FdsService, ChangeDetectorRef];\nexport default Fds;"]}