in src/sampleSlicer.ts [309:343]
private static hasSameCategoryIdentity(dataView1: DataView, dataView2: DataView): boolean {
if (!dataView1 ||
!dataView2 ||
!dataView1.categorical ||
!dataView2.categorical) {
return false;
}
let dv1Categories: DataViewCategoricalColumn[] = dataView1.categorical.categories;
let dv2Categories: DataViewCategoricalColumn[] = dataView2.categorical.categories;
if (!dv1Categories ||
!dv2Categories ||
dv1Categories.length !== dv2Categories.length) {
return false;
}
for (let i: number = 0, len: number = dv1Categories.length; i < len; i++) {
let dv1Identity: any[] = (<DataViewCategoryColumn>dv1Categories[i]).identity;
let dv2Identity: any[] = (<DataViewCategoryColumn>dv2Categories[i]).identity;
let dv1Length: number = this.getLengthOptional(dv1Identity);
if ((dv1Length < 1) || dv1Length !== this.getLengthOptional(dv2Identity)) {
return false;
}
for (let j: number = 0; j < dv1Length; j++) {
if (!isEqual(dv1Identity[j].key, dv2Identity[j].key)) {
return false;
}
}
}
return true;
}