{"version":3,"file":"3.chunk.js","sources":["webpack:///./src/app/components/chart-details/chart-details-wrapper.ts","webpack:///./src/app/components/chart-code/chart-code.ts","webpack:///./src/app/components/chart-description/chart-description.ts","webpack:///./src/app/components/chart-details/chart-details.ts","webpack:///./src/app/components/chart-code/chart-code.css","webpack:///./src/app/components/chart-details/chart-details-wrapper.css","webpack:///./src/app/components/chart-code/chart-code.html","webpack:///./src/app/components/chart-code/chart-code.css?be25","webpack:///./src/app/components/chart-details/chart-details-wrapper.css?7917","webpack:///./src/app/components/chart-details/chart-details.module.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CommonService } from \"../../shared/common.service\";\r\nimport { EntryComponents } from './entry-components';\r\n\r\n@Component({\r\n    selector: 'chart-details-wrapper',\r\n    styles: [require('./chart-details-wrapper.css')],\r\n    template: `<div class=\"wrapper\">\r\n                <h2>{{chartType}}</h2>\r\n                <div>\r\n                  <chart-details [componentData]=\"componentData\"></chart-details>\r\n                  <chart-description></chart-description>\r\n                </div>\r\n                <chart-code></chart-code>\r\n              </div>\r\n              `\r\n\r\n})\r\nexport class ChartDetailsWrapper implements OnInit {\r\n    componentData = null;\r\n    chartType: string;\r\n    entryComponents: EntryComponents = new EntryComponents();\r\n\r\n    constructor(private router: Router,\r\n        private route: ActivatedRoute,\r\n        private commonService: CommonService) {\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.route.params.subscribe((params) => {\r\n            if (params['chartType']) {\r\n                this.createChartComponent(params['chartType']);\r\n                this.chartType = this.commonService.getChartTypeName(params['chartType']);\r\n            }\r\n        });\r\n    }\r\n\r\n    createChartComponent(chartType) {\r\n        let component = this.entryComponents.getComponentForChartType(chartType);\r\n        this.componentData = {\r\n            component: component\r\n        };\r\n    }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// node_modules/angular2-template-loader!./~/angular2-router-loader/src!./src/app/components/chart-details/chart-details-wrapper.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { Observable } from 'rxjs/Observable';\nimport { Http, Response } from '@angular/http';\n\n@Component({\n    selector: 'chart-code',\n    template: require('./chart-code.html'),\n    styles: [require('./chart-code.css')]\n})\n\nexport class ChartCodeComponent implements OnInit {\n\n    typescriptCode: string;\n    cssCode: string;\n    htmlCode: string;\n    activeTab: string;\n\n    constructor(private router: Router,\n        private route: ActivatedRoute,\n        private http: Http) {\n    }\n\n\n    ngOnInit() {\n        this.route.params.subscribe((params) => {\n            this.populateDescription(params['chartType']);\n        });\n\n        this.activeTab = 'ts';\n    }\n\n    populateDescription(chartType) {\n        if (chartType) {\n            this.populateFileData(chartType, 'ts').subscribe(code => {\n                this.typescriptCode = code;\n                setTimeout(function name() {\n                    let w: any = window;\n                    w.SyntaxHighlighter.highlight();\n                }, 100);\n            });\n            this.populateFileData(chartType, 'css').subscribe(code => this.cssCode = code);\n            // this.populateFileData(chartType, 'html').subscribe(code => this.htmlCode = code);\n        }\n    }\n\n    populateFileData(chartType, suffix) {\n        let filePath = 'app/components/' + chartType + '/' + chartType + '.' + suffix;\n        return this.http.get(filePath).map(this.extractData);\n    }\n\n    private extractData(res: any) {\n        return res._body;\n    }\n\n    private checkVisibility() {\n        let code;\n        switch (this.activeTab) {\n            case 'ts':\n                code = this.typescriptCode;\n                break;\n            case 'css':\n                code = this.cssCode;\n                break;\n            case 'html':\n                code = this.htmlCode;\n                break;\n            default:\n                code = '';\n        }\n\n        return (!code || code.trim() === '');\n    }\n\n    showTab(tab) {\n        this.activeTab = tab;\n    }\n\n    isCurrentTab(tab) {\n        return this.activeTab === tab;\n    }\n\n    copyToClipboard(event) {\n        let target = event.target || event.srcElement || event.currentTarget;\n        let textarea: any = document.getElementById('code-content');\n        let code: string = '';\n\n        switch (this.activeTab) {\n            case 'ts':\n                code = this.typescriptCode;\n                break;\n            case 'css':\n                code = this.cssCode;\n                break;\n            case 'html':\n                code = this.htmlCode;\n        }\n\n        target.innerHTML = 'COPIED!';\n        textarea.innerHTML = code;\n        textarea.select();\n\n        try {\n            document.execCommand('copy');\n        } catch (e) {\n            console.error(e);\n        }\n    }\n\n    blurAction(event) {\n        let target = event.target || event.srcElement || event.currentTarget;\n        target.innerHTML = 'COPY CODE';\n    }\n}\n\n\n// WEBPACK FOOTER //\n// node_modules/angular2-template-loader!./~/angular2-router-loader/src!./src/app/components/chart-code/chart-code.ts","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { Http } from '@angular/http';\r\nimport { CommonService } from '../../shared/common.service';\r\n\r\n\r\n@Component({\r\n    selector: 'chart-description',\r\n    template: `<h3>About the graph</h3> \r\n                <div>{{description}}</div>\r\n              `\r\n})\r\n\r\nexport class ChartDescriptionComponent implements OnInit {\r\n\r\n    description: string;\r\n\r\n    constructor(private route: ActivatedRoute,\r\n        private commonService: CommonService) {\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.route.params.subscribe((params) => {\r\n            this.description = this.commonService.getChartDescription(params['chartType']);\r\n        });\r\n\r\n    }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// node_modules/angular2-template-loader!./~/angular2-router-loader/src!./src/app/components/chart-description/chart-description.ts","import {\r\n    Component,\r\n    ViewContainerRef,\r\n    ViewChild,\r\n    ReflectiveInjector,\r\n    ComponentFactoryResolver,\r\n    Input\r\n} from '@angular/core';\r\n\r\nimport { entryList } from './entry-components';\r\n\r\n@Component({\r\n    selector: 'chart-details',\r\n    entryComponents: [\r\n        ...entryList\r\n    ],\r\n    template: `<div #dynamicComponentContainer></div>`\r\n})\r\n\r\nexport default class ChartDetailsComponent {\r\n    currentComponent = null;\r\n    @ViewChild('dynamicComponentContainer', { read: ViewContainerRef }) dynamicComponentContainer: ViewContainerRef;\r\n\r\n    constructor(private resolver: ComponentFactoryResolver) { }\r\n\r\n    // component: Class for the component you want to create\r\n    // inputs: An object with key/value pairs mapped to input name/input value\r\n    @Input() set componentData(data: { component: any }) {\r\n        if (!data) {\r\n            return;\r\n        }\r\n        // We create an injector out of the data we want to pass down and this components injector\r\n        let injector = ReflectiveInjector.fromResolvedProviders([], this.dynamicComponentContainer.parentInjector);\r\n\r\n        // We create a factory out of the component we want to create\r\n        let factory = this.resolver.resolveComponentFactory(data.component);\r\n\r\n        // We create the component using the factory and the injector\r\n        let component = factory.create(injector);\r\n\r\n        // We insert the component into the dom container\r\n        this.dynamicComponentContainer.insert(component.hostView);\r\n\r\n        // We can destroy the old component is we like by calling destroy\r\n        if (this.currentComponent) {\r\n            this.currentComponent.destroy();\r\n        }\r\n\r\n        this.currentComponent = component;\r\n    }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// node_modules/angular2-template-loader!./~/angular2-router-loader/src!./src/app/components/chart-details/chart-details.ts","exports = module.exports = require(\"./../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".nav-pills li {\\n    cursor: pointer;\\n}\\n\\n.tab-content {\\n    position: relative;\\n}\\n\\n.tab-content pre {\\n    background: #FFFFFF;\\n}\\n\\n.copy-to-clipboard {\\n    position: absolute;\\n    right: 20px;\\n    z-index: 2;\\n    top: 20px;\\n    width: 110px;\\n}\\n\\n.code-content {\\n    overflow: hidden;\\n    height: 0;\\n    border: 1px solid #f8f8f8;\\n}\\n\\n.button {\\n    background: white;\\n    border: 1px solid #AAAAAA;\\n    border-radius: 2px;\\n    padding: 6px 10px;\\n}\\n\\n.button:hover {\\n    background: #AAAAAA;\\n}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./src/app/components/chart-code/chart-code.css\n// module id = 354\n// module chunks = 3","exports = module.exports = require(\"./../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"chart-details, chart-description {\\n    display: inline-block;\\n    vertical-align: top;\\n    line-height: 2.2;\\n    width: 50%;\\n}\\n\\nchart-description {\\n    width: 40%;\\n    padding-left: 20px;\\n}\\n.wrapper {\\n    background: #f8f8f8;\\n    padding: 20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./src/app/components/chart-details/chart-details-wrapper.css\n// module id = 355\n// module chunks = 3","module.exports = \"<div>\\n    <h3>Code</h3>\\n    <ul class=\\\"nav nav-pills\\\">\\n        <li (click)=\\\"showTab('ts')\\\" [ngClass]=\\\"{'active': isCurrentTab('ts')}\\\"><a data-toggle=\\\"pill\\\">Typescript</a></li>\\n        <li (click)=\\\"showTab('css')\\\" [ngClass]=\\\"{'active': isCurrentTab('css')}\\\"><a data-toggle=\\\"pill\\\">CSS</a></li>\\n        <!--<li (click)=\\\"showTab('html')\\\" [ngClass]=\\\"{'active': isCurrentTab('html')}\\\"><a data-toggle=\\\"pill\\\">HTML</a></li>-->\\n    </ul>\\n    <br>\\n    <div class=\\\"tab-content\\\">\\n        <button class=\\\"button copy-to-clipboard\\\" (mousedown)=\\\"copyToClipboard($event)\\\" (blur)=\\\"blurAction($event)\\\" [hidden]=\\\"checkVisibility()\\\">COPY CODE</button>\\n        <div class='code-wrapper' [hidden]=\\\"!isCurrentTab('ts')\\\">\\n            <pre id=\\\"ts\\\" class=\\\"brush: js\\\">{{typescriptCode}}</pre>\\n        </div>\\n        <div class='code-wrapper' [hidden]=\\\"!isCurrentTab('css')\\\">\\n            <pre id=\\\"css\\\">{{cssCode}}</pre>\\n        </div>\\n        <div class='code-wrapper' [hidden]=\\\"!isCurrentTab('html')\\\">\\n            <pre id=\\\"html\\\">{{htmlCode}}</pre>\\n        </div>\\n        <div [hidden]=\\\"!isCurrentTab('customize')\\\">\\n\\n        </div>\\n    </div>\\n\\n    <textarea id=\\\"code-content\\\" class=\\\"code-content\\\"></textarea>\\n</div>\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/chart-code/chart-code.html\n// module id = 367\n// module chunks = 3","\n        var result = require(\"!!./../../../../node_modules/css-loader/index.js!./chart-code.css\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/chart-code/chart-code.css\n// module id = 372\n// module chunks = 3","\n        var result = require(\"!!./../../../../node_modules/css-loader/index.js!./chart-details-wrapper.css\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/chart-details/chart-details-wrapper.css\n// module id = 373\n// module chunks = 3","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { ChartDetailsWrapper } from './chart-details-wrapper';\nimport { ChartCodeComponent } from '../chart-code/chart-code';\nimport { ChartDescriptionComponent } from '../chart-description/chart-description';\nimport ChartDetailsComponent from './chart-details';\nimport { entryList } from './entry-components';\nconst routes: Routes = [\n    { path: ':chartType', component: ChartDetailsWrapper }\n];\n\n@NgModule({\n    imports: [\n        RouterModule.forChild(routes)\n    ],\n    exports: [],\n    declarations: [\n        ...entryList,\n        ChartDetailsWrapper,\n        ChartDetailsComponent,\n        ChartCodeComponent,\n        ChartDescriptionComponent\n    ],\n    providers: [],\n})\nexport default class ChartDetailsModule { }\n\n\n\n// WEBPACK FOOTER //\n// node_modules/angular2-template-loader!./~/angular2-router-loader/src!./src/app/components/chart-details/chart-details.module.ts"],"mappings":";;;;;;;;;;;;;;;AAAA;AAEA;AACA;AACA;AAgBA;AAKA;AAAA;AACA;AACA;AANA;AAEA;AAKA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAtCA;AAAA;AACA;AACA;AACA;AAUA;;AAAA;AA0BA;;AAAA;AAzBA;;;;;;;;;;;;;;;;;;ACpBA;AACA;AAEA;AAQA;AAOA;AAAA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AA3GA;AAAA;AACA;AACA;AACA;AACA;;AAAA;AAwGA;;AAAA;AAtGA;;;;;;;;;;;;;;;;;;ACXA;AACA;AAEA;AAUA;AAIA;AAAA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AAEA;AApBA;AAAA;AACA;AACA;AAGA;;AAAA;AAgBA;;AAAA;AAdA;;;;;;;;;;;;;;;;;;ACbA;AASA;AAUA;AAIA;AAAA;AAHA;AAGA;AAIA;AAFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;;;AAAA;AA5BA;AAAA;;AAAA;AAMA;AAAA;;;AAAA;AAhBA;AAAA;AACA;AACA;AAGA;AACA;;AAAA;AAiCA;;AAAA;AA/BA;AA+BA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACRA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBA;AAAA;AAAA;AAdA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;","sourceRoot":""}