powerBIHtml function

String powerBIHtml({
  1. required String accessToken,
  2. required String embedUrl,
  3. required String id,
  4. String type = "report",
  5. int layoutType = 2,
  6. int tokenType = 1,
  7. bool filterPaneEnabled = false,
  8. bool navContentPaneEnabled = false,
})

Implementation

String powerBIHtml({
  required String accessToken,
  required String embedUrl,
  required String id,
  String type = "report",
  int layoutType = 2,
  int tokenType = 1,
  bool filterPaneEnabled = false,
  bool navContentPaneEnabled = false,
}) {
  return """
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width">
    <script src="https://cdn.jsdelivr.net/npm/powerbi-client@2.8.0/dist/powerbi.min.js"></script>
    <style>
        html,
        body,
        #reportContainer {
            width: 100%;
            height: 100%;
            margin: 0;
            background-color: white;
            -webkit-overflow-scrolling: touch;
        }
        iframe {
            border: 0px;
        }
    </style>
</head>
<body>
    <div id="reportContainer"></div>
    <script>
    var models = window['powerbi-client'].models;
    var config = {
  'type': "$type",
  'tokenType': $tokenType,
  'accessToken': "$accessToken",
  'embedUrl': "$embedUrl",
  'id': "$id",
  'settings': {
    'filterPaneEnabled': $filterPaneEnabled,
    'navContentPaneEnabled': $navContentPaneEnabled,
    'layoutType': $layoutType,
  },
}
    var reportContainer = document.getElementById('reportContainer');
    var report = powerbi.embed(reportContainer, config);
    </script>
</body>
</html>
    """;
}