@huntsman-cancer-institute/misc 17.0.5 → 17.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -86,20 +86,20 @@ export class PairedDataComponent {
|
|
|
86
86
|
</div>
|
|
87
87
|
</div>
|
|
88
88
|
<!-- vertical separator -->
|
|
89
|
-
<div *ngIf="col < numColumns - 1" class="d-flex
|
|
89
|
+
<div *ngIf="col < numColumns - 1" class="d-flex ms-2 me-2" style="border-style:solid;border-width:1px;color:#98C7E0;"></div>
|
|
90
90
|
</ng-container>
|
|
91
91
|
</div>
|
|
92
92
|
</div>
|
|
93
93
|
<!-- Default templates for a row -->
|
|
94
94
|
<ng-template #defaultKeyTemplate let-row="rowData">
|
|
95
|
-
<div class="d-flex flex-grow-1
|
|
95
|
+
<div class="d-flex flex-grow-1 ps-2" style="align-items: center;">
|
|
96
96
|
{{row.key}}
|
|
97
97
|
</div>
|
|
98
98
|
</ng-template>
|
|
99
99
|
|
|
100
100
|
<!--The makes sure the div will have a dimension even when row.value is undefined/null -->
|
|
101
101
|
<ng-template #defaultValueTemplate let-row="rowData">
|
|
102
|
-
<div class="d-flex flex-grow-1
|
|
102
|
+
<div class="d-flex flex-grow-1 ps-2" style="align-items: center;font-weight:bold">
|
|
103
103
|
{{row.value}}<span [innerHTML]="' '"></span>
|
|
104
104
|
</div>
|
|
105
105
|
</ng-template>
|
|
@@ -133,20 +133,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
133
133
|
</div>
|
|
134
134
|
</div>
|
|
135
135
|
<!-- vertical separator -->
|
|
136
|
-
<div *ngIf="col < numColumns - 1" class="d-flex
|
|
136
|
+
<div *ngIf="col < numColumns - 1" class="d-flex ms-2 me-2" style="border-style:solid;border-width:1px;color:#98C7E0;"></div>
|
|
137
137
|
</ng-container>
|
|
138
138
|
</div>
|
|
139
139
|
</div>
|
|
140
140
|
<!-- Default templates for a row -->
|
|
141
141
|
<ng-template #defaultKeyTemplate let-row="rowData">
|
|
142
|
-
<div class="d-flex flex-grow-1
|
|
142
|
+
<div class="d-flex flex-grow-1 ps-2" style="align-items: center;">
|
|
143
143
|
{{row.key}}
|
|
144
144
|
</div>
|
|
145
145
|
</ng-template>
|
|
146
146
|
|
|
147
147
|
<!--The makes sure the div will have a dimension even when row.value is undefined/null -->
|
|
148
148
|
<ng-template #defaultValueTemplate let-row="rowData">
|
|
149
|
-
<div class="d-flex flex-grow-1
|
|
149
|
+
<div class="d-flex flex-grow-1 ps-2" style="align-items: center;font-weight:bold">
|
|
150
150
|
{{row.value}}<span [innerHTML]="' '"></span>
|
|
151
151
|
</div>
|
|
152
152
|
</ng-template>
|
|
@@ -168,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
168
168
|
type: ViewChild,
|
|
169
169
|
args: ["defaultValueTemplate", { read: TemplateRef, static: true }]
|
|
170
170
|
}] } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpcmVkLWRhdGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbWlzYy9zcmMvcGFpcmVkLWRhdGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFDLE9BQU8sRUFDTixTQUFTLEVBS1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNSLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQzs7O0FBRXZCOztFQUVFO0FBb0RILE1BQU0sT0FBTyxtQkFBbUI7SUFlN0IsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFGeEQsYUFBUSxHQUFXLFVBQVUsQ0FBQztJQUU2QixDQUFDO0lBRTVELGVBQWU7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsdUZBQXVGO0lBQ3ZGLGFBQWE7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDakIsT0FBTztRQUNWLElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUNELE9B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QUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIiBpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIGlzRGV2TW9kZSxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgSW5wdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gICBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuIC8qKlxyXG4gKiBTaW1wbGUgaG9yaXpvbnRhbCBkYXRhIGRpc3BsYXlcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgc2VsZWN0b3I6IFwiaGNpLXBhaXJlZC1kYXRhXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiZmxleDoxIDEgMTAwJVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMwMEFBRkZcIj5cclxuICAgICAgICAgPGkgIGNsYXNzPVwiaGNpIHt7aGVhZGVyLmljb259fSBmYS0yeFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT57e2hlYWRlci50aXRsZX19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNyZWF0ZU51bUNvbHMoKVwiPlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIFtuZ1N0eWxlXT1cInsnZmxleCcgOiBjb2xTdHlsZX1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiYWxpZ24taXRlbXM6ZmxleC1lbmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb3dEYXRhIG9mIGdldFJvd3NGb3JDb2x1bW4oY29sKTsgbGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnZXRLZXlUZW1wbGF0ZShjb2wsaSk7IGNvbnRleHQ6IHtyb3dEYXRhOiByb3dEYXRhfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93RGF0YSBvZiBnZXRSb3dzRm9yQ29sdW1uKGNvbCk7IGxldCBpID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2V0VmFsdWVUZW1wbGF0ZShjb2wsaSk7IGNvbnRleHQ6IHtyb3dEYXRhOiByb3dEYXRhfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICAgPCEtLSB2ZXJ0aWNhbCBzZXBhcmF0b3IgLS0+XHJcbiAgICAgICA8ZGl2ICpuZ0lmPVwiY29sIDwgbnVtQ29sdW1ucyAtIDFcIiBjbGFzcz1cImQtZmxleCBtbC0yIG1yLTJcIiBzdHlsZT1cImJvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2NvbG9yOiM5OEM3RTA7XCI+PC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8L2Rpdj5cclxuIDwvZGl2PlxyXG4gICA8IS0tIERlZmF1bHQgdGVtcGxhdGVzIGZvciBhIHJvdyAtLT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEtleVRlbXBsYXRlIGxldC1yb3c9XCJyb3dEYXRhXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTEgcGwtMlwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICB7e3Jvdy5rZXl9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPCEtLVRoZSAmbmJzcDsgbWFrZXMgc3VyZSB0aGUgZGl2IHdpbGwgaGF2ZSBhIGRpbWVuc2lvbiBldmVuIHdoZW4gcm93LnZhbHVlIGlzIHVuZGVmaW5lZC9udWxsIC0tPlxyXG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VmFsdWVUZW1wbGF0ZSBsZXQtcm93PVwicm93RGF0YVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xIHBsLTJcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBjZW50ZXI7Zm9udC13ZWlnaHQ6Ym9sZFwiPlxyXG4gICAgICAgIHt7cm93LnZhbHVlfX08c3BhbiBbaW5uZXJIVE1MXT1cIicmbmJzcDsnXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICBgLCBzdHlsZXM6IFtgXHJcblxyXG5cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFpcmVkRGF0YUNvbXBvbmVudCB7XHJcblxyXG4gICAvLyBob3cgbWFueSBjb2x1bW5zXHJcbiAgIEBJbnB1dChcIm51bUNvbHVtbnNcIikgbnVtQ29sdW1uczogbnVtYmVyO1xyXG4gICAvLyB0aGUgaGVhZGVyIHRpdGxlLCBpY29uLCAuLi5cclxuICAgQElucHV0KFwiaGVhZGVyXCIpIGhlYWRlcjogYW55O1xyXG4gICAvLyB0aGUgZGF0YSByb3dzXHJcbiAgIEBJbnB1dChcImRhdGFBcnJheVwiKSBkYXRhQXJyYXk6IE9iamVjdFtdO1xyXG5cclxuICAgQFZpZXdDaGlsZChcImRlZmF1bHRLZXlUZW1wbGF0ZVwiLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pIGRlZmF1bHRLZXlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgQFZpZXdDaGlsZChcImRlZmF1bHRWYWx1ZVRlbXBsYXRlXCIsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSkgZGVmYXVsdFZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICBudW1Sb3dzUGVyQ29sdW1uOiBudW1iZXI7XHJcbiAgIGNvbFN0eWxlOiBzdHJpbmcgPSBcIjEgMSAxMDAlXCI7XHJcblxyXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgIHRoaXMubnVtUm93c1BlckNvbHVtbiA9IE1hdGguY2VpbCh0aGlzLmRhdGFBcnJheS5sZW5ndGgvdGhpcy5udW1Db2x1bW5zKTtcclxuICAgICAgIHRoaXMuY29sU3R5bGUgPSAnMSAxICcgKyAoTWF0aC5mbG9vcigxMDAvdGhpcy5udW1Db2x1bW5zKS0yKSArIFwiJVwiO1xyXG4gICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIC8vIEEgcGxhY2Vob2xkZXIgbWV0aG9kIHRvIHJldHVybiBhbiBhcnJheSBvZiBpbnRlZ2VycyByZXByZXNlbnRpbmcgdGhlIGNvbHVtbnMgbnVtYmVyc1xyXG4gICBjcmVhdGVOdW1Db2xzKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5udW1Db2x1bW5zKVxyXG4gICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBsZXQgaXRlbXM6IG51bWJlcltdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm51bUNvbHVtbnM7IGkrKykge1xyXG4gICAgICAgICAgICBpdGVtcy5wdXNoKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgIH1cclxuXHJcbiAgIC8vIFJldHVybiB0aGUgcm93cyBmb3IgdGhlIGdpdmVuIGNvbHVtblxyXG4gICBnZXRSb3dzRm9yQ29sdW1uKGNvbDogbnVtYmVyKSB7XHJcbiAgICAgIGlmICghdGhpcy5udW1Db2x1bW5zIHx8ICF0aGlzLm51bVJvd3NQZXJDb2x1bW4pXHJcbiAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICBsZXQgY29sdW1uUm93RGF0YTogT2JqZWN0W10gPSBbXTtcclxuICAgICAgaWYgKGNvbCA8ICh0aGlzLm51bUNvbHVtbnMgLSAxKSkge1xyXG4gICAgICAgICBmb3IgKGxldCBpID0gY29sICogdGhpcy5udW1Sb3dzUGVyQ29sdW1uOyBpIDwgKGNvbCArIDEpICogdGhpcy5udW1Sb3dzUGVyQ29sdW1uOyBpKyspIHtcclxuICAgICAgICAgICAgY29sdW1uUm93RGF0YS5wdXNoKHRoaXMuZGF0YUFycmF5W2ldKTtcclxuICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIGxhc3QgY29sdW1uIGp1c3QgaGFzIHRoZSByZW1haW5pbmcgcm93cyB3aGljaCBjYW4gYmUgbGVzcyB0aGFuIG51bVJvd3NcclxuICAgICAgICBmb3IgKGxldCBpID0gKHRoaXMubnVtQ29sdW1ucyAtIDEpICogdGhpcy5udW1Sb3dzUGVyQ29sdW1uOyBpIDwgdGhpcy5kYXRhQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29sdW1uUm93RGF0YS5wdXNoKHRoaXMuZGF0YUFycmF5W2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNvbHVtblJvd0RhdGE7XHJcbiAgIH1cclxuXHJcbiAgIGdldEtleVRlbXBsYXRlKGNvbDogbnVtYmVyLCByb3c6IG51bWJlcikge1xyXG4gICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBjb2wgKiB0aGlzLm51bVJvd3NQZXJDb2x1bW4gKyByb3c7XHJcbiAgICAgICBpZiAoIXRoaXMuZGF0YUFycmF5W2luZGV4XVsna2V5VGVtcGxhdGUnXSkge1xyXG4gICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRLZXlUZW1wbGF0ZTtcclxuICAgICAgIH1cclxuICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFBcnJheVtpbmRleF1bJ2tleVRlbXBsYXRlJ107XHJcbiAgICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIGdldFZhbHVlVGVtcGxhdGUoY29sOiBudW1iZXIsIHJvdzogbnVtYmVyKSB7XHJcbiAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IGNvbCAqIHRoaXMubnVtUm93c1BlckNvbHVtbiArIHJvdztcclxuICAgICAgIGlmICghdGhpcy5kYXRhQXJyYXlbaW5kZXhdWyd2YWx1ZVRlbXBsYXRlJ10pIHtcclxuICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0VmFsdWVUZW1wbGF0ZTtcclxuICAgICAgIH1cclxuICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFBcnJheVtpbmRleF1bJ3ZhbHVlVGVtcGxhdGUnXTtcclxuICAgICAgIH1cclxuICAgfVxyXG59XHJcbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpcmVkLWRhdGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbWlzYy9zcmMvcGFpcmVkLWRhdGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFDLE9BQU8sRUFDTixTQUFTLEVBS1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNSLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQzs7O0FBRXZCOztFQUVFO0FBb0RILE1BQU0sT0FBTyxtQkFBbUI7SUFlN0IsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFGeEQsYUFBUSxHQUFXLFVBQVUsQ0FBQztJQUU2QixDQUFDO0lBRTVELGVBQWU7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsdUZBQXVGO0lBQ3ZGLGFBQWE7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDakIsT0FBTztRQUNWLElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUNELE9B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QUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIiBpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIGlzRGV2TW9kZSxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgSW5wdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gICBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuIC8qKlxyXG4gKiBTaW1wbGUgaG9yaXpvbnRhbCBkYXRhIGRpc3BsYXlcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgc2VsZWN0b3I6IFwiaGNpLXBhaXJlZC1kYXRhXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiZmxleDoxIDEgMTAwJVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMwMEFBRkZcIj5cclxuICAgICAgICAgPGkgIGNsYXNzPVwiaGNpIHt7aGVhZGVyLmljb259fSBmYS0yeFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT57e2hlYWRlci50aXRsZX19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNyZWF0ZU51bUNvbHMoKVwiPlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIFtuZ1N0eWxlXT1cInsnZmxleCcgOiBjb2xTdHlsZX1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiYWxpZ24taXRlbXM6ZmxleC1lbmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb3dEYXRhIG9mIGdldFJvd3NGb3JDb2x1bW4oY29sKTsgbGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnZXRLZXlUZW1wbGF0ZShjb2wsaSk7IGNvbnRleHQ6IHtyb3dEYXRhOiByb3dEYXRhfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93RGF0YSBvZiBnZXRSb3dzRm9yQ29sdW1uKGNvbCk7IGxldCBpID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2V0VmFsdWVUZW1wbGF0ZShjb2wsaSk7IGNvbnRleHQ6IHtyb3dEYXRhOiByb3dEYXRhfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICAgPCEtLSB2ZXJ0aWNhbCBzZXBhcmF0b3IgLS0+XHJcbiAgICAgICA8ZGl2ICpuZ0lmPVwiY29sIDwgbnVtQ29sdW1ucyAtIDFcIiBjbGFzcz1cImQtZmxleCBtcy0yIG1lLTJcIiBzdHlsZT1cImJvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2NvbG9yOiM5OEM3RTA7XCI+PC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8L2Rpdj5cclxuIDwvZGl2PlxyXG4gICA8IS0tIERlZmF1bHQgdGVtcGxhdGVzIGZvciBhIHJvdyAtLT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEtleVRlbXBsYXRlIGxldC1yb3c9XCJyb3dEYXRhXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTEgcHMtMlwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICB7e3Jvdy5rZXl9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPCEtLVRoZSAmbmJzcDsgbWFrZXMgc3VyZSB0aGUgZGl2IHdpbGwgaGF2ZSBhIGRpbWVuc2lvbiBldmVuIHdoZW4gcm93LnZhbHVlIGlzIHVuZGVmaW5lZC9udWxsIC0tPlxyXG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VmFsdWVUZW1wbGF0ZSBsZXQtcm93PVwicm93RGF0YVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xIHBzLTJcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBjZW50ZXI7Zm9udC13ZWlnaHQ6Ym9sZFwiPlxyXG4gICAgICAgIHt7cm93LnZhbHVlfX08c3BhbiBbaW5uZXJIVE1MXT1cIicmbmJzcDsnXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICBgLCBzdHlsZXM6IFtgXHJcblxyXG5cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFpcmVkRGF0YUNvbXBvbmVudCB7XHJcblxyXG4gICAvLyBob3cgbWFueSBjb2x1bW5zXHJcbiAgIEBJbnB1dChcIm51bUNvbHVtbnNcIikgbnVtQ29sdW1uczogbnVtYmVyO1xyXG4gICAvLyB0aGUgaGVhZGVyIHRpdGxlLCBpY29uLCAuLi5cclxuICAgQElucHV0KFwiaGVhZGVyXCIpIGhlYWRlcjogYW55O1xyXG4gICAvLyB0aGUgZGF0YSByb3dzXHJcbiAgIEBJbnB1dChcImRhdGFBcnJheVwiKSBkYXRhQXJyYXk6IE9iamVjdFtdO1xyXG5cclxuICAgQFZpZXdDaGlsZChcImRlZmF1bHRLZXlUZW1wbGF0ZVwiLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pIGRlZmF1bHRLZXlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgQFZpZXdDaGlsZChcImRlZmF1bHRWYWx1ZVRlbXBsYXRlXCIsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSkgZGVmYXVsdFZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICBudW1Sb3dzUGVyQ29sdW1uOiBudW1iZXI7XHJcbiAgIGNvbFN0eWxlOiBzdHJpbmcgPSBcIjEgMSAxMDAlXCI7XHJcblxyXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgIHRoaXMubnVtUm93c1BlckNvbHVtbiA9IE1hdGguY2VpbCh0aGlzLmRhdGFBcnJheS5sZW5ndGgvdGhpcy5udW1Db2x1bW5zKTtcclxuICAgICAgIHRoaXMuY29sU3R5bGUgPSAnMSAxICcgKyAoTWF0aC5mbG9vcigxMDAvdGhpcy5udW1Db2x1bW5zKS0yKSArIFwiJVwiO1xyXG4gICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIC8vIEEgcGxhY2Vob2xkZXIgbWV0aG9kIHRvIHJldHVybiBhbiBhcnJheSBvZiBpbnRlZ2VycyByZXByZXNlbnRpbmcgdGhlIGNvbHVtbnMgbnVtYmVyc1xyXG4gICBjcmVhdGVOdW1Db2xzKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5udW1Db2x1bW5zKVxyXG4gICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBsZXQgaXRlbXM6IG51bWJlcltdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm51bUNvbHVtbnM7IGkrKykge1xyXG4gICAgICAgICAgICBpdGVtcy5wdXNoKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgIH1cclxuXHJcbiAgIC8vIFJldHVybiB0aGUgcm93cyBmb3IgdGhlIGdpdmVuIGNvbHVtblxyXG4gICBnZXRSb3dzRm9yQ29sdW1uKGNvbDogbnVtYmVyKSB7XHJcbiAgICAgIGlmICghdGhpcy5udW1Db2x1bW5zIHx8ICF0aGlzLm51bVJvd3NQZXJDb2x1bW4pXHJcbiAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICBsZXQgY29sdW1uUm93RGF0YTogT2JqZWN0W10gPSBbXTtcclxuICAgICAgaWYgKGNvbCA8ICh0aGlzLm51bUNvbHVtbnMgLSAxKSkge1xyXG4gICAgICAgICBmb3IgKGxldCBpID0gY29sICogdGhpcy5udW1Sb3dzUGVyQ29sdW1uOyBpIDwgKGNvbCArIDEpICogdGhpcy5udW1Sb3dzUGVyQ29sdW1uOyBpKyspIHtcclxuICAgICAgICAgICAgY29sdW1uUm93RGF0YS5wdXNoKHRoaXMuZGF0YUFycmF5W2ldKTtcclxuICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIGxhc3QgY29sdW1uIGp1c3QgaGFzIHRoZSByZW1haW5pbmcgcm93cyB3aGljaCBjYW4gYmUgbGVzcyB0aGFuIG51bVJvd3NcclxuICAgICAgICBmb3IgKGxldCBpID0gKHRoaXMubnVtQ29sdW1ucyAtIDEpICogdGhpcy5udW1Sb3dzUGVyQ29sdW1uOyBpIDwgdGhpcy5kYXRhQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29sdW1uUm93RGF0YS5wdXNoKHRoaXMuZGF0YUFycmF5W2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNvbHVtblJvd0RhdGE7XHJcbiAgIH1cclxuXHJcbiAgIGdldEtleVRlbXBsYXRlKGNvbDogbnVtYmVyLCByb3c6IG51bWJlcikge1xyXG4gICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBjb2wgKiB0aGlzLm51bVJvd3NQZXJDb2x1bW4gKyByb3c7XHJcbiAgICAgICBpZiAoIXRoaXMuZGF0YUFycmF5W2luZGV4XVsna2V5VGVtcGxhdGUnXSkge1xyXG4gICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRLZXlUZW1wbGF0ZTtcclxuICAgICAgIH1cclxuICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFBcnJheVtpbmRleF1bJ2tleVRlbXBsYXRlJ107XHJcbiAgICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIGdldFZhbHVlVGVtcGxhdGUoY29sOiBudW1iZXIsIHJvdzogbnVtYmVyKSB7XHJcbiAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IGNvbCAqIHRoaXMubnVtUm93c1BlckNvbHVtbiArIHJvdztcclxuICAgICAgIGlmICghdGhpcy5kYXRhQXJyYXlbaW5kZXhdWyd2YWx1ZVRlbXBsYXRlJ10pIHtcclxuICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0VmFsdWVUZW1wbGF0ZTtcclxuICAgICAgIH1cclxuICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFBcnJheVtpbmRleF1bJ3ZhbHVlVGVtcGxhdGUnXTtcclxuICAgICAgIH1cclxuICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -333,20 +333,20 @@ class PairedDataComponent {
|
|
|
333
333
|
</div>
|
|
334
334
|
</div>
|
|
335
335
|
<!-- vertical separator -->
|
|
336
|
-
<div *ngIf="col < numColumns - 1" class="d-flex
|
|
336
|
+
<div *ngIf="col < numColumns - 1" class="d-flex ms-2 me-2" style="border-style:solid;border-width:1px;color:#98C7E0;"></div>
|
|
337
337
|
</ng-container>
|
|
338
338
|
</div>
|
|
339
339
|
</div>
|
|
340
340
|
<!-- Default templates for a row -->
|
|
341
341
|
<ng-template #defaultKeyTemplate let-row="rowData">
|
|
342
|
-
<div class="d-flex flex-grow-1
|
|
342
|
+
<div class="d-flex flex-grow-1 ps-2" style="align-items: center;">
|
|
343
343
|
{{row.key}}
|
|
344
344
|
</div>
|
|
345
345
|
</ng-template>
|
|
346
346
|
|
|
347
347
|
<!--The makes sure the div will have a dimension even when row.value is undefined/null -->
|
|
348
348
|
<ng-template #defaultValueTemplate let-row="rowData">
|
|
349
|
-
<div class="d-flex flex-grow-1
|
|
349
|
+
<div class="d-flex flex-grow-1 ps-2" style="align-items: center;font-weight:bold">
|
|
350
350
|
{{row.value}}<span [innerHTML]="' '"></span>
|
|
351
351
|
</div>
|
|
352
352
|
</ng-template>
|
|
@@ -380,20 +380,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
380
380
|
</div>
|
|
381
381
|
</div>
|
|
382
382
|
<!-- vertical separator -->
|
|
383
|
-
<div *ngIf="col < numColumns - 1" class="d-flex
|
|
383
|
+
<div *ngIf="col < numColumns - 1" class="d-flex ms-2 me-2" style="border-style:solid;border-width:1px;color:#98C7E0;"></div>
|
|
384
384
|
</ng-container>
|
|
385
385
|
</div>
|
|
386
386
|
</div>
|
|
387
387
|
<!-- Default templates for a row -->
|
|
388
388
|
<ng-template #defaultKeyTemplate let-row="rowData">
|
|
389
|
-
<div class="d-flex flex-grow-1
|
|
389
|
+
<div class="d-flex flex-grow-1 ps-2" style="align-items: center;">
|
|
390
390
|
{{row.key}}
|
|
391
391
|
</div>
|
|
392
392
|
</ng-template>
|
|
393
393
|
|
|
394
394
|
<!--The makes sure the div will have a dimension even when row.value is undefined/null -->
|
|
395
395
|
<ng-template #defaultValueTemplate let-row="rowData">
|
|
396
|
-
<div class="d-flex flex-grow-1
|
|
396
|
+
<div class="d-flex flex-grow-1 ps-2" style="align-items: center;font-weight:bold">
|
|
397
397
|
{{row.value}}<span [innerHTML]="' '"></span>
|
|
398
398
|
</div>
|
|
399
399
|
</ng-template>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huntsman-cancer-institute-misc.mjs","sources":["../../../projects/misc/src/busy.component.ts","../../../projects/misc/src/paired-data.component.ts","../../../projects/misc/src/misc.module.ts","../../../projects/misc/src/index.ts","../../../projects/misc/src/huntsman-cancer-institute-misc.ts"],"sourcesContent":["import {\r\n ChangeDetectorRef, Component, ElementRef, HostListener, Input, isDevMode, OnInit, Renderer2, SimpleChange,\r\n TemplateRef, ViewRef\r\n} from \"@angular/core\";\r\n\r\nimport {of, Subject, Subscription} from \"rxjs\";\r\nimport {delay} from \"rxjs/operators\";\r\n\r\n/**\r\n * An overlay component typically hidden but when busy will show itself on top of the component it is added inside of.\r\n * This takes an array of boolean or boolean subjects as what is busy could be a combination of things.\r\n */\r\n@Component({\r\n selector: \"hci-busy\",\r\n template: `\r\n <div [class.mxAuto]=\"mxAuto\" [class.myAuto]=\"myAuto\">\r\n <div [style.display]=\"showIcon ? 'flex' : 'none'\">\r\n <i class=\"{{icon}} {{iconSize}}\"></i>\r\n </div>\r\n <div class=\"text\" [style.display]=\"text ? 'flex' : 'none'\">\r\n {{text}}\r\n </div>\r\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"config\"></ng-container>\r\n </div>\r\n `\r\n})\r\nexport class BusyComponent implements OnInit {\r\n\r\n @Input() busy: boolean[] = [false];\r\n\r\n @Input() busySubjects: Subject<boolean>[] = [];\r\n @Input() getBusySubjects: () => Subject<boolean>[];\r\n busySubscriptions: Subscription[] = [];\r\n busyCount: number = 0;\r\n\r\n @Input() parentSelector: string;\r\n @Input() rootClass: string;\r\n @Input() icon: string = \"hci fa-core fa-spin\";\r\n @Input() iconSize: string = \"fa-4x\";\r\n @Input() showIcon: boolean = true;\r\n @Input() mxAuto: boolean = false;\r\n @Input() myAuto: boolean = false;\r\n @Input() text: string;\r\n @Input() template: TemplateRef<any>;\r\n @Input() config: any = {};\r\n\r\n constructor(private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private changeDetectorRef: ChangeDetectorRef) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"hci-busy\");\r\n }\r\n\r\n ngOnInit() {\r\n if (this.rootClass) {\r\n let classes: string[] = this.rootClass.split(\" \");\r\n for (let className of classes) {\r\n this.renderer.addClass(this.elementRef.nativeElement, className);\r\n }\r\n }\r\n if (this.mxAuto) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"mx-auto\");\r\n }\r\n if (this.myAuto) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"my-auto\");\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.getBusySubjects) {\r\n this.busySubjects = this.getBusySubjects();\r\n this.listenToBusySubjects();\r\n } else if (this.busySubjects) {\r\n this.listenToBusySubjects();\r\n }\r\n\r\n this.resize(true);\r\n }\r\n\r\n /**\r\n * Listens to changes to the inputs and changes to the busy arrays.\r\n *\r\n * @param {{[p: string]: SimpleChange}} changes\r\n */\r\n ngOnChanges(changes: {[propName: string]: SimpleChange}) {\r\n if (changes[\"busy\"]) {\r\n this.renderer.removeClass(this.elementRef.nativeElement, \"busy\");\r\n if (this.busy) {\r\n for (let o of this.busy) {\r\n if (o) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"busy\");\r\n this.resize();\r\n }\r\n }\r\n }\r\n } else if (changes[\"busySubjects\"]) {\r\n this.listenToBusySubjects();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.busySubscriptions) {\r\n for (let subscription of this.busySubscriptions) {\r\n subscription.unsubscribe();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * If there is a subject boolean, this will listen to those subjects. There is a counter that is zero. When subjects\r\n * are busy the counter increments. When the subject becomes not busy, the counter decrements. When the counter arrives\r\n * back at zero, the overall busy is disabled.\r\n */\r\n private listenToBusySubjects(): void {\r\n if (isDevMode()) {\r\n console.debug(\"BusyComponent.listenToBusySubjects: \" + ((this.busySubjects) ? this.busySubjects.length : \"undefined\"));\r\n }\r\n\r\n if (!this.busySubjects) {\r\n return;\r\n }\r\n\r\n if (this.busySubscriptions) {\r\n for (let subscription of this.busySubscriptions) {\r\n subscription.unsubscribe();\r\n }\r\n }\r\n this.busySubscriptions = [];\r\n this.busyCount = 0;\r\n\r\n // Iterate over subjects. When a subject is busy, increment a counter, when not busy, decrement. When all subjects\r\n // are not busy, they overall we are not busy.\r\n for (let subject of this.busySubjects) {\r\n let subscription: Subscription = subject.subscribe((busy: boolean) => {\r\n if (busy !== undefined) {\r\n if (busy) {\r\n this.busyCount++;\r\n } else if (!busy && this.busyCount > 0) {\r\n this.busyCount--;\r\n }\r\n\r\n if (isDevMode()) {\r\n console.debug(\"BusyComponent.busySubjects: \" + busy + \", \" + this.busyCount);\r\n }\r\n\r\n this.renderer.removeClass(this.elementRef.nativeElement, \"busy\");\r\n\r\n if (this.busyCount > 0) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"busy\");\r\n }\r\n\r\n if (!(<ViewRef>this.changeDetectorRef).destroyed) {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n this.resize();\r\n });\r\n this.busySubscriptions.push(subscription);\r\n }\r\n }\r\n\r\n /**\r\n * Listens to the window resize and adjusts its size.\r\n *\r\n * @param event\r\n */\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n public windowResize(event) {\r\n this.resize();\r\n }\r\n\r\n private resize(isDelay?: boolean): void {\r\n this.resetSize();\r\n\r\n if (isDelay) {\r\n of(undefined).pipe(delay(100)).subscribe(() => {\r\n this.resetSize();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Looks at the size of the parent of this component and makes its height and width match the parent.\r\n */\r\n private resetSize(): void {\r\n let parent: HTMLElement;\r\n\r\n if (this.parentSelector) {\r\n parent = this.elementRef.nativeElement.closest(this.parentSelector);\r\n } else {\r\n parent = this.elementRef.nativeElement.parentElement;\r\n while (parent.offsetWidth === 0 && parent.parentElement) {\r\n parent = parent.parentElement;\r\n }\r\n }\r\n\r\n if (parent) {\r\n if ((parent.style.position === undefined || parent.style.position === \"\") && !parent.classList.contains(\"dropdown-menu\")) {\r\n this.renderer.setStyle(parent, \"position\", \"relative\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"left\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"top\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"right\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"bottom\", \"0px\");\r\n } else if (parent.style.position === \"relative\") {\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"left\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"top\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"right\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"bottom\", \"0px\");\r\n } else if (parent.offsetWidth === 0 || parent.offsetHeight === 0) {\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"width\", parent.style.width);\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"height\", parent.style.height);\r\n } else {\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"width\", parent.offsetWidth + \"px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"height\", parent.offsetHeight + \"px\");\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Finds the margin in terms of a number by stripping off px, rem, or em.\r\n *\r\n * @param {string} margin\r\n * @returns {number}\r\n */\r\n private getMargin(margin: string): number {\r\n return +margin.replace(\"px\", \"\").replace(\"rem\", \"\").replace(\"em\", \"\");\r\n }\r\n}\r\n"," import {\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n isDevMode,\r\n Renderer2,\r\n ViewEncapsulation,\r\n Input,\r\n TemplateRef,\r\n ViewChild,\r\n ChangeDetectorRef\r\n } from \"@angular/core\";\r\n\r\n /**\r\n * Simple horizontal data display\r\n */\r\n@Component({\r\n encapsulation: ViewEncapsulation.None,\r\n selector: \"hci-paired-data\",\r\n template: `\r\n<div class=\"d-flex flex-column\" style=\"flex:1 1 100%\">\r\n <div class=\"d-flex\" style=\"align-items:center;color:#00AAFF\">\r\n <i class=\"hci {{header.icon}} fa-2x\" aria-hidden=\"true\"></i>{{header.title}}\r\n </div>\r\n <div class=\"d-flex\">\r\n <ng-container *ngFor=\"let col of createNumCols()\">\r\n <div class=\"d-flex\" [ngStyle]=\"{'flex' : colStyle}\">\r\n <div class=\"d-flex flex-column\" style=\"align-items:flex-end\">\r\n <ng-container *ngFor=\"let rowData of getRowsForColumn(col); let i = index;\">\r\n <div class=\"d-flex\">\r\n <ng-container *ngTemplateOutlet=\"getKeyTemplate(col,i); context: {rowData: rowData}\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex flex-column\">\r\n <ng-container *ngFor=\"let rowData of getRowsForColumn(col); let i = index;\">\r\n <div class=\"d-flex\">\r\n <ng-container *ngTemplateOutlet=\"getValueTemplate(col,i); context: {rowData: rowData}\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- vertical separator -->\r\n <div *ngIf=\"col < numColumns - 1\" class=\"d-flex ml-2 mr-2\" style=\"border-style:solid;border-width:1px;color:#98C7E0;\"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- Default templates for a row -->\r\n <ng-template #defaultKeyTemplate let-row=\"rowData\">\r\n <div class=\"d-flex flex-grow-1 pl-2\" style=\"align-items: center;\">\r\n {{row.key}}\r\n </div>\r\n </ng-template>\r\n\r\n <!--The makes sure the div will have a dimension even when row.value is undefined/null -->\r\n <ng-template #defaultValueTemplate let-row=\"rowData\">\r\n <div class=\"d-flex flex-grow-1 pl-2\" style=\"align-items: center;font-weight:bold\">\r\n {{row.value}}<span [innerHTML]=\"' '\"></span>\r\n </div>\r\n </ng-template>\r\n\r\n `, styles: [`\r\n\r\n\r\n `]\r\n})\r\nexport class PairedDataComponent {\r\n\r\n // how many columns\r\n @Input(\"numColumns\") numColumns: number;\r\n // the header title, icon, ...\r\n @Input(\"header\") header: any;\r\n // the data rows\r\n @Input(\"dataArray\") dataArray: Object[];\r\n\r\n @ViewChild(\"defaultKeyTemplate\", {read: TemplateRef, static: true}) defaultKeyTemplate: TemplateRef<any>;\r\n @ViewChild(\"defaultValueTemplate\", {read: TemplateRef, static: true}) defaultValueTemplate: TemplateRef<any>;\r\n\r\n numRowsPerColumn: number;\r\n colStyle: string = \"1 1 100%\";\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.numRowsPerColumn = Math.ceil(this.dataArray.length/this.numColumns);\r\n this.colStyle = '1 1 ' + (Math.floor(100/this.numColumns)-2) + \"%\";\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n // A placeholder method to return an array of integers representing the columns numbers\r\n createNumCols() {\r\n if (!this.numColumns)\r\n return;\r\n let items: number[] = [];\r\n for (let i = 0; i < this.numColumns; i++) {\r\n items.push(i);\r\n }\r\n return items;\r\n }\r\n\r\n // Return the rows for the given column\r\n getRowsForColumn(col: number) {\r\n if (!this.numColumns || !this.numRowsPerColumn)\r\n return;\r\n let columnRowData: Object[] = [];\r\n if (col < (this.numColumns - 1)) {\r\n for (let i = col * this.numRowsPerColumn; i < (col + 1) * this.numRowsPerColumn; i++) {\r\n columnRowData.push(this.dataArray[i]);\r\n }\r\n }\r\n else {\r\n // last column just has the remaining rows which can be less than numRows\r\n for (let i = (this.numColumns - 1) * this.numRowsPerColumn; i < this.dataArray.length; i++) {\r\n columnRowData.push(this.dataArray[i]);\r\n }\r\n }\r\n return columnRowData;\r\n }\r\n\r\n getKeyTemplate(col: number, row: number) {\r\n let index: number = col * this.numRowsPerColumn + row;\r\n if (!this.dataArray[index]['keyTemplate']) {\r\n return this.defaultKeyTemplate;\r\n }\r\n else {\r\n return this.dataArray[index]['keyTemplate'];\r\n }\r\n }\r\n\r\n getValueTemplate(col: number, row: number) {\r\n let index: number = col * this.numRowsPerColumn + row;\r\n if (!this.dataArray[index]['valueTemplate']) {\r\n return this.defaultValueTemplate;\r\n }\r\n else {\r\n return this.dataArray[index]['valueTemplate'];\r\n }\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nimport {BusyComponent} from \"./busy.component\";\r\nimport {PairedDataComponent} from \"./paired-data.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NgbModule\r\n ],\r\n declarations: [\r\n BusyComponent,\r\n PairedDataComponent\r\n ],\r\n exports: [\r\n BusyComponent,\r\n PairedDataComponent\r\n ]\r\n})\r\nexport class MiscModule {}\r\n","/*\r\n * Public API Surface of misc\r\n */\r\n\r\nexport * from './busy.component';\r\nexport * from './paired-data.component';\r\nexport * from './misc.module'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"huntsman-cancer-institute-misc.mjs","sources":["../../../projects/misc/src/busy.component.ts","../../../projects/misc/src/paired-data.component.ts","../../../projects/misc/src/misc.module.ts","../../../projects/misc/src/index.ts","../../../projects/misc/src/huntsman-cancer-institute-misc.ts"],"sourcesContent":["import {\r\n ChangeDetectorRef, Component, ElementRef, HostListener, Input, isDevMode, OnInit, Renderer2, SimpleChange,\r\n TemplateRef, ViewRef\r\n} from \"@angular/core\";\r\n\r\nimport {of, Subject, Subscription} from \"rxjs\";\r\nimport {delay} from \"rxjs/operators\";\r\n\r\n/**\r\n * An overlay component typically hidden but when busy will show itself on top of the component it is added inside of.\r\n * This takes an array of boolean or boolean subjects as what is busy could be a combination of things.\r\n */\r\n@Component({\r\n selector: \"hci-busy\",\r\n template: `\r\n <div [class.mxAuto]=\"mxAuto\" [class.myAuto]=\"myAuto\">\r\n <div [style.display]=\"showIcon ? 'flex' : 'none'\">\r\n <i class=\"{{icon}} {{iconSize}}\"></i>\r\n </div>\r\n <div class=\"text\" [style.display]=\"text ? 'flex' : 'none'\">\r\n {{text}}\r\n </div>\r\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"config\"></ng-container>\r\n </div>\r\n `\r\n})\r\nexport class BusyComponent implements OnInit {\r\n\r\n @Input() busy: boolean[] = [false];\r\n\r\n @Input() busySubjects: Subject<boolean>[] = [];\r\n @Input() getBusySubjects: () => Subject<boolean>[];\r\n busySubscriptions: Subscription[] = [];\r\n busyCount: number = 0;\r\n\r\n @Input() parentSelector: string;\r\n @Input() rootClass: string;\r\n @Input() icon: string = \"hci fa-core fa-spin\";\r\n @Input() iconSize: string = \"fa-4x\";\r\n @Input() showIcon: boolean = true;\r\n @Input() mxAuto: boolean = false;\r\n @Input() myAuto: boolean = false;\r\n @Input() text: string;\r\n @Input() template: TemplateRef<any>;\r\n @Input() config: any = {};\r\n\r\n constructor(private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private changeDetectorRef: ChangeDetectorRef) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"hci-busy\");\r\n }\r\n\r\n ngOnInit() {\r\n if (this.rootClass) {\r\n let classes: string[] = this.rootClass.split(\" \");\r\n for (let className of classes) {\r\n this.renderer.addClass(this.elementRef.nativeElement, className);\r\n }\r\n }\r\n if (this.mxAuto) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"mx-auto\");\r\n }\r\n if (this.myAuto) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"my-auto\");\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.getBusySubjects) {\r\n this.busySubjects = this.getBusySubjects();\r\n this.listenToBusySubjects();\r\n } else if (this.busySubjects) {\r\n this.listenToBusySubjects();\r\n }\r\n\r\n this.resize(true);\r\n }\r\n\r\n /**\r\n * Listens to changes to the inputs and changes to the busy arrays.\r\n *\r\n * @param {{[p: string]: SimpleChange}} changes\r\n */\r\n ngOnChanges(changes: {[propName: string]: SimpleChange}) {\r\n if (changes[\"busy\"]) {\r\n this.renderer.removeClass(this.elementRef.nativeElement, \"busy\");\r\n if (this.busy) {\r\n for (let o of this.busy) {\r\n if (o) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"busy\");\r\n this.resize();\r\n }\r\n }\r\n }\r\n } else if (changes[\"busySubjects\"]) {\r\n this.listenToBusySubjects();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.busySubscriptions) {\r\n for (let subscription of this.busySubscriptions) {\r\n subscription.unsubscribe();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * If there is a subject boolean, this will listen to those subjects. There is a counter that is zero. When subjects\r\n * are busy the counter increments. When the subject becomes not busy, the counter decrements. When the counter arrives\r\n * back at zero, the overall busy is disabled.\r\n */\r\n private listenToBusySubjects(): void {\r\n if (isDevMode()) {\r\n console.debug(\"BusyComponent.listenToBusySubjects: \" + ((this.busySubjects) ? this.busySubjects.length : \"undefined\"));\r\n }\r\n\r\n if (!this.busySubjects) {\r\n return;\r\n }\r\n\r\n if (this.busySubscriptions) {\r\n for (let subscription of this.busySubscriptions) {\r\n subscription.unsubscribe();\r\n }\r\n }\r\n this.busySubscriptions = [];\r\n this.busyCount = 0;\r\n\r\n // Iterate over subjects. When a subject is busy, increment a counter, when not busy, decrement. When all subjects\r\n // are not busy, they overall we are not busy.\r\n for (let subject of this.busySubjects) {\r\n let subscription: Subscription = subject.subscribe((busy: boolean) => {\r\n if (busy !== undefined) {\r\n if (busy) {\r\n this.busyCount++;\r\n } else if (!busy && this.busyCount > 0) {\r\n this.busyCount--;\r\n }\r\n\r\n if (isDevMode()) {\r\n console.debug(\"BusyComponent.busySubjects: \" + busy + \", \" + this.busyCount);\r\n }\r\n\r\n this.renderer.removeClass(this.elementRef.nativeElement, \"busy\");\r\n\r\n if (this.busyCount > 0) {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"busy\");\r\n }\r\n\r\n if (!(<ViewRef>this.changeDetectorRef).destroyed) {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n this.resize();\r\n });\r\n this.busySubscriptions.push(subscription);\r\n }\r\n }\r\n\r\n /**\r\n * Listens to the window resize and adjusts its size.\r\n *\r\n * @param event\r\n */\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n public windowResize(event) {\r\n this.resize();\r\n }\r\n\r\n private resize(isDelay?: boolean): void {\r\n this.resetSize();\r\n\r\n if (isDelay) {\r\n of(undefined).pipe(delay(100)).subscribe(() => {\r\n this.resetSize();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Looks at the size of the parent of this component and makes its height and width match the parent.\r\n */\r\n private resetSize(): void {\r\n let parent: HTMLElement;\r\n\r\n if (this.parentSelector) {\r\n parent = this.elementRef.nativeElement.closest(this.parentSelector);\r\n } else {\r\n parent = this.elementRef.nativeElement.parentElement;\r\n while (parent.offsetWidth === 0 && parent.parentElement) {\r\n parent = parent.parentElement;\r\n }\r\n }\r\n\r\n if (parent) {\r\n if ((parent.style.position === undefined || parent.style.position === \"\") && !parent.classList.contains(\"dropdown-menu\")) {\r\n this.renderer.setStyle(parent, \"position\", \"relative\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"left\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"top\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"right\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"bottom\", \"0px\");\r\n } else if (parent.style.position === \"relative\") {\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"left\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"top\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"right\", \"0px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"bottom\", \"0px\");\r\n } else if (parent.offsetWidth === 0 || parent.offsetHeight === 0) {\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"width\", parent.style.width);\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"height\", parent.style.height);\r\n } else {\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"width\", parent.offsetWidth + \"px\");\r\n this.renderer.setStyle(this.elementRef.nativeElement, \"height\", parent.offsetHeight + \"px\");\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Finds the margin in terms of a number by stripping off px, rem, or em.\r\n *\r\n * @param {string} margin\r\n * @returns {number}\r\n */\r\n private getMargin(margin: string): number {\r\n return +margin.replace(\"px\", \"\").replace(\"rem\", \"\").replace(\"em\", \"\");\r\n }\r\n}\r\n"," import {\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n isDevMode,\r\n Renderer2,\r\n ViewEncapsulation,\r\n Input,\r\n TemplateRef,\r\n ViewChild,\r\n ChangeDetectorRef\r\n } from \"@angular/core\";\r\n\r\n /**\r\n * Simple horizontal data display\r\n */\r\n@Component({\r\n encapsulation: ViewEncapsulation.None,\r\n selector: \"hci-paired-data\",\r\n template: `\r\n<div class=\"d-flex flex-column\" style=\"flex:1 1 100%\">\r\n <div class=\"d-flex\" style=\"align-items:center;color:#00AAFF\">\r\n <i class=\"hci {{header.icon}} fa-2x\" aria-hidden=\"true\"></i>{{header.title}}\r\n </div>\r\n <div class=\"d-flex\">\r\n <ng-container *ngFor=\"let col of createNumCols()\">\r\n <div class=\"d-flex\" [ngStyle]=\"{'flex' : colStyle}\">\r\n <div class=\"d-flex flex-column\" style=\"align-items:flex-end\">\r\n <ng-container *ngFor=\"let rowData of getRowsForColumn(col); let i = index;\">\r\n <div class=\"d-flex\">\r\n <ng-container *ngTemplateOutlet=\"getKeyTemplate(col,i); context: {rowData: rowData}\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex flex-column\">\r\n <ng-container *ngFor=\"let rowData of getRowsForColumn(col); let i = index;\">\r\n <div class=\"d-flex\">\r\n <ng-container *ngTemplateOutlet=\"getValueTemplate(col,i); context: {rowData: rowData}\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- vertical separator -->\r\n <div *ngIf=\"col < numColumns - 1\" class=\"d-flex ms-2 me-2\" style=\"border-style:solid;border-width:1px;color:#98C7E0;\"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- Default templates for a row -->\r\n <ng-template #defaultKeyTemplate let-row=\"rowData\">\r\n <div class=\"d-flex flex-grow-1 ps-2\" style=\"align-items: center;\">\r\n {{row.key}}\r\n </div>\r\n </ng-template>\r\n\r\n <!--The makes sure the div will have a dimension even when row.value is undefined/null -->\r\n <ng-template #defaultValueTemplate let-row=\"rowData\">\r\n <div class=\"d-flex flex-grow-1 ps-2\" style=\"align-items: center;font-weight:bold\">\r\n {{row.value}}<span [innerHTML]=\"' '\"></span>\r\n </div>\r\n </ng-template>\r\n\r\n `, styles: [`\r\n\r\n\r\n `]\r\n})\r\nexport class PairedDataComponent {\r\n\r\n // how many columns\r\n @Input(\"numColumns\") numColumns: number;\r\n // the header title, icon, ...\r\n @Input(\"header\") header: any;\r\n // the data rows\r\n @Input(\"dataArray\") dataArray: Object[];\r\n\r\n @ViewChild(\"defaultKeyTemplate\", {read: TemplateRef, static: true}) defaultKeyTemplate: TemplateRef<any>;\r\n @ViewChild(\"defaultValueTemplate\", {read: TemplateRef, static: true}) defaultValueTemplate: TemplateRef<any>;\r\n\r\n numRowsPerColumn: number;\r\n colStyle: string = \"1 1 100%\";\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.numRowsPerColumn = Math.ceil(this.dataArray.length/this.numColumns);\r\n this.colStyle = '1 1 ' + (Math.floor(100/this.numColumns)-2) + \"%\";\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n // A placeholder method to return an array of integers representing the columns numbers\r\n createNumCols() {\r\n if (!this.numColumns)\r\n return;\r\n let items: number[] = [];\r\n for (let i = 0; i < this.numColumns; i++) {\r\n items.push(i);\r\n }\r\n return items;\r\n }\r\n\r\n // Return the rows for the given column\r\n getRowsForColumn(col: number) {\r\n if (!this.numColumns || !this.numRowsPerColumn)\r\n return;\r\n let columnRowData: Object[] = [];\r\n if (col < (this.numColumns - 1)) {\r\n for (let i = col * this.numRowsPerColumn; i < (col + 1) * this.numRowsPerColumn; i++) {\r\n columnRowData.push(this.dataArray[i]);\r\n }\r\n }\r\n else {\r\n // last column just has the remaining rows which can be less than numRows\r\n for (let i = (this.numColumns - 1) * this.numRowsPerColumn; i < this.dataArray.length; i++) {\r\n columnRowData.push(this.dataArray[i]);\r\n }\r\n }\r\n return columnRowData;\r\n }\r\n\r\n getKeyTemplate(col: number, row: number) {\r\n let index: number = col * this.numRowsPerColumn + row;\r\n if (!this.dataArray[index]['keyTemplate']) {\r\n return this.defaultKeyTemplate;\r\n }\r\n else {\r\n return this.dataArray[index]['keyTemplate'];\r\n }\r\n }\r\n\r\n getValueTemplate(col: number, row: number) {\r\n let index: number = col * this.numRowsPerColumn + row;\r\n if (!this.dataArray[index]['valueTemplate']) {\r\n return this.defaultValueTemplate;\r\n }\r\n else {\r\n return this.dataArray[index]['valueTemplate'];\r\n }\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nimport {BusyComponent} from \"./busy.component\";\r\nimport {PairedDataComponent} from \"./paired-data.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NgbModule\r\n ],\r\n declarations: [\r\n BusyComponent,\r\n PairedDataComponent\r\n ],\r\n exports: [\r\n BusyComponent,\r\n PairedDataComponent\r\n ]\r\n})\r\nexport class MiscModule {}\r\n","/*\r\n * Public API Surface of misc\r\n */\r\n\r\nexport * from './busy.component';\r\nexport * from './paired-data.component';\r\nexport * from './misc.module'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|