Skip to content

Commit c467732

Browse files
authored
Updated jsdoc comments through source. Added missing return values in same methods (microsoft#28)
1 parent 2c647d2 commit c467732

20 files changed

+930
-57
lines changed

dist/embed.d.ts

+74
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,21 @@ declare global {
1111
msRequestFullscreen: Function;
1212
}
1313
}
14+
/**
15+
* Configuration settings for Power BI embed components
16+
*
17+
* @export
18+
* @interface IEmbedConfiguration
19+
*/
1420
export interface IEmbedConfiguration {
1521
type?: string;
1622
id?: string;
1723
uniqueId?: string;
1824
embedUrl?: string;
1925
accessToken?: string;
2026
settings?: models.ISettings;
27+
pageName?: string;
28+
filters?: (models.IBasicFilter | models.IAdvancedFilter)[];
2129
}
2230
export interface IInternalEmbedConfiguration extends models.ILoadConfiguration {
2331
uniqueId: string;
@@ -28,6 +36,13 @@ export interface IInternalEventHandler<T> {
2836
test(event: service.IEvent<T>): boolean;
2937
handle(event: service.ICustomEvent<T>): void;
3038
}
39+
/**
40+
* Base class for all Power BI embed components
41+
*
42+
* @export
43+
* @abstract
44+
* @class Embed
45+
*/
3146
export declare abstract class Embed {
3247
static allowedEvents: string[];
3348
static accessTokenAttribute: string;
@@ -37,14 +52,45 @@ export declare abstract class Embed {
3752
static type: string;
3853
private static defaultSettings;
3954
allowedEvents: any[];
55+
/**
56+
* Gets or set the event handler registered for this embed component
57+
*
58+
* @type {IInternalEventHandler<any>[]}
59+
*/
4060
eventHandlers: IInternalEventHandler<any>[];
61+
/**
62+
* Gets or sets the Power BI embed service
63+
*
64+
* @type {service.Service}
65+
*/
4166
service: service.Service;
67+
/**
68+
* Gets or sets the HTML element containing the Power BI embed component
69+
*
70+
* @type {HTMLElement}
71+
*/
4272
element: HTMLElement;
73+
/**
74+
* Gets or sets the HTML iframe element that renders the Power BI embed component
75+
*
76+
* @type {HTMLIFrameElement}
77+
*/
4378
iframe: HTMLIFrameElement;
79+
/**
80+
* Gets or sets the configuration settings for the embed component
81+
*
82+
* @type {IInternalEmbedConfiguration}
83+
*/
4484
config: IInternalEmbedConfiguration;
4585
/**
86+
* Creates an instance of Embed.
87+
*
4688
* Note: there is circular reference between embeds and service
4789
* The service has list of all embeds on the host page, and each embed has reference to the service that created it.
90+
*
91+
* @param {service.Service} service
92+
* @param {HTMLElement} element
93+
* @param {IEmbedConfiguration} config
4894
*/
4995
constructor(service: service.Service, element: HTMLElement, config: IEmbedConfiguration);
5096
/**
@@ -67,6 +113,9 @@ export declare abstract class Embed {
67113
* })
68114
* .catch(error => { ... });
69115
* ```
116+
*
117+
* @param {models.ILoadConfiguration} config
118+
* @returns {Promise<void>}
70119
*/
71120
load(config: models.ILoadConfiguration): Promise<void>;
72121
/**
@@ -86,6 +135,10 @@ export declare abstract class Embed {
86135
*
87136
* report.off('pageChanged', logHandler);
88137
* ```
138+
*
139+
* @template T
140+
* @param {string} eventName
141+
* @param {service.IEventHandler<T>} [handler]
89142
*/
90143
off<T>(eventName: string, handler?: service.IEventHandler<T>): void;
91144
/**
@@ -96,23 +149,40 @@ export declare abstract class Embed {
96149
* console.log('PageChanged: ', event.page.name);
97150
* });
98151
* ```
152+
*
153+
* @template T
154+
* @param {string} eventName
155+
* @param {service.IEventHandler<T>} handler
99156
*/
100157
on<T>(eventName: string, handler: service.IEventHandler<T>): void;
101158
/**
102159
* Get access token from first available location: config, attribute, global.
160+
*
161+
* @private
162+
* @param {string} globalAccessToken
163+
* @returns {string}
103164
*/
104165
private getAccessToken(globalAccessToken);
105166
/**
106167
* Get embed url from first available location: options, attribute.
168+
*
169+
* @private
170+
* @returns {string}
107171
*/
108172
private getEmbedUrl();
109173
/**
110174
* Get unique id from first available location: options, attribute.
111175
* If neither is provided generate unique string.
176+
*
177+
* @private
178+
* @returns {string}
112179
*/
113180
private getUniqueId();
114181
/**
115182
* Get report id from first available location: options, attribute.
183+
*
184+
* @abstract
185+
* @returns {string}
116186
*/
117187
abstract getId(): string;
118188
/**
@@ -126,6 +196,10 @@ export declare abstract class Embed {
126196
/**
127197
* Return true if iframe is fullscreen,
128198
* otherwise return false
199+
*
200+
* @private
201+
* @param {HTMLIFrameElement} iframe
202+
* @returns {boolean}
129203
*/
130204
private isFullscreen(iframe);
131205
}

dist/ifilterable.d.ts

+23
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,30 @@
11
/*! powerbi-client v2.0.0-beta.12 | (c) 2016 Microsoft Corporation MIT */
22
import * as models from 'powerbi-models';
3+
/**
4+
* Decorates embed components that support filters
5+
* Examples include reports, pages and visuals
6+
*
7+
* @export
8+
* @interface IFilterable
9+
*/
310
export interface IFilterable {
11+
/**
12+
* Gets the filters currently applied to the object
13+
*
14+
* @returns {(Promise<(models.IBasicFilter | models.IAdvancedFilter)[]>)}
15+
*/
416
getFilters(): Promise<(models.IBasicFilter | models.IAdvancedFilter)[]>;
17+
/**
18+
* Replaces all filters on the current object with the specified filter values
19+
*
20+
* @param {((models.IBasicFilter | models.IAdvancedFilter)[])} filters
21+
* @returns {Promise<void>}
22+
*/
523
setFilters(filters: (models.IBasicFilter | models.IAdvancedFilter)[]): Promise<void>;
24+
/**
25+
* Removes all filters from the current object
26+
*
27+
* @returns {Promise<void>}
28+
*/
629
removeFilters(): Promise<void>;
730
}

dist/page.d.ts

+52-1
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,51 @@ import { IFilterable } from './ifilterable';
33
import { IReportNode } from './report';
44
import { Visual } from './visual';
55
import * as models from 'powerbi-models';
6+
/**
7+
* A Page node within a report hierarchy
8+
*
9+
* @export
10+
* @interface IPageNode
11+
*/
612
export interface IPageNode {
713
report: IReportNode;
814
name: string;
915
}
16+
/**
17+
* A Power BI report page
18+
*
19+
* @export
20+
* @class Page
21+
* @implements {IPageNode}
22+
* @implements {IFilterable}
23+
*/
1024
export declare class Page implements IPageNode, IFilterable {
25+
/**
26+
* The parent Power BI report that this page is a member of
27+
*
28+
* @type {IReportNode}
29+
*/
1130
report: IReportNode;
31+
/**
32+
* The report page name
33+
*
34+
* @type {string}
35+
*/
1236
name: string;
37+
/**
38+
* The user defined display name of the report page
39+
* This can be undefined in cases where page is created manually
40+
*
41+
* @type {string}
42+
*/
1343
displayName: string;
44+
/**
45+
* Creates an instance of a Power BI report page.
46+
*
47+
* @param {IReportNode} report
48+
* @param {string} name
49+
* @param {string} [displayName]
50+
*/
1451
constructor(report: IReportNode, name: string, displayName?: string);
1552
/**
1653
* Gets all page level filters within report
@@ -19,15 +56,19 @@ export declare class Page implements IPageNode, IFilterable {
1956
* page.getFilters()
2057
* .then(pages => { ... });
2158
* ```
59+
*
60+
* @returns {(Promise<(models.IBasicFilter | models.IAdvancedFilter)[]>)}
2261
*/
23-
getFilters(): Promise<models.IFilter[]>;
62+
getFilters(): Promise<(models.IBasicFilter | models.IAdvancedFilter)[]>;
2463
/**
2564
* Gets all the visuals on the page.
2665
*
2766
* ```javascript
2867
* page.getVisuals()
2968
* .then(visuals => { ... });
3069
* ```
70+
*
71+
* @returns {Promise<Visual[]>}
3172
*/
3273
getVisuals(): Promise<Visual[]>;
3374
/**
@@ -36,6 +77,8 @@ export declare class Page implements IPageNode, IFilterable {
3677
* ```javascript
3778
* page.removeFilters();
3879
* ```
80+
*
81+
* @returns {Promise<void>}
3982
*/
4083
removeFilters(): Promise<void>;
4184
/**
@@ -44,6 +87,8 @@ export declare class Page implements IPageNode, IFilterable {
4487
* ```javascripot
4588
* page.setActive();
4689
* ```
90+
*
91+
* @returns {Promise<void>}
4792
*/
4893
setActive(): Promise<void>;
4994
/**
@@ -53,6 +98,9 @@ export declare class Page implements IPageNode, IFilterable {
5398
* page.setFilters(filters);
5499
* .catch(errors => { ... });
55100
* ```
101+
*
102+
* @param {((models.IBasicFilter | models.IAdvancedFilter)[])} filters
103+
* @returns {Promise<void>}
56104
*/
57105
setFilters(filters: (models.IBasicFilter | models.IAdvancedFilter)[]): Promise<void>;
58106
/**
@@ -68,6 +116,9 @@ export declare class Page implements IPageNode, IFilterable {
68116
* const visual = report.page('ReportSection1').visual('BarChart1');
69117
* visual.setFilters(filters);
70118
* ```
119+
*
120+
* @param {string} name
121+
* @returns {Visual}
71122
*/
72123
visual(name: string): Visual;
73124
}

dist/powerbi.d.ts

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export { Page } from './page';
1111
export { Visual } from './visual';
1212
declare global {
1313
interface Window {
14-
Powerbi: typeof service.Service;
1514
powerbi: service.Service;
1615
}
1716
}

0 commit comments

Comments
 (0)