pbiplint 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/NOTICE +27 -0
  2. package/README.md +34 -8
  3. package/dist/pbiplint.mjs +12628 -2800
  4. package/package.json +5 -3
  5. package/sample/Messy Sales Demo.Report/.platform +11 -0
  6. package/sample/Messy Sales Demo.Report/definition/bookmarks/bookmarks.json +8 -0
  7. package/sample/Messy Sales Demo.Report/definition/bookmarks/f56cd9f5f68d30c0e4e3.bookmark.json +41 -0
  8. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/page.json +8 -0
  9. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3130cf9463309528054d/visual.json +185 -0
  10. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3e7724efa859ff7b9701/visual.json +130 -0
  11. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3fe8e6907656325b8e86/visual.json +187 -0
  12. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/51bb4f6f5f7f71ed0a3c/visual.json +69 -0
  13. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/d2995ea3e9b9d9244bf6/visual.json +31 -0
  14. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/d307b6575ca81d163aac/visual.json +186 -0
  15. package/sample/Messy Sales Demo.Report/definition/pages/27f668864829019f9251/page.json +8 -0
  16. package/sample/Messy Sales Demo.Report/definition/pages/27f668864829019f9251/visuals/1e7f28bf49e435b68c50/visual.json +156 -0
  17. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/page.json +8 -0
  18. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/6c96585893b6f603b9ac/visual.json +185 -0
  19. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/6e99982d842b0d962e16/visual.json +189 -0
  20. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/8081f5bb7075e7b008bc/visual.json +185 -0
  21. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/c5147d97ff0b18a24336/visual.json +185 -0
  22. package/sample/Messy Sales Demo.Report/definition/pages/3b33a1ae720bb93d48b9/page.json +48 -0
  23. package/sample/Messy Sales Demo.Report/definition/pages/3b33a1ae720bb93d48b9/visuals/e32acaa3eb3e6dd81dca/visual.json +195 -0
  24. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/page.json +8 -0
  25. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/23f7a6962538ec0c0ff4/visual.json +155 -0
  26. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/2b5386e9de3e1fbb1afa/visual.json +147 -0
  27. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/307e834045a168e7a394/visual.json +305 -0
  28. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/4457e97e02f61c8f609b/visual.json +176 -0
  29. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/49158e1e7dce5e8d37fd/visual.json +68 -0
  30. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/6500e9c3f9d74f2958c7/visual.json +312 -0
  31. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/6edcdc464f4016c0264c/visual.json +185 -0
  32. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/88530bc0f64114317e2e/visual.json +155 -0
  33. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/a75a96eee1fd0cf4cef7/visual.json +185 -0
  34. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/bda61916a7b1efdee3fe/visual.json +145 -0
  35. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/d93ac3d110ff0a347497/visual.json +185 -0
  36. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/db47426e580241dac6b8/visual.json +104 -0
  37. package/sample/Messy Sales Demo.Report/definition/pages/52db6f0b218c638f8761/page.json +8 -0
  38. package/sample/Messy Sales Demo.Report/definition/pages/52db6f0b218c638f8761/visuals/8edac00805f721edc1c1/visual.json +196 -0
  39. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/page.json +8 -0
  40. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/598cfda00746e83f4896/visual.json +162 -0
  41. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/6c71af13bcdb4c28cce8/visual.json +133 -0
  42. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/8aa02d4e168b39268df4/visual.json +185 -0
  43. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/ab6166569dd355894dc2/visual.json +192 -0
  44. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/page.json +8 -0
  45. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/05d453611bc204914797/visual.json +291 -0
  46. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/0dcfd84094ee2cfe485b/visual.json +185 -0
  47. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/11146719bd576271e11a/visual.json +238 -0
  48. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/338338c16a0d509bdaf5/visual.json +238 -0
  49. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/3ee96306fb282e5dfe38/visual.json +185 -0
  50. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/404c49f853ea8dde3b6c/visual.json +238 -0
  51. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/55ddee811456e2b049cf/visual.json +291 -0
  52. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/5bf9a67d54ba75bb7be1/visual.json +185 -0
  53. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/63f71d3b642fb6c8a9ba/visual.json +291 -0
  54. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/80873270a475b81ef0fb/visual.json +185 -0
  55. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/838ab6226a66fdfb13dc/visual.json +238 -0
  56. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/9b12811305cdd50a97c4/visual.json +185 -0
  57. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/a1a8f953ebef2d733956/visual.json +291 -0
  58. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/b7e7f7c15ff9284e72d3/visual.json +291 -0
  59. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/b9229ce2b277de70e402/visual.json +185 -0
  60. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/cf88d237300a7d6a6709/visual.json +185 -0
  61. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/d66ccf48cfa017d01124/visual.json +185 -0
  62. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/d8ab941db2b7bd34c19e/visual.json +238 -0
  63. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/daadba18a786c3e25d97/visual.json +185 -0
  64. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/e1552553ac4f0856010e/visual.json +185 -0
  65. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/f108285d5ebc6bcdba77/visual.json +185 -0
  66. package/sample/Messy Sales Demo.Report/definition/pages/b52832c4d9f487868953/page.json +9 -0
  67. package/sample/Messy Sales Demo.Report/definition/pages/b52832c4d9f487868953/visuals/2a7e16428070011e60ec/visual.json +55 -0
  68. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/page.json +8 -0
  69. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/3fa0fc35d2dd20b9b1f2/visual.json +186 -0
  70. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/55b04f4555a4615ecd32/visual.json +185 -0
  71. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/94c00b0b84a51b0e0b39/visual.json +140 -0
  72. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/acc24e8136085a985f3f/visual.json +32 -0
  73. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/de6a17691cc952e6d7dd/visual.json +120 -0
  74. package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/page.json +8 -0
  75. package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/visuals/27e669b1ee2de2c3ac9d/visual.json +96 -0
  76. package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/visuals/b230f06615cf87ee455f/visual.json +185 -0
  77. package/sample/Messy Sales Demo.Report/definition/pages/pages.json +17 -0
  78. package/sample/Messy Sales Demo.Report/definition/report.json +66 -0
  79. package/sample/Messy Sales Demo.Report/definition/reportExtensions.json +46 -0
  80. package/sample/Messy Sales Demo.Report/definition/version.json +4 -0
  81. package/sample/Messy Sales Demo.Report/definition.pbir +9 -0
  82. package/sample/{.platform → Messy Sales Demo.SemanticModel/.platform } +1 -1
  83. package/sample/Messy Sales Demo.SemanticModel/definition/cultures/en-US.tmdl +32 -0
  84. package/sample/Messy Sales Demo.SemanticModel/definition/database.tmdl +3 -0
  85. package/sample/{definition/model.tmdl → Messy Sales Demo.SemanticModel/definition/model.tmdl } +3 -0
  86. package/sample/{definition/relationships.tmdl → Messy Sales Demo.SemanticModel/definition/relationships.tmdl } +6 -0
  87. package/sample/{definition/tables/Customer.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Customer.tmdl } +5 -0
  88. package/sample/Messy Sales Demo.SemanticModel/definition/tables/DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92.tmdl +118 -0
  89. package/sample/Messy Sales Demo.SemanticModel/definition/tables/Employee Grouping.tmdl +49 -0
  90. package/sample/Messy Sales Demo.SemanticModel/definition/tables/LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d.tmdl +116 -0
  91. package/sample/{definition/tables/Sales.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Sales.tmdl } +42 -42
  92. package/sample/{definition/tables/Store.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Store.tmdl } +15 -0
  93. package/sample/Messy Sales Demo.pbip +14 -0
  94. package/sample/pbiplint.config.json +7 -0
  95. package/sample/.pbi/editorSettings.json +0 -8
  96. package/sample/definition/cultures/en-US.tmdl +0 -2
  97. package/sample/definition/database.tmdl +0 -3
  98. /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Date.tmdl +0 -0
  99. /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Employee.tmdl +0 -0
  100. /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Product.tmdl +0 -0
  101. /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Promotion.tmdl +0 -0
  102. /package/sample/{definition.pbism → Messy Sales Demo.SemanticModel/definition.pbism} +0 -0
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "pbiplint",
3
- "version": "0.1.1",
4
- "description": "Lint Power BI semantic models (TMDL) for best-practice violations, with text, JSON, SARIF, and Markdown output. Nothing is uploaded.",
3
+ "version": "0.2.0",
4
+ "description": "Lint Power BI projects, the semantic model (TMDL) and the report (PBIR), for best-practice violations, with text, JSON, SARIF, and Markdown output. Nothing is uploaded.",
5
5
  "keywords": [
6
6
  "power-bi",
7
7
  "tmdl",
8
+ "pbir",
8
9
  "semantic-model",
10
+ "report",
9
11
  "pbip",
10
12
  "linter",
11
13
  "best-practices",
@@ -25,7 +27,7 @@
25
27
  },
26
28
  "type": "module",
27
29
  "bin": {
28
- "pbiplint": "./dist/pbiplint.mjs"
30
+ "pbiplint": "dist/pbiplint.mjs"
29
31
  },
30
32
  "files": [
31
33
  "dist",
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/gitIntegration/platformProperties/2.0.0/schema.json",
3
+ "metadata": {
4
+ "type": "Report",
5
+ "displayName": "Messy Sales Demo"
6
+ },
7
+ "config": {
8
+ "version": "2.0",
9
+ "logicalId": "36a76635-ecf9-4b46-a463-59b658e2bffb"
10
+ }
11
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/bookmarksMetadata/1.0.0/schema.json",
3
+ "items": [
4
+ {
5
+ "name": "f56cd9f5f68d30c0e4e3"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/bookmark/2.1.0/schema.json",
3
+ "displayName": "Reset",
4
+ "name": "f56cd9f5f68d30c0e4e3",
5
+ "options": {
6
+ "targetVisualNames": []
7
+ },
8
+ "explorationState": {
9
+ "version": "1.3",
10
+ "activeSection": "3cea48e58036b1654474",
11
+ "sections": {
12
+ "3cea48e58036b1654474": {
13
+ "visualContainers": {
14
+ "deadvisual0000000000": {
15
+ "singleVisual": {
16
+ "visualType": "textbox",
17
+ "objects": {}
18
+ }
19
+ }
20
+ }
21
+ }
22
+ },
23
+ "objects": {
24
+ "merge": {
25
+ "outspacePane": [
26
+ {
27
+ "properties": {
28
+ "expanded": {
29
+ "expr": {
30
+ "Literal": {
31
+ "Value": "true"
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/page/2.1.0/schema.json",
3
+ "name": "00e055aa522743f28a39",
4
+ "displayName": "Promotions",
5
+ "displayOption": "FitToPage",
6
+ "height": 720,
7
+ "width": 1280
8
+ }
@@ -0,0 +1,185 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/2.8.0/schema.json",
3
+ "name": "3130cf9463309528054d",
4
+ "position": {
5
+ "x": 20,
6
+ "y": 20,
7
+ "z": 1000,
8
+ "height": 120,
9
+ "width": 240,
10
+ "tabOrder": 1000
11
+ },
12
+ "visual": {
13
+ "visualType": "cardVisual",
14
+ "query": {
15
+ "queryState": {
16
+ "Data": {
17
+ "projections": [
18
+ {
19
+ "field": {
20
+ "Measure": {
21
+ "Expression": {
22
+ "SourceRef": {
23
+ "Entity": "Sales"
24
+ }
25
+ },
26
+ "Property": "Total Discount"
27
+ }
28
+ },
29
+ "queryRef": "Sales.Total Discount",
30
+ "nativeQueryRef": "Total Discount"
31
+ }
32
+ ]
33
+ }
34
+ },
35
+ "sortDefinition": {
36
+ "sort": [
37
+ {
38
+ "field": {
39
+ "Measure": {
40
+ "Expression": {
41
+ "SourceRef": {
42
+ "Entity": "Sales"
43
+ }
44
+ },
45
+ "Property": "Total Discount"
46
+ }
47
+ },
48
+ "direction": "Descending"
49
+ }
50
+ ],
51
+ "isDefaultSort": true
52
+ }
53
+ },
54
+ "objects": {
55
+ "label": [
56
+ {
57
+ "properties": {
58
+ "show": {
59
+ "expr": {
60
+ "Literal": {
61
+ "Value": "false"
62
+ }
63
+ }
64
+ }
65
+ },
66
+ "selector": {
67
+ "id": "default"
68
+ }
69
+ }
70
+ ],
71
+ "value": [
72
+ {
73
+ "properties": {
74
+ "horizontalAlignment": {
75
+ "expr": {
76
+ "Literal": {
77
+ "Value": "'center'"
78
+ }
79
+ }
80
+ }
81
+ },
82
+ "selector": {
83
+ "id": "default"
84
+ }
85
+ }
86
+ ],
87
+ "layout": [
88
+ {
89
+ "properties": {
90
+ "alignment": {
91
+ "expr": {
92
+ "Literal": {
93
+ "Value": "'top'"
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ ]
100
+ },
101
+ "visualContainerObjects": {
102
+ "title": [
103
+ {
104
+ "properties": {
105
+ "alignment": {
106
+ "expr": {
107
+ "Literal": {
108
+ "Value": "'center'"
109
+ }
110
+ }
111
+ },
112
+ "show": {
113
+ "expr": {
114
+ "Literal": {
115
+ "Value": "true"
116
+ }
117
+ }
118
+ },
119
+ "text": {
120
+ "expr": {
121
+ "Literal": {
122
+ "Value": "'Total Discount'"
123
+ }
124
+ }
125
+ }
126
+ }
127
+ }
128
+ ],
129
+ "subTitle": [
130
+ {
131
+ "properties": {
132
+ "alignment": {
133
+ "expr": {
134
+ "Literal": {
135
+ "Value": "'center'"
136
+ }
137
+ }
138
+ },
139
+ "show": {
140
+ "expr": {
141
+ "Literal": {
142
+ "Value": "false"
143
+ }
144
+ }
145
+ },
146
+ "text": {
147
+ "expr": {
148
+ "Literal": {
149
+ "Value": "'Total Discount'"
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ ],
156
+ "visualHeader": [
157
+ {
158
+ "properties": {
159
+ "show": {
160
+ "expr": {
161
+ "Literal": {
162
+ "Value": "false"
163
+ }
164
+ }
165
+ }
166
+ }
167
+ }
168
+ ],
169
+ "general": [
170
+ {
171
+ "properties": {
172
+ "altText": {
173
+ "expr": {
174
+ "Literal": {
175
+ "Value": "'Card showing total discount'"
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ ]
182
+ },
183
+ "drillFilterOtherVisuals": true
184
+ }
185
+ }
@@ -0,0 +1,130 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/2.8.0/schema.json",
3
+ "name": "3e7724efa859ff7b9701",
4
+ "position": {
5
+ "x": 20,
6
+ "y": 160,
7
+ "z": 3000,
8
+ "height": 360,
9
+ "width": 610,
10
+ "tabOrder": 3000
11
+ },
12
+ "visual": {
13
+ "visualType": "tableEx",
14
+ "query": {
15
+ "queryState": {
16
+ "Values": {
17
+ "projections": [
18
+ {
19
+ "field": {
20
+ "Column": {
21
+ "Expression": {
22
+ "SourceRef": {
23
+ "Entity": "Promotion"
24
+ }
25
+ },
26
+ "Property": "Promotion Name"
27
+ }
28
+ },
29
+ "queryRef": "Promotion.Promotion Name",
30
+ "nativeQueryRef": "Promotion Name"
31
+ },
32
+ {
33
+ "field": {
34
+ "Measure": {
35
+ "Expression": {
36
+ "SourceRef": {
37
+ "Entity": "Sales"
38
+ }
39
+ },
40
+ "Property": "Total Discount"
41
+ }
42
+ },
43
+ "queryRef": "Sales.Total Discount",
44
+ "nativeQueryRef": "Total Discount"
45
+ },
46
+ {
47
+ "field": {
48
+ "NativeVisualCalculation": {
49
+ "Language": "dax",
50
+ "Expression": "RUNNINGSUM([Total Discount])",
51
+ "Name": "Running discount"
52
+ }
53
+ },
54
+ "queryRef": "select",
55
+ "nativeQueryRef": "Running discount"
56
+ }
57
+ ]
58
+ }
59
+ },
60
+ "sortDefinition": {
61
+ "sort": [
62
+ {
63
+ "field": {
64
+ "Column": {
65
+ "Expression": {
66
+ "SourceRef": {
67
+ "Entity": "Promotion"
68
+ }
69
+ },
70
+ "Property": "Promotion Name"
71
+ }
72
+ },
73
+ "direction": "Ascending"
74
+ }
75
+ ]
76
+ }
77
+ },
78
+ "objects": {
79
+ "total": [
80
+ {
81
+ "properties": {
82
+ "totals": {
83
+ "expr": {
84
+ "Literal": {
85
+ "Value": "false"
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ ]
92
+ },
93
+ "visualContainerObjects": {
94
+ "title": [
95
+ {
96
+ "properties": {
97
+ "show": {
98
+ "expr": {
99
+ "Literal": {
100
+ "Value": "true"
101
+ }
102
+ }
103
+ },
104
+ "text": {
105
+ "expr": {
106
+ "Literal": {
107
+ "Value": "'Discount by promotion'"
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ ],
114
+ "general": [
115
+ {
116
+ "properties": {
117
+ "altText": {
118
+ "expr": {
119
+ "Literal": {
120
+ "Value": "'Table of total discount and its running total by promotion'"
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
126
+ ]
127
+ },
128
+ "drillFilterOtherVisuals": true
129
+ }
130
+ }
@@ -0,0 +1,187 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/2.8.0/schema.json",
3
+ "name": "3fe8e6907656325b8e86",
4
+ "position": {
5
+ "x": 280,
6
+ "y": 20,
7
+ "z": 2000,
8
+ "height": 120,
9
+ "width": 240,
10
+ "tabOrder": 2000
11
+ },
12
+ "visual": {
13
+ "visualType": "cardVisual",
14
+ "query": {
15
+ "queryState": {
16
+ "Data": {
17
+ "projections": [
18
+ {
19
+ "field": {
20
+ "Measure": {
21
+ "Expression": {
22
+ "SourceRef": {
23
+ "Schema": "extension",
24
+ "Entity": "Sales"
25
+ }
26
+ },
27
+ "Property": "Net Margin"
28
+ }
29
+ },
30
+ "queryRef": "Sales.Net Margin",
31
+ "nativeQueryRef": "Net Margin"
32
+ }
33
+ ]
34
+ }
35
+ },
36
+ "sortDefinition": {
37
+ "sort": [
38
+ {
39
+ "field": {
40
+ "Measure": {
41
+ "Expression": {
42
+ "SourceRef": {
43
+ "Schema": "extension",
44
+ "Entity": "Sales"
45
+ }
46
+ },
47
+ "Property": "Net Margin"
48
+ }
49
+ },
50
+ "direction": "Descending"
51
+ }
52
+ ],
53
+ "isDefaultSort": true
54
+ }
55
+ },
56
+ "objects": {
57
+ "label": [
58
+ {
59
+ "properties": {
60
+ "show": {
61
+ "expr": {
62
+ "Literal": {
63
+ "Value": "false"
64
+ }
65
+ }
66
+ }
67
+ },
68
+ "selector": {
69
+ "id": "default"
70
+ }
71
+ }
72
+ ],
73
+ "value": [
74
+ {
75
+ "properties": {
76
+ "horizontalAlignment": {
77
+ "expr": {
78
+ "Literal": {
79
+ "Value": "'center'"
80
+ }
81
+ }
82
+ }
83
+ },
84
+ "selector": {
85
+ "id": "default"
86
+ }
87
+ }
88
+ ],
89
+ "layout": [
90
+ {
91
+ "properties": {
92
+ "alignment": {
93
+ "expr": {
94
+ "Literal": {
95
+ "Value": "'top'"
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ ]
102
+ },
103
+ "visualContainerObjects": {
104
+ "title": [
105
+ {
106
+ "properties": {
107
+ "alignment": {
108
+ "expr": {
109
+ "Literal": {
110
+ "Value": "'center'"
111
+ }
112
+ }
113
+ },
114
+ "show": {
115
+ "expr": {
116
+ "Literal": {
117
+ "Value": "true"
118
+ }
119
+ }
120
+ },
121
+ "text": {
122
+ "expr": {
123
+ "Literal": {
124
+ "Value": "'Net Margin'"
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ ],
131
+ "subTitle": [
132
+ {
133
+ "properties": {
134
+ "alignment": {
135
+ "expr": {
136
+ "Literal": {
137
+ "Value": "'center'"
138
+ }
139
+ }
140
+ },
141
+ "show": {
142
+ "expr": {
143
+ "Literal": {
144
+ "Value": "false"
145
+ }
146
+ }
147
+ },
148
+ "text": {
149
+ "expr": {
150
+ "Literal": {
151
+ "Value": "'Net Margin'"
152
+ }
153
+ }
154
+ }
155
+ }
156
+ }
157
+ ],
158
+ "visualHeader": [
159
+ {
160
+ "properties": {
161
+ "show": {
162
+ "expr": {
163
+ "Literal": {
164
+ "Value": "false"
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ ],
171
+ "general": [
172
+ {
173
+ "properties": {
174
+ "altText": {
175
+ "expr": {
176
+ "Literal": {
177
+ "Value": "'Card showing net margin, a measure defined in the report'"
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ ]
184
+ },
185
+ "drillFilterOtherVisuals": true
186
+ }
187
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/2.8.0/schema.json",
3
+ "name": "51bb4f6f5f7f71ed0a3c",
4
+ "position": {
5
+ "x": 0,
6
+ "y": 0,
7
+ "z": 0,
8
+ "height": 100,
9
+ "width": 320,
10
+ "tabOrder": 0
11
+ },
12
+ "visual": {
13
+ "visualType": "textbox",
14
+ "objects": {
15
+ "general": [
16
+ {
17
+ "properties": {
18
+ "paragraphs": [
19
+ {
20
+ "textRuns": [
21
+ {
22
+ "value": "Discounts count on the day of the sale."
23
+ }
24
+ ]
25
+ }
26
+ ]
27
+ }
28
+ }
29
+ ]
30
+ },
31
+ "visualContainerObjects": {
32
+ "title": [
33
+ {
34
+ "properties": {
35
+ "show": {
36
+ "expr": {
37
+ "Literal": {
38
+ "Value": "false"
39
+ }
40
+ }
41
+ },
42
+ "text": {
43
+ "expr": {
44
+ "Literal": {
45
+ "Value": "'Promotion note'"
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ ],
52
+ "general": [
53
+ {
54
+ "properties": {
55
+ "altText": {
56
+ "expr": {
57
+ "Literal": {
58
+ "Value": "'Note on when discounts are counted'"
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ ]
65
+ },
66
+ "drillFilterOtherVisuals": true
67
+ },
68
+ "parentGroupName": "d2995ea3e9b9d9244bf6"
69
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/2.8.0/schema.json",
3
+ "name": "d2995ea3e9b9d9244bf6",
4
+ "position": {
5
+ "x": 1000,
6
+ "y": 160,
7
+ "z": 4000,
8
+ "height": 240,
9
+ "width": 320,
10
+ "tabOrder": 4000
11
+ },
12
+ "visualGroup": {
13
+ "displayName": "Promotion notes",
14
+ "groupMode": "ScaleMode",
15
+ "objects": {
16
+ "general": [
17
+ {
18
+ "properties": {
19
+ "altText": {
20
+ "expr": {
21
+ "Literal": {
22
+ "Value": "'Notes on promotions with the total discount given'"
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ ]
29
+ }
30
+ }
31
+ }