ng-kinintel 0.0.389 → 0.0.395

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 (497) hide show
  1. package/esm2020/lib/components/alert-groups/alert-groups.component.mjs +76 -0
  2. package/esm2020/lib/components/alert-groups/edit-alert-group/edit-alert-group.component.mjs +83 -0
  3. package/esm2020/lib/components/dashboard-editor/configure-item/configure-item.component.mjs +853 -0
  4. package/esm2020/lib/components/dashboard-editor/configure-item/edit-dashboard-alert/edit-dashboard-alert.component.mjs +56 -0
  5. package/esm2020/lib/components/dashboard-editor/configure-item/html-documentation/html-documentation.component.mjs +114 -0
  6. package/esm2020/lib/components/dashboard-editor/configure-item/table-cell-formatter/table-cell-formatter.component.mjs +163 -0
  7. package/esm2020/lib/components/dashboard-editor/dashboard-editor.component.mjs +580 -0
  8. package/esm2020/lib/components/dashboard-editor/dashboard-parameter/dashboard-parameter.component.mjs +15 -0
  9. package/esm2020/lib/components/dashboard-editor/dashboard-settings/dashboard-settings.component.mjs +50 -0
  10. package/esm2020/lib/components/dashboard-editor/item-component/item-component.component.mjs +1226 -0
  11. package/esm2020/lib/components/dashboard-editor/source-selector-dialog/source-selector-dialog.component.mjs +111 -0
  12. package/esm2020/lib/components/dashboards/dashboards.component.mjs +163 -0
  13. package/esm2020/lib/components/dashboards/view-dashboard/view-dashboard.component.mjs +429 -0
  14. package/esm2020/lib/components/data-explorer/change-source-warning/change-source-warning.component.mjs +20 -0
  15. package/esm2020/lib/components/data-explorer/data-explorer.component.mjs +243 -0
  16. package/esm2020/lib/components/data-explorer/export-data/export-data.component.mjs +62 -0
  17. package/esm2020/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.mjs +70 -0
  18. package/esm2020/lib/components/data-explorer/snapshot-profile-dialog/snapshot-profile-dialog.component.mjs +190 -0
  19. package/esm2020/lib/components/data-picker/data-picker.component.mjs +79 -0
  20. package/esm2020/lib/components/data-search/data-search.component.mjs +11 -0
  21. package/esm2020/lib/components/data-sharing-invite/data-sharing-invite.component.mjs +52 -0
  22. package/esm2020/lib/components/dataset/create-dataset/create-dataset.component.mjs +47 -0
  23. package/esm2020/lib/components/dataset/dataset-editor/available-columns/available-columns.component.mjs +28 -0
  24. package/esm2020/lib/components/dataset/dataset-editor/dataset-add-join/dataset-add-join.component.mjs +344 -0
  25. package/esm2020/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-editor/dataset-column-editor.component.mjs +80 -0
  26. package/esm2020/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-settings.component.mjs +54 -0
  27. package/esm2020/lib/components/dataset/dataset-editor/dataset-create-formula/dataset-create-formula.component.mjs +67 -0
  28. package/esm2020/lib/components/dataset/dataset-editor/dataset-editor.component.mjs +1134 -0
  29. package/esm2020/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter/dataset-filter.component.mjs +201 -0
  30. package/esm2020/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-inclusion/dataset-filter-inclusion.component.mjs +25 -0
  31. package/esm2020/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-junction/dataset-filter-junction.component.mjs +72 -0
  32. package/esm2020/lib/components/dataset/dataset-editor/dataset-filters/dataset-filters.component.mjs +62 -0
  33. package/esm2020/lib/components/dataset/dataset-editor/dataset-name-dialog/dataset-name-dialog.component.mjs +41 -0
  34. package/esm2020/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-add-parameter/dataset-add-parameter.component.mjs +78 -0
  35. package/esm2020/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-type/dataset-parameter-type.component.mjs +39 -0
  36. package/esm2020/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-values.component.mjs +75 -0
  37. package/esm2020/lib/components/dataset/dataset-editor/dataset-summarise/dataset-summarise.component.mjs +107 -0
  38. package/esm2020/lib/components/dataset/dataset-editor/move-transformation-confirmation/move-transformation-confirmation.component.mjs +20 -0
  39. package/esm2020/lib/components/dataset/dataset-editor/remove-transformation-warning/remove-transformation-warning.component.mjs +20 -0
  40. package/esm2020/lib/components/dataset/dataset-editor/save-as-query/save-as-query.component.mjs +58 -0
  41. package/esm2020/lib/components/dataset/dataset-editor/share-query/share-query.component.mjs +110 -0
  42. package/esm2020/lib/components/dataset/dataset-editor/upstream-changes-confirmation/upstream-changes-confirmation.component.mjs +20 -0
  43. package/esm2020/lib/components/dataset/dataset.component.mjs +294 -0
  44. package/esm2020/lib/components/datasource/create-datasource/advanced-settings/advanced-settings.component.mjs +130 -0
  45. package/esm2020/lib/components/datasource/create-datasource/api-access/api-access.component.mjs +132 -0
  46. package/esm2020/lib/components/datasource/create-datasource/create-datasource.component.mjs +728 -0
  47. package/esm2020/lib/components/datasource/create-datasource/import-data/import-data.component.mjs +146 -0
  48. package/esm2020/lib/components/datasource/create-datasource/import-data/import-wizard/import-wizard.component.mjs +165 -0
  49. package/esm2020/lib/components/datasource/create-datasource/tabular-datasource/tabular-datasource.component.mjs +145 -0
  50. package/esm2020/lib/components/datasource/datasource.component.mjs +162 -0
  51. package/esm2020/lib/components/datasource/document-datasource/document-datasource.component.mjs +297 -0
  52. package/esm2020/lib/components/export-project/export-project.component.mjs +29 -0
  53. package/esm2020/lib/components/feeds/feed/feed.component.mjs +92 -0
  54. package/esm2020/lib/components/feeds/feeds.component.mjs +145 -0
  55. package/esm2020/lib/components/job-tasks/job-tasks.component.mjs +25 -0
  56. package/esm2020/lib/components/marketplace/marketplace.component.mjs +65 -0
  57. package/esm2020/lib/components/metadata/metadata.component.mjs +65 -0
  58. package/esm2020/lib/components/notification-groups/edit-notification-group/edit-notification-group.component.mjs +113 -0
  59. package/esm2020/lib/components/notification-groups/notification-groups.component.mjs +86 -0
  60. package/esm2020/lib/components/project-picker/project-picker.component.mjs +118 -0
  61. package/esm2020/lib/components/project-settings/project-link-selection/project-link-selection.component.mjs +104 -0
  62. package/esm2020/lib/components/project-settings/project-settings.component.mjs +155 -0
  63. package/esm2020/lib/components/query-caching/edit-query-cache/edit-query-cache.component.mjs +51 -0
  64. package/esm2020/lib/components/query-caching/query-cache-view/query-cache-view.component.mjs +121 -0
  65. package/esm2020/lib/components/query-caching/query-caching.component.mjs +162 -0
  66. package/esm2020/lib/components/shared-with-me/feed-api-modal/feed-api-modal.component.mjs +45 -0
  67. package/esm2020/lib/components/shared-with-me/shared-with-me.component.mjs +170 -0
  68. package/esm2020/lib/components/snapshots/snapshots.component.mjs +244 -0
  69. package/esm2020/lib/components/tag-picker/tag-picker.component.mjs +74 -0
  70. package/esm2020/lib/components/task-time-periods/task-time-periods.component.mjs +55 -0
  71. package/esm2020/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.mjs +40 -0
  72. package/esm2020/lib/guards/dashboard-changes.guard.mjs +22 -0
  73. package/esm2020/lib/kinintel-config.mjs +3 -0
  74. package/esm2020/lib/ng-kinintel.module.mjs +437 -0
  75. package/esm2020/lib/objects/action-event.mjs +16 -0
  76. package/esm2020/lib/services/alert.service.mjs +52 -0
  77. package/esm2020/lib/services/dashboard.service.mjs +75 -0
  78. package/esm2020/lib/services/data-processor.service.mjs +56 -0
  79. package/esm2020/lib/services/data-search.service.mjs +36 -0
  80. package/esm2020/lib/services/dataset.service.mjs +187 -0
  81. package/esm2020/lib/services/datasource.service.mjs +93 -0
  82. package/esm2020/lib/services/external.service.mjs +33 -0
  83. package/esm2020/lib/services/feed.service.mjs +50 -0
  84. package/esm2020/lib/services/notification.service.mjs +41 -0
  85. package/esm2020/lib/services/project.service.mjs +130 -0
  86. package/esm2020/lib/services/tag.service.mjs +63 -0
  87. package/esm2020/ng-kinintel.mjs +5 -0
  88. package/esm2020/public-api.mjs +43 -0
  89. package/fesm2015/ng-kinintel.mjs +12169 -0
  90. package/fesm2015/ng-kinintel.mjs.map +1 -0
  91. package/fesm2020/ng-kinintel.mjs +11861 -0
  92. package/fesm2020/ng-kinintel.mjs.map +1 -0
  93. package/index.d.ts +5 -0
  94. package/lib/components/alert-groups/alert-groups.component.d.ts +30 -0
  95. package/lib/components/alert-groups/edit-alert-group/edit-alert-group.component.d.ts +28 -0
  96. package/lib/components/dashboard-editor/configure-item/configure-item.component.d.ts +256 -0
  97. package/lib/components/dashboard-editor/configure-item/edit-dashboard-alert/edit-dashboard-alert.component.d.ts +16 -0
  98. package/lib/components/dashboard-editor/configure-item/html-documentation/html-documentation.component.d.ts +59 -0
  99. package/lib/components/dashboard-editor/configure-item/table-cell-formatter/table-cell-formatter.component.d.ts +26 -0
  100. package/lib/components/dashboard-editor/dashboard-editor.component.d.ts +85 -0
  101. package/lib/components/dashboard-editor/dashboard-parameter/dashboard-parameter.component.d.ts +8 -0
  102. package/lib/components/dashboard-editor/dashboard-settings/dashboard-settings.component.d.ts +22 -0
  103. package/lib/components/dashboard-editor/item-component/item-component.component.d.ts +264 -0
  104. package/lib/components/dashboard-editor/source-selector-dialog/source-selector-dialog.component.d.ts +30 -0
  105. package/lib/components/dashboards/dashboards.component.d.ts +56 -0
  106. package/lib/components/dashboards/view-dashboard/view-dashboard.component.d.ts +81 -0
  107. package/lib/components/data-explorer/change-source-warning/change-source-warning.component.d.ts +11 -0
  108. package/lib/components/data-explorer/data-explorer.component.d.ts +61 -0
  109. package/lib/components/data-explorer/export-data/export-data.component.d.ts +17 -0
  110. package/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.d.ts +25 -0
  111. package/lib/components/data-explorer/snapshot-profile-dialog/snapshot-profile-dialog.component.d.ts +44 -0
  112. package/lib/components/data-picker/data-picker.component.d.ts +32 -0
  113. package/lib/components/data-search/data-search.component.d.ts +5 -0
  114. package/lib/components/data-sharing-invite/data-sharing-invite.component.d.ts +21 -0
  115. package/lib/components/dataset/create-dataset/create-dataset.component.d.ts +17 -0
  116. package/lib/components/dataset/dataset-editor/available-columns/available-columns.component.d.ts +12 -0
  117. package/lib/components/dataset/dataset-editor/dataset-add-join/dataset-add-join.component.d.ts +61 -0
  118. package/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-editor/dataset-column-editor.component.d.ts +21 -0
  119. package/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-settings.component.d.ts +20 -0
  120. package/lib/components/dataset/dataset-editor/dataset-create-formula/dataset-create-formula.component.d.ts +19 -0
  121. package/lib/components/dataset/dataset-editor/dataset-editor.component.d.ts +131 -0
  122. package/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter/dataset-filter.component.d.ts +63 -0
  123. package/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-inclusion/dataset-filter-inclusion.component.d.ts +11 -0
  124. package/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-junction/dataset-filter-junction.component.d.ts +20 -0
  125. package/lib/components/dataset/dataset-editor/dataset-filters/dataset-filters.component.d.ts +16 -0
  126. package/lib/components/dataset/dataset-editor/dataset-name-dialog/dataset-name-dialog.component.d.ts +18 -0
  127. package/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-add-parameter/dataset-add-parameter.component.d.ts +23 -0
  128. package/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-type/dataset-parameter-type.component.d.ts +13 -0
  129. package/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-values.component.d.ts +22 -0
  130. package/lib/components/dataset/dataset-editor/dataset-summarise/dataset-summarise.component.d.ts +27 -0
  131. package/lib/components/dataset/dataset-editor/move-transformation-confirmation/move-transformation-confirmation.component.d.ts +11 -0
  132. package/lib/components/dataset/dataset-editor/remove-transformation-warning/remove-transformation-warning.component.d.ts +11 -0
  133. package/lib/components/dataset/dataset-editor/save-as-query/save-as-query.component.d.ts +25 -0
  134. package/lib/components/dataset/dataset-editor/share-query/share-query.component.d.ts +41 -0
  135. package/lib/components/dataset/dataset-editor/upstream-changes-confirmation/upstream-changes-confirmation.component.d.ts +11 -0
  136. package/lib/components/dataset/dataset.component.d.ts +74 -0
  137. package/lib/components/datasource/create-datasource/advanced-settings/advanced-settings.component.d.ts +26 -0
  138. package/lib/components/datasource/create-datasource/api-access/api-access.component.d.ts +31 -0
  139. package/lib/components/datasource/create-datasource/create-datasource.component.d.ts +112 -0
  140. package/lib/components/datasource/create-datasource/import-data/import-data.component.d.ts +28 -0
  141. package/lib/components/datasource/create-datasource/import-data/import-wizard/import-wizard.component.d.ts +40 -0
  142. package/lib/components/datasource/create-datasource/tabular-datasource/tabular-datasource.component.d.ts +34 -0
  143. package/lib/components/datasource/datasource.component.d.ts +46 -0
  144. package/lib/components/datasource/document-datasource/document-datasource.component.d.ts +64 -0
  145. package/lib/components/export-project/export-project.component.d.ts +9 -0
  146. package/lib/components/feeds/feed/feed.component.d.ts +30 -0
  147. package/lib/components/feeds/feeds.component.d.ts +47 -0
  148. package/lib/components/job-tasks/job-tasks.component.d.ts +11 -0
  149. package/lib/components/marketplace/marketplace.component.d.ts +42 -0
  150. package/lib/components/metadata/metadata.component.d.ts +24 -0
  151. package/lib/components/notification-groups/edit-notification-group/edit-notification-group.component.d.ts +37 -0
  152. package/lib/components/notification-groups/notification-groups.component.d.ts +28 -0
  153. package/lib/components/project-picker/project-picker.component.d.ts +37 -0
  154. package/lib/components/project-settings/project-link-selection/project-link-selection.component.d.ts +32 -0
  155. package/lib/components/project-settings/project-settings.component.d.ts +40 -0
  156. package/lib/components/query-caching/edit-query-cache/edit-query-cache.component.d.ts +17 -0
  157. package/lib/components/query-caching/query-cache-view/query-cache-view.component.d.ts +35 -0
  158. package/lib/components/query-caching/query-caching.component.d.ts +38 -0
  159. package/lib/components/shared-with-me/feed-api-modal/feed-api-modal.component.d.ts +21 -0
  160. package/lib/components/shared-with-me/shared-with-me.component.d.ts +42 -0
  161. package/lib/components/snapshots/snapshots.component.d.ts +52 -0
  162. package/lib/components/tag-picker/tag-picker.component.d.ts +27 -0
  163. package/lib/components/task-time-periods/task-time-periods.component.d.ts +20 -0
  164. package/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.d.ts +17 -0
  165. package/lib/guards/dashboard-changes.guard.d.ts +11 -0
  166. package/lib/kinintel-config.d.ts +10 -0
  167. package/lib/ng-kinintel.module.d.ts +116 -0
  168. package/lib/objects/action-event.d.ts +12 -0
  169. package/lib/services/alert.service.d.ts +17 -0
  170. package/lib/services/dashboard.service.d.ts +25 -0
  171. package/lib/services/data-processor.service.d.ts +18 -0
  172. package/lib/services/data-search.service.d.ts +14 -0
  173. package/lib/services/dataset.service.d.ts +56 -0
  174. package/lib/services/datasource.service.d.ts +34 -0
  175. package/lib/services/external.service.d.ts +12 -0
  176. package/lib/services/feed.service.d.ts +19 -0
  177. package/lib/services/notification.service.d.ts +16 -0
  178. package/lib/services/project.service.d.ts +27 -0
  179. package/lib/services/tag.service.d.ts +19 -0
  180. package/package.json +23 -3
  181. package/{src/public-api.ts → public-api.d.ts} +0 -8
  182. package/karma.conf.js +0 -44
  183. package/ng-package.json +0 -7
  184. package/src/lib/components/alert-groups/alert-groups.component.html +0 -140
  185. package/src/lib/components/alert-groups/alert-groups.component.sass +0 -4
  186. package/src/lib/components/alert-groups/alert-groups.component.spec.ts +0 -25
  187. package/src/lib/components/alert-groups/alert-groups.component.ts +0 -88
  188. package/src/lib/components/alert-groups/edit-alert-group/edit-alert-group.component.html +0 -91
  189. package/src/lib/components/alert-groups/edit-alert-group/edit-alert-group.component.sass +0 -2
  190. package/src/lib/components/alert-groups/edit-alert-group/edit-alert-group.component.spec.ts +0 -25
  191. package/src/lib/components/alert-groups/edit-alert-group/edit-alert-group.component.ts +0 -80
  192. package/src/lib/components/dashboard-editor/configure-item/configure-item.component.html +0 -2006
  193. package/src/lib/components/dashboard-editor/configure-item/configure-item.component.sass +0 -106
  194. package/src/lib/components/dashboard-editor/configure-item/configure-item.component.spec.ts +0 -25
  195. package/src/lib/components/dashboard-editor/configure-item/configure-item.component.ts +0 -967
  196. package/src/lib/components/dashboard-editor/configure-item/edit-dashboard-alert/edit-dashboard-alert.component.html +0 -81
  197. package/src/lib/components/dashboard-editor/configure-item/edit-dashboard-alert/edit-dashboard-alert.component.sass +0 -0
  198. package/src/lib/components/dashboard-editor/configure-item/edit-dashboard-alert/edit-dashboard-alert.component.spec.ts +0 -25
  199. package/src/lib/components/dashboard-editor/configure-item/edit-dashboard-alert/edit-dashboard-alert.component.ts +0 -48
  200. package/src/lib/components/dashboard-editor/configure-item/html-documentation/html-documentation.component.html +0 -142
  201. package/src/lib/components/dashboard-editor/configure-item/html-documentation/html-documentation.component.sass +0 -0
  202. package/src/lib/components/dashboard-editor/configure-item/html-documentation/html-documentation.component.spec.ts +0 -25
  203. package/src/lib/components/dashboard-editor/configure-item/html-documentation/html-documentation.component.ts +0 -117
  204. package/src/lib/components/dashboard-editor/configure-item/table-cell-formatter/table-cell-formatter.component.html +0 -224
  205. package/src/lib/components/dashboard-editor/configure-item/table-cell-formatter/table-cell-formatter.component.sass +0 -0
  206. package/src/lib/components/dashboard-editor/configure-item/table-cell-formatter/table-cell-formatter.component.spec.ts +0 -25
  207. package/src/lib/components/dashboard-editor/configure-item/table-cell-formatter/table-cell-formatter.component.ts +0 -149
  208. package/src/lib/components/dashboard-editor/dashboard-editor.component.html +0 -205
  209. package/src/lib/components/dashboard-editor/dashboard-editor.component.sass +0 -247
  210. package/src/lib/components/dashboard-editor/dashboard-editor.component.spec.ts +0 -25
  211. package/src/lib/components/dashboard-editor/dashboard-editor.component.ts +0 -645
  212. package/src/lib/components/dashboard-editor/dashboard-parameter/dashboard-parameter.component.html +0 -1
  213. package/src/lib/components/dashboard-editor/dashboard-parameter/dashboard-parameter.component.sass +0 -0
  214. package/src/lib/components/dashboard-editor/dashboard-parameter/dashboard-parameter.component.spec.ts +0 -25
  215. package/src/lib/components/dashboard-editor/dashboard-parameter/dashboard-parameter.component.ts +0 -16
  216. package/src/lib/components/dashboard-editor/dashboard-settings/dashboard-settings.component.html +0 -167
  217. package/src/lib/components/dashboard-editor/dashboard-settings/dashboard-settings.component.sass +0 -0
  218. package/src/lib/components/dashboard-editor/dashboard-settings/dashboard-settings.component.spec.ts +0 -23
  219. package/src/lib/components/dashboard-editor/dashboard-settings/dashboard-settings.component.ts +0 -47
  220. package/src/lib/components/dashboard-editor/item-component/item-component.component.html +0 -486
  221. package/src/lib/components/dashboard-editor/item-component/item-component.component.sass +0 -137
  222. package/src/lib/components/dashboard-editor/item-component/item-component.component.spec.ts +0 -25
  223. package/src/lib/components/dashboard-editor/item-component/item-component.component.ts +0 -1381
  224. package/src/lib/components/dashboard-editor/source-selector-dialog/source-selector-dialog.component.html +0 -48
  225. package/src/lib/components/dashboard-editor/source-selector-dialog/source-selector-dialog.component.sass +0 -3
  226. package/src/lib/components/dashboard-editor/source-selector-dialog/source-selector-dialog.component.spec.ts +0 -25
  227. package/src/lib/components/dashboard-editor/source-selector-dialog/source-selector-dialog.component.ts +0 -111
  228. package/src/lib/components/dashboards/dashboards.component.html +0 -175
  229. package/src/lib/components/dashboards/dashboards.component.sass +0 -64
  230. package/src/lib/components/dashboards/dashboards.component.spec.ts +0 -25
  231. package/src/lib/components/dashboards/dashboards.component.ts +0 -178
  232. package/src/lib/components/dashboards/view-dashboard/view-dashboard.component.html +0 -138
  233. package/src/lib/components/dashboards/view-dashboard/view-dashboard.component.sass +0 -284
  234. package/src/lib/components/dashboards/view-dashboard/view-dashboard.component.spec.ts +0 -25
  235. package/src/lib/components/dashboards/view-dashboard/view-dashboard.component.ts +0 -462
  236. package/src/lib/components/data-explorer/change-source-warning/change-source-warning.component.html +0 -35
  237. package/src/lib/components/data-explorer/change-source-warning/change-source-warning.component.sass +0 -0
  238. package/src/lib/components/data-explorer/change-source-warning/change-source-warning.component.spec.ts +0 -23
  239. package/src/lib/components/data-explorer/change-source-warning/change-source-warning.component.ts +0 -21
  240. package/src/lib/components/data-explorer/data-explorer.component.html +0 -328
  241. package/src/lib/components/data-explorer/data-explorer.component.sass +0 -96
  242. package/src/lib/components/data-explorer/data-explorer.component.spec.ts +0 -25
  243. package/src/lib/components/data-explorer/data-explorer.component.ts +0 -271
  244. package/src/lib/components/data-explorer/export-data/export-data.component.html +0 -69
  245. package/src/lib/components/data-explorer/export-data/export-data.component.sass +0 -0
  246. package/src/lib/components/data-explorer/export-data/export-data.component.spec.ts +0 -25
  247. package/src/lib/components/data-explorer/export-data/export-data.component.ts +0 -56
  248. package/src/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.html +0 -195
  249. package/src/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.sass +0 -0
  250. package/src/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.spec.ts +0 -23
  251. package/src/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.ts +0 -79
  252. package/src/lib/components/data-explorer/snapshot-profile-dialog/snapshot-profile-dialog.component.html +0 -375
  253. package/src/lib/components/data-explorer/snapshot-profile-dialog/snapshot-profile-dialog.component.sass +0 -21
  254. package/src/lib/components/data-explorer/snapshot-profile-dialog/snapshot-profile-dialog.component.spec.ts +0 -25
  255. package/src/lib/components/data-explorer/snapshot-profile-dialog/snapshot-profile-dialog.component.ts +0 -197
  256. package/src/lib/components/data-picker/data-picker.component.html +0 -127
  257. package/src/lib/components/data-picker/data-picker.component.sass +0 -0
  258. package/src/lib/components/data-picker/data-picker.component.spec.ts +0 -25
  259. package/src/lib/components/data-picker/data-picker.component.ts +0 -90
  260. package/src/lib/components/data-search/data-search.component.html +0 -1
  261. package/src/lib/components/data-search/data-search.component.sass +0 -0
  262. package/src/lib/components/data-search/data-search.component.spec.ts +0 -23
  263. package/src/lib/components/data-search/data-search.component.ts +0 -10
  264. package/src/lib/components/data-sharing-invite/data-sharing-invite.component.html +0 -53
  265. package/src/lib/components/data-sharing-invite/data-sharing-invite.component.sass +0 -0
  266. package/src/lib/components/data-sharing-invite/data-sharing-invite.component.spec.ts +0 -23
  267. package/src/lib/components/data-sharing-invite/data-sharing-invite.component.ts +0 -56
  268. package/src/lib/components/dataset/create-dataset/create-dataset.component.html +0 -25
  269. package/src/lib/components/dataset/create-dataset/create-dataset.component.sass +0 -0
  270. package/src/lib/components/dataset/create-dataset/create-dataset.component.spec.ts +0 -25
  271. package/src/lib/components/dataset/create-dataset/create-dataset.component.ts +0 -44
  272. package/src/lib/components/dataset/dataset-editor/available-columns/available-columns.component.html +0 -28
  273. package/src/lib/components/dataset/dataset-editor/available-columns/available-columns.component.sass +0 -0
  274. package/src/lib/components/dataset/dataset-editor/available-columns/available-columns.component.spec.ts +0 -25
  275. package/src/lib/components/dataset/dataset-editor/available-columns/available-columns.component.ts +0 -22
  276. package/src/lib/components/dataset/dataset-editor/dataset-add-join/dataset-add-join.component.html +0 -196
  277. package/src/lib/components/dataset/dataset-editor/dataset-add-join/dataset-add-join.component.sass +0 -17
  278. package/src/lib/components/dataset/dataset-editor/dataset-add-join/dataset-add-join.component.spec.ts +0 -25
  279. package/src/lib/components/dataset/dataset-editor/dataset-add-join/dataset-add-join.component.ts +0 -422
  280. package/src/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-editor/dataset-column-editor.component.html +0 -30
  281. package/src/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-editor/dataset-column-editor.component.sass +0 -47
  282. package/src/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-editor/dataset-column-editor.component.spec.ts +0 -25
  283. package/src/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-editor/dataset-column-editor.component.ts +0 -78
  284. package/src/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-settings.component.html +0 -86
  285. package/src/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-settings.component.sass +0 -0
  286. package/src/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-settings.component.spec.ts +0 -25
  287. package/src/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-settings.component.ts +0 -49
  288. package/src/lib/components/dataset/dataset-editor/dataset-create-formula/dataset-create-formula.component.html +0 -68
  289. package/src/lib/components/dataset/dataset-editor/dataset-create-formula/dataset-create-formula.component.sass +0 -15
  290. package/src/lib/components/dataset/dataset-editor/dataset-create-formula/dataset-create-formula.component.spec.ts +0 -25
  291. package/src/lib/components/dataset/dataset-editor/dataset-create-formula/dataset-create-formula.component.ts +0 -65
  292. package/src/lib/components/dataset/dataset-editor/dataset-editor-popup.html +0 -19
  293. package/src/lib/components/dataset/dataset-editor/dataset-editor.component.html +0 -605
  294. package/src/lib/components/dataset/dataset-editor/dataset-editor.component.sass +0 -267
  295. package/src/lib/components/dataset/dataset-editor/dataset-editor.component.spec.ts +0 -25
  296. package/src/lib/components/dataset/dataset-editor/dataset-editor.component.ts +0 -1230
  297. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter/dataset-filter.component.html +0 -309
  298. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter/dataset-filter.component.sass +0 -41
  299. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter/dataset-filter.component.spec.ts +0 -25
  300. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter/dataset-filter.component.ts +0 -215
  301. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-inclusion/dataset-filter-inclusion.component.html +0 -35
  302. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-inclusion/dataset-filter-inclusion.component.sass +0 -3
  303. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-inclusion/dataset-filter-inclusion.component.spec.ts +0 -23
  304. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-inclusion/dataset-filter-inclusion.component.ts +0 -20
  305. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-junction/dataset-filter-junction.component.html +0 -52
  306. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-junction/dataset-filter-junction.component.sass +0 -14
  307. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-junction/dataset-filter-junction.component.spec.ts +0 -25
  308. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-junction/dataset-filter-junction.component.ts +0 -58
  309. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filters.component.html +0 -47
  310. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filters.component.sass +0 -25
  311. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filters.component.spec.ts +0 -25
  312. package/src/lib/components/dataset/dataset-editor/dataset-filters/dataset-filters.component.ts +0 -49
  313. package/src/lib/components/dataset/dataset-editor/dataset-name-dialog/dataset-name-dialog.component.html +0 -49
  314. package/src/lib/components/dataset/dataset-editor/dataset-name-dialog/dataset-name-dialog.component.sass +0 -2
  315. package/src/lib/components/dataset/dataset-editor/dataset-name-dialog/dataset-name-dialog.component.spec.ts +0 -25
  316. package/src/lib/components/dataset/dataset-editor/dataset-name-dialog/dataset-name-dialog.component.ts +0 -39
  317. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-add-parameter/dataset-add-parameter.component.html +0 -195
  318. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-add-parameter/dataset-add-parameter.component.sass +0 -14
  319. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-add-parameter/dataset-add-parameter.component.spec.ts +0 -25
  320. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-add-parameter/dataset-add-parameter.component.ts +0 -82
  321. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-type/dataset-parameter-type.component.html +0 -78
  322. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-type/dataset-parameter-type.component.sass +0 -16
  323. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-type/dataset-parameter-type.component.spec.ts +0 -25
  324. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-type/dataset-parameter-type.component.ts +0 -32
  325. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-values.component.html +0 -24
  326. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-values.component.sass +0 -22
  327. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-values.component.spec.ts +0 -25
  328. package/src/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-values.component.ts +0 -64
  329. package/src/lib/components/dataset/dataset-editor/dataset-summarise/dataset-summarise.component.html +0 -177
  330. package/src/lib/components/dataset/dataset-editor/dataset-summarise/dataset-summarise.component.sass +0 -80
  331. package/src/lib/components/dataset/dataset-editor/dataset-summarise/dataset-summarise.component.spec.ts +0 -25
  332. package/src/lib/components/dataset/dataset-editor/dataset-summarise/dataset-summarise.component.ts +0 -113
  333. package/src/lib/components/dataset/dataset-editor/move-transformation-confirmation/move-transformation-confirmation.component.html +0 -32
  334. package/src/lib/components/dataset/dataset-editor/move-transformation-confirmation/move-transformation-confirmation.component.sass +0 -0
  335. package/src/lib/components/dataset/dataset-editor/move-transformation-confirmation/move-transformation-confirmation.component.spec.ts +0 -23
  336. package/src/lib/components/dataset/dataset-editor/move-transformation-confirmation/move-transformation-confirmation.component.ts +0 -20
  337. package/src/lib/components/dataset/dataset-editor/remove-transformation-warning/remove-transformation-warning.component.html +0 -37
  338. package/src/lib/components/dataset/dataset-editor/remove-transformation-warning/remove-transformation-warning.component.sass +0 -0
  339. package/src/lib/components/dataset/dataset-editor/remove-transformation-warning/remove-transformation-warning.component.spec.ts +0 -23
  340. package/src/lib/components/dataset/dataset-editor/remove-transformation-warning/remove-transformation-warning.component.ts +0 -19
  341. package/src/lib/components/dataset/dataset-editor/save-as-query/save-as-query.component.html +0 -69
  342. package/src/lib/components/dataset/dataset-editor/save-as-query/save-as-query.component.sass +0 -0
  343. package/src/lib/components/dataset/dataset-editor/save-as-query/save-as-query.component.spec.ts +0 -23
  344. package/src/lib/components/dataset/dataset-editor/save-as-query/save-as-query.component.ts +0 -58
  345. package/src/lib/components/dataset/dataset-editor/share-query/share-query.component.html +0 -195
  346. package/src/lib/components/dataset/dataset-editor/share-query/share-query.component.sass +0 -0
  347. package/src/lib/components/dataset/dataset-editor/share-query/share-query.component.spec.ts +0 -23
  348. package/src/lib/components/dataset/dataset-editor/share-query/share-query.component.ts +0 -128
  349. package/src/lib/components/dataset/dataset-editor/upstream-changes-confirmation/upstream-changes-confirmation.component.html +0 -34
  350. package/src/lib/components/dataset/dataset-editor/upstream-changes-confirmation/upstream-changes-confirmation.component.sass +0 -3
  351. package/src/lib/components/dataset/dataset-editor/upstream-changes-confirmation/upstream-changes-confirmation.component.spec.ts +0 -23
  352. package/src/lib/components/dataset/dataset-editor/upstream-changes-confirmation/upstream-changes-confirmation.component.ts +0 -21
  353. package/src/lib/components/dataset/dataset.component.html +0 -317
  354. package/src/lib/components/dataset/dataset.component.sass +0 -73
  355. package/src/lib/components/dataset/dataset.component.spec.ts +0 -25
  356. package/src/lib/components/dataset/dataset.component.ts +0 -320
  357. package/src/lib/components/datasource/create-datasource/advanced-settings/advanced-settings.component.html +0 -133
  358. package/src/lib/components/datasource/create-datasource/advanced-settings/advanced-settings.component.sass +0 -51
  359. package/src/lib/components/datasource/create-datasource/advanced-settings/advanced-settings.component.spec.ts +0 -23
  360. package/src/lib/components/datasource/create-datasource/advanced-settings/advanced-settings.component.ts +0 -144
  361. package/src/lib/components/datasource/create-datasource/api-access/api-access.component.html +0 -325
  362. package/src/lib/components/datasource/create-datasource/api-access/api-access.component.sass +0 -0
  363. package/src/lib/components/datasource/create-datasource/api-access/api-access.component.spec.ts +0 -23
  364. package/src/lib/components/datasource/create-datasource/api-access/api-access.component.ts +0 -148
  365. package/src/lib/components/datasource/create-datasource/create-datasource.component.html +0 -430
  366. package/src/lib/components/datasource/create-datasource/create-datasource.component.sass +0 -162
  367. package/src/lib/components/datasource/create-datasource/create-datasource.component.spec.ts +0 -25
  368. package/src/lib/components/datasource/create-datasource/create-datasource.component.ts +0 -811
  369. package/src/lib/components/datasource/create-datasource/import-data/import-data.component.html +0 -119
  370. package/src/lib/components/datasource/create-datasource/import-data/import-data.component.sass +0 -8
  371. package/src/lib/components/datasource/create-datasource/import-data/import-data.component.spec.ts +0 -25
  372. package/src/lib/components/datasource/create-datasource/import-data/import-data.component.ts +0 -162
  373. package/src/lib/components/datasource/create-datasource/import-data/import-wizard/import-wizard.component.html +0 -239
  374. package/src/lib/components/datasource/create-datasource/import-data/import-wizard/import-wizard.component.sass +0 -0
  375. package/src/lib/components/datasource/create-datasource/import-data/import-wizard/import-wizard.component.spec.ts +0 -23
  376. package/src/lib/components/datasource/create-datasource/import-data/import-wizard/import-wizard.component.ts +0 -186
  377. package/src/lib/components/datasource/create-datasource/tabular-datasource/tabular-datasource.component.html +0 -167
  378. package/src/lib/components/datasource/create-datasource/tabular-datasource/tabular-datasource.component.sass +0 -87
  379. package/src/lib/components/datasource/create-datasource/tabular-datasource/tabular-datasource.component.spec.ts +0 -23
  380. package/src/lib/components/datasource/create-datasource/tabular-datasource/tabular-datasource.component.ts +0 -164
  381. package/src/lib/components/datasource/datasource.component.html +0 -165
  382. package/src/lib/components/datasource/datasource.component.sass +0 -4
  383. package/src/lib/components/datasource/datasource.component.spec.ts +0 -25
  384. package/src/lib/components/datasource/datasource.component.ts +0 -174
  385. package/src/lib/components/datasource/document-datasource/document-datasource.component.html +0 -558
  386. package/src/lib/components/datasource/document-datasource/document-datasource.component.sass +0 -84
  387. package/src/lib/components/datasource/document-datasource/document-datasource.component.spec.ts +0 -25
  388. package/src/lib/components/datasource/document-datasource/document-datasource.component.ts +0 -355
  389. package/src/lib/components/export-project/export-project.component.html +0 -301
  390. package/src/lib/components/export-project/export-project.component.sass +0 -0
  391. package/src/lib/components/export-project/export-project.component.spec.ts +0 -23
  392. package/src/lib/components/export-project/export-project.component.ts +0 -29
  393. package/src/lib/components/feeds/feed/feed.component.html +0 -187
  394. package/src/lib/components/feeds/feed/feed.component.sass +0 -0
  395. package/src/lib/components/feeds/feed/feed.component.spec.ts +0 -25
  396. package/src/lib/components/feeds/feed/feed.component.ts +0 -102
  397. package/src/lib/components/feeds/feeds.component.html +0 -210
  398. package/src/lib/components/feeds/feeds.component.sass +0 -4
  399. package/src/lib/components/feeds/feeds.component.spec.ts +0 -25
  400. package/src/lib/components/feeds/feeds.component.ts +0 -163
  401. package/src/lib/components/job-tasks/job-tasks.component.html +0 -22
  402. package/src/lib/components/job-tasks/job-tasks.component.sass +0 -0
  403. package/src/lib/components/job-tasks/job-tasks.component.spec.ts +0 -25
  404. package/src/lib/components/job-tasks/job-tasks.component.ts +0 -19
  405. package/src/lib/components/marketplace/marketplace.component.html +0 -143
  406. package/src/lib/components/marketplace/marketplace.component.sass +0 -0
  407. package/src/lib/components/marketplace/marketplace.component.spec.ts +0 -23
  408. package/src/lib/components/marketplace/marketplace.component.ts +0 -73
  409. package/src/lib/components/metadata/metadata.component.html +0 -62
  410. package/src/lib/components/metadata/metadata.component.sass +0 -0
  411. package/src/lib/components/metadata/metadata.component.spec.ts +0 -25
  412. package/src/lib/components/metadata/metadata.component.ts +0 -67
  413. package/src/lib/components/notification-groups/edit-notification-group/edit-notification-group.component.html +0 -82
  414. package/src/lib/components/notification-groups/edit-notification-group/edit-notification-group.component.sass +0 -21
  415. package/src/lib/components/notification-groups/edit-notification-group/edit-notification-group.component.spec.ts +0 -25
  416. package/src/lib/components/notification-groups/edit-notification-group/edit-notification-group.component.ts +0 -123
  417. package/src/lib/components/notification-groups/notification-groups.component.html +0 -125
  418. package/src/lib/components/notification-groups/notification-groups.component.sass +0 -4
  419. package/src/lib/components/notification-groups/notification-groups.component.spec.ts +0 -25
  420. package/src/lib/components/notification-groups/notification-groups.component.ts +0 -98
  421. package/src/lib/components/project-picker/project-picker.component.html +0 -167
  422. package/src/lib/components/project-picker/project-picker.component.sass +0 -1
  423. package/src/lib/components/project-picker/project-picker.component.spec.ts +0 -25
  424. package/src/lib/components/project-picker/project-picker.component.ts +0 -138
  425. package/src/lib/components/project-settings/project-link-selection/project-link-selection.component.html +0 -120
  426. package/src/lib/components/project-settings/project-link-selection/project-link-selection.component.sass +0 -0
  427. package/src/lib/components/project-settings/project-link-selection/project-link-selection.component.spec.ts +0 -23
  428. package/src/lib/components/project-settings/project-link-selection/project-link-selection.component.ts +0 -161
  429. package/src/lib/components/project-settings/project-settings.component.html +0 -353
  430. package/src/lib/components/project-settings/project-settings.component.sass +0 -0
  431. package/src/lib/components/project-settings/project-settings.component.spec.ts +0 -23
  432. package/src/lib/components/project-settings/project-settings.component.ts +0 -178
  433. package/src/lib/components/query-caching/edit-query-cache/edit-query-cache.component.html +0 -96
  434. package/src/lib/components/query-caching/edit-query-cache/edit-query-cache.component.sass +0 -0
  435. package/src/lib/components/query-caching/edit-query-cache/edit-query-cache.component.spec.ts +0 -23
  436. package/src/lib/components/query-caching/edit-query-cache/edit-query-cache.component.ts +0 -48
  437. package/src/lib/components/query-caching/query-caching.component.html +0 -122
  438. package/src/lib/components/query-caching/query-caching.component.sass +0 -0
  439. package/src/lib/components/query-caching/query-caching.component.spec.ts +0 -23
  440. package/src/lib/components/query-caching/query-caching.component.ts +0 -184
  441. package/src/lib/components/shared-with-me/feed-api-modal/feed-api-modal.component.html +0 -116
  442. package/src/lib/components/shared-with-me/feed-api-modal/feed-api-modal.component.sass +0 -0
  443. package/src/lib/components/shared-with-me/feed-api-modal/feed-api-modal.component.spec.ts +0 -23
  444. package/src/lib/components/shared-with-me/feed-api-modal/feed-api-modal.component.ts +0 -48
  445. package/src/lib/components/shared-with-me/shared-with-me.component.html +0 -132
  446. package/src/lib/components/shared-with-me/shared-with-me.component.sass +0 -0
  447. package/src/lib/components/shared-with-me/shared-with-me.component.spec.ts +0 -23
  448. package/src/lib/components/shared-with-me/shared-with-me.component.ts +0 -173
  449. package/src/lib/components/snapshots/snapshots.component.html +0 -408
  450. package/src/lib/components/snapshots/snapshots.component.sass +0 -4
  451. package/src/lib/components/snapshots/snapshots.component.spec.ts +0 -25
  452. package/src/lib/components/snapshots/snapshots.component.ts +0 -286
  453. package/src/lib/components/tag-picker/tag-picker.component.html +0 -155
  454. package/src/lib/components/tag-picker/tag-picker.component.sass +0 -2
  455. package/src/lib/components/tag-picker/tag-picker.component.spec.ts +0 -25
  456. package/src/lib/components/tag-picker/tag-picker.component.ts +0 -82
  457. package/src/lib/components/task-time-periods/task-time-periods.component.html +0 -93
  458. package/src/lib/components/task-time-periods/task-time-periods.component.sass +0 -7
  459. package/src/lib/components/task-time-periods/task-time-periods.component.spec.ts +0 -25
  460. package/src/lib/components/task-time-periods/task-time-periods.component.ts +0 -50
  461. package/src/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.html +0 -111
  462. package/src/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.sass +0 -0
  463. package/src/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.spec.ts +0 -25
  464. package/src/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.ts +0 -38
  465. package/src/lib/guards/dashboard-changes.guard.spec.ts +0 -16
  466. package/src/lib/guards/dashboard-changes.guard.ts +0 -27
  467. package/src/lib/ng-kinintel.module.ts +0 -274
  468. package/src/lib/objects/action-event.spec.ts +0 -7
  469. package/src/lib/objects/action-event.ts +0 -27
  470. package/src/lib/services/alert.service.spec.ts +0 -16
  471. package/src/lib/services/alert.service.ts +0 -49
  472. package/src/lib/services/dashboard.service.spec.ts +0 -16
  473. package/src/lib/services/dashboard.service.ts +0 -79
  474. package/src/lib/services/data-processor.service.spec.ts +0 -16
  475. package/src/lib/services/data-processor.service.ts +0 -61
  476. package/src/lib/services/data-search.service.spec.ts +0 -16
  477. package/src/lib/services/data-search.service.ts +0 -31
  478. package/src/lib/services/dataset.service.spec.ts +0 -16
  479. package/src/lib/services/dataset.service.ts +0 -234
  480. package/src/lib/services/datasource.service.spec.ts +0 -16
  481. package/src/lib/services/datasource.service.ts +0 -115
  482. package/src/lib/services/external.service.spec.ts +0 -16
  483. package/src/lib/services/external.service.ts +0 -29
  484. package/src/lib/services/feed.service.spec.ts +0 -16
  485. package/src/lib/services/feed.service.ts +0 -48
  486. package/src/lib/services/notification.service.spec.ts +0 -16
  487. package/src/lib/services/notification.service.ts +0 -38
  488. package/src/lib/services/project.service.spec.ts +0 -16
  489. package/src/lib/services/project.service.ts +0 -146
  490. package/src/lib/services/tag.service.spec.ts +0 -16
  491. package/src/lib/services/tag.service.ts +0 -61
  492. package/src/test.ts +0 -17
  493. package/tsconfig.lib.json +0 -24
  494. package/tsconfig.lib.prod.json +0 -10
  495. package/tsconfig.spec.json +0 -17
  496. package/tslint.json +0 -17
  497. /package/{src → esm2020}/lib/components/dashboard-editor/configure-item/vis-network-options.json +0 -0
@@ -0,0 +1,76 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BehaviorSubject, merge, Subject } from 'rxjs';
3
+ import { debounceTime, map, switchMap } from 'rxjs/operators';
4
+ import moment from 'moment';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../lib/services/project.service";
7
+ import * as i2 from "../../../lib/services/alert.service";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/material/legacy-button";
10
+ import * as i5 from "@angular/material/icon";
11
+ import * as i6 from "@angular/material/legacy-menu";
12
+ import * as i7 from "@angular/forms";
13
+ import * as i8 from "@angular/router";
14
+ export class AlertGroupsComponent {
15
+ constructor(projectService, alertService) {
16
+ this.projectService = projectService;
17
+ this.alertService = alertService;
18
+ this.routePath = '/alert-groups';
19
+ this.alertGroups = [];
20
+ this.searchText = new BehaviorSubject('');
21
+ this.limit = new BehaviorSubject(10);
22
+ this.offset = new BehaviorSubject(0);
23
+ this.projectSub = new Subject();
24
+ this.moment = moment;
25
+ this.page = 1;
26
+ this.endOfResults = false;
27
+ this.loading = true;
28
+ this.reload = new Subject();
29
+ }
30
+ ngOnInit() {
31
+ if (this.projectService) {
32
+ this.projectSub = this.projectService.activeProject;
33
+ }
34
+ merge(this.searchText, this.limit, this.offset, this.projectSub, this.reload)
35
+ .pipe(debounceTime(300),
36
+ // distinctUntilChanged(),
37
+ switchMap(() => this.getAlertGroups())).subscribe((alertGroups) => {
38
+ this.endOfResults = alertGroups.length < this.limit.getValue();
39
+ this.alertGroups = alertGroups;
40
+ this.loading = false;
41
+ });
42
+ }
43
+ increaseOffset() {
44
+ this.page = this.page + 1;
45
+ this.offset.next((this.limit.getValue() * this.page) - this.limit.getValue());
46
+ }
47
+ decreaseOffset() {
48
+ this.page = this.page <= 1 ? 1 : this.page - 1;
49
+ this.offset.next((this.limit.getValue() * this.page) - this.limit.getValue());
50
+ }
51
+ pageSizeChange(value) {
52
+ this.limit.next(value);
53
+ }
54
+ delete(id) {
55
+ const message = 'Are you sure you would like to delete this Alert Group?';
56
+ if (window.confirm(message)) {
57
+ this.alertService.deleteAlertGroup(id).then(() => {
58
+ this.reload.next(Date.now());
59
+ });
60
+ }
61
+ }
62
+ getAlertGroups() {
63
+ return this.alertService.getAlertGroups(this.searchText.getValue() || '', this.limit.getValue().toString(), this.offset.getValue().toString()).pipe(map((alertGroups) => {
64
+ return alertGroups;
65
+ }));
66
+ }
67
+ }
68
+ AlertGroupsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AlertGroupsComponent, deps: [{ token: i1.ProjectService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component });
69
+ AlertGroupsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AlertGroupsComponent, selector: "ki-alert-groups", inputs: { routePath: "routePath" }, ngImport: i0, template: "<div class=\"p-6 bg-white border-b border-gray-200\">\n <div class=\"md:flex md:items-center md:justify-between md:space-x-5\">\n <div class=\"flex items-start flex-1\">\n <div class=\"pt-1.5\">\n <h1 class=\"text-2xl font-bold text-gray-900\">Alert Groups</h1>\n <p class=\"text-sm font-medium text-gray-500\">\n A list of all the alert groups currently available.\n </p>\n </div>\n </div>\n <div class=\"mt-6 flex flex-col-reverse justify-stretch\">\n <button type=\"button\" [routerLink]=\"[routePath, 0]\"\n class=\"inline-flex items-center justify-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-primary focus:outline-none\">\n Create Alert Group\n </button>\n </div>\n </div>\n</div>\n\n<div class=\"p-4\" *ngIf=\"!alertGroups.length && !loading\">\n <button type=\"button\" [routerLink]=\"[routePath, 0]\"\n class=\"relative block w-full border-2 border-gray-300 border-dashed rounded-lg p-12 text-center hover:border-gray-400 focus:outline-none\">\n\n <div class=\"relative inline-block\">\n <span class=\"material-symbols-outlined mx-auto text-6xl h-14 w-20 text-gray-300\">campaign</span>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"right-0 bottom-0 absolute h-8 w-8 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"4\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4v16m8-8H4\"/>\n </svg>\n </div>\n\n <span class=\"mt-2 block text-sm font-medium text-gray-900\">Create Alert Group</span>\n </button>\n</div>\n\n<div class=\"px-4 sm:px-6 lg:px-8 mt-0\">\n <div class=\"flex flex-col\">\n <div class=\"-my-2 -mx-4 sm:-mx-6 lg:-mx-8\">\n <div class=\"inline-block min-w-full py-2 align-middle\">\n <div class=\"mt-3 sm:mt-0 flex-1\" *ngIf=\"alertGroups.length\">\n <label for=\"mobile-search-candidate\" class=\"sr-only\">Search</label>\n <div class=\"flex\">\n <div class=\"relative flex-grow focus-within:z-10\">\n <div class=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n <svg class=\"h-5 w-5 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clip-rule=\"evenodd\"/>\n </svg>\n </div>\n <input type=\"text\" name=\"mobile-search-candidate\" id=\"mobile-search-candidate\"\n class=\"block w-full rounded-none pl-10 border-t-0 border-l-0 border-gray-300\"\n placeholder=\"Search alert groups\"\n (keyup)=\"searchText.next($event.target.value)\">\n </div>\n </div>\n </div>\n <table class=\"min-w-full border-separate\" style=\"border-spacing: 0\" *ngIf=\"alertGroups.length\">\n <thead class=\"bg-gray-100\">\n <tr>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">\n Name\n </th>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">\n Status\n </th>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">\n Next Run\n </th>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 backdrop-blur backdrop-filter\">\n <span class=\"sr-only\">Edit</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"bg-white\">\n <tr *ngFor=\"let element of alertGroups; let i = index\" class=\"cursor-pointer hover:bg-gray-50\">\n <td [ngClass]=\"{'border-b-0': i === alertGroups.length - 1, 'border-b': i !== alertGroups.length - 1}\"\n class=\"whitespace-nowrap border-gray-200 py-2 px-4 text-sm font-medium text-gray-900\">\n {{element.title}}\n </td>\n <td [ngClass]=\"{'border-b-0': i === alertGroups.length - 1, 'border-b': i !== alertGroups.length - 1}\"\n class=\"whitespace-nowrap border-gray-200 py-2 px-4 text-sm text-gray-900\">\n {{element.taskStatus}}\n </td>\n <td [ngClass]=\"{'border-b-0': i === alertGroups.length - 1, 'border-b': i !== alertGroups.length - 1}\"\n class=\"whitespace-nowrap border-gray-200 py-2 px-4 text-sm text-gray-900\">\n {{moment.unix(element.taskNextStartTime.timestamp).format('DD/MM/YYYY HH:mm')}}\n </td>\n <td class=\"relative whitespace-nowrap border-gray-200 py-2 px-4 text-right text-sm\"\n [ngClass]=\"{'border-b-0': i === alertGroups.length - 1, 'border-b': i !== alertGroups.length - 1}\">\n <div class=\"align-center justify-end\">\n <button mat-button color=\"primary\" [routerLink]=\"[routePath, element.id]\"> Edit\n </button>\n <div class=\"divider\"></div>\n <div class=\"divider\"></div>\n <button color=\"primary\" mat-icon-button [matMenuTriggerFor]=\"itemMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #itemMenu=\"matMenu\">\n <button mat-menu-item (click)=\"delete(element.id)\">Delete Alert Group</button>\n </mat-menu>\n </div>\n </td>\n </tr>\n <tr>\n <td colspan=\"5\"\n class=\"border-t bg-gray-50 whitespace-nowrap border-b border-gray-200 py-1 px-4 text-sm font-medium text-gray-900\">\n <div class=\"paging-toolbar flex align-center justify-end\">\n <select [value]=\"limit.getValue()\" (change)=\"pageSizeChange($event.target.value)\"\n class=\"mr-8 p-1.5\">\n <option [value]=\"1\">1</option>\n <option [value]=\"5\">5</option>\n <option [value]=\"10\">10</option>\n <option [value]=\"25\">25</option>\n <option [value]=\"50\">50</option>\n <option [value]=\"100\">100</option>\n <option [value]=\"250\">250</option>\n <option [value]=\"1000\">1000</option>\n </select>\n <button mat-icon-button class=\"mr-4\" (click)=\"decreaseOffset()\" [disabled]=\"page <= 1\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button mat-icon-button (click)=\"increaseOffset()\" [disabled]=\"endOfResults\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n</div>\n", styles: [".divider{width:1px;height:17px;background-color:#cecece}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatLegacyButton, 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"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatLegacyMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatLegacyMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatLegacyMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AlertGroupsComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'ki-alert-groups', template: "<div class=\"p-6 bg-white border-b border-gray-200\">\n <div class=\"md:flex md:items-center md:justify-between md:space-x-5\">\n <div class=\"flex items-start flex-1\">\n <div class=\"pt-1.5\">\n <h1 class=\"text-2xl font-bold text-gray-900\">Alert Groups</h1>\n <p class=\"text-sm font-medium text-gray-500\">\n A list of all the alert groups currently available.\n </p>\n </div>\n </div>\n <div class=\"mt-6 flex flex-col-reverse justify-stretch\">\n <button type=\"button\" [routerLink]=\"[routePath, 0]\"\n class=\"inline-flex items-center justify-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-primary focus:outline-none\">\n Create Alert Group\n </button>\n </div>\n </div>\n</div>\n\n<div class=\"p-4\" *ngIf=\"!alertGroups.length && !loading\">\n <button type=\"button\" [routerLink]=\"[routePath, 0]\"\n class=\"relative block w-full border-2 border-gray-300 border-dashed rounded-lg p-12 text-center hover:border-gray-400 focus:outline-none\">\n\n <div class=\"relative inline-block\">\n <span class=\"material-symbols-outlined mx-auto text-6xl h-14 w-20 text-gray-300\">campaign</span>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"right-0 bottom-0 absolute h-8 w-8 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"4\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4v16m8-8H4\"/>\n </svg>\n </div>\n\n <span class=\"mt-2 block text-sm font-medium text-gray-900\">Create Alert Group</span>\n </button>\n</div>\n\n<div class=\"px-4 sm:px-6 lg:px-8 mt-0\">\n <div class=\"flex flex-col\">\n <div class=\"-my-2 -mx-4 sm:-mx-6 lg:-mx-8\">\n <div class=\"inline-block min-w-full py-2 align-middle\">\n <div class=\"mt-3 sm:mt-0 flex-1\" *ngIf=\"alertGroups.length\">\n <label for=\"mobile-search-candidate\" class=\"sr-only\">Search</label>\n <div class=\"flex\">\n <div class=\"relative flex-grow focus-within:z-10\">\n <div class=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n <svg class=\"h-5 w-5 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clip-rule=\"evenodd\"/>\n </svg>\n </div>\n <input type=\"text\" name=\"mobile-search-candidate\" id=\"mobile-search-candidate\"\n class=\"block w-full rounded-none pl-10 border-t-0 border-l-0 border-gray-300\"\n placeholder=\"Search alert groups\"\n (keyup)=\"searchText.next($event.target.value)\">\n </div>\n </div>\n </div>\n <table class=\"min-w-full border-separate\" style=\"border-spacing: 0\" *ngIf=\"alertGroups.length\">\n <thead class=\"bg-gray-100\">\n <tr>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">\n Name\n </th>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">\n Status\n </th>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">\n Next Run\n </th>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 backdrop-blur backdrop-filter\">\n <span class=\"sr-only\">Edit</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"bg-white\">\n <tr *ngFor=\"let element of alertGroups; let i = index\" class=\"cursor-pointer hover:bg-gray-50\">\n <td [ngClass]=\"{'border-b-0': i === alertGroups.length - 1, 'border-b': i !== alertGroups.length - 1}\"\n class=\"whitespace-nowrap border-gray-200 py-2 px-4 text-sm font-medium text-gray-900\">\n {{element.title}}\n </td>\n <td [ngClass]=\"{'border-b-0': i === alertGroups.length - 1, 'border-b': i !== alertGroups.length - 1}\"\n class=\"whitespace-nowrap border-gray-200 py-2 px-4 text-sm text-gray-900\">\n {{element.taskStatus}}\n </td>\n <td [ngClass]=\"{'border-b-0': i === alertGroups.length - 1, 'border-b': i !== alertGroups.length - 1}\"\n class=\"whitespace-nowrap border-gray-200 py-2 px-4 text-sm text-gray-900\">\n {{moment.unix(element.taskNextStartTime.timestamp).format('DD/MM/YYYY HH:mm')}}\n </td>\n <td class=\"relative whitespace-nowrap border-gray-200 py-2 px-4 text-right text-sm\"\n [ngClass]=\"{'border-b-0': i === alertGroups.length - 1, 'border-b': i !== alertGroups.length - 1}\">\n <div class=\"align-center justify-end\">\n <button mat-button color=\"primary\" [routerLink]=\"[routePath, element.id]\"> Edit\n </button>\n <div class=\"divider\"></div>\n <div class=\"divider\"></div>\n <button color=\"primary\" mat-icon-button [matMenuTriggerFor]=\"itemMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #itemMenu=\"matMenu\">\n <button mat-menu-item (click)=\"delete(element.id)\">Delete Alert Group</button>\n </mat-menu>\n </div>\n </td>\n </tr>\n <tr>\n <td colspan=\"5\"\n class=\"border-t bg-gray-50 whitespace-nowrap border-b border-gray-200 py-1 px-4 text-sm font-medium text-gray-900\">\n <div class=\"paging-toolbar flex align-center justify-end\">\n <select [value]=\"limit.getValue()\" (change)=\"pageSizeChange($event.target.value)\"\n class=\"mr-8 p-1.5\">\n <option [value]=\"1\">1</option>\n <option [value]=\"5\">5</option>\n <option [value]=\"10\">10</option>\n <option [value]=\"25\">25</option>\n <option [value]=\"50\">50</option>\n <option [value]=\"100\">100</option>\n <option [value]=\"250\">250</option>\n <option [value]=\"1000\">1000</option>\n </select>\n <button mat-icon-button class=\"mr-4\" (click)=\"decreaseOffset()\" [disabled]=\"page <= 1\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button mat-icon-button (click)=\"increaseOffset()\" [disabled]=\"endOfResults\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n</div>\n", styles: [".divider{width:1px;height:17px;background-color:#cecece}\n"] }]
73
+ }], ctorParameters: function () { return [{ type: i1.ProjectService }, { type: i2.AlertService }]; }, propDecorators: { routePath: [{
74
+ type: Input
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpbmludGVsL3NyYy9saWIvY29tcG9uZW50cy9hbGVydC1ncm91cHMvYWxlcnQtZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpbmludGVsL3NyYy9saWIvY29tcG9uZW50cy9hbGVydC1ncm91cHMvYWxlcnQtZ3JvdXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7Ozs7QUFPNUIsTUFBTSxPQUFPLG9CQUFvQjtJQWdCN0IsWUFBb0IsY0FBOEIsRUFDOUIsWUFBMEI7UUFEMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBZnJDLGNBQVMsR0FBRyxlQUFlLENBQUM7UUFFOUIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0IsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVkLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSy9CLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7U0FDdkQ7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ3hFLElBQUksQ0FDRCxZQUFZLENBQUMsR0FBRyxDQUFDO1FBQ2pCLDBCQUEwQjtRQUMxQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUN4QixDQUNKLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBZ0IsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9ELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBSztRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sTUFBTSxDQUFDLEVBQUU7UUFDWixNQUFNLE9BQU8sR0FBRyx5REFBeUQsQ0FBQztRQUMxRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVPLGNBQWM7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQ3BDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRTtZQUN4QixPQUFPLFdBQVcsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7a0hBekVRLG9CQUFvQjtzR0FBcEIsb0JBQW9CLDJGQ1pqQyxrNFJBNElBOzRGRGhJYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksaUJBQWlCO2dJQU1sQixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQcm9qZWN0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbGliL3NlcnZpY2VzL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQge0FsZXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbGliL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tpLWFsZXJ0LWdyb3VwcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWdyb3Vwcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWxlcnQtZ3JvdXBzLmNvbXBvbmVudC5zYXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRHcm91cHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgcm91dGVQYXRoID0gJy9hbGVydC1ncm91cHMnO1xuXG4gICAgcHVibGljIGFsZXJ0R3JvdXBzOiBhbnkgPSBbXTtcbiAgICBwdWJsaWMgc2VhcmNoVGV4dCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICAgIHB1YmxpYyBsaW1pdCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMTApO1xuICAgIHB1YmxpYyBvZmZzZXQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuICAgIHB1YmxpYyBwcm9qZWN0U3ViID0gbmV3IFN1YmplY3QoKTtcbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50O1xuICAgIHB1YmxpYyBwYWdlID0gMTtcbiAgICBwdWJsaWMgZW5kT2ZSZXN1bHRzID0gZmFsc2U7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSByZWxvYWQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkge1xuXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByb2plY3RTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLnByb2plY3RTdWIgPSB0aGlzLnByb2plY3RTZXJ2aWNlLmFjdGl2ZVByb2plY3Q7XG4gICAgICAgIH1cblxuICAgICAgICBtZXJnZSh0aGlzLnNlYXJjaFRleHQsIHRoaXMubGltaXQsIHRoaXMub2Zmc2V0LCB0aGlzLnByb2plY3RTdWIsIHRoaXMucmVsb2FkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgICAgICAgICAgLy8gZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGVydEdyb3VwcygpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKGFsZXJ0R3JvdXBzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZSZXN1bHRzID0gYWxlcnRHcm91cHMubGVuZ3RoIDwgdGhpcy5saW1pdC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5hbGVydEdyb3VwcyA9IGFsZXJ0R3JvdXBzO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHVibGljIGluY3JlYXNlT2Zmc2V0KCkge1xuICAgICAgICB0aGlzLnBhZ2UgPSB0aGlzLnBhZ2UgKyAxO1xuICAgICAgICB0aGlzLm9mZnNldC5uZXh0KCh0aGlzLmxpbWl0LmdldFZhbHVlKCkgKiB0aGlzLnBhZ2UpIC0gdGhpcy5saW1pdC5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVjcmVhc2VPZmZzZXQoKSB7XG4gICAgICAgIHRoaXMucGFnZSA9IHRoaXMucGFnZSA8PSAxID8gMSA6IHRoaXMucGFnZSAtIDE7XG4gICAgICAgIHRoaXMub2Zmc2V0Lm5leHQoKHRoaXMubGltaXQuZ2V0VmFsdWUoKSAqIHRoaXMucGFnZSkgLSB0aGlzLmxpbWl0LmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYWdlU2l6ZUNoYW5nZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLmxpbWl0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUoaWQpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdBcmUgeW91IHN1cmUgeW91IHdvdWxkIGxpa2UgdG8gZGVsZXRlIHRoaXMgQWxlcnQgR3JvdXA/JztcbiAgICAgICAgaWYgKHdpbmRvdy5jb25maXJtKG1lc3NhZ2UpKSB7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5kZWxldGVBbGVydEdyb3VwKGlkKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZC5uZXh0KERhdGUubm93KCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsZXJ0R3JvdXBzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGVydFNlcnZpY2UuZ2V0QWxlcnRHcm91cHMoXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFRleHQuZ2V0VmFsdWUoKSB8fCAnJyxcbiAgICAgICAgICAgIHRoaXMubGltaXQuZ2V0VmFsdWUoKS50b1N0cmluZygpLFxuICAgICAgICAgICAgdGhpcy5vZmZzZXQuZ2V0VmFsdWUoKS50b1N0cmluZygpXG4gICAgICAgICkucGlwZShtYXAoKGFsZXJ0R3JvdXBzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWxlcnRHcm91cHM7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInAtNiBiZy13aGl0ZSBib3JkZXItYiBib3JkZXItZ3JheS0yMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWQ6ZmxleCBtZDppdGVtcy1jZW50ZXIgbWQ6anVzdGlmeS1iZXR3ZWVuIG1kOnNwYWNlLXgtNVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydCBmbGV4LTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0xLjVcIj5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1ncmF5LTkwMFwiPkFsZXJ0IEdyb3VwczwvaDE+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgQSBsaXN0IG9mIGFsbCB0aGUgYWxlcnQgZ3JvdXBzIGN1cnJlbnRseSBhdmFpbGFibGUuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNiBmbGV4IGZsZXgtY29sLXJldmVyc2UganVzdGlmeS1zdHJldGNoXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbcm91dGVyTGlua109XCJbcm91dGVQYXRoLCAwXVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTQgcHktMiBib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IHRleHQtc20gZm9udC1tZWRpdW0gcm91bmRlZC1tZCBzaGFkb3ctc20gdGV4dC13aGl0ZSBiZy1wcmltYXJ5IGZvY3VzOm91dGxpbmUtbm9uZVwiPlxuICAgICAgICAgICAgICAgIENyZWF0ZSBBbGVydCBHcm91cFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJwLTRcIiAqbmdJZj1cIiFhbGVydEdyb3Vwcy5sZW5ndGggJiYgIWxvYWRpbmdcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbcm91dGVyTGlua109XCJbcm91dGVQYXRoLCAwXVwiXG4gICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGJsb2NrIHctZnVsbCBib3JkZXItMiBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRhc2hlZCByb3VuZGVkLWxnIHAtMTIgdGV4dC1jZW50ZXIgaG92ZXI6Ym9yZGVyLWdyYXktNDAwIGZvY3VzOm91dGxpbmUtbm9uZVwiPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBpbmxpbmUtYmxvY2tcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBteC1hdXRvIHRleHQtNnhsIGgtMTQgdy0yMCB0ZXh0LWdyYXktMzAwXCI+Y2FtcGFpZ248L3NwYW4+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cInJpZ2h0LTAgYm90dG9tLTAgYWJzb2x1dGUgaC04IHctOCB0ZXh0LWdyYXktNDAwXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiNFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTIgNHYxNm04LThINFwiLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTIgYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+Q3JlYXRlIEFsZXJ0IEdyb3VwPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJweC00IHNtOnB4LTYgbGc6cHgtOCBtdC0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIi1teS0yIC1teC00IHNtOi1teC02IGxnOi1teC04XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWJsb2NrIG1pbi13LWZ1bGwgcHktMiBhbGlnbi1taWRkbGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBzbTptdC0wIGZsZXgtMVwiICpuZ0lmPVwiYWxlcnRHcm91cHMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtb2JpbGUtc2VhcmNoLWNhbmRpZGF0ZVwiIGNsYXNzPVwic3Itb25seVwiPlNlYXJjaDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleC1ncm93IGZvY3VzLXdpdGhpbjp6LTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGluc2V0LXktMCBsZWZ0LTAgcGwtMyBmbGV4IGl0ZW1zLWNlbnRlciBwb2ludGVyLWV2ZW50cy1ub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoLTUgdy01IHRleHQtZ3JheS00MDBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTggNGE0IDQgMCAxMDAgOCA0IDQgMCAwMDAtOHpNMiA4YTYgNiAwIDExMTAuODkgMy40NzZsNC44MTcgNC44MTdhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQuODE2LTQuODE2QTYgNiAwIDAxMiA4elwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibW9iaWxlLXNlYXJjaC1jYW5kaWRhdGVcIiBpZD1cIm1vYmlsZS1zZWFyY2gtY2FuZGlkYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJibG9jayB3LWZ1bGwgcm91bmRlZC1ub25lIHBsLTEwIGJvcmRlci10LTAgYm9yZGVyLWwtMCBib3JkZXItZ3JheS0zMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBhbGVydCBncm91cHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXApPVwic2VhcmNoVGV4dC5uZXh0KCRldmVudC50YXJnZXQudmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwibWluLXctZnVsbCBib3JkZXItc2VwYXJhdGVcIiBzdHlsZT1cImJvcmRlci1zcGFjaW5nOiAwXCIgKm5nSWY9XCJhbGVydEdyb3Vwcy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkIGNsYXNzPVwiYmctZ3JheS0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0aWNreSB0b3AtMCB6LTEwIGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIGJnLW9wYWNpdHktNzUgcHktMy41IHB4LTQgdGV4dC1sZWZ0IHRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIGJhY2tkcm9wLWJsdXIgYmFja2Ryb3AtZmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdGlja3kgdG9wLTAgei0xMCBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgYmctZ3JheS01MCBiZy1vcGFjaXR5LTc1IHB5LTMuNSBweC00IHRleHQtbGVmdCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBiYWNrZHJvcC1ibHVyIGJhY2tkcm9wLWZpbHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdGlja3kgdG9wLTAgei0xMCBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgYmctZ3JheS01MCBiZy1vcGFjaXR5LTc1IHB5LTMuNSBweC00IHRleHQtbGVmdCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBiYWNrZHJvcC1ibHVyIGJhY2tkcm9wLWZpbHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5leHQgUnVuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0aWNreSB0b3AtMCB6LTEwIGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIGJnLW9wYWNpdHktNzUgcHktMy41IHB4LTQgYmFja2Ryb3AtYmx1ciBiYWNrZHJvcC1maWx0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5FZGl0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwiYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGFsZXJ0R3JvdXBzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1ncmF5LTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgW25nQ2xhc3NdPVwieydib3JkZXItYi0wJzogaSA9PT0gYWxlcnRHcm91cHMubGVuZ3RoIC0gMSwgJ2JvcmRlci1iJzogaSAhPT0gYWxlcnRHcm91cHMubGVuZ3RoIC0gMX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgYm9yZGVyLWdyYXktMjAwIHB5LTIgcHgtNCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VsZW1lbnQudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbbmdDbGFzc109XCJ7J2JvcmRlci1iLTAnOiBpID09PSBhbGVydEdyb3Vwcy5sZW5ndGggLSAxLCAnYm9yZGVyLWInOiBpICE9PSBhbGVydEdyb3Vwcy5sZW5ndGggLSAxfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcCBib3JkZXItZ3JheS0yMDAgcHktMiBweC00IHRleHQtc20gdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxlbWVudC50YXNrU3RhdHVzfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgW25nQ2xhc3NdPVwieydib3JkZXItYi0wJzogaSA9PT0gYWxlcnRHcm91cHMubGVuZ3RoIC0gMSwgJ2JvcmRlci1iJzogaSAhPT0gYWxlcnRHcm91cHMubGVuZ3RoIC0gMX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgYm9yZGVyLWdyYXktMjAwIHB5LTIgcHgtNCB0ZXh0LXNtIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e21vbWVudC51bml4KGVsZW1lbnQudGFza05leHRTdGFydFRpbWUudGltZXN0YW1wKS5mb3JtYXQoJ0REL01NL1lZWVkgSEg6bW0nKX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicmVsYXRpdmUgd2hpdGVzcGFjZS1ub3dyYXAgYm9yZGVyLWdyYXktMjAwIHB5LTIgcHgtNCB0ZXh0LXJpZ2h0IHRleHQtc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYm9yZGVyLWItMCc6IGkgPT09IGFsZXJ0R3JvdXBzLmxlbmd0aCAtIDEsICdib3JkZXItYic6IGkgIT09IGFsZXJ0R3JvdXBzLmxlbmd0aCAtIDF9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsaWduLWNlbnRlciBqdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3JvdXRlckxpbmtdPVwiW3JvdXRlUGF0aCwgZWxlbWVudC5pZF1cIj4gRWRpdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIml0ZW1NZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjaXRlbU1lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRlbGV0ZShlbGVtZW50LmlkKVwiPkRlbGV0ZSBBbGVydCBHcm91cDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJvcmRlci10IGJnLWdyYXktNTAgd2hpdGVzcGFjZS1ub3dyYXAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwIHB5LTEgcHgtNCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFnaW5nLXRvb2xiYXIgZmxleCBhbGlnbi1jZW50ZXIganVzdGlmeS1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBbdmFsdWVdPVwibGltaXQuZ2V0VmFsdWUoKVwiIChjaGFuZ2UpPVwicGFnZVNpemVDaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXItOCBwLTEuNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiMVwiPjE8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjVcIj41PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIxMFwiPjEwPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIyNVwiPjI1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCI1MFwiPjUwPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIxMDBcIj4xMDA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjI1MFwiPjI1MDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiMTAwMFwiPjEwMDA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwibXItNFwiIChjbGljayk9XCJkZWNyZWFzZU9mZnNldCgpXCIgW2Rpc2FibGVkXT1cInBhZ2UgPD0gMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fbGVmdDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaW5jcmVhc2VPZmZzZXQoKVwiIFtkaXNhYmxlZF09XCJlbmRPZlJlc3VsdHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,83 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { EditNotificationGroupComponent } from '../../notification-groups/edit-notification-group/edit-notification-group.component';
3
+ import * as lodash from 'lodash';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../../lib/services/notification.service";
6
+ import * as i2 from "../../../../lib/services/alert.service";
7
+ import * as i3 from "@angular/material/legacy-dialog";
8
+ import * as i4 from "@angular/router";
9
+ import * as i5 from "@angular/common";
10
+ import * as i6 from "@angular/material/legacy-button";
11
+ import * as i7 from "@angular/material/icon";
12
+ import * as i8 from "@angular/forms";
13
+ import * as i9 from "@angular/material/legacy-select";
14
+ import * as i10 from "@angular/material/legacy-core";
15
+ import * as i11 from "../../task-time-periods/task-time-periods.component";
16
+ const _ = lodash.default;
17
+ export class EditAlertGroupComponent {
18
+ constructor(notificationService, alertService, matDialog, router, route) {
19
+ this.notificationService = notificationService;
20
+ this.alertService = alertService;
21
+ this.matDialog = matDialog;
22
+ this.router = router;
23
+ this.route = route;
24
+ this.routePath = '/alert-groups';
25
+ this.alertGroup = {};
26
+ this.notificationGroups = [];
27
+ this.showNewTaskTimePeriod = false;
28
+ this.newTaskTimePeriod = {};
29
+ this._ = _;
30
+ this.Object = Object;
31
+ }
32
+ ngOnInit() {
33
+ const id = this.route.snapshot.params.id;
34
+ this.alertService.getAlertGroup(id).then(alertGroup => {
35
+ if (alertGroup) {
36
+ this.alertGroup = alertGroup;
37
+ }
38
+ if (!this.alertGroup.taskTimePeriods || !this.alertGroup.taskTimePeriods.length) {
39
+ if (!this.alertGroup.taskTimePeriods) {
40
+ this.alertGroup.taskTimePeriods = [];
41
+ }
42
+ this.showNewTaskTimePeriod = true;
43
+ }
44
+ });
45
+ this.loadNotificationGroups();
46
+ }
47
+ notificationGroupDisplay(v1, v2) {
48
+ return v1 && v2 && (v2.id === v2.id);
49
+ }
50
+ createNotificationGroup() {
51
+ const dialogRef = this.matDialog.open(EditNotificationGroupComponent, {
52
+ width: '800px',
53
+ height: '575px',
54
+ data: {
55
+ groupId: 0
56
+ }
57
+ });
58
+ dialogRef.afterClosed().subscribe(res => {
59
+ if (res) {
60
+ this.loadNotificationGroups();
61
+ }
62
+ });
63
+ }
64
+ save() {
65
+ this.alertService.saveAlertGroup(this.alertGroup).then(() => {
66
+ this.router.navigate([this.routePath]);
67
+ });
68
+ }
69
+ loadNotificationGroups() {
70
+ this.notificationService.getNotificationGroups().toPromise().then(groups => {
71
+ this.notificationGroups = groups;
72
+ });
73
+ }
74
+ }
75
+ EditAlertGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditAlertGroupComponent, deps: [{ token: i1.NotificationService }, { token: i2.AlertService }, { token: i3.MatLegacyDialog }, { token: i4.Router }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
76
+ EditAlertGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EditAlertGroupComponent, selector: "ki-edit-alert-group", inputs: { routePath: "routePath" }, ngImport: i0, template: "<div class=\"p-6 bg-white border-b border-gray-200\">\n <div class=\"md:flex md:items-center md:justify-between md:space-x-5\">\n <div class=\"flex items-start flex-1\">\n <div class=\"pt-1.5\">\n <h1 class=\"text-2xl font-bold text-gray-900 mb-0\">Alert Group</h1>\n <p class=\"text-sm font-medium text-gray-500\">\n These details will be used to schedule alerts with the system.\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"space-y-8 divide-y divide-gray-200 p-6\">\n <div class=\"space-y-8 divide-y divide-gray-200 sm:space-y-5\">\n <div>\n <div class=\"space-y-6 sm:space-y-5\">\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\">\n Name <span class=\"text-red-500\">*</span>\n </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <input type=\"text\" name=\"title\" [(ngModel)]=\"alertGroup.title\"\n class=\"max-w-lg block w-full shadow-sm sm:max-w-xs sm:text-sm border-gray-300 rounded-md\">\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\">\n Time Periods <span class=\"text-red-500\">*</span>\n </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <ki-task-time-periods [showTitle]=\"false\" [(taskTimePeriods)]=\"alertGroup.taskTimePeriods\"></ki-task-time-periods>\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\">\n Notification Groups <span class=\"text-red-500\">*</span>\n </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <mat-select [(ngModel)]=\"alertGroup.notificationGroups\" multiple [compareWith]=\"notificationGroupDisplay\">\n <mat-option [value]=\"group\" *ngFor=\"let group of notificationGroups\">{{group.name}}</mat-option>\n </mat-select>\n <button mat-button color=\"primary\" (click)=\"createNotificationGroup()\">\n <mat-icon>group_add</mat-icon>&nbsp;Create new notification group\n </button>\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\"> Notification Title </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <input type=\"text\" name=\"notificationTitle\" [(ngModel)]=\"alertGroup.notificationTitle\"\n class=\"max-w-lg block w-full shadow-sm sm:max-w-xs sm:text-sm border-gray-300 rounded-md\">\n <p class=\"mt-2 text-sm text-gray-500\">Will be used as the subject for the notification</p>\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\"> Notification Prefix Text </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <textarea name=\"notificationPrefixText\" rows=\"3\" [(ngModel)]=\"alertGroup.notificationPrefixText\"\n class=\"max-w-lg shadow-sm block w-full sm:text-sm border border-gray-300 rounded-md\"></textarea>\n <p class=\"mt-2 text-sm text-gray-500\">Text to include at the beginning of the notification</p>\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\"> Notification Suffix Text </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <textarea name=\"notificationSuffixText\" rows=\"3\" [(ngModel)]=\"alertGroup.notificationSuffixText\"\n class=\"max-w-lg shadow-sm block w-full sm:text-sm border border-gray-300 rounded-md\"></textarea>\n <p class=\"mt-2 text-sm text-gray-500\">Text to include at the end of the notification</p>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n\n <div class=\"pt-5\">\n <div class=\"flex justify-end\">\n <button type=\"button\" [routerLink]=\"[routePath]\"\n class=\"bg-white py-2 px-4 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none\">Cancel</button>\n <button type=\"button\" (click)=\"save()\" [disabled]=\"!alertGroup.title || (!alertGroup.taskTimePeriods || !alertGroup.taskTimePeriods.length) || (!alertGroup.notificationGroups || !alertGroup.notificationGroups.length)\"\n class=\"disabled:opacity-50 ml-3 inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-primary focus:outline-none\">\n Save Changes</button>\n </div>\n </div>\n</div>\n", styles: ["input,select,textarea,mat-select{max-width:500px}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i6.MatLegacyButton, 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"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i11.TaskTimePeriodsComponent, selector: "ki-task-time-periods", inputs: ["taskTimePeriods", "showTitle"], outputs: ["taskTimePeriodsChange"] }] });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditAlertGroupComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: 'ki-edit-alert-group', template: "<div class=\"p-6 bg-white border-b border-gray-200\">\n <div class=\"md:flex md:items-center md:justify-between md:space-x-5\">\n <div class=\"flex items-start flex-1\">\n <div class=\"pt-1.5\">\n <h1 class=\"text-2xl font-bold text-gray-900 mb-0\">Alert Group</h1>\n <p class=\"text-sm font-medium text-gray-500\">\n These details will be used to schedule alerts with the system.\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"space-y-8 divide-y divide-gray-200 p-6\">\n <div class=\"space-y-8 divide-y divide-gray-200 sm:space-y-5\">\n <div>\n <div class=\"space-y-6 sm:space-y-5\">\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\">\n Name <span class=\"text-red-500\">*</span>\n </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <input type=\"text\" name=\"title\" [(ngModel)]=\"alertGroup.title\"\n class=\"max-w-lg block w-full shadow-sm sm:max-w-xs sm:text-sm border-gray-300 rounded-md\">\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\">\n Time Periods <span class=\"text-red-500\">*</span>\n </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <ki-task-time-periods [showTitle]=\"false\" [(taskTimePeriods)]=\"alertGroup.taskTimePeriods\"></ki-task-time-periods>\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\">\n Notification Groups <span class=\"text-red-500\">*</span>\n </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <mat-select [(ngModel)]=\"alertGroup.notificationGroups\" multiple [compareWith]=\"notificationGroupDisplay\">\n <mat-option [value]=\"group\" *ngFor=\"let group of notificationGroups\">{{group.name}}</mat-option>\n </mat-select>\n <button mat-button color=\"primary\" (click)=\"createNotificationGroup()\">\n <mat-icon>group_add</mat-icon>&nbsp;Create new notification group\n </button>\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\"> Notification Title </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <input type=\"text\" name=\"notificationTitle\" [(ngModel)]=\"alertGroup.notificationTitle\"\n class=\"max-w-lg block w-full shadow-sm sm:max-w-xs sm:text-sm border-gray-300 rounded-md\">\n <p class=\"mt-2 text-sm text-gray-500\">Will be used as the subject for the notification</p>\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\"> Notification Prefix Text </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <textarea name=\"notificationPrefixText\" rows=\"3\" [(ngModel)]=\"alertGroup.notificationPrefixText\"\n class=\"max-w-lg shadow-sm block w-full sm:text-sm border border-gray-300 rounded-md\"></textarea>\n <p class=\"mt-2 text-sm text-gray-500\">Text to include at the beginning of the notification</p>\n </div>\n </div>\n\n <div class=\"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5\">\n <label class=\"block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2\"> Notification Suffix Text </label>\n <div class=\"mt-1 sm:mt-0 sm:col-span-2\">\n <textarea name=\"notificationSuffixText\" rows=\"3\" [(ngModel)]=\"alertGroup.notificationSuffixText\"\n class=\"max-w-lg shadow-sm block w-full sm:text-sm border border-gray-300 rounded-md\"></textarea>\n <p class=\"mt-2 text-sm text-gray-500\">Text to include at the end of the notification</p>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n\n <div class=\"pt-5\">\n <div class=\"flex justify-end\">\n <button type=\"button\" [routerLink]=\"[routePath]\"\n class=\"bg-white py-2 px-4 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none\">Cancel</button>\n <button type=\"button\" (click)=\"save()\" [disabled]=\"!alertGroup.title || (!alertGroup.taskTimePeriods || !alertGroup.taskTimePeriods.length) || (!alertGroup.notificationGroups || !alertGroup.notificationGroups.length)\"\n class=\"disabled:opacity-50 ml-3 inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-primary focus:outline-none\">\n Save Changes</button>\n </div>\n </div>\n</div>\n", styles: ["input,select,textarea,mat-select{max-width:500px}\n"] }]
80
+ }], ctorParameters: function () { return [{ type: i1.NotificationService }, { type: i2.AlertService }, { type: i3.MatLegacyDialog }, { type: i4.Router }, { type: i4.ActivatedRoute }]; }, propDecorators: { routePath: [{
81
+ type: Input
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hbGVydC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raW5pbnRlbC9zcmMvbGliL2NvbXBvbmVudHMvYWxlcnQtZ3JvdXBzL2VkaXQtYWxlcnQtZ3JvdXAvZWRpdC1hbGVydC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raW5pbnRlbC9zcmMvbGliL2NvbXBvbmVudHMvYWxlcnQtZ3JvdXBzL2VkaXQtYWxlcnQtZ3JvdXAvZWRpdC1hbGVydC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUl2RCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxxRkFBcUYsQ0FBQztBQUNuSSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUNqQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBUXpCLE1BQU0sT0FBTyx1QkFBdUI7SUFXaEMsWUFBb0IsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLFNBQW9CLEVBQ3BCLE1BQWMsRUFDZCxLQUFxQjtRQUpyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBYmhDLGNBQVMsR0FBRyxlQUFlLENBQUM7UUFFOUIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQix1QkFBa0IsR0FBUSxFQUFFLENBQUM7UUFDN0IsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLHNCQUFpQixHQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sV0FBTSxHQUFHLE1BQU0sQ0FBQztJQU92QixDQUFDO0lBRUQsUUFBUTtRQUNKLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2xELElBQUksVUFBVSxFQUFFO2dCQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO2FBQ2hDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO2dCQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQzthQUNyQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLHdCQUF3QixDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSx1QkFBdUI7UUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUU7WUFDbEUsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsT0FBTztZQUNmLElBQUksRUFBRTtnQkFDRixPQUFPLEVBQUUsQ0FBQzthQUNiO1NBQ0osQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDTCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUNqQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3FIQWhFUSx1QkFBdUI7eUdBQXZCLHVCQUF1QiwrRkNkcEMsODJMQTJGQTs0RkQ3RWEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNJLHFCQUFxQjtxTkFNdEIsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7QWxlcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQge01hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2d9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHtFZGl0Tm90aWZpY2F0aW9uR3JvdXBDb21wb25lbnR9IGZyb20gJy4uLy4uL25vdGlmaWNhdGlvbi1ncm91cHMvZWRpdC1ub3RpZmljYXRpb24tZ3JvdXAvZWRpdC1ub3RpZmljYXRpb24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGxvZGFzaCBmcm9tICdsb2Rhc2gnO1xuY29uc3QgXyA9IGxvZGFzaC5kZWZhdWx0O1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tpLWVkaXQtYWxlcnQtZ3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWFsZXJ0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0LWFsZXJ0LWdyb3VwLmNvbXBvbmVudC5zYXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgRWRpdEFsZXJ0R3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgcm91dGVQYXRoID0gJy9hbGVydC1ncm91cHMnO1xuXG4gICAgcHVibGljIGFsZXJ0R3JvdXA6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBub3RpZmljYXRpb25Hcm91cHM6IGFueSA9IFtdO1xuICAgIHB1YmxpYyBzaG93TmV3VGFza1RpbWVQZXJpb2QgPSBmYWxzZTtcbiAgICBwdWJsaWMgbmV3VGFza1RpbWVQZXJpb2Q6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBfID0gXztcbiAgICBwdWJsaWMgT2JqZWN0ID0gT2JqZWN0O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuaWQ7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmdldEFsZXJ0R3JvdXAoaWQpLnRoZW4oYWxlcnRHcm91cCA9PiB7XG4gICAgICAgICAgICBpZiAoYWxlcnRHcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRHcm91cCA9IGFsZXJ0R3JvdXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxlcnRHcm91cC50YXNrVGltZVBlcmlvZHMgfHwgIXRoaXMuYWxlcnRHcm91cC50YXNrVGltZVBlcmlvZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmFsZXJ0R3JvdXAudGFza1RpbWVQZXJpb2RzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRHcm91cC50YXNrVGltZVBlcmlvZHMgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93TmV3VGFza1RpbWVQZXJpb2QgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2FkTm90aWZpY2F0aW9uR3JvdXBzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdGlmaWNhdGlvbkdyb3VwRGlzcGxheSh2MSwgdjIpIHtcbiAgICAgICAgcmV0dXJuIHYxICYmIHYyICYmICh2Mi5pZCA9PT0gdjIuaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVOb3RpZmljYXRpb25Hcm91cCgpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5tYXREaWFsb2cub3BlbihFZGl0Tm90aWZpY2F0aW9uR3JvdXBDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiAnODAwcHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnNTc1cHgnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGdyb3VwSWQ6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkTm90aWZpY2F0aW9uR3JvdXBzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zYXZlQWxlcnRHcm91cCh0aGlzLmFsZXJ0R3JvdXApLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucm91dGVQYXRoXSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZE5vdGlmaWNhdGlvbkdyb3VwcygpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmdldE5vdGlmaWNhdGlvbkdyb3VwcygpLnRvUHJvbWlzZSgpLnRoZW4oZ3JvdXBzID0+IHtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uR3JvdXBzID0gZ3JvdXBzO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC02IGJnLXdoaXRlIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZDpmbGV4IG1kOml0ZW1zLWNlbnRlciBtZDpqdXN0aWZ5LWJldHdlZW4gbWQ6c3BhY2UteC01XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0IGZsZXgtMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTEuNVwiPlxuICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWdyYXktOTAwIG1iLTBcIj5BbGVydCBHcm91cDwvaDE+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgVGhlc2UgZGV0YWlscyB3aWxsIGJlIHVzZWQgdG8gc2NoZWR1bGUgYWxlcnRzIHdpdGggdGhlIHN5c3RlbS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInNwYWNlLXktOCBkaXZpZGUteSBkaXZpZGUtZ3JheS0yMDAgcC02XCI+XG4gICAgPGRpdiBjbGFzcz1cInNwYWNlLXktOCBkaXZpZGUteSBkaXZpZGUtZ3JheS0yMDAgc206c3BhY2UteS01XCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS02IHNtOnNwYWNlLXktNVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpncmlkIHNtOmdyaWQtY29scy0zIHNtOmdhcC00IHNtOml0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBzbTptdC1weCBzbTpwdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBOYW1lIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEgc206bXQtMCBzbTpjb2wtc3Bhbi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwidGl0bGVcIiBbKG5nTW9kZWwpXT1cImFsZXJ0R3JvdXAudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF4LXctbGcgYmxvY2sgdy1mdWxsIHNoYWRvdy1zbSBzbTptYXgtdy14cyBzbTp0ZXh0LXNtIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLW1kXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmdyaWQgc206Z3JpZC1jb2xzLTMgc206Z2FwLTQgc206aXRlbXMtc3RhcnQgc206Ym9yZGVyLXQgc206Ym9yZGVyLWdyYXktMjAwIHNtOnB0LTVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIHNtOm10LXB4IHNtOnB0LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRpbWUgUGVyaW9kcyA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMFwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xIHNtOm10LTAgc206Y29sLXNwYW4tMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGtpLXRhc2stdGltZS1wZXJpb2RzIFtzaG93VGl0bGVdPVwiZmFsc2VcIiBbKHRhc2tUaW1lUGVyaW9kcyldPVwiYWxlcnRHcm91cC50YXNrVGltZVBlcmlvZHNcIj48L2tpLXRhc2stdGltZS1wZXJpb2RzPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpncmlkIHNtOmdyaWQtY29scy0zIHNtOmdhcC00IHNtOml0ZW1zLXN0YXJ0IHNtOmJvcmRlci10IHNtOmJvcmRlci1ncmF5LTIwMCBzbTpwdC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBzbTptdC1weCBzbTpwdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb24gR3JvdXBzIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEgc206bXQtMCBzbTpjb2wtc3Bhbi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cImFsZXJ0R3JvdXAubm90aWZpY2F0aW9uR3JvdXBzXCIgbXVsdGlwbGUgW2NvbXBhcmVXaXRoXT1cIm5vdGlmaWNhdGlvbkdyb3VwRGlzcGxheVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJncm91cFwiICpuZ0Zvcj1cImxldCBncm91cCBvZiBub3RpZmljYXRpb25Hcm91cHNcIj57e2dyb3VwLm5hbWV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY3JlYXRlTm90aWZpY2F0aW9uR3JvdXAoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5ncm91cF9hZGQ8L21hdC1pY29uPiZuYnNwO0NyZWF0ZSBuZXcgbm90aWZpY2F0aW9uIGdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206Z3JpZCBzbTpncmlkLWNvbHMtMyBzbTpnYXAtNCBzbTppdGVtcy1zdGFydCBzbTpib3JkZXItdCBzbTpib3JkZXItZ3JheS0yMDAgc206cHQtNVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgc206bXQtcHggc206cHQtMlwiPiBOb3RpZmljYXRpb24gVGl0bGUgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEgc206bXQtMCBzbTpjb2wtc3Bhbi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibm90aWZpY2F0aW9uVGl0bGVcIiBbKG5nTW9kZWwpXT1cImFsZXJ0R3JvdXAubm90aWZpY2F0aW9uVGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF4LXctbGcgYmxvY2sgdy1mdWxsIHNoYWRvdy1zbSBzbTptYXgtdy14cyBzbTp0ZXh0LXNtIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLW1kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm10LTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+V2lsbCBiZSB1c2VkIGFzIHRoZSBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpncmlkIHNtOmdyaWQtY29scy0zIHNtOmdhcC00IHNtOml0ZW1zLXN0YXJ0IHNtOmJvcmRlci10IHNtOmJvcmRlci1ncmF5LTIwMCBzbTpwdC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBzbTptdC1weCBzbTpwdC0yXCI+IE5vdGlmaWNhdGlvbiBQcmVmaXggVGV4dCA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBzbTptdC0wIHNtOmNvbC1zcGFuLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPVwibm90aWZpY2F0aW9uUHJlZml4VGV4dFwiIHJvd3M9XCIzXCIgWyhuZ01vZGVsKV09XCJhbGVydEdyb3VwLm5vdGlmaWNhdGlvblByZWZpeFRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF4LXctbGcgc2hhZG93LXNtIGJsb2NrIHctZnVsbCBzbTp0ZXh0LXNtIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1tZFwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm10LTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+VGV4dCB0byBpbmNsdWRlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5vdGlmaWNhdGlvbjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206Z3JpZCBzbTpncmlkLWNvbHMtMyBzbTpnYXAtNCBzbTppdGVtcy1zdGFydCBzbTpib3JkZXItdCBzbTpib3JkZXItZ3JheS0yMDAgc206cHQtNVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgc206bXQtcHggc206cHQtMlwiPiBOb3RpZmljYXRpb24gU3VmZml4IFRleHQgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEgc206bXQtMCBzbTpjb2wtc3Bhbi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT1cIm5vdGlmaWNhdGlvblN1ZmZpeFRleHRcIiByb3dzPVwiM1wiIFsobmdNb2RlbCldPVwiYWxlcnRHcm91cC5ub3RpZmljYXRpb25TdWZmaXhUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1heC13LWxnIHNoYWRvdy1zbSBibG9jayB3LWZ1bGwgc206dGV4dC1zbSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWRcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0yIHRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlRleHQgdG8gaW5jbHVkZSBhdCB0aGUgZW5kIG9mIHRoZSBub3RpZmljYXRpb248L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHQtNVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3JvdXRlckxpbmtdPVwiW3JvdXRlUGF0aF1cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLXdoaXRlIHB5LTIgcHgtNCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWQgc2hhZG93LXNtIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTUwIGZvY3VzOm91dGxpbmUtbm9uZVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhYWxlcnRHcm91cC50aXRsZSB8fCAoIWFsZXJ0R3JvdXAudGFza1RpbWVQZXJpb2RzIHx8ICFhbGVydEdyb3VwLnRhc2tUaW1lUGVyaW9kcy5sZW5ndGgpIHx8ICghYWxlcnRHcm91cC5ub3RpZmljYXRpb25Hcm91cHMgfHwgIWFsZXJ0R3JvdXAubm90aWZpY2F0aW9uR3JvdXBzLmxlbmd0aClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRpc2FibGVkOm9wYWNpdHktNTAgbWwtMyBpbmxpbmUtZmxleCBqdXN0aWZ5LWNlbnRlciBweS0yIHB4LTQgYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBzaGFkb3ctc20gdGV4dC1zbSBmb250LW1lZGl1bSByb3VuZGVkLW1kIHRleHQtd2hpdGUgYmctcHJpbWFyeSBmb2N1czpvdXRsaW5lLW5vbmVcIj5cbiAgICAgICAgICAgICAgICBTYXZlIENoYW5nZXM8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==