@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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Zvcm0tcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXZWJBcGlGb3JtUmVzcG9uc2UsIFdlYkFwaVNhdmVSZXNwb25zZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkYXB0ZXJzL3dlYi1hcGktY3J1ZC5hZGFwdGVyJztcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udGVudCB9IGZyb20gJy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlQnV0dG9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgY29sb3I/OiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJztcbiAgcG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCc7XG4gIHNob3c6IGJvb2xlYW47XG4gIGlzSW5Qcm9ncmVzczogKCkgPT4gYm9vbGVhbjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChyZWNvcmQ6IGFueSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtUGFnZVNlcnZpY2Uge1xuXG4gIHNob3dTYXZlQnV0dG9uOiBib29sZWFuO1xuICBpc0NvbW1pdEluUHJvZ3Jlc3M6IGJvb2xlYW47XG5cbiAgbm91bigpOiBzdHJpbmc7XG4gIGdldE5ldyhwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFdlYkFwaUZvcm1SZXNwb25zZT47XG4gIGNyZWF0ZShwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8V2ViQXBpU2F2ZVJlc3BvbnNlPjtcbiAgZ2V0RWRpdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXZWJBcGlGb3JtUmVzcG9uc2U+O1xuICB1cGRhdGUoaWQ6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPFdlYkFwaVNhdmVSZXNwb25zZT47XG4gIHNhdmUoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IGFueSwgb25TdWNjZXNzOiAocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSkgPT4gdm9pZCwgb25GYWlsdXJlOiAocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSkgPT4gdm9pZCk6IHZvaWQ7XG4gIG9uRm9ybUNvbnRlbnRMb2FkZWQoY29udGVudDogRHluYW1pY0Zvcm1Db250ZW50KTogdm9pZDtcbiAgb25Gb3JtVmFsdWVDaGFuZ2VkKHBhZ2VDb250ZW50OiBEeW5hbWljRm9ybUNvbnRlbnQsIGZvcm1WYWx1ZTogYW55KTogdm9pZDtcbiAgYmVmb3JlU2F2ZShwYXJhbXM6IGFueSk6IHZvaWQ7XG4gIG9uU2F2ZVN1Y2Nlc3MocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSk6IHZvaWQ7XG4gIG9uU2F2ZUZhaWx1cmUocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSk6IHZvaWQ7XG4gIGFkZGl0aW9uYWxGb3JtUGFnZUJ1dHRvbnMocmVjb3JkOiBhbnkpOiBGb3JtUGFnZUJ1dHRvbltdO1xuICBvcGVuUmVjb3JkKHJlY29yZDogYW55KTogdm9pZDtcbiAgb3Blbkxpc3QoKTogdm9pZDtcblxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWVkaXRvci1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2xheW91dC1lZGl0b3ItcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXZWJBcGlGb3JtUmVzcG9uc2UsIFdlYkFwaVNhdmVSZXNwb25zZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkYXB0ZXJzL3dlYi1hcGktY3J1ZC5hZGFwdGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRFZGl0b3JQYWdlU2VydmljZSB7XG5cbiAgc2hvd1NhdmVCdXR0b246IGJvb2xlYW47XG4gIGlzQ29tbWl0SW5Qcm9ncmVzczogYm9vbGVhbjtcblxuICBub3VuKCk6IHN0cmluZztcbiAgZ2V0RWRpdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXZWJBcGlGb3JtUmVzcG9uc2U+O1xuICBvcGVuTGlzdCgpOiB2b2lkO1xuICBjYW5Xcml0ZSgpOiBib29sZWFuO1xuICB1cGRhdGUoaWQ6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPFdlYkFwaVNhdmVSZXNwb25zZT47XG4gIHNhdmUoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IGFueSwgb25TdWNjZXNzOiAocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSkgPT4gdm9pZCwgb25GYWlsdXJlOiAocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSkgPT4gdm9pZCk6IHZvaWQ7XG4gIG9uU2F2ZVN1Y2Nlc3MocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSk6IHZvaWQ7XG4gIG9uU2F2ZUZhaWx1cmUocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSk6IHZvaWQ7XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2xpc3QtcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdlYkFwaUxpc3RSZXF1ZXN0LCBXZWJBcGlMaXN0UmVzcG9uc2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hZGFwdGVycy93ZWItYXBpLWNydWQuYWRhcHRlcic7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYWdlQ29sdW1uIHtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIGF0dHI6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBvcHRpb25zPzogYW55O1xuICBzb3J0QXR0cj86IHN0cmluZztcbiAgZGlzYWJsZVNvcnQ/OiBib29sZWFuO1xuICBlbmFibGVDb2xsYXBzZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFBhZ2VFeHBvcnRPcHRpb24ge1xuICBsYWJlbDogc3RyaW5nO1xuICBleHBvcnQocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFBhZ2VCdWxrRXhwb3J0T3B0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgZXhwb3J0KHNlbGVjdGVkSWRzOiBzdHJpbmdbXSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFBhZ2VTZXJ2aWNlIHtcblxuICB3aXRoQ2hlY2thYmxlUm93cz86IGJvb2xlYW47XG4gIHdpdGhDbGlja2FibGVSb3dzOiBib29sZWFuO1xuICB3aXRoQ29sbGFwc2libGVDb2x1bW5zPzogYm9vbGVhbjtcbiAgc2hvd0FkZEJ1dHRvbjogYm9vbGVhbjtcbiAgd2ViUnRjRXZlbnRzOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgbGlzdENvbnRlbnRDaGFuZ2VFdmVudHM6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBkZWZhdWx0T3JkZXI/OiB7IGF0dHI6IHN0cmluZywgZGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB9O1xuXG4gIHByZXBhcmUocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZDtcbiAgbm91bigpOiBzdHJpbmc7XG4gIGxpc3RDb2x1bW5zKCk6IExpc3RQYWdlQ29sdW1uW107XG4gIHNlYXJjaEZpZWxkcygpOiBEeW5hbWljRm9ybUZpZWxkW107XG4gIGxpc3RQYWdlRXhwb3J0T3B0aW9ucygpOiBMaXN0UGFnZUV4cG9ydE9wdGlvbltdO1xuICBsaXN0UGFnZUJ1bGtFeHBvcnRPcHRpb25zKCk6IExpc3RQYWdlQnVsa0V4cG9ydE9wdGlvbltdO1xuICBnZXRMaXN0KHBhcmFtczogV2ViQXBpTGlzdFJlcXVlc3QpOiBPYnNlcnZhYmxlPFdlYkFwaUxpc3RSZXNwb25zZT47XG4gIG9wZW5SZWNvcmQocmVjb3JkOiBhbnkpOiB2b2lkO1xuICBvcGVuRm9ybShyZWNvcmQ/OiBhbnksIGluaXREYXRhPzogYW55KTogdm9pZDtcbiAgY2FuV3JpdGUoKTogYm9vbGVhbjtcblxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXRhYnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL3NlcnZpY2VzL2ludGVyZmFjZXMvbmF2LXRhYnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUYWJiZWRQYWdlVGFiIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgcm91dGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYXZUYWJzU2VydmljZSB7XG5cbiAgdGFicyhyb3V0ZVBhcmFtczogYW55KTogVGFiYmVkUGFnZVRhYltdO1xuXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVyb3V0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvc2VydmljZXMvaW50ZXJmYWNlcy9yZXJvdXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUmVyb3V0ZVNlcnZpY2Uge1xuXG4gIHJlcm91dGUoKTogdm9pZDtcblxufVxuIl19
@@ -0,0 +1,69 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ObjectService {
4
+ constructor() { }
5
+ removeEmptyAttributes(object = {}) {
6
+ for (var attr in object) {
7
+ if (object[attr] === null || object[attr] === undefined || object[attr] === '') {
8
+ delete object[attr];
9
+ }
10
+ }
11
+ }
12
+ removeAllAttributes(object = {}) {
13
+ for (var attr in object) {
14
+ delete object[attr];
15
+ }
16
+ }
17
+ deepMerge(...objects) {
18
+ let result = {};
19
+ objects.forEach((object) => {
20
+ if (!this.isObject(result) || !this.isObject(object)) {
21
+ result = object;
22
+ }
23
+ else {
24
+ Object.entries(object).forEach(([key, value]) => {
25
+ if (this.isObject(value)) {
26
+ result[key] = this.deepMerge(result[key] || {}, value);
27
+ }
28
+ else {
29
+ result[key] = value;
30
+ }
31
+ });
32
+ }
33
+ });
34
+ return result;
35
+ }
36
+ deepClone(object) {
37
+ let objectService = this;
38
+ let copyFunction = function (value) {
39
+ if (objectService.isObject(value)) {
40
+ return objectService.deepClone(value);
41
+ }
42
+ else if (value instanceof Array) {
43
+ return value.map((item) => {
44
+ return copyFunction(item);
45
+ });
46
+ }
47
+ else {
48
+ return value;
49
+ }
50
+ };
51
+ let result = {};
52
+ Object.entries(object).forEach(([key, value]) => {
53
+ result[key] = copyFunction(value);
54
+ });
55
+ return result;
56
+ }
57
+ isObject(objValue) {
58
+ return objValue && typeof objValue === 'object' && objValue.constructor === Object;
59
+ }
60
+ }
61
+ ObjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ObjectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
62
+ ObjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ObjectService, providedIn: 'root' });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ObjectService, decorators: [{
64
+ type: Injectable,
65
+ args: [{
66
+ providedIn: 'root'
67
+ }]
68
+ }], ctorParameters: function () { return []; } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy9vYmplY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUV4QixnQkFBZSxDQUFDO0lBRVQscUJBQXFCLENBQUMsU0FBYyxFQUFFO1FBQzNDLEtBQUssSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO1lBQ3ZCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzlFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsU0FBYyxFQUFFO1FBQ3pDLEtBQUssSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO1lBQ3ZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFHLE9BQWM7UUFDaEMsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BELE1BQU0sR0FBRyxNQUFNLENBQUM7YUFDakI7aUJBQ0k7Z0JBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO29CQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7cUJBQ3hEO3lCQUNJO3dCQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7cUJBQ3JCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBVztRQUMxQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxZQUFZLEdBQXdCLFVBQVMsS0FBVTtZQUN6RCxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pDLE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QztpQkFDSSxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM3QixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFDSTtnQkFDSCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFhO1FBQzNCLE9BQU8sUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQztJQUNyRixDQUFDOzsyR0FoRVUsYUFBYTsrR0FBYixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyByZW1vdmVFbXB0eUF0dHJpYnV0ZXMob2JqZWN0OiBhbnkgPSB7fSkge1xuICAgIGZvciAodmFyIGF0dHIgaW4gb2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0W2F0dHJdID09PSBudWxsIHx8IG9iamVjdFthdHRyXSA9PT0gdW5kZWZpbmVkIHx8IG9iamVjdFthdHRyXSA9PT0gJycpIHtcbiAgICAgICAgZGVsZXRlIG9iamVjdFthdHRyXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQWxsQXR0cmlidXRlcyhvYmplY3Q6IGFueSA9IHt9KSB7XG4gICAgZm9yICh2YXIgYXR0ciBpbiBvYmplY3QpIHtcbiAgICAgIGRlbGV0ZSBvYmplY3RbYXR0cl07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlZXBNZXJnZSguLi5vYmplY3RzOiBhbnlbXSkge1xuICAgIGxldCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqZWN0OiBhbnkpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc09iamVjdChyZXN1bHQpIHx8ICF0aGlzLmlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgcmVzdWx0ID0gb2JqZWN0O1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKG9iamVjdCkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHRoaXMuZGVlcE1lcmdlKHJlc3VsdFtrZXldIHx8IHt9LCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZGVlcENsb25lKG9iamVjdDogYW55KSB7XG4gICAgbGV0IG9iamVjdFNlcnZpY2UgPSB0aGlzO1xuICAgIGxldCBjb3B5RnVuY3Rpb246ICh2YWx1ZTogYW55KSA9PiBhbnkgPSBmdW5jdGlvbih2YWx1ZTogYW55KSB7XG4gICAgICBpZiAob2JqZWN0U2VydmljZS5pc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdFNlcnZpY2UuZGVlcENsb25lKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvcHlGdW5jdGlvbihpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIE9iamVjdC5lbnRyaWVzKG9iamVjdCkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICByZXN1bHRba2V5XSA9IGNvcHlGdW5jdGlvbih2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGlzT2JqZWN0KG9ialZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gb2JqVmFsdWUgJiYgdHlwZW9mIG9ialZhbHVlID09PSAnb2JqZWN0JyAmJiBvYmpWYWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,93 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
3
+ import { Observable } from 'rxjs';
4
+ import * as moment from 'moment';
5
+ import { DialogNestedFormComponent } from '../components/form/dialog-nested-form/dialog-nested-form.component';
6
+ import { AnnouncementService } from './announcement.service';
7
+ import { CurrentUserService } from './current-user.service';
8
+ import { WebApiService } from './web-api.service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/material/dialog";
11
+ import * as i2 from "./announcement.service";
12
+ import * as i3 from "./current-user.service";
13
+ import * as i4 from "./web-api.service";
14
+ const passwordCheckValidityMinutes = 5;
15
+ export class PasswordCheckService {
16
+ constructor(dialog, announcementService, currentUserService, webApiService) {
17
+ this.dialog = dialog;
18
+ this.announcementService = announcementService;
19
+ this.currentUserService = currentUserService;
20
+ this.webApiService = webApiService;
21
+ }
22
+ checkPassword() {
23
+ return new Observable((subscriber) => {
24
+ if (this.hasLatestPasswordCheckExpired()) {
25
+ const dialogRef = this.dialog.open(DialogNestedFormComponent, this.modalConfiguration());
26
+ dialogRef.afterClosed().subscribe(formData => {
27
+ if (!formData) {
28
+ subscriber.next(false);
29
+ subscriber.complete();
30
+ return;
31
+ }
32
+ const username = this.currentUserService.sessionData.getValue().username;
33
+ this.validatePassword(username, formData['password']).subscribe((response) => {
34
+ this.setLatestPasswordCheckTime();
35
+ subscriber.next(true);
36
+ subscriber.complete();
37
+ }, (error) => {
38
+ this.announcementService.error('Incorrect password.');
39
+ subscriber.next(false);
40
+ subscriber.complete();
41
+ });
42
+ });
43
+ }
44
+ else {
45
+ this.setLatestPasswordCheckTime();
46
+ subscriber.next(true);
47
+ subscriber.complete();
48
+ }
49
+ });
50
+ }
51
+ getLatestPasswordCheckTime() {
52
+ return this.currentUserService.getLatestPasswordCheckTime();
53
+ }
54
+ setLatestPasswordCheckTime() {
55
+ this.currentUserService.setLatestPasswordCheckTime();
56
+ }
57
+ hasLatestPasswordCheckExpired() {
58
+ const latestPasswordCheckTime = this.getLatestPasswordCheckTime();
59
+ if (!latestPasswordCheckTime)
60
+ return true;
61
+ let now = moment();
62
+ let latestCheckMoment = moment(latestPasswordCheckTime, 'YYYY-MM-DD HH:mm:ss');
63
+ return (now.diff(latestCheckMoment, 'minutes') >= passwordCheckValidityMinutes);
64
+ }
65
+ validatePassword(username, password) {
66
+ const params = { username: username, password: password };
67
+ return this.webApiService.get('auth/password', params);
68
+ }
69
+ modalConfiguration() {
70
+ const dialogConfig = new MatDialogConfig();
71
+ dialogConfig.data = {
72
+ title: 'Enter Password',
73
+ section: {
74
+ singleColumn: true,
75
+ elements: [
76
+ { label: 'Password', attr: 'password', required: true, type: 'password' }
77
+ ]
78
+ },
79
+ saveButtonText: 'Submit'
80
+ };
81
+ dialogConfig.width = '40%';
82
+ return dialogConfig;
83
+ }
84
+ }
85
+ PasswordCheckService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PasswordCheckService, deps: [{ token: i1.MatDialog }, { token: i2.AnnouncementService }, { token: i3.CurrentUserService }, { token: i4.WebApiService }], target: i0.ɵɵFactoryTarget.Injectable });
86
+ PasswordCheckService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PasswordCheckService, providedIn: 'root' });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PasswordCheckService, decorators: [{
88
+ type: Injectable,
89
+ args: [{
90
+ providedIn: 'root'
91
+ }]
92
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.AnnouncementService }, { type: i3.CurrentUserService }, { type: i4.WebApiService }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtY2hlY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL3NlcnZpY2VzL3Bhc3N3b3JkLWNoZWNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDL0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7QUFFbEQsTUFBTSw0QkFBNEIsR0FBVyxDQUFDLENBQUM7QUFLL0MsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFvQixNQUFpQixFQUFVLG1CQUF3QyxFQUNuRSxrQkFBc0MsRUFBVSxhQUE0QjtRQUQ1RSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUNuRSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBSSxDQUFDO0lBRTlGLGFBQWE7UUFDbEIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25DLElBQUksSUFBSSxDQUFDLDZCQUE2QixFQUFFLEVBQUU7Z0JBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMs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S0FBSyxHQUFHLEtBQUssQ0FBQztRQUUzQixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOztrSEE3RVUsb0JBQW9CO3NIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBEaWFsb2dOZXN0ZWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9mb3JtL2RpYWxvZy1uZXN0ZWQtZm9ybS9kaWFsb2ctbmVzdGVkLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFubm91bmNlbWVudFNlcnZpY2UgfSBmcm9tICcuL2Fubm91bmNlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbnRVc2VyU2VydmljZSB9IGZyb20gJy4vY3VycmVudC11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQXBpU2VydmljZSB9IGZyb20gJy4vd2ViLWFwaS5zZXJ2aWNlJztcblxuY29uc3QgcGFzc3dvcmRDaGVja1ZhbGlkaXR5TWludXRlczogbnVtYmVyID0gNTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRDaGVja1NlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgYW5ub3VuY2VtZW50U2VydmljZTogQW5ub3VuY2VtZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjdXJyZW50VXNlclNlcnZpY2U6IEN1cnJlbnRVc2VyU2VydmljZSwgcHJpdmF0ZSB3ZWJBcGlTZXJ2aWNlOiBXZWJBcGlTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgY2hlY2tQYXNzd29yZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc0xhdGVzdFBhc3N3b3JkQ2hlY2tFeHBpcmVkKCkpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEaWFsb2dOZXN0ZWRGb3JtQ29tcG9uZW50LCB0aGlzLm1vZGFsQ29uZmlndXJhdGlvbigpKTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoZm9ybURhdGEgPT4ge1xuICAgICAgICAgIGlmICghZm9ybURhdGEpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdXNlcm5hbWUgPSB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5zZXNzaW9uRGF0YS5nZXRWYWx1ZSgpLnVzZXJuYW1lO1xuICAgICAgICAgIHRoaXMudmFsaWRhdGVQYXNzd29yZCh1c2VybmFtZSwgZm9ybURhdGFbJ3Bhc3N3b3JkJ10pLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0TGF0ZXN0UGFzc3dvcmRDaGVja1RpbWUoKTtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hbm5vdW5jZW1lbnRTZXJ2aWNlLmVycm9yKCdJbmNvcnJlY3QgcGFzc3dvcmQuJyk7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnNldExhdGVzdFBhc3N3b3JkQ2hlY2tUaW1lKCk7XG4gICAgICAgIHN1YnNjcmliZXIubmV4dCh0cnVlKTtcbiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYXRlc3RQYXNzd29yZENoZWNrVGltZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5nZXRMYXRlc3RQYXNzd29yZENoZWNrVGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMYXRlc3RQYXNzd29yZENoZWNrVGltZSgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5zZXRMYXRlc3RQYXNzd29yZENoZWNrVGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNMYXRlc3RQYXNzd29yZENoZWNrRXhwaXJlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsYXRlc3RQYXNzd29yZENoZWNrVGltZSA9IHRoaXMuZ2V0TGF0ZXN0UGFzc3dvcmRDaGVja1RpbWUoKTtcbiAgICBpZiAoIWxhdGVzdFBhc3N3b3JkQ2hlY2tUaW1lKSByZXR1cm4gdHJ1ZTtcblxuICAgIGxldCBub3cgPSBtb21lbnQoKTtcbiAgICBsZXQgbGF0ZXN0Q2hlY2tNb21lbnQgPSBtb21lbnQobGF0ZXN0UGFzc3dvcmRDaGVja1RpbWUsICdZWVlZLU1NLUREIEhIOm1tOnNzJyk7XG4gICAgcmV0dXJuIChub3cuZGlmZihsYXRlc3RDaGVja01vbWVudCwgJ21pbnV0ZXMnKSA+PSBwYXNzd29yZENoZWNrVmFsaWRpdHlNaW51dGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVQYXNzd29yZCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IHVzZXJuYW1lOiB1c2VybmFtZSwgcGFzc3dvcmQ6IHBhc3N3b3JkIH07XG4gICAgcmV0dXJuIHRoaXMud2ViQXBpU2VydmljZS5nZXQoJ2F1dGgvcGFzc3dvcmQnLCBwYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBtb2RhbENvbmZpZ3VyYXRpb24oKTogTWF0RGlhbG9nQ29uZmlnIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7XG4gICAgICB0aXRsZTogJ0VudGVyIFBhc3N3b3JkJyxcbiAgICAgIHNlY3Rpb246IHtcbiAgICAgICAgc2luZ2xlQ29sdW1uOiB0cnVlLFxuICAgICAgICBlbGVtZW50czogW1xuICAgICAgICAgIHsgbGFiZWw6ICdQYXNzd29yZCcsIGF0dHI6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiAncGFzc3dvcmQnIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHNhdmVCdXR0b25UZXh0OiAnU3VibWl0J1xuICAgIH07XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzQwJSc7XG5cbiAgICByZXR1cm4gZGlhbG9nQ29uZmlnO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
3
+ import { Subject, BehaviorSubject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/cdk/layout";
7
+ export class ScreenSizeService {
8
+ constructor(breakpointObserver) {
9
+ this.breakpointObserver = breakpointObserver;
10
+ this.screenSizes = {
11
+ xs: Breakpoints.XSmall,
12
+ sm: Breakpoints.Small,
13
+ md: Breakpoints.Medium,
14
+ lg: Breakpoints.Large,
15
+ xl: Breakpoints.XLarge,
16
+ };
17
+ this.screenSize = new BehaviorSubject({});
18
+ this.destroyed = new Subject();
19
+ this.breakpointObserver.observe(Object.values(this.screenSizes)).pipe(takeUntil(this.destroyed)).subscribe((breakpointState) => {
20
+ let currentScreenSize = 'default';
21
+ for (const [key, value] of Object.entries(this.screenSizes)) {
22
+ if (breakpointState.breakpoints[value])
23
+ currentScreenSize = key;
24
+ }
25
+ this.screenSize.next(currentScreenSize);
26
+ });
27
+ }
28
+ ngOnDestroy() {
29
+ this.destroyed.next();
30
+ this.destroyed.complete();
31
+ }
32
+ }
33
+ ScreenSizeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScreenSizeService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
34
+ ScreenSizeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScreenSizeService, providedIn: 'root' });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScreenSizeService, decorators: [{
36
+ type: Injectable,
37
+ args: [{
38
+ providedIn: 'root'
39
+ }]
40
+ }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXNpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL3NlcnZpY2VzL3NjcmVlbi1zaXplLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFhNUIsWUFBb0Isa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFYbEQsZ0JBQVcsR0FBUTtZQUN6QixFQUFFLEVBQUUsV0FBVyxDQUFDLE1BQU07WUFDdEIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxLQUFLO1lBQ3JCLEVBQUUsRUFBRSxXQUFXLENBQUMsTUFBTTtZQUN0QixFQUFFLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDckIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxNQUFNO1NBQ3ZCLENBQUM7UUFFSyxlQUFVLEdBQXlCLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNoQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZ0MsRUFBRSxFQUFFO1lBQy9FLElBQUksaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDM0QsSUFBSSxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQWUsQ0FBQztvQkFBRSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7YUFDM0U7WUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7K0dBN0JVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cywgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2NyZWVuU2l6ZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc2NyZWVuU2l6ZXM6IGFueSA9IHtcbiAgICB4czogQnJlYWtwb2ludHMuWFNtYWxsLFxuICAgIHNtOiBCcmVha3BvaW50cy5TbWFsbCxcbiAgICBtZDogQnJlYWtwb2ludHMuTWVkaXVtLFxuICAgIGxnOiBCcmVha3BvaW50cy5MYXJnZSxcbiAgICB4bDogQnJlYWtwb2ludHMuWExhcmdlLFxuICB9O1xuXG4gIHB1YmxpYyBzY3JlZW5TaXplOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7XG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5zY3JlZW5TaXplcylcbiAgICApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKChicmVha3BvaW50U3RhdGU6IEJyZWFrcG9pbnRTdGF0ZSkgPT4ge1xuICAgICAgbGV0IGN1cnJlbnRTY3JlZW5TaXplID0gJ2RlZmF1bHQnO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5zY3JlZW5TaXplcykpIHtcbiAgICAgICAgaWYgKGJyZWFrcG9pbnRTdGF0ZS5icmVha3BvaW50c1t2YWx1ZSBhcyBzdHJpbmddKSBjdXJyZW50U2NyZWVuU2l6ZSA9IGtleTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zY3JlZW5TaXplLm5leHQoY3VycmVudFNjcmVlblNpemUpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,99 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { DirectUpload } from "@rails/activestorage";
4
+ import { AngularTokenService } from 'angular-token';
5
+ import { map } from 'rxjs/operators';
6
+ import { ENVIRONMENT } from '../tokens/environment.token';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "angular-token";
10
+ export class WebApiService {
11
+ constructor(environment, http, angularTokenService) {
12
+ this.environment = environment;
13
+ this.http = http;
14
+ this.angularTokenService = angularTokenService;
15
+ this.apiUrl = this.environment.apiUrl;
16
+ }
17
+ get(path, params = {}, headers = {}) {
18
+ const endpoint = this.absoluteUrl(path);
19
+ return this.http.get(endpoint, { params: params, headers: this.prepareHeaders(headers) });
20
+ }
21
+ create(path, params = {}, headers = {}) {
22
+ const endpoint = this.absoluteUrl(path);
23
+ return this.http.post(endpoint, params, { headers: this.prepareHeaders(headers) });
24
+ }
25
+ update(path, params = {}, headers = {}) {
26
+ const endpoint = this.absoluteUrl(path);
27
+ return this.http.put(endpoint, params, { headers: this.prepareHeaders(headers) });
28
+ }
29
+ destroy(path, params = {}, headers = {}) {
30
+ const endpoint = this.absoluteUrl(path);
31
+ return this.http.delete(endpoint, { params: params, headers: this.prepareHeaders(headers) });
32
+ }
33
+ getBlob(path, params = {}, headers = {}) {
34
+ const endpoint = this.absoluteUrl(path);
35
+ return this.http.get(endpoint, { params: params, headers: this.prepareHeaders(headers), responseType: 'blob' });
36
+ }
37
+ download(path, filename, params = {}, headers = {}) {
38
+ return this.getBlob(path, params, headers).pipe(map(res => {
39
+ const a = document.createElement('a');
40
+ a.href = URL.createObjectURL(res);
41
+ a.download = filename;
42
+ a.click();
43
+ }));
44
+ }
45
+ upload(file, onSuccess, onFailure) {
46
+ const endpoint = this.absoluteUrl('rails/active_storage/direct_uploads');
47
+ const upload = new DirectUpload(file, endpoint, {
48
+ directUploadWillCreateBlobWithXHR: (xhr) => {
49
+ // Add credentials to upload request
50
+ let currentAuthData = this.angularTokenService.currentAuthData;
51
+ if (currentAuthData) {
52
+ xhr.setRequestHeader('access-token', currentAuthData.accessToken);
53
+ xhr.setRequestHeader('token-type', currentAuthData.tokenType);
54
+ xhr.setRequestHeader('client', currentAuthData.client);
55
+ xhr.setRequestHeader('expiry', currentAuthData.expiry);
56
+ xhr.setRequestHeader('uid', currentAuthData.uid);
57
+ xhr.addEventListener('loadend', (event) => {
58
+ localStorage.setItem('accessToken', xhr.getResponseHeader('access-token'));
59
+ localStorage.setItem('client', xhr.getResponseHeader('client'));
60
+ localStorage.setItem('expiry', xhr.getResponseHeader('expiry'));
61
+ localStorage.setItem('tokenType', xhr.getResponseHeader('token-type'));
62
+ localStorage.setItem('uid', xhr.getResponseHeader('uid'));
63
+ this.angularTokenService.getAuthDataFromStorage();
64
+ });
65
+ }
66
+ }
67
+ });
68
+ upload.create((error, res) => {
69
+ if (error) {
70
+ if (onFailure)
71
+ onFailure(error);
72
+ }
73
+ else {
74
+ if (onSuccess)
75
+ onSuccess(res);
76
+ }
77
+ });
78
+ }
79
+ absoluteUrl(url) {
80
+ if (url.startsWith('http'))
81
+ return url;
82
+ return `${this.apiUrl}/${url}`;
83
+ }
84
+ prepareHeaders(headers = {}) {
85
+ return headers;
86
+ }
87
+ }
88
+ WebApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebApiService, deps: [{ token: ENVIRONMENT }, { token: i1.HttpClient }, { token: i2.AngularTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
89
+ WebApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebApiService, providedIn: 'root' });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebApiService, decorators: [{
91
+ type: Injectable,
92
+ args: [{
93
+ providedIn: 'root'
94
+ }]
95
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
96
+ type: Inject,
97
+ args: [ENVIRONMENT]
98
+ }] }, { type: i1.HttpClient }, { type: i2.AngularTokenService }]; } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvc2VydmljZXMvd2ViLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFLMUQsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBeUMsV0FBZ0IsRUFBWSxJQUFnQixFQUMvRCxtQkFBd0M7UUFEckIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQy9ELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRU0sR0FBRyxDQUFDLElBQVksRUFBRSxTQUFjLEVBQUUsRUFBRSxVQUFlLEVBQUU7UUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxNQUFN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QUM7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsR0FBVztRQUM1QixJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFFdkMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxVQUFlLEVBQUU7UUFDeEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7MkdBeEZVLGFBQWEsa0JBSUosV0FBVzsrR0FKcEIsYUFBYSxjQUZaLE1BQU07NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtjLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERpcmVjdFVwbG9hZCB9IGZyb20gXCJAcmFpbHMvYWN0aXZlc3RvcmFnZVwiO1xuaW1wb3J0IHsgQW5ndWxhclRva2VuU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItdG9rZW4nO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi90b2tlbnMvZW52aXJvbm1lbnQudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXZWJBcGlTZXJ2aWNlIHtcblxuICBwcml2YXRlIGFwaVVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSwgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBhbmd1bGFyVG9rZW5TZXJ2aWNlOiBBbmd1bGFyVG9rZW5TZXJ2aWNlKSB7XG4gICAgdGhpcy5hcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwaVVybDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQocGF0aDogc3RyaW5nLCBwYXJhbXM6IGFueSA9IHt9LCBoZWFkZXJzOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5hYnNvbHV0ZVVybChwYXRoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChlbmRwb2ludCwgeyBwYXJhbXM6IHBhcmFtcywgaGVhZGVyczogdGhpcy5wcmVwYXJlSGVhZGVycyhoZWFkZXJzKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGUocGF0aDogc3RyaW5nLCBwYXJhbXM6IGFueSA9IHt9LCBoZWFkZXJzOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5hYnNvbHV0ZVVybChwYXRoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoZW5kcG9pbnQsIHBhcmFtcywgeyBoZWFkZXJzOiB0aGlzLnByZXBhcmVIZWFkZXJzKGhlYWRlcnMpIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZShwYXRoOiBzdHJpbmcsIHBhcmFtczogYW55ID0ge30sIGhlYWRlcnM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmFic29sdXRlVXJsKHBhdGgpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGVuZHBvaW50LCBwYXJhbXMsIHsgaGVhZGVyczogdGhpcy5wcmVwYXJlSGVhZGVycyhoZWFkZXJzKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KHBhdGg6IHN0cmluZywgcGFyYW1zOiBhbnkgPSB7fSwgaGVhZGVyczogYW55ID0ge30pIHtcbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuYWJzb2x1dGVVcmwocGF0aCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoZW5kcG9pbnQsIHsgcGFyYW1zOiBwYXJhbXMsIGhlYWRlcnM6IHRoaXMucHJlcGFyZUhlYWRlcnMoaGVhZGVycykgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QmxvYihwYXRoOiBzdHJpbmcsIHBhcmFtczogYW55ID0ge30sIGhlYWRlcnM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmFic29sdXRlVXJsKHBhdGgpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGVuZHBvaW50LCB7IHBhcmFtczogcGFyYW1zLCBoZWFkZXJzOiB0aGlzLnByZXBhcmVIZWFkZXJzKGhlYWRlcnMpLCByZXNwb25zZVR5cGU6ICdibG9iJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZChwYXRoOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcsIHBhcmFtczogYW55ID0ge30sIGhlYWRlcnM6IGFueSA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QmxvYihwYXRoLCBwYXJhbXMsIGhlYWRlcnMpLnBpcGUoXG4gICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYS5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXMpO1xuICAgICAgICBhLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgICAgIGEuY2xpY2soKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGxvYWQoZmlsZTogRmlsZSwgb25TdWNjZXNzOiAocmVzOiBhbnkpID0+IHZvaWQsIG9uRmFpbHVyZTogKGVycm9yOiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuYWJzb2x1dGVVcmwoJ3JhaWxzL2FjdGl2ZV9zdG9yYWdlL2RpcmVjdF91cGxvYWRzJyk7XG4gICAgY29uc3QgdXBsb2FkID0gbmV3IERpcmVjdFVwbG9hZChmaWxlLCBlbmRwb2ludCwge1xuICAgICAgZGlyZWN0VXBsb2FkV2lsbENyZWF0ZUJsb2JXaXRoWEhSOiAoeGhyOiBhbnkpID0+IHtcbiAgICAgICAgLy8gQWRkIGNyZWRlbnRpYWxzIHRvIHVwbG9hZCByZXF1ZXN0XG4gICAgICAgIGxldCBjdXJyZW50QXV0aERhdGEgPSB0aGlzLmFuZ3VsYXJUb2tlblNlcnZpY2UuY3VycmVudEF1dGhEYXRhO1xuICAgICAgICBpZiAoY3VycmVudEF1dGhEYXRhKSB7XG4gICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ2FjY2Vzcy10b2tlbicsIGN1cnJlbnRBdXRoRGF0YS5hY2Nlc3NUb2tlbik7XG4gICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ3Rva2VuLXR5cGUnLCBjdXJyZW50QXV0aERhdGEudG9rZW5UeXBlKTtcbiAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignY2xpZW50JywgY3VycmVudEF1dGhEYXRhLmNsaWVudCk7XG4gICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ2V4cGlyeScsIGN1cnJlbnRBdXRoRGF0YS5leHBpcnkpO1xuICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCd1aWQnLCBjdXJyZW50QXV0aERhdGEudWlkKTtcblxuICAgICAgICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCdsb2FkZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdhY2Nlc3NUb2tlbicsIHhoci5nZXRSZXNwb25zZUhlYWRlcignYWNjZXNzLXRva2VuJykpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NsaWVudCcsIHhoci5nZXRSZXNwb25zZUhlYWRlcignY2xpZW50JykpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2V4cGlyeScsIHhoci5nZXRSZXNwb25zZUhlYWRlcignZXhwaXJ5JykpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rva2VuVHlwZScsIHhoci5nZXRSZXNwb25zZUhlYWRlcigndG9rZW4tdHlwZScpKTtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1aWQnLCB4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ3VpZCcpKTtcblxuICAgICAgICAgICAgdGhpcy5hbmd1bGFyVG9rZW5TZXJ2aWNlLmdldEF1dGhEYXRhRnJvbVN0b3JhZ2UoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB1cGxvYWQuY3JlYXRlKChlcnJvcjogYW55LCByZXM6IGFueSkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGlmIChvbkZhaWx1cmUpIG9uRmFpbHVyZShlcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAob25TdWNjZXNzKSBvblN1Y2Nlc3MocmVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhYnNvbHV0ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHVybC5zdGFydHNXaXRoKCdodHRwJykpIHJldHVybiB1cmw7XG5cbiAgICByZXR1cm4gYCR7dGhpcy5hcGlVcmx9LyR7dXJsfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJlcGFyZUhlYWRlcnMoaGVhZGVyczogYW55ID0ge30pIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import * as ActionCable from "@rails/actioncable";
3
+ import { AngularTokenService } from 'angular-token';
4
+ import { ENVIRONMENT } from '../tokens/environment.token';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "angular-token";
7
+ export class WebsocketService {
8
+ constructor(environment, angularTokenService) {
9
+ this.environment = environment;
10
+ this.angularTokenService = angularTokenService;
11
+ this.wsUrl = this.environment.wsUrl;
12
+ }
13
+ connect() {
14
+ let currentAuthData = this.angularTokenService.currentAuthData;
15
+ let consumer = ActionCable.createConsumer(`${this.wsUrl}/?token=${currentAuthData.accessToken}&client=${currentAuthData.client}&uid=${currentAuthData.uid}`);
16
+ return {
17
+ subscribe: (channelName, callbacks = {}) => {
18
+ return consumer.subscriptions.create(channelName, {
19
+ // Called when the subscription is ready for use on the server
20
+ connected: () => {
21
+ if (callbacks.connected)
22
+ callbacks.connected();
23
+ },
24
+ // Called when the WebSocket connection is closed
25
+ disconnected: () => {
26
+ if (callbacks.disconnected)
27
+ callbacks.disconnected();
28
+ },
29
+ // Called when the subscription is rejected by the server
30
+ rejected: () => {
31
+ if (callbacks.rejected)
32
+ callbacks.rejected();
33
+ },
34
+ // Called when a message is received
35
+ received: (data) => {
36
+ if (callbacks.received)
37
+ callbacks.received(data);
38
+ }
39
+ });
40
+ },
41
+ disconnect() {
42
+ consumer.disconnect();
43
+ }
44
+ };
45
+ }
46
+ }
47
+ WebsocketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebsocketService, deps: [{ token: ENVIRONMENT }, { token: i1.AngularTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
48
+ WebsocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebsocketService, providedIn: 'root' });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebsocketService, decorators: [{
50
+ type: Injectable,
51
+ args: [{
52
+ providedIn: 'root'
53
+ }]
54
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
55
+ type: Inject,
56
+ args: [ENVIRONMENT]
57
+ }] }, { type: i1.AngularTokenService }]; } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEtBQUssV0FBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUsxRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQXlDLFdBQWdCLEVBQVUsbUJBQXdDO1FBQWxFLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN6RyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztRQUUvRCxJQUFJLFFBQVEsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssV0FBVyxlQUFlLENBQUMsV0FBVyxXQUFXLGVBQWUsQ0FBQyxNQUFNLFFBQVEsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0osT0FBTztZQUNMLFNBQVMsRUFBRSxDQUFDLFdBQW1CLEVBQUUsWUFBaUIsRUFBRSxFQUFFLEVBQUU7Z0JBQ3RELE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO29CQUVoRCw4REFBOEQ7b0JBQzlELFNBQVMsRUFBRSxHQUFHLEVBQUU7d0JBQ2QsSUFBSSxTQUFTLENBQUMsU0FBUzs0QkFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2pELENBQUM7b0JBRUQsaURBQWlEO29CQUNqRCxZQUFZLEVBQUUsR0FBRyxFQUFFO3dCQUNqQixJQUFJLFNBQVMsQ0FBQyxZQUFZOzRCQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDdkQsQ0FBQztvQkFFRCx5REFBeUQ7b0JBQ3pELFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ2IsSUFBSSxTQUFTLENBQUMsUUFBUTs0QkFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQy9DLENBQUM7b0JBRUQsb0NBQW9DO29CQUNwQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDakIsSUFBSSxTQUFTLENBQUMsUUFBUTs0QkFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNuRCxDQUFDO2lCQUVGLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxVQUFVO2dCQUNSLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzhHQTNDVSxnQkFBZ0Isa0JBSVAsV0FBVztrSEFKcEIsZ0JBQWdCLGNBRmYsTUFBTTs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLYyxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIEFjdGlvbkNhYmxlIGZyb20gXCJAcmFpbHMvYWN0aW9uY2FibGVcIjtcbmltcG9ydCB7IEFuZ3VsYXJUb2tlblNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLXRva2VuJztcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnLi4vdG9rZW5zL2Vudmlyb25tZW50LnRva2VuJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2Vic29ja2V0U2VydmljZSB7XG5cbiAgcHJpdmF0ZSB3c1VybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSwgcHJpdmF0ZSBhbmd1bGFyVG9rZW5TZXJ2aWNlOiBBbmd1bGFyVG9rZW5TZXJ2aWNlKSB7XG4gICAgdGhpcy53c1VybCA9IHRoaXMuZW52aXJvbm1lbnQud3NVcmw7XG4gIH1cblxuICBjb25uZWN0KCkge1xuICAgIGxldCBjdXJyZW50QXV0aERhdGEgPSB0aGlzLmFuZ3VsYXJUb2tlblNlcnZpY2UuY3VycmVudEF1dGhEYXRhO1xuXG4gICAgbGV0IGNvbnN1bWVyID0gQWN0aW9uQ2FibGUuY3JlYXRlQ29uc3VtZXIoYCR7dGhpcy53c1VybH0vP3Rva2VuPSR7Y3VycmVudEF1dGhEYXRhLmFjY2Vzc1Rva2VufSZjbGllbnQ9JHtjdXJyZW50QXV0aERhdGEuY2xpZW50fSZ1aWQ9JHtjdXJyZW50QXV0aERhdGEudWlkfWApO1xuICAgIHJldHVybiB7XG4gICAgICBzdWJzY3JpYmU6IChjaGFubmVsTmFtZTogc3RyaW5nLCBjYWxsYmFja3M6IGFueSA9IHt9KSA9PiB7XG4gICAgICAgIHJldHVybiBjb25zdW1lci5zdWJzY3JpcHRpb25zLmNyZWF0ZShjaGFubmVsTmFtZSwge1xuXG4gICAgICAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBpcyByZWFkeSBmb3IgdXNlIG9uIHRoZSBzZXJ2ZXJcbiAgICAgICAgICBjb25uZWN0ZWQ6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjYWxsYmFja3MuY29ubmVjdGVkKSBjYWxsYmFja3MuY29ubmVjdGVkKCk7XG4gICAgICAgICAgfSxcblxuICAgICAgICAgIC8vIENhbGxlZCB3aGVuIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBjbG9zZWRcbiAgICAgICAgICBkaXNjb25uZWN0ZWQ6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjYWxsYmFja3MuZGlzY29ubmVjdGVkKSBjYWxsYmFja3MuZGlzY29ubmVjdGVkKCk7XG4gICAgICAgICAgfSxcblxuICAgICAgICAgIC8vIENhbGxlZCB3aGVuIHRoZSBzdWJzY3JpcHRpb24gaXMgcmVqZWN0ZWQgYnkgdGhlIHNlcnZlclxuICAgICAgICAgIHJlamVjdGVkOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2tzLnJlamVjdGVkKSBjYWxsYmFja3MucmVqZWN0ZWQoKTtcbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgLy8gQ2FsbGVkIHdoZW4gYSBtZXNzYWdlIGlzIHJlY2VpdmVkXG4gICAgICAgICAgcmVjZWl2ZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2tzLnJlY2VpdmVkKSBjYWxsYmFja3MucmVjZWl2ZWQoZGF0YSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgICAgfSxcblxuICAgICAgZGlzY29ubmVjdCgpIHtcbiAgICAgICAgY29uc3VtZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const ENVIRONMENT = new InjectionToken('environment');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi90b2tlbnMvZW52aXJvbm1lbnQudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQU0sYUFBYSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRU5WSVJPTk1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignZW52aXJvbm1lbnQnKTtcbiJdfQ==