{"version":3,"file":"app-7877d14a.5d22f1c7ae74b972.bundle.js","mappings":"oOAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,0zEAA2zE,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iFAAiF,MAAQ,GAAG,SAAW,w0BAAw0B,eAAiB,CAAC,q0IAAq0I,WAAa,MAElpP,S,sECPAD,EAAOE,QAAU,ylF,kyBCoBV,IAAMC,EAAkB,EAAxB,MAgBH,WAAAC,CACKC,EACAC,EACAC,EAAsCC,EAAoBC,EACzDC,EAAiCC,EAA6BC,EAC9DC,EACAC,GALD,KAAAT,UAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,WAAAA,EAAsC,KAAAC,KAAAA,EAAoB,KAAAC,OAAAA,EACzD,KAAAC,OAAAA,EAAiC,KAAAC,MAAAA,EAA6B,KAAAC,YAAAA,EAC9D,KAAAC,iBAAAA,EACA,KAAAC,gBAAAA,EArBE,KAAAC,iBAA2B,GAC3B,KAAAC,mBAA6B,GAChC,KAAAC,cAAgC,GAKhC,KAAAC,UAAuB,GAEpB,KAAAC,QAAqB,GACxB,KAAAC,mBAAiC,GACjC,KAAAC,kBAAgC,GAChC,KAAAC,kBAA4B,EAC5B,KAAAC,oBAA8B,EA4Y/B,KAAAC,MAAe,EAlYrBC,QAAQC,IAAI,SACb,CAEG,GAAAC,GAEF,OAAOC,KAAKvB,UAAUwB,QAAQD,KAAKrB,WAAWuB,UAC/C,CAEA,IAAAC,GACCH,KAAKL,oBAAqB,EAC1BK,KAAKX,cAAgB,CACpBW,KAAKlB,OAAOsB,UAAU,oCAAmC,KACxDJ,KAAKK,gBAAgB,IAEtBL,KAAKlB,OAAOsB,UAAU,+BAAgCE,IAAoDN,KAAKO,sBAAsBD,EAASE,UAAU,IAG1J,CAEA,qBAAAD,CAAsBC,GACrB,IAAIC,EAAkC,GACtCD,EAAUE,SAASC,IAClB,IAAK,IAAIC,EAAI,EAAGA,EAAIZ,KAAKR,mBAAmBqB,OAAQD,IAC/CZ,KAAKR,mBAAmBoB,GAAGE,QAAQC,GAAgBA,GAAeJ,IAAaE,OAAS,GAC3FJ,EAAsBtC,KAAKyC,E,IAI9BZ,KAAKf,iBAAiB+B,iBAAiBP,EAExC,CAEA,MAAAQ,GACCjB,KAAKX,cAAcqB,SAAQQ,GAAgBA,EAAaC,WACzD,CAEA,aAAAC,GAGC,MAAMC,EAAQC,SAASC,eAAe,aAGhCC,EAAqDH,aAAK,EAALA,EAAOI,iBAAiB,MAGnFD,SAAAA,EAAMd,SAAQgB,IACb,GAAIA,GAAOF,EAAKA,EAAKX,OAAQ,GAAM,OAEnC,MAAMc,EAAUL,SAASM,cAAc,OACvCD,EAAQE,UAAUC,IAAI,WAGtBH,EAAQI,MAAMC,OAAS,GAAGX,aAAK,EAALA,EAAOY,iBAGjCP,EAAIQ,YAAYP,GAGhB3B,KAAKmC,sBAAsBT,EAAKC,EAAQ,GAE1C,CAEA,qBAAAQ,CAAsBT,EAA2BC,GAEhD,IAAIS,EAAI,EACJC,EAAI,EAER,MAaMC,EAAmB,SAAUC,GAElC,MAAMC,EAAKD,EAAEE,QAAUL,EAGvB,IAAIM,EAAmBL,EAAIG,EAC3Bd,EAAIK,MAAMY,SAAW,GAAGD,MACxBhB,EAAIK,MAAMa,MAAQ,GAAGF,KACtB,EAGMG,EAAiB,WACtBvB,SAASwB,oBAAoB,YAAaR,GAC1ChB,SAASwB,oBAAoB,UAAWD,EACzC,EAEAlB,EAAQoB,iBAAiB,aA7BA,SAAUR,GAElCH,EAAIG,EAAEE,QAGN,MAAMO,EAASC,OAAOC,iBAAiBxB,GACvCW,EAAIc,SAASH,EAAOJ,MAAO,IAG3BtB,SAASyB,iBAAiB,YAAaT,GACvChB,SAASyB,iBAAiB,UAAWF,EACtC,GAmBD,CAEA,oBAAMxC,GACLL,KAAKoD,SAASC,UACbrD,KAAKf,iBAAiBqE,SAAW,GACjC,IAAIC,QAAqCvD,KAAKwD,eAK7BC,MAAbF,IAOHvD,KAAKT,QAAUS,KAAKV,UAAUoE,KAC5BC,IACA,IAAIC,EAAOD,EAAEC,KAAKC,UAElB,MAAO,CACND,KAFYA,EAAO,IAAIA,KAAU,GAGjCE,KAAMH,EAAEI,YACR,IAEH/D,KAAKf,iBAAiBqE,SAAWC,EAAUS,Q,GAI9C,CAEA,kBAAMR,GACC,IAAIS,QAAoBjE,KAAKkE,gBACnC,GAAKD,EAeL,OAbAjE,KAAKN,iBAAmBuE,EAAIE,WAG5BnE,KAAKR,mBAAqByE,EAAIzE,mBAGzByE,EAAIxE,kBAGRO,KAAKP,kBAAoBwE,EAAIxE,kBAF7BI,QAAQuE,KAAK,uCAAyCH,EAAIxE,mBAMhDgE,MAAPQ,GACHjE,KAAKV,UAAY2E,EAAII,MAAM7C,KAEpByC,EAAII,YAHZ,EAfYxE,QAAQuE,KAAK,kCAoB1B,CAEA,mBAAMF,GAEL,OAAIlE,KAAKsE,kBACKtE,KAAKuE,2BAELvE,KAAKwE,4BAEpB,CAEA,gCAAMA,GACL3E,QAAQC,IAAI,8BACZ,IAAI2E,EAAO,kCAAkCzE,KAAKb,oBAAoBa,KAAK0E,qBACjET,QAAsBjE,KAAKD,MAAM4E,IAAIF,GAAMG,aAErD,OADA/E,QAAQC,IAAI,iBAAkBmE,GACvBA,CACR,CAEA,wBAAMM,G,MAGL,IAAIM,EAAO,CACV,MAAQ7E,KAAKrB,WAAWuB,UACxB4E,OAAkC,QAA3B,EAAA9E,KAAKrB,WAAWoG,mBAAW,eAAE1G,GACpC2G,SAAUhF,KAAKb,iBACf8F,MAAOjF,KAAK0E,oBAGb7E,QAAQC,IAAI,iCAAiC+E,GAC7C,IACI9E,EAAMC,KAAKtB,WAAWwG,SAEdnF,EAAIoF,QAAQ5F,QAAS,mBAAqB,2DAEhD,IAAI0E,QAAsBlE,EAAIqF,SALzB,oBAKuCP,GAAMD,aAExD,OADA/E,QAAQC,IAAI,6BAA8BmE,GACnCA,CAQR,CAGA,qBAAMoB,CAAgBC,GACrB,IAAIC,EAAmCvF,KAAKwF,8BACxCC,EAAiBzF,KAAK0F,0BAC1B7F,QAAQC,IAAI,kCAAmCyF,GAC/C,IAAII,EAAiB,CACpB,CAAEC,QAAS,SAAUC,MAAO,CAAEC,QAAS,qBAAuBC,UAAW,YAAcC,QAAS,CAACC,UAAa,KAAQjG,KAAKkG,kBAAkBX,EAAwB,YAAcE,EAAK,KACxL,CAAEG,QAAS,SAAUC,MAAO,CAAEC,QAAS,gBAAoBC,UAAW,OAAWC,QAAS,CAACG,KAAS,KAAQnG,KAAKkG,kBAAkBX,EAAwB,OAAcE,EAAK,KAC9K,CAAEG,QAAS,SAAUC,MAAO,CAAEC,QAAS,cAAmBC,UAAW,aAAeC,QAAS,CAACI,WAAc,KAAQpG,KAAKkG,kBAAkBX,EAAwB,aAAcE,EAAK,KACtL,CAAEG,QAAS,SAAUC,MAAO,CAAEC,QAAS,4BAA6BC,UAAW,cAAgBC,QAAS,CAACK,YAAe,KAAQrG,KAAKkG,kBAAkBX,EAAwB,cAAcE,EAAK,KAClM,CAAEG,QAAS,SAAUC,MAAO,CAAEC,QAAS,mBAAuBC,UAAW,UAAaC,QAAS,CAACM,QAAY,KAAQtG,KAAKkG,kBAAkBX,EAAwB,UAAcE,EAAK,KACtL,CAAEG,QAAS,SAAUC,MAAO,CAAEC,QAAS,mBAAuBC,UAAW,SAAYC,QAAS,CAACO,OAAW,KAAQvG,KAAKkG,kBAAkBX,EAAwB,SAAcE,EAAK,MAGrLzF,KAAKhB,YAAYwH,KAAKlB,EAAMK,EAC7B,CAEQ,2BAAAH,GACP,IAAID,EAAmC,GACvC,IAAK,IAAI3E,EAAI,EAAGA,EAAIZ,KAAKf,iBAAiBqE,SAASzC,OAAQD,IAChDZ,KAAKf,iBAAiBqE,SAAS1C,GAAI6F,YAC5ClB,EAAuBpH,QAAQ6B,KAAKR,mBAAmBoB,IAGzD,OAAO2E,CACR,CAEQ,uBAAAG,GACP,IAAIgB,EAA+B,GACnC,IAAK,IAAI9F,EAAI,EAAGA,EAAIZ,KAAKf,iBAAiBqE,SAASzC,OAAQD,IAChDZ,KAAKf,iBAAiBqE,SAAS1C,GAAI6F,YAC5CC,EAAmBvI,QAAQ6B,KAAKP,kBAAkBmB,IAGpD,OAAO8F,CACR,CAEA,iBAAAR,CAAkB1G,EAA8BmH,EAAoBD,GACnE,MAAME,EAAkB,UAAUD,IAC9B,EAAmBE,SAAWhH,QAAQC,IAAI,mDAAoD8G,GAElG,IAAIE,EAAwB,CAC3BtG,UAAUhB,EACVuH,eAAgBL,GAEjB1G,KAAKlB,OAAOkI,QAAQJ,EAAiBE,EAEtC,CAEA,YAAAG,CAAaC,G,MACZ,OAAqC,QAA9B,EAAAlH,KAAKR,mBAAmB0H,UAAM,eAAErG,QAAS,CACjD,CAEA,GAAAsG,CAAIC,EAAaF,GAChB,GAAKlH,KAAL,CAEA,GAAKA,KAAKP,kBAEV,OAAOO,KAAKP,kBAAkByH,GAFCrH,QAAQuE,KAAK,wB,MAF/BvE,QAAQuE,KAAK,WAM3B,CAIA,aAAAiD,CAAcH,EAAe5B,GACxB,EAAmBuB,SAAWhH,QAAQC,IAAI,oCAC9CE,KAAKf,iBAAiBqI,aAAaJ,EAAM5B,GAEzC,IAAIG,EAAiBzF,KAAK0F,0BAEtBH,EAAmCvF,KAAKwF,8BAE5C3F,QAAQC,IAAI,4BAA6ByF,GACzCvF,KAAKkG,kBAAkBX,EAAuB,YAAYE,EAC3D,CAGA,eAAM8B,CAAUC,GACfxH,KAAKyH,GAAKD,EACNxH,KAAKyH,IACRzH,KAAKb,iBAAmBqI,EAAGnJ,GAC3B2B,KAAKZ,mBAAqBoI,EAAG1D,WAEvB9D,KAAKK,mBAEXL,KAAKf,iBAAiBqE,SAAW,GACjCtD,KAAKf,iBAAiByI,iBAAmB,EACzC1H,KAAKT,QAAU,GACfS,KAAKN,kBAAmB,EAG1B,CAGA,+BAAMiI,GAAiD3H,KAAKyH,UAAYzH,KAAKK,gBAAoB,CACjG,wBAAMuH,GAED5H,KAAKyH,UAAYzH,KAAKK,gBAC3B,CAEO,oBAAMwH,GACZ,IAAIC,EAAI9H,KAAKd,gBACT2I,EAAyBC,EAAID,iBAEjC,OADAhI,QAAQC,IAAI,oBAAqB+H,EAAgBC,EAAIC,WAChDF,UACE7H,KAAKjB,MAAMiJ,YAAY,cAAc,yCACpC,EAGT,CAEG,mBAAMC,GACRpI,QAAQC,IAAI,wHACDE,KAAK6H,kBAGhB7H,KAAKD,MAAM4E,IAAI,sCAAsC3E,KAAKb,oBACzD+I,YAAYlI,KAAKpB,KAAKuJ,GAAG,uBAAwBnI,KAAKpB,KAAKuJ,GAAG,0BAC9DC,aAAa,GAAGpI,KAAKZ,0BACvB,CAEG,UAAMiJ,G,MACRxI,QAAQC,IAAI,UACN,IAAI2E,EAAO,+DAA+DzE,KAAKb,mBACrF,IAAKa,KAAKb,iBAAoB,OAC9B,IAAImJ,QAAmCtI,KAAKD,MAAM4E,IAAIF,GAAMG,aAClD0D,GACAtI,KAAKnB,OAAO0J,gBAAgB,2BAA4B,CAACrI,UAA+C,QAApC,EAAAF,KAAKrB,WAAW6J,4BAAoB,eAAEnK,GAAIoK,MAAOH,GAAS,CAACI,SAAS,GAEhJ,CAEH,mBAAMC,GAC0B,GAA3B3I,KAAKL,qBACRK,KAAKL,oBAAqB,QACpBK,KAAKjB,MAAM6J,UAAU,KAAuB5I,KAAKyH,IAAIoB,YAAWC,IAC1C,GAAvBA,EAAOC,cACV/I,KAAKK,iBAENL,KAAKL,oBAAqB,CAAK,IAG/B,CAGH,QAAAqJ,CACC5B,GAGA,GAAY,MAARA,EAAgB,OAAO,EAO3B,MADc,aAAa6B,KAAK7B,IACL,QAAQ6B,KAAK7B,EACzC,CAoBA,aAAMhE,CAAQ8F,GACb,IACClJ,KAAKmJ,SAAQ,SAEPD,G,SAGNlJ,KAAKmJ,SAAQ,GACbnJ,KAAKoB,e,CAEP,CAIA,OAAA+H,CAAQC,GACPpJ,KAAKJ,KAAOwJ,CACb,GAlIc,EAAAvC,SAAkB,EAvRhC,GAAC,EAAAwC,S,kDACD,GAAC,EAAAA,S,kEACD,GAAC,EAAAA,S,2DAPW9K,EAAkB,KAD9B,EAAA+K,W,uBAkBmB,IACC,IACD,IAAiC,EAAAC,KAAsB,KACzD,EAAAC,gBAAgC,IAAmC,IACzD,IACD,OAtBdjL,E","sources":["webpack://client-app/./src/app/components/pivot-grid-component/pivot-grid-component.scss","webpack://client-app/./src/app/components/pivot-grid-component/pivot-grid-component.html","webpack://client-app/./src/app/components/pivot-grid-component/pivot-grid-component.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, `h1.spinner{background:#d3d3d3;color:#fff;text-align:center;vertical-align:middle;z-index:10}.grid-template-container{position:relative;padding-left:5px;padding-top:4px;height:100%}.grid-template-container .pivot-grid-component{min-width:100%;width:100%;position:relative;white-space:nowrap;margin-bottom:30px}.grid-template-container .pivot-grid-component td,.grid-template-container .pivot-grid-component th{position:relative;border:1px solid #d3d3d3;border-top:0px;padding:.3em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:0}.grid-template-container .pivot-grid-component th:first-child,.grid-template-container .pivot-grid-component td:first-child{border-left:0px}.grid-template-container .pivot-grid-component th:last-child,.grid-template-container .pivot-grid-component td:last-child{border-right:0px}.grid-template-container .pivot-grid-component thead{position:sticky;top:0;z-index:10;background-color:#fff}.grid-template-container .pivot-grid-component .table-headlines{font-weight:500;position:relative}.grid-template-container .pivot-grid-component .table-headlines .header-text{padding-right:22px}.grid-template-container .pivot-grid-component .table-headlines .column-settings{position:absolute;padding:5px;right:0;top:50%;transform:translateY(-50%);border-left:1px #d3d3d3 solid;background-color:#fff}.grid-template-container .pivot-grid-component .table-headlines .column-settings:hover{cursor:pointer;background-color:#a9a9a9}.grid-template-container .pivot-grid-component tbody{-webkit-user-select:none;-ms-user-select:none;user-select:none}.grid-template-container .pivot-grid-component tbody tr{cursor:pointer}.grid-template-container .pivot-grid-component tbody .red-text{color:red}.grid-template-container .pivot-grid-component tbody .right-aligned-number{padding-right:5px;padding-left:5px;text-align:right}.grid-template-container .resizer{position:absolute;top:0;right:0;width:5px;cursor:col-resize;user-select:none}.grid-template-container .add-columns-msg{width:100%;height:2em;line-height:2em;position:absolute;left:50%;top:10%;transform:translateX(-50%);background-color:#d3d3d3;border-radius:2px;text-align:center}.grid-template-container .add-columns-msg .arrow-icon{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/pivot-grid-component/pivot-grid-component.scss\"],\"names\":[],\"mappings\":\"AAEA,WAKI,kBAAA,CACA,UAAA,CACA,iBAAA,CACA,qBAAA,CACA,UAAA,CAGJ,yBACI,iBAAA,CACA,gBAAA,CACA,eAAA,CACA,WAAA,CACA,+CACI,cAAA,CACA,UAAA,CACA,iBAAA,CACA,kBAAA,CACA,kBAAA,CACA,oGACI,iBAAA,CACA,wBAAA,CACA,cAAA,CACA,YAAA,CAEA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CAEJ,4HACI,eAAA,CAEJ,0HACI,gBAAA,CAEJ,qDACI,eAAA,CACA,KAAA,CACA,UAAA,CACA,qBAAA,CAEJ,gEACI,eAAA,CACA,iBAAA,CACA,6EACI,kBAAA,CAEJ,iFACI,iBAAA,CACA,WAAA,CACA,OAAA,CACA,OAAA,CACA,0BAAA,CACA,6BAAA,CACA,qBAAA,CAEJ,uFACI,cAAA,CACA,wBAAA,CAGR,qDACI,wBAAA,CACA,oBAAA,CACA,gBAAA,CACA,wDACI,cAAA,CAEJ,+DACI,SAAA,CAEJ,2EAGI,iBAAA,CACA,gBAAA,CACA,gBAAA,CA0BZ,kCACI,iBAAA,CACA,KAAA,CACA,OAAA,CACA,SAAA,CACA,iBAAA,CACA,gBAAA,CAEJ,0CACI,UAAA,CACA,UAAA,CACA,eAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,0BAAA,CACA,wBAAA,CACA,iBAAA,CACA,iBAAA,CACA,sDACI,+BAAA,CACA,4BAAA,CACA,2BAAA,CACA,0BAAA,CACA,uBAAA\",\"sourcesContent\":[\"@import \\\"./src/resources/customized-styles/variables.scss\\\";\\r\\n\\r\\nh1.spinner {\\r\\n //Position is absolute and the \\r\\n //first parent to have a position:relative\\r\\n //is 'shadow body-content--left', meaning\\r\\n //the spiner will be centered on the left-container\\r\\n background: lightgray;\\r\\n color: white;\\r\\n text-align: center;\\r\\n vertical-align: middle;\\r\\n z-index: 10;\\r\\n}\\r\\n\\r\\n.grid-template-container {\\r\\n position: relative;\\r\\n padding-left: 5px;\\r\\n padding-top:4px; //To make source-selector and grid align.\\r\\n height:100%;\\r\\n .pivot-grid-component {\\r\\n min-width: 100%;\\r\\n width: 100%;\\r\\n position: relative;\\r\\n white-space: nowrap;\\r\\n margin-bottom: 30px;//An offset to avoid last element not being shown.\\r\\n td, th{\\r\\n position: relative;\\r\\n border: 1px solid lightgray;\\r\\n border-top: 0px;\\r\\n padding: 0.3em;\\r\\n //These four lines is to enable ellipsis on text-overflow.\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n max-width: 0;\\r\\n }\\r\\n th:first-child, td:first-child {\\r\\n border-left: 0px;\\r\\n }\\r\\n th:last-child, td:last-child {\\r\\n border-right: 0px;\\r\\n }\\r\\n thead {\\r\\n position: sticky;\\r\\n top:0;\\r\\n z-index: 10;\\r\\n background-color: white;\\r\\n }\\r\\n .table-headlines {\\r\\n font-weight: 500;\\r\\n position: relative;\\r\\n .header-text {\\r\\n padding-right: 22px; //Using approx width of the settings button so these two can never overlap.\\r\\n }\\r\\n .column-settings {\\r\\n position: absolute;\\r\\n padding: 5px;\\r\\n right: 0;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\r\\n border-left: 1px lightgrey solid;\\r\\n background-color: white;\\r\\n }\\r\\n .column-settings:hover {\\r\\n cursor: pointer;\\r\\n background-color: darkgray;\\r\\n }\\r\\n }\\r\\n tbody {\\r\\n -webkit-user-select: none; /* Safari */\\r\\n -ms-user-select: none; /* IE 10 and IE 11 */\\r\\n user-select: none; /* Standard syntax */\\r\\n tr {\\r\\n cursor: pointer;\\r\\n }\\r\\n .red-text {\\r\\n color: red;\\r\\n }\\r\\n .right-aligned-number {\\r\\n // display: block;\\r\\n // width:100%;\\r\\n padding-right:5px;\\r\\n padding-left:5px;\\r\\n text-align: right;\\r\\n }\\r\\n // .number-td {\\r\\n // display: grid;\\r\\n // grid-template-columns: 1fr 1ch 1fr;\\r\\n // align-content: center;\\r\\n // width: 500px;\\r\\n // height:100%;\\r\\n // position: absolute;\\r\\n // right:50%;\\r\\n // bottom:50%;\\r\\n // transform: translate(50%, 50%);\\r\\n // .number {\\r\\n // text-align: right;\\r\\n // }\\r\\n // .decimal-point {\\r\\n // text-align: center;\\r\\n // }\\r\\n // .decimals {\\r\\n // text-align: left;\\r\\n // }\\r\\n // }\\r\\n \\r\\n }\\r\\n \\r\\n }\\r\\n .resizer {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 0;\\r\\n width: 5px;\\r\\n cursor: col-resize;\\r\\n user-select: none;\\r\\n }\\r\\n .add-columns-msg {\\r\\n width: 100%;\\r\\n height: 2em;\\r\\n line-height: 2em;\\r\\n position: absolute;\\r\\n left: 50%;\\r\\n top:10%;\\r\\n transform: translateX(-50%);\\r\\n background-color: lightgrey;\\r\\n border-radius: 2px;\\r\\n text-align: center;\\r\\n .arrow-icon {\\r\\n -webkit-transform: rotate(45deg);\\r\\n -moz-transform: rotate(45deg);\\r\\n -ms-transform: rotate(45deg);\\r\\n -o-transform: rotate(45deg);\\r\\n transform: rotate(45deg);\\r\\n }\\r\\n }\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","import { autoinject, bindable } from 'aurelia-framework';\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport { ApiClient } from 'app/services/api-client';\r\nimport { RequestMethod } from 'app/services/RequestMethod';\r\nimport { AzFuncsClient } from 'app/services/AzFuncsClient';\r\nimport { AppContextService } from 'app/services/app-context-service';\r\nimport { I18N } from 'aurelia-i18n';\r\nimport { Router } from 'aurelia-router';\r\nimport { QuantityFilterDto } from 'app/project/quantity-views/quantity-filters';\r\nimport { ModalService } from 'app/services/modal-service';\r\nimport { QuantityFilterColumns } from '../quantity-filter-columns/quantity-filter-columns';\r\nimport { ColInfo,PivotDto, ColInf2 } from './ColInfo';\r\nimport { ContextMenuService } from 'app/services/context-menu-service';\r\nimport { PivotGridSelectionService } from 'app/services/pivot-grid-selection-service';\r\nimport { OrgTokenService } from 'app/services/org-token-service';\r\nimport { ObjectIDsIF } from 'app/project/ifc-fun/openbim-container';\r\n\r\n\r\n\r\n@autoinject\r\nexport class PivotGridComponent {\r\n private quantityFilterId: string = \"\";\r\n private quantityFilterName: string = \"\";\r\n\tprivate subscriptions: Subscription[] = [];\r\n\r\n\t@bindable QF: QuantityFilterDto|undefined;\r\n\t@bindable shouldRoundNumbers: boolean | undefined;\r\n\t@bindable useFunction: boolean | undefined;\r\n\tprivate headerDTO: ColInfo[] = [];\r\n //private headers_: string[] = [];\r\n private headers: ColInf2[] = [];\r\n\tprivate entityLabelsPerRow: number[][] = []\r\n\tprivate revitElmIdsPerRow: number[][] = []\r\n\tprivate filterHasSources: boolean = false;\r\n\tprivate quantityColumnOpen: boolean = false;\r\n\t\r\n constructor(\r\n\t\tpublic apiClient: ApiClient, \r\n\t\tpublic azf_Client: AzFuncsClient,\r\n\t\tpublic appContext:AppContextService, private i18n: I18N, private router: Router,\r\n\t\tprivate events: EventAggregator, private modal: ModalService, private contextMenu: ContextMenuService,\r\n\t\tprivate selectionService: PivotGridSelectionService,\r\n\t\tprivate orgTokenService: OrgTokenService\r\n ) {\r\n\t\tconsole.log('ctor A'); \t\t\r\n\t}\r\n\t\r\n api():RequestMethod { \r\n\t\t//console.log('api A'); \t\t\r\n\t\treturn this.apiClient.project(this.appContext.projectId); \r\n\t}\r\n\r\n\tbind(): void {\r\n\t\tthis.quantityColumnOpen = false;\r\n\t\tthis.subscriptions = [\r\n\t\t\tthis.events.subscribe('pivot-grid-component:update-grid',() => {\r\n\t\t\t\tthis.initialiseGrid();\r\n\t\t\t}),\r\n\t\t\tthis.events.subscribe('base-viewer-combined:select', (response: {event: Event, objectIds: number[]}) => { this.highlightMatchingRows(response.objectIds)}),\r\n\r\n\t\t]\r\n\t}\r\n\r\n\thighlightMatchingRows(objectIds: number[]) {\r\n\t\tlet rowNumbersToHighlight: number[] = [];\r\n\t\tobjectIds.forEach((entityLabel: number) => {\r\n\t\t\tfor (let i = 0; i < this.entityLabelsPerRow.length; i++) {\r\n\t\t\t\tif (this.entityLabelsPerRow[i].filter((num: number) => num == entityLabel).length > 0) { //JavaScript arrays and objects are compared by reference and not by value, which is why we do not use include.\r\n\t\t\t\t\trowNumbersToHighlight.push(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.selectionService.selectFromViewer(rowNumbersToHighlight);\r\n\t\t\r\n\t}\r\n\r\n\tunbind(): void {\r\n\t\tthis.subscriptions.forEach(subscription => subscription.dispose());\r\n\t}\r\n\r\n\tsetupResizing() {\r\n\t\t//Code inspiration from: https://htmldom.dev/resize-columns-of-a-table/\r\n\t\t// Query the table\r\n\t\tconst table = document.getElementById('resizable');\r\n\r\n\t\t// Query all headers\r\n\t\tconst cols: NodeListOf | undefined = table?.querySelectorAll('th');\r\n\r\n\t\t// Loop over them\r\n\t\tcols?.forEach(col => {\r\n\t\t\tif (col == cols[cols.length -1]) { return; }; //We do not want to set a resizer on last column.\r\n\t\t\t// Create a resizer element\r\n\t\t\tconst resizer = document.createElement('div');\r\n\t\t\tresizer.classList.add('resizer');\r\n\r\n\t\t\t// Set the height\r\n\t\t\tresizer.style.height = `${table?.offsetHeight}px`;\r\n\r\n\t\t\t// Add a resizer element to the column\r\n\t\t\tcol.appendChild(resizer);\r\n\r\n\t\t\t// Will be implemented in the next section\r\n\t\t\tthis.createResizableColumn(col, resizer);\r\n\t\t});\r\n\t}\r\n\r\n\tcreateResizableColumn(col: HTMLTableCellElement, resizer: HTMLDivElement) {\r\n\t\t// Track the current position of mouse\r\n\t\tlet x = 0;\r\n\t\tlet w = 0;\r\n\t\r\n\t\tconst mouseDownHandler = function (e: any) {\r\n\t\t\t// Get the current mouse position\r\n\t\t\tx = e.clientX;\r\n\t\r\n\t\t\t// Calculate the current width of column\r\n\t\t\tconst styles = window.getComputedStyle(col);\r\n\t\t\tw = parseInt(styles.width, 10);\r\n\t\r\n\t\t\t// Attach listeners for document's events\r\n\t\t\tdocument.addEventListener('mousemove', mouseMoveHandler);\r\n\t\t\tdocument.addEventListener('mouseup', mouseUpHandler);\r\n\t\t};\r\n\t\r\n\t\tconst mouseMoveHandler = function (e: any) {\r\n\t\t\t// Determine how far the mouse has been moved\r\n\t\t\tconst dx = e.clientX - x;\r\n\t\t\t\r\n\t\t\t// Update the width of column\r\n\t\t\tlet newWidth: number = w + dx;\r\n\t\t\tcol.style.minWidth = `${newWidth}px`; //Both has to be set.\r\n\t\t\tcol.style.width = `${newWidth}px`; //Both has to be set.\r\n\t\t};\r\n\t\r\n\t\t// When user releases the mouse, remove the existing event listeners\r\n\t\tconst mouseUpHandler = function () {\r\n\t\t\tdocument.removeEventListener('mousemove', mouseMoveHandler);\r\n\t\t\tdocument.removeEventListener('mouseup', mouseUpHandler);\r\n\t\t};\r\n\t\r\n\t\tresizer.addEventListener('mousedown', mouseDownHandler);\r\n\t}\r\n\r\n\tasync initialiseGrid() {\r\n\t\tthis.runAnim( async() => {\t\r\n\t\t\tthis.selectionService.gridData = [];\r\n\t\t\tlet pivotData:PivotDto|undefined = await this.getPivotData();\r\n\t\t\t\r\n\t\t\t// console.log(\"This is the grid data we have to work with \", pivotData);\r\n\t\t\t//for (let xx of pivotData) { console.log(xx); }\r\n\t\t\t\r\n\t\t\tif (pivotData != undefined) {\r\n\t\t\t\t//if (pivotData.length > 0) {\r\n\t\t\t\t//\tthis.headers_ = pivotData[0];\r\n\t\t\t\t//\tpivotData.shift(); // first row, which we put into headers instead.\r\n\t\t\t\t//\tconsole.log(\"HEADERS \" , this.headers_);\r\n\t\t\t\t//}\r\n\r\n\t\t\t\tthis.headers = this.headerDTO.map( \r\n\t\t\t\t\t(c:ColInfo):ColInf2 => {\r\n\t\t\t\t\t\tlet unit = c.unit.unitShort;\r\n\t\t\t\t\t\tlet unit_s = unit ? `(${unit})` : '';\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tunit: unit_s, //c.unit.unitShort, \r\n\t\t\t\t\t\t\tname: c.headerLabel // c.properColumnName\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\t\r\n\t\t\t\tthis.selectionService.gridData = pivotData.rounded;\t\r\n\t\t\t}\r\n\t\t});\r\n\t\t//console.log('headers2:', this.headers);\r\n\t}\r\n\r\n\tasync getPivotData(): Promise { //any[][]\r\n let dto:PivotIF = await this.getFromServer();\r\n\t\tif (!dto) { console.warn('getPivotData got empty PivotIF.'); return; }\r\n\r\n\t\tthis.filterHasSources = dto.hasSources;\r\n\t\t//console.log(\"DTO.has-Sources \" , dto.has-Sources);\r\n\r\n\t\tthis.entityLabelsPerRow = dto.entityLabelsPerRow;\r\n\t\t//console.log(\"working? \" , this.entityLabelsPerRow);//getPivotData\r\n\r\n\t\tif (!dto.revitElmIdsPerRow) {\r\n\t\t\tconsole.warn(\"PivotIF.revitElmIdsPerRow was empty:\" , dto.revitElmIdsPerRow);//getPivotData\t\r\n\t\t} else {\r\n\t\t\tthis.revitElmIdsPerRow = dto.revitElmIdsPerRow;\r\n\t\t\t//console.log(\"revitElmIdsPerRow? \" , this.entityLabelsPerRow);//getPivotData\t\r\n\t\t}\r\n\r\n\t\tif (dto != undefined) {\r\n\t\t\tthis.headerDTO = dto.pivot.cols;\r\n\t\t\t//console.log('headerDTO:', this.headerDTO);\r\n\t\t\treturn dto.pivot; //.precise; //grid;\r\n\t\t}\r\n\t}\r\n\r\n\tasync getFromServer():Promise {\r\n\t\t// console.log('getFromServer, useFunction is:', this.useFunction);\r\n\t\tif (this.useFunction) {\r\n\t\t\treturn await this.getFromServer_func();\r\n\t\t} else {\r\n\t\t\treturn await this.getFromServer_AspnetAction();\r\n\t\t}\r\n\t}\r\n\r\n\tasync getFromServer_AspnetAction():Promise {\r\n\t\tconsole.log('getFromServer_AspnetAction');\r\n\t\tlet path = `QuantityFilter/RenderPivotGrid/${this.quantityFilterId}/${this.shouldRoundNumbers}`;\t\r\n let dto : PivotIF = await this.api().get(path).jsonResult();\r\n\t\tconsole.log('B we got back:', dto);\r\n\t\treturn dto;\r\n\t}\r\n\r\n\tasync getFromServer_func():Promise {\r\n\t\t// \"PrjId\": Meget maerkeligt - hvis jeg laver en af json keys om til streng,\r\n\t\t// ka azure-functions godt modtage det??\r\n\t\tlet args = {\r\n\t\t\t\"PrjId\":this.appContext.projectId,\r\n\t\t\tUserId:this.appContext.currentUser?.id,\r\n\t\t\tFilterId: this.quantityFilterId, \r\n\t\t\tRound: this.shouldRoundNumbers\r\n\t\t};\r\n\t\t// https://blog.bredvid.no/patterns-for-securing-your-azure-functions-2fef634f4020\r\n\t\tconsole.log('getFromServer_func, inputArgs:',args); \r\n\t\tlet path = '/api/QuantityFunc'; //?code=_1k2Wka7rVYnJB7zgQNjWcSzqVhnRMWHYLYpYI-lKrECAzFuOTxh0w=='; // todo, vi skal ha fundet en bedre maade.\r\n\t\tlet api = this.azf_Client.custom(); \r\n\r\n (api.request.headers)[\"x-functions-key\"] = \"_1k2Wka7rVYnJB7zgQNjWcSzqVhnRMWHYLYpYI-lKrECAzFuOTxh0w==\";\r\n\r\n let dto : PivotIF = await api.postJson(path,args).jsonResult();\r\n\t\tconsole.log('A PivotIF dto we got back:', dto);\r\n\t\treturn dto;\r\n\t\t/*\r\n\t\tFixed by settings CORS on Azure Function, OR defining a cors host policy in local settings (only works for local.)\r\n\t\t Cross-Origin Request Blocked: \r\n\t\t The Same Origin Policy disallows reading the remote resource \r\n\t\t at http://localhost:7155/api/QuantityFunc.\r\n\t\t (Reason: CORS request did not succeed). \r\n\t\t Status code: (null). */\r\n\t}\r\n\r\n\r\n\tasync showContextMenu(event: PointerEvent): Promise {\r\n\t\tlet entityLabelsOfSelected: number[] = this.getEntityLabelsFromSelected();\r\n\t\tlet rios: number[] = this.getRevitIDsFromSelected(); //revitIDsOfSelected\r\n\t\tconsole.log(\"entityLabels used selected rows\", entityLabelsOfSelected);\r\n\t\tlet actions: any[] = [\r\n\t\t\t{ viewKey: \"button\", setup: { textKey: \"Highlight selected\",\t\tactionKey: \"highlight\",\t\tservice: {highlight: \t\t() => { this.sendEventToViewer(entityLabelsOfSelected, \"highlight\", rios) }}}},\r\n\t\t\t{ viewKey: \"button\", setup: { textKey: \"Hide selected\",\t\t\t\tactionKey: \"hide\", \t\t\tservice: {hide: \t\t\t() => { this.sendEventToViewer(entityLabelsOfSelected, \"hide\", rios) }}}},\r\n\t\t\t{ viewKey: \"button\", setup: { textKey: \"Hide others\", \t\t\t\tactionKey: \"hideOthers\", \tservice: {hideOthers: \t\t() => { this.sendEventToViewer(entityLabelsOfSelected, \"hideOthers\", rios) }}}},\r\n\t\t\t{ viewKey: \"button\", setup: { textKey: \"Make selected translucent\",\tactionKey: \"translucent\", \tservice: {translucent: \t\t() => { this.sendEventToViewer(entityLabelsOfSelected, \"translucent\",rios) }}}},\r\n\t\t\t{ viewKey: \"button\", setup: { textKey: \"Isolate selected\", \t\t\tactionKey: \"isolate\", \t\tservice: {isolate: \t\t\t() => { this.sendEventToViewer(entityLabelsOfSelected, \"isolate\", rios) }}}},\r\n\t\t\t{ viewKey: \"button\", setup: { textKey: \"Look at selected\", \t\t\tactionKey: \"lookAt\", \t\tservice: {lookAt: \t\t\t() => { this.sendEventToViewer(entityLabelsOfSelected, \"lookAt\", rios) }}}}\r\n\t\t];\r\n\r\n\t\tthis.contextMenu.open(event,actions);\r\n\t}\r\n\r\n\tprivate getEntityLabelsFromSelected(): number[] {\r\n\t\tlet entityLabelsOfSelected: number[] = [];\r\n\t\tfor (let i = 0; i < this.selectionService.gridData.length; i++) {\r\n\t\t\tif ((this.selectionService.gridData[i]).isSelected) { //isSelected is a hack for handling selection.\r\n\t\t\t\tentityLabelsOfSelected.push(...this.entityLabelsPerRow[i]);//getEntityLabelsFromSelected\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn entityLabelsOfSelected;\r\n\t}\r\n\r\n\tprivate getRevitIDsFromSelected(): number[] {\r\n\t\tlet revitIDsOfSelected: number[] = [];\r\n\t\tfor (let i = 0; i < this.selectionService.gridData.length; i++) {\r\n\t\t\tif ((this.selectionService.gridData[i]).isSelected) { //isSelected is a hack for handling selection.\r\n\t\t\t\trevitIDsOfSelected.push(...this.revitElmIdsPerRow[i]);//getRevitIDsFromSelected\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn revitIDsOfSelected;\r\n\t}\r\n\r\n\tsendEventToViewer(entityLabelsPerRow: number[], eventToSend: string,revitIDsOfSelected: number[]) {\r\n\t\tconst eventNAMEToSend = `viewer:${eventToSend}`;\r\n\t\tif (PivotGridComponent.showLog) { console.log('PivotGridComponent.sendEventToViewer, eventName:', eventNAMEToSend); }\r\n\r\n\t\tlet objectIDs:ObjectIDsIF = {\r\n\t\t\tobjectIds:entityLabelsPerRow,\r\n\t\t\trevitObjectIds: revitIDsOfSelected\r\n\t\t};\r\n\t\tthis.events.publish(eventNAMEToSend, objectIDs); \r\n\t\t//this.events.publish(eventNAMEToSend, entityLabelsPerRow); //revitIDsOfSelected\r\n\t}\r\n\r\n\thasInstances(index: number): boolean {\r\n\t\treturn this.entityLabelsPerRow[index]?.length > 0;//hasInstances\r\n\t}\r\n\r\n\tinf(cell:string, index: number): any {\r\n\t\tif (!this) { console.warn('no this.'); return; }\r\n\r\n\t\tif (!this.revitElmIdsPerRow) { console.warn('no revitElmIdsPerRow.'); return; }\r\n\r\n\t\treturn this.revitElmIdsPerRow[index];//inf()\r\n\t\t//return this.entityLabelsPerRow[index];//inf()\r\n\t}\r\n\r\n\tpublic static showLog:boolean = false;\r\n\r\n\tselectAndView(index: number, event: PointerEvent): void {\r\n\t\tif (PivotGridComponent.showLog) { console.log('PivotGridComponent.selectAndView'); }\r\n\t\tthis.selectionService.handleSelect(index,event);\r\n\r\n\t\tlet rios: number[] = this.getRevitIDsFromSelected(); //revitIDsOfSelected\r\n\r\n\t\tlet entityLabelsOfSelected: number[] = this.getEntityLabelsFromSelected();\r\n\r\n\t\tconsole.log('..entityLabelsOfSelected:', entityLabelsOfSelected);\r\n\t\tthis.sendEventToViewer(entityLabelsOfSelected,'highlight',rios); // ie viewer:highlight\r\n\t}\r\n\r\n\r\n\tasync QFChanged(qf: QuantityFilterDto) {\r\n\t\tthis.QF = qf;\r\n\t\tif (this.QF) {\r\n\t\t\tthis.quantityFilterId = qf.id;\r\n\t\t\tthis.quantityFilterName = qf.name;\r\n\t\t\t//console.log(\"SELECTED \" , this.QF);\r\n\t\t\tawait this.initialiseGrid();\r\n\t\t} else {\r\n\t\t\tthis.selectionService.gridData = [];\r\n\t\t\tthis.selectionService.lastSelectedRow = -1;\r\n\t\t\tthis.headers = [];\r\n\t\t\tthis.filterHasSources = false;\r\n\t\t\r\n\t\t}\r\n\t}\r\n\r\n\t// shouldRoundNumbers_Changed - we cannot rename it, as it maps magically?\r\n\tasync shouldRoundNumbersChanged(): Promise { if (this.QF) { await this.initialiseGrid(); } }\r\n\tasync useFunctionChanged(): Promise { \r\n\t\t//console.log('useFunctionChanged', this.useFunction);\r\n\t\tif (this.QF) { await this.initialiseGrid(); }\r\n\t}\r\n\r\n\tpublic async hasOrgSelected():Promise {\r\n\t\tlet ots=this.orgTokenService;\r\n\t\tlet hasOrgSelected:boolean = ots.hasOrgSelected();\r\n\t\tconsole.log('hasOrgSelected C?', hasOrgSelected, ots.orgId());\r\n\t\tif (!hasOrgSelected) {\r\n\t\t\tawait this.modal.OpenMessage('Information','Please select a current organisation');\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n async exportToExcel(): Promise {\r\n\t\tconsole.log('exportToExcel A C:/dev/aoc/AO.Client/ClientApp/src/app/components/pivot-grid-component/pivot-grid-component.ts');\r\n\t\tif (!await this.hasOrgSelected()) { return; }\r\n\r\n\t\t// todo, it should probably be the RAW result?\r\n\t\tthis.api().get(`QuantityFilter/RenderQuantityPivot/${this.quantityFilterId}`)\r\n\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_Generic'))\r\n\t\t.downloadFile(`${this.quantityFilterName}.xlsx`);\r\n\t}\r\n\r\n async back(): Promise {\r\n\t\tconsole.log('back A');\r\n let path = `QuantityFilter/GetQuantityViewIdByFilterId?quantityFilterId=${this.quantityFilterId}`;\r\n\t\tif (!this.quantityFilterId) { return; }\r\n\t\tlet QV_Ids: string | undefined = await this.api().get(path).jsonResult(); \r\n if (QV_Ids) {\r\n this.router.navigateToRoute('project/quantity-filters', {projectId: this.appContext.getSelectedProject()?.id, QV_Id: QV_Ids}, {replace: true});\r\n }\r\n }\r\n\r\n\tasync updateColumns(): Promise {\r\n\t\tif (this.quantityColumnOpen == false) {\r\n\t\t\tthis.quantityColumnOpen = true;\r\n\t\t\tawait this.modal.OpenModal(QuantityFilterColumns, this.QF).whenClosed(result => {\r\n\t\t\t\tif (result.wasCancelled != true) {\r\n\t\t\t\t\tthis.initialiseGrid();\r\n\t\t\t\t}\r\n\t\t\t\tthis.quantityColumnOpen = false;\r\n\t\t\t});\r\n\t\t}\r\n }\r\n\r\n\r\n\tisNumber(\r\n\t\tcell: string | null\r\n\t\t// columnIndex: number // JG: Jeg ved ikke hvad dette er, men det er ikke andre steder i koden..\r\n\t): boolean {\r\n\t\tif (cell == null) { return false; }\r\n\t\t// if (this.shouldBeRightAligned(columnIndex)) { return false; }\r\n\t\t//console.log(\"Get column index \" , columnIndex);\r\n\r\n\t\t// console.log(\"headers \" , this.headers); // JG: Det er egentlig en masse log, vi ikke behøver pt.\r\n\r\n\t\tlet isFloat = /^\\d+\\.\\d+$/.test(cell); //IsFloat // JG: hvis vi ønsker at gøre dette, ku vi ikke bare lave en parseFloat istedet, som nok har bedre performance? (ville skulle tænkes igennem, om det gør det samme.)\r\n\t\treturn isFloat ? isFloat : /^\\d+$/.test(cell); //IsInt\r\n\t}\r\n\r\n\t// shouldBeRightAligned(columnIndex: number) {\r\n\t// \tif (this.headers[columnIndex].name.toLocaleLowerCase().includes('num')) { return true; }\r\n\t// \tif (this.headers[columnIndex].name.toLocaleLowerCase().includes('ajourcount')) { return true; }\r\n\t// \treturn false;\r\n\t// }\r\n\r\n\t// getIntegrals(cell: string): string {\r\n\t// \tif (!cell.includes(\".\")) { return cell }\r\n\t// \tlet integralValue: string = cell.substring(0, cell.indexOf(\".\"));\r\n\t// \treturn integralValue;\r\n\t// }\r\n\r\n\t// getDecimals(cell: string): string {\r\n\t// \tif (!cell.includes(\".\")) { return \"0\" }\r\n\t// \tlet decimalValue: string = cell.slice(cell.indexOf('.') + 1);\r\n\t// \treturn decimalValue;\r\n\t// }\r\n\r\n\tasync runAnim(download: ()=>Promise ) {\r\n\t\ttry {\r\n\t\t\tthis.animate(true);\r\n\t\t\t//console.log('before rendering the grid');\r\n\t\t\tawait download();\r\n\t\t} finally {\r\n\t\t\t//console.log('after rendering grid');\r\n\t\t\tthis.animate(false);\r\n\t\t\tthis.setupResizing();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic anim:boolean = false; //true;\r\n\t\r\n\tanimate(on:boolean): void {\r\n\t\tthis.anim = on;\r\n\t}\r\n}\r\n\r\n\r\ninterface PivotIF { \r\n\tpivot: PivotDto, \r\n\tentityLabelsPerRow: number[][], \r\n\trevitElmIdsPerRow: number[][], \r\n\thasSources: boolean \r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","PivotGridComponent","constructor","apiClient","azf_Client","appContext","i18n","router","events","modal","contextMenu","selectionService","orgTokenService","quantityFilterId","quantityFilterName","subscriptions","headerDTO","headers","entityLabelsPerRow","revitElmIdsPerRow","filterHasSources","quantityColumnOpen","anim","console","log","api","this","project","projectId","bind","subscribe","initialiseGrid","response","highlightMatchingRows","objectIds","rowNumbersToHighlight","forEach","entityLabel","i","length","filter","num","selectFromViewer","unbind","subscription","dispose","setupResizing","table","document","getElementById","cols","querySelectorAll","col","resizer","createElement","classList","add","style","height","offsetHeight","appendChild","createResizableColumn","x","w","mouseMoveHandler","e","dx","clientX","newWidth","minWidth","width","mouseUpHandler","removeEventListener","addEventListener","styles","window","getComputedStyle","parseInt","runAnim","async","gridData","pivotData","getPivotData","undefined","map","c","unit","unitShort","name","headerLabel","rounded","dto","getFromServer","hasSources","warn","pivot","useFunction","getFromServer_func","getFromServer_AspnetAction","path","shouldRoundNumbers","get","jsonResult","args","UserId","currentUser","FilterId","Round","custom","request","postJson","showContextMenu","event","entityLabelsOfSelected","getEntityLabelsFromSelected","rios","getRevitIDsFromSelected","actions","viewKey","setup","textKey","actionKey","service","highlight","sendEventToViewer","hide","hideOthers","translucent","isolate","lookAt","open","isSelected","revitIDsOfSelected","eventToSend","eventNAMEToSend","showLog","objectIDs","revitObjectIds","publish","hasInstances","index","inf","cell","selectAndView","handleSelect","QFChanged","qf","QF","lastSelectedRow","shouldRoundNumbersChanged","useFunctionChanged","hasOrgSelected","ots","orgId","OpenMessage","exportToExcel","handleError","tr","downloadFile","back","QV_Ids","navigateToRoute","getSelectedProject","QV_Id","replace","updateColumns","OpenModal","whenClosed","result","wasCancelled","isNumber","test","download","animate","on","bindable","autoinject","I18N","EventAggregator"],"sourceRoot":""}