{"__symbolic":"module","version":3,"metadata":{"TableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"}],"imports":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule"},{"__symbolic":"reference","module":"@angular/http","name":"HttpModule"}],"exports":[{"__symbolic":"reference","name":"ɵa"}],"providers":[],"bootstrap":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ng2-table","providers":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}],"template":"\n    <global-search\n      *ngIf=\"config.globalSearchEnabled\"\n      (globalUpdate)=\"globalSearchTerm = $event\">\n    </global-search>\n    <csv-export *ngIf=\"config.exportEnabled\"></csv-export>\n\n    <table class=\"ng2-table__table--striped\">\n      <thead>\n      <tr>\n        <ng-container *ngFor=\"let key of keys;let headerIndex = index\">\n          <th [style.display]=\"config.orderEnabled?'':'none' \"\n              *ngIf=\"showColumn(key)\"\n              (click)=\"orderBy(key)\">\n            <div *ngIf=\"isColumnDefined();then customHeader else defaultHeader\"></div>\n            <ng-template #customHeader>{{config.columns[headerIndex]}}</ng-template>\n            <ng-template #defaultHeader>{{ key }}</ng-template>\n            <span *ngIf=\"resource.order[key]==='asc' \"\n                  class=\"icon-sort-alpha-desc\">\n            </span>\n            <span *ngIf=\"resource.order[key]==='desc' \"\n                  class=\"icon-sort-alpha-asc\">\n            </span>\n          </th>\n        </ng-container>\n        <ng-container *ngFor=\"let key of keys\">\n          <th [style.display]=\"!config.orderEnabled?'':'none' \"\n              *ngIf=\"showColumn(key)\">\n            {{ key }}\n          </th>\n        </ng-container>\n        <th *ngIf=\"config.editEnabled\">Actions</th>\n      </tr>\n      <tr *ngIf=\"config.searchEnabled\">\n        <ng-container *ngFor=\"let key of keys\">\n          <th *ngIf=\"showColumn(key)\">\n            <table-header (update)=\"term = $event\" [key]=\"key\"></table-header>\n          </th>\n        </ng-container>\n        <th *ngIf=\"config.editEnabled\"></th>\n      </tr>\n      </thead>\n      <tbody *ngIf=\"data\">\n      <ng-container *ngIf=\"tpl\">\n        <tr *ngFor=\"let row of data | search : term | global : globalSearchTerm | pagination : range;\n                  let rowIndex = index\"\n            [class.ng2-table__table-row--selected]=\"rowIndex == selectedRow && !config.selectCell\">\n          <ng-container [ngTemplateOutlet]=\"tpl\"\n                        [ngOutletContext]=\"{ $implicit: row }\">\n          </ng-container>\n        </tr>\n      </ng-container>\n      <ng-container *ngIf=\"!tpl\">\n        <tr *ngFor=\"let row of data | search : term | global : globalSearchTerm | pagination : range;\n                  let rowIndex = index\"\n            [class.ng2-table__table-row--selected]=\"rowIndex == selectedRow && !config.selectCell\">\n          <ng-container *ngFor=\"let key of keys; let colIndex = index\">\n            <td *ngIf=\"showColumn(key)\"\n                (click)=\"clickedCell($event, row, key, colIndex, rowIndex)\"\n                [class.ng2-table__table-col--selected]=\"colIndex == selectedCol && !config.selectCell\"\n                [class.ng2-table__table-cell--selected]=\"colIndex == selectedCol && rowIndex == selectedRow && !config.selectCol && !config.selectRow\"\n            >\n              <div>{{ row[key] }}</div>\n            </td>\n          </ng-container>\n          <td *ngIf=\"config.editEnabled\">\n            <button class=\"ng2-table__button\">Edit</button>\n          </td>\n        </tr>\n      </ng-container>\n      </tbody>\n      <tbody *ngIf=\"!data\">\n      <tr>\n        <td>No results</td>\n      </tr>\n      </tbody>\n      <tfoot *ngIf=\"config.footerEnabled\">\n      <tr>\n        <td *ngFor=\"let key of keys\"></td>\n        <td></td>\n      </tr>\n      </tfoot>\n    </table>\n\n    <pagination\n      *ngIf=\"config.paginationEnabled\"\n      [numberOfItems]=\"numberOfItems\"\n      (updateRange)=\"range = $event\">\n    </pagination>\n  ","styles":["\n    @import url(\"../assets/fonts/style.css\");\n    @import \"~lato-font\";\n\n    * {\n      font-family: Lato, serif;\n    }\n\n    .ng2-table__button, .ng2-table__csv-export-button {\n      background: #f0f0f0;\n      border: 1px solid #d7d7d7;\n      font-size: .8em;\n      padding: 6px;\n    }\n\n    .ng2-table__table, .ng2-table__table--striped {\n      border-spacing: 0;\n      width: 100%;\n    }\n\n    .ng2-table__table td,\n    .ng2-table__table th, .ng2-table__table--striped td,\n    .ng2-table__table--striped th {\n      border-color: #f2f2f2;\n      border-style: solid;\n      border-width: 1px 1px 0 0;\n      margin: 0;\n      padding: 2px;\n    }\n\n    .ng2-table__table thead > th, .ng2-table__table--striped thead > th {\n      cursor: pointer;\n      font-weight: 700;\n      text-align: left;\n    }\n\n    .ng2-table__table tr:last-child th, .ng2-table__table--striped tr:last-child th {\n      border-bottom-color: #cacaca;\n    }\n\n    .ng2-table__table tr:last-child td, .ng2-table__table--striped tr:last-child td {\n      border-bottom: 1px solid #f0f0f0;\n    }\n\n    .ng2-table__table tr td:first-child,\n    .ng2-table__table tr th:first-child, .ng2-table__table--striped tr td:first-child,\n    .ng2-table__table--striped tr th:first-child {\n      border-left: 1px solid #f0f0f0;\n    }\n\n    .ng2-table__table--striped tbody tr:nth-child(odd) {\n      background: #fafafa;\n    }\n\n    .ng2-table__table-row--selected {\n      background: #66c6f0 !important;\n    }\n\n    .ng2-table__table-col--selected {\n      background: #66c6f0 !important;\n    }\n\n    .ng2-table__table-cell--selected {\n      background: #66c6f0 !important;\n    }\n  "]}]}],"members":{"configuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"event":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"tpl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild"},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"orderBy":[{"__symbolic":"method"}],"clickedCell":[{"__symbolic":"method"}],"isColumnDefined":[{"__symbolic":"method"}],"showColumn":[{"__symbolic":"method"}],"toggleColumn":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http"}]}],"getData":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"update":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"getOrder":[{"__symbolic":"method"}],"sortBy":[{"__symbolic":"method"}],"compare":[{"__symbolic":"method"}]},"statics":{"_pipedDataEmitter":{"__symbolic":"error","message":"Variable not initialized","line":8,"character":17}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"global-search","template":"\n    <label class=\"ng2-table__global-search-label\" for=\"search\">\n      <input type=\"text\"\n             id=\"search\"\n             class=\"ng2-table__input\"\n             #input\n             (input)=\"globalUpdate.emit({value: input.value})\"\n             placeholder=\"Search\"/>\n    </label>\n  ","styles":["\n    .ng2-table__input {\n      border: 0;\n      font-size: .9em;\n      margin: 0;\n      padding: 2px;\n      width: 99%;\n    }\n\n    .ng2-table__global-search-label {\n      border: 1px solid #f0f0f0;\n      display: inline-block;\n      margin: 6px 0;\n      padding: 2px;\n      width: 300px;\n    }\n    .ng2-table__global-search-label::before {\n      color: #cacaca;\n      left: 290px;\n      position: absolute;\n      top: 18px;\n      z-index: 1;\n    }\n  "]}]}],"members":{"globalUpdate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"csv-export","template":"\n    <button class=\"ng2-table__csv-export-button\"\n            (click)=\"exportCsv()\">Export to CSV\n    </button>","styles":["\n    /*TODO move this button to some imports */\n    .ng2-table__csv-export-button {\n      background: #f0f0f0;\n      border: 1px solid #d7d7d7;\n      font-size: .8em;\n      padding: 6px;\n      display: inline-block;\n      float: right;\n      margin: 6px 0;\n    }\n  "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}]}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"table-header","template":"\n  <label for=\"search_{{ key }}\">\n    <input type=\"text\"\n           id=\"search_{{ key }}\"\n           aria-label=\"Search\"\n           placeholder=\"Search for {{ key }}\"\n           class=\"ng2-table__input\"\n           #input\n           (input)=\"update.emit({value: input.value, key: key})\"\n    >\n  </label>","styles":["\n    .ng2-table__input {\n      border: 0;\n      font-size: .9em;\n      margin: 0;\n      padding: 2px;\n      width: 99%;\n    }\n  "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"key":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"update":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"pagination","template":"\n    <div class=\"ng2-table__pagination-wrapper\">\n      <ul class=\"ng2-table__pagination\">\n        <li [class.disabled]=\"paginationService.isFirstPage()\"\n            (click)=\"paginationService.previousPage($event)\">\n          <span class=\"icon-circle-left\"></span>\n        </li>\n        <li *ngFor=\"let page of paginationService.pageNumbers\"\n            (click)=\"paginationService.changePage($event, page)\"\n            [class.active]=\"paginationService.isActivePage(page)\">\n          <a href=\"#\">{{page}}</a>\n        </li>\n        <li [class.disabled]=\"paginationService.isLastPage()\"\n            (click)=\"paginationService.nextPage($event)\">\n          <span class=\"icon-circle-right\"></span>\n        </li>\n      </ul>\n\n      <ul class=\"ng2-table__items-per-page\">\n        <li [class.active]=\"paginationService.isActiveRange(range)\"\n            (click)=\"paginationService.changeRange($event, range)\"\n            *ngFor=\"let range of paginationService.ranges\">\n          <a href=\"#\">{{range}}</a>\n        </li>\n      </ul>\n    </div>\n  ","styles":["\n    @import url(\"../../../assets/fonts/style.css\");\n\n    .ng2-table__pagination, .ng2-table__items-per-page {\n      display: inline-block;\n      float: left;\n      list-style-type: none;\n      margin: 8px 0;\n      padding: 0;\n    }\n    .ng2-table__pagination li, .ng2-table__items-per-page li {\n      border: 1px solid #f0f0f0;\n      float: left;\n      margin: 0;\n      padding: 6px;\n      cursor: pointer;\n      border-left: 0;\n      border-right: 0;\n    }\n    .ng2-table__pagination li:first-child, .ng2-table__items-per-page li:first-child {\n      border-left: 1px solid #f0f0f0;\n    }\n    .ng2-table__pagination li:last-child, .ng2-table__items-per-page li:last-child {\n      border-right: 1px solid #f0f0f0;\n    }\n    .ng2-table__pagination a, .ng2-table__items-per-page a {\n      color: inherit;\n      text-decoration: none;\n    }\n    .ng2-table__pagination .active, .ng2-table__items-per-page .active {\n      background: #3e71b4;\n      border-color: #3e71b4;\n      color: #fff;\n    }\n\n    .ng2-table__pagination .disabled, .ng2-table__items-per-page .disabled {\n      background: #fff;\n      border-color: #f0f0f0;\n      color: #dddddd;\n      cursor: default;\n    }\n\n    .ng2-table__items-per-page {\n      float: right;\n    }\n    .ng2-table__pagination-wrapper::after {\n      clear: both;\n      content: '';\n      display: block;\n      height: 0;\n      visibility: hidden;\n    }\n  "],"providers":[{"__symbolic":"reference","name":"ɵj"}]}]}],"members":{"numberOfItems":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"updateRange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵj"}]}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}]}],"emitPaginationProperties":[{"__symbolic":"method"}],"updateNumberPerPage":[{"__symbolic":"method"}],"updatePagination":[{"__symbolic":"method"}],"isActiveRange":[{"__symbolic":"method"}],"isActivePage":[{"__symbolic":"method"}],"nextPage":[{"__symbolic":"method"}],"previousPage":[{"__symbolic":"method"}],"isLastPage":[{"__symbolic":"method"}],"isFirstPage":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"changeRange":[{"__symbolic":"method"}],"changePage":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe"},"arguments":[{"name":"search"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"}]}],"transform":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe"},"arguments":[{"name":"pagination"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"transform":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe"},"arguments":[{"name":"global"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"transform":[{"__symbolic":"method"}]}}},"origins":{"TableModule":"./app/app.module","ɵa":"./app/app.component","ɵb":"./app/services/http-service","ɵc":"./app/services/filters-service","ɵd":"./app/services/resource-service","ɵe":"./app/services/config-service","ɵf":"./app/components/global-search/global-search.component","ɵg":"./app/components/dropdown/csv-export.component","ɵh":"./app/components/header/header.component","ɵi":"./app/components/pagination/pagination.component","ɵj":"./app/services/pagination.service","ɵk":"./app/pipes/header-pipe","ɵl":"./app/pipes/pagination-pipe","ɵm":"./app/pipes/global-search-pipe"},"importAs":"ngx-easy-table"}