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
@@ -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": "b230f06615cf87ee455f",
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": "Distinct Customers"
27
+ }
28
+ },
29
+ "queryRef": "Sales.Distinct Customers",
30
+ "nativeQueryRef": "Distinct Customers"
31
+ }
32
+ ]
33
+ }
34
+ },
35
+ "sortDefinition": {
36
+ "sort": [
37
+ {
38
+ "field": {
39
+ "Measure": {
40
+ "Expression": {
41
+ "SourceRef": {
42
+ "Entity": "Sales"
43
+ }
44
+ },
45
+ "Property": "Distinct Customers"
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": "'Distinct Customers'"
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": "'Distinct Customers'"
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 the number of distinct customers'"
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ ]
182
+ },
183
+ "drillFilterOtherVisuals": true
184
+ }
185
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/pagesMetadata/1.0.0/schema.json",
3
+ "pageOrder": [
4
+ "3cea48e58036b1654474",
5
+ "52db6f0b218c638f8761",
6
+ "27f668864829019f9251",
7
+ "3b33a1ae720bb93d48b9",
8
+ "3485dcffc49d1608c370",
9
+ "b52832c4d9f487868953",
10
+ "9f2ae77d3572304756ae",
11
+ "fa72b934a72314dcf1b1",
12
+ "5fbcb07dde4e4fada3f6",
13
+ "bb1ea3ba2a1defa1979b",
14
+ "00e055aa522743f28a39"
15
+ ],
16
+ "activePageName": "b52832c4d9f487868953"
17
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/report/3.2.0/schema.json",
3
+ "themeCollection": {
4
+ "baseTheme": {
5
+ "name": "Fluent2-CY26SU04",
6
+ "reportVersionAtImport": {
7
+ "visual": "2.8.0",
8
+ "report": "3.2.0",
9
+ "page": "2.3.1"
10
+ },
11
+ "type": "SharedResources"
12
+ }
13
+ },
14
+ "objects": {
15
+ "section": [
16
+ {
17
+ "properties": {
18
+ "verticalAlignment": {
19
+ "expr": {
20
+ "Literal": {
21
+ "Value": "'Top'"
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ ],
28
+ "outspacePane": [
29
+ {
30
+ "properties": {
31
+ "expanded": {
32
+ "expr": {
33
+ "Literal": {
34
+ "Value": "true"
35
+ }
36
+ }
37
+ }
38
+ }
39
+ }
40
+ ]
41
+ },
42
+ "publicCustomVisuals": [
43
+ "ChicletSlicer1448559807354"
44
+ ],
45
+ "resourcePackages": [
46
+ {
47
+ "name": "SharedResources",
48
+ "type": "SharedResources",
49
+ "items": [
50
+ {
51
+ "name": "Fluent2-CY26SU04",
52
+ "path": "BaseThemes/Fluent2-CY26SU04.json",
53
+ "type": "BaseTheme"
54
+ }
55
+ ]
56
+ }
57
+ ],
58
+ "settings": {
59
+ "useStylableVisualContainerHeader": true,
60
+ "exportDataMode": "AllowSummarized",
61
+ "defaultDrillFilterOtherVisuals": true,
62
+ "allowChangeFilterTypes": true,
63
+ "useEnhancedTooltips": true,
64
+ "useDefaultAggregateDisplayName": true
65
+ }
66
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/reportExtension/1.0.0/schema.json",
3
+ "name": "extension",
4
+ "entities": [
5
+ {
6
+ "name": "Sales",
7
+ "measures": [
8
+ {
9
+ "name": "Net Margin",
10
+ "dataType": "Double",
11
+ "expression": "[Total Sales] - [Total Cost]",
12
+ "references": {
13
+ "measures": [
14
+ {
15
+ "entity": "Sales",
16
+ "name": "Total Sales"
17
+ },
18
+ {
19
+ "entity": "Sales",
20
+ "name": "Total Cost"
21
+ }
22
+ ]
23
+ }
24
+ },
25
+ {
26
+ "name": "Margin % (report)",
27
+ "dataType": "Double",
28
+ "expression": "DIVIDE([Net Margin], [Total Sales])",
29
+ "references": {
30
+ "measures": [
31
+ {
32
+ "schema": "extension",
33
+ "entity": "Sales",
34
+ "name": "Net Margin"
35
+ },
36
+ {
37
+ "entity": "Sales",
38
+ "name": "Total Sales"
39
+ }
40
+ ]
41
+ }
42
+ }
43
+ ]
44
+ }
45
+ ]
46
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/versionMetadata/1.0.0/schema.json",
3
+ "version": "2.0.0"
4
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definitionProperties/2.0.0/schema.json",
3
+ "version": "4.0",
4
+ "datasetReference": {
5
+ "byPath": {
6
+ "path": "../Messy Sales Demo.SemanticModel"
7
+ }
8
+ }
9
+ }
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://developer.microsoft.com/json-schemas/fabric/gitIntegration/platformProperties/2.0.0/schema.json",
3
3
  "metadata": {
4
4
  "type": "SemanticModel",
5
- "displayName": "Sales Demo"
5
+ "displayName": "Messy Sales Demo"
6
6
  },
7
7
  "config": {
8
8
  "version": "2.0",
@@ -0,0 +1,32 @@
1
+ cultureInfo en-US
2
+
3
+ linguisticMetadata =
4
+ {
5
+ "Version": "2.0.0",
6
+ "Language": "en-US",
7
+ "Entities": {
8
+ "employee.department": {
9
+ "Definition": {
10
+ "Binding": {
11
+ "ConceptualEntity": "Employee",
12
+ "ConceptualProperty": "Department"
13
+ }
14
+ },
15
+ "State": "Generated",
16
+ "Terms": [
17
+ {
18
+ "Department": {
19
+ "State": "Suggested",
20
+ "Source": {
21
+ "Type": "External",
22
+ "Agent": "PowerBI.VisualColumnRename"
23
+ },
24
+ "Weight": 0.9
25
+ }
26
+ }
27
+ ]
28
+ }
29
+ }
30
+ }
31
+ contentType: json
32
+
@@ -0,0 +1,3 @@
1
+ database
2
+ compatibilityLevel: 1606
3
+
@@ -19,6 +19,9 @@ ref table Customer
19
19
  ref table Store
20
20
  ref table Employee
21
21
  ref table Promotion
22
+ ref table DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92
23
+ ref table LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d
24
+ ref table 'Employee Grouping'
22
25
 
23
26
  ref cultureInfo en-US
24
27
 
@@ -21,3 +21,9 @@ relationship 5b883d70-11cb-59ee-bf31-c706854ce0a7
21
21
  relationship 4862abb4-bb60-51c5-8127-c4d618a3c29a
22
22
  fromColumn: Sales.'Promotion ID'
23
23
  toColumn: Promotion.'Promotion ID'
24
+
25
+ relationship 0a8d08ea-ec2d-4f5c-9688-4767079a3fa4
26
+ joinOnDateBehavior: datePartOnly
27
+ fromColumn: Customer.'Join Date'
28
+ toColumn: LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d.Date
29
+
@@ -81,6 +81,11 @@ table Customer
81
81
  summarizeBy: none
82
82
  sourceColumn: Join Date
83
83
 
84
+ variation Variation
85
+ isDefault
86
+ relationship: 0a8d08ea-ec2d-4f5c-9688-4767079a3fa4
87
+ defaultHierarchy: LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d.'Date Hierarchy'
88
+
84
89
  annotation SummarizationSetBy = Automatic
85
90
 
86
91
  annotation UnderlyingDateTimeDataType = Date
@@ -0,0 +1,118 @@
1
+ table DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92
2
+ isHidden
3
+ isPrivate
4
+ lineageTag: 0dad86d8-a72f-483c-ad43-027d5aee835a
5
+
6
+ column Date
7
+ dataType: dateTime
8
+ isHidden
9
+ formatString: General Date
10
+ lineageTag: ba20a5fb-6ec9-4b09-b39a-8f1232b45938
11
+ dataCategory: PaddedDateTableDates
12
+ summarizeBy: none
13
+ isNameInferred
14
+ sourceColumn: [Date]
15
+
16
+ annotation SummarizationSetBy = User
17
+
18
+ column Year = YEAR([Date])
19
+ dataType: int64
20
+ isHidden
21
+ formatString: 0
22
+ lineageTag: 13ea1887-6083-4606-8000-6babbac65f30
23
+ dataCategory: Years
24
+ summarizeBy: none
25
+
26
+ annotation SummarizationSetBy = User
27
+
28
+ annotation TemplateId = Year
29
+
30
+ column MonthNo = MONTH([Date])
31
+ dataType: int64
32
+ isHidden
33
+ formatString: 0
34
+ lineageTag: 9dde1f20-45a9-415a-a276-fea90987b257
35
+ dataCategory: MonthOfYear
36
+ summarizeBy: none
37
+
38
+ annotation SummarizationSetBy = User
39
+
40
+ annotation TemplateId = MonthNumber
41
+
42
+ column Month = FORMAT([Date], "MMMM")
43
+ dataType: string
44
+ isHidden
45
+ lineageTag: 6332790a-328c-485a-b816-128600cedf77
46
+ dataCategory: Months
47
+ summarizeBy: none
48
+ sortByColumn: MonthNo
49
+
50
+ annotation SummarizationSetBy = User
51
+
52
+ annotation TemplateId = Month
53
+
54
+ column QuarterNo = INT(([MonthNo] + 2) / 3)
55
+ dataType: int64
56
+ isHidden
57
+ formatString: 0
58
+ lineageTag: f9a8a04f-c505-459b-ae84-d509d3e2f9ad
59
+ dataCategory: QuarterOfYear
60
+ summarizeBy: none
61
+
62
+ annotation SummarizationSetBy = User
63
+
64
+ annotation TemplateId = QuarterNumber
65
+
66
+ column Quarter = "Qtr " & [QuarterNo]
67
+ dataType: string
68
+ isHidden
69
+ lineageTag: 6e58fc4b-30b2-46c3-8ca1-3d92c597aa6f
70
+ dataCategory: Quarters
71
+ summarizeBy: none
72
+ sortByColumn: QuarterNo
73
+
74
+ annotation SummarizationSetBy = User
75
+
76
+ annotation TemplateId = Quarter
77
+
78
+ column Day = DAY([Date])
79
+ dataType: int64
80
+ isHidden
81
+ formatString: 0
82
+ lineageTag: e5ac6662-dac3-4cde-bfb7-235d7e0ca085
83
+ dataCategory: DayOfMonth
84
+ summarizeBy: none
85
+
86
+ annotation SummarizationSetBy = User
87
+
88
+ annotation TemplateId = Day
89
+
90
+ hierarchy 'Date Hierarchy'
91
+ lineageTag: 6e88a04a-235c-4e56-8234-23b6ff68530a
92
+
93
+ level Year
94
+ lineageTag: d26ea02b-00ed-4e5f-9547-64effe16ef43
95
+ column: Year
96
+
97
+ level Quarter
98
+ lineageTag: b4dd778a-516e-4894-acb8-9e3eccb9763b
99
+ column: Quarter
100
+
101
+ level Month
102
+ lineageTag: c6bfe51b-505e-48d4-9b27-6911ac27b23c
103
+ column: Month
104
+
105
+ level Day
106
+ lineageTag: 03d6593e-87e7-4859-b28b-25732560975d
107
+ column: Day
108
+
109
+ annotation TemplateId = DateHierarchy
110
+
111
+ partition DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92 = calculated
112
+ mode: import
113
+ source = Calendar(Date(2015,1,1), Date(2015,1,1))
114
+
115
+ annotation __PBI_TemplateDateTable = true
116
+
117
+ annotation DefaultItem = DateHierarchy
118
+
@@ -0,0 +1,49 @@
1
+ table 'Employee Grouping'
2
+ lineageTag: 2d4b76b0-c6f4-4384-be5e-8107e9206104
3
+
4
+ column 'Employee Grouping'
5
+ lineageTag: 4d449cb9-1416-44a4-be89-f8935275cdcb
6
+ summarizeBy: none
7
+ sourceColumn: [Value1]
8
+ sortByColumn: 'Employee Grouping Order'
9
+
10
+ relatedColumnDetails
11
+ groupByColumn: 'Employee Grouping Fields'
12
+
13
+ annotation SummarizationSetBy = Automatic
14
+
15
+ column 'Employee Grouping Fields'
16
+ isHidden
17
+ lineageTag: 50b2027f-e1a7-4633-99ae-d605bdebb0c7
18
+ summarizeBy: none
19
+ sourceColumn: [Value2]
20
+ sortByColumn: 'Employee Grouping Order'
21
+
22
+ extendedProperty ParameterMetadata =
23
+ {
24
+ "version": 3,
25
+ "kind": 2
26
+ }
27
+
28
+ annotation SummarizationSetBy = Automatic
29
+
30
+ column 'Employee Grouping Order'
31
+ isHidden
32
+ formatString: 0
33
+ lineageTag: cbd3ef2a-98fd-4e06-846b-ca7856e03122
34
+ summarizeBy: sum
35
+ sourceColumn: [Value3]
36
+
37
+ annotation SummarizationSetBy = Automatic
38
+
39
+ partition 'Employee Grouping' = calculated
40
+ mode: import
41
+ source =
42
+ {
43
+ ("Department", NAMEOF('Employee'[Department]), 0),
44
+ ("Title", NAMEOF('Employee'[Title]), 1),
45
+ ("Region", NAMEOF('Employee'[Region]), 2)
46
+ }
47
+
48
+ annotation PBI_Id = c08cd40c863c8e3d27fa28982141c394
49
+
@@ -0,0 +1,116 @@
1
+ table LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d
2
+ isHidden
3
+ showAsVariationsOnly
4
+ lineageTag: 9313370a-8d76-4315-a82e-1af31b520fdb
5
+
6
+ column Date
7
+ dataType: dateTime
8
+ isHidden
9
+ formatString: General Date
10
+ lineageTag: 21c53a73-5d1c-456a-8f74-99145bc41b1b
11
+ dataCategory: PaddedDateTableDates
12
+ summarizeBy: none
13
+ isNameInferred
14
+ sourceColumn: [Date]
15
+
16
+ annotation SummarizationSetBy = User
17
+
18
+ column Year = YEAR([Date])
19
+ dataType: int64
20
+ isHidden
21
+ formatString: 0
22
+ lineageTag: e2e6eae8-be46-44ac-979e-9cd8835f84ba
23
+ dataCategory: Years
24
+ summarizeBy: none
25
+
26
+ annotation SummarizationSetBy = User
27
+
28
+ annotation TemplateId = Year
29
+
30
+ column MonthNo = MONTH([Date])
31
+ dataType: int64
32
+ isHidden
33
+ formatString: 0
34
+ lineageTag: 64e7e2ef-1d58-464f-abf7-e4693d75e7d1
35
+ dataCategory: MonthOfYear
36
+ summarizeBy: none
37
+
38
+ annotation SummarizationSetBy = User
39
+
40
+ annotation TemplateId = MonthNumber
41
+
42
+ column Month = FORMAT([Date], "MMMM")
43
+ dataType: string
44
+ isHidden
45
+ lineageTag: 6b9ce51a-1769-45b4-9119-d11d8dbbc611
46
+ dataCategory: Months
47
+ summarizeBy: none
48
+ sortByColumn: MonthNo
49
+
50
+ annotation SummarizationSetBy = User
51
+
52
+ annotation TemplateId = Month
53
+
54
+ column QuarterNo = INT(([MonthNo] + 2) / 3)
55
+ dataType: int64
56
+ isHidden
57
+ formatString: 0
58
+ lineageTag: 121cc795-6feb-4f11-ae2f-239416a152a2
59
+ dataCategory: QuarterOfYear
60
+ summarizeBy: none
61
+
62
+ annotation SummarizationSetBy = User
63
+
64
+ annotation TemplateId = QuarterNumber
65
+
66
+ column Quarter = "Qtr " & [QuarterNo]
67
+ dataType: string
68
+ isHidden
69
+ lineageTag: b96d6d6f-88c5-4f87-913a-3dec15c15e12
70
+ dataCategory: Quarters
71
+ summarizeBy: none
72
+ sortByColumn: QuarterNo
73
+
74
+ annotation SummarizationSetBy = User
75
+
76
+ annotation TemplateId = Quarter
77
+
78
+ column Day = DAY([Date])
79
+ dataType: int64
80
+ isHidden
81
+ formatString: 0
82
+ lineageTag: d51f144f-6d5c-4527-93f8-7a539ece4628
83
+ dataCategory: DayOfMonth
84
+ summarizeBy: none
85
+
86
+ annotation SummarizationSetBy = User
87
+
88
+ annotation TemplateId = Day
89
+
90
+ hierarchy 'Date Hierarchy'
91
+ lineageTag: bc061ff2-65bc-442c-a586-1ccb0481c65c
92
+
93
+ level Year
94
+ lineageTag: 8c82ba8c-68b3-47e1-ad6d-627b05ed9d7f
95
+ column: Year
96
+
97
+ level Quarter
98
+ lineageTag: 8b1d5817-6201-461b-b181-020e74186717
99
+ column: Quarter
100
+
101
+ level Month
102
+ lineageTag: beadb57e-c7b1-4037-ac7f-9662dbd67263
103
+ column: Month
104
+
105
+ level Day
106
+ lineageTag: 450e82b7-9932-4834-b6b4-0d6269104fd3
107
+ column: Day
108
+
109
+ annotation TemplateId = DateHierarchy
110
+
111
+ partition LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d = calculated
112
+ mode: import
113
+ source = Calendar(Date(Year(MIN('Customer'[Join Date])), 1, 1), Date(Year(MAX('Customer'[Join Date])), 12, 31))
114
+
115
+ annotation __PBI_LocalDateTable = true
116
+