@bizdoc/core 1.7.0-next.3 → 1.7.0-next.7

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 (277) hide show
  1. package/README.md +4 -3
  2. package/assets/fonts/MaterialIcons-Regular.svg +2373 -2373
  3. package/assets/fonts/README.md +9 -9
  4. package/assets/fonts/codepoints +932 -932
  5. package/assets/fonts/material-icons.css +36 -36
  6. package/assets/themes/brown.min.css +83 -81
  7. package/assets/themes/dark.min.css +77 -75
  8. package/assets/themes/default.min.css +90 -88
  9. package/assets/themes/green.min.css +83 -81
  10. package/assets/themes/indigo.min.css +83 -81
  11. package/bundles/bizdoc-core.umd.js +1086 -1600
  12. package/bundles/bizdoc-core.umd.js.map +1 -1
  13. package/esm2015/lib/app.component.js +7 -13
  14. package/esm2015/lib/bizdoc.module.js +2 -37
  15. package/esm2015/lib/browse/filter/filter.component.js +2 -2
  16. package/esm2015/lib/core/configuration.js +1 -1
  17. package/esm2015/lib/core/controls/combination-picker-body.js +2 -2
  18. package/esm2015/lib/core/models.js +1 -1
  19. package/esm2015/lib/core/session.service.js +5 -9
  20. package/esm2015/lib/core/slots/slots.component.js +6 -4
  21. package/esm2015/lib/cube/accum/accum.component.js +4 -7
  22. package/esm2015/lib/cube/chart/chart.component.js +6 -3
  23. package/esm2015/lib/cube/cube-info.service.js +100 -0
  24. package/esm2015/lib/cube/cube-view.component.js +11 -30
  25. package/esm2015/lib/cube/declarations.js +1 -1
  26. package/esm2015/lib/cube/explore/explore-items.component.js +5 -7
  27. package/esm2015/lib/cube/explore/explore.pane.component.js +2 -5
  28. package/esm2015/lib/cube/filter/filter-tags.component.exp.js +8 -8
  29. package/esm2015/lib/cube/filter/filter.component.js +14 -11
  30. package/esm2015/lib/cube/grid/grid.component.js +4 -3
  31. package/esm2015/lib/cube/grid/spreadsheet.component.js +4 -4
  32. package/esm2015/lib/cube/matrix/matrix.base.js +130 -0
  33. package/esm2015/lib/cube/matrix/matrix.component.js +68 -0
  34. package/esm2015/lib/cube/matrix/matrix.mobile.component.js +62 -0
  35. package/esm2015/lib/cube/matrix/matrix.pane.component.js +70 -0
  36. package/esm2015/lib/cube/matrix/table.component.js +254 -0
  37. package/esm2015/lib/cube/pivot/pivot.component.js +4 -4
  38. package/esm2015/lib/cube/view-base.js +76 -0
  39. package/esm2015/lib/cube/view.mobile.component.js +31 -54
  40. package/esm2015/lib/cube/view.pane.component.js +26 -58
  41. package/esm2015/lib/dashboard/cube/accum-cube.widget.js +2 -2
  42. package/esm2015/lib/dashboard/cube/cube-analysis.base.js +2 -2
  43. package/esm2015/lib/dashboard/cube/cube-chart.widget.js +2 -2
  44. package/esm2015/lib/dashboard/cube/filter/filter.component.js +3 -3
  45. package/esm2015/lib/desktop.module.js +6 -6
  46. package/esm2015/lib/home/sign/sign.component.js +2 -2
  47. package/esm2015/lib/impersonate/impersonate.component.js +69 -0
  48. package/esm2015/lib/mobile.module.js +9 -9
  49. package/esm2015/lib/reports/cube/grid-documents.component.js +10 -9
  50. package/esm2015/lib/reports/cube/usage-args.component.js +2 -2
  51. package/esm2015/lib/routes.desktop.js +3 -3
  52. package/esm2015/lib/routes.mobile.js +5 -5
  53. package/esm2015/lib/scheduler/schedule.component.js +21 -17
  54. package/esm2015/lib/shared.module.js +26 -26
  55. package/esm2015/lib/system.module.js +8 -10
  56. package/esm2015/lib/views/cube/cube-base.js +10 -5
  57. package/esm2015/lib/views/cube/matrix.component.js +95 -0
  58. package/esm2015/lib/views/cube/view.component.js +19 -21
  59. package/esm2015/lib/views/document-view-ref.js +3 -2
  60. package/esm2015/lib/views/timeline/timeline.component.exp.js +317 -0
  61. package/esm2015/lib/views/view-item.component.js +11 -7
  62. package/esm2015/lib/views/views.component.js +10 -11
  63. package/esm2015/public-api.js +4 -8
  64. package/fesm2015/bizdoc-core.js +902 -1382
  65. package/fesm2015/bizdoc-core.js.map +1 -1
  66. package/lib/app.component.d.ts +1 -4
  67. package/lib/core/configuration.d.ts +1 -17
  68. package/lib/core/controls/combination-picker-body.d.ts +1 -1
  69. package/lib/core/models.d.ts +1 -0
  70. package/lib/core/session.service.d.ts +0 -5
  71. package/lib/core/slots/slots.component.d.ts +1 -1
  72. package/lib/cube/accum/accum.component.d.ts +3 -7
  73. package/lib/cube/chart/chart.component.d.ts +1 -1
  74. package/lib/cube/{info/cube-info.service.d.ts → cube-info.service.d.ts} +6 -6
  75. package/lib/cube/cube-view.component.d.ts +4 -9
  76. package/lib/cube/declarations.d.ts +3 -5
  77. package/lib/cube/explore/explore-items.component.d.ts +1 -4
  78. package/lib/cube/explore/explore.pane.component.d.ts +0 -1
  79. package/lib/cube/filter/filter-tags.component.exp.d.ts +2 -2
  80. package/lib/cube/filter/filter.component.d.ts +4 -3
  81. package/lib/cube/grid/grid.component.d.ts +2 -1
  82. package/lib/cube/grid/spreadsheet.component.d.ts +1 -1
  83. package/lib/cube/{info/cube-info.base.d.ts → matrix/matrix.base.d.ts} +5 -5
  84. package/lib/cube/{info/cube-info.component.d.ts → matrix/matrix.component.d.ts} +8 -8
  85. package/lib/cube/{info/cube-info.mobile.component.d.ts → matrix/matrix.mobile.component.d.ts} +4 -4
  86. package/lib/cube/{info/cube-info.pane.component.d.ts → matrix/matrix.pane.component.d.ts} +5 -5
  87. package/lib/cube/{info → matrix}/table.component.d.ts +4 -5
  88. package/lib/cube/pivot/pivot.component.d.ts +2 -4
  89. package/lib/cube/view-base.d.ts +39 -0
  90. package/lib/cube/view.mobile.component.d.ts +8 -25
  91. package/lib/cube/view.pane.component.d.ts +8 -26
  92. package/lib/dashboard/cube/accum-cube.widget.d.ts +1 -1
  93. package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -1
  94. package/lib/dashboard/cube/cube-chart.widget.d.ts +1 -1
  95. package/lib/dashboard/cube/filter/filter.component.d.ts +1 -1
  96. package/lib/desktop.module.d.ts +2 -2
  97. package/lib/{login/impersonate → impersonate}/impersonate.component.d.ts +3 -3
  98. package/lib/mobile.module.d.ts +2 -2
  99. package/lib/scheduler/schedule.component.d.ts +4 -1
  100. package/lib/shared.module.d.ts +48 -50
  101. package/lib/system.module.d.ts +25 -26
  102. package/lib/views/cube/cube-base.d.ts +16 -10
  103. package/lib/views/cube/{table.component.d.ts → matrix.component.d.ts} +2 -15
  104. package/lib/views/cube/view.component.d.ts +2 -9
  105. package/lib/views/document-view-ref.d.ts +3 -1
  106. package/lib/views/timeline/timeline.component.exp.d.ts +64 -0
  107. package/lib/views/view-item.component.d.ts +4 -2
  108. package/lib/views/views.component.d.ts +3 -5
  109. package/package.json +15 -17
  110. package/public-api.d.ts +4 -8
  111. package/esm2015/lib/admin/users/users.component.js +0 -155
  112. package/esm2015/lib/admin/users/users.service.js +0 -29
  113. package/esm2015/lib/cube/info/cube-info.base.js +0 -128
  114. package/esm2015/lib/cube/info/cube-info.component.js +0 -69
  115. package/esm2015/lib/cube/info/cube-info.mobile.component.js +0 -62
  116. package/esm2015/lib/cube/info/cube-info.pane.component.js +0 -70
  117. package/esm2015/lib/cube/info/cube-info.service.js +0 -100
  118. package/esm2015/lib/cube/info/table.component.js +0 -258
  119. package/esm2015/lib/login/forgot/forgot.component.js +0 -50
  120. package/esm2015/lib/login/form.authentication.js +0 -71
  121. package/esm2015/lib/login/form.interceptor.js +0 -26
  122. package/esm2015/lib/login/impersonate/impersonate.component.js +0 -69
  123. package/esm2015/lib/login/login.component.js +0 -130
  124. package/esm2015/lib/login/okta.authentication.js +0 -41
  125. package/esm2015/lib/login/okta.component.js +0 -84
  126. package/esm2015/lib/login/okta.interceptor.js +0 -30
  127. package/esm2015/lib/login/prompt/prompt.component.js +0 -194
  128. package/esm2015/lib/login/signin-info.service.js +0 -49
  129. package/esm2015/lib/views/cube/table.component.js +0 -107
  130. package/lib/admin/users/users.component.d.ts +0 -41
  131. package/lib/admin/users/users.service.d.ts +0 -30
  132. package/lib/login/forgot/forgot.component.d.ts +0 -20
  133. package/lib/login/form.authentication.d.ts +0 -29
  134. package/lib/login/form.interceptor.d.ts +0 -11
  135. package/lib/login/login.component.d.ts +0 -18
  136. package/lib/login/okta.authentication.d.ts +0 -13
  137. package/lib/login/okta.component.d.ts +0 -18
  138. package/lib/login/okta.interceptor.d.ts +0 -11
  139. package/lib/login/prompt/prompt.component.d.ts +0 -45
  140. package/lib/login/signin-info.service.d.ts +0 -18
  141. package/src/assets/.gitkeep +0 -0
  142. package/src/assets/animations/13194-message.json +0 -1
  143. package/src/assets/animations/1408-network-lost.json +0 -1
  144. package/src/assets/animations/19560-loading.json +0 -1
  145. package/src/assets/animations/21928-folder.json +0 -1
  146. package/src/assets/animations/21941-airplane-animation-movement.json +0 -1
  147. package/src/assets/animations/2252-broken-stick-error.json +0 -1
  148. package/src/assets/animations/24910-new-message-notification.json +0 -1
  149. package/src/assets/animations/25974-paper-plane.json +0 -1
  150. package/src/assets/animations/36395-lonely-404.json +0 -1
  151. package/src/assets/animations/36499-page-not-found.json +0 -1
  152. package/src/assets/animations/37211-google-icons-forms.json +0 -1
  153. package/src/assets/animations/41896-application.json +0 -1
  154. package/src/assets/animations/4958-404-not-found.json +0 -1
  155. package/src/assets/animations/51956-success-icon.json +0 -1
  156. package/src/assets/animations/53402-bell.json +0 -1
  157. package/src/assets/animations/5371-volaris-tickets.json +0 -1
  158. package/src/assets/animations/58266-quad-cube-shifter-1.json +0 -1
  159. package/src/assets/animations/58509-shifting-cubes-2.json +0 -1
  160. package/src/assets/animations/8318-loader.json +0 -1
  161. package/src/assets/animations/lf20_isphoahq.json +0 -1
  162. package/src/assets/animations/lf30_editor_6kz6oezn.json +0 -1
  163. package/src/assets/animations/lf30_editor_b6axvtp7.json +0 -1
  164. package/src/assets/animations/lf30_editor_cq62rpyv.json +0 -1
  165. package/src/assets/animations/lf30_editor_fbytfhvg.json +0 -1
  166. package/src/assets/animations/lf30_editor_h1xoyem7.json +0 -1
  167. package/src/assets/animations/lf30_editor_qr7zgmcs.json +0 -1
  168. package/src/assets/animations/lf30_editor_rxee1cqy.json +0 -1
  169. package/src/assets/animations/lf30_editor_yxy6fuei.json +0 -1
  170. package/src/assets/bizdoc-schema.json +0 -1238
  171. package/src/assets/favicon.ico +0 -0
  172. package/src/assets/fonts/LICENSE.txt +0 -202
  173. package/src/assets/fonts/MaterialIcons-Outlined.woff2 +0 -0
  174. package/src/assets/fonts/MaterialIcons-Regular.eot +0 -0
  175. package/src/assets/fonts/MaterialIcons-Regular.ijmap +0 -1
  176. package/src/assets/fonts/MaterialIcons-Regular.svg +0 -2373
  177. package/src/assets/fonts/MaterialIcons-Regular.ttf +0 -0
  178. package/src/assets/fonts/MaterialIcons-Regular.woff +0 -0
  179. package/src/assets/fonts/MaterialIcons-Regular.woff2 +0 -0
  180. package/src/assets/fonts/MaterialIcons.css +0 -55
  181. package/src/assets/fonts/README.md +0 -9
  182. package/src/assets/fonts/Roboto-Black.ttf +0 -0
  183. package/src/assets/fonts/Roboto-BlackItalic.ttf +0 -0
  184. package/src/assets/fonts/Roboto-Bold.ttf +0 -0
  185. package/src/assets/fonts/Roboto-BoldItalic.ttf +0 -0
  186. package/src/assets/fonts/Roboto-Italic.ttf +0 -0
  187. package/src/assets/fonts/Roboto-Light.ttf +0 -0
  188. package/src/assets/fonts/Roboto-LightItalic.ttf +0 -0
  189. package/src/assets/fonts/Roboto-Medium.ttf +0 -0
  190. package/src/assets/fonts/Roboto-MediumItalic.ttf +0 -0
  191. package/src/assets/fonts/Roboto-Regular.ttf +0 -0
  192. package/src/assets/fonts/Roboto-Thin.ttf +0 -0
  193. package/src/assets/fonts/Roboto-ThinItalic.ttf +0 -0
  194. package/src/assets/fonts/codepoints +0 -932
  195. package/src/assets/fonts/material-icons.css +0 -36
  196. package/src/assets/i18n/cldr-data/main/he/ca-buddhist.json +0 -532
  197. package/src/assets/i18n/cldr-data/main/he/ca-chinese.json +0 -1255
  198. package/src/assets/i18n/cldr-data/main/he/ca-coptic.json +0 -541
  199. package/src/assets/i18n/cldr-data/main/he/ca-dangi.json +0 -1255
  200. package/src/assets/i18n/cldr-data/main/he/ca-ethiopic-amete-alem.json +0 -538
  201. package/src/assets/i18n/cldr-data/main/he/ca-ethiopic.json +0 -541
  202. package/src/assets/i18n/cldr-data/main/he/ca-generic.json +0 -535
  203. package/src/assets/i18n/cldr-data/main/he/ca-gregorian.json +0 -552
  204. package/src/assets/i18n/cldr-data/main/he/ca-hebrew.json +0 -557
  205. package/src/assets/i18n/cldr-data/main/he/ca-indian.json +0 -532
  206. package/src/assets/i18n/cldr-data/main/he/ca-islamic-civil.json +0 -532
  207. package/src/assets/i18n/cldr-data/main/he/ca-islamic-rgsa.json +0 -532
  208. package/src/assets/i18n/cldr-data/main/he/ca-islamic-tbla.json +0 -532
  209. package/src/assets/i18n/cldr-data/main/he/ca-islamic-umalqura.json +0 -532
  210. package/src/assets/i18n/cldr-data/main/he/ca-islamic.json +0 -532
  211. package/src/assets/i18n/cldr-data/main/he/ca-japanese.json +0 -1240
  212. package/src/assets/i18n/cldr-data/main/he/ca-persian.json +0 -532
  213. package/src/assets/i18n/cldr-data/main/he/ca-roc.json +0 -535
  214. package/src/assets/i18n/cldr-data/main/he/characters.json +0 -53
  215. package/src/assets/i18n/cldr-data/main/he/currencies.json +0 -1982
  216. package/src/assets/i18n/cldr-data/main/he/dateFields.json +0 -860
  217. package/src/assets/i18n/cldr-data/main/he/delimiters.json +0 -19
  218. package/src/assets/i18n/cldr-data/main/he/languages.json +0 -555
  219. package/src/assets/i18n/cldr-data/main/he/layout.json +0 -19
  220. package/src/assets/i18n/cldr-data/main/he/listPatterns.json +0 -69
  221. package/src/assets/i18n/cldr-data/main/he/localeDisplayNames.json +0 -231
  222. package/src/assets/i18n/cldr-data/main/he/measurementSystemNames.json +0 -20
  223. package/src/assets/i18n/cldr-data/main/he/numbers.json +0 -233
  224. package/src/assets/i18n/cldr-data/main/he/posix.json +0 -19
  225. package/src/assets/i18n/cldr-data/main/he/scripts.json +0 -191
  226. package/src/assets/i18n/cldr-data/main/he/territories.json +0 -324
  227. package/src/assets/i18n/cldr-data/main/he/timeZoneNames.json +0 -2301
  228. package/src/assets/i18n/cldr-data/main/he/units.json +0 -3408
  229. package/src/assets/i18n/cldr-data/main/he/variants.json +0 -119
  230. package/src/assets/i18n/cldr-data/supplemental/aliases.json +0 -4391
  231. package/src/assets/i18n/cldr-data/supplemental/calendarData.json +0 -865
  232. package/src/assets/i18n/cldr-data/supplemental/calendarPreferenceData.json +0 -50
  233. package/src/assets/i18n/cldr-data/supplemental/characterFallbacks.json +0 -888
  234. package/src/assets/i18n/cldr-data/supplemental/codeMappings.json +0 -1932
  235. package/src/assets/i18n/cldr-data/supplemental/currencyData.json +0 -3589
  236. package/src/assets/i18n/cldr-data/supplemental/dayPeriods.json +0 -2008
  237. package/src/assets/i18n/cldr-data/supplemental/gender.json +0 -67
  238. package/src/assets/i18n/cldr-data/supplemental/languageData.json +0 -6450
  239. package/src/assets/i18n/cldr-data/supplemental/languageGroups.json +0 -115
  240. package/src/assets/i18n/cldr-data/supplemental/languageMatching.json +0 -1864
  241. package/src/assets/i18n/cldr-data/supplemental/likelySubtags.json +0 -1844
  242. package/src/assets/i18n/cldr-data/supplemental/measurementData.json +0 -44
  243. package/src/assets/i18n/cldr-data/supplemental/metaZones.json +0 -7049
  244. package/src/assets/i18n/cldr-data/supplemental/numberingSystems.json +0 -343
  245. package/src/assets/i18n/cldr-data/supplemental/ordinals.json +0 -371
  246. package/src/assets/i18n/cldr-data/supplemental/parentLocales.json +0 -180
  247. package/src/assets/i18n/cldr-data/supplemental/plurals.json +0 -884
  248. package/src/assets/i18n/cldr-data/supplemental/primaryZones.json +0 -22
  249. package/src/assets/i18n/cldr-data/supplemental/references.json +0 -1181
  250. package/src/assets/i18n/cldr-data/supplemental/territoryContainment.json +0 -753
  251. package/src/assets/i18n/cldr-data/supplemental/territoryInfo.json +0 -6604
  252. package/src/assets/i18n/cldr-data/supplemental/timeData.json +0 -1031
  253. package/src/assets/i18n/cldr-data/supplemental/unitPreferenceData.json +0 -290
  254. package/src/assets/i18n/cldr-data/supplemental/weekData.json +0 -316
  255. package/src/assets/i18n/cldr-data/supplemental/windowsZones.json +0 -3520
  256. package/src/assets/icons/icon-128x128.png +0 -0
  257. package/src/assets/icons/icon-144x144.png +0 -0
  258. package/src/assets/icons/icon-152x152.png +0 -0
  259. package/src/assets/icons/icon-192x192.png +0 -0
  260. package/src/assets/icons/icon-256x256.png +0 -0
  261. package/src/assets/icons/icon-32x32.png +0 -0
  262. package/src/assets/icons/icon-512x512.png +0 -0
  263. package/src/assets/js/app-sw.js +0 -16
  264. package/src/assets/js/firebase-messaging-sw.js +0 -1
  265. package/src/assets/js/logo.js +0 -31
  266. package/src/assets/logo.json +0 -1
  267. package/src/assets/logo.svg +0 -38
  268. package/src/assets/manifest.json +0 -43
  269. package/src/assets/sounds/alert_error-03.ogg +0 -0
  270. package/src/assets/sounds/navigation_hover-tap.ogg +0 -0
  271. package/src/assets/sounds/notification_simple-01.ogg +0 -0
  272. package/src/assets/themes/brown.min.css +0 -81
  273. package/src/assets/themes/dark.min.css +0 -76
  274. package/src/assets/themes/default.min.css +0 -88
  275. package/src/assets/themes/green.min.css +0 -81
  276. package/src/assets/themes/indigo.min.css +0 -81
  277. package/src/assets/themes/okta-sign-in.min.css +0 -17
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bizdoc/core",
3
- "version": "1.7.0-next.3",
3
+ "version": "1.7.0-next.7",
4
4
  "author": "Moding Ltd.",
5
5
  "homepage": "https://github.com/moding-il/bizdoc.core",
6
6
  "license": "https://github.com/moding-il/bizdoc.core/blob/master/License.md",
@@ -11,13 +11,11 @@
11
11
  "dependencies": {
12
12
  "@ctrl/ngx-emoji-mart": "^6.0.1",
13
13
  "@microsoft/signalr": "^5.0.10",
14
- "@okta/okta-angular": "^4.0.0",
15
- "@okta/okta-auth-js": "^5.5.0",
16
- "@okta/okta-signin-widget": "^5.10.1",
17
14
  "@syncfusion/ej2": "^19.2.62",
18
15
  "@syncfusion/ej2-angular-charts": "^19.2.62",
19
16
  "@syncfusion/ej2-angular-circulargauge": "^19.2.62",
20
17
  "@syncfusion/ej2-angular-diagrams": "^19.2.62",
18
+ "@syncfusion/ej2-angular-gantt": "^19.2.62",
21
19
  "@syncfusion/ej2-angular-grids": "^19.2.62",
22
20
  "@syncfusion/ej2-angular-kanban": "^19.2.60",
23
21
  "@syncfusion/ej2-angular-layouts": "^19.2.60",
@@ -31,7 +29,7 @@
31
29
  "ajv": "^8.6.3",
32
30
  "brace": "^0.11.1",
33
31
  "cookie": "^0.4.1",
34
- "firebase": "^9.0.2",
32
+ "firebase": "^9.1.0",
35
33
  "hammerjs": "~2",
36
34
  "lottie-web": "^5.7.13",
37
35
  "moment": "^2.29.1",
@@ -44,19 +42,19 @@
44
42
  "tslib": "^2.2.0"
45
43
  },
46
44
  "peerDependencies": {
47
- "@angular/animations": "^12.2.6",
48
- "@angular/cdk": "^12.2.6",
49
- "@angular/common": "^12.2.6",
50
- "@angular/compiler": "^12.2.6",
51
- "@angular/core": "^12.2.6",
45
+ "@angular/animations": "^12.2.7",
46
+ "@angular/cdk": "^12.2.7",
47
+ "@angular/common": "^12.2.7",
48
+ "@angular/compiler": "^12.2.7",
49
+ "@angular/core": "^12.2.7",
52
50
  "@angular/flex-layout": "^12.0.0-beta.35",
53
- "@angular/forms": "^12.2.6",
54
- "@angular/material": "^12.2.6",
55
- "@angular/material-moment-adapter": "^12.2.6",
56
- "@angular/platform-browser": "^12.2.6",
57
- "@angular/platform-browser-dynamic": "^12.2.6",
58
- "@angular/platform-server": "^12.2.6",
59
- "@angular/router": "^12.2.6"
51
+ "@angular/forms": "^12.2.7",
52
+ "@angular/material": "^12.2.7",
53
+ "@angular/material-moment-adapter": "^12.2.7",
54
+ "@angular/platform-browser": "^12.2.7",
55
+ "@angular/platform-browser-dynamic": "^12.2.7",
56
+ "@angular/platform-server": "^12.2.7",
57
+ "@angular/router": "^12.2.7"
60
58
  },
61
59
  "assets": [
62
60
  "src/assets"
package/public-api.d.ts CHANGED
@@ -6,7 +6,7 @@ export { isMobile, isArray, isBoolean, isDate, isObject, isString } from './lib/
6
6
  export { BizDoc, ComponentType, } from './lib/core/decorators';
7
7
  export * from './lib/core/configuration';
8
8
  export { BizDocApp } from './lib/app.component';
9
- export { Folder, Form, LatLng, Dimentions, Guide, GuideStep, Gender, CubeAxis, AxisType, RecipientModel, Action, State, HeaderModel, LogType, Role, Comment, Attachment, DocumentModel, DRAFT, INBOX, ScheduledEvent, CubeEntry, Log, Recipient, Cube, Widget, Report, CubeIndex, AxesMap, CubeView, Notification, FieldType } from './lib/core/models';
9
+ export { Folder, Form, LatLng, Dimentions, Guide, GuideStep, Gender, CubeAxis, AxisType, RecipientModel, Action, State, HeaderModel, LogType, Role, Comment, Attachment, DocumentModel, DRAFT, INBOX, ScheduledEvent, CubeEntry, Log, Recipient, Cube, Widget, Report, CubeIndex, AxesMap, CubeView, Notification, FieldType, UserInfo } from './lib/core/models';
10
10
  export { AxisClickEvent } from './lib/cube/declarations';
11
11
  export { ItemClickEvent } from './lib/cube/explore/explore-items.component';
12
12
  export { UtilityRef } from "./lib/admin/utility-ref";
@@ -14,7 +14,7 @@ export { ReportRef, ExportEventArgs } from "./lib/reports/report-ref";
14
14
  export { WidgetRef } from "./lib/dashboard/widget-ref";
15
15
  export { FormRef, SaveEventArgs } from "./lib/compose/form-ref";
16
16
  export { MailboxService, FilterType } from './lib/core/mailbox.service';
17
- export { SessionService, SessionMode } from './lib/core/session.service';
17
+ export { SessionService } from './lib/core/session.service';
18
18
  export { DatasourceService } from './lib/core/datasource.service';
19
19
  export { AccountService } from './lib/core/account.service';
20
20
  export { AvatarComponent } from './lib/core/avatar/avatar.component';
@@ -24,7 +24,7 @@ export { TranslateService } from './lib/core/translate.service';
24
24
  export { Location } from './lib/core/info/location-info.component';
25
25
  export { MapInfo } from './lib/core/info/map-info';
26
26
  export { DocumentInfo } from './lib/core/info/document-info.service';
27
- export { CubeData, CubeDataOptions, ExploreOptions, CubeInfo } from './lib/cube/info/cube-info.service';
27
+ export { CubeData, CubeDataOptions, ExploreOptions, CubeInfo } from './lib/cube/cube-info.service';
28
28
  export { AttachmentInfo } from './lib/core/info/attachment-info.service';
29
29
  export { CombinationPool } from './lib/core/controls/combination-pool';
30
30
  export { CombinationPicker } from './lib/core/controls/combination-picker';
@@ -105,7 +105,7 @@ export { AssignActionComponent } from './lib/compose/action/assign-action.compon
105
105
  export { ReturnActionComponent } from './lib/compose/action/return-action.component';
106
106
  export { ContactsComponent } from './lib/chat/contacts.component';
107
107
  export { ConversationComponent } from './lib/chat/conversation.component';
108
- export { CubeInfoTableComponent } from './lib/cube/info/table.component';
108
+ export { CubeMatrixTableComponent } from './lib/cube/matrix/table.component';
109
109
  export { VersionCompareComponent } from './lib/compose/version-compare/version-compare.component';
110
110
  export { TimespanInput } from './lib/core/controls/timespan.input';
111
111
  export { AceInput } from './lib/admin/core/ace.input';
@@ -124,13 +124,9 @@ export { DocumentViewsComponent } from './lib/views/views.component';
124
124
  export { DocumentViewRef } from "./lib/views/document-view-ref";
125
125
  export { RouterImpl } from './lib/core/router';
126
126
  export { DocumentInfoComponent } from './lib/compose/document.component';
127
- export { OktaHttpInterceptor } from "./lib/login/okta.interceptor";
128
127
  export { AuthenticationImpl } from './lib/core/authentication';
129
- export { OktaAuthentication } from "./lib/login/okta.authentication";
130
- export { FormAuthentication } from "./lib/login/form.authentication";
131
128
  export { CubeAccumulationChartComponent } from './lib/cube/accum/accum.component';
132
129
  export { CubeChartComponent } from './lib/cube/chart/chart.component';
133
130
  export { CubeGridComponent } from './lib/cube/grid/grid.component';
134
131
  export { CubeSpreadsheetComponent } from './lib/cube/grid/spreadsheet.component';
135
132
  export { CubePivotComponent } from './lib/cube/pivot/pivot.component';
136
- export { FormHttpInterceptor } from './lib/login/form.interceptor';
@@ -1,155 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, ViewChild, Inject } from '@angular/core';
3
- import { Validators } from '@angular/forms';
4
- import { BizDoc } from '../../core/decorators';
5
- import { SelectionModel } from '@angular/cdk/collections';
6
- import { BIZDOC_CONFIG } from '../../core/configuration';
7
- import { MatTableDataSource } from '@angular/material/table';
8
- import { MatSort } from '@angular/material/sort';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- import * as i2 from "./users.service";
12
- import * as i3 from "@angular/material/snack-bar";
13
- import * as i4 from "@angular/cdk/bidi";
14
- import * as i5 from "@angular/material/dialog";
15
- import * as i6 from "../../core/translate.service";
16
- import * as i7 from "@angular/material/toolbar";
17
- import * as i8 from "../core/search.input";
18
- import * as i9 from "@angular/material/button";
19
- import * as i10 from "@angular/material/icon";
20
- import * as i11 from "@angular/material/sidenav";
21
- import * as i12 from "@angular/material/table";
22
- import * as i13 from "@angular/material/checkbox";
23
- import * as i14 from "@angular/material/sort";
24
- import * as i15 from "@angular/material/menu";
25
- import * as i16 from "@angular/material/form-field";
26
- import * as i17 from "@angular/material/select";
27
- import * as i18 from "@angular/material/core";
28
- import * as i19 from "@angular/material/tooltip";
29
- import * as i20 from "@angular/flex-layout/flex";
30
- import * as i21 from "@angular/material/input";
31
- import * as i22 from "@angular/common";
32
- import * as i23 from "../../core/pipes/translate.pipe";
33
- const HTTP_CUSTOM_ERR = 406;
34
- let UsersComponent = class UsersComponent {
35
- /** users ctor */
36
- constructor(_fb, _service, _sb, _dir, _dialog, _translate, _bizdoc) {
37
- this._fb = _fb;
38
- this._service = _service;
39
- this._sb = _sb;
40
- this._dir = _dir;
41
- this._dialog = _dialog;
42
- this._translate = _translate;
43
- this._bizdoc = _bizdoc;
44
- this.form = this._fb.group({
45
- id: null,
46
- nickName: null,
47
- password: this._fb.control(null, Validators.required),
48
- surname: null,
49
- givenName: null,
50
- gender: null,
51
- userName: this._fb.control(null, Validators.required),
52
- roles: null,
53
- phoneNumber: null,
54
- email: null
55
- });
56
- this.dataSource = new MatTableDataSource();
57
- this.displayColumns = ['select', 'userName', 'email', 'options'];
58
- this.selection = new SelectionModel(true, []);
59
- }
60
- ngOnInit() {
61
- this.roles = this._service.roles();
62
- this._service.all().subscribe(r => {
63
- this.dataSource = new MatTableDataSource(r);
64
- this.dataSource.sort = this.sort;
65
- });
66
- }
67
- search(value) {
68
- this.dataSource.filter = value;
69
- }
70
- add() {
71
- this._clear();
72
- const validators = [Validators.required];
73
- if (this._bizdoc.credentials && this._bizdoc.credentials.password)
74
- validators.push(Validators.pattern(this._bizdoc.credentials.password.pattern));
75
- this.form.controls['password'].setValidators(validators);
76
- this._dialog.open(this.newTemplate, { closeOnNavigation: true }).afterClosed().subscribe(r => {
77
- if (r)
78
- this._service.add(this.form.getRawValue()).subscribe(u => {
79
- this.dataSource.data.push(u);
80
- this.dataSource.filter = '';
81
- this._ok();
82
- }, e => this._error(e));
83
- });
84
- }
85
- edit(user) {
86
- this._clear();
87
- const validators = [];
88
- if (this._bizdoc.credentials && this._bizdoc.credentials.password)
89
- validators.push(Validators.pattern(this._bizdoc.credentials.password.pattern));
90
- this.form.controls['password'].setValidators(validators);
91
- this._service.get(user.id).subscribe(u => {
92
- Object.assign(user, u);
93
- this.form.patchValue(user);
94
- this._dialog.open(this.newTemplate, { closeOnNavigation: true }).afterClosed().subscribe(r => {
95
- if (r)
96
- this._service.update(user.id, this.form.getRawValue()).subscribe(() => {
97
- this._ok();
98
- }, e => this._error(e));
99
- });
100
- });
101
- }
102
- _error(e) {
103
- let message;
104
- if (e.status === HTTP_CUSTOM_ERR) {
105
- message = e.body;
106
- }
107
- else
108
- message = this._translate.get('Err');
109
- this._sb.open(message, null, { duration: 3000, direction: this._dir.value });
110
- }
111
- _ok() {
112
- this._sb.open(this._translate.get('ChangesSaved'), null, { duration: 4000 });
113
- }
114
- _clear() {
115
- this.form.setValue({
116
- id: null,
117
- nickName: null,
118
- password: null,
119
- surname: null,
120
- givenName: null,
121
- gender: null,
122
- userName: null,
123
- roles: null,
124
- phoneNumber: null,
125
- email: null
126
- });
127
- }
128
- };
129
- UsersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: UsersComponent, deps: [{ token: i1.FormBuilder }, { token: i2.UsersService }, { token: i3.MatSnackBar }, { token: i4.Directionality }, { token: i5.MatDialog }, { token: i6.TranslateService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
130
- UsersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: UsersComponent, selector: "ng-component", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "newTemplate", first: true, predicate: ["tnew"], descendants: true, static: true }, { propertyName: "editTemplate", first: true, predicate: ["tedit"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <bizdoc-search-input (valueChange)=\"search($event)\"></bizdoc-search-input>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add()\" [matTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <table mat-table matSort [dataSource]=\"dataSource\" class=\"data-grid\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(element) : null\"\r\n [checked]=\"selection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"userName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'Username' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{element.userName }}\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'Email' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{element.email }}\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"options\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"edit(element)\">{{ 'Edit' | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let element; columns: displayColumns;\"></tr>\r\n </table>\r\n </mat-sidenav-content>\r\n</mat-sidenav-container>\r\n<!---->\r\n<ng-template #tnew>\r\n <h2 mat-dialog-title></h2>\r\n <mat-dialog-content>\r\n <form [formGroup]=\"form\" fxLayout=\"column\" autocomplete=\"off\" role=\"presentation\">\r\n <!-- skip Chrome autofill -->\r\n <input name=\"email\" class=\"hide\">\r\n <input type=\"text\" name=\"username\" class=\"hide\">\r\n <input type=\"password\" name=\"password\" class=\"hide\">\r\n <div fxLayout=\"row\">\r\n <mat-form-field>\r\n <input matInput [placeholder]=\"'Username'|translate\" required formControlName=\"userName\" cdkFocusInitial />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <input matInput type=\"password\" [placeholder]=\"'Password'|translate\" [required]=\"!form.value.id\" formControlName=\"password\" autocomplete=\"off\" />\r\n <mat-icon matSuffix>vpn_key</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n <div fxLayout=\"row\">\r\n <mat-form-field>\r\n <input matInput [placeholder]=\"'GivenName'|translate\" formControlName=\"givenName\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <input matInput [placeholder]=\"'Surname'|translate\" formControlName=\"surname\" />\r\n </mat-form-field>\r\n </div>\r\n <div fxLayout=\"row\">\r\n <mat-form-field>\r\n <input matInput [placeholder]=\"'Email'|translate\" type=\"email\" formControlName=\"email\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <input matInput [placeholder]=\"'PhoneNumber'|translate\" type=\"tel\" formControlName=\"phoneNumber\" />\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-select [placeholder]=\"'Roles'|translate\" formControlName=\"roles\" multiple>\r\n <mat-option *ngFor=\"let r of roles | async\" [value]=\"r.name\">{{r.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <div fxLayout=\"row\">\r\n <mat-form-field>\r\n <input matInput [placeholder]=\"'NickName'|translate\" formControlName=\"nickName\" cdkFocusInitial />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-select [placeholder]=\"'Gender'|translate\" formControlName=\"gender\">\r\n <mat-option value=\"Male\">{{'Male'|translate}}</mat-option>\r\n <mat-option value=\"Female\">{{'Female'|translate}}</mat-option>\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button mat-dialog-close=\"true\" type=\"submit\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK'|translate}}</button>\r\n <button mat-button [mat-dialog-close]>{{'Cancel'|translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #tedit>\r\n</ng-template>\r\n", styles: ["table{width:100%}.hide{opacity:0;float:left;height:0px;width:0px}form{margin:4px}\n"], components: [{ type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.SearchInput, selector: "bizdoc-search-input", outputs: ["valueChange"] }, { type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i11.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i11.MatSidenavContent, selector: "mat-sidenav-content" }, { type: i12.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i13.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i14.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i15.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i15.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i12.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i12.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i16.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i17.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i18.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i19.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i14.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i12.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i12.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i12.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i12.MatCellDef, selector: "[matCellDef]" }, { type: i12.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i15.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i15.MatMenuContent, selector: "ng-template[matMenuContent]" }, { type: i12.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i12.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i20.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i21.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i16.MatSuffix, selector: "[matSuffix]" }, { type: i22.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "translate": i23.TranslatePipe, "async": i22.AsyncPipe } });
131
- UsersComponent = __decorate([
132
- BizDoc({ selector: 'bizdoc-asp-users' })
133
- /** users component*/
134
- ], UsersComponent);
135
- export { UsersComponent };
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: UsersComponent, decorators: [{
137
- type: Component,
138
- args: [{
139
- templateUrl: './users.component.html',
140
- styleUrls: ['./users.component.scss']
141
- }]
142
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.UsersService }, { type: i3.MatSnackBar }, { type: i4.Directionality }, { type: i5.MatDialog }, { type: i6.TranslateService }, { type: undefined, decorators: [{
143
- type: Inject,
144
- args: [BIZDOC_CONFIG]
145
- }] }]; }, propDecorators: { sort: [{
146
- type: ViewChild,
147
- args: [MatSort, { static: true }]
148
- }], newTemplate: [{
149
- type: ViewChild,
150
- args: ['tnew', { static: true }]
151
- }], editTemplate: [{
152
- type: ViewChild,
153
- args: ['tedit', { static: true }]
154
- }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi91c2Vycy91c2Vycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3VzZXJzL3VzZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBZSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFlLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJakQsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDO0lBUWYsY0FBYyxTQUFkLGNBQWM7SUFvQnpCLGlCQUFpQjtJQUNqQixZQUFvQixHQUFnQixFQUFVLFFBQXNCLEVBQzFELEdBQWdCLEVBQVUsSUFBb0IsRUFDOUMsT0FBa0IsRUFBVSxVQUE0QixFQUFpQyxPQUFxQjtRQUZwRyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQUMxRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDOUMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUFVLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQWlD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QUFFLENBQUM7SUFDekMscUJBQXFCO0dBQ1IsY0FBYyxDQTBGMUI7U0ExRlksY0FBYzsyRkFBZCxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNULFdBQVcsRUFBRSx3QkFBd0I7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN0Qzs7MEJBMEJzRSxNQUFNOzJCQUFDLGFBQWE7NENBTm5ELElBQUk7c0JBQXpDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQyxXQUFXO3NCQUEvQyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0csWUFBWTtzQkFBakQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXNlcnNTZXJ2aWNlLCBJZGVudGl0eVVzZXIsIElkZW50aXR5Um9sZSB9IGZyb20gJy4vdXNlcnMuc2VydmljZSc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJJWkRPQ19DT05GSUcsIEJpekRvY0NvbmZpZyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuY29uc3QgSFRUUF9DVVNUT01fRVJSID0gNDA2O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91c2Vycy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ2JpemRvYy1hc3AtdXNlcnMnIH0pXHJcbi8qKiB1c2VycyBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgVXNlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBpZDogbnVsbCxcclxuICAgIG5pY2tOYW1lOiBudWxsLFxyXG4gICAgcGFzc3dvcmQ6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBzdXJuYW1lOiBudWxsLFxyXG4gICAgZ2l2ZW5OYW1lOiBudWxsLFxyXG4gICAgZ2VuZGVyOiBudWxsLFxyXG4gICAgdXNlck5hbWU6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICByb2xlczogbnVsbCxcclxuICAgIHBob25lTnVtYmVyOiBudWxsLFxyXG4gICAgZW1haWw6IG51bGxcclxuICB9KTtcclxuICBkYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxJZGVudGl0eVVzZXI+KCk7XHJcbiAgcm9sZXM6IE9ic2VydmFibGU8SWRlbnRpdHlSb2xlW10+O1xyXG4gIHJlYWRvbmx5IGRpc3BsYXlDb2x1bW5zID0gWydzZWxlY3QnLCAndXNlck5hbWUnLCAnZW1haWwnLCAnb3B0aW9ucyddO1xyXG4gIHJlYWRvbmx5IHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxJZGVudGl0eVVzZXI+KHRydWUsIFtdKTtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XHJcbiAgQFZpZXdDaGlsZCgndG5ldycsIHsgc3RhdGljOiB0cnVlIH0pIG5ld1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3RlZGl0JywgeyBzdGF0aWM6IHRydWUgfSkgZWRpdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKiB1c2VycyBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9zZXJ2aWNlOiBVc2Vyc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogTWF0U25hY2tCYXIsIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZywgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBASW5qZWN0KEJJWkRPQ19DT05GSUcpIHByaXZhdGUgX2JpemRvYzogQml6RG9jQ29uZmlnKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb2xlcyA9IHRoaXMuX3NlcnZpY2Uucm9sZXMoKTtcclxuICAgIHRoaXMuX3NlcnZpY2UuYWxsKCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHIpO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWFyY2godmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9IHZhbHVlO1xyXG4gIH1cclxuICBhZGQoKSB7XHJcbiAgICB0aGlzLl9jbGVhcigpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcclxuICAgIGlmICh0aGlzLl9iaXpkb2MuY3JlZGVudGlhbHMgJiYgdGhpcy5fYml6ZG9jLmNyZWRlbnRpYWxzLnBhc3N3b3JkKVxyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuX2JpemRvYy5jcmVkZW50aWFscy5wYXNzd29yZC5wYXR0ZXJuKSk7XHJcbiAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ10uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKHRoaXMubmV3VGVtcGxhdGUsIHsgY2xvc2VPbk5hdmlnYXRpb246IHRydWUgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIGlmIChyKSB0aGlzLl9zZXJ2aWNlLmFkZCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSkuc3Vic2NyaWJlKHUgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnB1c2godSk7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9ICcnO1xyXG4gICAgICAgIHRoaXMuX29rKCk7XHJcbiAgICAgIH0sIGUgPT4gdGhpcy5fZXJyb3IoZSkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGVkaXQodXNlcjogSWRlbnRpdHlVc2VyKSB7XHJcbiAgICB0aGlzLl9jbGVhcigpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuX2JpemRvYy5jcmVkZW50aWFscyAmJiB0aGlzLl9iaXpkb2MuY3JlZGVudGlhbHMucGFzc3dvcmQpXHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5fYml6ZG9jLmNyZWRlbnRpYWxzLnBhc3N3b3JkLnBhdHRlcm4pKTtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sc1sncGFzc3dvcmQnXS5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5fc2VydmljZS5nZXQodXNlci5pZCkuc3Vic2NyaWJlKHUgPT4ge1xyXG4gICAgICBPYmplY3QuYXNzaWduKHVzZXIsIHUpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh1c2VyKTtcclxuICAgICAgdGhpcy5fZGlhbG9nLm9wZW4odGhpcy5uZXdUZW1wbGF0ZSwgeyBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBpZiAocikgdGhpcy5fc2VydmljZS51cGRhdGUodXNlci5pZCwgdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9vaygpO1xyXG4gICAgICAgIH0sIGUgPT4gdGhpcy5fZXJyb3IoZSkpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9lcnJvcihlOiBIdHRwUmVzcG9uc2U8YW55Pikge1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZztcclxuICAgIGlmIChlLnN0YXR1cyA9PT0gSFRUUF9DVVNUT01fRVJSKSB7XHJcbiAgICAgIG1lc3NhZ2UgPSBlLmJvZHlcclxuICAgIH1cclxuICAgIGVsc2UgbWVzc2FnZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0VycicpO1xyXG4gICAgdGhpcy5fc2Iub3BlbihtZXNzYWdlLCBudWxsLCB7IGR1cmF0aW9uOiAzMDAwLCBkaXJlY3Rpb246IHRoaXMuX2Rpci52YWx1ZSB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb2soKSB7XHJcbiAgICB0aGlzLl9zYi5vcGVuKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0NoYW5nZXNTYXZlZCcpLCBudWxsLCB7IGR1cmF0aW9uOiA0MDAwIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9jbGVhcigpIHtcclxuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7XHJcbiAgICAgIGlkOiBudWxsLFxyXG4gICAgICBuaWNrTmFtZTogbnVsbCxcclxuICAgICAgcGFzc3dvcmQ6IG51bGwsXHJcbiAgICAgIHN1cm5hbWU6IG51bGwsXHJcbiAgICAgIGdpdmVuTmFtZTogbnVsbCxcclxuICAgICAgZ2VuZGVyOiBudWxsLFxyXG4gICAgICB1c2VyTmFtZTogbnVsbCxcclxuICAgICAgcm9sZXM6IG51bGwsXHJcbiAgICAgIHBob25lTnVtYmVyOiBudWxsLFxyXG4gICAgICBlbWFpbDogbnVsbFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8Yml6ZG9jLXNlYXJjaC1pbnB1dCAodmFsdWVDaGFuZ2UpPVwic2VhcmNoKCRldmVudClcIj48L2JpemRvYy1zZWFyY2gtaW5wdXQ+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGQoKVwiIFttYXRUb29sdGlwXT1cIidBZGQnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LXNpZGVuYXYtY29udGFpbmVyIGNsYXNzPVwicGFnZS1jb250YWluZXJcIj5cclxuICA8bWF0LXNpZGVuYXYtY29udGVudD5cclxuICAgIDx0YWJsZSBtYXQtdGFibGUgbWF0U29ydCBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgY2xhc3M9XCJkYXRhLWdyaWRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShlbGVtZW50KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChlbGVtZW50KVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlck5hbWVcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eyAnVXNlcm5hbWUnIHwgdHJhbnNsYXRlfX08L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICB7e2VsZW1lbnQudXNlck5hbWUgfX1cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJlbWFpbFwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7ICdFbWFpbCcgfCB0cmFuc2xhdGV9fTwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgIHt7ZWxlbWVudC5lbWFpbCB9fVxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm9wdGlvbnNcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCI+PG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICA8bWF0LW1lbnUgI29wdGlvbnM+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImVkaXQoZWxlbWVudClcIj57eyAnRWRpdCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5Q29sdW1uc1wiPjwvdHI+XHJcbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogZGlzcGxheUNvbHVtbnM7XCI+PC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxyXG48L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cclxuPCEtLS0tPlxyXG48bmctdGVtcGxhdGUgI3RuZXc+XHJcbiAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+PC9oMj5cclxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBhdXRvY29tcGxldGU9XCJvZmZcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XHJcbiAgICAgIDwhLS0gc2tpcCBDaHJvbWUgYXV0b2ZpbGwgLS0+XHJcbiAgICAgIDxpbnB1dCBuYW1lPVwiZW1haWxcIiBjbGFzcz1cImhpZGVcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInVzZXJuYW1lXCIgY2xhc3M9XCJoaWRlXCI+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBuYW1lPVwicGFzc3dvcmRcIiBjbGFzcz1cImhpZGVcIj5cclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ1VzZXJuYW1lJ3x0cmFuc2xhdGVcIiByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyTmFtZVwiIGNka0ZvY3VzSW5pdGlhbCAvPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJwYXNzd29yZFwiIFtwbGFjZWhvbGRlcl09XCInUGFzc3dvcmQnfHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCIhZm9ybS52YWx1ZS5pZFwiIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cclxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXg+dnBuX2tleTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cIidHaXZlbk5hbWUnfHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cImdpdmVuTmFtZVwiIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cIidTdXJuYW1lJ3x0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJzdXJuYW1lXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ0VtYWlsJ3x0cmFuc2xhdGVcIiB0eXBlPVwiZW1haWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cIidQaG9uZU51bWJlcid8dHJhbnNsYXRlXCIgdHlwZT1cInRlbFwiIGZvcm1Db250cm9sTmFtZT1cInBob25lTnVtYmVyXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFtwbGFjZWhvbGRlcl09XCInUm9sZXMnfHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cInJvbGVzXCIgbXVsdGlwbGU+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgciBvZiByb2xlcyB8IGFzeW5jXCIgW3ZhbHVlXT1cInIubmFtZVwiPnt7ci5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCInTmlja05hbWUnfHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cIm5pY2tOYW1lXCIgY2RrRm9jdXNJbml0aWFsIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwiJ0dlbmRlcid8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZ2VuZGVyXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiTWFsZVwiPnt7J01hbGUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkZlbWFsZVwiPnt7J0ZlbWFsZSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uPnt7J05vbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT1cInRydWVcIiB0eXBlPVwic3VibWl0XCIgY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkXCI+e3snT0snfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPnt7J0NhbmNlbCd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICN0ZWRpdD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common/http";
4
- export class UsersService {
5
- constructor(http) {
6
- this.http = http;
7
- }
8
- add(user) {
9
- return this.http.post('api/aspusers', user);
10
- }
11
- all() {
12
- return this.http.get('api/aspusers');
13
- }
14
- roles() {
15
- return this.http.get('api/aspusers/roles');
16
- }
17
- get(id) {
18
- return this.http.get(`api/aspusers/${id}`);
19
- }
20
- update(id, user) {
21
- return this.http.put(`api/aspusers/${id}`, user);
22
- }
23
- }
24
- UsersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: UsersService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
25
- UsersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: UsersService });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: UsersService, decorators: [{
27
- type: Injectable
28
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vdXNlcnMvdXNlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBQ0QsR0FBRyxDQUFDLElBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUIsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELEtBQUs7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQixvQkFBb0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCxHQUFHLENBQUMsRUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVLEVBQUUsSUFBa0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7eUdBakJVLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBHZW5kZXIgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVzZXJzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgfVxyXG4gIGFkZCh1c2VyOiBJZGVudGl0eVVzZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oJ2FwaS9hc3B1c2VycycsIHVzZXIpO1xyXG4gIH1cclxuICBhbGwoKTogT2JzZXJ2YWJsZTxJZGVudGl0eVVzZXJbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SWRlbnRpdHlVc2VyW10+KCdhcGkvYXNwdXNlcnMnKTtcclxuICB9XHJcbiAgcm9sZXMoKTogT2JzZXJ2YWJsZTxJZGVudGl0eVJvbGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SWRlbnRpdHlSb2xlW10+KCdhcGkvYXNwdXNlcnMvcm9sZXMnKTtcclxuICB9XHJcbiAgZ2V0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElkZW50aXR5VXNlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SWRlbnRpdHlVc2VyPihgYXBpL2FzcHVzZXJzLyR7aWR9YCk7XHJcbiAgfVxyXG4gIHVwZGF0ZShpZDogc3RyaW5nLCB1c2VyOiBJZGVudGl0eVVzZXIpOiBPYnNlcnZhYmxlPElkZW50aXR5VXNlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8SWRlbnRpdHlVc2VyPihgYXBpL2FzcHVzZXJzLyR7aWR9YCwgdXNlcik7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlVc2VyIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5pa2VOYW1lPzogc3RyaW5nO1xyXG4gIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgZ2VuZGVyPzogR2VuZGVyO1xyXG4gIHNpcm5hbWU6IHN0cmluZztcclxuICBmaXJzdE5hbWU/OiBzdHJpbmc7XHJcbiAgcm9sZXM6IHN0cmluZ1tdO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5Um9sZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -1,128 +0,0 @@
1
- import { Directive, ViewChild } from '@angular/core';
2
- import { filter, first } from 'rxjs';
3
- import { ACCOUNT_DELIMITER } from '../cube.service';
4
- import { isArray } from '../../core/functions';
5
- import { CubeInfoTableComponent } from './table.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../cube.service";
8
- import * as i2 from "../../core/datasource.service";
9
- import * as i3 from "../../core/session.service";
10
- export class CubeInfoBase {
11
- constructor(_service, _ds, _session) {
12
- this._service = _service;
13
- this._ds = _ds;
14
- this._session = _session;
15
- this.sources = {};
16
- /** filters */
17
- this.values = {};
18
- }
19
- set originalAxes(value) {
20
- this._originalAxes = Object.assign({}, value);
21
- }
22
- get originalAxes() {
23
- return this._originalAxes;
24
- }
25
- get axes() {
26
- return this._axes;
27
- }
28
- set axes(value) {
29
- this._axes = value;
30
- this.filters && this.filters.forEach(f => this.values[f.name] = value[f.name]);
31
- }
32
- get cube() {
33
- return this._cube;
34
- }
35
- set cube(value) {
36
- this.configuration = this._session.profile.cubes.find(c => c.name === value);
37
- if (!this.configuration) {
38
- this.configuration = this._session.profile.cubes[0];
39
- value = this.configuration.name;
40
- }
41
- this._service.patterns(value).
42
- subscribe(p => this.patterns = p);
43
- this._cube = value;
44
- }
45
- get selection() {
46
- return this._selection;
47
- }
48
- set selection(value) {
49
- /** one or more axis */
50
- this.filters = this.configuration.axes.filter(a => isArray(value) ?
51
- value.indexOf(a.name) > -1 :
52
- a.name === value);
53
- this.filters.forEach(f => this.sources[f.name] = this._ds.all(f.dataType));
54
- this._selection = value;
55
- }
56
- _populate() {
57
- const axes = Object.assign({}, this._originalAxes);
58
- if (this.aggregation)
59
- (isArray(this.aggregation) ? this.aggregation : [this.aggregation]).
60
- forEach(g => {
61
- if (axes[g])
62
- delete axes[g];
63
- });
64
- this.axes = axes;
65
- this._listen().then(() => {
66
- const combination = this._combine(axes);
67
- this.title = combination.join(ACCOUNT_DELIMITER);
68
- });
69
- }
70
- /**
71
- *
72
- * @param axes
73
- */
74
- _combine(axes) {
75
- return this.configuration.axes.
76
- filter(a => a.combination).
77
- map(a => axes[a.name]);
78
- }
79
- /**
80
- *
81
- * @param value
82
- */
83
- filter(name, value, title) {
84
- const axes = Object.assign(Object.assign({}, (this.pattern ? this.pattern.axes : this.originalAxes)), this.values);
85
- axes[name] = value;
86
- this.onFilter(axes);
87
- this._listen().then(() => this.values[name] = value);
88
- }
89
- _listen() {
90
- return this.table.loadingChange.pipe(filter(ok => !ok), first()).toPromise();
91
- }
92
- onFilter(axes) {
93
- this.axes = axes;
94
- }
95
- /**
96
- *
97
- * @param pattern
98
- */
99
- aggregate(pattern) {
100
- this.axes = Object.assign(Object.assign({}, pattern.axes), this.values);
101
- this._listen().then(() => {
102
- this.title = pattern.title;
103
- this.pattern = pattern;
104
- });
105
- }
106
- _copyAxesToFilterValues() {
107
- this.filters && this.filters.forEach(f => this.values[f.name] = this.axes[f.name]);
108
- }
109
- reset() {
110
- this._populate();
111
- this._listen().then(() => {
112
- this.pattern = null;
113
- this.title = null;
114
- });
115
- }
116
- refresh() {
117
- this.axes = Object.assign(Object.assign({}, (this.pattern ? this.pattern.axes : this.originalAxes)), this.values);
118
- }
119
- }
120
- CubeInfoBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoBase, deps: [{ token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Directive });
121
- CubeInfoBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.7", type: CubeInfoBase, viewQueries: [{ propertyName: "table", first: true, predicate: CubeInfoTableComponent, descendants: true, static: true }], ngImport: i0 });
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoBase, decorators: [{
123
- type: Directive
124
- }], ctorParameters: function () { return [{ type: i1.CubeService }, { type: i2.DatasourceService }, { type: i3.SessionService }]; }, propDecorators: { table: [{
125
- type: ViewChild,
126
- args: [CubeInfoTableComponent, { static: true }]
127
- }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1pbmZvLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvaW5mby9jdWJlLWluZm8uYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUdqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0saUJBQWlCLENBQUM7QUFFMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUczRCxNQUFNLE9BQWdCLFlBQVk7SUFvRWhDLFlBQ1ksUUFBcUIsRUFDdkIsR0FBc0IsRUFDcEIsUUFBd0I7UUFGeEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQWpEM0IsWUFBTyxHQUFvRSxFQUFFLENBQUM7UUFDdkYsY0FBYztRQUNMLFdBQU0sR0FBa0UsRUFBRSxDQUFDO0lBK0M1QyxDQUFDO0lBbEV2QyxJQUFXLFlBQVksQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxhQUFhLHFCQUFRLEtBQUssQ0FBRSxDQUFDO0lBQ3BDLENBQUM7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sSUFB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IHsgRGlyZWN0aXZlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFDQ09VTlRfREVMSU1JVEVSLCBDdWJlU2VydmljZSwgUGF0dGVybiB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWJlSW5mb1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdWJlSW5mb0Jhc2Uge1xyXG4gIEBWaWV3Q2hpbGQoQ3ViZUluZm9UYWJsZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgdGFibGU6IEN1YmVJbmZvVGFibGVDb21wb25lbnQ7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBwcml2YXRlIF9heGVzOiBBeGVzTWFwO1xyXG4gIHByaXZhdGUgX29yaWdpbmFsQXhlczogQXhlc01hcDtcclxuICAgIHB1YmxpYyBzZXQgb3JpZ2luYWxBeGVzKHZhbHVlOiBBeGVzTWFwKSB7XHJcbiAgICAgIHRoaXMuX29yaWdpbmFsQXhlcyA9IHsgLi4udmFsdWUgfTtcclxuICAgIH1cclxuICBwdWJsaWMgZ2V0IG9yaWdpbmFsQXhlcygpOiBBeGVzTWFwIHtcclxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbEF4ZXM7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgYXhlcygpOiBBeGVzTWFwIHtcclxuICAgIHJldHVybiB0aGlzLl9heGVzO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGF4ZXModmFsdWU6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuX2F4ZXMgPSB2YWx1ZTtcclxuICAgIHRoaXMuZmlsdGVycyAmJiB0aGlzLmZpbHRlcnMuZm9yRWFjaChmID0+XHJcbiAgICAgIHRoaXMudmFsdWVzW2YubmFtZV0gPSB2YWx1ZVtmLm5hbWVdXHJcbiAgICApO1xyXG4gIH1cclxuICB0aXRsZTogc3RyaW5nO1xyXG5cclxuICByZWFkb25seSBzb3VyY2VzOiB7IFtheGlzOiBzdHJpbmddOiBPYnNlcnZhYmxlPHsga2V5OiBzdHJpbmc7IHZhbHVlOiBhbnk7IH1bXT47IH0gPSB7fTtcclxuICAvKiogZmlsdGVycyAqL1xyXG4gIHJlYWRvbmx5IHZhbHVlczogeyBbYXhpczogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjsgfSA9IHt9O1xyXG4gIGZpbHRlcnM6IEN1YmVBeGlzW107XHJcbiAgcGF0dGVybnM6IFBhdHRlcm5bXTtcclxuICBwYXR0ZXJuOiBQYXR0ZXJuO1xyXG4gIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICB4QXhpczogc3RyaW5nO1xyXG4gIHNlcmllOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY3ViZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBnZXQgY3ViZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1YmU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgY3ViZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gdmFsdWUpO1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgICB2YWx1ZSA9IHRoaXMuY29uZmlndXJhdGlvbi5uYW1lO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc2VydmljZS5wYXR0ZXJucyh2YWx1ZSkuXHJcbiAgICAgIHN1YnNjcmliZShwID0+XHJcbiAgICAgICAgdGhpcy5wYXR0ZXJucyA9IHApO1xyXG4gICAgdGhpcy5fY3ViZSA9IHZhbHVlO1xyXG4gIH1cclxuICBzdW0/OiB7XHJcbiAgICB4QXhpcz86IHN0cmluZyB8IG51bWJlcjtcclxuICAgIHNlcmllPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICB9O1xyXG4gIC8qKiBvbmUgb3IgbW9yZSBheGlzICovXHJcbiAgcHJvdGVjdGVkIGFnZ3JlZ2F0aW9uPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfc2VsZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBwcm90ZWN0ZWQgZ2V0IHNlbGVjdGlvbigpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgc2V0IHNlbGVjdGlvbih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcclxuICAgIC8qKiBvbmUgb3IgbW9yZSBheGlzICovXHJcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uYXhlcy5maWx0ZXIoYSA9PiBpc0FycmF5KHZhbHVlKSA/XHJcbiAgICAgIHZhbHVlLmluZGV4T2YoYS5uYW1lKSA+IC0xIDpcclxuICAgICAgYS5uYW1lID09PSB2YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZiA9PiB0aGlzLnNvdXJjZXNbZi5uYW1lXSA9IHRoaXMuX2RzLmFsbChmLmRhdGFUeXBlKVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IHZhbHVlO1xyXG4gIH1cclxuICBjb25maWd1cmF0aW9uOiBDdWJlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHsgfVxyXG4gIHByaXZhdGUgX3BvcHVsYXRlKCkge1xyXG4gICAgY29uc3QgYXhlcyA9IHsgLi4udGhpcy5fb3JpZ2luYWxBeGVzIH07XHJcbiAgICBpZiAodGhpcy5hZ2dyZWdhdGlvbilcclxuICAgICAgKGlzQXJyYXkodGhpcy5hZ2dyZWdhdGlvbikgPyB0aGlzLmFnZ3JlZ2F0aW9uIDogW3RoaXMuYWdncmVnYXRpb24gYXMgc3RyaW5nXSkuXHJcbiAgICAgICAgZm9yRWFjaChnID0+IHtcclxuICAgICAgICAgIGlmIChheGVzW2ddKVxyXG4gICAgICAgICAgICBkZWxldGUgYXhlc1tnXTtcclxuICAgICAgICB9KTtcclxuICAgIHRoaXMuYXhlcyA9IGF4ZXM7XHJcbiAgICB0aGlzLl9saXN0ZW4oKS50aGVuKCgpID0+IHtcclxuICAgICAgY29uc3QgY29tYmluYXRpb24gPSB0aGlzLl9jb21iaW5lKGF4ZXMpO1xyXG4gICAgICB0aGlzLnRpdGxlID0gY29tYmluYXRpb24uam9pbihBQ0NPVU5UX0RFTElNSVRFUik7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NvbWJpbmUoYXhlczogQXhlc01hcCk6IChzdHJpbmcgfCBudW1iZXIpW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5heGVzLlxyXG4gICAgICBmaWx0ZXIoYSA9PiBhLmNvbWJpbmF0aW9uKS5cclxuICAgICAgbWFwKGEgPT4gYXhlc1thLm5hbWVdIGFzIHN0cmluZyB8IG51bWJlcik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gKlxyXG4gKiBAcGFyYW0gdmFsdWVcclxuICovXHJcbiAgZmlsdGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciwgdGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYXhlcyA9IHsgLi4uKHRoaXMucGF0dGVybiA/IHRoaXMucGF0dGVybi5heGVzIDogdGhpcy5vcmlnaW5hbEF4ZXMpLCAuLi50aGlzLnZhbHVlcyB9O1xyXG4gICAgYXhlc1tuYW1lXSA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbkZpbHRlcihheGVzKTtcclxuICAgIHRoaXMuX2xpc3RlbigpLnRoZW4oKCkgPT4gXHJcbiAgICAgIHRoaXMudmFsdWVzW25hbWVdID0gdmFsdWVcclxuICAgICk7XHJcbiAgfVxyXG4gICAgcHJpdmF0ZSBfbGlzdGVuKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50YWJsZS5sb2FkaW5nQ2hhbmdlLnBpcGUoZmlsdGVyKG9rID0+ICFvayksIGZpcnN0KCkpLnRvUHJvbWlzZSgpIFxyXG4gICAgfVxyXG5cclxuICBvbkZpbHRlcihheGVzOiBBeGVzTWFwKSB7XHJcbiAgICB0aGlzLmF4ZXMgPSBheGVzO1xyXG4gIH1cclxuIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhdHRlcm5cclxuICAgKi9cclxuICBhZ2dyZWdhdGUocGF0dGVybjogUGF0dGVybikge1xyXG4gICAgdGhpcy5heGVzID0geyAuLi5wYXR0ZXJuLmF4ZXMsIC4uLnRoaXMudmFsdWVzIH07XHJcbiAgICB0aGlzLl9saXN0ZW4oKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy50aXRsZSA9IHBhdHRlcm4udGl0bGU7XHJcbiAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvcHlBeGVzVG9GaWx0ZXJWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLmZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmZvckVhY2goZiA9PlxyXG4gICAgICB0aGlzLnZhbHVlc1tmLm5hbWVdID0gdGhpcy5heGVzW2YubmFtZV1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuX3BvcHVsYXRlKCk7XHJcbiAgICB0aGlzLl9saXN0ZW4oKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5wYXR0ZXJuID0gbnVsbDtcclxuICAgICAgdGhpcy50aXRsZSA9IG51bGw7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLmF4ZXMgPSB7IC4uLih0aGlzLnBhdHRlcm4gPyB0aGlzLnBhdHRlcm4uYXhlcyA6IHRoaXMub3JpZ2luYWxBeGVzKSwgLi4udGhpcy52YWx1ZXMgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,69 +0,0 @@
1
- import { Component, Inject, ViewChild } from '@angular/core';
2
- import { CubeInfoTableComponent } from './table.component';
3
- import { POPUP_DATA } from '../../core/popup/popup.component';
4
- import { PopupRef } from "../../core/popup/popup-ref";
5
- import { filter, first } from 'rxjs';
6
- import { CubeInfoBase } from './cube-info.base';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../cube/cube.service";
9
- import * as i2 from "../../core/datasource.service";
10
- import * as i3 from "../../core/session.service";
11
- import * as i4 from "../../core/prompt.service";
12
- import * as i5 from "@angular/material/progress-bar";
13
- import * as i6 from "@angular/material/button";
14
- import * as i7 from "@angular/material/icon";
15
- import * as i8 from "@angular/material/menu";
16
- import * as i9 from "./table.component";
17
- import * as i10 from "@angular/common";
18
- import * as i11 from "@angular/material/tooltip";
19
- import * as i12 from "../../core/pipes/translate.pipe";
20
- import * as i13 from "../../core/popup/popup-ref";
21
- /** cube-info component*/
22
- export class CubeInfoComponent extends CubeInfoBase {
23
- /** filters */
24
- /** cube-info ctor */
25
- constructor(_ref, data, service, ds, session, _sb) {
26
- super(service, ds, session);
27
- this._ref = _ref;
28
- this._sb = _sb;
29
- this.preloading = true;
30
- if (!data.options)
31
- throw 'no data options';
32
- const { axes: base, options: { indices, xAxis, serie, filters, cube, sum } } = data;
33
- this.cube = cube;
34
- this.serie = serie;
35
- this.xAxis = xAxis;
36
- this.sum = sum;
37
- this.indices = indices;
38
- this.selection = filters;
39
- this.axes = base;
40
- this.originalAxes = base;
41
- }
42
- ngOnInit() {
43
- this.table.loadingChange.pipe(filter(ok => !ok), first()).subscribe(() => this.preloading = false, (e) => {
44
- if (e.status === 401)
45
- this._ref.close();
46
- this._sb.error(e.status === 401 ? 'Unauthorized' : null);
47
- });
48
- }
49
- }
50
- CubeInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }, { token: i4.PromptService }], target: i0.ɵɵFactoryTarget.Component });
51
- CubeInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: CubeInfoComponent, selector: "cube-info", viewQueries: [{ propertyName: "table", first: true, predicate: CubeInfoTableComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [matTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-info-table [cube]=\"cube\" [xAxis]=\"xAxis\" [serie]=\"serie\" [indices]=\"indices\" [sum]=sum [interactive]=\"false\"\r\n [base]=\"originalAxes\" [axes]=\"axes\" [(loading)]=\"loading\"></bizdoc-cube-info-table>\r\n</div>\r\n", styles: [".container{padding:8px}\n"], components: [{ type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.CubeInfoTableComponent, selector: "bizdoc-cube-info-table", inputs: ["cube", "xAxis", "serie", "indices", "sum", "base", "axes", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "translate": i12.TranslatePipe, "async": i10.AsyncPipe } });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoComponent, decorators: [{
53
- type: Component,
54
- args: [{
55
- selector: 'cube-info',
56
- templateUrl: './cube-info.component.html',
57
- styleUrls: ['./cube-info.component.scss']
58
- }]
59
- }], ctorParameters: function () { return [{ type: i13.PopupRef, decorators: [{
60
- type: Inject,
61
- args: [PopupRef]
62
- }] }, { type: undefined, decorators: [{
63
- type: Inject,
64
- args: [POPUP_DATA]
65
- }] }, { type: i1.CubeService }, { type: i2.DatasourceService }, { type: i3.SessionService }, { type: i4.PromptService }]; }, propDecorators: { table: [{
66
- type: ViewChild,
67
- args: [CubeInfoTableComponent, { static: true }]
68
- }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9pbmZvL2N1YmUtaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvaW5mby9jdWJlLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFaEQseUJBQXlCO0FBT3pCLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxZQUFZO0lBR2pELGNBQWM7SUFFZCxxQkFBcUI7SUFDckIsWUFBc0MsSUFBYyxFQUM5QixJQUFjLEVBQ2xDLE9BQW9CLEVBQ3BCLEVBQXFCLEVBQ3JCLE9BQXVCLEVBQ2YsR0FBa0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFOUSxTQUFJLEdBQUosSUFBSSxDQUFVO1FBSzFDLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFUNUIsZUFBVSxHQUFZLElBQUksQ0FBQztRQVd6QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDZixNQUFNLGlCQUFpQixDQUFDO1FBQzFCLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDcEYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUN2RSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQW9CLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRztnQkFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzhHQWhDVSxpQkFBaUIsa0JBTVIsUUFBUSxhQUNsQixVQUFVO2tHQVBULGlCQUFpQix3RkFDakIsc0JBQXNCLHFGQ3JCbkMsK2dEQTJCQTsyRkRQYSxpQkFBaUI7a0JBTDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFdBQVcsRUFBRSw0QkFBNEI7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLDRCQUE0QixDQUFDO2lCQUMxQzs7MEJBT2MsTUFBTTsyQkFBQyxRQUFROzswQkFDekIsTUFBTTsyQkFBQyxVQUFVOytKQU5pQyxLQUFLO3NCQUF6RCxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jdWJlL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1YmVEYXRhIH0gZnJvbSAnLi9jdWJlLWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdWJlSW5mb1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQT1BVUF9EQVRBIH0gZnJvbSAnLi4vLi4vY29yZS9wb3B1cC9wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3B1cFJlZiB9IGZyb20gXCIuLi8uLi9jb3JlL3BvcHVwL3BvcHVwLXJlZlwiO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1YmVJbmZvQmFzZSB9IGZyb20gJy4vY3ViZS1pbmZvLmJhc2UnO1xyXG5cclxuLyoqIGN1YmUtaW5mbyBjb21wb25lbnQqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdWJlLWluZm8nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdWJlLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1YmUtaW5mby5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlSW5mb0NvbXBvbmVudCBleHRlbmRzIEN1YmVJbmZvQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChDdWJlSW5mb1RhYmxlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZTogQ3ViZUluZm9UYWJsZUNvbXBvbmVudDtcclxuICBwcmVsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICAvKiogZmlsdGVycyAqL1xyXG5cclxuICAvKiogY3ViZS1pbmZvIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBvcHVwUmVmKSBwcml2YXRlIF9yZWY6IFBvcHVwUmVmLFxyXG4gICAgQEluamVjdChQT1BVUF9EQVRBKSBkYXRhOiBDdWJlRGF0YSxcclxuICAgIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSkge1xyXG4gICAgc3VwZXIoc2VydmljZSwgZHMsIHNlc3Npb24pO1xyXG4gICAgaWYgKCFkYXRhLm9wdGlvbnMpXHJcbiAgICAgIHRocm93ICdubyBkYXRhIG9wdGlvbnMnO1xyXG4gICAgY29uc3QgeyBheGVzOiBiYXNlLCBvcHRpb25zOiB7IGluZGljZXMsIHhBeGlzLCBzZXJpZSwgZmlsdGVycywgY3ViZSwgc3VtIH0gfSA9IGRhdGE7XHJcbiAgICB0aGlzLmN1YmUgPSBjdWJlO1xyXG4gICAgdGhpcy5zZXJpZSA9IHNlcmllO1xyXG4gICAgdGhpcy54QXhpcyA9IHhBeGlzO1xyXG4gICAgdGhpcy5zdW0gPSBzdW07XHJcbiAgICB0aGlzLmluZGljZXMgPSBpbmRpY2VzO1xyXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBmaWx0ZXJzO1xyXG4gICAgdGhpcy5heGVzID0gYmFzZTtcclxuICAgIHRoaXMub3JpZ2luYWxBeGVzID0gYmFzZTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhYmxlLmxvYWRpbmdDaGFuZ2UucGlwZShmaWx0ZXIob2sgPT4gIW9rKSwgZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMucHJlbG9hZGluZyA9IGZhbHNlLCAoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZS5zdGF0dXMgPT09IDQwMSlcclxuICAgICAgICAgIHRoaXMuX3JlZi5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKGUuc3RhdHVzID09PSA0MDEgPyAnVW5hdXRob3JpemVkJyA6IG51bGwpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJsb2FkaW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiIXByZWxvYWRpbmdcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgIDwhLS0gdGl0bGUgLS0+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwib3B0aW9uc1wiICpuZ0lmPVwicGF0dGVybnMgJiYgcGF0dGVybnMubGVuZ3RoXCI+PG1hdC1pY29uIFtjbGFzcy5maWxsZWRdPVwicGF0dGVyblwiPmZpbHRlcl9hbHQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPG1hdC1tZW51ICNvcHRpb25zIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgICA8IS0tIHBhdHRlcm5zIC0tPlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHAgb2YgcGF0dGVybnNcIiAoY2xpY2spPVwiYWdncmVnYXRlKHApXCI+e3twLnRpdGxlfX08L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIFtkaXNhYmxlZF09XCIhcGF0dGVyblwiIFttYXRUb29sdGlwXT1cIidDbGVhcicgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgPG1hdC1pY29uPmNsZWFyX2FsbDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDwhLS0gZmlsdGVycyAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGYgb2YgZmlsdGVyc1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZtZW51XCI+e3t2YWx1ZXNbZi5uYW1lXX19IDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI2ZtZW51IHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQga3Ygb2Ygc291cmNlc1tmLm5hbWVdIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbHRlcihmLm5hbWUsIGt2LmtleSwga3YudmFsdWUpXCI+XHJcbiAgICAgICAgICB7e2t2LnZhbHVlfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtbWVudT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxiaXpkb2MtY3ViZS1pbmZvLXRhYmxlIFtjdWJlXT1cImN1YmVcIiBbeEF4aXNdPVwieEF4aXNcIiBbc2VyaWVdPVwic2VyaWVcIiBbaW5kaWNlc109XCJpbmRpY2VzXCIgW3N1bV09c3VtIFtpbnRlcmFjdGl2ZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jhc2VdPVwib3JpZ2luYWxBeGVzXCIgW2F4ZXNdPVwiYXhlc1wiIFsobG9hZGluZyldPVwibG9hZGluZ1wiPjwvYml6ZG9jLWN1YmUtaW5mby10YWJsZT5cclxuPC9kaXY+XHJcbiJdfQ==