dgk/django-business-logic

View on GitHub
business_logic/static/business_logic/main.bundle.map

Summary

Maintainability
Test Coverage

TODO found
Open

{"version":3,"sources":["webpack:///main.bundle.js","webpack:///./src/app/backend.service.ts","webpack:///./src/app/empty.component.ts","webpack:///./src/app/index.ts","webpack:///./src/app/program-interface.component.ts","webpack:///./src/app/program-version.component.ts","webpack:///./src/app/program.component.ts","webpack:///./src/app/version-editor/blockly-toolset.html","webpack:///./src/app/version-editor/blockly.component.ts","webpack:///./src/app/version-editor/version-editor.component.ts","webpack:///./src/app/version-editor/version-editor.html","webpack:///./src/main.browser.ts","webpack:///./src/platform/browser/directives.ts","webpack:///./src/platform/browser/index.ts","webpack:///./src/platform/browser/pipes.ts","webpack:///./src/platform/browser/providers.ts","webpack:///./src/platform/environment.ts"],"names":["webpackJsonp","92","module","exports","__webpack_require__","core_1","http_1","BackendService","http","this","baseUrl","programInterfaceUrl","programVersionUrl","newVersionUrl","programUrl","prototype","listProgramInterfaces","headers","Headers","Content-Type","options","RequestOptions","get","map","extractData","listProgramVersions","programId","urlSearchParams","URLSearchParams","append","String","search","listPrograms","programInterfaceId","getProgramVersionById","id","saveVersion","version","post","JSON","stringify","res","json","__decorate","Injectable","__metadata","Http","194","EmptyComponent","Component","selector","template","_a","raw","432","backend_service_1","APP_PROVIDERS","program_interface_component_1","AppComponent","ProgramInterfaceComponent","433","router_deprecated_1","empty_component_1","program_component_1","router","backend","ngOnInit","_this","subscribe","envelope","programInterfaces","results","RouteConfig","path","name","component","useAsDefault","ProgramComponent","Router","434","version_editor_component_ts_1","ProgramVersionComponent","routeParams","Number","parseInt","programVersions","VersionEditorComponent","RouteParams","435","program_version_component_1","programs","446","436","BlocklyComponent","style","width","height","save","EventEmitter","ngAfterViewInit","workspace","Blockly","inject","blocklyDiv","nativeElement","toolbox","trashcan","sounds","initXml","xml","ngOnChanges","changes","currentValue","onSave","emit","getBlocklyXml","Xml","workspaceToDom","xmlText","domToText","clear","textToDom","domToWorkspace","ViewChild","Object","Input","Output","defineProperty","value","default","437","blockly_component_1","programVersionId","onXmlSaved","navigate","directives","447","0","platform_browser_dynamic_1","browser_1","environment_1","app_1","bootstrap","PROVIDERS","concat","ENV_PROVIDERS","DIRECTIVES","PIPES","catch","err","console","error","438","APPLICATION_DIRECTIVES","ROUTER_DIRECTIVES","slice","provide","PLATFORM_DIRECTIVES","multi","useValue","439","__export","m","p","hasOwnProperty","440","APPLICATION_PIPES","PLATFORM_PIPES","441","common_1","APPLICATION_PROVIDERS","FORM_PROVIDERS","HTTP_PROVIDERS","ROUTER_PROVIDERS","LocationStrategy","useClass","HashLocationStrategy","442","enableProdMode"],"mappings":"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","file":"main.bundle.js","sourcesContent":["webpackJsonp([2],{\n\n/***/ 92:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t/**\r\n\t * Created by Infirex on 5/27/2016.\r\n\t */\r\n\tvar core_1 = __webpack_require__(1);\r\n\tvar http_1 = __webpack_require__(177);\r\n\tvar BackendService = (function () {\r\n\t    function BackendService(http) {\r\n\t        this.http = http;\r\n\t        this.baseUrl = '/business-logic/rest';\r\n\t        this.programInterfaceUrl = this.baseUrl + \"/program-interface\";\r\n\t        this.programVersionUrl = this.baseUrl + \"/program-version\";\r\n\t        this.newVersionUrl = this.programVersionUrl + \"/new\";\r\n\t        this.programUrl = this.baseUrl + \"/program\";\r\n\t    }\r\n\t    BackendService.prototype.listProgramInterfaces = function () {\r\n\t        var headers = new http_1.Headers({ 'Content-Type': 'application/json' });\r\n\t        var options = new http_1.RequestOptions({ headers: headers });\r\n\t        return this.http.get(this.programInterfaceUrl, options)\r\n\t            .map(this.extractData);\r\n\t    };\r\n\t    BackendService.prototype.listProgramVersions = function (programId) {\r\n\t        var headers = new http_1.Headers({ 'Content-Type': 'application/json' });\r\n\t        var urlSearchParams = new http_1.URLSearchParams();\r\n\t        urlSearchParams.append('program', String(programId));\r\n\t        var options = new http_1.RequestOptions({ headers: headers, search: urlSearchParams });\r\n\t        return this.http.get(\"\" + this.programVersionUrl, options)\r\n\t            .map(this.extractData);\r\n\t    };\r\n\t    BackendService.prototype.listPrograms = function (programInterfaceId) {\r\n\t        var headers = new http_1.Headers({ 'Content-Type': 'application/json' });\r\n\t        var options = new http_1.RequestOptions({ headers: headers });\r\n\t        return this.http.get(\"\" + this.programUrl, options)\r\n\t            .map(this.extractData);\r\n\t    };\r\n\t    BackendService.prototype.getProgramVersionById = function (id) {\r\n\t        var headers = new http_1.Headers({ 'Content-Type': 'application/json' });\r\n\t        var options = new http_1.RequestOptions({ headers: headers });\r\n\t        return this.http.get(this.programVersionUrl + \"/\" + id, options)\r\n\t            .map(this.extractData);\r\n\t    };\r\n\t    BackendService.prototype.saveVersion = function (version) {\r\n\t        var headers = new http_1.Headers({ 'Content-Type': 'application/json' });\r\n\t        var options = new http_1.RequestOptions({ headers: headers });\r\n\t        return this.http.post(this.newVersionUrl, JSON.stringify(version), options)\r\n\t            .map(this.extractData);\r\n\t    };\r\n\t    BackendService.prototype.extractData = function (res) {\r\n\t        return res.json();\r\n\t    };\r\n\t    BackendService = __decorate([\r\n\t        core_1.Injectable(), \r\n\t        __metadata('design:paramtypes', [http_1.Http])\r\n\t    ], BackendService);\r\n\t    return BackendService;\r\n\t}());\r\n\texports.BackendService = BackendService;\r\n\n\n/***/ },\n\n/***/ 194:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\r\n\t * Created by Infirex on 5/27/2016.\r\n\t */\r\n\t\"use strict\";\r\n\tvar core_1 = __webpack_require__(1);\r\n\tvar EmptyComponent = (function () {\r\n\t    function EmptyComponent() {\r\n\t    }\r\n\t    EmptyComponent = __decorate([\r\n\t        core_1.Component({\r\n\t            selector: 'empty',\r\n\t            template: (_a = [\"I'm empty\"], _a.raw = [\"I'm empty\"], String.raw(_a))\r\n\t        }), \r\n\t        __metadata('design:paramtypes', [])\r\n\t    ], EmptyComponent);\r\n\t    return EmptyComponent;\r\n\t    var _a;\r\n\t}());\r\n\texports.EmptyComponent = EmptyComponent;\r\n\n\n/***/ },\n\n/***/ 432:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\r\n\t * Created by Infirex on 5/27/2016.\r\n\t */\r\n\t\"use strict\";\r\n\tvar backend_service_1 = __webpack_require__(92);\r\n\t// Application wide providers\r\n\texports.APP_PROVIDERS = [\r\n\t    backend_service_1.BackendService\r\n\t];\r\n\tvar program_interface_component_1 = __webpack_require__(433);\r\n\texports.AppComponent = program_interface_component_1.ProgramInterfaceComponent;\r\n\n\n/***/ },\n\n/***/ 433:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t/**\r\n\t * Created by Infirex on 5/27/2016.\r\n\t */\r\n\tvar core_1 = __webpack_require__(1);\r\n\tvar router_deprecated_1 = __webpack_require__(65);\r\n\tvar empty_component_1 = __webpack_require__(194);\r\n\tvar backend_service_1 = __webpack_require__(92);\r\n\tvar program_component_1 = __webpack_require__(435);\r\n\tvar ProgramInterfaceComponent = (function () {\r\n\t    function ProgramInterfaceComponent(router, backend) {\r\n\t        this.router = router;\r\n\t        this.backend = backend;\r\n\t    }\r\n\t    ProgramInterfaceComponent.prototype.ngOnInit = function () {\r\n\t        var _this = this;\r\n\t        this.backend.listProgramInterfaces().subscribe(function (envelope) { return _this.programInterfaces = envelope.results; });\r\n\t    };\r\n\t    ProgramInterfaceComponent = __decorate([\r\n\t        core_1.Component({\r\n\t            selector: 'program-interface',\r\n\t            template: \"\\n <ul>\\n  <li *ngFor=\\\"let programInterface of programInterfaces\\\">\\n       <a [routerLink]=\\\"['Program',{programInterfaceId:programInterface.id}]\\\">\\n       {{programInterface.title}}\\n       </a>\\n  </li>\\n</ul>\\n\\n<main>\\n  <router-outlet></router-outlet>\\n</main>\\n  \"\r\n\t        }),\r\n\t        router_deprecated_1.RouteConfig([\r\n\t            {\r\n\t                path: '/',\r\n\t                name: 'ProgramInterfaceEmpty',\r\n\t                component: empty_component_1.EmptyComponent,\r\n\t                useAsDefault: true\r\n\t            },\r\n\t            {\r\n\t                path: '/interface/:programInterfaceId/...',\r\n\t                name: 'Program',\r\n\t                component: program_component_1.ProgramComponent\r\n\t            }]), \r\n\t        __metadata('design:paramtypes', [router_deprecated_1.Router, backend_service_1.BackendService])\r\n\t    ], ProgramInterfaceComponent);\r\n\t    return ProgramInterfaceComponent;\r\n\t}());\r\n\texports.ProgramInterfaceComponent = ProgramInterfaceComponent;\r\n\n\n/***/ },\n\n/***/ 434:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t/**\r\n\t * Created by Infirex on 5/27/2016.\r\n\t */\r\n\tvar core_1 = __webpack_require__(1);\r\n\tvar router_deprecated_1 = __webpack_require__(65);\r\n\tvar empty_component_1 = __webpack_require__(194);\r\n\tvar backend_service_1 = __webpack_require__(92);\r\n\tvar version_editor_component_ts_1 = __webpack_require__(437);\r\n\tvar ProgramVersionComponent = (function () {\r\n\t    function ProgramVersionComponent(router, backend, routeParams) {\r\n\t        this.router = router;\r\n\t        this.backend = backend;\r\n\t        this.routeParams = routeParams;\r\n\t    }\r\n\t    ProgramVersionComponent.prototype.ngOnInit = function () {\r\n\t        var _this = this;\r\n\t        this.programId = Number.parseInt(this.routeParams.get('programId'));\r\n\t        this.backend.listProgramVersions(this.programId).subscribe(function (envelope) { return _this.programVersions = envelope.results; });\r\n\t    };\r\n\t    ProgramVersionComponent = __decorate([\r\n\t        core_1.Component({\r\n\t            selector: 'program-version',\r\n\t            template: \"\\n  programId = {{programId}}\\n    <ul>\\n        <li *ngFor=\\\"let programVersion of programVersions\\\">\\n            <a [routerLink]=\\\"['Program',{programVersionId:programVersion.id}]\\\">\\n            {{programVersion.title}}</a>\\n        </li>\\n    </ul>\\n\\n  <router-outlet></router-outlet>\\n  \"\r\n\t        }),\r\n\t        router_deprecated_1.RouteConfig([\r\n\t            {\r\n\t                path: '/',\r\n\t                name: 'ProgramInterfaceEmpty',\r\n\t                component: empty_component_1.EmptyComponent,\r\n\t                useAsDefault: true\r\n\t            },\r\n\t            {\r\n\t                path: '/version/:programVersionId',\r\n\t                name: 'Program',\r\n\t                component: version_editor_component_ts_1.VersionEditorComponent\r\n\t            }]), \r\n\t        __metadata('design:paramtypes', [router_deprecated_1.Router, backend_service_1.BackendService, router_deprecated_1.RouteParams])\r\n\t    ], ProgramVersionComponent);\r\n\t    return ProgramVersionComponent;\r\n\t}());\r\n\texports.ProgramVersionComponent = ProgramVersionComponent;\r\n\n\n/***/ },\n\n/***/ 435:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t/**\r\n\t * Created by Infirex on 5/27/2016.\r\n\t */\r\n\tvar core_1 = __webpack_require__(1);\r\n\tvar router_deprecated_1 = __webpack_require__(65);\r\n\tvar empty_component_1 = __webpack_require__(194);\r\n\tvar backend_service_1 = __webpack_require__(92);\r\n\tvar program_version_component_1 = __webpack_require__(434);\r\n\tvar ProgramComponent = (function () {\r\n\t    function ProgramComponent(router, backend, routeParams) {\r\n\t        this.router = router;\r\n\t        this.backend = backend;\r\n\t        this.routeParams = routeParams;\r\n\t    }\r\n\t    ProgramComponent.prototype.ngOnInit = function () {\r\n\t        var _this = this;\r\n\t        this.programInterfaceId = Number.parseInt(this.routeParams.get('programInterfaceId'));\r\n\t        this.backend.listPrograms(this.programInterfaceId)\r\n\t            .subscribe(function (envelope) { return _this.programs = envelope.results; });\r\n\t    };\r\n\t    ProgramComponent = __decorate([\r\n\t        core_1.Component({\r\n\t            selector: 'program',\r\n\t            template: \"\\n  programInterfaceId = {{programInterfaceId}}\\n    <ul>\\n        <li *ngFor=\\\"let program of programs\\\">\\n            <a [routerLink]=\\\"['ProgramVersion',{programId:program.id}]\\\">{{program.title}}</a>\\n        </li>\\n    </ul>\\n\\n  <router-outlet></router-outlet>\\n  \"\r\n\t        }),\r\n\t        router_deprecated_1.RouteConfig([\r\n\t            {\r\n\t                path: '/',\r\n\t                name: 'ProgramEmpty',\r\n\t                component: empty_component_1.EmptyComponent,\r\n\t                useAsDefault: true\r\n\t            },\r\n\t            {\r\n\t                path: '/program/:programId/...',\r\n\t                name: 'ProgramVersion',\r\n\t                component: program_version_component_1.ProgramVersionComponent\r\n\t            }]), \r\n\t        __metadata('design:paramtypes', [router_deprecated_1.Router, backend_service_1.BackendService, router_deprecated_1.RouteParams])\r\n\t    ], ProgramComponent);\r\n\t    return ProgramComponent;\r\n\t}());\r\n\texports.ProgramComponent = ProgramComponent;\r\n\n\n/***/ },\n\n/***/ 446:\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<category name=\\\"Logic\\\">\\n  <category name=\\\"If\\\">\\n    <block type=\\\"controls_if\\\"></block>\\n    <block type=\\\"controls_if\\\">\\n      <mutation else=\\\"1\\\"></mutation>\\n    </block>\\n    <block type=\\\"controls_if\\\">\\n      <mutation elseif=\\\"1\\\" else=\\\"1\\\"></mutation>\\n    </block>\\n  </category>\\n  <category name=\\\"Boolean\\\">\\n    <block type=\\\"logic_compare\\\"></block>\\n    <block type=\\\"logic_operation\\\"></block>\\n    <block type=\\\"logic_negate\\\"></block>\\n    <block type=\\\"logic_boolean\\\"></block>\\n    <block type=\\\"logic_null\\\"></block>\\n    <block type=\\\"logic_ternary\\\"></block>\\n  </category>\\n</category>\\n<category name=\\\"Loops\\\">\\n  <block type=\\\"controls_repeat_ext\\\">\\n    <value name=\\\"TIMES\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">10</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"controls_whileUntil\\\"></block>\\n  <block type=\\\"controls_for\\\">\\n    <field name=\\\"VAR\\\">i</field>\\n    <value name=\\\"FROM\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n    <value name=\\\"TO\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">10</field>\\n      </block>\\n    </value>\\n    <value name=\\\"BY\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"controls_forEach\\\"></block>\\n  <block type=\\\"controls_flow_statements\\\"></block>\\n</category>\\n<category name=\\\"Math\\\">\\n  <block type=\\\"math_number\\\"></block>\\n  <block type=\\\"math_arithmetic\\\"></block>\\n  <block type=\\\"math_single\\\"></block>\\n  <block type=\\\"math_trig\\\"></block>\\n  <block type=\\\"math_constant\\\"></block>\\n  <block type=\\\"math_number_property\\\"></block>\\n  <block type=\\\"math_change\\\">\\n    <value name=\\\"DELTA\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"math_round\\\"></block>\\n  <block type=\\\"math_on_list\\\"></block>\\n  <block type=\\\"math_modulo\\\"></block>\\n  <block type=\\\"math_constrain\\\">\\n    <value name=\\\"LOW\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n    <value name=\\\"HIGH\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">100</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"math_random_int\\\">\\n    <value name=\\\"FROM\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n    <value name=\\\"TO\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">100</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"math_random_float\\\"></block>\\n</category>\\n<category name=\\\"Lists\\\">\\n  <block type=\\\"lists_create_empty\\\"></block>\\n  <block type=\\\"lists_create_with\\\"></block>\\n  <block type=\\\"lists_repeat\\\">\\n    <value name=\\\"NUM\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">5</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"lists_length\\\"></block>\\n  <block type=\\\"lists_isEmpty\\\"></block>\\n  <block type=\\\"lists_indexOf\\\"></block>\\n  <block type=\\\"lists_getIndex\\\"></block>\\n  <block type=\\\"lists_setIndex\\\"></block>\\n</category>\\n<category name=\\\"Variables\\\" custom=\\\"VARIABLE\\\"></category>\\n<category name=\\\"Functions\\\" custom=\\\"PROCEDURE\\\"></category>\\n\"\n\n/***/ },\n\n/***/ 436:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t/**\r\n\t * Created by Infirex on 6/1/2016.\r\n\t */\r\n\tvar core_1 = __webpack_require__(1);\r\n\tvar BlocklyComponent = (function () {\r\n\t    function BlocklyComponent() {\r\n\t        this.style = {\r\n\t            width: '100%',\r\n\t            height: '900px'\r\n\t        };\r\n\t        this.save = new core_1.EventEmitter();\r\n\t    }\r\n\t    BlocklyComponent.prototype.ngAfterViewInit = function () {\r\n\t        this.workspace = Blockly.inject(this.blocklyDiv.nativeElement, {\r\n\t            toolbox: this.toolbox.nativeElement,\r\n\t            trashcan: true,\r\n\t            sounds: false\r\n\t        });\r\n\t        this.initXml(this.xml);\r\n\t    };\r\n\t    BlocklyComponent.prototype.ngOnChanges = function (changes) {\r\n\t        if (changes.xml && this.workspace) {\r\n\t            this.initXml(changes.xml.currentValue);\r\n\t        }\r\n\t    };\r\n\t    BlocklyComponent.prototype.onSave = function () {\r\n\t        this.save.emit(this.getBlocklyXml());\r\n\t    };\r\n\t    BlocklyComponent.prototype.getBlocklyXml = function () {\r\n\t        var xml = Blockly.Xml.workspaceToDom(this.workspace);\r\n\t        var xmlText = Blockly.Xml.domToText(xml);\r\n\t        return xmlText;\r\n\t    };\r\n\t    BlocklyComponent.prototype.initXml = function (xmlText) {\r\n\t        this.workspace.clear();\r\n\t        var xml = Blockly.Xml.textToDom(xmlText);\r\n\t        Blockly.Xml.domToWorkspace(xml, this.workspace);\r\n\t    };\r\n\t    __decorate([\r\n\t        core_1.ViewChild('blockly'), \r\n\t        __metadata('design:type', Object)\r\n\t    ], BlocklyComponent.prototype, \"blocklyDiv\", void 0);\r\n\t    __decorate([\r\n\t        core_1.ViewChild('toolbox'), \r\n\t        __metadata('design:type', Object)\r\n\t    ], BlocklyComponent.prototype, \"toolbox\", void 0);\r\n\t    __decorate([\r\n\t        core_1.Input(), \r\n\t        __metadata('design:type', Object)\r\n\t    ], BlocklyComponent.prototype, \"xml\", void 0);\r\n\t    __decorate([\r\n\t        core_1.Output(), \r\n\t        __metadata('design:type', Object)\r\n\t    ], BlocklyComponent.prototype, \"save\", void 0);\r\n\t    BlocklyComponent = __decorate([\r\n\t        core_1.Component({\r\n\t            selector: 'blockly',\r\n\t            template: \"\\n<xml #toolbox style=\\\"display: none\\\">\\n\" + __webpack_require__(446) + \"\\n</xml>\\n<button (click)=\\\"onSave()\\\">\\n  Save\\n</button>\\n<div #blockly [ngStyle]=\\\"style\\\"></div>\\n\"\r\n\t        }), \r\n\t        __metadata('design:paramtypes', [])\r\n\t    ], BlocklyComponent);\r\n\t    return BlocklyComponent;\r\n\t}());\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\texports.default = BlocklyComponent;\r\n\n\n/***/ },\n\n/***/ 437:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\r\n\t * Created by Infirex on 5/27/2016.\r\n\t */\r\n\t\"use strict\";\r\n\tvar core_1 = __webpack_require__(1);\r\n\tvar router_deprecated_1 = __webpack_require__(65);\r\n\tvar backend_service_1 = __webpack_require__(92);\r\n\tvar blockly_component_1 = __webpack_require__(436);\r\n\tvar VersionEditorComponent = (function () {\r\n\t    function VersionEditorComponent(router, backend, routeParams) {\r\n\t        this.router = router;\r\n\t        this.backend = backend;\r\n\t        this.routeParams = routeParams;\r\n\t    }\r\n\t    VersionEditorComponent.prototype.ngOnInit = function () {\r\n\t        var _this = this;\r\n\t        this.programVersionId = Number.parseInt(this.routeParams.get('programVersionId'));\r\n\t        this.backend.getProgramVersionById(this.programVersionId)\r\n\t            .subscribe(function (version) { return _this.version = version; });\r\n\t    };\r\n\t    VersionEditorComponent.prototype.onXmlSaved = function (xmlText) {\r\n\t        var _this = this;\r\n\t        this.version.xml = xmlText;\r\n\t        this.backend.saveVersion(this.version)\r\n\t            .subscribe(function (version) { return _this.router.navigate(['Version', { programVersionId: version.id }]); });\r\n\t    };\r\n\t    VersionEditorComponent = __decorate([\r\n\t        core_1.Component({\r\n\t            selector: 'program-editor',\r\n\t            template: __webpack_require__(447),\r\n\t            directives: [blockly_component_1.default]\r\n\t        }), \r\n\t        __metadata('design:paramtypes', [router_deprecated_1.Router, backend_service_1.BackendService, router_deprecated_1.RouteParams])\r\n\t    ], VersionEditorComponent);\r\n\t    return VersionEditorComponent;\r\n\t}());\r\n\texports.VersionEditorComponent = VersionEditorComponent;\r\n\n\n/***/ },\n\n/***/ 447:\n/***/ function(module, exports) {\n\n\tmodule.exports = \"programVersionId = {{programVersionId}}\\n\\n<blockly *ngIf=\\\"version\\\" [xml]=\\\"version.xml\\\" (save)=\\\"onXmlSaved($event)\\\">\\n\\n</blockly>\\n\"\n\n/***/ },\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t/*\r\n\t * Providers provided by Angular\r\n\t */\r\n\tvar platform_browser_dynamic_1 = __webpack_require__(286);\r\n\t/*\r\n\t * Platform and Environment\r\n\t * our providers/directives/pipes\r\n\t */\r\n\tvar browser_1 = __webpack_require__(439);\r\n\tvar environment_1 = __webpack_require__(442);\r\n\t/*\r\n\t * App Component\r\n\t * our top level component that holds all of our components\r\n\t */\r\n\tvar app_1 = __webpack_require__(432);\r\n\t/*\r\n\t * Bootstrap our Angular app with a top level component `App` and inject\r\n\t * our Services and Providers into Angular's dependency injection\r\n\t */\r\n\t// export function main(initialHmrState?: any): Promise<any> {\r\n\t/* return */ platform_browser_dynamic_1.bootstrap(app_1.AppComponent, browser_1.PROVIDERS.concat(environment_1.ENV_PROVIDERS, browser_1.DIRECTIVES, browser_1.PIPES, app_1.APP_PROVIDERS))\r\n\t    .catch(function (err) { return console.error(err); });\r\n\t// }\r\n\t/*\r\n\t * Vendors\r\n\t * For vendors for example jQuery, Lodash, angular2-jwt just import them anywhere in your app\r\n\t * You can also import them in vendors to ensure that they are bundled in one file\r\n\t * Also see custom-typings.d.ts as you also need to do `typings install x` where `x` is your module\r\n\t */\r\n\n\n/***/ },\n\n/***/ 438:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\r\n\t * These are globally available directives in any template\r\n\t */\r\n\t\"use strict\";\r\n\tvar core_1 = __webpack_require__(1);\r\n\t// Angular 2 Router\r\n\tvar router_deprecated_1 = __webpack_require__(65);\r\n\t// application_directives: directives that are global through out the application\r\n\texports.APPLICATION_DIRECTIVES = router_deprecated_1.ROUTER_DIRECTIVES.slice();\r\n\texports.DIRECTIVES = [\r\n\t    { provide: core_1.PLATFORM_DIRECTIVES, multi: true, useValue: exports.APPLICATION_DIRECTIVES }\r\n\t];\r\n\n\n/***/ },\n\n/***/ 439:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tfunction __export(m) {\r\n\t    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n\t}\r\n\t__export(__webpack_require__(438));\r\n\t__export(__webpack_require__(440));\r\n\t__export(__webpack_require__(441));\r\n\n\n/***/ },\n\n/***/ 440:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\r\n\t * These are globally available pipes in any template\r\n\t */\r\n\t\"use strict\";\r\n\tvar core_1 = __webpack_require__(1);\r\n\t// application_pipes: pipes that are global through out the application\r\n\texports.APPLICATION_PIPES = [];\r\n\texports.PIPES = [\r\n\t    { provide: core_1.PLATFORM_PIPES, multi: true, useValue: exports.APPLICATION_PIPES }\r\n\t];\r\n\n\n/***/ },\n\n/***/ 441:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\r\n\t * These are globally available services in any component or any other service\r\n\t */\r\n\t\"use strict\";\r\n\t// Angular 2\r\n\tvar common_1 = __webpack_require__(51);\r\n\t// Angular 2 Http\r\n\tvar http_1 = __webpack_require__(177);\r\n\t// Angular 2 Router\r\n\tvar router_deprecated_1 = __webpack_require__(65);\r\n\t/*\r\n\t* Application Providers/Directives/Pipes\r\n\t* providers/directives/pipes that only live in our browser environment\r\n\t*/\r\n\texports.APPLICATION_PROVIDERS = common_1.FORM_PROVIDERS.concat(http_1.HTTP_PROVIDERS, router_deprecated_1.ROUTER_PROVIDERS, [\r\n\t    { provide: common_1.LocationStrategy, useClass: common_1.HashLocationStrategy }\r\n\t]);\r\n\texports.PROVIDERS = exports.APPLICATION_PROVIDERS.slice();\r\n\n\n/***/ },\n\n/***/ 442:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t// Angular 2\r\n\tvar core_1 = __webpack_require__(1);\r\n\t// Environment Providers\r\n\tvar PROVIDERS = [];\r\n\tif (true) {\r\n\t    // Production\r\n\t    core_1.enableProdMode();\r\n\t    PROVIDERS = PROVIDERS.slice();\r\n\t}\r\n\telse {\r\n\t    // Development\r\n\t    PROVIDERS = PROVIDERS.slice();\r\n\t}\r\n\texports.ENV_PROVIDERS = PROVIDERS.slice();\r\n\n\n/***/ }\n\n});\n\n\n/** WEBPACK FOOTER **\n ** main.bundle.js\n **/","/**\n * Created by Infirex on 5/27/2016.\n */\nimport {Injectable} from '@angular/core';\nimport {Http, Response, Headers, RequestOptions, URLSearchParams} from '@angular/http';\n\n@Injectable()\nexport class BackendService {\n  private baseUrl = '/business-logic/rest';\n  private programInterfaceUrl = `${this.baseUrl}/program-interface`;\n  private programVersionUrl = `${this.baseUrl}/program-version`;\n  private newVersionUrl = `${this.programVersionUrl}/new`;\n  private programUrl = `${this.baseUrl}/program`;\n\n  constructor(private http: Http) {\n\n  }\n\n  listProgramInterfaces() {\n    let headers = new Headers({'Content-Type': 'application/json'});\n    let options = new RequestOptions({headers: headers});\n\n    return this.http.get(this.programInterfaceUrl, options)\n      .map(this.extractData);\n  }\n\n  listProgramVersions(programId: number) {\n    let headers = new Headers({'Content-Type': 'application/json'});\n    let urlSearchParams = new URLSearchParams();\n    urlSearchParams.append('program', String(programId));\n    let options = new RequestOptions({headers: headers, search: urlSearchParams});\n\n    return this.http.get(`${this.programVersionUrl}`, options)\n      .map(this.extractData);\n  }\n\n  listPrograms(programInterfaceId: number) {\n    let headers = new Headers({'Content-Type': 'application/json'});\n    let options = new RequestOptions({headers: headers});\n\n    return this.http.get(`${this.programUrl}`, options)\n      .map(this.extractData);\n  }\n\n  getProgramVersionById(id: number) {\n    let headers = new Headers({'Content-Type': 'application/json'});\n    let options = new RequestOptions({headers: headers});\n\n    return this.http.get(`${this.programVersionUrl}/${id}`, options)\n      .map(this.extractData);\n  }\n\n  saveVersion(version) {\n    let headers = new Headers({'Content-Type': 'application/json'});\n    let options = new RequestOptions({headers: headers});\n\n    return this.http.post(this.newVersionUrl, JSON.stringify(version), options)\n      .map(this.extractData);\n  }\n\n  private extractData(res: Response) {\n    return res.json();\n  }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/app/backend.service.ts\n **/","/**\n * Created by Infirex on 5/27/2016.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {RouteConfig, Router} from '@angular/router-deprecated';\n\n@Component({\n  selector: 'empty',\n  template: String.raw`I'm empty`\n})\nexport class EmptyComponent {\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/app/empty.component.ts\n **/","/**\n * Created by Infirex on 5/27/2016.\n */\n\nimport {BackendService} from './backend.service';\n\n// Application wide providers\nexport const APP_PROVIDERS = [\n  BackendService\n];\nexport {ProgramInterfaceComponent as AppComponent} from './program-interface.component';\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/app/index.ts\n **/","/**\n * Created by Infirex on 5/27/2016.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {RouteConfig, Router} from '@angular/router-deprecated';\nimport {EmptyComponent} from './empty.component';\nimport {BackendService} from './backend.service';\nimport {ProgramComponent} from './program.component';\n\n@Component({\n  selector: 'program-interface',\n  template: `\n <ul>\n  <li *ngFor=\"let programInterface of programInterfaces\">\n       <a [routerLink]=\"['Program',{programInterfaceId:programInterface.id}]\">\n       {{programInterface.title}}\n       </a>\n  </li>\n</ul>\n\n<main>\n  <router-outlet></router-outlet>\n</main>\n  `\n})\n@RouteConfig([\n  {\n    path: '/',\n    name: 'ProgramInterfaceEmpty',\n    component: EmptyComponent,\n    useAsDefault: true\n  },\n  {\n    path: '/interface/:programInterfaceId/...',\n    name: 'Program',\n    component: ProgramComponent\n  }])\nexport class ProgramInterfaceComponent implements OnInit {\n  private programInterfaces;\n\n  constructor(private router: Router,\n              private backend: BackendService) {\n  }\n\n\n  ngOnInit(): any {\n    this.backend.listProgramInterfaces().subscribe(\n      envelope => this.programInterfaces = envelope.results\n    );\n  }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/app/program-interface.component.ts\n **/","/**\n * Created by Infirex on 5/27/2016.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {RouteConfig, Router, RouteParams} from '@angular/router-deprecated';\nimport {EmptyComponent} from './empty.component';\nimport {BackendService} from './backend.service';\nimport {VersionEditorComponent} from './version-editor/version-editor.component.ts';\n\n@Component({\n  selector: 'program-version',\n  template: `\n  programId = {{programId}}\n    <ul>\n        <li *ngFor=\"let programVersion of programVersions\">\n            <a [routerLink]=\"['Program',{programVersionId:programVersion.id}]\">\n            {{programVersion.title}}</a>\n        </li>\n    </ul>\n\n  <router-outlet></router-outlet>\n  `\n})\n@RouteConfig([\n  {\n    path: '/',\n    name: 'ProgramInterfaceEmpty',\n    component: EmptyComponent,\n    useAsDefault: true\n  },\n  {\n    path: '/version/:programVersionId',\n    name: 'Program',\n    component: VersionEditorComponent\n  }])\nexport class ProgramVersionComponent implements OnInit {\n  public programVersions;\n  private programId: number;\n\n  constructor(private router: Router,\n              private backend: BackendService,\n              private routeParams: RouteParams) {\n  }\n\n  ngOnInit(): any {\n    this.programId = Number.parseInt(this.routeParams.get('programId'));\n    this.backend.listProgramVersions(this.programId).subscribe(\n      envelope => this.programVersions = envelope.results\n    );\n  }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/app/program-version.component.ts\n **/","/**\n * Created by Infirex on 5/27/2016.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {RouteConfig, Router, RouteParams} from '@angular/router-deprecated';\nimport {EmptyComponent} from './empty.component';\nimport {BackendService} from './backend.service';\nimport {ProgramVersionComponent} from './program-version.component';\n\n@Component({\n  selector: 'program',\n  template: `\n  programInterfaceId = {{programInterfaceId}}\n    <ul>\n        <li *ngFor=\"let program of programs\">\n            <a [routerLink]=\"['ProgramVersion',{programId:program.id}]\">{{program.title}}</a>\n        </li>\n    </ul>\n\n  <router-outlet></router-outlet>\n  `\n})\n@RouteConfig([\n  {\n    path: '/',\n    name: 'ProgramEmpty',\n    component: EmptyComponent,\n    useAsDefault: true\n  },\n  {\n    path: '/program/:programId/...',\n    name: 'ProgramVersion',\n    component: ProgramVersionComponent\n  }])\nexport class ProgramComponent implements OnInit {\n  public programs;\n  private programInterfaceId: number;\n\n  constructor(private router: Router,\n              private backend: BackendService,\n              private routeParams: RouteParams) {\n  }\n\n  ngOnInit(): any {\n    this.programInterfaceId = Number.parseInt(this.routeParams.get('programInterfaceId'));\n    this.backend.listPrograms(this.programInterfaceId)\n      .subscribe(envelope => this.programs = envelope.results);\n  }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/app/program.component.ts\n **/","module.exports = \"<category name=\\\"Logic\\\">\\n  <category name=\\\"If\\\">\\n    <block type=\\\"controls_if\\\"></block>\\n    <block type=\\\"controls_if\\\">\\n      <mutation else=\\\"1\\\"></mutation>\\n    </block>\\n    <block type=\\\"controls_if\\\">\\n      <mutation elseif=\\\"1\\\" else=\\\"1\\\"></mutation>\\n    </block>\\n  </category>\\n  <category name=\\\"Boolean\\\">\\n    <block type=\\\"logic_compare\\\"></block>\\n    <block type=\\\"logic_operation\\\"></block>\\n    <block type=\\\"logic_negate\\\"></block>\\n    <block type=\\\"logic_boolean\\\"></block>\\n    <block type=\\\"logic_null\\\"></block>\\n    <block type=\\\"logic_ternary\\\"></block>\\n  </category>\\n</category>\\n<category name=\\\"Loops\\\">\\n  <block type=\\\"controls_repeat_ext\\\">\\n    <value name=\\\"TIMES\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">10</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"controls_whileUntil\\\"></block>\\n  <block type=\\\"controls_for\\\">\\n    <field name=\\\"VAR\\\">i</field>\\n    <value name=\\\"FROM\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n    <value name=\\\"TO\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">10</field>\\n      </block>\\n    </value>\\n    <value name=\\\"BY\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"controls_forEach\\\"></block>\\n  <block type=\\\"controls_flow_statements\\\"></block>\\n</category>\\n<category name=\\\"Math\\\">\\n  <block type=\\\"math_number\\\"></block>\\n  <block type=\\\"math_arithmetic\\\"></block>\\n  <block type=\\\"math_single\\\"></block>\\n  <block type=\\\"math_trig\\\"></block>\\n  <block type=\\\"math_constant\\\"></block>\\n  <block type=\\\"math_number_property\\\"></block>\\n  <block type=\\\"math_change\\\">\\n    <value name=\\\"DELTA\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"math_round\\\"></block>\\n  <block type=\\\"math_on_list\\\"></block>\\n  <block type=\\\"math_modulo\\\"></block>\\n  <block type=\\\"math_constrain\\\">\\n    <value name=\\\"LOW\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n    <value name=\\\"HIGH\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">100</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"math_random_int\\\">\\n    <value name=\\\"FROM\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">1</field>\\n      </block>\\n    </value>\\n    <value name=\\\"TO\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">100</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"math_random_float\\\"></block>\\n</category>\\n<category name=\\\"Lists\\\">\\n  <block type=\\\"lists_create_empty\\\"></block>\\n  <block type=\\\"lists_create_with\\\"></block>\\n  <block type=\\\"lists_repeat\\\">\\n    <value name=\\\"NUM\\\">\\n      <block type=\\\"math_number\\\">\\n        <field name=\\\"NUM\\\">5</field>\\n      </block>\\n    </value>\\n  </block>\\n  <block type=\\\"lists_length\\\"></block>\\n  <block type=\\\"lists_isEmpty\\\"></block>\\n  <block type=\\\"lists_indexOf\\\"></block>\\n  <block type=\\\"lists_getIndex\\\"></block>\\n  <block type=\\\"lists_setIndex\\\"></block>\\n</category>\\n<category name=\\\"Variables\\\" custom=\\\"VARIABLE\\\"></category>\\n<category name=\\\"Functions\\\" custom=\\\"PROCEDURE\\\"></category>\\n\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/version-editor/blockly-toolset.html\n ** module id = 446\n ** module chunks = 2\n **/","/**\n * Created by Infirex on 6/1/2016.\n */\nimport {\n  Component,\n  Input,\n  Output,\n  OnInit,\n  ViewChild,\n  Directive,\n  AfterViewInit,\n  OnChanges,\n  EventEmitter\n} from '@angular/core';\n\n@Component({\n  selector: 'blockly',\n  template: `\n<xml #toolbox style=\"display: none\">\n${require('./blockly-toolset.html')}\n</xml>\n<button (click)=\"onSave()\">\n  Save\n</button>\n<div #blockly [ngStyle]=\"style\"></div>\n`\n})\nexport default class BlocklyComponent implements AfterViewInit, OnChanges {\n  style = {\n    width: '100%',\n    height: '900px'\n  };\n\n  @ViewChild('blockly') blocklyDiv;\n  @ViewChild('toolbox') toolbox;\n  @Input() xml;\n  @Output() save = new EventEmitter();\n  private workspace;\n\n\n  ngAfterViewInit() {\n    this.workspace = Blockly.inject(this.blocklyDiv.nativeElement,\n      {\n        toolbox: this.toolbox.nativeElement,\n        trashcan: true,\n        sounds: false\n      });\n    this.initXml(this.xml);\n  }\n\n\n  ngOnChanges(changes: any): any {\n    if (changes.xml && this.workspace) {\n      this.initXml(changes.xml.currentValue);\n    }\n  }\n\n  onSave() {\n    this.save.emit(this.getBlocklyXml());\n  }\n\n  private getBlocklyXml(): string {\n    let xml = Blockly.Xml.workspaceToDom(this.workspace);\n    let xmlText = Blockly.Xml.domToText(xml);\n    return xmlText;\n  }\n\n  private initXml(xmlText) {\n    this.workspace.clear();\n    let xml = Blockly.Xml.textToDom(xmlText);\n    Blockly.Xml.domToWorkspace(xml, this.workspace);\n  }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/app/version-editor/blockly.component.ts\n **/","/**\n * Created by Infirex on 5/27/2016.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {RouteConfig, Router, RouteParams} from '@angular/router-deprecated';\nimport {BackendService} from  '../backend.service';\nimport BlocklyComponent from './blockly.component';\n\n@Component({\n  selector: 'program-editor',\n  template: require('./version-editor.html'),\n  directives: [BlocklyComponent]\n})\nexport class VersionEditorComponent {\n  public programVersionId;\n  private version;\n\n  constructor(private router: Router,\n              private backend: BackendService,\n              private routeParams: RouteParams) {\n  }\n\n  ngOnInit(): any {\n    this.programVersionId = Number.parseInt(this.routeParams.get('programVersionId'));\n    this.backend.getProgramVersionById(this.programVersionId)\n      .subscribe(version => this.version = version);\n  }\n\n  onXmlSaved(xmlText) {\n    this.version.xml = xmlText;\n    this.backend.saveVersion(this.version)\n    // TODO Instead of navigating it should only change url\n      .subscribe(version => this.router.navigate(['Version', {programVersionId: version.id}]));\n  }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/app/version-editor/version-editor.component.ts\n **/","module.exports = \"programVersionId = {{programVersionId}}\\n\\n<blockly *ngIf=\\\"version\\\" [xml]=\\\"version.xml\\\" (save)=\\\"onXmlSaved($event)\\\">\\n\\n</blockly>\\n\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/version-editor/version-editor.html\n ** module id = 447\n ** module chunks = 2\n **/","/*\n * Providers provided by Angular\n */\nimport {bootstrap} from '@angular/platform-browser-dynamic';\n/*\n * Platform and Environment\n * our providers/directives/pipes\n */\nimport {DIRECTIVES, PIPES, PROVIDERS} from './platform/browser';\nimport {ENV_PROVIDERS} from './platform/environment';\n\n/*\n * App Component\n * our top level component that holds all of our components\n */\nimport {AppComponent, APP_PROVIDERS} from './app';\n\n/*\n * Bootstrap our Angular app with a top level component `App` and inject\n * our Services and Providers into Angular's dependency injection\n */\n// export function main(initialHmrState?: any): Promise<any> {\n\n /* return */ bootstrap(AppComponent, [\n    ...PROVIDERS,\n    ...ENV_PROVIDERS,\n    ...DIRECTIVES,\n    ...PIPES,\n    ...APP_PROVIDERS\n  ])\n    .catch(err => console.error(err));\n\n// }\n\n\n/*\n * Vendors\n * For vendors for example jQuery, Lodash, angular2-jwt just import them anywhere in your app\n * You can also import them in vendors to ensure that they are bundled in one file\n * Also see custom-typings.d.ts as you also need to do `typings install x` where `x` is your module\n */\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main.browser.ts\n **/","/*\n * These are globally available directives in any template\n */\n\nimport { PLATFORM_DIRECTIVES } from '@angular/core';\n// Angular 2 Router\nimport { ROUTER_DIRECTIVES } from '@angular/router-deprecated';\n\n// application_directives: directives that are global through out the application\nexport const APPLICATION_DIRECTIVES = [\n  ...ROUTER_DIRECTIVES\n];\n\nexport const DIRECTIVES = [\n  {provide: PLATFORM_DIRECTIVES, multi: true, useValue: APPLICATION_DIRECTIVES }\n];\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/platform/browser/directives.ts\n **/","export * from './directives';\nexport * from './pipes';\nexport * from './providers';\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/platform/browser/index.ts\n **/","/*\n * These are globally available pipes in any template\n */\n\nimport { PLATFORM_PIPES } from '@angular/core';\n\n// application_pipes: pipes that are global through out the application\nexport const APPLICATION_PIPES = [\n\n];\n\nexport const PIPES = [\n  {provide: PLATFORM_PIPES, multi: true, useValue: APPLICATION_PIPES }\n];\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/platform/browser/pipes.ts\n **/","/*\n * These are globally available services in any component or any other service\n */\n\n// Angular 2\nimport { FORM_PROVIDERS, HashLocationStrategy, LocationStrategy } from '@angular/common';\n// Angular 2 Http\nimport { HTTP_PROVIDERS } from '@angular/http';\n// Angular 2 Router\nimport { ROUTER_PROVIDERS } from '@angular/router-deprecated';\n\n/*\n* Application Providers/Directives/Pipes\n* providers/directives/pipes that only live in our browser environment\n*/\nexport const APPLICATION_PROVIDERS = [\n  ...FORM_PROVIDERS,\n  ...HTTP_PROVIDERS,\n  ...ROUTER_PROVIDERS,\n  {provide: LocationStrategy, useClass: HashLocationStrategy }\n];\n\nexport const PROVIDERS = [\n  ...APPLICATION_PROVIDERS\n];\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/platform/browser/providers.ts\n **/","\n// Angular 2\nimport { enableProdMode } from '@angular/core';\n\n// Environment Providers\nlet PROVIDERS = [];\n\nif ('production' === ENV) {\n  // Production\n  enableProdMode();\n\n  PROVIDERS = [\n    ...PROVIDERS\n  ];\n\n} else {\n  // Development\n  PROVIDERS = [\n    ...PROVIDERS\n  ];\n\n}\n\n\nexport const ENV_PROVIDERS = [\n  ...PROVIDERS\n];\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/platform/environment.ts\n **/"],"sourceRoot":""}

There are no issues that match your filters.

Category
Status