Merged PR 535428: [CustomVisuals] - HierarchyIdentityFilter
Exposing a hierarchy filter based on identities for CV. PowerBIClients PR: !504068 Cherry picked from !497159 Cherry-picked from commit `f69b2cad`. Related work items: #1302425
This commit is contained in:
Коммит
971dfea09f
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "powerbi-models",
|
||||
"version": "1.14.1",
|
||||
"version": "1.15.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "powerbi-models",
|
||||
"version": "1.14.1",
|
||||
"version": "1.15.0",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@types/jasmine": "^3.5.5",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "powerbi-models",
|
||||
"version": "1.14.1",
|
||||
"version": "1.15.0",
|
||||
"description": "Contains JavaScript & TypeScript object models for Microsoft Power BI JavaScript SDK. For each model there is a TypeScript interface, and a validation function to ensure and object is valid.",
|
||||
"main": "dist/models.js",
|
||||
"typings": "dist/models.d.ts",
|
||||
|
|
|
@ -313,6 +313,10 @@ export enum MenuLocation {
|
|||
Top
|
||||
}
|
||||
|
||||
export interface IQueryNameTarget {
|
||||
queryName: string;
|
||||
}
|
||||
|
||||
export interface IBaseTarget {
|
||||
table: string;
|
||||
$schema?: string;
|
||||
|
@ -384,8 +388,9 @@ export declare type IFilterKeyTarget = (IFilterKeyColumnsTarget | IFilterKeyHier
|
|||
export declare type IFilterTarget = (IFilterColumnTarget | IFilterHierarchyTarget | IFilterMeasureTarget | INotSupportedFilterTarget | IFilterColumnAggrTarget | IFilterHierarchyAggrTarget);
|
||||
export type ITupleFilterTarget = IFilterTarget[];
|
||||
export type IIdentityFilterTarget = number[];
|
||||
export type IHierarchyIdentityFilterTarget = IQueryNameTarget[];
|
||||
export type IIncludeExcludeFilterTarget = IFilterTarget | (IFilterTarget | IFilterKeyTarget)[][];
|
||||
export type IFilterGeneralTarget = IFilterTarget | IFilterKeyTarget | ITupleFilterTarget | IIdentityFilterTarget | IIncludeExcludeFilterTarget;
|
||||
export type IFilterGeneralTarget = IFilterTarget | IFilterKeyTarget | ITupleFilterTarget | IIdentityFilterTarget | IIncludeExcludeFilterTarget | IHierarchyIdentityFilterTarget;
|
||||
export interface IFilter {
|
||||
$schema: string;
|
||||
target: IFilterGeneralTarget;
|
||||
|
@ -534,6 +539,17 @@ export interface IHierarchyFilter extends IFilter {
|
|||
hierarchyData: IHierarchyFilterNode[];
|
||||
}
|
||||
|
||||
export interface IHierarchyIdentityFilterNode<IdentityType> {
|
||||
identity: IdentityType;
|
||||
children?: IHierarchyIdentityFilterNode<IdentityType>[];
|
||||
operator: HierarchyFilterNodeOperators;
|
||||
}
|
||||
|
||||
export interface IHierarchyIdentityFilter<IdentityType> extends IFilter {
|
||||
target: IHierarchyIdentityFilterTarget;
|
||||
hierarchyData: IHierarchyIdentityFilterNode<IdentityType>[];
|
||||
}
|
||||
|
||||
export interface ISmartNarratives {
|
||||
summaryText: string;
|
||||
}
|
||||
|
@ -549,6 +565,7 @@ export enum FilterType {
|
|||
RelativeTime = 7,
|
||||
Identity = 8,
|
||||
Hierarchy = 9,
|
||||
HierarchyIdentity = 10,
|
||||
}
|
||||
|
||||
export enum RelativeDateFilterTimeUnit {
|
||||
|
@ -954,6 +971,29 @@ export class HierarchyFilter extends Filter {
|
|||
}
|
||||
}
|
||||
|
||||
export class HierarchyIdentityFilter<IdentityType> extends Filter {
|
||||
static schemaUrl: string = "http://powerbi.com/product/schema#hierarchyIdentity";
|
||||
|
||||
target: IHierarchyIdentityFilterTarget;
|
||||
hierarchyData: IHierarchyIdentityFilterNode<IdentityType>[];
|
||||
|
||||
constructor(
|
||||
target: IHierarchyIdentityFilterTarget,
|
||||
hierarchyData: IHierarchyIdentityFilterNode<IdentityType>[]
|
||||
) {
|
||||
super(target, FilterType.HierarchyIdentity);
|
||||
this.schemaUrl = HierarchyIdentityFilter.schemaUrl;
|
||||
this.hierarchyData = hierarchyData;
|
||||
}
|
||||
|
||||
toJSON(): IHierarchyIdentityFilter<IdentityType> {
|
||||
const filter = super.toJSON() as IHierarchyIdentityFilter<IdentityType>;
|
||||
filter.hierarchyData = this.hierarchyData;
|
||||
filter.target = this.target;
|
||||
return filter;
|
||||
}
|
||||
}
|
||||
|
||||
export interface IDataReference {
|
||||
target: IFilterTarget;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче