@@ -2290,47 +2290,95 @@ declare module "factories" {
22902290 export const routerFactory : IRouterFactory ;
22912291}
22922292declare module "FilterBuilders/filterBuilder" {
2293- import { Filter , IFilterTarget } from "powerbi-models" ;
2293+ import { IFilterTarget } from "powerbi-models" ;
22942294 /**
22952295 * Generic filter builder for BasicFilter, AdvancedFilter, RelativeDate, RelativeTime and TopN
22962296 *
2297- * @interface IFilterBuilder
2297+ * @class
22982298 */
2299- export interface IFilterBuilder {
2300- withTargetObject ( target : IFilterTarget ) : IFilterBuilder ;
2301- build ( ) : Filter ;
2299+ export class FilterBuilder {
2300+ target : IFilterTarget ;
2301+ /**
2302+ * Sets target property for filter with target object
2303+ *
2304+ * ```javascript
2305+ * const target = {
2306+ * table: 'table1',
2307+ * column: 'column1'
2308+ * };
2309+ *
2310+ * const filterBuilder = new FilterBuilder().withTargetObject(target);
2311+ * ```
2312+ *
2313+ * @returns {FilterBuilder }
2314+ */
2315+ withTargetObject ( target : IFilterTarget ) : this;
2316+ /**
2317+ * Sets target property for filter with column target object
2318+ *
2319+ * ```
2320+ * const filterBuilder = new FilterBuilder().withColumnTarget(tableName, columnName);
2321+ * ```
2322+ *
2323+ * @returns {FilterBuilder }
2324+ */
2325+ withColumnTarget ( tableName : string , columnName : string ) : this;
2326+ /**
2327+ * Sets target property for filter with measure target object
2328+ *
2329+ * ```
2330+ * const filterBuilder = new FilterBuilder().withMeasureTarget(tableName, measure);
2331+ * ```
2332+ *
2333+ * @returns {FilterBuilder }
2334+ */
2335+ withMeasureTarget ( tableName : string , measure : string ) : this;
2336+ /**
2337+ * Sets target property for filter with hierarchy level target object
2338+ *
2339+ * ```
2340+ * const filterBuilder = new FilterBuilder().withHierarchyLevelTarget(tableName, hierarchy, hierarchyLevel);
2341+ * ```
2342+ *
2343+ * @returns {FilterBuilder }
2344+ */
2345+ withHierarchyLevelTarget ( tableName : string , hierarchy : string , hierarchyLevel : string ) : this;
2346+ /**
2347+ * Sets target property for filter with column aggregation target object
2348+ *
2349+ * ```
2350+ * const filterBuilder = new FilterBuilder().withColumnAggregation(tableName, columnName, aggregationFunction);
2351+ * ```
2352+ *
2353+ * @returns {FilterBuilder }
2354+ */
2355+ withColumnAggregation ( tableName : string , columnName : string , aggregationFunction : string ) : this;
2356+ /**
2357+ * Sets target property for filter with hierarchy level aggregation target object
2358+ *
2359+ * ```
2360+ * const filterBuilder = new FilterBuilder().withHierarchyLevelAggregationTarget(tableName, hierarchy, hierarchyLevel, aggregationFunction);
2361+ * ```
2362+ *
2363+ * @returns {FilterBuilder }
2364+ */
2365+ withHierarchyLevelAggregationTarget ( tableName : string , hierarchy : string , hierarchyLevel : string , aggregationFunction : string ) : this;
23022366 }
23032367}
23042368declare module "FilterBuilders/basicFilterBuilder" {
2305- import { BasicFilter , IFilterTarget } from "powerbi-models" ;
2306- import { IFilterBuilder } from "FilterBuilders/filterBuilder" ;
2369+ import { BasicFilter } from "powerbi-models" ;
2370+ import { FilterBuilder } from "FilterBuilders/filterBuilder" ;
23072371 /**
23082372 * Power BI Basic filter builder component
23092373 *
23102374 * @export
23112375 * @class BasicFilterBuilder
2312- * @implements {IFilterBuilder }
2376+ * @extends { FilterBuilder }
23132377 */
2314- export class BasicFilterBuilder implements IFilterBuilder {
2315- private target ;
2378+ export class BasicFilterBuilder extends FilterBuilder {
23162379 private values ;
23172380 private operator ;
23182381 private isRequireSingleSelection ;
2319- /**
2320- * Sets target property for Basic filter with target object
2321- *
2322- * ```javascript
2323- * const target = {
2324- * table: 'table1',
2325- * column: 'column1'
2326- * };
2327- *
2328- * const basicFilterBuilder = new BasicFilterBuilder().withTargetObject(target);
2329- * ```
2330- *
2331- * @returns {BasicFilterBuilder }
2332- */
2333- withTargetObject ( target : IFilterTarget ) : BasicFilterBuilder ;
23342382 /**
23352383 * Sets In as operator for Basic filter
23362384 *
@@ -2389,34 +2437,18 @@ declare module "FilterBuilders/basicFilterBuilder" {
23892437 }
23902438}
23912439declare module "FilterBuilders/advancedFilterBuilder" {
2392- import { AdvancedFilter , IFilterTarget , AdvancedFilterConditionOperators } from "powerbi-models" ;
2393- import { IFilterBuilder } from "FilterBuilders/filterBuilder" ;
2440+ import { AdvancedFilter , AdvancedFilterConditionOperators } from "powerbi-models" ;
2441+ import { FilterBuilder } from "FilterBuilders/filterBuilder" ;
23942442 /**
23952443 * Power BI Advanced filter builder component
23962444 *
23972445 * @export
23982446 * @class AdvancedFilterBuilder
2399- * @implements {IFilterBuilder }
2447+ * @extends { FilterBuilder }
24002448 */
2401- export class AdvancedFilterBuilder implements IFilterBuilder {
2402- private target ;
2449+ export class AdvancedFilterBuilder extends FilterBuilder {
24032450 private logicalOperator ;
24042451 private conditions ;
2405- /**
2406- * Sets target property for Advanced filter with target object
2407- *
2408- * ```javascript
2409- * const target = {
2410- * table: 'table1',
2411- * column: 'column1'
2412- * };
2413- *
2414- * const advancedFilterBuilder = new AdvancedFilterBuilder().withTargetObject(target);
2415- * ```
2416- *
2417- * @returns {AdvancedFilterBuilder }
2418- */
2419- withTargetObject ( target : IFilterTarget ) : AdvancedFilterBuilder ;
24202452 /**
24212453 * Sets And as logical operator for Advanced filter
24222454 *
@@ -2465,35 +2497,19 @@ declare module "FilterBuilders/advancedFilterBuilder" {
24652497 }
24662498}
24672499declare module "FilterBuilders/topNFilterBuilder" {
2468- import { IFilterTarget , ITarget , TopNFilter } from "powerbi-models" ;
2469- import { IFilterBuilder } from "FilterBuilders/filterBuilder" ;
2500+ import { ITarget , TopNFilter } from "powerbi-models" ;
2501+ import { FilterBuilder } from "FilterBuilders/filterBuilder" ;
24702502 /**
24712503 * Power BI Top N filter builder component
24722504 *
24732505 * @export
24742506 * @class TopNFilterBuilder
2475- * @implements {IFilterBuilder }
2507+ * @extends { FilterBuilder }
24762508 */
2477- export class TopNFilterBuilder implements IFilterBuilder {
2478- private target ;
2509+ export class TopNFilterBuilder extends FilterBuilder {
24792510 private itemCount ;
24802511 private operator ;
24812512 private orderByTargetValue ;
2482- /**
2483- * Sets target property for Top N filter with target object
2484- *
2485- * ```javascript
2486- * const target = {
2487- * table: 'table1',
2488- * column: 'column1'
2489- * };
2490- *
2491- * const topNFilterBuilder = new TopNFilterBuilder().withTargetObject(target);
2492- * ```
2493- *
2494- * @returns {TopNFilterBuilder }
2495- */
2496- withTargetObject ( target : IFilterTarget ) : TopNFilterBuilder ;
24972513 /**
24982514 * Sets Top as operator for Top N filter
24992515 *
@@ -2541,37 +2557,20 @@ declare module "FilterBuilders/topNFilterBuilder" {
25412557 }
25422558}
25432559declare module "FilterBuilders/relativeDateFilterBuilder" {
2544- import { IFilterTarget , RelativeDateFilter , RelativeDateFilterTimeUnit } from "powerbi-models" ;
2545- import { IFilterBuilder } from "FilterBuilders/filterBuilder" ;
2560+ import { RelativeDateFilter , RelativeDateFilterTimeUnit } from "powerbi-models" ;
2561+ import { FilterBuilder } from "FilterBuilders/filterBuilder" ;
25462562 /**
25472563 * Power BI Relative Date filter builder component
25482564 *
25492565 * @export
25502566 * @class RelativeDateFilterBuilder
2551- * @implements {IFilterBuilder }
2567+ * @extends { FilterBuilder }
25522568 */
2553- export class RelativeDateFilterBuilder implements IFilterBuilder {
2554- private target ;
2569+ export class RelativeDateFilterBuilder extends FilterBuilder {
25552570 private operator ;
25562571 private timeUnitsCount ;
25572572 private timeUnitType ;
25582573 private isTodayIncluded ;
2559- /**
2560- * Sets target property for Relative Date filter with target object
2561- *
2562- * ```javascript
2563- * const target = {
2564- * table: 'table1',
2565- * column: 'column1'
2566- * };
2567- *
2568- * const relativeDateFilterBuilder = new RelativeDateFilterBuilder().withTargetObject(target);
2569- * ```
2570- *
2571- * @param {IFilterTarget } target - Defines the target property
2572- * @returns {RelativeDateFilterBuilder }
2573- */
2574- withTargetObject ( target : IFilterTarget ) : RelativeDateFilterBuilder ;
25752574 /**
25762575 * Sets inLast as operator for Relative Date filter
25772576 *
@@ -2637,36 +2636,19 @@ declare module "FilterBuilders/relativeDateFilterBuilder" {
26372636 }
26382637}
26392638declare module "FilterBuilders/relativeTimeFilterBuilder" {
2640- import { IFilterTarget , RelativeTimeFilter , RelativeDateFilterTimeUnit } from "powerbi-models" ;
2641- import { IFilterBuilder } from "FilterBuilders/filterBuilder" ;
2639+ import { RelativeTimeFilter , RelativeDateFilterTimeUnit } from "powerbi-models" ;
2640+ import { FilterBuilder } from "FilterBuilders/filterBuilder" ;
26422641 /**
26432642 * Power BI Relative Time filter builder component
26442643 *
26452644 * @export
26462645 * @class RelativeTimeFilterBuilder
2647- * @implements {IFilterBuilder }
2646+ * @extends { FilterBuilder }
26482647 */
2649- export class RelativeTimeFilterBuilder implements IFilterBuilder {
2650- private target ;
2648+ export class RelativeTimeFilterBuilder extends FilterBuilder {
26512649 private operator ;
26522650 private timeUnitsCount ;
26532651 private timeUnitType ;
2654- /**
2655- * Sets target property for Relative Time filter with target object
2656- *
2657- * ```javascript
2658- * const target = {
2659- * table: 'table1',
2660- * column: 'column1'
2661- * };
2662- *
2663- * const relativeTimeFilterBuilder = new RelativeTimeFilterBuilder().withTargetObject(target);
2664- * ```
2665- *
2666- * @param {IFilterTarget } target - Defines the target property
2667- * @returns {RelativeTimeFilterBuilder }
2668- */
2669- withTargetObject ( target : IFilterTarget ) : RelativeTimeFilterBuilder ;
26702652 /**
26712653 * Sets inLast as operator for Relative Time filter
26722654 *
0 commit comments