{"version":3,"file":"app-d83ca9cb.f29bb06ce70c5dbb.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/administration/projects/manage/unit-settings.scss","webpack://client-app/./src/app/administration/projects/manage/unit-settings.html","webpack://client-app/./src/app/administration/projects/manage/unit-settings.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, `unit-settings{display:grid;row-gap:15px}unit-settings .headline{background:#f0f3f4;font-weight:600;padding:calc(15px/2) calc(15px/1.5)}unit-settings .value{padding:calc(15px/2) calc(15px/1.5)}unit-settings .section{border:1px solid rgba(0,0,0,.175)}unit-settings .unit{display:grid;grid-template-columns:1fr 1fr 3em;column-gap:15px;padding:calc(15px/2) calc(15px/1.5)}unit-settings .unit__name,unit-settings .unit__value{display:grid;align-items:center}unit-settings .unit__name .text,unit-settings .unit__value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}unit-settings .no-units{display:grid;padding:calc(15px/2) calc(15px/1.5)}unit-settings .no-units__name{display:grid;align-items:center}unit-settings .no-units__name .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/administration/projects/manage/unit-settings.scss\",\"webpack://./src/resources/customized-styles/variables.scss\"],\"names\":[],\"mappings\":\"AAEA,cACC,YAAA,CACA,YCMQ,CDJR,wBACC,kBCDa,CDEb,eAAA,CACA,mCAAA,CAGD,qBACC,mCAAA,CAGD,uBACC,iCAAA,CAGD,oBACC,YAAA,CACA,iCAAA,CACA,eCbO,CDcP,mCAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,iEACC,eAAA,CACA,sBAAA,CACA,kBAAA,CAKH,wBACC,YAAA,CACA,mCAAA,CAEA,8BACC,YAAA,CACA,kBAAA,CAEA,oCACC,eAAA,CACA,sBAAA,CACA,kBAAA\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n\\r\\nunit-settings {\\r\\n\\tdisplay: grid;\\r\\n\\trow-gap: $gutter;\\r\\n\\r\\n\\t.headline {\\r\\n\\t\\tbackground: $grey-lighter;\\r\\n\\t\\tfont-weight: 600;\\r\\n\\t\\tpadding: calc(#{$gutter} / 2) calc(#{$gutter} / 1.5);\\r\\n\\t}\\r\\n\\r\\n\\t.value {\\r\\n\\t\\tpadding: calc(#{$gutter} / 2) calc(#{$gutter} / 1.5);\\r\\n\\t}\\r\\n\\r\\n\\t.section {\\r\\n\\t\\tborder: 1px solid $border-color;\\r\\n\\t}\\r\\n\\r\\n\\t.unit {\\r\\n\\t\\tdisplay: grid;\\r\\n\\t\\tgrid-template-columns: 1fr 1fr 3em;\\r\\n\\t\\tcolumn-gap: $gutter;\\r\\n\\t\\tpadding: calc(#{$gutter} / 2) calc(#{$gutter} / 1.5);\\r\\n\\r\\n\\t\\t&__name, &__value {\\r\\n\\t\\t\\tdisplay: grid;\\r\\n\\t\\t\\talign-items: center;\\r\\n\\r\\n\\t\\t\\t.text {\\r\\n\\t\\t\\t\\toverflow: hidden;\\r\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\r\\n\\t\\t\\t\\twhite-space: nowrap;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.no-units {\\r\\n\\t\\tdisplay: grid;\\r\\n\\t\\tpadding: calc(#{$gutter} / 2) calc(#{$gutter} / 1.5);\\r\\n\\r\\n\\t\\t&__name {\\r\\n\\t\\t\\tdisplay: grid;\\r\\n\\t\\t\\talign-items: center;\\r\\n\\r\\n\\t\\t\\t.text {\\r\\n\\t\\t\\t\\toverflow: hidden;\\r\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\r\\n\\t\\t\\t\\twhite-space: nowrap;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\",\"$text-color: #333;\\r\\n$accent: #00B3C9;\\r\\n$accent-15pct: #D9F4F7;\\r\\n$bs-default: #f1f3f4;\\r\\n$grey: #dddddd;\\r\\n$grey-light: #efefef;\\r\\n$grey-lighter: #F0F3F4;\\r\\n$grey-darker: #A5A3A3;\\r\\n$white-hsl-97: hsla(0deg, 0%, 97%, 1);\\r\\n\\r\\n$gutter: 15px;\\r\\n\\r\\n$box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-right: 0.05rem 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-left: -0.05rem 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-color: rgba(0, 0, 0, 0.175);\\r\\n\\r\\n$border-color: rgba(0, 0, 0, 0.175);\\r\\n\\r\\n\\r\\n// Showroom header\\r\\n$showroom-header-height: 350px;\\r\\n$showroom-header-height-small: 150px;\\r\\n$showroom-header-height-mobile: 200px;\\r\\n\\r\\n// Navigation\\r\\n$nav-width: 275px;\\r\\n$nav-width-collapsed: 50px;\\r\\n$nav-height-mobile: 50px;\\r\\n\\r\\n// Top bar\\r\\n$top-bar-height: 4em;\\r\\n\\r\\n// CSS grid table\\r\\n$css-grid-header-height: calc(4em + 1px);\\r\\n\\r\\n// Object Presentation\\r\\n$object-presentation-left-content-width: 250px;\\r\\n$object-presentation-left-content-width-lg: 350px;\\r\\n$object-presentation-img-height: 250px;\\r\\n\\r\\n\\r\\n// Card deck\\r\\n$card-height: 250px;\\r\\n\\r\\n\\r\\n// Select\\r\\n$select-min-width: 200px;\\r\\n\\r\\n\\r\\n// Modal\\r\\n$modal-header-height: 50px;\\r\\n$modal-footer-height: 50px;\\r\\n\\r\\n// Object Properties\\r\\n$object-properties-width: 480px;\\r\\n$object-properties-width--detailed: 560px;\\r\\n$object-properties-width-mobile: 100vw;\\r\\n$object-properties-width-mobile--detailed: 100vw;\\r\\n$object-properties-width-tablet: 480px;\\r\\n$object-properties-width-tablet--detailed: 560px;\\r\\n\\r\\n// Notification Center\\r\\n$notification-center-width: 500px;\\r\\n\\r\\n// 7.0 z-index Setting\\r\\n\\r\\n$btn-scroll-to-top-zindex: 1020 !default;\\r\\n$content-zindex: 1020 !default;\\r\\n$float-submenu-zindex: 1020 !default;\\r\\n$footer-zindex: 1020 !default;\\r\\n$header-zindex: 1020 !default;\\r\\n$header-fixed-zindex: 1040 !default;\\r\\n$sidebar-zindex: 1010 !default;\\r\\n$top-menu-zindex: 1015 !default;\\r\\n$theme-panel-zindex: 1020 !default;\\r\\n$page-loader-zindex : 9999 !default;\\r\\n$page-title-zindex: 1020 !default;\\r\\n$pace-loader-zindex: 1030 !default;\\r\\n$panel-expand-zindex: 1080 !default;\\r\\n\\r\\n// 2.0 RTL Setting\\r\\n\\r\\n$enable-rtl: false !default;\\r\\n\\r\\n// 6.0 App Component Setting\\r\\n@import 'functions.scss';\\r\\n$boxed-layout-width: rem(1280px) !default;\\r\\n$content-padding-x: rem(30px) !default;\\r\\n$content-padding-y: rem(20px) !default;\\r\\n$content-padding-x-sm: rem(20px) !default;\\r\\n$content-padding-y-sm: rem(20px) !default;\\r\\n$header-height: rem(50px) !default;\\r\\n$header-height-sm: rem(50px) !default;\\r\\n$sidebar-width: rem(220px) !default;\\r\\n$sidebar-minified-width: rem(60px) !default;\\r\\n$sidebar-wide-width: rem(250px) !default;\\r\\n$top-menu-height: rem(40px) !default;\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","import { EventAggregator } from 'aurelia-event-aggregator';\r\nimport {bindable, observable, autoinject} from \"aurelia-framework\";\r\nimport {ApiClient} from \"../../../services/api-client\";\r\nimport {AppContextService} from \"../../../services/app-context-service\";\r\nimport {I18N} from \"aurelia-i18n\";\r\n\r\n\r\n@autoinject\r\nexport class UnitSettings {\r\n\t\r\n\t@bindable projectId:string = \"\"; \r\n\tpublic projectDefinedUnits: PrjUnit[] = [];\r\n\tpublic defaultUnits: PrjUnit[] = [];\r\n\tprivate anyChanges:boolean = false;\r\n\t\r\n\t\r\n\tconstructor(private events: EventAggregator, private api:ApiClient, private i18n: I18N, private appContext: AppContextService) {\r\n\t\t\r\n\t}\r\n\t\r\n\tasync attached(){\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.apiClient.appContext.currentUser?.organization.id;\r\n\t\tconsole.log('UnitSettings.attached', this.projectId);\t\t\r\n\t\tconst REH = this.projectId === undefined \r\n\t\t\t? this.api.system.get(\"Project/GetProjectUnits\")//UnitSettings.attached\r\n\t\t\t: this.api.orgByToken(currentUser_OrgId).get(`Project/GetProjectUnits_Org/${this.projectId}`);\r\n\t\t\t//: this.api.project(this.projectId).get(\"Project/GetProjectUnits\"); //2UnitSettings.attached\r\n\r\n\t\tlet projectDisplayUnits = await REH\r\n\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve project display units.\")\r\n\t\t.jsonResult();\r\n\r\n\t\tlet prjUnits = projectDisplayUnits;\r\n\t\tprjUnits.forEach(\r\n\t\t\tpu => {\r\n\t\t\t\tpu.dut = this.findDut(pu);\r\n\t\t\t\tpu.origDisplayUnit_Id = pu.displayUnit_Id;\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis.projectDefinedUnits = prjUnits.filter(x => x.selected);\r\n\t\tthis.defaultUnits = prjUnits.filter(x => !x.selected);\r\n\t}\r\n\r\n\tfindDut(ut: PrjUnit): Dut {\r\n\t\tfor (let d of ut.duts) {\r\n\t\t\tif (d.displayUnit_Id == ut.displayUnit_Id) { return d; }\r\n\t\t}\r\n\r\n\t\tlet defDut: Dut = {\r\n\t\t\tdisplayUnit_Id: ut.displayUnit_Id,\r\n\t\t\tunitString: ut.unitString,\r\n\t\t\tunitShort: ut.unitShort,\r\n\t\t\tunitType_Id: ut.unitType_Id,\r\n\t\t\trate: ut.rate,\r\n\t\t\tsRate: ut.sRate,\r\n\t\t\tdisplayUnitEnum: ut.displayUnitEnum\r\n\t\t}\r\n\t\tut.duts.push(defDut);\r\n\t\treturn defDut;\r\n\t}\r\n\t\r\n\tasync save():Promise{\t// this one is currently broken I believe.\r\n\t\tconsole.log('unit-settings.save');\r\n\t\tif (!this.projectDefinedUnits) { return await Promise.resolve(); }\r\n\r\n\t\tthis.projectDefinedUnits.forEach(x => {\r\n\t\t\tif (x.origDisplayUnit_Id !== x.dut.displayUnit_Id) { this.anyChanges = true; }\r\n\t\t});\r\n\r\n\t\tif (this.anyChanges === false) { return await Promise.resolve(); }\t\t\r\n\r\n\t\tlet projectUnits = this.projectDefinedUnits.map(x => { return { unitDisplayTypeId: x.dut.displayUnit_Id, unitTypeId : x.unitType_Id }});\t\r\n\t\tlet r = await this.api.project(this.projectId).postJson(\"Project/SetProjectUnitDisplays\", projectUnits).stringResult(); // noResponse();\r\n\t\tconsole.log('save-SetProjectUnitDisplays said:', r);\r\n\t}\r\n\r\n\tasync saveByOrg(projectId: string):Promise{\t\r\n\t\tconsole.log('saveByOrg');\r\n\t\tif (!this.projectDefinedUnits) { return await Promise.resolve(); }\r\n\r\n\t\tthis.projectDefinedUnits.forEach(x => {\r\n\t\t\tif (x.origDisplayUnit_Id !== x.dut.displayUnit_Id) { this.anyChanges = true; }\r\n\t\t});\r\n\r\n\t\tif (this.anyChanges === false) { return await Promise.resolve(); }\t\t\r\n\r\n\t\tlet projectUnits = this.projectDefinedUnits.map(x => { return { unitDisplayTypeId: x.dut.displayUnit_Id, unitTypeId : x.unitType_Id }});\t\t\r\n\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); \r\n\t\t// fixme: if currentUser_OrgId is bad, we should probably catch that and handle/circumvent that.\r\n\t\t// In particular, we should verify that projectOrg and current_userOrg matches!\r\n\t\t// I hope SetProjectUnitDisplays catches/checks that!\r\n\t\tlet r = await this.api.orgByToken(currentUser_OrgId).postJson(`Project/SetProjectUnitDisplays_Org?projectId=${projectId}`, projectUnits).stringResult(); \r\n\t\tconsole.log('saveByOrg.SetProjectUnitDisplays said:', r);\r\n\t}\r\n\r\n\tpublic add(unit: PrjUnit, index: number) {\r\n\t\tthis.defaultUnits.splice(index, 1);\r\n\t\tunit.selected = true;\r\n\t\tthis.projectDefinedUnits.push(unit);\r\n\t\tthis.anyChanges = true;\r\n\t}\r\n\r\n\tpublic remove(unit: PrjUnit, index: number) {\r\n\t\tthis.projectDefinedUnits.splice(index, 1);\r\n\t\tunit.selected = false;\r\n\t\tthis.defaultUnits.push(unit);\r\n\t\tthis.anyChanges = true;\r\n\t}\r\n}\r\n\r\nexport interface PrjUnit {\r\n\tid: string;\r\n\tdisplayUnit_Id: number;\r\n\tunitType_Id: number;\r\n\tunitTypeName: string;\r\n\tdisplayUnitEnum: string;\r\n\tunitString: string;\r\n\tunitShort: string;\r\n\trate: number;\r\n\tsRate: string;\r\n\tduts: Dut[];\r\n\tdut: Dut;\r\n\tselected:boolean;\r\n\torigDisplayUnit_Id: number;\r\n}\r\n\r\nexport interface Dut {\r\n\tdisplayUnit_Id: number;\r\n\tunitString: string;\r\n\tunitShort: string;\r\n\tunitType_Id: number;\r\n\trate: number;\r\n\tsRate: string;\r\n\tdisplayUnitEnum: string;\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","UnitSettings","constructor","events","api","i18n","appContext","projectId","projectDefinedUnits","defaultUnits","anyChanges","attached","currentUser_OrgId","this","currentUserOrgId","console","log","REH","undefined","system","get","orgByToken","prjUnits","handleError","tr","jsonResult","forEach","pu","dut","findDut","origDisplayUnit_Id","displayUnit_Id","filter","x","selected","ut","d","duts","defDut","unitString","unitShort","unitType_Id","rate","sRate","displayUnitEnum","save","Promise","resolve","projectUnits","map","unitDisplayTypeId","unitTypeId","r","project","postJson","stringResult","saveByOrg","add","unit","index","splice","remove","bindable","autoinject","EventAggregator","I18N"],"sourceRoot":""}