1- /*! powerbi-client v2.7.5  | (c) 2016 Microsoft Corporation MIT */ 
1+ /*! powerbi-client v2.9.0  | (c) 2016 Microsoft Corporation MIT */ 
22declare  module "util"  { 
33    import  {  HttpPostMessage  }  from  'http-post-message' ; 
44    /** 
@@ -82,6 +82,20 @@ declare module "util" {
8282     */ 
8383    export  function  isRDLEmbed ( embedUrl : string ) : boolean ; 
8484} 
85+ declare  module "config"  { 
86+     const  config : { 
87+         version : string ; 
88+         type : string ; 
89+     } ; 
90+     export  default  config ; 
91+ } 
92+ declare  module "defaults"  { 
93+     import  *  as  models  from  'powerbi-models' ; 
94+     export  abstract  class  Defaults  { 
95+         static  defaultSettings : models . ISettings ; 
96+         static  defaultQnaSettings : models . IQnaSettings ; 
97+     } 
98+ } 
8599declare  module "embed"  { 
86100    import  *  as  service  from  "service" ; 
87101    import  *  as  models  from  'powerbi-models' ; 
@@ -96,19 +110,30 @@ declare module "embed" {
96110        } 
97111    } 
98112    /** 
99-      * Base Configuration settings  for Power BI embed components 
113+      * Prepare configuration  for Power BI embed components.  
100114     * 
101115     * @export  
102-      * @interface  IEmbedConfigurationBase  
116+      * @interface  IBootstrapEmbedConfiguration  
103117     */ 
104-     export  interface  IEmbedConfigurationBase  { 
105-         settings ?: ISettings ; 
118+     export  interface  IBootstrapEmbedConfiguration  { 
119+         hostname ?: string ; 
106120        embedUrl ?: string ; 
121+         settings ?: ISettings ; 
107122        uniqueId ?: string ; 
108123        type ?: string ; 
124+         groupId ?: string ; 
125+         bootstrapped ?: boolean ; 
126+     } 
127+     /** 
128+      * Base Configuration settings for Power BI embed components 
129+      * 
130+      * @export  
131+      * @interface  IEmbedConfigurationBase 
132+      * @extends  IBootstrapEmbedConfiguration 
133+      */ 
134+     export  interface  IEmbedConfigurationBase  extends  IBootstrapEmbedConfiguration  { 
109135        accessToken ?: string ; 
110136        tokenType ?: models . TokenType ; 
111-         groupId ?: string ; 
112137    } 
113138    /** 
114139     * Configuration settings for Power BI embed components 
@@ -173,6 +198,7 @@ declare module "embed" {
173198        static  embedUrlAttribute : string ; 
174199        static  nameAttribute : string ; 
175200        static  typeAttribute : string ; 
201+         static  defaultEmbedHostName : string ; 
176202        static  type : string ; 
177203        static  maxFrontLoadTimes : number ; 
178204        allowedEvents : any [ ] ; 
@@ -206,6 +232,12 @@ declare module "embed" {
206232         * @type  {IEmbedConfigurationBase } 
207233         */ 
208234        config : IEmbedConfigurationBase ; 
235+         /** 
236+          * Gets or sets the bootstrap configuration for the Power BI embed component received by powerbi.bootstrap(). 
237+          * 
238+          * @type  {IBootstrapEmbedConfiguration } 
239+          */ 
240+         bootstrapConfig : IBootstrapEmbedConfiguration ; 
209241        /** 
210242         * Gets or sets the configuration settings for creating report. 
211243         * 
@@ -238,7 +270,7 @@ declare module "embed" {
238270         * @param  {HTMLElement } element 
239271         * @param  {IEmbedConfigurationBase } config 
240272         */ 
241-         constructor ( service : service . Service ,  element : HTMLElement ,  config : IEmbedConfigurationBase ,  iframe ?: HTMLIFrameElement ,  phasedRender ?: boolean ) ; 
273+         constructor ( service : service . Service ,  element : HTMLElement ,  config : IEmbedConfigurationBase ,  iframe ?: HTMLIFrameElement ,  phasedRender ?: boolean ,   isBootstrap ?:  boolean ) ; 
242274        /** 
243275         * Sends createReport configuration data. 
244276         * 
@@ -355,7 +387,7 @@ declare module "embed" {
355387         * @param  {IEmbedConfiguration } 
356388         * @returns  {void } 
357389         */ 
358-         populateConfig ( config : IEmbedConfigurationBase ) : void ; 
390+         populateConfig ( config : IBootstrapEmbedConfiguration ,   isBootstrap :  boolean ) : void ; 
359391        /** 
360392         * Adds locale parameters to embedUrl 
361393         * 
@@ -369,7 +401,8 @@ declare module "embed" {
369401         * @private  
370402         * @returns  {string } 
371403         */ 
372-         private  getEmbedUrl ( ) ; 
404+         private  getEmbedUrl ( isBootstrap ) ; 
405+         private  getDefaultEmbedUrl ( hostname ) ; 
373406        /** 
374407         * Gets a unique ID from the first available location: options, attribute. 
375408         * If neither is provided generate a unique string. 
@@ -392,6 +425,20 @@ declare module "embed" {
392425         * @returns  {string } 
393426         */ 
394427        abstract  getId ( ) : string ; 
428+         /** 
429+          * Raise a config changed event. 
430+          * 
431+          * @returns  {void } 
432+          */ 
433+         abstract  configChanged ( isBootstrap : boolean ) : void ; 
434+         /** 
435+          * Gets default embed endpoint for each entity. 
436+          * For example: report embed endpoint is reportEmbed. 
437+          * This will help creating a default embed URL such as: https://app.powerbi.com/reportEmbed 
438+          * 
439+          * @returns  {string } endpoint. 
440+          */ 
441+         abstract  getDefaultEmbedUrlEndpoint ( ) : string ; 
395442        /** 
396443         * Requests the browser to render the component's iframe in fullscreen mode. 
397444         */ 
@@ -416,7 +463,7 @@ declare module "embed" {
416463        /** 
417464         * Sets Iframe for embed 
418465         */ 
419-         private  setIframe ( isLoad ,  phasedRender ?) ; 
466+         private  setIframe ( isLoad ,  phasedRender ?,   isBootstrap ? ) ; 
420467        /** 
421468         * Sets Iframe's title 
422469         */ 
@@ -764,13 +811,6 @@ declare module "page" {
764811        hasLayout ( layoutType : any ) : Promise < boolean > ; 
765812    } 
766813} 
767- declare  module "defaults"  { 
768-     import  *  as  models  from  'powerbi-models' ; 
769-     export  abstract  class  Defaults  { 
770-         static  defaultSettings : models . ISettings ; 
771-         static  defaultQnaSettings : models . IQnaSettings ; 
772-     } 
773- } 
774814declare  module "report"  { 
775815    import  *  as  service  from  "service" ; 
776816    import  *  as  embed  from  "embed" ; 
@@ -814,7 +854,7 @@ declare module "report" {
814854         * @param  {HTMLElement } element 
815855         * @param  {embed.IEmbedConfiguration } config 
816856         */ 
817-         constructor ( service : service . Service ,  element : HTMLElement ,  baseConfig : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ,  iframe ?: HTMLIFrameElement ) ; 
857+         constructor ( service : service . Service ,  element : HTMLElement ,  baseConfig : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ,  isBootstrap ?:  boolean ,   iframe ?: HTMLIFrameElement ) ; 
818858        /** 
819859         * Adds backwards compatibility for the previous load configuration, which used the reportId query parameter to specify the report ID 
820860         * (e.g. http://embedded.powerbi.com/appTokenReportEmbed?reportId=854846ed-2106-4dc2-bc58-eb77533bf2f1). 
@@ -961,12 +1001,12 @@ declare module "report" {
9611001         */ 
9621002        validate ( config : embed . IEmbedConfigurationBase ) : models . IError [ ] ; 
9631003        /** 
964-          * Populate  config for load config  
1004+          * Handle  config changes.  
9651005         * 
966-          * @param  {IEmbedConfigurationBase } 
9671006         * @returns  {void } 
9681007         */ 
969-         populateConfig ( baseConfig : embed . IEmbedConfigurationBase ) : void ; 
1008+         configChanged ( isBootstrap : boolean ) : void ; 
1009+         getDefaultEmbedUrlEndpoint ( ) : string ; 
9701010        /** 
9711011         * Switch Report view mode. 
9721012         * 
@@ -1009,14 +1049,15 @@ declare module "report" {
10091049        resetTheme ( ) : Promise < void > ; 
10101050        private  applyThemeInternal ( theme ) ; 
10111051        private  viewModeToString ( viewMode ) ; 
1052+         private  isMobileSettings ( settings ) ; 
10121053    } 
10131054} 
10141055declare  module "create"  { 
10151056    import  *  as  service  from  "service" ; 
10161057    import  *  as  models  from  'powerbi-models' ; 
10171058    import  *  as  embed  from  "embed" ; 
10181059    export  class  Create  extends  embed . Embed  { 
1019-         constructor ( service : service . Service ,  element : HTMLElement ,  config : embed . IEmbedConfiguration ,  phasedRender ?: boolean ) ; 
1060+         constructor ( service : service . Service ,  element : HTMLElement ,  config : embed . IEmbedConfiguration ,  phasedRender ?: boolean ,   isBootstrap ?:  boolean ) ; 
10201061        /** 
10211062         * Gets the dataset ID from the first available location: createConfig or embed url. 
10221063         * 
@@ -1028,12 +1069,12 @@ declare module "create" {
10281069         */ 
10291070        validate ( config : embed . IEmbedConfigurationBase ) : models . IError [ ] ; 
10301071        /** 
1031-          * Populate  config for create  
1072+          * Handle  config changes.  
10321073         * 
1033-          * @param  {IEmbedConfigurationBase } 
10341074         * @returns  {void } 
10351075         */ 
1036-         populateConfig ( baseConfig : embed . IEmbedConfigurationBase ) : void ; 
1076+         configChanged ( isBootstrap : boolean ) : void ; 
1077+         getDefaultEmbedUrlEndpoint ( ) : string ; 
10371078        /** 
10381079         * checks if the report is saved. 
10391080         * 
@@ -1092,7 +1133,7 @@ declare module "dashboard" {
10921133         * @param  {service.Service } service 
10931134         * @param  {HTMLElement } element 
10941135         */ 
1095-         constructor ( service : service . Service ,  element : HTMLElement ,  config : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ) ; 
1136+         constructor ( service : service . Service ,  element : HTMLElement ,  config : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ,   isBootstrap ?:  boolean ) ; 
10961137        /** 
10971138         * This adds backwards compatibility for older config which used the dashboardId query param to specify dashboard id. 
10981139         * E.g. https://powerbi-df.analysis-df.windows.net/dashboardEmbedHost?dashboardId=e9363c62-edb6-4eac-92d3-2199c5ca2a9e 
@@ -1115,12 +1156,12 @@ declare module "dashboard" {
11151156         */ 
11161157        validate ( baseConfig : embed . IEmbedConfigurationBase ) : models . IError [ ] ; 
11171158        /** 
1118-          * Populate  config for load config  
1159+          * Handle  config changes.  
11191160         * 
1120-          * @param  {IEmbedConfigurationBase } 
11211161         * @returns  {void } 
11221162         */ 
1123-         populateConfig ( baseConfig : embed . IEmbedConfigurationBase ) : void ; 
1163+         configChanged ( isBootstrap : boolean ) : void ; 
1164+         getDefaultEmbedUrlEndpoint ( ) : string ; 
11241165        /** 
11251166         * Validate that pageView has a legal value: if page view is defined it must have one of the values defined in models.PageView 
11261167         */ 
@@ -1141,7 +1182,7 @@ declare module "tile" {
11411182    export  class  Tile  extends  embed . Embed  { 
11421183        static  type : string ; 
11431184        static  allowedEvents : string [ ] ; 
1144-         constructor ( service : service . Service ,  element : HTMLElement ,  baseConfig : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ) ; 
1185+         constructor ( service : service . Service ,  element : HTMLElement ,  baseConfig : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ,   isBootstrap ?:  boolean ) ; 
11451186        /** 
11461187         * The ID of the tile 
11471188         * 
@@ -1153,12 +1194,12 @@ declare module "tile" {
11531194         */ 
11541195        validate ( config : embed . IEmbedConfigurationBase ) : models . IError [ ] ; 
11551196        /** 
1156-          * Populate  config for load config  
1197+          * Handle  config changes.  
11571198         * 
1158-          * @param  {IEmbedConfigurationBase } 
11591199         * @returns  {void } 
11601200         */ 
1161-         populateConfig ( baseConfig : embed . IEmbedConfigurationBase ) : void ; 
1201+         configChanged ( isBootstrap : boolean ) : void ; 
1202+         getDefaultEmbedUrlEndpoint ( ) : string ; 
11621203        /** 
11631204         * Adds the ability to get tileId from url. 
11641205         * By extracting the ID we can ensure that the ID is always explicitly provided as part of the load configuration. 
@@ -1184,7 +1225,7 @@ declare module "qna" {
11841225    export  class  Qna  extends  embed . Embed  { 
11851226        static  type : string ; 
11861227        static  allowedEvents : string [ ] ; 
1187-         constructor ( service : service . Service ,  element : HTMLElement ,  config : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ) ; 
1228+         constructor ( service : service . Service ,  element : HTMLElement ,  config : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ,   isBootstrap ?:  boolean ) ; 
11881229        /** 
11891230         * The ID of the Qna embed component 
11901231         * 
@@ -1198,6 +1239,13 @@ declare module "qna" {
11981239         * @returns  {string } 
11991240         */ 
12001241        setQuestion ( question : string ) : Promise < void > ; 
1242+         /** 
1243+          * Handle config changes. 
1244+          * 
1245+          * @returns  {void } 
1246+          */ 
1247+         configChanged ( isBootstrap : boolean ) : void ; 
1248+         getDefaultEmbedUrlEndpoint ( ) : string ; 
12011249        /** 
12021250         * Validate load configuration. 
12031251         */ 
@@ -1227,7 +1275,7 @@ declare module "visual" {
12271275         * @param  {HTMLElement } element 
12281276         * @param  {embed.IEmbedConfiguration } config 
12291277         */ 
1230-         constructor ( service : service . Service ,  element : HTMLElement ,  baseConfig : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ,  iframe ?: HTMLIFrameElement ) ; 
1278+         constructor ( service : service . Service ,  element : HTMLElement ,  baseConfig : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ,  isBootstrap ?:  boolean ,   iframe ?: HTMLIFrameElement ) ; 
12311279        load ( baseConfig : embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ) : Promise < void > ; 
12321280        /** 
12331281         * Gets the list of pages within the report - not supported in visual embed. 
@@ -1363,7 +1411,6 @@ declare module "service" {
13631411        wpmp : wpmp . WindowPostMessageProxy ; 
13641412        private  router ; 
13651413        private  uniqueSessionId ; 
1366-         private  static  DefaultInitEmbedUrl ; 
13671414        /** 
13681415         * Creates an instance of a Power BI Service. 
13691416         * 
@@ -1409,7 +1456,14 @@ declare module "service" {
14091456         * @returns  {embed.Embed } 
14101457         */ 
14111458        load ( element : HTMLElement ,  config ?: embed . IEmbedConfigurationBase ) : embed . Embed ; 
1412-         embedInternal ( element : HTMLElement ,  config ?: embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ) : embed . Embed ; 
1459+         /** 
1460+          * Given an HTML element and entityType, creates a new component instance, and bootstrap the iframe for embedding. 
1461+          * 
1462+          * @param  {HTMLElement } element 
1463+          * @param  {embed.IBootstrapEmbedConfiguration } config: a bootstrap config which is an embed config without access token. 
1464+          */ 
1465+         bootstrap ( element : HTMLElement ,  config : embed . IBootstrapEmbedConfiguration ) : embed . Embed ; 
1466+         embedInternal ( element : HTMLElement ,  config ?: embed . IEmbedConfigurationBase ,  phasedRender ?: boolean ,  isBootstrap ?: boolean ) : embed . Embed ; 
14131467        getNumberOfComponents ( ) : number ; 
14141468        getSdkSessionId ( ) : string ; 
14151469        /** 
@@ -1420,7 +1474,7 @@ declare module "service" {
14201474         * @param  {embed.IEmbedConfigurationBase } config 
14211475         * @returns  {embed.Embed } 
14221476         */ 
1423-         private  embedNew ( element ,  config ,  phasedRender ?) ; 
1477+         private  embedNew ( element ,  config ,  phasedRender ?,   isBootstrap ? ) ; 
14241478        /** 
14251479         * Given an element that already contains an embed component, load with a new configuration. 
14261480         * 
@@ -1570,13 +1624,6 @@ declare module "bookmarksManager" {
15701624        applyState ( state : string ) : Promise < void > ; 
15711625    } 
15721626} 
1573- declare  module "config"  { 
1574-     const  config : { 
1575-         version : string ; 
1576-         type : string ; 
1577-     } ; 
1578-     export  default  config ; 
1579- } 
15801627declare  module "factories"  { 
15811628    /** 
15821629     * TODO: Need to find better place for these factory functions or refactor how we handle dependency injection 
0 commit comments