@c8y/ngx-components 1021.11.1 → 1021.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/alarms/alarms-date-filter.component.d.ts +34 -0
  2. package/alarms/alarms-date-filter.component.d.ts.map +1 -0
  3. package/alarms/alarms-filter.component.d.ts +2 -1
  4. package/alarms/alarms-filter.component.d.ts.map +1 -1
  5. package/alarms/alarms-list.component.d.ts +2 -17
  6. package/alarms/alarms-list.component.d.ts.map +1 -1
  7. package/alarms/alarms-view.service.d.ts +5 -2
  8. package/alarms/alarms-view.service.d.ts.map +1 -1
  9. package/alarms/alarms.component.d.ts +3 -1
  10. package/alarms/alarms.component.d.ts.map +1 -1
  11. package/alarms/alarms.model.d.ts +47 -1
  12. package/alarms/alarms.model.d.ts.map +1 -1
  13. package/alarms/alarms.module.d.ts +15 -13
  14. package/alarms/alarms.module.d.ts.map +1 -1
  15. package/branding/shared/data/store-branding.service.d.ts +5 -0
  16. package/branding/shared/data/store-branding.service.d.ts.map +1 -1
  17. package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
  18. package/context-dashboard/context-dashboard.model.d.ts +1 -0
  19. package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
  20. package/context-dashboard/context-dashboard.service.d.ts +7 -5
  21. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  22. package/context-dashboard/dashboard-detail.component.d.ts +4 -7
  23. package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
  24. package/context-dashboard/dashboard-detail.service.d.ts +4 -4
  25. package/context-dashboard/dashboard-detail.service.d.ts.map +1 -1
  26. package/context-dashboard/dashboard-settings/dashboard-general-settings.component.d.ts +2 -2
  27. package/context-dashboard/dashboard-settings/dashboard-general-settings.component.d.ts.map +1 -1
  28. package/context-dashboard/dashboard-settings/typed-dashboard-settings.component.d.ts +19 -6
  29. package/context-dashboard/dashboard-settings/typed-dashboard-settings.component.d.ts.map +1 -1
  30. package/core/action-bar/action-bar-item.component.d.ts +1 -1
  31. package/core/action-bar/action-bar-item.component.d.ts.map +1 -1
  32. package/core/action-bar/action-bar.module.d.ts +6 -6
  33. package/core/action-bar/action-bar.module.d.ts.map +1 -1
  34. package/core/bootstrap/bootstrap.component.d.ts +3 -1
  35. package/core/bootstrap/bootstrap.component.d.ts.map +1 -1
  36. package/core/common/aggregation/aggregation.model.d.ts +39 -0
  37. package/core/common/aggregation/aggregation.model.d.ts.map +1 -0
  38. package/core/common/aggregation/aggregation.service.d.ts +17 -0
  39. package/core/common/aggregation/aggregation.service.d.ts.map +1 -0
  40. package/core/common/index.d.ts +4 -0
  41. package/core/common/index.d.ts.map +1 -1
  42. package/core/common/inter-app.service.d.ts +48 -0
  43. package/core/common/inter-app.service.d.ts.map +1 -0
  44. package/core/common/interval-based-reload.abstract.d.ts +120 -0
  45. package/core/common/interval-based-reload.abstract.d.ts.map +1 -0
  46. package/core/dashboard/dashboard.module.d.ts +26 -20
  47. package/core/dashboard/dashboard.module.d.ts.map +1 -1
  48. package/core/dashboard/index.d.ts +3 -0
  49. package/core/dashboard/index.d.ts.map +1 -1
  50. package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts +31 -0
  51. package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts.map +1 -0
  52. package/core/dashboard/widget-auto-refresh-context/auto-refresh-select-control.component.d.ts +17 -0
  53. package/core/dashboard/widget-auto-refresh-context/auto-refresh-select-control.component.d.ts.map +1 -0
  54. package/core/dashboard/widget-auto-refresh-context/global-refresh-loading.operator.d.ts +4 -0
  55. package/core/dashboard/widget-auto-refresh-context/global-refresh-loading.operator.d.ts.map +1 -0
  56. package/core/dashboard/widget-auto-refresh-context/index.d.ts +8 -0
  57. package/core/dashboard/widget-auto-refresh-context/index.d.ts.map +1 -0
  58. package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context-icon-bar.component.d.ts +7 -0
  59. package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context-icon-bar.component.d.ts.map +1 -0
  60. package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.d.ts +29 -0
  61. package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.d.ts.map +1 -0
  62. package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.model.d.ts +15 -0
  63. package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.model.d.ts.map +1 -0
  64. package/core/dashboard/widget-auto-refresh-context/widget-global-auto-refresh.service.d.ts +169 -0
  65. package/core/dashboard/widget-auto-refresh-context/widget-global-auto-refresh.service.d.ts.map +1 -0
  66. package/core/dashboard/widget-change-event.model.d.ts +1 -1
  67. package/core/dashboard/widget-change-event.model.d.ts.map +1 -1
  68. package/core/dashboard/widgets-dashboard.component.d.ts +6 -3
  69. package/core/dashboard/widgets-dashboard.component.d.ts.map +1 -1
  70. package/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.d.ts +2 -2
  71. package/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.d.ts.map +1 -1
  72. package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts +2 -1
  73. package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts.map +1 -1
  74. package/core/dashboard/wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component.d.ts +1 -1
  75. package/core/dashboard/wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component.d.ts.map +1 -1
  76. package/core/dashboard/wiget-time-context/widget-time-context-query.service.d.ts.map +1 -1
  77. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +12 -8
  78. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
  79. package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts +7 -26
  80. package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts.map +1 -1
  81. package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
  82. package/core/header/header.module.d.ts +18 -18
  83. package/core/header/header.module.d.ts.map +1 -1
  84. package/core/header/title/title.component.d.ts +1 -1
  85. package/core/header/title/title.component.d.ts.map +1 -1
  86. package/core/i18n/cached-locale-dictionary.service.d.ts +5 -1
  87. package/core/i18n/cached-locale-dictionary.service.d.ts.map +1 -1
  88. package/core/i18n/i18n.module.d.ts +0 -4
  89. package/core/i18n/i18n.module.d.ts.map +1 -1
  90. package/core/i18n/index.d.ts +2 -1
  91. package/core/i18n/index.d.ts.map +1 -1
  92. package/core/i18n/translation-loader.service.d.ts +50 -0
  93. package/core/i18n/translation-loader.service.d.ts.map +1 -0
  94. package/core/i18n/translation-utils.d.ts +14 -0
  95. package/core/i18n/translation-utils.d.ts.map +1 -0
  96. package/core/plugins/plugins-resolve.service.d.ts +7 -10
  97. package/core/plugins/plugins-resolve.service.d.ts.map +1 -1
  98. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form-validation.service.d.ts +2 -1
  99. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form-validation.service.d.ts.map +1 -1
  100. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +11 -2
  101. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
  102. package/datapoint-selector/datapoint-selection.model.d.ts +6 -0
  103. package/datapoint-selector/datapoint-selection.model.d.ts.map +1 -1
  104. package/datapoints-export-selector/c8y-ngx-components-datapoints-export-selector.d.ts.map +1 -0
  105. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.d.ts +117 -0
  106. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.d.ts.map +1 -0
  107. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-processing.service.d.ts +90 -0
  108. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-processing.service.d.ts.map +1 -0
  109. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.component.d.ts +160 -0
  110. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.component.d.ts.map +1 -0
  111. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.service.d.ts +89 -0
  112. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.service.d.ts.map +1 -0
  113. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-preview/datapoints-export-selector-preview.component.d.ts +11 -0
  114. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-preview/datapoints-export-selector-preview.component.d.ts.map +1 -0
  115. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-data-scope/datapoints-exports-selector-data-scope.component.d.ts +27 -0
  116. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-data-scope/datapoints-exports-selector-data-scope.component.d.ts.map +1 -0
  117. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-file-types/datapoints-exports-selector-file-types.component.d.ts +12 -0
  118. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-file-types/datapoints-exports-selector-file-types.component.d.ts.map +1 -0
  119. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-time-range/datapoints-exports-selector-time-range.component.d.ts +22 -0
  120. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-time-range/datapoints-exports-selector-time-range.component.d.ts.map +1 -0
  121. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/csv-generator.d.ts +3 -0
  122. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/csv-generator.d.ts.map +1 -0
  123. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/excel-generator.d.ts +9 -0
  124. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/excel-generator.d.ts.map +1 -0
  125. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/utils.service.d.ts +56 -0
  126. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/utils.service.d.ts.map +1 -0
  127. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-modal.component.d.ts +21 -0
  128. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-modal.component.d.ts.map +1 -0
  129. package/datapoints-export-selector/datapoints-export-selector.component.d.ts +14 -0
  130. package/datapoints-export-selector/datapoints-export-selector.component.d.ts.map +1 -0
  131. package/datapoints-export-selector/datapoints-export-selector.model.d.ts +232 -0
  132. package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -0
  133. package/datapoints-export-selector/index.d.ts +15 -0
  134. package/datapoints-export-selector/index.d.ts.map +1 -0
  135. package/device-list/device-list.module.d.ts +4 -2
  136. package/device-list/device-list.module.d.ts.map +1 -1
  137. package/esm2022/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.mjs +4 -4
  138. package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +3 -3
  139. package/esm2022/alarms/alarms-date-filter.component.mjs +139 -0
  140. package/esm2022/alarms/alarms-filter.component.mjs +11 -5
  141. package/esm2022/alarms/alarms-list.component.mjs +5 -16
  142. package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
  143. package/esm2022/alarms/alarms-view.service.mjs +16 -2
  144. package/esm2022/alarms/alarms.component.mjs +12 -6
  145. package/esm2022/alarms/alarms.model.mjs +17 -1
  146. package/esm2022/alarms/alarms.module.mjs +11 -4
  147. package/esm2022/branding/shared/data/store-branding.service.mjs +24 -1
  148. package/esm2022/branding/shared/lazy/branding/branding.component.mjs +3 -1
  149. package/esm2022/context-dashboard/context-dashboard.component.mjs +4 -4
  150. package/esm2022/context-dashboard/context-dashboard.model.mjs +1 -1
  151. package/esm2022/context-dashboard/context-dashboard.service.mjs +47 -21
  152. package/esm2022/context-dashboard/dashboard-detail.component.mjs +8 -16
  153. package/esm2022/context-dashboard/dashboard-detail.service.mjs +13 -6
  154. package/esm2022/context-dashboard/dashboard-settings/dashboard-general-settings.component.mjs +3 -3
  155. package/esm2022/context-dashboard/dashboard-settings/typed-dashboard-settings.component.mjs +32 -11
  156. package/esm2022/core/action-bar/action-bar-item.component.mjs +3 -3
  157. package/esm2022/core/action-bar/action-bar.component.mjs +3 -3
  158. package/esm2022/core/action-bar/action-bar.module.mjs +16 -5
  159. package/esm2022/core/bootstrap/bootstrap.component.mjs +21 -16
  160. package/esm2022/core/common/aggregation/aggregation.model.mjs +46 -0
  161. package/esm2022/core/common/aggregation/aggregation.service.mjs +34 -0
  162. package/esm2022/core/common/humanize-app-name.model.mjs +2 -2
  163. package/esm2022/core/common/humanize-app-name.pipe.mjs +2 -2
  164. package/esm2022/core/common/index.mjs +5 -1
  165. package/esm2022/core/common/inter-app.service.mjs +76 -0
  166. package/esm2022/core/common/interval-based-reload.abstract.mjs +110 -0
  167. package/esm2022/core/countdown-interval/countdown-interval.component.mjs +3 -3
  168. package/esm2022/core/dashboard/dashboard-child.component.mjs +6 -5
  169. package/esm2022/core/dashboard/dashboard.module.mjs +22 -4
  170. package/esm2022/core/dashboard/index.mjs +4 -1
  171. package/esm2022/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.mjs +101 -0
  172. package/esm2022/core/dashboard/widget-auto-refresh-context/auto-refresh-select-control.component.mjs +50 -0
  173. package/esm2022/core/dashboard/widget-auto-refresh-context/global-refresh-loading.operator.mjs +7 -0
  174. package/esm2022/core/dashboard/widget-auto-refresh-context/index.mjs +8 -0
  175. package/esm2022/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context-icon-bar.component.mjs +18 -0
  176. package/esm2022/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.mjs +127 -0
  177. package/esm2022/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.model.mjs +5 -0
  178. package/esm2022/core/dashboard/widget-auto-refresh-context/widget-global-auto-refresh.service.mjs +233 -0
  179. package/esm2022/core/dashboard/widget-change-event.model.mjs +1 -1
  180. package/esm2022/core/dashboard/widgets-dashboard.component.mjs +35 -30
  181. package/esm2022/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.mjs +4 -4
  182. package/esm2022/core/dashboard/wiget-time-context/realtime-control/realtime-control.component.mjs +2 -2
  183. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-helper.service.mjs +3 -2
  184. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component.mjs +5 -5
  185. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-query.service.mjs +7 -4
  186. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +37 -36
  187. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.model.mjs +1 -72
  188. package/esm2022/core/date-time-picker/date-time-picker.component.mjs +9 -3
  189. package/esm2022/core/header/header.module.mjs +7 -5
  190. package/esm2022/core/header/title/title.component.mjs +3 -3
  191. package/esm2022/core/i18n/cached-locale-dictionary.service.mjs +1 -1
  192. package/esm2022/core/i18n/i18n.module.mjs +7 -14
  193. package/esm2022/core/i18n/index.mjs +3 -2
  194. package/esm2022/core/i18n/translate.parser.mjs +2 -2
  195. package/esm2022/core/i18n/translation-loader.service.mjs +132 -0
  196. package/esm2022/core/i18n/translation-utils.mjs +24 -0
  197. package/esm2022/core/list-display-switch/list-display-switch.component.mjs +3 -3
  198. package/esm2022/core/plugins/plugins-resolve.service.mjs +12 -37
  199. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form-validation.service.mjs +13 -6
  200. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +22 -5
  201. package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs +3 -3
  202. package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
  203. package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
  204. package/esm2022/datapoints-export-selector/c8y-ngx-components-datapoints-export-selector.mjs +5 -0
  205. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.mjs +407 -0
  206. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-processing.service.mjs +207 -0
  207. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.component.mjs +467 -0
  208. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.service.mjs +187 -0
  209. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-preview/datapoints-export-selector-preview.component.mjs +27 -0
  210. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-data-scope/datapoints-exports-selector-data-scope.component.mjs +41 -0
  211. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-file-types/datapoints-exports-selector-file-types.component.mjs +23 -0
  212. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-time-range/datapoints-exports-selector-time-range.component.mjs +42 -0
  213. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/csv-generator.mjs +120 -0
  214. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/excel-generator.mjs +282 -0
  215. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/utils.service.mjs +76 -0
  216. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-modal.component.mjs +46 -0
  217. package/esm2022/datapoints-export-selector/datapoints-export-selector.component.mjs +42 -0
  218. package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +43 -0
  219. package/esm2022/datapoints-export-selector/index.mjs +15 -0
  220. package/esm2022/device-list/add-smart-group.component.mjs +4 -3
  221. package/esm2022/device-list/device-list.module.mjs +22 -4
  222. package/esm2022/interval-picker/c8y-ngx-components-interval-picker.mjs +5 -0
  223. package/esm2022/interval-picker/index.mjs +3 -0
  224. package/esm2022/interval-picker/interval-picker.component.mjs +68 -0
  225. package/esm2022/interval-picker/interval-picker.model.mjs +47 -0
  226. package/esm2022/map/cluster-map.component.mjs +41 -13
  227. package/esm2022/map/map-status.component.mjs +6 -5
  228. package/esm2022/map/map.component.mjs +9 -5
  229. package/esm2022/map/map.model.mjs +1 -1
  230. package/esm2022/translation-editor/c8y-ngx-components-translation-editor.mjs +5 -0
  231. package/esm2022/translation-editor/data/c8y-ngx-components-translation-editor-data.mjs +5 -0
  232. package/esm2022/translation-editor/data/index.mjs +2 -0
  233. package/esm2022/translation-editor/data/translation-store.service.mjs +175 -0
  234. package/esm2022/translation-editor/index.mjs +10 -0
  235. package/esm2022/translation-editor/lazy/add-translation-modal/add-translation-modal.component.mjs +70 -0
  236. package/esm2022/translation-editor/lazy/c8y-ngx-components-translation-editor-lazy.mjs +5 -0
  237. package/esm2022/translation-editor/lazy/index.mjs +2 -0
  238. package/esm2022/translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.mjs +53 -0
  239. package/esm2022/translation-editor/lazy/translation-editor/translation-editor.component.mjs +124 -0
  240. package/esm2022/translation-editor/translation-editor-naviagtor-factory.service.mjs +31 -0
  241. package/esm2022/widgets/cockpit/index.mjs +4 -2
  242. package/esm2022/widgets/cockpit-exports/index.mjs +8 -1
  243. package/esm2022/widgets/definitions/alarms/alarm-list/index.mjs +6 -2
  244. package/esm2022/widgets/definitions/alarms/all-critical-alarms/index.mjs +6 -2
  245. package/esm2022/widgets/definitions/alarms/recent-alarms/index.mjs +6 -2
  246. package/esm2022/widgets/definitions/datapoints-table/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +5 -0
  247. package/esm2022/widgets/definitions/datapoints-table/index.mjs +34 -0
  248. package/esm2022/widgets/definitions/index.mjs +2 -1
  249. package/esm2022/widgets/definitions/map/index.mjs +4 -2
  250. package/esm2022/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.mjs +29 -15
  251. package/esm2022/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.mjs +57 -25
  252. package/esm2022/widgets/implementations/alarms/alarm-list-widget.model.mjs +2 -1
  253. package/esm2022/widgets/implementations/alarms/alarm-widget-alarms-reload.component.mjs +19 -21
  254. package/esm2022/widgets/implementations/datapoints-table/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +5 -0
  255. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +383 -0
  256. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.service.mjs +124 -0
  257. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/adjust-aggregated-time-range.pipe.mjs +191 -0
  258. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/apply-range-class.pipe.mjs +36 -0
  259. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/column-title.pipe.mjs +45 -0
  260. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.mjs +116 -0
  261. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.mjs +116 -0
  262. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/dynamic-column.directive.mjs +43 -0
  263. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.mjs +282 -0
  264. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.service.mjs +430 -0
  265. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/virtual-scroll-listener.directive.mjs +75 -0
  266. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-widget.model.mjs +76 -0
  267. package/esm2022/widgets/implementations/datapoints-table/datapoints-table.service.mjs +52 -0
  268. package/esm2022/widgets/implementations/datapoints-table/date-range-picker.component.mjs +68 -0
  269. package/esm2022/widgets/implementations/datapoints-table/index.mjs +10 -0
  270. package/esm2022/widgets/implementations/map/map-widget-config.component.mjs +19 -11
  271. package/esm2022/widgets/implementations/map/map-widget.component.mjs +20 -2
  272. package/esm2022/widgets/implementations/map/map-widget.model.mjs +1 -1
  273. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +5 -5
  274. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  275. package/fesm2022/c8y-ngx-components-alarms.mjs +189 -31
  276. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  277. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +23 -0
  278. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  279. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -0
  280. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  281. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +135 -91
  282. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  283. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +37 -13
  284. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  285. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +1928 -0
  286. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -0
  287. package/fesm2022/c8y-ngx-components-device-list.mjs +24 -5
  288. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  289. package/fesm2022/c8y-ngx-components-interval-picker.mjs +120 -0
  290. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -0
  291. package/fesm2022/c8y-ngx-components-map.mjs +52 -19
  292. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  293. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +181 -0
  294. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -0
  295. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +236 -0
  296. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -0
  297. package/fesm2022/c8y-ngx-components-translation-editor.mjs +46 -0
  298. package/fesm2022/c8y-ngx-components-translation-editor.mjs.map +1 -0
  299. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +7 -0
  300. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
  301. package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs +3 -1
  302. package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
  303. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +5 -1
  304. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  305. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs +5 -1
  306. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs.map +1 -1
  307. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs +5 -1
  308. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
  309. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +41 -0
  310. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -0
  311. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +3 -1
  312. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
  313. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +1 -0
  314. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
  315. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +101 -58
  316. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  317. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +1967 -0
  318. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -0
  319. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +37 -11
  320. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  321. package/fesm2022/c8y-ngx-components.mjs +5093 -4369
  322. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  323. package/interval-picker/c8y-ngx-components-interval-picker.d.ts.map +1 -0
  324. package/interval-picker/index.d.ts +3 -0
  325. package/interval-picker/index.d.ts.map +1 -0
  326. package/{core/dashboard/wiget-time-context/interval-picker → interval-picker}/interval-picker.component.d.ts +10 -2
  327. package/interval-picker/interval-picker.component.d.ts.map +1 -0
  328. package/interval-picker/interval-picker.model.d.ts +15 -0
  329. package/interval-picker/interval-picker.model.d.ts.map +1 -0
  330. package/locales/de.po +289 -18
  331. package/locales/en.po +12 -0
  332. package/locales/en_US.po +3 -0
  333. package/locales/es.po +253 -18
  334. package/locales/fr.po +253 -18
  335. package/locales/ja_JP.po +282 -18
  336. package/locales/locales.pot +266 -21
  337. package/locales/nl.po +253 -18
  338. package/locales/pl.po +253 -18
  339. package/locales/pt_BR.po +253 -18
  340. package/map/cluster-map.component.d.ts +8 -3
  341. package/map/cluster-map.component.d.ts.map +1 -1
  342. package/map/map-status.component.d.ts +0 -3
  343. package/map/map-status.component.d.ts.map +1 -1
  344. package/map/map.component.d.ts +4 -2
  345. package/map/map.component.d.ts.map +1 -1
  346. package/map/map.model.d.ts +2 -1
  347. package/map/map.model.d.ts.map +1 -1
  348. package/package.json +1 -1
  349. package/translation-editor/c8y-ngx-components-translation-editor.d.ts.map +1 -0
  350. package/translation-editor/data/c8y-ngx-components-translation-editor-data.d.ts.map +1 -0
  351. package/translation-editor/data/index.d.ts +2 -0
  352. package/translation-editor/data/index.d.ts.map +1 -0
  353. package/translation-editor/data/translation-store.service.d.ts +61 -0
  354. package/translation-editor/data/translation-store.service.d.ts.map +1 -0
  355. package/translation-editor/index.d.ts +2 -0
  356. package/translation-editor/index.d.ts.map +1 -0
  357. package/translation-editor/lazy/add-translation-modal/add-translation-modal.component.d.ts +30 -0
  358. package/translation-editor/lazy/add-translation-modal/add-translation-modal.component.d.ts.map +1 -0
  359. package/translation-editor/lazy/c8y-ngx-components-translation-editor-lazy.d.ts.map +1 -0
  360. package/translation-editor/lazy/index.d.ts +2 -0
  361. package/translation-editor/lazy/index.d.ts.map +1 -0
  362. package/translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.d.ts +22 -0
  363. package/translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.d.ts.map +1 -0
  364. package/translation-editor/lazy/translation-editor/translation-editor.component.d.ts +34 -0
  365. package/translation-editor/lazy/translation-editor/translation-editor.component.d.ts.map +1 -0
  366. package/translation-editor/translation-editor-naviagtor-factory.service.d.ts +11 -0
  367. package/translation-editor/translation-editor-naviagtor-factory.service.d.ts.map +1 -0
  368. package/widgets/cockpit/index.d.ts +13 -0
  369. package/widgets/cockpit/index.d.ts.map +1 -1
  370. package/widgets/cockpit-exports/index.d.ts +6 -0
  371. package/widgets/cockpit-exports/index.d.ts.map +1 -1
  372. package/widgets/definitions/alarms/alarm-list/index.d.ts +2 -0
  373. package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
  374. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts +2 -0
  375. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts.map +1 -1
  376. package/widgets/definitions/alarms/recent-alarms/index.d.ts +2 -0
  377. package/widgets/definitions/alarms/recent-alarms/index.d.ts.map +1 -1
  378. package/widgets/definitions/datapoints-table/c8y-ngx-components-widgets-definitions-datapoints-table.d.ts.map +1 -0
  379. package/widgets/definitions/datapoints-table/index.d.ts +14 -0
  380. package/widgets/definitions/datapoints-table/index.d.ts.map +1 -0
  381. package/widgets/definitions/index.d.ts +1 -0
  382. package/widgets/definitions/index.d.ts.map +1 -1
  383. package/widgets/definitions/map/index.d.ts +2 -1
  384. package/widgets/definitions/map/index.d.ts.map +1 -1
  385. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts +5 -9
  386. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
  387. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts +17 -10
  388. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
  389. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts +5 -1
  390. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts.map +1 -1
  391. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts +5 -11
  392. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts.map +1 -1
  393. package/widgets/implementations/datapoints-table/c8y-ngx-components-widgets-implementations-datapoints-table.d.ts.map +1 -0
  394. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts +129 -0
  395. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -0
  396. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.service.d.ts +56 -0
  397. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.service.d.ts.map +1 -0
  398. package/widgets/implementations/datapoints-table/datapoints-table-view/adjust-aggregated-time-range.pipe.d.ts +88 -0
  399. package/widgets/implementations/datapoints-table/datapoints-table-view/adjust-aggregated-time-range.pipe.d.ts.map +1 -0
  400. package/widgets/implementations/datapoints-table/datapoints-table-view/apply-range-class.pipe.d.ts +19 -0
  401. package/widgets/implementations/datapoints-table/datapoints-table-view/apply-range-class.pipe.d.ts.map +1 -0
  402. package/widgets/implementations/datapoints-table/datapoints-table-view/column-title.pipe.d.ts +26 -0
  403. package/widgets/implementations/datapoints-table/datapoints-table-view/column-title.pipe.d.ts.map +1 -0
  404. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.d.ts +63 -0
  405. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.d.ts.map +1 -0
  406. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.d.ts +38 -0
  407. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.d.ts.map +1 -0
  408. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/dynamic-column.directive.d.ts +13 -0
  409. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/dynamic-column.directive.d.ts.map +1 -0
  410. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts +123 -0
  411. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts.map +1 -0
  412. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.service.d.ts +196 -0
  413. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.service.d.ts.map +1 -0
  414. package/widgets/implementations/datapoints-table/datapoints-table-view/virtual-scroll-listener.directive.d.ts +41 -0
  415. package/widgets/implementations/datapoints-table/datapoints-table-view/virtual-scroll-listener.directive.d.ts.map +1 -0
  416. package/widgets/implementations/datapoints-table/datapoints-table-widget.model.d.ts +175 -0
  417. package/widgets/implementations/datapoints-table/datapoints-table-widget.model.d.ts.map +1 -0
  418. package/widgets/implementations/datapoints-table/datapoints-table.service.d.ts +12 -0
  419. package/widgets/implementations/datapoints-table/datapoints-table.service.d.ts.map +1 -0
  420. package/widgets/implementations/datapoints-table/date-range-picker.component.d.ts +34 -0
  421. package/widgets/implementations/datapoints-table/date-range-picker.component.d.ts.map +1 -0
  422. package/widgets/implementations/datapoints-table/index.d.ts +10 -0
  423. package/widgets/implementations/datapoints-table/index.d.ts.map +1 -0
  424. package/widgets/implementations/map/map-widget-config.component.d.ts +4 -4
  425. package/widgets/implementations/map/map-widget-config.component.d.ts.map +1 -1
  426. package/widgets/implementations/map/map-widget.component.d.ts +8 -3
  427. package/widgets/implementations/map/map-widget.component.d.ts.map +1 -1
  428. package/widgets/implementations/map/map-widget.model.d.ts +4 -3
  429. package/widgets/implementations/map/map-widget.model.d.ts.map +1 -1
  430. package/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.d.ts.map +0 -1
  431. package/core/i18n/translate.loader.d.ts +0 -31
  432. package/core/i18n/translate.loader.d.ts.map +0 -1
  433. package/esm2022/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.mjs +0 -55
  434. package/esm2022/core/i18n/translate.loader.mjs +0 -71
@@ -0,0 +1,127 @@
1
+ import { Component, inject, Input } from '@angular/core';
2
+ import { FormBuilder } from '@angular/forms';
3
+ import { filter, takeUntil, tap } from 'rxjs/operators';
4
+ import { BehaviorSubject, Subject } from 'rxjs';
5
+ import { GLOBAL_CONTEXT_AUTO_REFRESH } from './widget-auto-refresh-context.model';
6
+ import { WidgetGlobalAutoRefreshService } from './widget-global-auto-refresh.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../common/icon.directive";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "../../action-bar/action-bar-item.component";
11
+ import * as i4 from "ngx-bootstrap/tooltip";
12
+ import * as i5 from "@angular/forms";
13
+ import * as i6 from "./auto-refresh-control.component";
14
+ import * as i7 from "./auto-refresh-select-control.component";
15
+ import * as i8 from "@ngx-translate/core";
16
+ export class WidgetAutoRefreshContextComponent {
17
+ constructor() {
18
+ this.globalRefreshWidgetLoading = true;
19
+ this.ACTION_BAR_GROUP_ID = 'globalrefreshcontext';
20
+ this.ACTION_BAR_PRIORITY = 5;
21
+ this.destroy$ = new Subject();
22
+ this.fb = inject(FormBuilder);
23
+ this.widgetGlobalAutoRefresh = inject(WidgetGlobalAutoRefreshService);
24
+ }
25
+ ngOnInit() {
26
+ this.widgetGlobalAutoRefresh.globalRefreshWidgetsCount.update(count => count + 1);
27
+ this.form = this.createForm();
28
+ this.subscribeOnAutoRefreshSecondsChange();
29
+ this.subscribeOnAutoRefreshChange();
30
+ this.subscribeOnRouterEvents();
31
+ }
32
+ ngAfterViewInit() {
33
+ this.initializeWidgetSubscriptions();
34
+ this.subscribeOnQueryParamChange();
35
+ this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$
36
+ .pipe(tap(() => this.setAutoRefreshQueryParam()))
37
+ .pipe(takeUntil(this.destroy$))
38
+ .subscribe();
39
+ this.widgetGlobalAutoRefresh
40
+ .initializeAutoRefreshCountdownLoading$(this.editMode$)
41
+ .pipe(takeUntil(this.destroy$))
42
+ .subscribe();
43
+ this.listenOnDashboardSaveOperation();
44
+ }
45
+ ngOnDestroy() {
46
+ this.onContextDestroy();
47
+ }
48
+ onRefresh() {
49
+ this.widgetGlobalAutoRefresh.countdownActions.countdownEnded$.next();
50
+ }
51
+ createForm() {
52
+ return this.fb.group({
53
+ autoRefresh: this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$.getValue(),
54
+ autoRefreshSeconds: this.widgetGlobalAutoRefresh.autoRefreshSettings.refreshInterval$.getValue()
55
+ });
56
+ }
57
+ subscribeOnAutoRefreshSecondsChange() {
58
+ const autoRefreshSecondsChanges$ = this.form.controls.autoRefreshSeconds.valueChanges;
59
+ autoRefreshSecondsChanges$
60
+ .pipe(tap(value => this.widgetGlobalAutoRefresh.autoRefreshSettings.refreshInterval$.next(value)), this.widgetGlobalAutoRefresh.resetCountdownOnLoadingComplete$(), takeUntil(this.destroy$))
61
+ .subscribe();
62
+ }
63
+ subscribeOnAutoRefreshChange() {
64
+ const autoRefreshChanges$ = this.form.controls.autoRefresh.valueChanges;
65
+ autoRefreshChanges$
66
+ .pipe(tap(value => this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$.next(value)), filter(Boolean), this.widgetGlobalAutoRefresh.resetCountdownOnLoadingComplete$(), takeUntil(this.destroy$))
67
+ .subscribe();
68
+ }
69
+ initializeWidgetSubscriptions() {
70
+ this.editMode$
71
+ .pipe(takeUntil(this.destroy$))
72
+ .subscribe(editMode => this.widgetGlobalAutoRefresh.onEditModeChange(editMode));
73
+ }
74
+ setAutoRefreshQueryParam() {
75
+ queueMicrotask(() => {
76
+ if (this.widgetGlobalAutoRefresh.globalRefreshWidgetsCount() === 0) {
77
+ return;
78
+ }
79
+ const queryParam = {
80
+ [GLOBAL_CONTEXT_AUTO_REFRESH]: this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$.getValue()
81
+ };
82
+ this.widgetGlobalAutoRefresh.setAutoRefreshQueryParam(queryParam);
83
+ });
84
+ }
85
+ subscribeOnQueryParamChange() {
86
+ this.widgetGlobalAutoRefresh
87
+ .getQueryParamChangeValue$()
88
+ .pipe(tap(paramValue => paramValue === null && this.setAutoRefreshQueryParam()), filter(paramValue => paramValue !== null &&
89
+ this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$.getValue() !== paramValue), tap(paramValue => {
90
+ this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$.next(paramValue);
91
+ this.setAutoRefreshQueryParam();
92
+ if (paramValue) {
93
+ this.widgetGlobalAutoRefresh.resetCountdown();
94
+ }
95
+ }), takeUntil(this.destroy$))
96
+ .subscribe();
97
+ }
98
+ subscribeOnRouterEvents() {
99
+ this.widgetGlobalAutoRefresh
100
+ .handleNavigationInProgress$()
101
+ .pipe(takeUntil(this.destroy$))
102
+ .subscribe();
103
+ }
104
+ onContextDestroy() {
105
+ const widgetsCount = this.widgetGlobalAutoRefresh.globalRefreshWidgetsCount;
106
+ widgetsCount.update(count => count - 1);
107
+ if (widgetsCount() === 0) {
108
+ this.destroy$.next();
109
+ this.destroy$.complete();
110
+ this.widgetGlobalAutoRefresh.resetServiceToDefaults();
111
+ }
112
+ }
113
+ listenOnDashboardSaveOperation() {
114
+ this.widgetGlobalAutoRefresh.onDashboardSave$
115
+ .pipe(this.widgetGlobalAutoRefresh.resetCountdownOnLoadingComplete$(), takeUntil(this.destroy$))
116
+ .subscribe();
117
+ }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WidgetAutoRefreshContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: WidgetAutoRefreshContextComponent, selector: "c8y-widget-auto-refresh-context", inputs: { editMode$: "editMode$" }, ngImport: i0, template: "<c8y-action-bar-item\n [groupId]=\"ACTION_BAR_GROUP_ID\"\n [priority]=\"ACTION_BAR_PRIORITY\"\n [placement]=\"'left'\"\n>\n <form\n class=\"d-flex\"\n [formGroup]=\"form\"\n >\n <c8y-auto-refresh-control\n [hidden]=\"editMode$ | async\"\n (loading)=\"globalRefreshWidgetLoading = $event\"\n formControlName=\"autoRefresh\"\n ></c8y-auto-refresh-control>\n\n <c8y-auto-refresh-select-control\n [hidden]=\"editMode$ | async\"\n formControlName=\"autoRefreshSeconds\"\n ></c8y-auto-refresh-select-control>\n </form>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n style=\"border-left: 0\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"'Refresh' | translate\"\n placement=\"bottom\"\n type=\"button\"\n *ngIf=\"!(editMode$ | async)\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"globalRefreshWidgetLoading\"\n (click)=\"onRefresh()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': globalRefreshWidgetLoading }\"\n ></i>\n </button>\n </div>\n</c8y-action-bar-item>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.AutoRefreshControlComponent, selector: "c8y-auto-refresh-control", outputs: ["loading"] }, { kind: "component", type: i7.AutoRefreshSelectControlComponent, selector: "c8y-auto-refresh-select-control" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
120
+ }
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WidgetAutoRefreshContextComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ selector: 'c8y-widget-auto-refresh-context', template: "<c8y-action-bar-item\n [groupId]=\"ACTION_BAR_GROUP_ID\"\n [priority]=\"ACTION_BAR_PRIORITY\"\n [placement]=\"'left'\"\n>\n <form\n class=\"d-flex\"\n [formGroup]=\"form\"\n >\n <c8y-auto-refresh-control\n [hidden]=\"editMode$ | async\"\n (loading)=\"globalRefreshWidgetLoading = $event\"\n formControlName=\"autoRefresh\"\n ></c8y-auto-refresh-control>\n\n <c8y-auto-refresh-select-control\n [hidden]=\"editMode$ | async\"\n formControlName=\"autoRefreshSeconds\"\n ></c8y-auto-refresh-select-control>\n </form>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n style=\"border-left: 0\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"'Refresh' | translate\"\n placement=\"bottom\"\n type=\"button\"\n *ngIf=\"!(editMode$ | async)\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"globalRefreshWidgetLoading\"\n (click)=\"onRefresh()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': globalRefreshWidgetLoading }\"\n ></i>\n </button>\n </div>\n</c8y-action-bar-item>\n" }]
124
+ }], propDecorators: { editMode$: [{
125
+ type: Input
126
+ }] } });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUNMLDJCQUEyQixFQUU1QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7O0FBTXRGLE1BQU0sT0FBTyxpQ0FBaUM7SUFKOUM7UUFVRSwrQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDekIsd0JBQW1CLEdBQUcsc0JBQXNCLENBQUM7UUFDN0Msd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLGFBQVEsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQixPQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pCLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0tBMEluRjtJQXhJQyxRQUFRO1FBQ04sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVsRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsbUNBQW1DLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBRW5DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVO2FBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQzthQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyx1QkFBdUI7YUFDekIsc0NBQXNDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ25GLGtCQUFrQixFQUNoQixJQUFJLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO1NBQy9FLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxtQ0FBbUM7UUFDekMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7UUFFdEYsMEJBQTBCO2FBQ3ZCLElBQUksQ0FDSCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQzNGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsRUFBRSxFQUMvRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyw0QkFBNEI7UUFDbEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO1FBRXhFLG1CQUFtQjthQUNoQixJQUFJLENBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDckYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsRUFBRSxFQUMvRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyw2QkFBNkI7UUFDbkMsSUFBSSxDQUFDLFNBQVM7YUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBZ0M7Z0JBQzlDLENBQUMsMkJBQTJCLENBQUMsRUFDM0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7YUFDekUsQ0FBQztZQUNGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLHVCQUF1QjthQUN6Qix5QkFBeUIsRUFBRTthQUMzQixJQUFJLENBQ0gsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxFQUN6RSxNQUFNLENBQ0osVUFBVSxDQUFDLEVBQUUsQ0FDWCxVQUFVLEtBQUssSUFBSTtZQUNuQixJQUFJLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLFVBQVUsQ0FDeEYsRUFDRCxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksQ0FBQyx1QkFBdUI7YUFDekIsMkJBQTJCLEVBQUU7YUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMseUJBQXlCLENBQUM7UUFDNUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV4QyxJQUFJLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUV6QixJQUFJLENBQUMsdUJBQXVCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCO2FBQzFDLElBQUksQ0FDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0NBQWdDLEVBQUUsRUFDL0QsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDOzhHQXRKVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQywyR0NkOUMsdXBDQXlDQTs7MkZEM0JhLGlDQUFpQztrQkFKN0MsU0FBUzsrQkFDRSxpQ0FBaUM7OEJBTzNDLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgR0xPQkFMX0NPTlRFWFRfQVVUT19SRUZSRVNILFxuICBHbG9iYWxBdXRvUmVmcmVzaFF1ZXJ5UGFyYW1cbn0gZnJvbSAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQubW9kZWwnO1xuaW1wb3J0IHsgV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXQtZ2xvYmFsLWF1dG8tcmVmcmVzaC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXdpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldEF1dG9SZWZyZXNoQ29udGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgZm9ybTogUmV0dXJuVHlwZTxXaWRnZXRBdXRvUmVmcmVzaENvbnRleHRDb21wb25lbnRbJ2NyZWF0ZUZvcm0nXT47XG5cbiAgQElucHV0KClcbiAgZWRpdE1vZGUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgZ2xvYmFsUmVmcmVzaFdpZGdldExvYWRpbmcgPSB0cnVlO1xuICByZWFkb25seSBBQ1RJT05fQkFSX0dST1VQX0lEID0gJ2dsb2JhbHJlZnJlc2hjb250ZXh0JztcbiAgcmVhZG9ubHkgQUNUSU9OX0JBUl9QUklPUklUWSA9IDU7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2ggPSBpbmplY3QoV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmdsb2JhbFJlZnJlc2hXaWRnZXRzQ291bnQudXBkYXRlKGNvdW50ID0+IGNvdW50ICsgMSk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmNyZWF0ZUZvcm0oKTtcblxuICAgIHRoaXMuc3Vic2NyaWJlT25BdXRvUmVmcmVzaFNlY29uZHNDaGFuZ2UoKTtcbiAgICB0aGlzLnN1YnNjcmliZU9uQXV0b1JlZnJlc2hDaGFuZ2UoKTtcbiAgICB0aGlzLnN1YnNjcmliZU9uUm91dGVyRXZlbnRzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0U3Vic2NyaXB0aW9ucygpO1xuICAgIHRoaXMuc3Vic2NyaWJlT25RdWVyeVBhcmFtQ2hhbmdlKCk7XG5cbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MuaXNFbmFibGVkJFxuICAgICAgLnBpcGUodGFwKCgpID0+IHRoaXMuc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKCkpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaFxuICAgICAgLmluaXRpYWxpemVBdXRvUmVmcmVzaENvdW50ZG93bkxvYWRpbmckKHRoaXMuZWRpdE1vZGUkKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5saXN0ZW5PbkRhc2hib2FyZFNhdmVPcGVyYXRpb24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25Db250ZXh0RGVzdHJveSgpO1xuICB9XG5cbiAgb25SZWZyZXNoKCkge1xuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guY291bnRkb3duQWN0aW9ucy5jb3VudGRvd25FbmRlZCQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGF1dG9SZWZyZXNoOiB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MuaXNFbmFibGVkJC5nZXRWYWx1ZSgpLFxuICAgICAgYXV0b1JlZnJlc2hTZWNvbmRzOlxuICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MucmVmcmVzaEludGVydmFsJC5nZXRWYWx1ZSgpXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uQXV0b1JlZnJlc2hTZWNvbmRzQ2hhbmdlKCkge1xuICAgIGNvbnN0IGF1dG9SZWZyZXNoU2Vjb25kc0NoYW5nZXMkID0gdGhpcy5mb3JtLmNvbnRyb2xzLmF1dG9SZWZyZXNoU2Vjb25kcy52YWx1ZUNoYW5nZXM7XG5cbiAgICBhdXRvUmVmcmVzaFNlY29uZHNDaGFuZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MucmVmcmVzaEludGVydmFsJC5uZXh0KHZhbHVlKSksXG4gICAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gucmVzZXRDb3VudGRvd25PbkxvYWRpbmdDb21wbGV0ZSQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uQXV0b1JlZnJlc2hDaGFuZ2UoKSB7XG4gICAgY29uc3QgYXV0b1JlZnJlc2hDaGFuZ2VzJCA9IHRoaXMuZm9ybS5jb250cm9scy5hdXRvUmVmcmVzaC52YWx1ZUNoYW5nZXM7XG5cbiAgICBhdXRvUmVmcmVzaENoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHZhbHVlID0+IHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guYXV0b1JlZnJlc2hTZXR0aW5ncy5pc0VuYWJsZWQkLm5leHQodmFsdWUpKSxcbiAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnJlc2V0Q291bnRkb3duT25Mb2FkaW5nQ29tcGxldGUkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplV2lkZ2V0U3Vic2NyaXB0aW9ucygpIHtcbiAgICB0aGlzLmVkaXRNb2RlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShlZGl0TW9kZSA9PiB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLm9uRWRpdE1vZGVDaGFuZ2UoZWRpdE1vZGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKCkge1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmdsb2JhbFJlZnJlc2hXaWRnZXRzQ291bnQoKSA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBxdWVyeVBhcmFtOiBHbG9iYWxBdXRvUmVmcmVzaFF1ZXJ5UGFyYW0gPSB7XG4gICAgICAgIFtHTE9CQUxfQ09OVEVYVF9BVVRPX1JFRlJFU0hdOlxuICAgICAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guYXV0b1JlZnJlc2hTZXR0aW5ncy5pc0VuYWJsZWQkLmdldFZhbHVlKClcbiAgICAgIH07XG4gICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnNldEF1dG9SZWZyZXNoUXVlcnlQYXJhbShxdWVyeVBhcmFtKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25RdWVyeVBhcmFtQ2hhbmdlKCkge1xuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hcbiAgICAgIC5nZXRRdWVyeVBhcmFtQ2hhbmdlVmFsdWUkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAocGFyYW1WYWx1ZSA9PiBwYXJhbVZhbHVlID09PSBudWxsICYmIHRoaXMuc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKCkpLFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgcGFyYW1WYWx1ZSA9PlxuICAgICAgICAgICAgcGFyYW1WYWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQuZ2V0VmFsdWUoKSAhPT0gcGFyYW1WYWx1ZVxuICAgICAgICApLFxuICAgICAgICB0YXAocGFyYW1WYWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQubmV4dChwYXJhbVZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNldEF1dG9SZWZyZXNoUXVlcnlQYXJhbSgpO1xuICAgICAgICAgIGlmIChwYXJhbVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnJlc2V0Q291bnRkb3duKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uUm91dGVyRXZlbnRzKCkge1xuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hcbiAgICAgIC5oYW5kbGVOYXZpZ2F0aW9uSW5Qcm9ncmVzcyQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNvbnRleHREZXN0cm95KCkge1xuICAgIGNvbnN0IHdpZGdldHNDb3VudCA9IHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guZ2xvYmFsUmVmcmVzaFdpZGdldHNDb3VudDtcbiAgICB3aWRnZXRzQ291bnQudXBkYXRlKGNvdW50ID0+IGNvdW50IC0gMSk7XG5cbiAgICBpZiAod2lkZ2V0c0NvdW50KCkgPT09IDApIHtcbiAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuXG4gICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnJlc2V0U2VydmljZVRvRGVmYXVsdHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk9uRGFzaGJvYXJkU2F2ZU9wZXJhdGlvbigpIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLm9uRGFzaGJvYXJkU2F2ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnJlc2V0Q291bnRkb3duT25Mb2FkaW5nQ29tcGxldGUkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbZ3JvdXBJZF09XCJBQ1RJT05fQkFSX0dST1VQX0lEXCJcbiAgW3ByaW9yaXR5XT1cIkFDVElPTl9CQVJfUFJJT1JJVFlcIlxuICBbcGxhY2VtZW50XT1cIidsZWZ0J1wiXG4+XG4gIDxmb3JtXG4gICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gID5cbiAgICA8Yzh5LWF1dG8tcmVmcmVzaC1jb250cm9sXG4gICAgICBbaGlkZGVuXT1cImVkaXRNb2RlJCB8IGFzeW5jXCJcbiAgICAgIChsb2FkaW5nKT1cImdsb2JhbFJlZnJlc2hXaWRnZXRMb2FkaW5nID0gJGV2ZW50XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImF1dG9SZWZyZXNoXCJcbiAgICA+PC9jOHktYXV0by1yZWZyZXNoLWNvbnRyb2w+XG5cbiAgICA8Yzh5LWF1dG8tcmVmcmVzaC1zZWxlY3QtY29udHJvbFxuICAgICAgW2hpZGRlbl09XCJlZGl0TW9kZSQgfCBhc3luY1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhdXRvUmVmcmVzaFNlY29uZHNcIlxuICAgID48L2M4eS1hdXRvLXJlZnJlc2gtc2VsZWN0LWNvbnRyb2w+XG4gIDwvZm9ybT5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIHN0eWxlPVwiYm9yZGVyLWxlZnQ6IDBcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW3Rvb2x0aXBdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ0lmPVwiIShlZGl0TW9kZSQgfCBhc3luYylcIlxuICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZ2xvYmFsUmVmcmVzaFdpZGdldExvYWRpbmdcIlxuICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaCgpXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBjOHlJY29uPVwicmVmcmVzaFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IGdsb2JhbFJlZnJlc2hXaWRnZXRMb2FkaW5nIH1cIlxuICAgICAgPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export const DEFAULT_INTERVAL_VALUE = 30_000;
2
+ export const DEFAULT_INTERVAL_VALUES = [5_000, 10_000, 15_000, 30_000, 60_000];
3
+ export const DEFAULT_INTERVAL_STATE = true;
4
+ export const GLOBAL_CONTEXT_AUTO_REFRESH = 'globalContextAutoRefresh';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0UsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5URVJWQUxfVkFMVUUgPSAzMF8wMDA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlRFUlZBTF9WQUxVRVMgPSBbNV8wMDAsIDEwXzAwMCwgMTVfMDAwLCAzMF8wMDAsIDYwXzAwMF07XG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlRFUlZBTF9TVEFURSA9IHRydWU7XG5cbmV4cG9ydCBjb25zdCBHTE9CQUxfQ09OVEVYVF9BVVRPX1JFRlJFU0ggPSAnZ2xvYmFsQ29udGV4dEF1dG9SZWZyZXNoJztcbmV4cG9ydCB0eXBlIEdsb2JhbEF1dG9SZWZyZXNoUXVlcnlQYXJhbSA9IHtcbiAgW0dMT0JBTF9DT05URVhUX0FVVE9fUkVGUkVTSF06IGJvb2xlYW47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbEF1dG9SZWZyZXNoV2lkZ2V0Q29uZmlnIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBpbnN0YW5jZSBvZiB3aWRnZXQgaXMgYm91bmQgdG8gZ2xvYmFsIGF1dG8gcmVmcmVzaCBjb250ZXh0LiBJdCBjYW4gYmUgb25seSB1c2VkIHdpdGggd2lkZ2V0cyB3aGljaFxuICAgKiBkeW5hbWljIGNvbXBvbmVudCBkZWZpbml0aW9uIGNvbnRhaW5zIGRpc3BsYXlTZXR0aW5ncyBhbGxvd2luZyB0byB1c2UgaXQgd2l0aCBnbG9iYWwgYXV0byByZWZyZXNoIGNvbnRleHQuXG4gICAqL1xuICB3aWRnZXRJbnN0YW5jZUdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dD86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,233 @@
1
+ import { inject, Injectable, signal } from '@angular/core';
2
+ import { BehaviorSubject, Subject } from 'rxjs';
3
+ import { distinctUntilChanged, filter, map, skip, switchMap, tap } from 'rxjs/operators';
4
+ import { DEFAULT_INTERVAL_STATE, DEFAULT_INTERVAL_VALUE, GLOBAL_CONTEXT_AUTO_REFRESH } from './widget-auto-refresh-context.model';
5
+ import { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
6
+ import * as i0 from "@angular/core";
7
+ export class WidgetGlobalAutoRefreshService {
8
+ constructor() {
9
+ /**
10
+ * A BehaviorSubject that tracks the number of loading operations in progress.
11
+ * Initialized with a count of 0.
12
+ */
13
+ this.loadingCount$ = new BehaviorSubject(0);
14
+ /**
15
+ * An Observable that emits a boolean indicating whether any widgets with global refresh option are currently loading.
16
+ * The value is true if the loading count is non-zero, and false if the loading count is zero.
17
+ * Uses distinctUntilChanged() to emit only when the boolean value changes.
18
+ */
19
+ this.isLoadingWidgets$ = this.loadingCount$.pipe(distinctUntilChanged(), map(count => count !== 0));
20
+ /**
21
+ * Object containing behavior subjects for managing auto-refresh settings.
22
+ */
23
+ this.autoRefreshSettings = {
24
+ /**
25
+ * BehaviorSubject that emits the current state of auto-refresh button.
26
+ * Defaults to DEFAULT_INTERVAL_STATE.
27
+ */
28
+ isEnabled$: new BehaviorSubject(DEFAULT_INTERVAL_STATE),
29
+ /**
30
+ * BehaviorSubject that emits the current auto-refresh interval value.
31
+ * Defaults to DEFAULT_INTERVAL_VALUE.
32
+ */
33
+ refreshInterval$: new BehaviorSubject(DEFAULT_INTERVAL_VALUE),
34
+ /**
35
+ * BehaviorSubject that emits whether auto-refresh has been manually disabled by the user.
36
+ * Defaults to false.
37
+ */
38
+ userDisabledManually$: new BehaviorSubject(false)
39
+ };
40
+ /**
41
+ * Object containing subjects for managing countdown actions.
42
+ */
43
+ this.countdownActions = {
44
+ /**
45
+ * Subject used to stop the countdown.
46
+ */
47
+ stop$: new Subject(),
48
+ /**
49
+ * Subject used to reset the countdown.
50
+ */
51
+ reset$: new Subject(),
52
+ /**
53
+ * Subject that emits when the countdown has ended.
54
+ */
55
+ countdownEnded$: new Subject()
56
+ };
57
+ /**
58
+ * Subject that emits when a dashboard save operation is triggered.
59
+ */
60
+ this.onDashboardSave$ = new Subject();
61
+ /**
62
+ * A signal representing the number of widgets with the global auto-refresh option enabled.
63
+ */
64
+ this.globalRefreshWidgetsCount = signal(0);
65
+ /**
66
+ * Tracks the navigation state.
67
+ *
68
+ * The signal returns a boolean indicating whether a navigation operation is currently in progress.
69
+ * It initializes with a default value of `false` and can be toggled to `true` during navigation events from `handleNavigationInProgress$`.
70
+ */
71
+ this.navigationInProgress = signal(false);
72
+ this.router = inject(Router);
73
+ this.activatedRoute = inject(ActivatedRoute);
74
+ }
75
+ /**
76
+ * Increments the loading count by 1.
77
+ */
78
+ incrementLoading() {
79
+ this.loadingCount$.next(this.loadingCount$.value + 1);
80
+ }
81
+ /**
82
+ * Decrements the loading count by 1.
83
+ */
84
+ decrementLoading() {
85
+ this.loadingCount$.next(this.loadingCount$.value - 1);
86
+ }
87
+ /**
88
+ * Retrieves an observable that emits the value of a Global Auto Refresh query parameter
89
+ * whenever it changes. The query parameter being tracked is determined by
90
+ * `GlobalAutoRefreshName.GLOBAL_CONTEXT_AUTO_REFRESH`.
91
+ *
92
+ * @returns An observable that emits the parsed value of the `GLOBAL_CONTEXT_AUTO_REFRESH` query parameter.
93
+ */
94
+ getQueryParamChangeValue$() {
95
+ return this.activatedRoute.queryParams.pipe(map(params => params[GLOBAL_CONTEXT_AUTO_REFRESH]), map(this.parseGlobalAutoRefreshParam));
96
+ }
97
+ /**
98
+ * Monitors router navigation events and updates the navigation progress state.
99
+ *
100
+ * @returns An Observable that emits router events of types NavigationStart, NavigationEnd,
101
+ * NavigationCancel, and NavigationError.
102
+ */
103
+ handleNavigationInProgress$() {
104
+ return this.router.events.pipe(filter(event => event instanceof NavigationStart ||
105
+ event instanceof NavigationEnd ||
106
+ event instanceof NavigationCancel ||
107
+ event instanceof NavigationError), tap(e => this.navigationInProgress.set(e instanceof NavigationStart)));
108
+ }
109
+ /**
110
+ * Sets the global auto-refresh query parameter in the current route.
111
+ *
112
+ * @param queryParams - An object representing the query parameters to set for the global auto-refresh option.
113
+ * The existing query parameters will be merged with these.
114
+ */
115
+ async setAutoRefreshQueryParam(queryParams) {
116
+ if (this.navigationInProgress()) {
117
+ return;
118
+ }
119
+ this.navigationInProgress.set(true);
120
+ await this.router.navigate([], {
121
+ relativeTo: this.activatedRoute,
122
+ queryParams,
123
+ queryParamsHandling: 'merge'
124
+ });
125
+ this.navigationInProgress.set(false);
126
+ }
127
+ /**
128
+ * Handles changes to the edit mode and updates the isEnabled$ variable.
129
+ *
130
+ * - If auto-refresh was manually disabled by the user (`userDisabledManually$` is `true`), auto-refresh will remain disabled regardless of the edit mode state.
131
+ * - If auto-refresh was not manually disabled, it will be disabled when entering edit mode and enabled when exiting edit mode.
132
+ *
133
+ * @param editMode - A boolean indicating the current state of edit mode (`true` if edit mode is active, `false` otherwise).
134
+ */
135
+ onEditModeChange(editMode) {
136
+ if (this.autoRefreshSettings.userDisabledManually$.getValue()) {
137
+ this.autoRefreshSettings.isEnabled$.next(false);
138
+ return;
139
+ }
140
+ this.autoRefreshSettings.isEnabled$.next(!editMode);
141
+ }
142
+ /**
143
+ * Returns an Observable that triggers the countdown reset action when loading completes.
144
+ *
145
+ * This method creates an Observable that:
146
+ * - Skips a specified number of initial emissions from `isLoadingWidgets$` based on the `skipInitialBehaviorSubjectEmission$` method.
147
+ * - Filters out emissions where the loading state is true.
148
+ * - On emission where the loading state is false, it triggers a countdown reset action.
149
+ *
150
+ */
151
+ resetCountdownOnLoadingComplete$() {
152
+ return switchMap(() => this.isLoadingWidgets$.pipe(tap(isLoading => isLoading && this.countdownActions.stop$.next()), filter(loading => !loading), tap(() => this.resetCountdown())));
153
+ }
154
+ /**
155
+ * Resets the service's settings and parameters to their default values.
156
+ */
157
+ resetServiceToDefaults() {
158
+ setTimeout(() => !this.navigationInProgress() && this.clearQueryParam());
159
+ this.autoRefreshSettings.refreshInterval$.next(DEFAULT_INTERVAL_VALUE);
160
+ this.autoRefreshSettings.userDisabledManually$.next(false);
161
+ setTimeout(() => {
162
+ this.autoRefreshSettings.isEnabled$.next(DEFAULT_INTERVAL_STATE);
163
+ this.resetLoadingToZero();
164
+ this.navigationInProgress.set(false);
165
+ });
166
+ }
167
+ /**
168
+ * Resets the countdown timer by emitting a reset action after a short delay.
169
+ */
170
+ resetCountdown() {
171
+ queueMicrotask(() => this.countdownActions.reset$.next());
172
+ }
173
+ /**
174
+ * Initializes the auto-refresh countdown logic based on the widget loading state and edit mode.
175
+ *
176
+ * This method returns an observable that monitors the widget loading state and triggers specific actions
177
+ * related to the countdown process. It performs the following steps:
178
+ *
179
+ * 1. Skips the initial loading state emitted by `isLoadingWidgets$`.
180
+ * 2. Stops the countdown if the widgets are currently loading.
181
+ * 3. Filters out cases where widgets are loading or the application is in edit mode.
182
+ * 4. Resets the countdown when widgets are not loading and the application is not in edit mode.
183
+ *
184
+ * @param editMode$ - A `BehaviorSubject` representing whether the application is currently in edit mode.
185
+ *
186
+ * @returns An `Observable<boolean>` that emits the loading state of the widgets after the initialization steps.
187
+ */
188
+ initializeAutoRefreshCountdownLoading$(editMode$) {
189
+ return this.isLoadingWidgets$.pipe(skip(1), tap(isLoading => isLoading && this.countdownActions.stop$.next()), filter(isWidgetsLoading => !isWidgetsLoading && !editMode$.getValue()), tap(() => this.resetCountdown()));
190
+ }
191
+ /**
192
+ * Parses a string representation of global auto-refresh parameter into a boolean or null.
193
+ *
194
+ * Converts the provided `globalAutoRefresh` string into a boolean value or null based on its content:
195
+ * - Returns `true` if `globalAutoRefresh` is 'true'.
196
+ * - Returns `false` if `globalAutoRefresh` is 'false'.
197
+ * - Returns `null` if `globalAutoRefresh` is neither 'true' nor 'false'.
198
+ *
199
+ * @param globalAutoRefresh - The string representation of the global auto-refresh parameter.
200
+ *
201
+ * @returns A boolean value corresponding to the parsed global auto-refresh state, or null if the input is not 'true' or 'false'.
202
+ */
203
+ parseGlobalAutoRefreshParam(globalAutoRefresh) {
204
+ return globalAutoRefresh === 'false' ? false : globalAutoRefresh === 'true' ? true : null;
205
+ }
206
+ /**
207
+ * Resets the loading count to zero.
208
+ */
209
+ resetLoadingToZero() {
210
+ this.loadingCount$.next(0);
211
+ }
212
+ /**
213
+ * Clears the global auto-refresh query parameter by navigating to the current route with the parameter set to null.
214
+ *
215
+ */
216
+ clearQueryParam() {
217
+ const queryParams = {
218
+ globalContextAutoRefresh: null
219
+ };
220
+ this.router.navigate([], {
221
+ relativeTo: this.activatedRoute,
222
+ queryParams,
223
+ queryParamsHandling: 'merge'
224
+ });
225
+ }
226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WidgetGlobalAutoRefreshService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
227
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WidgetGlobalAutoRefreshService, providedIn: 'root' }); }
228
+ }
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WidgetGlobalAutoRefreshService, decorators: [{
230
+ type: Injectable,
231
+ args: [{ providedIn: 'root' }]
232
+ }] });
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWdsb2JhbC1hdXRvLXJlZnJlc2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC93aWRnZXQtZ2xvYmFsLWF1dG8tcmVmcmVzaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUF3QyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFFNUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsY0FBYyxFQUVkLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixNQUFNLEVBQ1AsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHekIsTUFBTSxPQUFPLDhCQUE4QjtJQUQzQztRQUVFOzs7V0FHRztRQUNLLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdkQ7Ozs7V0FJRztRQUNLLHNCQUFpQixHQUF3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDdEUsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUMxQixDQUFDO1FBRUY7O1dBRUc7UUFDSCx3QkFBbUIsR0FBRztZQUNwQjs7O2VBR0c7WUFDSCxVQUFVLEVBQUUsSUFBSSxlQUFlLENBQVUsc0JBQXNCLENBQUM7WUFD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QUMsQ0FBQztJQUNMLENBQUM7OEdBdlFVLDhCQUE4QjtrSEFBOUIsOEJBQThCLGNBRGpCLE1BQU07OzJGQUNuQiw4QkFBOEI7a0JBRDFDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNraXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9JTlRFUlZBTF9TVEFURSxcbiAgREVGQVVMVF9JTlRFUlZBTF9WQUxVRSxcbiAgR0xPQkFMX0NPTlRFWFRfQVVUT19SRUZSRVNILFxuICBHbG9iYWxBdXRvUmVmcmVzaFF1ZXJ5UGFyYW1cbn0gZnJvbSAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQubW9kZWwnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGUsXG4gIEV2ZW50LFxuICBOYXZpZ2F0aW9uQ2FuY2VsLFxuICBOYXZpZ2F0aW9uRW5kLFxuICBOYXZpZ2F0aW9uRXJyb3IsXG4gIE5hdmlnYXRpb25TdGFydCxcbiAgUm91dGVyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgdHJhY2tzIHRoZSBudW1iZXIgb2YgbG9hZGluZyBvcGVyYXRpb25zIGluIHByb2dyZXNzLlxuICAgKiBJbml0aWFsaXplZCB3aXRoIGEgY291bnQgb2YgMC5cbiAgICovXG4gIHByaXZhdGUgbG9hZGluZ0NvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICAvKipcbiAgICogQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgYW55IHdpZGdldHMgd2l0aCBnbG9iYWwgcmVmcmVzaCBvcHRpb24gYXJlIGN1cnJlbnRseSBsb2FkaW5nLlxuICAgKiBUaGUgdmFsdWUgaXMgdHJ1ZSBpZiB0aGUgbG9hZGluZyBjb3VudCBpcyBub24temVybywgYW5kIGZhbHNlIGlmIHRoZSBsb2FkaW5nIGNvdW50IGlzIHplcm8uXG4gICAqIFVzZXMgZGlzdGluY3RVbnRpbENoYW5nZWQoKSB0byBlbWl0IG9ubHkgd2hlbiB0aGUgYm9vbGVhbiB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBpc0xvYWRpbmdXaWRnZXRzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGluZ0NvdW50JC5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgbWFwKGNvdW50ID0+IGNvdW50ICE9PSAwKVxuICApO1xuXG4gIC8qKlxuICAgKiBPYmplY3QgY29udGFpbmluZyBiZWhhdmlvciBzdWJqZWN0cyBmb3IgbWFuYWdpbmcgYXV0by1yZWZyZXNoIHNldHRpbmdzLlxuICAgKi9cbiAgYXV0b1JlZnJlc2hTZXR0aW5ncyA9IHtcbiAgICAvKipcbiAgICAgKiBCZWhhdmlvclN1YmplY3QgdGhhdCBlbWl0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhdXRvLXJlZnJlc2ggYnV0dG9uLlxuICAgICAqIERlZmF1bHRzIHRvIERFRkFVTFRfSU5URVJWQUxfU1RBVEUuXG4gICAgICovXG4gICAgaXNFbmFibGVkJDogbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihERUZBVUxUX0lOVEVSVkFMX1NUQVRFKSxcbiAgICAvKipcbiAgICAgKiBCZWhhdmlvclN1YmplY3QgdGhhdCBlbWl0cyB0aGUgY3VycmVudCBhdXRvLXJlZnJlc2ggaW50ZXJ2YWwgdmFsdWUuXG4gICAgICogRGVmYXVsdHMgdG8gREVGQVVMVF9JTlRFUlZBTF9WQUxVRS5cbiAgICAgKi9cbiAgICByZWZyZXNoSW50ZXJ2YWwkOiBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oREVGQVVMVF9JTlRFUlZBTF9WQUxVRSksXG4gICAgLyoqXG4gICAgICogQmVoYXZpb3JTdWJqZWN0IHRoYXQgZW1pdHMgd2hldGhlciBhdXRvLXJlZnJlc2ggaGFzIGJlZW4gbWFudWFsbHkgZGlzYWJsZWQgYnkgdGhlIHVzZXIuXG4gICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICovXG4gICAgdXNlckRpc2FibGVkTWFudWFsbHkkOiBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICB9O1xuXG4gIC8qKlxuICAgKiBPYmplY3QgY29udGFpbmluZyBzdWJqZWN0cyBmb3IgbWFuYWdpbmcgY291bnRkb3duIGFjdGlvbnMuXG4gICAqL1xuICBjb3VudGRvd25BY3Rpb25zID0ge1xuICAgIC8qKlxuICAgICAqIFN1YmplY3QgdXNlZCB0byBzdG9wIHRoZSBjb3VudGRvd24uXG4gICAgICovXG4gICAgc3RvcCQ6IG5ldyBTdWJqZWN0PHZvaWQ+KCksXG4gICAgLyoqXG4gICAgICogU3ViamVjdCB1c2VkIHRvIHJlc2V0IHRoZSBjb3VudGRvd24uXG4gICAgICovXG4gICAgcmVzZXQkOiBuZXcgU3ViamVjdDx2b2lkPigpLFxuICAgIC8qKlxuICAgICAqIFN1YmplY3QgdGhhdCBlbWl0cyB3aGVuIHRoZSBjb3VudGRvd24gaGFzIGVuZGVkLlxuICAgICAqL1xuICAgIGNvdW50ZG93bkVuZGVkJDogbmV3IFN1YmplY3Q8dm9pZD4oKVxuICB9O1xuXG4gIC8qKlxuICAgKiBTdWJqZWN0IHRoYXQgZW1pdHMgd2hlbiBhIGRhc2hib2FyZCBzYXZlIG9wZXJhdGlvbiBpcyB0cmlnZ2VyZWQuXG4gICAqL1xuICBvbkRhc2hib2FyZFNhdmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogQSBzaWduYWwgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2Ygd2lkZ2V0cyB3aXRoIHRoZSBnbG9iYWwgYXV0by1yZWZyZXNoIG9wdGlvbiBlbmFibGVkLlxuICAgKi9cbiAgZ2xvYmFsUmVmcmVzaFdpZGdldHNDb3VudCA9IHNpZ25hbCgwKTtcblxuICAvKipcbiAgICogVHJhY2tzIHRoZSBuYXZpZ2F0aW9uIHN0YXRlLlxuICAgKlxuICAgKiBUaGUgc2lnbmFsIHJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBhIG5hdmlnYXRpb24gb3BlcmF0aW9uIGlzIGN1cnJlbnRseSBpbiBwcm9ncmVzcy5cbiAgICogSXQgaW5pdGlhbGl6ZXMgd2l0aCBhIGRlZmF1bHQgdmFsdWUgb2YgYGZhbHNlYCBhbmQgY2FuIGJlIHRvZ2dsZWQgdG8gYHRydWVgIGR1cmluZyBuYXZpZ2F0aW9uIGV2ZW50cyBmcm9tIGBoYW5kbGVOYXZpZ2F0aW9uSW5Qcm9ncmVzcyRgLlxuICAgKi9cbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uSW5Qcm9ncmVzcyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgLyoqXG4gICAqIEluY3JlbWVudHMgdGhlIGxvYWRpbmcgY291bnQgYnkgMS5cbiAgICovXG4gIGluY3JlbWVudExvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nQ291bnQkLm5leHQodGhpcy5sb2FkaW5nQ291bnQkLnZhbHVlICsgMSk7XG4gIH1cblxuICAvKipcbiAgICogRGVjcmVtZW50cyB0aGUgbG9hZGluZyBjb3VudCBieSAxLlxuICAgKi9cbiAgZGVjcmVtZW50TG9hZGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdDb3VudCQubmV4dCh0aGlzLmxvYWRpbmdDb3VudCQudmFsdWUgLSAxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB2YWx1ZSBvZiBhIEdsb2JhbCBBdXRvIFJlZnJlc2ggcXVlcnkgcGFyYW1ldGVyXG4gICAqIHdoZW5ldmVyIGl0IGNoYW5nZXMuIFRoZSBxdWVyeSBwYXJhbWV0ZXIgYmVpbmcgdHJhY2tlZCBpcyBkZXRlcm1pbmVkIGJ5XG4gICAqIGBHbG9iYWxBdXRvUmVmcmVzaE5hbWUuR0xPQkFMX0NPTlRFWFRfQVVUT19SRUZSRVNIYC5cbiAgICpcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBwYXJzZWQgdmFsdWUgb2YgdGhlIGBHTE9CQUxfQ09OVEVYVF9BVVRPX1JFRlJFU0hgIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICovXG4gIGdldFF1ZXJ5UGFyYW1DaGFuZ2VWYWx1ZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUoXG4gICAgICBtYXAocGFyYW1zID0+IHBhcmFtc1tHTE9CQUxfQ09OVEVYVF9BVVRPX1JFRlJFU0hdKSxcbiAgICAgIG1hcCh0aGlzLnBhcnNlR2xvYmFsQXV0b1JlZnJlc2hQYXJhbSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3JzIHJvdXRlciBuYXZpZ2F0aW9uIGV2ZW50cyBhbmQgdXBkYXRlcyB0aGUgbmF2aWdhdGlvbiBwcm9ncmVzcyBzdGF0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHJvdXRlciBldmVudHMgb2YgdHlwZXMgTmF2aWdhdGlvblN0YXJ0LCBOYXZpZ2F0aW9uRW5kLFxuICAgKiAgICAgICAgICBOYXZpZ2F0aW9uQ2FuY2VsLCBhbmQgTmF2aWdhdGlvbkVycm9yLlxuICAgKi9cbiAgaGFuZGxlTmF2aWdhdGlvbkluUHJvZ3Jlc3MkKCk6IE9ic2VydmFibGU8RXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICBmaWx0ZXIoXG4gICAgICAgIGV2ZW50ID0+XG4gICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgfHxcbiAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcbiAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwgfHxcbiAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvclxuICAgICAgKSxcbiAgICAgIHRhcChlID0+IHRoaXMubmF2aWdhdGlvbkluUHJvZ3Jlc3Muc2V0KGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZ2xvYmFsIGF1dG8tcmVmcmVzaCBxdWVyeSBwYXJhbWV0ZXIgaW4gdGhlIGN1cnJlbnQgcm91dGUuXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyAtIEFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gc2V0IGZvciB0aGUgZ2xvYmFsIGF1dG8tcmVmcmVzaCBvcHRpb24uXG4gICAqICAgICAgICAgICAgICAgICAgICAgIFRoZSBleGlzdGluZyBxdWVyeSBwYXJhbWV0ZXJzIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlc2UuXG4gICAqL1xuICBhc3luYyBzZXRBdXRvUmVmcmVzaFF1ZXJ5UGFyYW0ocXVlcnlQYXJhbXM6IEdsb2JhbEF1dG9SZWZyZXNoUXVlcnlQYXJhbSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzLnNldCh0cnVlKTtcbiAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgIH0pO1xuICAgIHRoaXMubmF2aWdhdGlvbkluUHJvZ3Jlc3Muc2V0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGNoYW5nZXMgdG8gdGhlIGVkaXQgbW9kZSBhbmQgdXBkYXRlcyB0aGUgaXNFbmFibGVkJCB2YXJpYWJsZS5cbiAgICpcbiAgICogLSBJZiBhdXRvLXJlZnJlc2ggd2FzIG1hbnVhbGx5IGRpc2FibGVkIGJ5IHRoZSB1c2VyIChgdXNlckRpc2FibGVkTWFudWFsbHkkYCBpcyBgdHJ1ZWApLCBhdXRvLXJlZnJlc2ggd2lsbCByZW1haW4gZGlzYWJsZWQgcmVnYXJkbGVzcyBvZiB0aGUgZWRpdCBtb2RlIHN0YXRlLlxuICAgKiAtIElmIGF1dG8tcmVmcmVzaCB3YXMgbm90IG1hbnVhbGx5IGRpc2FibGVkLCBpdCB3aWxsIGJlIGRpc2FibGVkIHdoZW4gZW50ZXJpbmcgZWRpdCBtb2RlIGFuZCBlbmFibGVkIHdoZW4gZXhpdGluZyBlZGl0IG1vZGUuXG4gICAqXG4gICAqIEBwYXJhbSBlZGl0TW9kZSAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIGVkaXQgbW9kZSAoYHRydWVgIGlmIGVkaXQgbW9kZSBpcyBhY3RpdmUsIGBmYWxzZWAgb3RoZXJ3aXNlKS5cbiAgICovXG4gIG9uRWRpdE1vZGVDaGFuZ2UoZWRpdE1vZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFNldHRpbmdzLnVzZXJEaXNhYmxlZE1hbnVhbGx5JC5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLmF1dG9SZWZyZXNoU2V0dGluZ3MuaXNFbmFibGVkJC5uZXh0KGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQubmV4dCghZWRpdE1vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHRyaWdnZXJzIHRoZSBjb3VudGRvd24gcmVzZXQgYWN0aW9uIHdoZW4gbG9hZGluZyBjb21wbGV0ZXMuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gT2JzZXJ2YWJsZSB0aGF0OlxuICAgKiAtIFNraXBzIGEgc3BlY2lmaWVkIG51bWJlciBvZiBpbml0aWFsIGVtaXNzaW9ucyBmcm9tIGBpc0xvYWRpbmdXaWRnZXRzJGAgYmFzZWQgb24gdGhlIGBza2lwSW5pdGlhbEJlaGF2aW9yU3ViamVjdEVtaXNzaW9uJGAgbWV0aG9kLlxuICAgKiAtIEZpbHRlcnMgb3V0IGVtaXNzaW9ucyB3aGVyZSB0aGUgbG9hZGluZyBzdGF0ZSBpcyB0cnVlLlxuICAgKiAtIE9uIGVtaXNzaW9uIHdoZXJlIHRoZSBsb2FkaW5nIHN0YXRlIGlzIGZhbHNlLCBpdCB0cmlnZ2VycyBhIGNvdW50ZG93biByZXNldCBhY3Rpb24uXG4gICAqXG4gICAqL1xuICByZXNldENvdW50ZG93bk9uTG9hZGluZ0NvbXBsZXRlJCgpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248YW55PiB7XG4gICAgcmV0dXJuIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgdGhpcy5pc0xvYWRpbmdXaWRnZXRzJC5waXBlKFxuICAgICAgICB0YXAoaXNMb2FkaW5nID0+IGlzTG9hZGluZyAmJiB0aGlzLmNvdW50ZG93bkFjdGlvbnMuc3RvcCQubmV4dCgpKSxcbiAgICAgICAgZmlsdGVyKGxvYWRpbmcgPT4gIWxvYWRpbmcpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5yZXNldENvdW50ZG93bigpKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBzZXJ2aWNlJ3Mgc2V0dGluZ3MgYW5kIHBhcmFtZXRlcnMgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuXG4gICAqL1xuICByZXNldFNlcnZpY2VUb0RlZmF1bHRzKCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gIXRoaXMubmF2aWdhdGlvbkluUHJvZ3Jlc3MoKSAmJiB0aGlzLmNsZWFyUXVlcnlQYXJhbSgpKTtcblxuICAgIHRoaXMuYXV0b1JlZnJlc2hTZXR0aW5ncy5yZWZyZXNoSW50ZXJ2YWwkLm5leHQoREVGQVVMVF9JTlRFUlZBTF9WQUxVRSk7XG4gICAgdGhpcy5hdXRvUmVmcmVzaFNldHRpbmdzLnVzZXJEaXNhYmxlZE1hbnVhbGx5JC5uZXh0KGZhbHNlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQubmV4dChERUZBVUxUX0lOVEVSVkFMX1NUQVRFKTtcbiAgICAgIHRoaXMucmVzZXRMb2FkaW5nVG9aZXJvKCk7XG4gICAgICB0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzLnNldChmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBjb3VudGRvd24gdGltZXIgYnkgZW1pdHRpbmcgYSByZXNldCBhY3Rpb24gYWZ0ZXIgYSBzaG9ydCBkZWxheS5cbiAgICovXG4gIHJlc2V0Q291bnRkb3duKCk6IHZvaWQge1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuY291bnRkb3duQWN0aW9ucy5yZXNldCQubmV4dCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgYXV0by1yZWZyZXNoIGNvdW50ZG93biBsb2dpYyBiYXNlZCBvbiB0aGUgd2lkZ2V0IGxvYWRpbmcgc3RhdGUgYW5kIGVkaXQgbW9kZS5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgcmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgbW9uaXRvcnMgdGhlIHdpZGdldCBsb2FkaW5nIHN0YXRlIGFuZCB0cmlnZ2VycyBzcGVjaWZpYyBhY3Rpb25zXG4gICAqIHJlbGF0ZWQgdG8gdGhlIGNvdW50ZG93biBwcm9jZXNzLiBJdCBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuICAgKlxuICAgKiAxLiBTa2lwcyB0aGUgaW5pdGlhbCBsb2FkaW5nIHN0YXRlIGVtaXR0ZWQgYnkgYGlzTG9hZGluZ1dpZGdldHMkYC5cbiAgICogMi4gU3RvcHMgdGhlIGNvdW50ZG93biBpZiB0aGUgd2lkZ2V0cyBhcmUgY3VycmVudGx5IGxvYWRpbmcuXG4gICAqIDMuIEZpbHRlcnMgb3V0IGNhc2VzIHdoZXJlIHdpZGdldHMgYXJlIGxvYWRpbmcgb3IgdGhlIGFwcGxpY2F0aW9uIGlzIGluIGVkaXQgbW9kZS5cbiAgICogNC4gUmVzZXRzIHRoZSBjb3VudGRvd24gd2hlbiB3aWRnZXRzIGFyZSBub3QgbG9hZGluZyBhbmQgdGhlIGFwcGxpY2F0aW9uIGlzIG5vdCBpbiBlZGl0IG1vZGUuXG4gICAqXG4gICAqIEBwYXJhbSBlZGl0TW9kZSQgLSBBIGBCZWhhdmlvclN1YmplY3RgIHJlcHJlc2VudGluZyB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiBpcyBjdXJyZW50bHkgaW4gZWRpdCBtb2RlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZTxib29sZWFuPmAgdGhhdCBlbWl0cyB0aGUgbG9hZGluZyBzdGF0ZSBvZiB0aGUgd2lkZ2V0cyBhZnRlciB0aGUgaW5pdGlhbGl6YXRpb24gc3RlcHMuXG4gICAqL1xuICBpbml0aWFsaXplQXV0b1JlZnJlc2hDb3VudGRvd25Mb2FkaW5nJChlZGl0TW9kZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZ1dpZGdldHMkLnBpcGUoXG4gICAgICBza2lwKDEpLFxuICAgICAgdGFwKGlzTG9hZGluZyA9PiBpc0xvYWRpbmcgJiYgdGhpcy5jb3VudGRvd25BY3Rpb25zLnN0b3AkLm5leHQoKSksXG4gICAgICBmaWx0ZXIoaXNXaWRnZXRzTG9hZGluZyA9PiAhaXNXaWRnZXRzTG9hZGluZyAmJiAhZWRpdE1vZGUkLmdldFZhbHVlKCkpLFxuICAgICAgdGFwKCgpID0+IHRoaXMucmVzZXRDb3VudGRvd24oKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBnbG9iYWwgYXV0by1yZWZyZXNoIHBhcmFtZXRlciBpbnRvIGEgYm9vbGVhbiBvciBudWxsLlxuICAgKlxuICAgKiBDb252ZXJ0cyB0aGUgcHJvdmlkZWQgYGdsb2JhbEF1dG9SZWZyZXNoYCBzdHJpbmcgaW50byBhIGJvb2xlYW4gdmFsdWUgb3IgbnVsbCBiYXNlZCBvbiBpdHMgY29udGVudDpcbiAgICogLSBSZXR1cm5zIGB0cnVlYCBpZiBgZ2xvYmFsQXV0b1JlZnJlc2hgIGlzICd0cnVlJy5cbiAgICogLSBSZXR1cm5zIGBmYWxzZWAgaWYgYGdsb2JhbEF1dG9SZWZyZXNoYCBpcyAnZmFsc2UnLlxuICAgKiAtIFJldHVybnMgYG51bGxgIGlmIGBnbG9iYWxBdXRvUmVmcmVzaGAgaXMgbmVpdGhlciAndHJ1ZScgbm9yICdmYWxzZScuXG4gICAqXG4gICAqIEBwYXJhbSBnbG9iYWxBdXRvUmVmcmVzaCAtIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdsb2JhbCBhdXRvLXJlZnJlc2ggcGFyYW1ldGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyc2VkIGdsb2JhbCBhdXRvLXJlZnJlc2ggc3RhdGUsIG9yIG51bGwgaWYgdGhlIGlucHV0IGlzIG5vdCAndHJ1ZScgb3IgJ2ZhbHNlJy5cbiAgICovXG4gIHByaXZhdGUgcGFyc2VHbG9iYWxBdXRvUmVmcmVzaFBhcmFtKGdsb2JhbEF1dG9SZWZyZXNoOiBzdHJpbmcpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgcmV0dXJuIGdsb2JhbEF1dG9SZWZyZXNoID09PSAnZmFsc2UnID8gZmFsc2UgOiBnbG9iYWxBdXRvUmVmcmVzaCA9PT0gJ3RydWUnID8gdHJ1ZSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBsb2FkaW5nIGNvdW50IHRvIHplcm8uXG4gICAqL1xuICBwcml2YXRlIHJlc2V0TG9hZGluZ1RvWmVybygpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdDb3VudCQubmV4dCgwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGdsb2JhbCBhdXRvLXJlZnJlc2ggcXVlcnkgcGFyYW1ldGVyIGJ5IG5hdmlnYXRpbmcgdG8gdGhlIGN1cnJlbnQgcm91dGUgd2l0aCB0aGUgcGFyYW1ldGVyIHNldCB0byBudWxsLlxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhclF1ZXJ5UGFyYW0oKTogdm9pZCB7XG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IEdsb2JhbEF1dG9SZWZyZXNoUXVlcnlQYXJhbSA9IHtcbiAgICAgIGdsb2JhbENvbnRleHRBdXRvUmVmcmVzaDogbnVsbFxuICAgIH07XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNoYW5nZS1ldmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1jaGFuZ2UtZXZlbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVydmFsIH0gZnJvbSAnLi93aWdldC10aW1lLWNvbnRleHQvd2lkZ2V0LXRpbWUtY29udGV4dC5tb2RlbCc7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvblR5cGUgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbi8qKlxuICogVHlwZSBmb3IgZGVzY3JpYmluZyB3aWRnZXQgY2hhbmdlIGV2ZW50cy4gSXQncyBwb3NzaWJsZVxuICogdG8gZXh0ZW5kIHRoaXMgYnkgYWRkaW5nIGFkZGl0aW9uYWwgZXZlbnRzIHRvIGRpc2NyaW1pbmF0ZWQgdW5pb24gdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0Q2hhbmdlRXZlbnQgPSBUaW1lQ29udGV4dEV2ZW50O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVDb250ZXh0RXZlbnQge1xuICB0eXBlOiAnVElNRV9DT05URVhUJztcbiAgZGF0YTogV2lkZ2V0VGltZUNvbnRleHQ7XG59XG5cbmV4cG9ydCB0eXBlIFdpZGdldENoYW5nZUV2ZW50VHlwZSA9IFdpZGdldENoYW5nZUV2ZW50Wyd0eXBlJ107XG5cbmV4cG9ydCB0eXBlIFJldmVydENoYW5nZVR5cGUgPSAndW5kbycgfCAncmVkbyc7XG5cbmV4cG9ydCB0eXBlIERhdGVUaW1lQ29udGV4dCA9IFtEYXRlLCBEYXRlXTtcblxuZXhwb3J0IHR5cGUgV2lkZ2V0VGltZUNvbnRleHQgPVxuICB8ICh7IGRhdGVUaW1lQ29udGV4dDogRGF0ZVRpbWVDb250ZXh0OyByZWFsdGltZTogYm9vbGVhbjsgYWdncmVnYXRpb246IGFnZ3JlZ2F0aW9uVHlwZSB9ICYge1xuICAgICAgaW50ZXJ2YWw/OiBuZXZlcjtcbiAgICB9KVxuICB8ICh7IGRhdGVUaW1lQ29udGV4dD86IG5ldmVyIH0gJiB7XG4gICAgICBpbnRlcnZhbDogSW50ZXJ2YWxbJ2lkJ107XG4gICAgICByZWFsdGltZTogYm9vbGVhbjtcbiAgICAgIGFnZ3JlZ2F0aW9uOiBhZ2dyZWdhdGlvblR5cGU7XG4gICAgfSk7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNoYW5nZS1ldmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1jaGFuZ2UtZXZlbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFnZ3JlZ2F0aW9uVHlwZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEludGVydmFsIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pbnRlcnZhbC1waWNrZXInO1xuXG4vKipcbiAqIFR5cGUgZm9yIGRlc2NyaWJpbmcgd2lkZ2V0IGNoYW5nZSBldmVudHMuIEl0J3MgcG9zc2libGVcbiAqIHRvIGV4dGVuZCB0aGlzIGJ5IGFkZGluZyBhZGRpdGlvbmFsIGV2ZW50cyB0byBkaXNjcmltaW5hdGVkIHVuaW9uIHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIFdpZGdldENoYW5nZUV2ZW50ID0gVGltZUNvbnRleHRFdmVudDtcblxuZXhwb3J0IGludGVyZmFjZSBUaW1lQ29udGV4dEV2ZW50IHtcbiAgdHlwZTogJ1RJTUVfQ09OVEVYVCc7XG4gIGRhdGE6IFdpZGdldFRpbWVDb250ZXh0O1xufVxuXG5leHBvcnQgdHlwZSBXaWRnZXRDaGFuZ2VFdmVudFR5cGUgPSBXaWRnZXRDaGFuZ2VFdmVudFsndHlwZSddO1xuXG5leHBvcnQgdHlwZSBSZXZlcnRDaGFuZ2VUeXBlID0gJ3VuZG8nIHwgJ3JlZG8nO1xuXG5leHBvcnQgdHlwZSBEYXRlVGltZUNvbnRleHQgPSBbRGF0ZSwgRGF0ZV07XG5cbmV4cG9ydCB0eXBlIFdpZGdldFRpbWVDb250ZXh0ID1cbiAgfCAoeyBkYXRlVGltZUNvbnRleHQ6IERhdGVUaW1lQ29udGV4dDsgcmVhbHRpbWU6IGJvb2xlYW47IGFnZ3JlZ2F0aW9uOiBhZ2dyZWdhdGlvblR5cGUgfSAmIHtcbiAgICAgIGludGVydmFsPzogbmV2ZXI7XG4gICAgfSlcbiAgfCAoeyBkYXRlVGltZUNvbnRleHQ/OiBuZXZlciB9ICYge1xuICAgICAgaW50ZXJ2YWw6IEludGVydmFsWydpZCddO1xuICAgICAgcmVhbHRpbWU6IGJvb2xlYW47XG4gICAgICBhZ2dyZWdhdGlvbjogYWdncmVnYXRpb25UeXBlO1xuICAgIH0pO1xuIl19