{"version":3,"file":"app-f8c5117f.a8ee13e6629b298b.bundle.js","mappings":"2MAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,yJAA0J,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,0DAA0D,MAAQ,GAAG,SAAW,uCAAuC,eAAiB,CAAC,qXAAyX,WAAa,MAE7uB,S,+CCPAD,EAAOE,QAAU,s/D,6CCAjBF,EAAOE,QAAU,oie,6MCUV,IAAMC,EAAN,MAYNC,YAAqBC,EAAuCC,EAAwBC,EAAoCC,EAA8BC,EAAiCC,GAAlK,KAAAL,WAAAA,EAAuC,KAAAC,OAAAA,EAAwB,KAAAC,aAAAA,EAAoC,KAAAC,UAAAA,EAA8B,KAAAC,OAAAA,EAAiC,KAAAC,YAAAA,EAXhL,KAAAC,WAA4B,GAC5B,KAAAC,cAA+B,GAC/B,KAAAC,OAAiB,OACjB,KAAAC,WAAqB,EACrB,KAAAC,UAAoB,EAEpB,KAAAC,WAAqB,GAEpB,KAAAC,cAAgC,GAChC,KAAAC,aAAuB,EAG9BC,KAAKC,YAAc,QACpB,CAEAC,eAAeC,GACVA,EAAOC,WACVJ,KAAKd,WAAWmB,WAAWF,EAAOC,WAG/BJ,KAAKd,WAAWkB,iBACbJ,KAAKM,gBAGZN,KAAKO,aAAe,CAAEC,KAAM,aAAcC,UAAW,aAGrDT,KAAKF,cAAgB,CACpBE,KAAKV,OAAOoB,UAAUV,KAAKC,YAAc,sBAFnBU,GAAcX,KAAKY,kBAAkBD,MAI5DX,KAAKa,kBACN,CAEAC,WACCd,KAAKF,cAAciB,SAAQC,GAC1BA,EAAaC,WAEf,CAEQf,sBACPF,KAAKR,WAAa,GAClBQ,KAAKP,cAAgB,GACrBO,KAAKR,iBAAmBQ,KAAKX,UAAU6B,cAAclB,KAAKd,WAAWkB,WAAWe,IAAI,iCAAiCC,aACrHpB,KAAKR,WAAWuB,SAAQM,GAAKrB,KAAKP,cAAcb,KAAK0C,OAAOC,OAAO,CAAC,EAAGF,KACxE,CAEOG,SACNxB,KAAKJ,UAAW,EACV,IAAI6B,EAAmCzB,KAAK0B,cAElD1B,KAAKX,UAAU6B,cAAclB,KAAKd,WAAWkB,WAAWuB,SAAS,4BAA6BF,GAAmBG,WAC/GC,SAAQ,KACR7B,KAAKM,gBACLN,KAAKJ,UAAW,CAAK,GAErB,CAEQ8B,cACJ,IAAII,EAAuB,GAC3B,IAAK,IAAIC,EAAY,EAAGA,EAAI/B,KAAKR,WAAWwC,SAAUD,EAAG,CACrD,IAAIE,EAAMjC,KAAKR,WAAWuC,GACtBE,EAAIC,SAAWlC,KAAKP,cAAcsC,GAAGG,SACrCJ,EAAMlD,KAAKqD,E,CAGnB,OAAOH,CACX,CAEIK,cAAcC,GACpBA,EAASF,SAAWE,EAASF,QAC7BlC,KAAKa,kBACN,CACOwB,YACFrC,KAAKR,WAAW8C,QAAOC,GAAOA,EAAIL,UAASF,OAAShC,KAAKR,WAAWwC,OACvEhC,KAAKwC,mBAELxC,KAAKyC,mBAENzC,KAAKa,kBACN,CACOX,yBACNF,KAAKR,WAAWuB,SAAQwB,GAAOA,EAAIL,SAAU,GAC9C,CAEOhC,yBACNF,KAAKR,WAAWuB,SAAQwB,GAAOA,EAAIL,SAAU,GAE9C,CAEOrB,mBACNb,KAAKD,YAAcC,KAAKR,WAAW8C,QAAOC,GAAOA,EAAIL,UAASF,QAAUhC,KAAKR,WAAWwC,MACzF,CAEQpB,kBAAkBD,GACzBX,KAAKH,WAAac,CACnB,CAEOT,aAAawC,SACb1C,KAAKT,YAAYoD,OAAOD,GAAYE,MAAKC,IAC9C7C,KAAKN,OAASmD,EAAOnD,OACrBM,KAAKO,aAAesC,EAAOtC,YAAY,GAEzC,GAvGYvB,E,mUAAU,EADtB,EAAA8D,W,kIAaiC,IAAmC,KAA8B,IAAiC,KAA2B,IAAsC,OAZxL9D,E","sources":["webpack://client-app/./src/app/project/categories/categories.scss","webpack://client-app/./src/app/project/categories/categories.html","webpack://client-app/./src/app/project/changelog/changelog.html","webpack://client-app/./src/app/project/categories/categories.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".categories-list .headers{grid-template-columns:auto minmax(200px, 1fr)}.categories-list .main .element{grid-template-columns:auto minmax(200px, 1fr)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/categories/categories.scss\"],\"names\":[],\"mappings\":\"AAKC,0BACC,6CAHsB,CAMrB,gCACC,6CAPoB\",\"sourcesContent\":[\"@import \\\"src/resources/styling-admin\\\";\\r\\n@import \\\"src/resources/customized-styles/variables\\\";\\r\\n\\r\\n$grid-template-columns: auto minmax(200px, 1fr);\\r\\n.categories-list {\\r\\n\\t.headers { \\r\\n\\t\\tgrid-template-columns: $grid-template-columns; \\r\\n\\t}\\r\\n\\t.main {\\r\\n\\t\\t\\t.element {\\r\\n\\t\\t\\t\\tgrid-template-columns: $grid-template-columns;\\r\\n\\t\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","module.exports = \"\\r\\n\";","import { ListService } from 'app/services/list-service';\r\nimport { Subscription, EventAggregator } from 'aurelia-event-aggregator';\r\nimport { ApiClient } from 'app/services/api-client';\r\nimport { ErrorService } from 'app/services/error-service';\r\nimport { Router } from 'aurelia-router';\r\nimport { AppContextService } from 'app/services/app-context-service';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { CategoryDto } from 'app/models/category-dto';\r\n\r\n@autoinject\r\nexport class Categories {\r\n\tpublic categories: CategoryDto[] = [];\r\n\tpublic orgCategories: CategoryDto[] = [];\r\n\tpublic column: string = \"name\";\r\n\tpublic isEditing: boolean = true;\r\n\tpublic isSaving: boolean = false;\t\r\n\tpublic displayState: { icon: string, direction: string } | undefined;\r\n\tpublic searchTerm: string = \"\";\r\n\tpublic viewContext: string;\r\n\tprivate subscriptions: Subscription[] = [];\r\n\tprivate allSelected: boolean = false;\r\n\r\n\tconstructor (private appContext: AppContextService, private router: Router, private errorService: ErrorService, private apiClient: ApiClient, private events: EventAggregator, private listService: ListService) {\r\n\t\tthis.viewContext = \"TopBar\";\r\n\t}\r\n\r\n\tasync activate(params: any) {\r\n\t\tif (params.projectId) {\r\n\t\t\tthis.appContext.setProject(params.projectId);//in-activate.\r\n\t\t}\r\n\r\n\t\tif (this.appContext.projectId) {\r\n\t\t\tawait this.getCategories();\r\n\t\t} \r\n\r\n\t\tthis.displayState = { icon: \"fa-sort-up\", direction: \"ascending\" };\r\n\t\t\r\n\t\tconst searchHandler = (data: any) => this.handleSearchEvent(data);\r\n\t\tthis.subscriptions = [\r\n\t\t\tthis.events.subscribe(this.viewContext + \":SearchTermChanged\", searchHandler)\r\n\t\t];\r\n\t\tthis.setIsAllSelected();\r\n\t}\r\n\r\n\tdetached() {\r\n\t\tthis.subscriptions.forEach(subscription => (\r\n\t\t\tsubscription.dispose()\r\n\t\t));\r\n\t}\r\n\r\n\tprivate async getCategories() {\r\n\t\tthis.categories = [];\r\n\t\tthis.orgCategories = [];\r\n\t\tthis.categories = await this.apiClient.projectWToken(this.appContext.projectId).get(`Category/GetProjectCategories`).jsonResult();\r\n\t\tthis.categories.forEach(x => this.orgCategories.push(Object.assign({}, x)));\r\n\t}\r\n\r\n\tpublic submit() {\r\n\t\tthis.isSaving = true;\r\n let changedCategories: CategoryDto[] = this.findChanged();\r\n\t\t\r\n\t\tthis.apiClient.projectWToken(this.appContext.projectId).postJson(`Category/UpdateCategories`, changedCategories).response()\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.getCategories();\r\n\t\t\t\tthis.isSaving = false;\r\n\t\t\t});\r\n }\r\n\r\n private findChanged(): CategoryDto[] {\r\n let delta: CategoryDto[] = [];\r\n for (let i: number = 0; i < this.categories.length; ++i) {\r\n let upd = this.categories[i];\r\n if (upd.include != this.orgCategories[i].include) {\r\n delta.push(upd);\r\n }\r\n }\r\n return delta;\r\n }\r\n\r\n\tpublic toggleInclude(category: CategoryDto) {\r\n\t\tcategory.include = !category.include;\r\n\t\tthis.setIsAllSelected();\r\n\t}\r\n\tpublic toggleAll() {\r\n\t\tif (this.categories.filter(cat => cat.include).length < this.categories.length) {\r\n\t\t\tthis.toggleAllInclude();\r\n\t\t} else {\r\n\t\t\tthis.toggleAllExclude();\r\n\t\t}\r\n\t\tthis.setIsAllSelected();\r\n\t}\r\n\tpublic async toggleAllInclude(): Promise {\r\n\t\tthis.categories.forEach(cat => cat.include = true);\r\n\t}\r\n\t\r\n\tpublic async toggleAllExclude(): Promise {\r\n\t\tthis.categories.forEach(cat => cat.include = false);\r\n\r\n\t}\r\n\r\n\tpublic setIsAllSelected() {\r\n\t\tthis.allSelected = this.categories.filter(cat => cat.include).length == this.categories.length\r\n\t}\r\n\r\n\tprivate handleSearchEvent(data: any): void {\r\n\t\tthis.searchTerm = data;\r\n\t}\r\n\r\n\tpublic async sortBy(columnName: string): Promise {\r\n\t\tawait this.listService.sortBy(columnName).then(result => {\r\n\t\t\tthis.column = result.column;\r\n\t\t\tthis.displayState = result.displayState;\r\n\t\t});\r\n\t}\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","Categories","constructor","appContext","router","errorService","apiClient","events","listService","categories","orgCategories","column","isEditing","isSaving","searchTerm","subscriptions","allSelected","this","viewContext","async","params","projectId","setProject","getCategories","displayState","icon","direction","subscribe","data","handleSearchEvent","setIsAllSelected","detached","forEach","subscription","dispose","projectWToken","get","jsonResult","x","Object","assign","submit","changedCategories","findChanged","postJson","response","finally","delta","i","length","upd","include","toggleInclude","category","toggleAll","filter","cat","toggleAllInclude","toggleAllExclude","columnName","sortBy","then","result","autoinject"],"sourceRoot":""}