@codetectonics/mantle 0.0.2 → 0.0.4

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 (272) hide show
  1. package/README.md +10 -49
  2. package/bundles/codetectonics-mantle.umd.js +6907 -0
  3. package/bundles/codetectonics-mantle.umd.js.map +1 -0
  4. package/esm2015/codetectonics-mantle.js +5 -0
  5. package/esm2015/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.js +24 -0
  6. package/esm2015/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.js +35 -0
  7. package/esm2015/lib/components/dashboard/dashboard-card/dashboard-card.component.js +133 -0
  8. package/esm2015/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.js +55 -0
  9. package/esm2015/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.js +23 -0
  10. package/esm2015/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.js +71 -0
  11. package/esm2015/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.js +26 -0
  12. package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.js +30 -0
  13. package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.js +58 -0
  14. package/esm2015/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.js +85 -0
  15. package/esm2015/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.js +29 -0
  16. package/esm2015/lib/components/details/containers/accordion-details-container/accordion-details-container.component.js +26 -0
  17. package/esm2015/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.js +25 -0
  18. package/esm2015/lib/components/details/containers/plain-details-container/plain-details-container.component.js +25 -0
  19. package/esm2015/lib/components/details/dialog-details/dialog-details.component.js +77 -0
  20. package/esm2015/lib/components/details/dialog-nested-details/dialog-nested-details.component.js +40 -0
  21. package/esm2015/lib/components/details/dynamic-details/dynamic-details.component.js +23 -0
  22. package/esm2015/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.js +27 -0
  23. package/esm2015/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.js +40 -0
  24. package/esm2015/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.js +46 -0
  25. package/esm2015/lib/components/details/fields/file-attribute-display/file-attribute-display.component.js +37 -0
  26. package/esm2015/lib/components/details/fields/image-attribute-display/image-attribute-display.component.js +36 -0
  27. package/esm2015/lib/components/details/fields/link-attribute-display/link-attribute-display.component.js +30 -0
  28. package/esm2015/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.js +21 -0
  29. package/esm2015/lib/components/details/fields/thumbnail-display/thumbnail-display.component.js +33 -0
  30. package/esm2015/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.js +42 -0
  31. package/esm2015/lib/components/details/sections/grid-details-section/grid-details-section.component.js +53 -0
  32. package/esm2015/lib/components/details/sections/markdown-details-section/markdown-details-section.component.js +19 -0
  33. package/esm2015/lib/components/details/sections/table-details-section/table-details-section.component.js +37 -0
  34. package/esm2015/lib/components/form/containers/accordion-form-container/accordion-form-container.component.js +29 -0
  35. package/esm2015/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.js +28 -0
  36. package/esm2015/lib/components/form/containers/plain-form-container/plain-form-container.component.js +28 -0
  37. package/esm2015/lib/components/form/dialog-form/dialog-form.component.js +91 -0
  38. package/esm2015/lib/components/form/dialog-nested-form/dialog-nested-form.component.js +57 -0
  39. package/esm2015/lib/components/form/dynamic-form/dynamic-form.component.js +52 -0
  40. package/esm2015/lib/components/form/fields/autocomplete-input/autocomplete-input.component.js +69 -0
  41. package/esm2015/lib/components/form/fields/chip-input/chip-input.component.js +84 -0
  42. package/esm2015/lib/components/form/fields/datepicker/datepicker.component.js +91 -0
  43. package/esm2015/lib/components/form/fields/datetimepicker/datetimepicker.component.js +92 -0
  44. package/esm2015/lib/components/form/fields/dropdown/dropdown.component.js +73 -0
  45. package/esm2015/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.js +37 -0
  46. package/esm2015/lib/components/form/fields/filepicker/filepicker.component.js +97 -0
  47. package/esm2015/lib/components/form/fields/image-cropper/image-cropper.component.js +52 -0
  48. package/esm2015/lib/components/form/fields/imagepicker/imagepicker.component.js +139 -0
  49. package/esm2015/lib/components/form/fields/markdown-input/markdown-input.component.js +53 -0
  50. package/esm2015/lib/components/form/fields/number-input/number-input.component.js +91 -0
  51. package/esm2015/lib/components/form/fields/password-input/password-input.component.js +58 -0
  52. package/esm2015/lib/components/form/fields/text-input/text-input.component.js +55 -0
  53. package/esm2015/lib/components/form/fields/textarea/textarea.component.js +58 -0
  54. package/esm2015/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.js +47 -0
  55. package/esm2015/lib/components/form/sections/grid-form-section/grid-form-section.component.js +69 -0
  56. package/esm2015/lib/components/form/sections/table-form-section/table-form-section.component.js +107 -0
  57. package/esm2015/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.js +24 -0
  58. package/esm2015/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.js +23 -0
  59. package/esm2015/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.js +24 -0
  60. package/esm2015/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.js +23 -0
  61. package/esm2015/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.js +38 -0
  62. package/esm2015/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.js +76 -0
  63. package/esm2015/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.js +76 -0
  64. package/esm2015/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.js +19 -0
  65. package/esm2015/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.js +21 -0
  66. package/esm2015/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.js +25 -0
  67. package/esm2015/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.js +102 -0
  68. package/esm2015/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.js +19 -0
  69. package/esm2015/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.js +74 -0
  70. package/esm2015/lib/components/navigation/nav-tree/nav-tree.component.js +65 -0
  71. package/esm2015/lib/components/navigation/reroute/reroute.component.js +28 -0
  72. package/esm2015/lib/components/pages/dashboard-page/dashboard-page.component.js +34 -0
  73. package/esm2015/lib/components/pages/detail-page/detail-page.component.js +101 -0
  74. package/esm2015/lib/components/pages/documents-page/documents-page.component.js +109 -0
  75. package/esm2015/lib/components/pages/export-page/export-page.component.js +65 -0
  76. package/esm2015/lib/components/pages/form-page/form-page.component.js +133 -0
  77. package/esm2015/lib/components/pages/layout-editor-page/layout-editor-page.component.js +72 -0
  78. package/esm2015/lib/components/pages/list-page/list-page-datasource.js +62 -0
  79. package/esm2015/lib/components/pages/list-page/list-page.component.js +159 -0
  80. package/esm2015/lib/components/pages/tabbed-page/tabbed-page.component.js +35 -0
  81. package/esm2015/lib/components/titles/content-title/content-title.component.js +23 -0
  82. package/esm2015/lib/components/titles/page-title/page-title.component.js +28 -0
  83. package/esm2015/lib/components/titles/section-title/section-title.component.js +18 -0
  84. package/esm2015/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.js +36 -0
  85. package/esm2015/lib/components/widgets/dynamic-table/dynamic-table-datasource.js +89 -0
  86. package/esm2015/lib/components/widgets/dynamic-table/dynamic-table.component.js +67 -0
  87. package/esm2015/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.js +42 -0
  88. package/esm2015/lib/components/widgets/loader/loader.component.js +21 -0
  89. package/esm2015/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.js +35 -0
  90. package/esm2015/lib/components/widgets/search-panel/search-panel.component.js +67 -0
  91. package/esm2015/lib/components/widgets/snackbar/snackbar.component.js +42 -0
  92. package/esm2015/lib/config/charts/column-chart.data.js +38 -0
  93. package/esm2015/lib/config/charts/gantt-chart.data.js +18 -0
  94. package/esm2015/lib/config/charts/pie-chart.data.js +21 -0
  95. package/esm2015/lib/config/charts/progress-bar-chart.data.js +50 -0
  96. package/esm2015/lib/config/charts/spline-chart.data.js +24 -0
  97. package/esm2015/lib/data-structures/dynamic-layout.structure.js +2 -0
  98. package/esm2015/lib/data-structures/file-attachment.structure.js +2 -0
  99. package/esm2015/lib/directives/click-stop-propagation.directive.js +19 -0
  100. package/esm2015/lib/directives/file-dropzone.directive.js +53 -0
  101. package/esm2015/lib/guards/feature.guard.js +42 -0
  102. package/esm2015/lib/guards/password-check.guard.js +21 -0
  103. package/esm2015/lib/guards/session.guard.js +21 -0
  104. package/esm2015/lib/mantle.module.js +518 -0
  105. package/esm2015/lib/material.module.js +290 -0
  106. package/esm2015/lib/models/screen-size-map.model.js +9 -0
  107. package/esm2015/lib/pipes/dynamic.pipe.js +45 -0
  108. package/esm2015/lib/pipes/secure-image.pipe.js +35 -0
  109. package/esm2015/lib/services/adapters/web-api-crud.adapter.js +22 -0
  110. package/esm2015/lib/services/adapters/websocket.adapter.js +2 -0
  111. package/esm2015/lib/services/announcement.service.js +43 -0
  112. package/esm2015/lib/services/array.service.js +82 -0
  113. package/esm2015/lib/services/chart.service.js +45 -0
  114. package/esm2015/lib/services/confirmation.service.js +45 -0
  115. package/esm2015/lib/services/current-user.service.js +120 -0
  116. package/esm2015/lib/services/dynamic-form.service.js +59 -0
  117. package/esm2015/lib/services/feature-config.service.js +240 -0
  118. package/esm2015/lib/services/interfaces/authorisable-feature.service.js +2 -0
  119. package/esm2015/lib/services/interfaces/dashboard-page.service.js +2 -0
  120. package/esm2015/lib/services/interfaces/dashboard-widget.service.js +2 -0
  121. package/esm2015/lib/services/interfaces/detail-page.service.js +2 -0
  122. package/esm2015/lib/services/interfaces/export-page.service.js +2 -0
  123. package/esm2015/lib/services/interfaces/form-page.service.js +2 -0
  124. package/esm2015/lib/services/interfaces/layout-editor-page.service.js +2 -0
  125. package/esm2015/lib/services/interfaces/list-page.service.js +2 -0
  126. package/esm2015/lib/services/interfaces/nav-tabs.service.js +2 -0
  127. package/esm2015/lib/services/interfaces/reroute.service.js +2 -0
  128. package/esm2015/lib/services/object.service.js +69 -0
  129. package/esm2015/lib/services/password-check.service.js +93 -0
  130. package/esm2015/lib/services/screen-size.service.js +41 -0
  131. package/esm2015/lib/services/web-api.service.js +99 -0
  132. package/esm2015/lib/services/websocket.service.js +58 -0
  133. package/esm2015/lib/tokens/environment.token.js +3 -0
  134. package/esm2015/public-api.js +133 -0
  135. package/fesm2015/codetectonics-mantle.js +5940 -0
  136. package/fesm2015/codetectonics-mantle.js.map +1 -0
  137. package/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.d.ts +11 -0
  138. package/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.d.ts +14 -0
  139. package/lib/components/dashboard/dashboard-card/dashboard-card.component.d.ts +41 -0
  140. package/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.d.ts +20 -0
  141. package/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.d.ts +10 -0
  142. package/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.d.ts +27 -0
  143. package/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.d.ts +8 -0
  144. package/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.d.ts +22 -0
  145. package/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.d.ts +28 -0
  146. package/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.d.ts +20 -0
  147. package/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.d.ts +9 -0
  148. package/lib/components/details/containers/accordion-details-container/accordion-details-container.component.d.ts +11 -0
  149. package/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.d.ts +11 -0
  150. package/lib/components/details/containers/plain-details-container/plain-details-container.component.d.ts +11 -0
  151. package/lib/components/details/dialog-details/dialog-details.component.d.ts +36 -0
  152. package/lib/components/details/dialog-nested-details/dialog-nested-details.component.d.ts +22 -0
  153. package/lib/components/details/dynamic-details/dynamic-details.component.d.ts +10 -0
  154. package/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.d.ts +7 -0
  155. package/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.d.ts +9 -0
  156. package/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.d.ts +15 -0
  157. package/lib/components/details/fields/file-attribute-display/file-attribute-display.component.d.ts +12 -0
  158. package/lib/components/details/fields/image-attribute-display/image-attribute-display.component.d.ts +12 -0
  159. package/lib/components/details/fields/link-attribute-display/link-attribute-display.component.d.ts +10 -0
  160. package/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.d.ts +6 -0
  161. package/lib/components/details/fields/thumbnail-display/thumbnail-display.component.d.ts +10 -0
  162. package/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.d.ts +17 -0
  163. package/lib/components/details/sections/grid-details-section/grid-details-section.component.d.ts +17 -0
  164. package/lib/components/details/sections/markdown-details-section/markdown-details-section.component.d.ts +7 -0
  165. package/lib/components/details/sections/table-details-section/table-details-section.component.d.ts +12 -0
  166. package/lib/components/form/containers/accordion-form-container/accordion-form-container.component.d.ts +13 -0
  167. package/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.d.ts +13 -0
  168. package/lib/components/form/containers/plain-form-container/plain-form-container.component.d.ts +13 -0
  169. package/lib/components/form/dialog-form/dialog-form.component.d.ts +39 -0
  170. package/lib/components/form/dialog-nested-form/dialog-nested-form.component.d.ts +31 -0
  171. package/lib/components/form/dynamic-form/dynamic-form.component.d.ts +21 -0
  172. package/lib/components/form/fields/autocomplete-input/autocomplete-input.component.d.ts +32 -0
  173. package/lib/components/form/fields/chip-input/chip-input.component.d.ts +27 -0
  174. package/lib/components/form/fields/datepicker/datepicker.component.d.ts +24 -0
  175. package/lib/components/form/fields/datetimepicker/datetimepicker.component.d.ts +24 -0
  176. package/lib/components/form/fields/dropdown/dropdown.component.d.ts +31 -0
  177. package/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.d.ts +10 -0
  178. package/lib/components/form/fields/filepicker/filepicker.component.d.ts +27 -0
  179. package/lib/components/form/fields/image-cropper/image-cropper.component.d.ts +27 -0
  180. package/lib/components/form/fields/imagepicker/imagepicker.component.d.ts +41 -0
  181. package/lib/components/form/fields/markdown-input/markdown-input.component.d.ts +17 -0
  182. package/lib/components/form/fields/number-input/number-input.component.d.ts +27 -0
  183. package/lib/components/form/fields/password-input/password-input.component.d.ts +19 -0
  184. package/lib/components/form/fields/text-input/text-input.component.d.ts +18 -0
  185. package/lib/components/form/fields/textarea/textarea.component.d.ts +19 -0
  186. package/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.d.ts +19 -0
  187. package/lib/components/form/sections/grid-form-section/grid-form-section.component.d.ts +23 -0
  188. package/lib/components/form/sections/table-form-section/table-form-section.component.d.ts +22 -0
  189. package/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.d.ts +10 -0
  190. package/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.d.ts +10 -0
  191. package/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.d.ts +10 -0
  192. package/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.d.ts +10 -0
  193. package/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.d.ts +13 -0
  194. package/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.d.ts +14 -0
  195. package/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.d.ts +14 -0
  196. package/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.d.ts +8 -0
  197. package/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.d.ts +8 -0
  198. package/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.d.ts +10 -0
  199. package/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.d.ts +21 -0
  200. package/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.d.ts +7 -0
  201. package/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.d.ts +14 -0
  202. package/lib/components/navigation/nav-tree/nav-tree.component.d.ts +46 -0
  203. package/lib/components/navigation/reroute/reroute.component.d.ts +14 -0
  204. package/lib/components/pages/dashboard-page/dashboard-page.component.d.ts +16 -0
  205. package/lib/components/pages/detail-page/detail-page.component.d.ts +35 -0
  206. package/lib/components/pages/documents-page/documents-page.component.d.ts +41 -0
  207. package/lib/components/pages/export-page/export-page.component.d.ts +29 -0
  208. package/lib/components/pages/form-page/form-page.component.d.ts +37 -0
  209. package/lib/components/pages/layout-editor-page/layout-editor-page.component.d.ts +26 -0
  210. package/lib/components/pages/list-page/list-page-datasource.d.ts +32 -0
  211. package/lib/components/pages/list-page/list-page.component.d.ts +46 -0
  212. package/lib/components/pages/tabbed-page/tabbed-page.component.d.ts +16 -0
  213. package/lib/components/titles/content-title/content-title.component.d.ts +8 -0
  214. package/lib/components/titles/page-title/page-title.component.d.ts +10 -0
  215. package/lib/components/titles/section-title/section-title.component.d.ts +7 -0
  216. package/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.d.ts +20 -0
  217. package/lib/components/widgets/dynamic-table/dynamic-table-datasource.d.ts +40 -0
  218. package/lib/components/widgets/dynamic-table/dynamic-table.component.d.ts +30 -0
  219. package/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.d.ts +17 -0
  220. package/lib/components/widgets/loader/loader.component.d.ts +6 -0
  221. package/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.d.ts +16 -0
  222. package/lib/components/widgets/search-panel/search-panel.component.d.ts +21 -0
  223. package/lib/components/widgets/snackbar/snackbar.component.d.ts +11 -0
  224. package/lib/config/charts/column-chart.data.d.ts +37 -0
  225. package/lib/config/charts/gantt-chart.data.d.ts +17 -0
  226. package/lib/config/charts/pie-chart.data.d.ts +20 -0
  227. package/lib/config/charts/progress-bar-chart.data.d.ts +49 -0
  228. package/lib/config/charts/spline-chart.data.d.ts +23 -0
  229. package/lib/data-structures/dynamic-layout.structure.d.ts +161 -0
  230. package/lib/data-structures/file-attachment.structure.d.ts +6 -0
  231. package/lib/directives/click-stop-propagation.directive.d.ts +6 -0
  232. package/lib/directives/file-dropzone.directive.d.ts +12 -0
  233. package/lib/guards/feature.guard.d.ts +15 -0
  234. package/lib/guards/password-check.guard.d.ts +11 -0
  235. package/lib/guards/session.guard.d.ts +10 -0
  236. package/lib/mantle.module.d.ts +106 -0
  237. package/lib/material.module.d.ts +34 -0
  238. package/lib/models/screen-size-map.model.d.ts +13 -0
  239. package/lib/pipes/dynamic.pipe.d.ts +12 -0
  240. package/lib/pipes/secure-image.pipe.d.ts +11 -0
  241. package/lib/services/adapters/web-api-crud.adapter.d.ts +63 -0
  242. package/lib/services/adapters/websocket.adapter.d.ts +6 -0
  243. package/lib/services/announcement.service.d.ts +11 -0
  244. package/lib/services/array.service.d.ts +21 -0
  245. package/lib/services/chart.service.d.ts +14 -0
  246. package/lib/services/confirmation.service.d.ts +11 -0
  247. package/lib/services/current-user.service.d.ts +28 -0
  248. package/lib/services/dynamic-form.service.d.ts +30 -0
  249. package/lib/services/feature-config.service.d.ts +82 -0
  250. package/lib/services/interfaces/authorisable-feature.service.d.ts +5 -0
  251. package/lib/services/interfaces/dashboard-page.service.d.ts +13 -0
  252. package/lib/services/interfaces/dashboard-widget.service.d.ts +34 -0
  253. package/lib/services/interfaces/detail-page.service.d.ts +36 -0
  254. package/lib/services/interfaces/export-page.service.d.ts +6 -0
  255. package/lib/services/interfaces/form-page.service.d.ts +30 -0
  256. package/lib/services/interfaces/layout-editor-page.service.d.ts +14 -0
  257. package/lib/services/interfaces/list-page.service.d.ts +44 -0
  258. package/lib/services/interfaces/nav-tabs.service.d.ts +7 -0
  259. package/lib/services/interfaces/reroute.service.d.ts +3 -0
  260. package/lib/services/object.service.d.ts +11 -0
  261. package/lib/services/password-check.service.d.ts +21 -0
  262. package/lib/services/screen-size.service.d.ts +14 -0
  263. package/lib/services/web-api.service.d.ts +21 -0
  264. package/lib/services/websocket.service.d.ts +20 -0
  265. package/lib/tokens/environment.token.d.ts +2 -0
  266. package/package.json +33 -15
  267. package/public-api.d.ts +129 -2
  268. package/fesm2022/codetectonics-mantle.mjs +0 -42
  269. package/fesm2022/codetectonics-mantle.mjs.map +0 -1
  270. package/lib/mantle.component.d.ts +0 -5
  271. package/lib/mantle.service.d.ts +0 -6
  272. /package/{index.d.ts → codetectonics-mantle.d.ts} +0 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXRlY3Rvbmljcy1tYW50bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2NvZGV0ZWN0b25pY3MtbWFudGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../plain-dashboard-container/plain-dashboard-container.component";
4
+ import * as i2 from "@angular/common";
5
+ export class DynamicDashboardContainerComponent {
6
+ constructor() { }
7
+ }
8
+ DynamicDashboardContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicDashboardContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ DynamicDashboardContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicDashboardContainerComponent, selector: "mantle-dynamic-dashboard-container", inputs: { dashboardPageService: "dashboardPageService", content: "content", container: "container" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-plain-dashboard-container>\n </ng-container>\n\n</ng-container>\n", styles: [""], components: [{ type: i1.PlainDashboardContainerComponent, selector: "mantle-plain-dashboard-container", inputs: ["dashboardPageService", "content", "container"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicDashboardContainerComponent, decorators: [{
11
+ type: Component,
12
+ args: [{
13
+ selector: 'mantle-dynamic-dashboard-container',
14
+ templateUrl: './dynamic-dashboard-container.component.html',
15
+ styleUrls: ['./dynamic-dashboard-container.component.scss']
16
+ }]
17
+ }], ctorParameters: function () { return []; }, propDecorators: { dashboardPageService: [{
18
+ type: Input
19
+ }], content: [{
20
+ type: Input
21
+ }], container: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkL2NvbnRhaW5lcnMvZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyL2R5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL2R5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lci9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTakQsTUFBTSxPQUFPLGtDQUFrQztJQU03QyxnQkFBZ0IsQ0FBQzs7Z0lBTk4sa0NBQWtDO29IQUFsQyxrQ0FBa0MsZ0xDVC9DLGdVQVFBOzRGRENhLGtDQUFrQztrQkFMOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxXQUFXLEVBQUUsOENBQThDO29CQUMzRCxTQUFTLEVBQUUsQ0FBQyw4Q0FBOEMsQ0FBQztpQkFDNUQ7MEVBR1Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0Rhc2hib2FyZENvbnRlbnQsIER5bmFtaWNMYXlvdXRDb250YWluZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhLXN0cnVjdHVyZXMvZHluYW1pYy1sYXlvdXQuc3RydWN0dXJlJztcbmltcG9ydCB7IERhc2hib2FyZFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtcGFnZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWR5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRGFzaGJvYXJkQ29udGFpbmVyQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBkYXNoYm9hcmRQYWdlU2VydmljZSE6IERhc2hib2FyZFBhZ2VTZXJ2aWNlO1xuICBASW5wdXQoKSBjb250ZW50ITogRHluYW1pY0Rhc2hib2FyZENvbnRlbnQ7XG4gIEBJbnB1dCgpIGNvbnRhaW5lciE6IER5bmFtaWNMYXlvdXRDb250YWluZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29udGFpbmVyLmNvbnRhaW5lcl9zdHlsZVwiPlxuXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwbGFpbidcIj5cbiAgICA8bWFudGxlLXBsYWluLWRhc2hib2FyZC1jb250YWluZXIgW2Rhc2hib2FyZFBhZ2VTZXJ2aWNlXT1cImRhc2hib2FyZFBhZ2VTZXJ2aWNlXCIgW2NvbnRhaW5lcl09XCJjb250YWluZXJcIiBbY29udGVudF09XCJjb250ZW50XCI+XG4gICAgPC9tYW50bGUtcGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,35 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../sections/dashboard-section/dashboard-section.component";
4
+ import * as i2 from "../../../details/sections/grid-details-section/grid-details-section.component";
5
+ import * as i3 from "../../../details/sections/table-details-section/table-details-section.component";
6
+ import * as i4 from "@angular/common";
7
+ export class PlainDashboardContainerComponent {
8
+ constructor() { }
9
+ asDynamicLayoutGridSection(section) {
10
+ return section;
11
+ }
12
+ asDynamicLayoutTableSection(section) {
13
+ return section;
14
+ }
15
+ asDynamicLayoutDashboardSection(section) {
16
+ return section;
17
+ }
18
+ }
19
+ PlainDashboardContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PlainDashboardContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ PlainDashboardContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PlainDashboardContainerComponent, selector: "mantle-plain-dashboard-container", inputs: { dashboardPageService: "dashboardPageService", content: "content", container: "container" }, ngImport: i0, template: "<ng-container *ngFor=\"let section of container.sections\">\n <ng-container *ngIf=\"!section.hidden\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"dashboardPageService\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\">\n </mantle-table-details-section>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [""], components: [{ type: i1.DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: ["dashboardPageService", "slug", "data", "section"] }, { type: i2.GridDetailsSectionComponent, selector: "mantle-grid-details-section", inputs: ["data", "section", "defaultRowHeight"] }, { type: i3.TableDetailsSectionComponent, selector: "mantle-table-details-section", inputs: ["data", "section"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PlainDashboardContainerComponent, decorators: [{
22
+ type: Component,
23
+ args: [{
24
+ selector: 'mantle-plain-dashboard-container',
25
+ templateUrl: './plain-dashboard-container.component.html',
26
+ styleUrls: ['./plain-dashboard-container.component.scss']
27
+ }]
28
+ }], ctorParameters: function () { return []; }, propDecorators: { dashboardPageService: [{
29
+ type: Input
30
+ }], content: [{
31
+ type: Input
32
+ }], container: [{
33
+ type: Input
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIvcGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIvcGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWWpELE1BQU0sT0FBTyxnQ0FBZ0M7SUFNM0MsZ0JBQWdCLENBQUM7SUFFakIsMEJBQTBCLENBQUMsT0FBWTtRQUNyQyxPQUFPLE9BQW1DLENBQUM7SUFDN0MsQ0FBQztJQUVELDJCQUEyQixDQUFDLE9BQVk7UUFDdEMsT0FBTyxPQUFvQyxDQUFDO0lBQzlDLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxPQUFZO1FBQzFDLE9BQU8sT0FBd0MsQ0FBQztJQUNsRCxDQUFDOzs4SEFsQlUsZ0NBQWdDO2tIQUFoQyxnQ0FBZ0MsOEtDWjdDLG1qQ0E4QkE7NEZEbEJhLGdDQUFnQztrQkFMNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxXQUFXLEVBQUUsNENBQTRDO29CQUN6RCxTQUFTLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQztpQkFDMUQ7MEVBR1Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRHluYW1pY0Rhc2hib2FyZENvbnRlbnQsIER5bmFtaWNMYXlvdXRDb250YWluZXIsIER5bmFtaWNMYXlvdXRHcmlkU2VjdGlvbixcbiAgRHluYW1pY0xheW91dFRhYmxlU2VjdGlvbiwgRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb25cbn0gZnJvbSAnLi4vLi4vLi4vLi4vZGF0YS1zdHJ1Y3R1cmVzL2R5bmFtaWMtbGF5b3V0LnN0cnVjdHVyZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRQYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvZGFzaGJvYXJkLXBhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1wbGFpbi1kYXNoYm9hcmQtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbGFpbi1kYXNoYm9hcmQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGxhaW5EYXNoYm9hcmRDb250YWluZXJDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGRhc2hib2FyZFBhZ2VTZXJ2aWNlITogRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG4gIEBJbnB1dCgpIGNvbnRlbnQhOiBEeW5hbWljRGFzaGJvYXJkQ29udGVudDtcbiAgQElucHV0KCkgY29udGFpbmVyITogRHluYW1pY0xheW91dENvbnRhaW5lcjtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGFzRHluYW1pY0xheW91dEdyaWRTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXRHcmlkU2VjdGlvbiB7XG4gICAgcmV0dXJuIHNlY3Rpb24gYXMgRHluYW1pY0xheW91dEdyaWRTZWN0aW9uO1xuICB9XG5cbiAgYXNEeW5hbWljTGF5b3V0VGFibGVTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb24ge1xuICAgIHJldHVybiBzZWN0aW9uIGFzIER5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb247XG4gIH1cblxuICBhc0R5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uIHtcbiAgICByZXR1cm4gc2VjdGlvbiBhcyBEeW5hbWljTGF5b3V0RGFzaGJvYXJkU2VjdGlvbjtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGNvbnRhaW5lci5zZWN0aW9uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlY3Rpb24uaGlkZGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbi5sYXlvdXRcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Rhc2hib2FyZCdcIj5cbiAgICAgICAgPG1hbnRsZS1kYXNoYm9hcmQtc2VjdGlvblxuICAgICAgICAgICAgW3NsdWddPVwic2VjdGlvbi5zbHVnXCJcbiAgICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb24oc2VjdGlvbilcIlxuICAgICAgICAgICAgW2RhdGFdPVwiY29udGVudC5kYXRhXCJcbiAgICAgICAgICAgIFtkYXNoYm9hcmRQYWdlU2VydmljZV09XCJkYXNoYm9hcmRQYWdlU2VydmljZVwiPlxuICAgICAgICA8L21hbnRsZS1kYXNoYm9hcmQtc2VjdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZ3JpZCdcIj5cbiAgICAgICAgPG1hbnRsZS1ncmlkLWRldGFpbHMtc2VjdGlvblxuICAgICAgICAgICAgW3NlY3Rpb25dPVwiYXNEeW5hbWljTGF5b3V0R3JpZFNlY3Rpb24oc2VjdGlvbilcIlxuICAgICAgICAgICAgW2RhdGFdPVwiY29udGVudC5kYXRhXCI+XG4gICAgICAgIDwvbWFudGxlLWdyaWQtZGV0YWlscy1zZWN0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0YWJsZSdcIj5cbiAgICAgICAgPG1hbnRsZS10YWJsZS1kZXRhaWxzLXNlY3Rpb25cbiAgICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dFRhYmxlU2VjdGlvbihzZWN0aW9uKVwiXG4gICAgICAgICAgICBbZGF0YV09XCJjb250ZW50LmRhdGFcIj5cbiAgICAgICAgPC9tYW50bGUtdGFibGUtZGV0YWlscy1zZWN0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,133 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { MatMenuTrigger } from '@angular/material/menu';
3
+ import { DashboardCardSearchMenuComponent } from '../../../components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component';
4
+ import { ScreenSizeService } from '../../../services/screen-size.service';
5
+ import { ObjectService } from '../../../services/object.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../services/object.service";
8
+ import * as i2 from "../../../services/screen-size.service";
9
+ import * as i3 from "@angular/material/card";
10
+ import * as i4 from "@angular/material/icon";
11
+ import * as i5 from "@angular/material/button";
12
+ import * as i6 from "@angular/material/menu";
13
+ import * as i7 from "../dashboard-card-search-menu/dashboard-card-search-menu.component";
14
+ import * as i8 from "@angular/material/grid-list";
15
+ import * as i9 from "../widgets/dynamic-widget-display/dynamic-widget-display.component";
16
+ import * as i10 from "@angular/flex-layout/flex";
17
+ import * as i11 from "@angular/common";
18
+ import * as i12 from "@angular/flex-layout/extended";
19
+ import * as i13 from "../../../directives/click-stop-propagation.directive";
20
+ export class DashboardCardComponent {
21
+ constructor(objectService, screenSizeService) {
22
+ this.objectService = objectService;
23
+ this.screenSizeService = screenSizeService;
24
+ this.rowHeight = '';
25
+ this.widgetItemContexts = [];
26
+ this.exportOptions = [];
27
+ this.additionalWidgetButtons = [];
28
+ this.options = {};
29
+ this.screenSize = 'default';
30
+ this.WIDGET_COLUMNS = 12;
31
+ this.widgetRowHeight = '170px';
32
+ }
33
+ ngOnInit() {
34
+ this.initializeWidget();
35
+ this.getWidgetItemData();
36
+ this.options = this.dashboardWidgetService.defaultOptions();
37
+ this.watchScreenSize(this.dashboardWidgetService.widgetDimensions);
38
+ this.refreshFormContent();
39
+ }
40
+ initializeWidget() {
41
+ this.exportOptions = this.dashboardWidgetService.widgetExportOptions();
42
+ this.additionalWidgetButtons = this.dashboardWidgetService.additionalWidgetButtons(this.widgetConfig);
43
+ }
44
+ getWidgetItemData() {
45
+ this.widgetItemContexts = this.dashboardWidgetService.widgetItemsConfig().map((widgetItem) => {
46
+ let widgetItemData = this.widgetItems[widgetItem.slug];
47
+ widgetItemData.data = this.objectService.deepMerge(widgetItem.configuration, widgetItemData.data);
48
+ if (widgetItem.type == 'info') {
49
+ widgetItemData.data = this.objectService.deepMerge(widgetItemData.data, { key_value: { label: widgetItem.label } });
50
+ }
51
+ return {
52
+ config: widgetItem,
53
+ data: widgetItemData.data,
54
+ options: widgetItemData.options
55
+ };
56
+ });
57
+ }
58
+ refreshFormContent() {
59
+ this.formContent = {
60
+ data: this.options,
61
+ elements: this.dashboardWidgetService.widgetSearchFields()
62
+ };
63
+ }
64
+ onSearchClicked() {
65
+ let itemSlugs = this.widgetItemContexts.map((context) => {
66
+ return context.config.slug;
67
+ });
68
+ let searchParams = this.searchForm.value;
69
+ searchParams.widget_item_slugs = JSON.stringify(itemSlugs);
70
+ this.objectService.removeEmptyAttributes(searchParams);
71
+ this.dashboardPageService.getWidgetItems(searchParams).subscribe(res => {
72
+ this.widgetConfig = res.content.data.widget_configs[this.widget.slug];
73
+ this.widgetItems = res.content.data.widget_items;
74
+ this.initializeWidget();
75
+ this.getWidgetItemData();
76
+ this.options = this.widgetItems[itemSlugs[0]].options;
77
+ this.refreshFormContent();
78
+ });
79
+ }
80
+ onAdditionalWidgetButtonClicked(buttonCallback) {
81
+ buttonCallback({
82
+ onSuccess: () => {
83
+ this.dashboardPageService.getWidgetItems({}).subscribe(res => {
84
+ this.widgetConfig = res.content.data.widget_configs[this.widget.slug];
85
+ this.widgetItems = res.content.data.widget_items;
86
+ this.initializeWidget();
87
+ this.getWidgetItemData();
88
+ });
89
+ }
90
+ });
91
+ }
92
+ watchScreenSize(widgetDimensions) {
93
+ this.screenSizeService.screenSize.subscribe((screenSize) => {
94
+ this.screenSize = screenSize;
95
+ this.widgetRowHeight = widgetDimensions.findByScreenSize(this.screenSize).rowHeight;
96
+ });
97
+ }
98
+ getWidgetItemColspan(config) {
99
+ return config.size.findByScreenSize(this.screenSize).colspan;
100
+ }
101
+ getWidgetItemRowspan(config) {
102
+ return config.size.findByScreenSize(this.screenSize).rowspan;
103
+ }
104
+ }
105
+ DashboardCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DashboardCardComponent, deps: [{ token: i1.ObjectService }, { token: i2.ScreenSizeService }], target: i0.ɵɵFactoryTarget.Component });
106
+ DashboardCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DashboardCardComponent, selector: "mantle-dashboard-card", inputs: { widget: "widget", widgetConfig: "widgetConfig", widgetItems: "widgetItems", rowHeight: "rowHeight", dashboardWidgetService: "dashboardWidgetService", dashboardPageService: "dashboardPageService" }, viewQueries: [{ propertyName: "searchForm", first: true, predicate: DashboardCardSearchMenuComponent, descendants: true }, { propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<mat-card fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"0px\" class=\"dashboard-card\">\n <mat-card-header fxFlex=\"0 0 auto\">\n <mat-card-title>\n <span *ngIf=\"!dashboardWidgetService.icon; else iconHeader\" class=\"sub-card-title\">{{ widget.label }}</span>\n <ng-template #iconHeader>\n <div>\n <mat-icon class=\"card-title-icon\">{{ dashboardWidgetService.icon }}</mat-icon>\n <span class=\"main-card-title\">\n {{ widget.label }}\n </span>\n </div>\n </ng-template>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(options).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"additionalWidgetButtons\">\n <div class=\"widget-button-container\" [ngClass]=\"{ 'with-menu-button': dashboardWidgetService.showMenuButton }\">\n <button *ngFor=\"let button of additionalWidgetButtons\"\n mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"widget-button\"\n [ngStyle]=\"button.styling\"\n (click)=\"onAdditionalWidgetButtonClicked(button.onClick)\"\n [disabled]=\"button.disabled\">\n {{ button.label }}\n </button>\n </div>\n </ng-container>\n\n <button #menuTrigger mat-icon-button class=\"more-button\" [matMenuTriggerFor]=\"menu\" *ngIf=\"dashboardWidgetService.showMenuButton\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <div class=\"menu-form\" click-stop-propagation>\n <mantle-dashboard-card-search-menu #searchForm [content]=\"formContent\"></mantle-dashboard-card-search-menu>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"search-button\" (click)=\"onSearchClicked(); menuTrigger.closeMenu();\">\n Search\n </button>\n </div>\n </div>\n </div>\n </mat-menu>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content fxFlex=\"1 0 1px\" fxAlign=\"center center\" class=\"dashboard-card-content\">\n\n <div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"widgetRowHeight\"\n [cols]=\"WIDGET_COLUMNS\">\n <mat-grid-tile *ngFor=\"let context of widgetItemContexts\" [colspan]=\"getWidgetItemColspan(context.config)\" [rowspan]=\"getWidgetItemRowspan(context.config)\">\n <mantle-dynamic-widget-display\n class=\"card-content-wrapper\"\n [widgetItem]=\"context.config\"\n [data]=\"context.data\"\n [options]=\"context.options\">\n </mantle-dynamic-widget-display>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n\n </mat-card-content>\n</mat-card>\n", styles: [".dashboard-card{position:absolute;top:15px;left:15px;right:15px;bottom:15px;padding:10px 15px}.more-button{position:absolute;top:5px;right:10px}.dashboard-card-content{text-align:center}.mat-card-title{margin-bottom:10px;padding-top:5px;font-weight:400}.mat-card-title .main-card-title{font-size:19px;text-transform:uppercase;font-weight:500;vertical-align:middle}.mat-card-title .card-title-icon{font-size:2rem;vertical-align:middle;padding-right:7px}.mat-card-title .sub-card-title{font-size:18px;font-weight:500}.card-content-wrapper{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.menu-form{width:140px;padding:0 8px}.export-button{display:inline-block;width:110px;background-color:transparent;white-space:nowrap;padding:0;position:absolute;top:8px;right:50px}.export-button .export-button-label{display:inline-block;width:80px;white-space:normal;text-align:right;text-transform:uppercase;font-weight:normal;font-size:12px;line-height:1.25rem;margin-right:.25rem}.widget-button-container{display:inline-block;position:absolute;top:15px;right:20px}.widget-button-container .widget-button{margin-left:7px}.with-menu-button{right:50px}.mat-icon{height:auto;width:auto;font-size:1.5rem}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3.MatCardHeader, selector: "mat-card-header" }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.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: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i7.DashboardCardSearchMenuComponent, selector: "mantle-dashboard-card-search-menu", inputs: ["content"] }, { type: i8.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i8.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i9.DynamicWidgetDisplayComponent, selector: "mantle-dynamic-widget-display", inputs: ["widgetItem", "data", "options"] }], directives: [{ type: i10.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: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i12.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i13.ClickStopPropagationDirective, selector: "[click-stop-propagation]" }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }] });
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DashboardCardComponent, decorators: [{
108
+ type: Component,
109
+ args: [{
110
+ selector: 'mantle-dashboard-card',
111
+ templateUrl: './dashboard-card.component.html',
112
+ styleUrls: ['./dashboard-card.component.scss']
113
+ }]
114
+ }], ctorParameters: function () { return [{ type: i1.ObjectService }, { type: i2.ScreenSizeService }]; }, propDecorators: { searchForm: [{
115
+ type: ViewChild,
116
+ args: [DashboardCardSearchMenuComponent]
117
+ }], menuTrigger: [{
118
+ type: ViewChild,
119
+ args: [MatMenuTrigger]
120
+ }], widget: [{
121
+ type: Input
122
+ }], widgetConfig: [{
123
+ type: Input
124
+ }], widgetItems: [{
125
+ type: Input
126
+ }], rowHeight: [{
127
+ type: Input
128
+ }], dashboardWidgetService: [{
129
+ type: Input
130
+ }], dashboardPageService: [{
131
+ type: Input
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQvZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQvZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrRkFBK0YsQ0FBQztBQUNqSixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU9qRSxNQUFNLE9BQU8sc0JBQXNCO0lBc0JqQyxZQUFvQixhQUE0QixFQUFVLGlCQUFvQztRQUExRSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFkckYsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUl6Qix1QkFBa0IsR0FBVSxFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBeUIsRUFBRSxDQUFDO1FBQ3pDLDRCQUF1QixHQUE0QixFQUFFLENBQUM7UUFFdEQsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUVqQixlQUFVLEdBQVcsU0FBUyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQ3JDLG9CQUFlLEdBQVcsT0FBTyxDQUFDO0lBRXlELENBQUM7SUFFbkcsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDdkUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtZQUNoRyxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RCxjQUFjLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xHLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxNQUFNLEVBQUU7Z0JBQzdCLGNBQWMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ3JIO1lBRUQsT0FBTztnQkFDTCxNQUFNLEVBQUUsVUFBVTtnQkFDbEIsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJO2dCQUN6QixPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU87YUFDaEMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTztZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixFQUFFO1NBQzNELENBQUE7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUMzRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDekMsWUFBWSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBRWpELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDdEQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsK0JBQStCLENBQUMsY0FBd0I7UUFDdEQsY0FBYyxDQUFDO1lBQ2IsU0FBUyxFQUFFLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBRWpELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxnQkFBcUI7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtZQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBaUM7UUFDcEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDL0QsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQWlDO1FBQ3BELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQy9ELENBQUM7O29IQTFHVSxzQkFBc0I7d0dBQXRCLHNCQUFzQix5VEFFdEIsZ0NBQWdDLDhFQUNoQyxjQUFjLGdEQ2pCM0Isb3VHQTBFQTs0RkQ1RGEsc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2lCQUMvQztvSUFHOEMsVUFBVTtzQkFBdEQsU0FBUzt1QkFBQyxnQ0FBZ0M7Z0JBQ2hCLFdBQVc7c0JBQXJDLFNBQVM7dUJBQUMsY0FBYztnQkFFaEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IER5bmFtaWNEYXNoYm9hcmRXaWRnZXQsIERhc2hib2FyZENhcmRTZWFyY2hNZW51Q29udGVudCB9IGZyb20gJy4uLy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2FyZFNlYXJjaE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2FyZC1zZWFyY2gtbWVudS9kYXNoYm9hcmQtY2FyZC1zZWFyY2gtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NyZWVuU2l6ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZFdpZGdldFNlcnZpY2UsIFdpZGdldEV4cG9ydE9wdGlvbiwgRGFzaGJvYXJkV2lkZ2V0QnV0dG9uLCBEYXNoYm9hcmRXaWRnZXRJdGVtQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtd2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JqZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWRhc2hib2FyZC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKERhc2hib2FyZENhcmRTZWFyY2hNZW51Q29tcG9uZW50KSBzZWFyY2hGb3JtITogRGFzaGJvYXJkQ2FyZFNlYXJjaE1lbnVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIG1lbnVUcmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XG5cbiAgQElucHV0KCkgd2lkZ2V0ITogRHluYW1pY0Rhc2hib2FyZFdpZGdldDtcbiAgQElucHV0KCkgd2lkZ2V0Q29uZmlnITogYW55O1xuICBASW5wdXQoKSB3aWRnZXRJdGVtcyE6IGFueTtcbiAgQElucHV0KCkgcm93SGVpZ2h0OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGFzaGJvYXJkV2lkZ2V0U2VydmljZSE6IERhc2hib2FyZFdpZGdldFNlcnZpY2U7XG4gIEBJbnB1dCgpIGRhc2hib2FyZFBhZ2VTZXJ2aWNlITogRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG5cbiAgcHVibGljIHdpZGdldEl0ZW1Db250ZXh0czogYW55W10gPSBbXTtcbiAgcHVibGljIGV4cG9ydE9wdGlvbnM6IFdpZGdldEV4cG9ydE9wdGlvbltdID0gW107XG4gIHB1YmxpYyBhZGRpdGlvbmFsV2lkZ2V0QnV0dG9uczogRGFzaGJvYXJkV2lkZ2V0QnV0dG9uW10gPSBbXTtcbiAgcHVibGljIGZvcm1Db250ZW50ITogRGFzaGJvYXJkQ2FyZFNlYXJjaE1lbnVDb250ZW50O1xuICBwdWJsaWMgb3B0aW9uczogYW55ID0ge307XG5cbiAgcHJpdmF0ZSBzY3JlZW5TaXplOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIHB1YmxpYyByZWFkb25seSBXSURHRVRfQ09MVU1OUzogbnVtYmVyID0gMTI7XG4gIHB1YmxpYyB3aWRnZXRSb3dIZWlnaHQ6IHN0cmluZyA9ICcxNzBweCc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlLCBwcml2YXRlIHNjcmVlblNpemVTZXJ2aWNlOiBTY3JlZW5TaXplU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0KCk7XG4gICAgdGhpcy5nZXRXaWRnZXRJdGVtRGF0YSgpO1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5kZWZhdWx0T3B0aW9ucygpO1xuICAgIHRoaXMud2F0Y2hTY3JlZW5TaXplKHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXREaW1lbnNpb25zKTtcbiAgICB0aGlzLnJlZnJlc2hGb3JtQ29udGVudCgpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVdpZGdldCgpIHtcbiAgICB0aGlzLmV4cG9ydE9wdGlvbnMgPSB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2Uud2lkZ2V0RXhwb3J0T3B0aW9ucygpO1xuICAgIHRoaXMuYWRkaXRpb25hbFdpZGdldEJ1dHRvbnMgPSB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2UuYWRkaXRpb25hbFdpZGdldEJ1dHRvbnModGhpcy53aWRnZXRDb25maWcpO1xuICB9XG5cbiAgZ2V0V2lkZ2V0SXRlbURhdGEoKSB7XG4gICAgdGhpcy53aWRnZXRJdGVtQ29udGV4dHMgPSB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2Uud2lkZ2V0SXRlbXNDb25maWcoKS5tYXAoKHdpZGdldEl0ZW06IGFueSkgPT4ge1xuICAgICAgbGV0IHdpZGdldEl0ZW1EYXRhID0gdGhpcy53aWRnZXRJdGVtc1t3aWRnZXRJdGVtLnNsdWddO1xuICAgICAgd2lkZ2V0SXRlbURhdGEuZGF0YSA9IHRoaXMub2JqZWN0U2VydmljZS5kZWVwTWVyZ2Uod2lkZ2V0SXRlbS5jb25maWd1cmF0aW9uLCB3aWRnZXRJdGVtRGF0YS5kYXRhKTtcbiAgICAgIGlmICh3aWRnZXRJdGVtLnR5cGUgPT0gJ2luZm8nKSB7XG4gICAgICAgIHdpZGdldEl0ZW1EYXRhLmRhdGEgPSB0aGlzLm9iamVjdFNlcnZpY2UuZGVlcE1lcmdlKHdpZGdldEl0ZW1EYXRhLmRhdGEsIHsga2V5X3ZhbHVlOiB7IGxhYmVsOiB3aWRnZXRJdGVtLmxhYmVsIH0gfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbmZpZzogd2lkZ2V0SXRlbSxcbiAgICAgICAgZGF0YTogd2lkZ2V0SXRlbURhdGEuZGF0YSxcbiAgICAgICAgb3B0aW9uczogd2lkZ2V0SXRlbURhdGEub3B0aW9uc1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlZnJlc2hGb3JtQ29udGVudCgpIHtcbiAgICB0aGlzLmZvcm1Db250ZW50ID0ge1xuICAgICAgZGF0YTogdGhpcy5vcHRpb25zLFxuICAgICAgZWxlbWVudHM6IHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXRTZWFyY2hGaWVsZHMoKVxuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoQ2xpY2tlZCgpIHtcbiAgICBsZXQgaXRlbVNsdWdzID0gdGhpcy53aWRnZXRJdGVtQ29udGV4dHMubWFwKChjb250ZXh0OiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBjb250ZXh0LmNvbmZpZy5zbHVnO1xuICAgIH0pO1xuICAgIGxldCBzZWFyY2hQYXJhbXMgPSB0aGlzLnNlYXJjaEZvcm0udmFsdWU7XG4gICAgc2VhcmNoUGFyYW1zLndpZGdldF9pdGVtX3NsdWdzID0gSlNPTi5zdHJpbmdpZnkoaXRlbVNsdWdzKTtcbiAgICB0aGlzLm9iamVjdFNlcnZpY2UucmVtb3ZlRW1wdHlBdHRyaWJ1dGVzKHNlYXJjaFBhcmFtcyk7XG5cbiAgICB0aGlzLmRhc2hib2FyZFBhZ2VTZXJ2aWNlLmdldFdpZGdldEl0ZW1zKHNlYXJjaFBhcmFtcykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLndpZGdldENvbmZpZyA9IHJlcy5jb250ZW50LmRhdGEud2lkZ2V0X2NvbmZpZ3NbdGhpcy53aWRnZXQuc2x1Z107XG4gICAgICB0aGlzLndpZGdldEl0ZW1zID0gcmVzLmNvbnRlbnQuZGF0YS53aWRnZXRfaXRlbXM7XG5cbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xuICAgICAgdGhpcy5nZXRXaWRnZXRJdGVtRGF0YSgpO1xuICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy53aWRnZXRJdGVtc1tpdGVtU2x1Z3NbMF1dLm9wdGlvbnM7XG4gICAgICB0aGlzLnJlZnJlc2hGb3JtQ29udGVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgb25BZGRpdGlvbmFsV2lkZ2V0QnV0dG9uQ2xpY2tlZChidXR0b25DYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgICBidXR0b25DYWxsYmFjayh7XG4gICAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgdGhpcy5kYXNoYm9hcmRQYWdlU2VydmljZS5nZXRXaWRnZXRJdGVtcyh7fSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy53aWRnZXRDb25maWcgPSByZXMuY29udGVudC5kYXRhLndpZGdldF9jb25maWdzW3RoaXMud2lkZ2V0LnNsdWddO1xuICAgICAgICAgIHRoaXMud2lkZ2V0SXRlbXMgPSByZXMuY29udGVudC5kYXRhLndpZGdldF9pdGVtcztcblxuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xuICAgICAgICAgIHRoaXMuZ2V0V2lkZ2V0SXRlbURhdGEoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB3YXRjaFNjcmVlblNpemUod2lkZ2V0RGltZW5zaW9uczogYW55KSB7XG4gICAgdGhpcy5zY3JlZW5TaXplU2VydmljZS5zY3JlZW5TaXplLnN1YnNjcmliZSgoc2NyZWVuU2l6ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnNjcmVlblNpemUgPSBzY3JlZW5TaXplO1xuICAgICAgdGhpcy53aWRnZXRSb3dIZWlnaHQgPSB3aWRnZXREaW1lbnNpb25zLmZpbmRCeVNjcmVlblNpemUodGhpcy5zY3JlZW5TaXplKS5yb3dIZWlnaHQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRXaWRnZXRJdGVtQ29sc3Bhbihjb25maWc6IERhc2hib2FyZFdpZGdldEl0ZW1Db25maWcpOiBudW1iZXIge1xuICAgIHJldHVybiBjb25maWcuc2l6ZS5maW5kQnlTY3JlZW5TaXplKHRoaXMuc2NyZWVuU2l6ZSkuY29sc3BhbjtcbiAgfVxuXG4gIGdldFdpZGdldEl0ZW1Sb3dzcGFuKGNvbmZpZzogRGFzaGJvYXJkV2lkZ2V0SXRlbUNvbmZpZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIGNvbmZpZy5zaXplLmZpbmRCeVNjcmVlblNpemUodGhpcy5zY3JlZW5TaXplKS5yb3dzcGFuO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RyZXRjaFwiIGZ4TGF5b3V0R2FwPVwiMHB4XCIgY2xhc3M9XCJkYXNoYm9hcmQtY2FyZFwiPlxuICA8bWF0LWNhcmQtaGVhZGVyIGZ4RmxleD1cIjAgMCBhdXRvXCI+XG4gICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5pY29uOyBlbHNlIGljb25IZWFkZXJcIiBjbGFzcz1cInN1Yi1jYXJkLXRpdGxlXCI+e3sgd2lkZ2V0LmxhYmVsIH19PC9zcGFuPlxuICAgICAgPG5nLXRlbXBsYXRlICNpY29uSGVhZGVyPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhcmQtdGl0bGUtaWNvblwiPnt7IGRhc2hib2FyZFdpZGdldFNlcnZpY2UuaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLWNhcmQtdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHdpZGdldC5sYWJlbCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHBvcnRPcHRpb24gb2YgZXhwb3J0T3B0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZXhwb3J0LWJ1dHRvblwiIChjbGljayk9XCJleHBvcnRPcHRpb24uZXhwb3J0KG9wdGlvbnMpLnN1YnNjcmliZSgpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBvcnQtYnV0dG9uLWxhYmVsXCI+e3sgZXhwb3J0T3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxtYXQtaWNvbj5kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRpdGlvbmFsV2lkZ2V0QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWJ1dHRvbi1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICd3aXRoLW1lbnUtYnV0dG9uJzogZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5zaG93TWVudUJ1dHRvbiB9XCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFkZGl0aW9uYWxXaWRnZXRCdXR0b25zXCJcbiAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cInt7IGJ1dHRvbi5jb2xvciB9fVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2lkZ2V0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJidXR0b24uc3R5bGluZ1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGRpdGlvbmFsV2lkZ2V0QnV0dG9uQ2xpY2tlZChidXR0b24ub25DbGljaylcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbi5kaXNhYmxlZFwiPlxuICAgICAgICAgICAge3sgYnV0dG9uLmxhYmVsIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxidXR0b24gI21lbnVUcmlnZ2VyIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm1vcmUtYnV0dG9uXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiAqbmdJZj1cImRhc2hib2FyZFdpZGdldFNlcnZpY2Uuc2hvd01lbnVCdXR0b25cIj5cbiAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtZm9ybVwiIGNsaWNrLXN0b3AtcHJvcGFnYXRpb24+XG4gICAgICAgICAgPG1hbnRsZS1kYXNoYm9hcmQtY2FyZC1zZWFyY2gtbWVudSAjc2VhcmNoRm9ybSBbY29udGVudF09XCJmb3JtQ29udGVudFwiPjwvbWFudGxlLWRhc2hib2FyZC1jYXJkLXNlYXJjaC1tZW51PlxuXG4gICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxNnB4XCI+XG4gICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjEgMSBhdXRvXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2VhcmNoLWJ1dHRvblwiIChjbGljayk9XCJvblNlYXJjaENsaWNrZWQoKTsgbWVudVRyaWdnZXIuY2xvc2VNZW51KCk7XCI+XG4gICAgICAgICAgICAgICAgU2VhcmNoXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L21hdC1jYXJkLXRpdGxlPlxuICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICA8bWF0LWNhcmQtY29udGVudCBmeEZsZXg9XCIxIDAgMXB4XCIgZnhBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cImRhc2hib2FyZC1jYXJkLWNvbnRlbnRcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJncmlkLWNvbnRhaW5lclwiPlxuICAgICAgPG1hdC1ncmlkLWxpc3RcbiAgICAgICAgW3Jvd0hlaWdodF09XCJ3aWRnZXRSb3dIZWlnaHRcIlxuICAgICAgICBbY29sc109XCJXSURHRVRfQ09MVU1OU1wiPlxuICAgICAgICA8bWF0LWdyaWQtdGlsZSAqbmdGb3I9XCJsZXQgY29udGV4dCBvZiB3aWRnZXRJdGVtQ29udGV4dHNcIiBbY29sc3Bhbl09XCJnZXRXaWRnZXRJdGVtQ29sc3Bhbihjb250ZXh0LmNvbmZpZylcIiBbcm93c3Bhbl09XCJnZXRXaWRnZXRJdGVtUm93c3Bhbihjb250ZXh0LmNvbmZpZylcIj5cbiAgICAgICAgICA8bWFudGxlLWR5bmFtaWMtd2lkZ2V0LWRpc3BsYXlcbiAgICAgICAgICAgIGNsYXNzPVwiY2FyZC1jb250ZW50LXdyYXBwZXJcIlxuICAgICAgICAgICAgW3dpZGdldEl0ZW1dPVwiY29udGV4dC5jb25maWdcIlxuICAgICAgICAgICAgW2RhdGFdPVwiY29udGV4dC5kYXRhXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImNvbnRleHQub3B0aW9uc1wiPlxuICAgICAgICAgIDwvbWFudGxlLWR5bmFtaWMtd2lkZ2V0LWRpc3BsYXk+XG4gICAgICAgIDwvbWF0LWdyaWQtdGlsZT5cbiAgICAgIDwvbWF0LWdyaWQtbGlzdD5cbiAgICA8L2Rpdj5cblxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPlxuIl19
@@ -0,0 +1,55 @@
1
+ import { Component, ChangeDetectorRef, Input } from '@angular/core';
2
+ import { DynamicFormService } from '../../../services/dynamic-form.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../services/dynamic-form.service";
5
+ import * as i2 from "../../form/sections/grid-form-section/grid-form-section.component";
6
+ import * as i3 from "../../widgets/loader/loader.component";
7
+ import * as i4 from "@angular/common";
8
+ export class DashboardCardSearchMenuComponent {
9
+ constructor(changeDetectorRef, dynamicFormService) {
10
+ this.changeDetectorRef = changeDetectorRef;
11
+ this.dynamicFormService = dynamicFormService;
12
+ }
13
+ ngOnChanges() {
14
+ if (this.content) {
15
+ this.form = this.dynamicFormService.toFormGroup(this.content.data);
16
+ this.section = {
17
+ layout: 'grid',
18
+ elements: this.content.elements,
19
+ singleColumn: true,
20
+ rowHeight: '60px',
21
+ writable: true,
22
+ hidden: false,
23
+ collapsed: false,
24
+ options: {}
25
+ };
26
+ }
27
+ }
28
+ ngAfterViewChecked() {
29
+ this.changeDetectorRef.detectChanges();
30
+ }
31
+ get valid() {
32
+ var _a;
33
+ return (_a = this.form) === null || _a === void 0 ? void 0 : _a.valid;
34
+ }
35
+ get value() {
36
+ var _a;
37
+ return this.dynamicFormService.transformFormValue((_a = this.form) === null || _a === void 0 ? void 0 : _a.getRawValue());
38
+ }
39
+ reset() {
40
+ this.form.reset();
41
+ }
42
+ }
43
+ DashboardCardSearchMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DashboardCardSearchMenuComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DynamicFormService }], target: i0.ɵɵFactoryTarget.Component });
44
+ DashboardCardSearchMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DashboardCardSearchMenuComponent, selector: "mantle-dashboard-card-search-menu", inputs: { content: "content" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"content; else loader\">\n <mantle-grid-form-section\n [section]=\"section\"\n [form]=\"form\">\n </mantle-grid-form-section>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n", styles: [""], components: [{ type: i2.GridFormSectionComponent, selector: "mantle-grid-form-section", inputs: ["title", "section", "form", "errors", "defaultRowHeight"] }, { type: i3.LoaderComponent, selector: "mantle-loader", inputs: ["delay"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DashboardCardSearchMenuComponent, decorators: [{
46
+ type: Component,
47
+ args: [{
48
+ selector: 'mantle-dashboard-card-search-menu',
49
+ templateUrl: './dashboard-card-search-menu.component.html',
50
+ styleUrls: ['./dashboard-card-search-menu.component.scss']
51
+ }]
52
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DynamicFormService }]; }, propDecorators: { content: [{
53
+ type: Input
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNhcmQtc2VhcmNoLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQtc2VhcmNoLW1lbnUvZGFzaGJvYXJkLWNhcmQtc2VhcmNoLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQtc2VhcmNoLW1lbnUvZGFzaGJvYXJkLWNhcmQtc2VhcmNoLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBK0IsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7QUFPNUUsTUFBTSxPQUFPLGdDQUFnQztJQU8zQyxZQUFvQixpQkFBb0MsRUFBVSxrQkFBc0M7UUFBcEYsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFBSSxDQUFDO0lBRTdHLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbkUsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUMvQixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE1BQU0sRUFBRSxLQUFLO2dCQUNiLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixPQUFPLEVBQUUsRUFBRTthQUNaLENBQUE7U0FDRjtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLEtBQUs7O1FBQ1AsT0FBTyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxLQUFLOztRQUNQLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7OEhBeENVLGdDQUFnQztrSEFBaEMsZ0NBQWdDLDhIQ1Y3QywrUEFVQTs0RkRBYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsV0FBVyxFQUFFLDZDQUE2QztvQkFDMUQsU0FBUyxFQUFFLENBQUMsNkNBQTZDLENBQUM7aUJBQzNEO3lJQUdVLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhc2hib2FyZENhcmRTZWFyY2hNZW51Q29udGVudCwgRHluYW1pY0xheW91dEdyaWRTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS1zdHJ1Y3R1cmVzL2R5bmFtaWMtbGF5b3V0LnN0cnVjdHVyZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1kYXNoYm9hcmQtY2FyZC1zZWFyY2gtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY2FyZC1zZWFyY2gtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC1jYXJkLXNlYXJjaC1tZW51LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkQ2FyZFNlYXJjaE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gIEBJbnB1dCgpIGNvbnRlbnQhOiBEYXNoYm9hcmRDYXJkU2VhcmNoTWVudUNvbnRlbnQ7XG5cbiAgcHVibGljIHNlY3Rpb24hOiBEeW5hbWljTGF5b3V0R3JpZFNlY3Rpb247XG4gIHB1YmxpYyBmb3JtITogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGR5bmFtaWNGb3JtU2VydmljZTogRHluYW1pY0Zvcm1TZXJ2aWNlKSB7IH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICB0aGlzLmZvcm0gPSB0aGlzLmR5bmFtaWNGb3JtU2VydmljZS50b0Zvcm1Hcm91cCh0aGlzLmNvbnRlbnQuZGF0YSk7XG5cbiAgICAgIHRoaXMuc2VjdGlvbiA9IHtcbiAgICAgICAgbGF5b3V0OiAnZ3JpZCcsXG4gICAgICAgIGVsZW1lbnRzOiB0aGlzLmNvbnRlbnQuZWxlbWVudHMsXG4gICAgICAgIHNpbmdsZUNvbHVtbjogdHJ1ZSxcbiAgICAgICAgcm93SGVpZ2h0OiAnNjBweCcsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgICBvcHRpb25zOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtPy52YWxpZDtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNGb3JtU2VydmljZS50cmFuc2Zvcm1Gb3JtVmFsdWUodGhpcy5mb3JtPy5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50OyBlbHNlIGxvYWRlclwiPlxuICA8bWFudGxlLWdyaWQtZm9ybS1zZWN0aW9uXG4gICAgICBbc2VjdGlvbl09XCJzZWN0aW9uXCJcbiAgICAgIFtmb3JtXT1cImZvcm1cIj5cbiAgPC9tYW50bGUtZ3JpZC1mb3JtLXNlY3Rpb24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkZXI+XG4gIDxtYW50bGUtbG9hZGVyPjwvbWFudGxlLWxvYWRlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../containers/dynamic-dashboard-container/dynamic-dashboard-container.component";
4
+ import * as i2 from "../../widgets/loader/loader.component";
5
+ import * as i3 from "@angular/common";
6
+ export class DynamicDashboardComponent {
7
+ constructor() { }
8
+ }
9
+ DynamicDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ DynamicDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicDashboardComponent, selector: "mantle-dynamic-dashboard", inputs: { dashboardPageService: "dashboardPageService", content: "content" }, ngImport: i0, template: "<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-dynamic-dashboard-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n", styles: [""], components: [{ type: i1.DynamicDashboardContainerComponent, selector: "mantle-dynamic-dashboard-container", inputs: ["dashboardPageService", "content", "container"] }, { type: i2.LoaderComponent, selector: "mantle-loader", inputs: ["delay"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicDashboardComponent, decorators: [{
12
+ type: Component,
13
+ args: [{
14
+ selector: 'mantle-dynamic-dashboard',
15
+ templateUrl: './dynamic-dashboard.component.html',
16
+ styleUrls: ['./dynamic-dashboard.component.scss']
17
+ }]
18
+ }], ctorParameters: function () { return []; }, propDecorators: { dashboardPageService: [{
19
+ type: Input
20
+ }], content: [{
21
+ type: Input
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU2pELE1BQU0sT0FBTyx5QkFBeUI7SUFLcEMsZ0JBQWdCLENBQUM7O3VIQUxOLHlCQUF5QjsyR0FBekIseUJBQXlCLDhJQ1R0Qyx1WkFVQTs0RkREYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7aUJBQ2xEOzBFQUdVLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljRGFzaGJvYXJkQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Rhc2hib2FyZC1wYWdlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtZHluYW1pYy1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNEYXNoYm9hcmRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGRhc2hib2FyZFBhZ2VTZXJ2aWNlITogRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG4gIEBJbnB1dCgpIGNvbnRlbnQhOiBEeW5hbWljRGFzaGJvYXJkQ29udGVudDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudDsgZWxzZSBsb2FkZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29udGFpbmVyIG9mIGNvbnRlbnQuY29udGFpbmVyc1wiPlxuICAgIDxtYW50bGUtZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyIFtkYXNoYm9hcmRQYWdlU2VydmljZV09XCJkYXNoYm9hcmRQYWdlU2VydmljZVwiIFtjb250YWluZXJdPVwiY29udGFpbmVyXCIgW2NvbnRlbnRdPVwiY29udGVudFwiPlxuICAgIDwvbWFudGxlLWR5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkZXI+XG4gIDxtYW50bGUtbG9hZGVyPjwvbWFudGxlLWxvYWRlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,71 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { ScreenSizeService } from '../../../../services/screen-size.service';
3
+ import { ArrayService } from '../../../../services/array.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../../services/array.service";
6
+ import * as i2 from "../../../../services/screen-size.service";
7
+ import * as i3 from "@angular/material/grid-list";
8
+ import * as i4 from "../../dashboard-card/dashboard-card.component";
9
+ import * as i5 from "@angular/common";
10
+ export class DashboardSectionComponent {
11
+ constructor(arrayService, screenSizeService) {
12
+ this.arrayService = arrayService;
13
+ this.screenSizeService = screenSizeService;
14
+ this.data = {};
15
+ this.dashboardWidgetServices = [];
16
+ this.screenSize = 'default';
17
+ this.SECTION_COLUMNS = 12;
18
+ this.rowHeight = '200px';
19
+ }
20
+ ngOnInit() {
21
+ if (!this.slug)
22
+ return;
23
+ let dashboardSections = this.dashboardPageService.dashboardSections();
24
+ let dashboardSection = this.arrayService.findByAttribute(dashboardSections, 'sectionSlug', this.slug);
25
+ this.dashboardWidgetServices = dashboardSection.dashboardWidgetServices;
26
+ this.watchScreenSize(dashboardSection.sectionDimensions);
27
+ }
28
+ watchScreenSize(sectionDimensions) {
29
+ this.screenSizeService.screenSize.subscribe((screenSize) => {
30
+ this.screenSize = screenSize;
31
+ this.rowHeight = sectionDimensions.findByScreenSize(this.screenSize).rowHeight;
32
+ });
33
+ }
34
+ getColSpanForWidget(widgetSlug) {
35
+ const dashboardWidgetService = this.getDashboardWidgetService(widgetSlug);
36
+ if (dashboardWidgetService == null)
37
+ return 1;
38
+ return dashboardWidgetService.widgetSize().findByScreenSize(this.screenSize).colspan;
39
+ }
40
+ getRowSpanForWidget(widgetSlug) {
41
+ const dashboardWidgetService = this.getDashboardWidgetService(widgetSlug);
42
+ if (dashboardWidgetService == null)
43
+ return 1;
44
+ return dashboardWidgetService.widgetSize().findByScreenSize(this.screenSize).rowspan;
45
+ }
46
+ getDashboardWidgetService(widgetSlug) {
47
+ for (let widgetService of this.dashboardWidgetServices) {
48
+ if (widgetService.slug == widgetSlug)
49
+ return widgetService;
50
+ }
51
+ }
52
+ }
53
+ DashboardSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DashboardSectionComponent, deps: [{ token: i1.ArrayService }, { token: i2.ScreenSizeService }], target: i0.ɵɵFactoryTarget.Component });
54
+ DashboardSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: { dashboardPageService: "dashboardPageService", slug: "slug", data: "data", section: "section" }, ngImport: i0, template: "<div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"rowHeight\"\n [cols]=\"SECTION_COLUMNS\"\n [class.multi-column]=\"true\">\n\n <mat-grid-tile *ngFor=\"let widget of section.elements\" [colspan]=\"getColSpanForWidget(widget.slug)\" [rowspan]=\"getRowSpanForWidget(widget.slug)\">\n <mantle-dashboard-card\n [widget]=\"widget\"\n [widgetConfig]=\"data.widget_configs[widget.slug]\"\n [widgetItems]=\"data.widget_items\"\n [rowHeight]=\"rowHeight\"\n [dashboardWidgetService]=\"getDashboardWidgetService(widget.slug)\"\n [dashboardPageService]=\"dashboardPageService\">\n </mantle-dashboard-card>\n </mat-grid-tile>\n\n </mat-grid-list>\n</div>\n", styles: [""], components: [{ type: i3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i4.DashboardCardComponent, selector: "mantle-dashboard-card", inputs: ["widget", "widgetConfig", "widgetItems", "rowHeight", "dashboardWidgetService", "dashboardPageService"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DashboardSectionComponent, decorators: [{
56
+ type: Component,
57
+ args: [{
58
+ selector: 'mantle-dashboard-section',
59
+ templateUrl: './dashboard-section.component.html',
60
+ styleUrls: ['./dashboard-section.component.scss']
61
+ }]
62
+ }], ctorParameters: function () { return [{ type: i1.ArrayService }, { type: i2.ScreenSizeService }]; }, propDecorators: { dashboardPageService: [{
63
+ type: Input
64
+ }], slug: [{
65
+ type: Input
66
+ }], data: [{
67
+ type: Input
68
+ }], section: [{
69
+ type: Input
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvc2VjdGlvbnMvZGFzaGJvYXJkLXNlY3Rpb24vZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvc2VjdGlvbnMvZGFzaGJvYXJkLXNlY3Rpb24vZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7O0FBT2xFLE1BQU0sT0FBTyx5QkFBeUI7SUFhcEMsWUFBb0IsWUFBMEIsRUFBVSxpQkFBb0M7UUFBeEUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVG5GLFNBQUksR0FBUSxFQUFFLENBQUM7UUFHakIsNEJBQXVCLEdBQTZCLEVBQUUsQ0FBQztRQUV0RCxlQUFVLEdBQVcsU0FBUyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBQ3RDLGNBQVMsR0FBVyxPQUFPLENBQUM7SUFFNkQsQ0FBQztJQUVqRyxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUV2QixJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RFLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUM7UUFFeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlLENBQUMsaUJBQXNCO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFFLElBQUksc0JBQXNCLElBQUksSUFBSTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sc0JBQXNCLENBQUMsVUFBVSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUN2RixDQUFDO0lBRUQsbUJBQW1CLENBQUMsVUFBa0I7UUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFMUUsSUFBSSxzQkFBc0IsSUFBSSxJQUFJO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFFN0MsT0FBTyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxVQUFrQjtRQUMxQyxLQUFLLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUN0RCxJQUFJLGFBQWEsQ0FBQyxJQUFJLElBQUksVUFBVTtnQkFBRSxPQUFPLGFBQWEsQ0FBQztTQUM1RDtJQUNILENBQUM7O3VIQXJEVSx5QkFBeUI7MkdBQXpCLHlCQUF5QiwwS0NadEMsK3RCQW1CQTs0RkRQYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7aUJBQ2xEO21JQUdVLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhLXN0cnVjdHVyZXMvZHluYW1pYy1sYXlvdXQuc3RydWN0dXJlJztcbmltcG9ydCB7IERhc2hib2FyZFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZFdpZGdldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Rhc2hib2FyZC13aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5TaXplU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3NjcmVlbi1zaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXJyYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXJyYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1kYXNoYm9hcmQtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgZGFzaGJvYXJkUGFnZVNlcnZpY2UhOiBEYXNoYm9hcmRQYWdlU2VydmljZTtcbiAgQElucHV0KCkgc2x1Zzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBkYXRhOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgc2VjdGlvbiE6IER5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uO1xuXG4gIHB1YmxpYyBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlczogRGFzaGJvYXJkV2lkZ2V0U2VydmljZVtdID0gW107XG5cbiAgcHJpdmF0ZSBzY3JlZW5TaXplOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIHB1YmxpYyByZWFkb25seSBTRUNUSU9OX0NPTFVNTlM6IG51bWJlciA9IDEyO1xuICBwdWJsaWMgcm93SGVpZ2h0OiBzdHJpbmcgPSAnMjAwcHgnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXJyYXlTZXJ2aWNlOiBBcnJheVNlcnZpY2UsIHByaXZhdGUgc2NyZWVuU2l6ZVNlcnZpY2U6IFNjcmVlblNpemVTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2x1ZykgcmV0dXJuO1xuXG4gICAgbGV0IGRhc2hib2FyZFNlY3Rpb25zID0gdGhpcy5kYXNoYm9hcmRQYWdlU2VydmljZS5kYXNoYm9hcmRTZWN0aW9ucygpO1xuICAgIGxldCBkYXNoYm9hcmRTZWN0aW9uID0gdGhpcy5hcnJheVNlcnZpY2UuZmluZEJ5QXR0cmlidXRlKGRhc2hib2FyZFNlY3Rpb25zLCAnc2VjdGlvblNsdWcnLCB0aGlzLnNsdWcpO1xuXG4gICAgdGhpcy5kYXNoYm9hcmRXaWRnZXRTZXJ2aWNlcyA9IGRhc2hib2FyZFNlY3Rpb24uZGFzaGJvYXJkV2lkZ2V0U2VydmljZXM7XG5cbiAgICB0aGlzLndhdGNoU2NyZWVuU2l6ZShkYXNoYm9hcmRTZWN0aW9uLnNlY3Rpb25EaW1lbnNpb25zKTtcbiAgfVxuXG4gIHdhdGNoU2NyZWVuU2l6ZShzZWN0aW9uRGltZW5zaW9uczogYW55KSB7XG4gICAgdGhpcy5zY3JlZW5TaXplU2VydmljZS5zY3JlZW5TaXplLnN1YnNjcmliZSgoc2NyZWVuU2l6ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnNjcmVlblNpemUgPSBzY3JlZW5TaXplO1xuICAgICAgdGhpcy5yb3dIZWlnaHQgPSBzZWN0aW9uRGltZW5zaW9ucy5maW5kQnlTY3JlZW5TaXplKHRoaXMuc2NyZWVuU2l6ZSkucm93SGVpZ2h0O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q29sU3BhbkZvcldpZGdldCh3aWRnZXRTbHVnOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGRhc2hib2FyZFdpZGdldFNlcnZpY2UgPSB0aGlzLmdldERhc2hib2FyZFdpZGdldFNlcnZpY2Uod2lkZ2V0U2x1Zyk7XG5cbiAgICBpZiAoZGFzaGJvYXJkV2lkZ2V0U2VydmljZSA9PSBudWxsKSByZXR1cm4gMTtcblxuICAgIHJldHVybiBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLndpZGdldFNpemUoKS5maW5kQnlTY3JlZW5TaXplKHRoaXMuc2NyZWVuU2l6ZSkuY29sc3BhbjtcbiAgfVxuXG4gIGdldFJvd1NwYW5Gb3JXaWRnZXQod2lkZ2V0U2x1Zzogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlID0gdGhpcy5nZXREYXNoYm9hcmRXaWRnZXRTZXJ2aWNlKHdpZGdldFNsdWcpO1xuXG4gICAgaWYgKGRhc2hib2FyZFdpZGdldFNlcnZpY2UgPT0gbnVsbCkgcmV0dXJuIDE7XG5cbiAgICByZXR1cm4gZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXRTaXplKCkuZmluZEJ5U2NyZWVuU2l6ZSh0aGlzLnNjcmVlblNpemUpLnJvd3NwYW47XG4gIH1cblxuICBnZXREYXNoYm9hcmRXaWRnZXRTZXJ2aWNlKHdpZGdldFNsdWc6IHN0cmluZyk6IGFueSB7XG4gICAgZm9yIChsZXQgd2lkZ2V0U2VydmljZSBvZiB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2VzKSB7XG4gICAgICBpZiAod2lkZ2V0U2VydmljZS5zbHVnID09IHdpZGdldFNsdWcpIHJldHVybiB3aWRnZXRTZXJ2aWNlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdyaWQtY29udGFpbmVyXCI+XG4gIDxtYXQtZ3JpZC1saXN0XG4gICAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiXG4gICAgICBbY29sc109XCJTRUNUSU9OX0NPTFVNTlNcIlxuICAgICAgW2NsYXNzLm11bHRpLWNvbHVtbl09XCJ0cnVlXCI+XG5cbiAgICA8bWF0LWdyaWQtdGlsZSAqbmdGb3I9XCJsZXQgd2lkZ2V0IG9mIHNlY3Rpb24uZWxlbWVudHNcIiBbY29sc3Bhbl09XCJnZXRDb2xTcGFuRm9yV2lkZ2V0KHdpZGdldC5zbHVnKVwiIFtyb3dzcGFuXT1cImdldFJvd1NwYW5Gb3JXaWRnZXQod2lkZ2V0LnNsdWcpXCI+XG4gICAgICA8bWFudGxlLWRhc2hib2FyZC1jYXJkXG4gICAgICAgIFt3aWRnZXRdPVwid2lkZ2V0XCJcbiAgICAgICAgW3dpZGdldENvbmZpZ109XCJkYXRhLndpZGdldF9jb25maWdzW3dpZGdldC5zbHVnXVwiXG4gICAgICAgIFt3aWRnZXRJdGVtc109XCJkYXRhLndpZGdldF9pdGVtc1wiXG4gICAgICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcbiAgICAgICAgW2Rhc2hib2FyZFdpZGdldFNlcnZpY2VdPVwiZ2V0RGFzaGJvYXJkV2lkZ2V0U2VydmljZSh3aWRnZXQuc2x1ZylcIlxuICAgICAgICBbZGFzaGJvYXJkUGFnZVNlcnZpY2VdPVwiZGFzaGJvYXJkUGFnZVNlcnZpY2VcIj5cbiAgICAgIDwvbWFudGxlLWRhc2hib2FyZC1jYXJkPlxuICAgIDwvbWF0LWdyaWQtdGlsZT5cblxuICA8L21hdC1ncmlkLWxpc3Q+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/icon";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/flex-layout/extended";
6
+ export class DashboardInfoCardComponent {
7
+ constructor() {
8
+ this.data = '';
9
+ this.options = '';
10
+ }
11
+ }
12
+ DashboardInfoCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DashboardInfoCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ DashboardInfoCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DashboardInfoCardComponent, selector: "mantle-dashboard-info-card", inputs: { data: "data", options: "options" }, ngImport: i0, template: "<div class=\"info-card\">\n <div *ngIf=\"data.key_value\">\n <div *ngIf=\"data.key_value.label\" class=\"sub-header\">{{ data.key_value.label }}</div>\n <span class=\"header\">\n <h1 class=\"header-value\" [ngStyle]=\"{ 'color': data.color }\">{{ data.key_value.value }}</h1> <span class=\"header-units\">{{ data.key_value.unit }}</span>\n </span>\n <div *ngIf=\"data.showSubLabel\">\n <span class=\"header-date\">{{ data.key_value.sub_label }}</span>\n </div>\n </div>\n\n <small *ngIf=\"data.comparison\" class=\"comparison\">\n <mat-icon>{{ (data.comparison.value < 0) ? 'keyboard_arrow_down' : 'keyboard_arrow_up' }}</mat-icon>\n {{ data.comparison.value }} {{ data.comparison.unit }} {{ data.comparison.label }}\n </small>\n\n <table *ngIf=\"data.bulletpoints && data.bulletpoints.length > 0\" class=\"bulletpoints\">\n <tr *ngFor=\"let bulletpoint of data.bulletpoints\" class=\"bulletpoint\">\n <td class=\"bulletpoint-icon\"><mat-icon>chevron_right</mat-icon></td><td class=\"bulletpoint-value\"><b>{{ bulletpoint.value }}</b></td><td class=\"bulletpoint-label\">{{ bulletpoint.label }}</td>\n </tr>\n </table>\n</div>\n", styles: [".info-card{padding:10px;margin:0 auto auto;max-width:100%;max-height:100%}.header{padding-bottom:4px;min-width:100px;margin:auto;word-wrap:normal}.header .header-value{display:inline-block;margin-bottom:10px;font-size:46px;font-weight:500}.header .header-units{display:inline-block;margin-left:4px;margin-bottom:0;font-size:16px;text-transform:uppercase}.sub-header{margin-top:4px;margin-bottom:30px;font-size:15px;font-weight:500}.header-date{margin-top:4px;margin-bottom:30px;font-size:12px;color:gray}.comparison .mat-icon{font-size:14px!important;height:14px}.bulletpoints{margin-top:16px;border-collapse:collapse}.bulletpoints .bulletpoint .bulletpoint-icon{padding-right:4px!important}.bulletpoints .bulletpoint .bulletpoint-value{font-weight:500;font-size:16px;text-align:right;padding-left:2px!important;padding-right:4px!important}.bulletpoints .bulletpoint .bulletpoint-label{text-align:left;padding-left:2px!important}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DashboardInfoCardComponent, decorators: [{
15
+ type: Component,
16
+ args: [{
17
+ selector: 'mantle-dashboard-info-card',
18
+ templateUrl: './dashboard-info-card.component.html',
19
+ styleUrls: ['./dashboard-info-card.component.scss']
20
+ }]
21
+ }], ctorParameters: function () { return []; }, propDecorators: { data: [{
22
+ type: Input
23
+ }], options: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWluZm8tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC93aWRnZXRzL2Rhc2hib2FyZC1pbmZvLWNhcmQvZGFzaGJvYXJkLWluZm8tY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC93aWRnZXRzL2Rhc2hib2FyZC1pbmZvLWNhcmQvZGFzaGJvYXJkLWluZm8tY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPakQsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQztRQUhTLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZixZQUFPLEdBQVEsRUFBRSxDQUFDO0lBRVgsQ0FBQzs7d0hBTE4sMEJBQTBCOzRHQUExQiwwQkFBMEIsZ0hDUHZDLDBwQ0FzQkE7NEZEZmEsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUNwRDswRUFHVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtZGFzaGJvYXJkLWluZm8tY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtaW5mby1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLWluZm8tY2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZEluZm9DYXJkQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBkYXRhOiBhbnkgPSAnJztcbiAgQElucHV0KCkgb3B0aW9uczogYW55ID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImluZm8tY2FyZFwiPlxuICA8ZGl2ICpuZ0lmPVwiZGF0YS5rZXlfdmFsdWVcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5rZXlfdmFsdWUubGFiZWxcIiBjbGFzcz1cInN1Yi1oZWFkZXJcIj57eyBkYXRhLmtleV92YWx1ZS5sYWJlbCB9fTwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICA8aDEgY2xhc3M9XCJoZWFkZXItdmFsdWVcIiBbbmdTdHlsZV09XCJ7ICdjb2xvcic6IGRhdGEuY29sb3IgfVwiPnt7IGRhdGEua2V5X3ZhbHVlLnZhbHVlIH19PC9oMT4gPHNwYW4gY2xhc3M9XCJoZWFkZXItdW5pdHNcIj57eyBkYXRhLmtleV92YWx1ZS51bml0IH19PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5zaG93U3ViTGFiZWxcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLWRhdGVcIj57eyBkYXRhLmtleV92YWx1ZS5zdWJfbGFiZWwgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxzbWFsbCAqbmdJZj1cImRhdGEuY29tcGFyaXNvblwiIGNsYXNzPVwiY29tcGFyaXNvblwiPlxuICAgIDxtYXQtaWNvbj57eyAoZGF0YS5jb21wYXJpc29uLnZhbHVlIDwgMCkgPyAna2V5Ym9hcmRfYXJyb3dfZG93bicgOiAna2V5Ym9hcmRfYXJyb3dfdXAnIH19PC9tYXQtaWNvbj5cbiAgICB7eyBkYXRhLmNvbXBhcmlzb24udmFsdWUgfX0ge3sgZGF0YS5jb21wYXJpc29uLnVuaXQgfX0ge3sgZGF0YS5jb21wYXJpc29uLmxhYmVsIH19XG4gIDwvc21hbGw+XG5cbiAgPHRhYmxlICpuZ0lmPVwiZGF0YS5idWxsZXRwb2ludHMgJiYgZGF0YS5idWxsZXRwb2ludHMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYnVsbGV0cG9pbnRzXCI+XG4gICAgPHRyICpuZ0Zvcj1cImxldCBidWxsZXRwb2ludCBvZiBkYXRhLmJ1bGxldHBvaW50c1wiIGNsYXNzPVwiYnVsbGV0cG9pbnRcIj5cbiAgICAgIDx0ZCBjbGFzcz1cImJ1bGxldHBvaW50LWljb25cIj48bWF0LWljb24+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+PC90ZD48dGQgY2xhc3M9XCJidWxsZXRwb2ludC12YWx1ZVwiPjxiPnt7IGJ1bGxldHBvaW50LnZhbHVlIH19PC9iPjwvdGQ+PHRkIGNsYXNzPVwiYnVsbGV0cG9pbnQtbGFiZWxcIj57eyBidWxsZXRwb2ludC5sYWJlbCB9fTwvdGQ+XG4gICAgPC90cj5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,30 @@
1
+ import { DataSource } from '@angular/cdk/collections';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ /**
5
+ * Data source for the List Page view. This class should
6
+ * encapsulate all logic for fetching and manipulating the displayed data
7
+ * (including sorting, pagination, and searching).
8
+ */
9
+ export class DashboardTableDataSource extends DataSource {
10
+ constructor() {
11
+ super();
12
+ this.listSubject = new BehaviorSubject([]);
13
+ }
14
+ /**
15
+ * Connect this data source to the table. The table will only update when
16
+ * the returned stream emits new items.
17
+ * @returns A stream of the items to be rendered.
18
+ */
19
+ connect() {
20
+ return this.listSubject.asObservable().pipe(map(() => {
21
+ return this.listSubject.value;
22
+ }));
23
+ }
24
+ /**
25
+ * Called when the table is being destroyed. Use this function, to clean up
26
+ * any open connections or free any held resources that were set up during connect.
27
+ */
28
+ disconnect() { }
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXRhYmxlLWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC93aWRnZXRzL2Rhc2hib2FyZC10YWJsZS9kYXNoYm9hcmQtdGFibGUtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUFlO0lBRzNEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFIVixnQkFBVyxHQUEyQixJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUlyRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUN6QyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsS0FBVSxDQUFDO0NBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBEYXRhIHNvdXJjZSBmb3IgdGhlIExpc3QgUGFnZSB2aWV3LiBUaGlzIGNsYXNzIHNob3VsZFxuICogZW5jYXBzdWxhdGUgYWxsIGxvZ2ljIGZvciBmZXRjaGluZyBhbmQgbWFuaXB1bGF0aW5nIHRoZSBkaXNwbGF5ZWQgZGF0YVxuICogKGluY2x1ZGluZyBzb3J0aW5nLCBwYWdpbmF0aW9uLCBhbmQgc2VhcmNoaW5nKS5cbiAqL1xuZXhwb3J0IGNsYXNzIERhc2hib2FyZFRhYmxlRGF0YVNvdXJjZSBleHRlbmRzIERhdGFTb3VyY2U8YW55PiB7XG4gIGxpc3RTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdCB0aGlzIGRhdGEgc291cmNlIHRvIHRoZSB0YWJsZS4gVGhlIHRhYmxlIHdpbGwgb25seSB1cGRhdGUgd2hlblxuICAgKiB0aGUgcmV0dXJuZWQgc3RyZWFtIGVtaXRzIG5ldyBpdGVtcy5cbiAgICogQHJldHVybnMgQSBzdHJlYW0gb2YgdGhlIGl0ZW1zIHRvIGJlIHJlbmRlcmVkLlxuICAgKi9cbiAgY29ubmVjdCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RTdWJqZWN0LnZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqICBDYWxsZWQgd2hlbiB0aGUgdGFibGUgaXMgYmVpbmcgZGVzdHJveWVkLiBVc2UgdGhpcyBmdW5jdGlvbiwgdG8gY2xlYW4gdXBcbiAgICogYW55IG9wZW4gY29ubmVjdGlvbnMgb3IgZnJlZSBhbnkgaGVsZCByZXNvdXJjZXMgdGhhdCB3ZXJlIHNldCB1cCBkdXJpbmcgY29ubmVjdC5cbiAgICovXG4gIGRpc2Nvbm5lY3QoKTogdm9pZCB7fVxufVxuIl19