@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
@@ -13,8 +13,9 @@ import * as i4 from "@angular/common";
13
13
  import * as i5 from "@angular/cdk/drag-drop";
14
14
  import * as i6 from "ngx-bootstrap/dropdown";
15
15
  import * as i7 from "ngx-bootstrap/tooltip";
16
- import * as i8 from "./wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component";
17
- import * as i9 from "../i18n/c8y-translate.pipe";
16
+ import * as i8 from "./widget-auto-refresh-context/widget-auto-refresh-context-icon-bar.component";
17
+ import * as i9 from "./wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component";
18
+ import * as i10 from "@ngx-translate/core";
18
19
  /**
19
20
  * A dashboard child allows to position elements
20
21
  * correctly on a grid.
@@ -250,13 +251,13 @@ export class DashboardChildComponent {
250
251
  return false;
251
252
  }
252
253
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DashboardChildComponent, deps: [{ token: i1.DashboardComponent }, { token: i2.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
253
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", useIntersection: "useIntersection", isFrozen: "isFrozen", canToggleFullscreen: "canToggleFullscreen", editMode: "editMode", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd", toggleFullscreen: "toggleFullscreen" }, host: { properties: { "class.fullscreen": "this.fullscreen", "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "templateActions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click &quot;Edit widgets&quot; to unlock' | translate\"\n tooltip=\"{{ 'Click &quot;Edit widgets&quot; to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n style=\"right: -1px\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.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: "component", type: i8.WidgetTimeContextIconBar, selector: "c8y-widget-time-context-icon-bar", inputs: ["config"] }, { kind: "pipe", type: i9.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", useIntersection: "useIntersection", isFrozen: "isFrozen", canToggleFullscreen: "canToggleFullscreen", editMode: "editMode", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd", toggleFullscreen: "toggleFullscreen" }, host: { properties: { "class.fullscreen": "this.fullscreen", "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "templateActions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n <c8y-widget-auto-refresh-context-icon-bar\n *ngIf=\"\n data?.config?.widgetInstanceGlobalAutoRefreshContext &&\n data?.config?.displaySettings.globalAutoRefreshContext\n \"\n ></c8y-widget-auto-refresh-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click &quot;Edit widgets&quot; to unlock' | translate\"\n tooltip=\"{{ 'Click &quot;Edit widgets&quot; to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n style=\"right: -1px\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.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: "component", type: i8.WidgetAutoRefreshContextIconBarComponent, selector: "c8y-widget-auto-refresh-context-icon-bar" }, { kind: "component", type: i9.WidgetTimeContextIconBar, selector: "c8y-widget-time-context-icon-bar", inputs: ["config"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
254
255
  }
255
256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DashboardChildComponent, decorators: [{
256
257
  type: Component,
257
258
  args: [{ selector: 'c8y-dashboard-child', host: {
258
259
  class: 'dashboard-grid-child'
259
- }, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click &quot;Edit widgets&quot; to unlock' | translate\"\n tooltip=\"{{ 'Click &quot;Edit widgets&quot; to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n style=\"right: -1px\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n" }]
260
+ }, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n <c8y-widget-auto-refresh-context-icon-bar\n *ngIf=\"\n data?.config?.widgetInstanceGlobalAutoRefreshContext &&\n data?.config?.displaySettings.globalAutoRefreshContext\n \"\n ></c8y-widget-auto-refresh-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click &quot;Edit widgets&quot; to unlock' | translate\"\n tooltip=\"{{ 'Click &quot;Edit widgets&quot; to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n style=\"right: -1px\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n" }]
260
261
  }], ctorParameters: () => [{ type: i1.DashboardComponent }, { type: i2.DomSanitizer }, { type: i0.ElementRef }], propDecorators: { templateActions: [{
261
262
  type: ContentChildren,
262
263
  args: [DashboardChildActionComponent]
@@ -295,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
295
296
  type: HostBinding,
296
297
  args: ['attr.style']
297
298
  }] } });
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBRTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsSUFBb0QsZUFBZSxDQUNqRSxPQUF3QztRQUV4QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBZ0REOzs7O09BSUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQWdDRDs7T0FFRztJQUNILElBQUksT0FBTyxDQUFDLEtBQUs7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a0RyYWdTdGFydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLWNoaWxkLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1jaGFuZ2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkRGltZW5zaW9uLCBXaWRnZXQgfSBmcm9tICcuL2Rhc2hib2FyZC5tb2RlbCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEEgZGFzaGJvYXJkIGNoaWxkIGFsbG93cyB0byBwb3NpdGlvbiBlbGVtZW50c1xuICogY29ycmVjdGx5IG9uIGEgZ3JpZC5cbiAqXG4gKiBCeSBzZXR0aW5nIGBjOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbnNgIGFuZFxuICogYGM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGVgIG9uIHRoZSBlbGVtZW50IHlvdSBjYW4gYWRkXG4gKiBjdXN0b20gYWN0aW9ucyBvciBhIGN1c3RvbSB0aXRsZSB0byB0aGUgY3VycmVudCBjaGlsZC5cbiAqXG4gKiBCeSBhZGRpbmcgdGhlIGNvcnJlY3QgYnJhbmRlZCBjbGFzc2VzLCB5b3UgY2FuIGRlZmluZVxuICogdGhlIGxvb2sgYW5kIGZlZWwgb2YgdGhlIGNoaWxkLiBCeSBkZWZhdWx0IGl0IGlzIGRpc3BsYXllZFxuICogYXMgYSBjYXJkLlxuICpcbiAqIGBgYGh0bWxcbiAqICAgPGM4eS1kYXNoYm9hcmQtY2hpbGRcbiAqICAgICAjY3BXaWRnZXQzXG4gKiAgICAgW3hdPVwiMFwiXG4gKiAgICAgW3ldPVwiM1wiXG4gKiAgICAgW3dpZHRoXT1cIjRcIlxuICogICAgIFtoZWlnaHRdPVwiNFwiXG4gKiAgICAgW2NsYXNzXT1cIidjYXJkLWRhc2hib2FyZCBwYW5lbC1jb250ZW50LXRyYW5zcGFyZW50J1wiXG4gKiAgID5cbiAqICAgICA8Yzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZSAqbmdJZj1cInNob3dUaXRsZVwiPlxuICogICAgICAgPHNwYW4+VHJhbnNwYXJlbnQhPC9zcGFuPlxuICogICAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZT5cbiAqICAgICA8Yzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb24+XG4gKiAgICAgICA8YSBocmVmPVwiXCIgKGNsaWNrKT1cInNob3dUaXRsZSA9ICFzaG93VGl0bGU7IChmYWxzZSlcIj5cbiAqICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2hlYWRpbmcnXCI+PC9pPiBIaWRlL3Nob3cgdGl0bGVcbiAqICAgICAgIDwvYT5cbiAqICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICogICAgIHg6IHt7IGNwV2lkZ2V0My54IH19PGJyIC8+XG4gKiAgICAgeToge3sgY3BXaWRnZXQzLnkgfX08YnIgLz5cbiAqICAgICB3aWR0aDoge3sgY3BXaWRnZXQzLndpZHRoIH19PGJyIC8+XG4gKiAgICAgaGVpZ2h0OiB7eyBjcFdpZGdldDMuaGVpZ2h0IH19PGJyIC8+XG4gKiAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGFzaGJvYXJkLWNoaWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2Rhc2hib2FyZC1ncmlkLWNoaWxkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENoaWxkQ29tcG9uZW50IGltcGxlbWVudHMgRGFzaGJvYXJkQ2hpbGREaW1lbnNpb24ge1xuICBhY3Rpb25zOiBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudFtdID0gW107XG4gIEBDb250ZW50Q2hpbGRyZW4oRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQpIHNldCB0ZW1wbGF0ZUFjdGlvbnMoXG4gICAgYWN0aW9uczogRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnRbXVxuICApIHtcbiAgICB0aGlzLmFkZEFjdGlvbnMoYWN0aW9ucywgdHJ1ZSk7XG4gIH1cbiAgZHJhZ1NvdXJjZTogQ2RrRHJhZztcbiAgaXNSZXNpemUgPSBmYWxzZTtcbiAgaXNEcmFnZ2luZyA9IGZhbHNlO1xuICBrbGFzc2VzID0ge307XG5cbiAgX3B4V2lkdGggPSAnMTAwJSc7XG4gIF9weEhlaWdodCA9ICcxMDAlJztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZ1bGxzY3JlZW4nKVxuICBmdWxsc2NyZWVuID0gZmFsc2U7XG4gIHJlYWRvbmx5IE1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZID0gNzY4O1xuXG4gIC8qKlxuICAgKiBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgY2hpbGQuXG4gICAqL1xuICBASW5wdXQoKSB4O1xuXG4gIC8qKlxuICAgKiBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgY2hpbGQuXG4gICAqL1xuICBASW5wdXQoKSB5O1xuXG4gIC8qKlxuICAgKiBUaGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCBpbiBncmlkLWNvbHVtbnMuXG4gICAqL1xuICBASW5wdXQoKSB3aWR0aCA9IDE7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudCBpbiBncmlkLXJvd3MuXG4gICAqL1xuICBASW5wdXQoKSBoZWlnaHQgPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgYXMgYSBkYXRhVHJhbnNmZXIgb2JqZWN0IGZvciBldmVudHMgb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgZGF0YTogV2lkZ2V0IHwgYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgbWFyZ2luIG9mIHRoZSBjaGlsZCBpbiBwaXhlbC5cbiAgICovXG4gIEBJbnB1dCgpIG1hcmdpbiA9IDEyO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgY29udGVudCBpcyBpbml0aWFsaXplZCwgYXMgc29vbiBpdCBpcyBzY3JvbGxlZCBpbnRvIHZpZXdwb3J0XG4gICAqL1xuICBASW5wdXQoKSB1c2VJbnRlcnNlY3Rpb24gPSBmYWxzZTtcblxuICAvKipcbiAgICogSWYgYSBkYXNoYm9hcmQgaXMgZnJvemVuLCBhbGwgY2hpbGRyZW4gY2Fubm90IGJlIG1vdmVkXG4gICAqIG9yIHJlc2l6ZWQuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBlZGl0TW9kZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBpc0Zyb3plbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZWRpdE1vZGUgPSAhdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBjYW5Ub2dnbGVGdWxsc2NyZWVuID0gdHJ1ZTtcblxuICAvKipcbiAgICogSWYgYSBkYXNoYm9hcmQgZWRpdGluZyBpcyBkaXNhYmxlZCBubyB3aWRnZXRzIGNhbiBiZSBtb3ZlZCwgZWRpdGVkLCByZW1vdmVkXG4gICAqIG9yIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQW4gZXZlbnQgZmlyZWQgaWYgYSBjaGlsZCBjaGFuZ2UgaXMgc3RhcnRlZCAoZHJhZ2dpbmcgb3IgcmVzaXppbmcpXG4gICAqL1xuICBAT3V0cHV0KCkgY2hhbmdlU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPERhc2hib2FyZENoaWxkQ29tcG9uZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCBmaXJlZCBpZiBhIGNoaWxkIGNoYW5nZSBpcyBlbmRlZFxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQ2hpbGRDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IGZpcmVkIGlmIHRoZSBmdWxsc2NyZWVuIHRvZ2dsZSBidXR0b24gd2FzIHByZXNzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgdG9nZ2xlRnVsbHNjcmVlbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogQWxsIGNsYXNzZXMgYWRkZWQgdG8gdGhpcyBjaGlsZFxuICAgKi9cbiAgQElucHV0KClcbiAgY2xhc3M6IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGl4ZWwgd2lkdGggb2YgdGhlIGNoaWxkICh1c2VkIGZvciByZXNpemluZylcbiAgICovXG4gIHNldCBweFdpZHRoKHZhbHVlKSB7XG4gICAgdGhpcy5fcHhXaWR0aCA9IGAke3ZhbHVlfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwaXhlbCBoZWlnaHQgb2YgdGhlIGNoaWxkICh1c2VkIGZvciByZXNpemluZylcbiAgICovXG4gIHNldCBweEhlaWdodCh2YWx1ZSkge1xuICAgIHRoaXMuX3B4SGVpZ2h0ID0gYCR7dmFsdWV9cHhgO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIG9uIGV2ZXJ5IHJlc2l6ZSBhbmQgcmV0dXJucyB0cnVlIGlmIGluIG9uZSBjb2x1bW4gdmlldyAobW9iaWxlIHZpZXcpXG4gICAqL1xuICBpc09uZUNvbHVtblZpZXckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUoXG4gICAgbWFwKF8gPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDw9IHRoaXMuTURfQk9PVFNUUkFQX0JSRUFLUE9JTlRfUkVBRE9OTFlfQ0xBU1NfUFJPUEVSVFlcbiAgICAgICk7XG4gICAgfSksXG4gICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgc3RhcnRXaXRoKFxuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDw9IHRoaXMuTURfQk9PVFNUUkFQX0JSRUFLUE9JTlRfUkVBRE9OTFlfQ0xBU1NfUFJPUEVSVFlcbiAgICApXG4gICk7XG5cbiAgLyoqXG4gICAqIEFuIGluZGljYXRvciBpZiB0aGUgY2hpbGQgaXMgaW50ZXJzZWN0ZWQgKHRoYXQgbWVhbiB2aXNpYmxlIGZvciB0aGUgdXNlcilcbiAgICovXG4gIGludGVyc2VjdGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRlbGxzIGlmIHRoZSBsYXN0IGNoYW5nZSB3YXMgYSBkcmFnZ2luZyBvciByZXNpemluZyBldmVudDtcbiAgICovXG4gIGxhc3RDaGFuZ2U6ICdkcmFnJyB8ICdyZXNpemUnID0gbnVsbDtcblxuICAvKipcbiAgICogbmFzdHkgd29ya2Fyb3VuZCBmb3IgdGhhdCBpc3N1ZTpcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvOTM0M1xuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnN0eWxlJylcbiAgZ2V0IGlubGluZVN0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYFxuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAke3RoaXMueCArIDF9O1xuICAgIGdyaWQtcm93LXN0YXJ0OiAke3RoaXMueSArIDF9O1xuICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAke3RoaXMud2lkdGh9O1xuICAgIGdyaWQtcm93LWVuZDogc3BhbiAke3RoaXMuaGVpZ2h0fTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46ICR7dGhpcy5tYXJnaW4gfHwgMTJ9cHg7XG4gICAgb3JkZXI6ICR7dGhpcy5nZXRPcmRlcigpfTtcbiAgICBgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb24gd2hpY2ggaXMgbGlzdGVuIHRvXG4gICAqIG9uIGNoYW5nZXMgKGRyYWcgb3IgcmVzaXplKS5cbiAgICovXG4gIGNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkYXNoYm9hcmQ6IERhc2hib2FyZENvbXBvbmVudCxcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmtsYXNzZXMgPSB7XG4gICAgICBjYXJkOiB0cnVlLFxuICAgICAgJ2NhcmQtZGFzaGJvYXJkJzogdHJ1ZSxcbiAgICAgICdvbi1yZXNpemUnOiB0aGlzLmlzUmVzaXplLFxuICAgICAgLi4udGhpcy5jbGFzc1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy54ID09PSB1bmRlZmluZWQgfHwgdGhpcy55ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXREeW5hbWljRGltZW5zaW9uKCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy51c2VJbnRlcnNlY3Rpb24gJiYgJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpIHtcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICBldmVudHMgPT4gKHRoaXMuaW50ZXJzZWN0ZWQgPSB0aGlzLmNoaWxkSW5WaWV3KGV2ZW50cywgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIpKVxuICAgICAgKTtcbiAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmludGVyc2VjdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5kYXNoYm9hcmQuY2hpbGRyZW4ucHVzaCh0aGlzKTtcbiAgfVxuXG4gIHNldER5bmFtaWNEaW1lbnNpb24oKSB7XG4gICAgY29uc3QgZHMgPSBuZXcgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UodGhpcyk7XG4gICAgY29uc3QgeyB4LCB5IH0gPSBkcy5maW5kRnJlZURpbWVuc2lvbigpO1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcblxuICAgIHRoaXMuZGFzaGJvYXJkLmVtaXRDaGFuZ2UodGhpcyk7XG4gIH1cblxuICByZXNpemVTdGFydGVkKCRldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgdGhpcy5pc1Jlc2l6ZSA9IHRydWU7XG4gICAgdGhpcy5kYXNoYm9hcmQudXBkYXRlUmVjdFNpemUoKTtcbiAgICB0aGlzLmRyYWdTb3VyY2UgPSAkZXZlbnQuc291cmNlO1xuICAgIGNvbnN0IHBvc2l0aW9uaW5nID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHRoaXMpO1xuICAgIHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uID0gcG9zaXRpb25pbmcucmVzaXplJC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXJ0LmVtaXQodGhpcyk7XG4gICAgdGhpcy5uZ09uQ2hhbmdlcygpO1xuICB9XG5cbiAgZHJhZ1N0YXJ0ZWQoJGV2ZW50OiBDZGtEcmFnU3RhcnQpIHtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVJlY3RTaXplKCk7XG4gICAgdGhpcy5kcmFnU291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICBjb25zdCBwb3NpdGlvbmluZyA9IG5ldyBEYXNoYm9hcmRDaGlsZENoYW5nZSh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uaW5nLmRyYWckLnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2hhbmdlU3RhcnQuZW1pdCh0aGlzKTtcbiAgfVxuXG4gIHJlc2V0KCRldmVudD86IENka0RyYWdFbmQpIHtcbiAgICB0aGlzLmxhc3RDaGFuZ2UgPSB0aGlzLmlzUmVzaXplID8gJ3Jlc2l6ZScgOiAnZHJhZyc7XG4gICAgdGhpcy5pc1Jlc2l6ZSA9IGZhbHNlO1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMuX3B4V2lkdGggPSAnMTAwJSc7XG4gICAgdGhpcy5fcHhIZWlnaHQgPSAnMTAwJSc7XG4gICAgdGhpcy5uZ09uQ2hhbmdlcygpO1xuICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICRldmVudC5zb3VyY2UucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5kYXNoYm9hcmQuZW1pdENoYW5nZSh0aGlzKTtcbiAgICAgIHRoaXMuY2hhbmdlRW5kLmVtaXQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZVNlbGZGcm9tRGFzaGJvYXJkKCk7XG4gIH1cblxuICBhZGRBY3Rpb25zKGFjdGlvbnM6IERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50W10sIHByZXBlbmQgPSBmYWxzZSkge1xuICAgIGlmIChwcmVwZW5kKSB7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBbLi4uYWN0aW9ucywgLi4udGhpcy5hY3Rpb25zXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLnRoaXMuYWN0aW9ucywgLi4uYWN0aW9uc107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxmRnJvbURhc2hib2FyZCgpIHtcbiAgICBjb25zdCBpID0gdGhpcy5kYXNoYm9hcmQuY2hpbGRyZW4uaW5kZXhPZih0aGlzKTtcblxuICAgIGlmIChpID49IDApIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLnNwbGljZShpLCAxKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE9yZGVyKCkge1xuICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKCh0aGlzLnkgKyAodGhpcy54ICsgMSkgLyAxMDApICogMTAwKX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGlsZEluVmlldyhldmVudHMsIG9ic2VydmVyKSB7XG4gICAgY29uc3QgaW50ZXJzZWN0aW5nRXZlbnQgPSBldmVudHMuZmluZChldmVudCA9PiBldmVudC5pc0ludGVyc2VjdGluZyk7XG4gICAgaWYgKGludGVyc2VjdGluZ0V2ZW50KSB7XG4gICAgICBvYnNlcnZlci51bm9ic2VydmUoaW50ZXJzZWN0aW5nRXZlbnQudGFyZ2V0KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2RrRHJvcExpc3Q+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmQtcGxhY2Vob2xkZXJcIlxuICAgICpuZ0lmPVwiaXNSZXNpemVcIlxuICA+PC9kaXY+XG4gIDxkaXZcbiAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBfcHhXaWR0aCwgaGVpZ2h0OiBfcHhIZWlnaHQgfVwiXG4gICAgW25nQ2xhc3NdPVwia2xhc3Nlc1wiXG4gICAgY2RrRHJhZ1xuICAgIChjZGtEcmFnU3RhcnRlZCk9XCJkcmFnU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAoY2RrRHJhZ0VuZGVkKT1cInJlc2V0KCRldmVudClcIlxuICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiKGlzT25lQ29sdW1uVmlldyQgfCBhc3luYykgfHwgIWVkaXRNb2RlIHx8IGZ1bGxzY3JlZW5cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjYXJkLWhlYWRlci1hY3Rpb25zIGNhcmQtaGVhZGVyLWdyaWRcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZHJhZy1oYW5kbGUnOiBlZGl0TW9kZSAmJiAhZnVsbHNjcmVlbixcbiAgICAgICAgZHJhZ2dhYmxlQ3Vyc29yOiBlZGl0TW9kZSAmJiAhZnVsbHNjcmVlblxuICAgICAgfVwiXG4gICAgICBjZGtEcmFnSGFuZGxlXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJoZWFkZXItYWN0aW9ucyBkLWZsZXggYS1pLWNlbnRlclwiXG4gICAgICAgICpuZ0lmPVwiYWN0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgID5cbiAgICAgICAgPGM4eS13aWRnZXQtdGltZS1jb250ZXh0LWljb24tYmFyXG4gICAgICAgICAgKm5nSWY9XCJkYXRhPy5jb25maWc/LmRpc3BsYXlTZXR0aW5ncyAmJiBkYXRhPy5jb25maWc/LndpZGdldEluc3RhbmNlR2xvYmFsVGltZUNvbnRleHRcIlxuICAgICAgICAgIFtjb25maWddPVwiZGF0YS5jb25maWdcIlxuICAgICAgICA+PC9jOHktd2lkZ2V0LXRpbWUtY29udGV4dC1pY29uLWJhcj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWljb25cIlxuICAgICAgICAgIFt0b29sdGlwXT1cImZ1bGxzY3JlZW4gPyAoJ0V4aXQgZnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKSA6ICgnRnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgZGVsYXk9XCI1MDBcIlxuICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Z1bGwgc2NyZWVuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImVkaXRNb2RlIHx8ICFjYW5Ub2dnbGVGdWxsc2NyZWVuXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRnVsbHNjcmVlbi5uZXh0KClcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktZGFzaGJvYXJkLWNoaWxkLS1zZXR0aW5ncy1mdWxsc2NyZWVuXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIFtjOHlJY29uXT1cImZ1bGxzY3JlZW4gPyAnY29tcHJlc3MnIDogJ2V4cGFuZCdcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJvcHRpb25zQnRuIGRyb3Bkb3duXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gcmlnaHRcIlxuICAgICAgICAgIGRyb3Bkb3duXG4gICAgICAgICAgW2NvbnRhaW5lcl09XCInYm9keSdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWljb24gYzh5LWRyb3Bkb3duXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cImVkaXRNb2RlXCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktZGFzaGJvYXJkLWNoaWxkLS1zZXR0aW5nc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiKGZhbHNlKVwiXG4gICAgICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidjb2cnXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NsaWNrICZxdW90O0VkaXQgd2lkZ2V0cyZxdW90OyB0byB1bmxvY2snIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJ7eyAnQ2xpY2sgJnF1b3Q7RWRpdCB3aWRnZXRzJnF1b3Q7IHRvIHVubG9jaycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAqbmdJZj1cIiFlZGl0TW9kZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiKGZhbHNlKVwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3MtbG9ja2VkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBbYzh5SWNvbl09XCInbG9jaydcIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tYWN0aW9ucy1kcm9wZG93blwiXG4gICAgICAgICAgICBzdHlsZT1cInJpZ2h0OiAtMXB4XCJcbiAgICAgICAgICAgICpkcm9wZG93bk1lbnVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWlubmVyLXNjcm9sbFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVzaXplLWhhbmRsZSBoaWRkZW4teHNcIlxuICAgICAgKm5nSWY9XCJlZGl0TW9kZSAmJiAhaXNEcmFnZ2luZyAmJiAhZnVsbHNjcmVlblwiXG4gICAgICBjZGtEcmFnXG4gICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFlZGl0TW9kZSB8fCBmdWxsc2NyZWVuXCJcbiAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJyZXNpemVTdGFydGVkKCRldmVudClcIlxuICAgICAgKGNka0RyYWdFbmRlZCk9XCJyZXNldCgkZXZlbnQpXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyZXNpemUtaWNvbiBoaWRkZW4teHNcIlxuICAgICAgKm5nSWY9XCJlZGl0TW9kZSAmJiAhaXNEcmFnZ2luZyAmJiAhZnVsbHNjcmVlblwiXG4gICAgPjwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjYXJkLXBsYWNlaG9sZGVyXCJcbiAgICAgICpjZGtEcmFnUGxhY2Vob2xkZXJcbiAgICA+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQUU5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLElBQW9ELGVBQWUsQ0FDakUsT0FBd0M7UUFFeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQWdERDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFnQ0Q7O09BRUc7SUFDSCxJQUFJLE9BQU8sQ0FBQyxLQUFL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ZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkQ2hhbmdlIH0gZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtY2hhbmdlJztcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZERpbWVuc2lvbiwgV2lkZ2V0IH0gZnJvbSAnLi9kYXNoYm9hcmQubW9kZWwnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBBIGRhc2hib2FyZCBjaGlsZCBhbGxvd3MgdG8gcG9zaXRpb24gZWxlbWVudHNcbiAqIGNvcnJlY3RseSBvbiBhIGdyaWQuXG4gKlxuICogQnkgc2V0dGluZyBgYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb25zYCBhbmRcbiAqIGBjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlYCBvbiB0aGUgZWxlbWVudCB5b3UgY2FuIGFkZFxuICogY3VzdG9tIGFjdGlvbnMgb3IgYSBjdXN0b20gdGl0bGUgdG8gdGhlIGN1cnJlbnQgY2hpbGQuXG4gKlxuICogQnkgYWRkaW5nIHRoZSBjb3JyZWN0IGJyYW5kZWQgY2xhc3NlcywgeW91IGNhbiBkZWZpbmVcbiAqIHRoZSBsb29rIGFuZCBmZWVsIG9mIHRoZSBjaGlsZC4gQnkgZGVmYXVsdCBpdCBpcyBkaXNwbGF5ZWRcbiAqIGFzIGEgY2FyZC5cbiAqXG4gKiBgYGBodG1sXG4gKiAgIDxjOHktZGFzaGJvYXJkLWNoaWxkXG4gKiAgICAgI2NwV2lkZ2V0M1xuICogICAgIFt4XT1cIjBcIlxuICogICAgIFt5XT1cIjNcIlxuICogICAgIFt3aWR0aF09XCI0XCJcbiAqICAgICBbaGVpZ2h0XT1cIjRcIlxuICogICAgIFtjbGFzc109XCInY2FyZC1kYXNoYm9hcmQgcGFuZWwtY29udGVudC10cmFuc3BhcmVudCdcIlxuICogICA+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGUgKm5nSWY9XCJzaG93VGl0bGVcIj5cbiAqICAgICAgIDxzcGFuPlRyYW5zcGFyZW50ITwvc3Bhbj5cbiAqICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGU+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICogICAgICAgPGEgaHJlZj1cIlwiIChjbGljayk9XCJzaG93VGl0bGUgPSAhc2hvd1RpdGxlOyAoZmFsc2UpXCI+XG4gKiAgICAgICAgIDxpIFtjOHlJY29uXT1cIidoZWFkaW5nJ1wiPjwvaT4gSGlkZS9zaG93IHRpdGxlXG4gKiAgICAgICA8L2E+XG4gKiAgICAgPC9jOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbj5cbiAqICAgICB4OiB7eyBjcFdpZGdldDMueCB9fTxiciAvPlxuICogICAgIHk6IHt7IGNwV2lkZ2V0My55IH19PGJyIC8+XG4gKiAgICAgd2lkdGg6IHt7IGNwV2lkZ2V0My53aWR0aCB9fTxiciAvPlxuICogICAgIGhlaWdodDoge3sgY3BXaWRnZXQzLmhlaWdodCB9fTxiciAvPlxuICogICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhc2hib2FyZC1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkYXNoYm9hcmQtZ3JpZC1jaGlsZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCBpbXBsZW1lbnRzIERhc2hib2FyZENoaWxkRGltZW5zaW9uIHtcbiAgYWN0aW9uczogRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnRbXSA9IFtdO1xuICBAQ29udGVudENoaWxkcmVuKERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50KSBzZXQgdGVtcGxhdGVBY3Rpb25zKFxuICAgIGFjdGlvbnM6IERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50W11cbiAgKSB7XG4gICAgdGhpcy5hZGRBY3Rpb25zKGFjdGlvbnMsIHRydWUpO1xuICB9XG4gIGRyYWdTb3VyY2U6IENka0RyYWc7XG4gIGlzUmVzaXplID0gZmFsc2U7XG4gIGlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAga2xhc3NlcyA9IHt9O1xuXG4gIF9weFdpZHRoID0gJzEwMCUnO1xuICBfcHhIZWlnaHQgPSAnMTAwJSc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdWxsc2NyZWVuJylcbiAgZnVsbHNjcmVlbiA9IGZhbHNlO1xuICByZWFkb25seSBNRF9CT09UU1RSQVBfQlJFQUtQT0lOVF9SRUFET05MWV9DTEFTU19QUk9QRVJUWSA9IDc2ODtcblxuICAvKipcbiAgICogVGhlIHggcG9zaXRpb24gb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgeDtcblxuICAvKipcbiAgICogVGhlIHkgcG9zaXRpb24gb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgeTtcblxuICAvKipcbiAgICogVGhlIHdpZHRoIG9mIHRoZSBjb21wb25lbnQgaW4gZ3JpZC1jb2x1bW5zLlxuICAgKi9cbiAgQElucHV0KCkgd2lkdGggPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnQgaW4gZ3JpZC1yb3dzLlxuICAgKi9cbiAgQElucHV0KCkgaGVpZ2h0ID0gMTtcblxuICAvKipcbiAgICogVGhlIGRhdGEgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIGEgZGF0YVRyYW5zZmVyIG9iamVjdCBmb3IgZXZlbnRzIG9mIHRoZSBjaGlsZC5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGE6IFdpZGdldCB8IGFueTtcblxuICAvKipcbiAgICogVGhlIG1hcmdpbiBvZiB0aGUgY2hpbGQgaW4gcGl4ZWwuXG4gICAqL1xuICBASW5wdXQoKSBtYXJnaW4gPSAxMjtcblxuICAvKipcbiAgICogVGhlIGNoaWxkIGNvbnRlbnQgaXMgaW5pdGlhbGl6ZWQsIGFzIHNvb24gaXQgaXMgc2Nyb2xsZWQgaW50byB2aWV3cG9ydFxuICAgKi9cbiAgQElucHV0KCkgdXNlSW50ZXJzZWN0aW9uID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElmIGEgZGFzaGJvYXJkIGlzIGZyb3plbiwgYWxsIGNoaWxkcmVuIGNhbm5vdCBiZSBtb3ZlZFxuICAgKiBvciByZXNpemVkLlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZWRpdE1vZGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgaXNGcm96ZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVkaXRNb2RlID0gIXZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgY2FuVG9nZ2xlRnVsbHNjcmVlbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIElmIGEgZGFzaGJvYXJkIGVkaXRpbmcgaXMgZGlzYWJsZWQgbm8gd2lkZ2V0cyBjYW4gYmUgbW92ZWQsIGVkaXRlZCwgcmVtb3ZlZFxuICAgKiBvciBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IGZpcmVkIGlmIGEgY2hpbGQgY2hhbmdlIGlzIHN0YXJ0ZWQgKGRyYWdnaW5nIG9yIHJlc2l6aW5nKVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDaGlsZENvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogQW4gZXZlbnQgZmlyZWQgaWYgYSBjaGlsZCBjaGFuZ2UgaXMgZW5kZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2VFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPERhc2hib2FyZENoaWxkQ29tcG9uZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCBmaXJlZCBpZiB0aGUgZnVsbHNjcmVlbiB0b2dnbGUgYnV0dG9uIHdhcyBwcmVzc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIHRvZ2dsZUZ1bGxzY3JlZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEFsbCBjbGFzc2VzIGFkZGVkIHRvIHRoaXMgY2hpbGRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsYXNzOiBzdHJpbmdbXSB8IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBpeGVsIHdpZHRoIG9mIHRoZSBjaGlsZCAodXNlZCBmb3IgcmVzaXppbmcpXG4gICAqL1xuICBzZXQgcHhXaWR0aCh2YWx1ZSkge1xuICAgIHRoaXMuX3B4V2lkdGggPSBgJHt2YWx1ZX1weGA7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGl4ZWwgaGVpZ2h0IG9mIHRoZSBjaGlsZCAodXNlZCBmb3IgcmVzaXppbmcpXG4gICAqL1xuICBzZXQgcHhIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLl9weEhlaWdodCA9IGAke3ZhbHVlfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBvbiBldmVyeSByZXNpemUgYW5kIHJldHVybnMgdHJ1ZSBpZiBpbiBvbmUgY29sdW1uIHZpZXcgKG1vYmlsZSB2aWV3KVxuICAgKi9cbiAgaXNPbmVDb2x1bW5WaWV3JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKFxuICAgIG1hcChfID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8PSB0aGlzLk1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZXG4gICAgICApO1xuICAgIH0pLFxuICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgIHN0YXJ0V2l0aChcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8PSB0aGlzLk1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZXG4gICAgKVxuICApO1xuXG4gIC8qKlxuICAgKiBBbiBpbmRpY2F0b3IgaWYgdGhlIGNoaWxkIGlzIGludGVyc2VjdGVkICh0aGF0IG1lYW4gdmlzaWJsZSBmb3IgdGhlIHVzZXIpXG4gICAqL1xuICBpbnRlcnNlY3RlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUZWxscyBpZiB0aGUgbGFzdCBjaGFuZ2Ugd2FzIGEgZHJhZ2dpbmcgb3IgcmVzaXppbmcgZXZlbnQ7XG4gICAqL1xuICBsYXN0Q2hhbmdlOiAnZHJhZycgfCAncmVzaXplJyA9IG51bGw7XG5cbiAgLyoqXG4gICAqIG5hc3R5IHdvcmthcm91bmQgZm9yIHRoYXQgaXNzdWU6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzkzNDNcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXG4gIGdldCBpbmxpbmVTdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICBncmlkLWNvbHVtbi1zdGFydDogJHt0aGlzLnggKyAxfTtcbiAgICBncmlkLXJvdy1zdGFydDogJHt0aGlzLnkgKyAxfTtcbiAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gJHt0aGlzLndpZHRofTtcbiAgICBncmlkLXJvdy1lbmQ6IHNwYW4gJHt0aGlzLmhlaWdodH07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAke3RoaXMubWFyZ2luIHx8IDEyfXB4O1xuICAgIG9yZGVyOiAke3RoaXMuZ2V0T3JkZXIoKX07XG4gICAgYCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgc3Vic2NyaXB0aW9uIHdoaWNoIGlzIGxpc3RlbiB0b1xuICAgKiBvbiBjaGFuZ2VzIChkcmFnIG9yIHJlc2l6ZSkuXG4gICAqL1xuICBjaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5rbGFzc2VzID0ge1xuICAgICAgY2FyZDogdHJ1ZSxcbiAgICAgICdjYXJkLWRhc2hib2FyZCc6IHRydWUsXG4gICAgICAnb24tcmVzaXplJzogdGhpcy5pc1Jlc2l6ZSxcbiAgICAgIC4uLnRoaXMuY2xhc3NcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMueCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMueSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0RHluYW1pY0RpbWVuc2lvbigpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlSW50ZXJzZWN0aW9uICYmICdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93KSB7XG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgZXZlbnRzID0+ICh0aGlzLmludGVyc2VjdGVkID0gdGhpcy5jaGlsZEluVmlldyhldmVudHMsIGludGVyc2VjdGlvbk9ic2VydmVyKSlcbiAgICAgICk7XG4gICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcnNlY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLnB1c2godGhpcyk7XG4gIH1cblxuICBzZXREeW5hbWljRGltZW5zaW9uKCkge1xuICAgIGNvbnN0IGRzID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHRoaXMpO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gZHMuZmluZEZyZWVEaW1lbnNpb24oKTtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5lbWl0Q2hhbmdlKHRoaXMpO1xuICB9XG5cbiAgcmVzaXplU3RhcnRlZCgkZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgIHRoaXMuaXNSZXNpemUgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVJlY3RTaXplKCk7XG4gICAgdGhpcy5kcmFnU291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICBjb25zdCBwb3NpdGlvbmluZyA9IG5ldyBEYXNoYm9hcmRDaGlsZENoYW5nZSh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uaW5nLnJlc2l6ZSQuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGFydC5lbWl0KHRoaXMpO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgfVxuXG4gIGRyYWdTdGFydGVkKCRldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRhc2hib2FyZC51cGRhdGVSZWN0U2l6ZSgpO1xuICAgIHRoaXMuZHJhZ1NvdXJjZSA9ICRldmVudC5zb3VyY2U7XG4gICAgY29uc3QgcG9zaXRpb25pbmcgPSBuZXcgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UodGhpcyk7XG4gICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24gPSBwb3NpdGlvbmluZy5kcmFnJC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXJ0LmVtaXQodGhpcyk7XG4gIH1cblxuICByZXNldCgkZXZlbnQ/OiBDZGtEcmFnRW5kKSB7XG4gICAgdGhpcy5sYXN0Q2hhbmdlID0gdGhpcy5pc1Jlc2l6ZSA/ICdyZXNpemUnIDogJ2RyYWcnO1xuICAgIHRoaXMuaXNSZXNpemUgPSBmYWxzZTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9weFdpZHRoID0gJzEwMCUnO1xuICAgIHRoaXMuX3B4SGVpZ2h0ID0gJzEwMCUnO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQuc291cmNlLnJlc2V0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmVtaXRDaGFuZ2UodGhpcyk7XG4gICAgICB0aGlzLmNoYW5nZUVuZC5lbWl0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVTZWxmRnJvbURhc2hib2FyZCgpO1xuICB9XG5cbiAgYWRkQWN0aW9ucyhhY3Rpb25zOiBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudFtdLCBwcmVwZW5kID0gZmFsc2UpIHtcbiAgICBpZiAocHJlcGVuZCkge1xuICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLmFjdGlvbnMsIC4uLnRoaXMuYWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aW9ucyA9IFsuLi50aGlzLmFjdGlvbnMsIC4uLmFjdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZkZyb21EYXNoYm9hcmQoKSB7XG4gICAgY29uc3QgaSA9IHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLmluZGV4T2YodGhpcyk7XG5cbiAgICBpZiAoaSA+PSAwKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5jaGlsZHJlbi5zcGxpY2UoaSwgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcmRlcigpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5yb3VuZCgodGhpcy55ICsgKHRoaXMueCArIDEpIC8gMTAwKSAqIDEwMCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgY2hpbGRJblZpZXcoZXZlbnRzLCBvYnNlcnZlcikge1xuICAgIGNvbnN0IGludGVyc2VjdGluZ0V2ZW50ID0gZXZlbnRzLmZpbmQoZXZlbnQgPT4gZXZlbnQuaXNJbnRlcnNlY3RpbmcpO1xuICAgIGlmIChpbnRlcnNlY3RpbmdFdmVudCkge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGludGVyc2VjdGluZ0V2ZW50LnRhcmdldCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNka0Ryb3BMaXN0PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXJkLXBsYWNlaG9sZGVyXCJcbiAgICAqbmdJZj1cImlzUmVzaXplXCJcbiAgPjwvZGl2PlxuICA8ZGl2XG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogX3B4V2lkdGgsIGhlaWdodDogX3B4SGVpZ2h0IH1cIlxuICAgIFtuZ0NsYXNzXT1cImtsYXNzZXNcIlxuICAgIGNka0RyYWdcbiAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXG4gICAgKGNka0RyYWdFbmRlZCk9XCJyZXNldCgkZXZlbnQpXCJcbiAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIihpc09uZUNvbHVtblZpZXckIHwgYXN5bmMpIHx8ICFlZGl0TW9kZSB8fCBmdWxsc2NyZWVuXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1oZWFkZXItYWN0aW9ucyBjYXJkLWhlYWRlci1ncmlkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2RyYWctaGFuZGxlJzogZWRpdE1vZGUgJiYgIWZ1bGxzY3JlZW4sXG4gICAgICAgIGRyYWdnYWJsZUN1cnNvcjogZWRpdE1vZGUgJiYgIWZ1bGxzY3JlZW5cbiAgICAgIH1cIlxuICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyLWFjdGlvbnMgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgICAgICAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgICA+XG4gICAgICAgIDxjOHktd2lkZ2V0LXRpbWUtY29udGV4dC1pY29uLWJhclxuICAgICAgICAgICpuZ0lmPVwiZGF0YT8uY29uZmlnPy5kaXNwbGF5U2V0dGluZ3MgJiYgZGF0YT8uY29uZmlnPy53aWRnZXRJbnN0YW5jZUdsb2JhbFRpbWVDb250ZXh0XCJcbiAgICAgICAgICBbY29uZmlnXT1cImRhdGEuY29uZmlnXCJcbiAgICAgICAgPjwvYzh5LXdpZGdldC10aW1lLWNvbnRleHQtaWNvbi1iYXI+XG4gICAgICAgIDxjOHktd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LWljb24tYmFyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGRhdGE/LmNvbmZpZz8ud2lkZ2V0SW5zdGFuY2VHbG9iYWxBdXRvUmVmcmVzaENvbnRleHQgJiZcbiAgICAgICAgICAgIGRhdGE/LmNvbmZpZz8uZGlzcGxheVNldHRpbmdzLmdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dFxuICAgICAgICAgIFwiXG4gICAgICAgID48L2M4eS13aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQtaWNvbi1iYXI+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidGdWxsIHNjcmVlbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImZ1bGxzY3JlZW4gPyAoJ0V4aXQgZnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKSA6ICgnRnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgZGVsYXk9XCI1MDBcIlxuICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJlZGl0TW9kZSB8fCAhY2FuVG9nZ2xlRnVsbHNjcmVlblwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4ubmV4dCgpXCJcbiAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3MtZnVsbHNjcmVlblwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBbYzh5SWNvbl09XCJmdWxsc2NyZWVuID8gJ2NvbXByZXNzJyA6ICdleHBhbmQnXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwib3B0aW9uc0J0biBkcm9wZG93blwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIHJpZ2h0XCJcbiAgICAgICAgICBkcm9wZG93blxuICAgICAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uIGM4eS1kcm9wZG93blwiXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdTZXR0aW5ncycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCJlZGl0TW9kZVwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgZHJvcGRvd25Ub2dnbGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBbYzh5SWNvbl09XCInY29nJ1wiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4taWNvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDbGljayAmcXVvdDtFZGl0IHdpZGdldHMmcXVvdDsgdG8gdW5sb2NrJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0b29sdGlwPVwie3sgJ0NsaWNrICZxdW90O0VkaXQgd2lkZ2V0cyZxdW90OyB0byB1bmxvY2snIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgKm5nSWY9XCIhZWRpdE1vZGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1kYXNoYm9hcmQtY2hpbGQtLXNldHRpbmdzLWxvY2tlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2xvY2snXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1kYXNoYm9hcmQtY2hpbGQtLWFjdGlvbnMtZHJvcGRvd25cIlxuICAgICAgICAgICAgc3R5bGU9XCJyaWdodDogLTFweFwiXG4gICAgICAgICAgICAqZHJvcGRvd25NZW51XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbi50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbm5lci1zY3JvbGxcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlc2l6ZS1oYW5kbGUgaGlkZGVuLXhzXCJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgJiYgIWlzRHJhZ2dpbmcgJiYgIWZ1bGxzY3JlZW5cIlxuICAgICAgY2RrRHJhZ1xuICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdE1vZGUgfHwgZnVsbHNjcmVlblwiXG4gICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwicmVzaXplU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwicmVzZXQoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVzaXplLWljb24gaGlkZGVuLXhzXCJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgJiYgIWlzRHJhZ2dpbmcgJiYgIWZ1bGxzY3JlZW5cIlxuICAgID48L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1wbGFjZWhvbGRlclwiXG4gICAgICAqY2RrRHJhZ1BsYWNlaG9sZGVyXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -19,11 +19,14 @@ import { DynamicFormsModule } from '../dynamic-forms';
19
19
  import { HelpModule } from '../help';
20
20
  import { DateTimePickerModule } from '../date-time-picker';
21
21
  import { FormsModule } from '../forms';
22
- import { IntervalPickerComponent } from './wiget-time-context/interval-picker/interval-picker.component';
23
22
  import { RealtimeControlComponent } from './wiget-time-context/realtime-control/realtime-control.component';
24
23
  import { AggregationPickerComponent } from './wiget-time-context/aggregation-picker/aggregation-picker.component';
25
24
  import { WidgetTimeContextIconBar } from './wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component';
25
+ import { IntervalPickerComponent } from '@c8y/ngx-components/interval-picker';
26
26
  import { PopoverModule } from 'ngx-bootstrap/popover';
27
+ import { WidgetAutoRefreshContextComponent, AutoRefreshControlComponent, AutoRefreshSelectControlComponent, WidgetAutoRefreshContextIconBarComponent } from './widget-auto-refresh-context';
28
+ import { CountdownIntervalModule } from '../countdown-interval';
29
+ import { TranslateModule } from '@ngx-translate/core';
27
30
  import * as i0 from "@angular/core";
28
31
  import * as i1 from "ngx-bootstrap/dropdown";
29
32
  export class DashboardModule {
@@ -34,9 +37,12 @@ export class DashboardModule {
34
37
  DashboardChildActionComponent,
35
38
  WidgetsDashboardComponent,
36
39
  WidgetTimeContextComponent,
37
- IntervalPickerComponent,
38
40
  RealtimeControlComponent,
39
41
  AggregationPickerComponent,
42
+ WidgetAutoRefreshContextComponent,
43
+ WidgetAutoRefreshContextIconBarComponent,
44
+ AutoRefreshControlComponent,
45
+ AutoRefreshSelectControlComponent,
40
46
  WidgetTimeContextIconBar], imports: [CommonModule,
41
47
  ActionBarModule,
42
48
  DynamicComponentModule,
@@ -49,6 +55,9 @@ export class DashboardModule {
49
55
  DynamicFormsModule,
50
56
  HelpModule,
51
57
  DateTimePickerModule,
58
+ CountdownIntervalModule,
59
+ TranslateModule,
60
+ IntervalPickerComponent,
52
61
  PopoverModule], exports: [DashboardComponent,
53
62
  DashboardChildComponent,
54
63
  DashboardChildTitleComponent,
@@ -69,6 +78,9 @@ export class DashboardModule {
69
78
  DynamicFormsModule,
70
79
  HelpModule,
71
80
  DateTimePickerModule,
81
+ CountdownIntervalModule,
82
+ TranslateModule,
83
+ IntervalPickerComponent,
72
84
  PopoverModule] }); }
73
85
  }
74
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DashboardModule, decorators: [{
@@ -81,9 +93,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
81
93
  DashboardChildActionComponent,
82
94
  WidgetsDashboardComponent,
83
95
  WidgetTimeContextComponent,
84
- IntervalPickerComponent,
85
96
  RealtimeControlComponent,
86
97
  AggregationPickerComponent,
98
+ WidgetAutoRefreshContextComponent,
99
+ WidgetAutoRefreshContextIconBarComponent,
100
+ AutoRefreshControlComponent,
101
+ AutoRefreshSelectControlComponent,
87
102
  WidgetTimeContextIconBar
88
103
  ],
89
104
  imports: [
@@ -101,6 +116,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
101
116
  DynamicFormsModule,
102
117
  HelpModule,
103
118
  DateTimePickerModule,
119
+ CountdownIntervalModule,
120
+ TranslateModule,
121
+ IntervalPickerComponent,
104
122
  PopoverModule
105
123
  ],
106
124
  exports: [
@@ -113,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
113
131
  ]
114
132
  }]
115
133
  }] });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDekcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDNUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDbEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFDcEksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUF5Q3RELE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxpQkFyQ3hCLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsNEJBQTRCO1lBQzVCLDZCQUE2QjtZQUM3Qix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIsMEJBQTBCO1lBQzFCLHdCQUF3QixhQUd4QixZQUFZO1lBQ1osZUFBZTtZQUNmLHNCQUFzQjtZQUN0QixjQUFjLHVCQUVkLGFBQWE7WUFDYixZQUFZO1lBQ1osVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1Ysb0JBQW9CO1lBQ3BCLGFBQWEsYUFHYixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLDRCQUE0QjtZQUM1Qiw2QkFBNkI7WUFDN0IseUJBQXlCO1lBQ3pCLDBCQUEwQjsrR0FHakIsZUFBZSxZQXpCeEIsWUFBWTtZQUNaLGVBQWU7WUFDZixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtZQUMxQixhQUFhO1lBQ2IsWUFBWTtZQUNaLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsVUFBVTtZQUNWLG9CQUFvQjtZQUNwQixhQUFhOzsyRkFXSixlQUFlO2tCQXZDM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLDRCQUE0Qjt3QkFDNUIsNkJBQTZCO3dCQUM3Qix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsY0FBYzt3QkFDZCxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzFCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsVUFBVTt3QkFDVixvQkFBb0I7d0JBQ3BCLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2Qiw0QkFBNEI7d0JBQzVCLDZCQUE2Qjt3QkFDN0IseUJBQXlCO3dCQUN6QiwwQkFBMEI7cUJBQzNCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBBY3Rpb25CYXJNb2R1bGUgfSBmcm9tICcuLi9hY3Rpb24tYmFyL2FjdGlvbi1iYXIubW9kdWxlJztcbmltcG9ydCB7IEJyZWFkY3J1bWJNb2R1bGUgfSBmcm9tICcuLi9icmVhZGNydW1iL2JyZWFkY3J1bWIubW9kdWxlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24ubW9kdWxlJztcbmltcG9ydCB7IERvY3NNb2R1bGUgfSBmcm9tICcuLi9kb2NzL2RvY3MubW9kdWxlJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgSGVhZGVyTW9kdWxlIH0gZnJvbSAnLi4vaGVhZGVyL2hlYWRlci5tb2R1bGUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC10aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldFRpbWVDb250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi93aWdldC10aW1lLWNvbnRleHQvd2lkZ2V0LXRpbWUtY29udGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0c0Rhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNGb3Jtc01vZHVsZSB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybXMnO1xuaW1wb3J0IHsgSGVscE1vZHVsZSB9IGZyb20gJy4uL2hlbHAnO1xuaW1wb3J0IHsgRGF0ZVRpbWVQaWNrZXJNb2R1bGUgfSBmcm9tICcuLi9kYXRlLXRpbWUtcGlja2VyJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnLi4vZm9ybXMnO1xuaW1wb3J0IHsgSW50ZXJ2YWxQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3dpZ2V0LXRpbWUtY29udGV4dC9pbnRlcnZhbC1waWNrZXIvaW50ZXJ2YWwtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFsdGltZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL3dpZ2V0LXRpbWUtY29udGV4dC9yZWFsdGltZS1jb250cm9sL3JlYWx0aW1lLWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi93aWdldC10aW1lLWNvbnRleHQvYWdncmVnYXRpb24tcGlja2VyL2FnZ3JlZ2F0aW9uLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0VGltZUNvbnRleHRJY29uQmFyIH0gZnJvbSAnLi93aWdldC10aW1lLWNvbnRleHQvd2lkZ2V0LXRpbWUtY29udGV4dC1pY29uLWJhci93aWRnZXQtdGltZS1jb250ZXh0LWljb24tYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdmVyTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3BvdmVyJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkQ29tcG9uZW50LFxuICAgIERhc2hib2FyZENoaWxkVGl0bGVDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQsXG4gICAgV2lkZ2V0c0Rhc2hib2FyZENvbXBvbmVudCxcbiAgICBXaWRnZXRUaW1lQ29udGV4dENvbXBvbmVudCxcbiAgICBJbnRlcnZhbFBpY2tlckNvbXBvbmVudCxcbiAgICBSZWFsdGltZUNvbnRyb2xDb21wb25lbnQsXG4gICAgQWdncmVnYXRpb25QaWNrZXJDb21wb25lbnQsXG4gICAgV2lkZ2V0VGltZUNvbnRleHRJY29uQmFyXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQWN0aW9uQmFyTW9kdWxlLFxuICAgIER5bmFtaWNDb21wb25lbnRNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgQnNEcm9wZG93bk1vZHVsZS5mb3JSb290KCksXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBIZWFkZXJNb2R1bGUsXG4gICAgRG9jc01vZHVsZSxcbiAgICBCcmVhZGNydW1iTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEJzRGF0ZXBpY2tlck1vZHVsZSxcbiAgICBEeW5hbWljRm9ybXNNb2R1bGUsXG4gICAgSGVscE1vZHVsZSxcbiAgICBEYXRlVGltZVBpY2tlck1vZHVsZSxcbiAgICBQb3BvdmVyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkQ2hpbGRUaXRsZUNvbXBvbmVudCxcbiAgICBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudCxcbiAgICBXaWRnZXRzRGFzaGJvYXJkQ29tcG9uZW50LFxuICAgIFdpZGdldFRpbWVDb250ZXh0Q29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkTW9kdWxlIHt9XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDNUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDbEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFDcEksT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsMkJBQTJCLEVBQzNCLGlDQUFpQyxFQUNqQyx3Q0FBd0MsRUFDekMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQStDdEQsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLGlCQTNDeEIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQiw0QkFBNEI7WUFDNUIsNkJBQTZCO1lBQzdCLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsd0JBQXdCO1lBQ3hCLDBCQUEwQjtZQUMxQixpQ0FBaUM7WUFDakMsd0NBQXdDO1lBQ3hDLDJCQUEyQjtZQUMzQixpQ0FBaUM7WUFDakMsd0JBQXdCLGFBR3hCLFlBQVk7WUFDWixlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLGNBQWMsdUJBRWQsYUFBYTtZQUNiLFlBQVk7WUFDWixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLFVBQVU7WUFDVixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLGVBQWU7WUFDZix1QkFBdUI7WUFDdkIsYUFBYSxhQUdiLGtCQUFrQjtZQUNsQix1QkFBdUI7WUFDdkIsNEJBQTRCO1lBQzVCLDZCQUE2QjtZQUM3Qix5QkFBeUI7WUFDekIsMEJBQTBCOytHQUdqQixlQUFlLFlBNUJ4QixZQUFZO1lBQ1osZUFBZTtZQUNmLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO1lBQzFCLGFBQWE7WUFDYixZQUFZO1lBQ1osVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1Ysb0JBQW9CO1lBQ3BCLHVCQUF1QjtZQUN2QixlQUFlO1lBQ2YsdUJBQXVCO1lBQ3ZCLGFBQWE7OzJGQVdKLGVBQWU7a0JBN0MzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsNEJBQTRCO3dCQUM1Qiw2QkFBNkI7d0JBQzdCLHlCQUF5Qjt3QkFDekIsMEJBQTBCO3dCQUMxQix3QkFBd0I7d0JBQ3hCLDBCQUEwQjt3QkFDMUIsaUNBQWlDO3dCQUNqQyx3Q0FBd0M7d0JBQ3hDLDJCQUEyQjt3QkFDM0IsaUNBQWlDO3dCQUNqQyx3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGdCQUFnQixDQUFDLE9BQU8sRUFBRTt3QkFDMUIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixVQUFVO3dCQUNWLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsNkJBQTZCO3dCQUM3Qix5QkFBeUI7d0JBQ3pCLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcbmltcG9ydCB7IEFjdGlvbkJhck1vZHVsZSB9IGZyb20gJy4uL2FjdGlvbi1iYXIvYWN0aW9uLWJhci5tb2R1bGUnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYk1vZHVsZSB9IGZyb20gJy4uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5tb2R1bGUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi5tb2R1bGUnO1xuaW1wb3J0IHsgRG9jc01vZHVsZSB9IGZyb20gJy4uL2RvY3MvZG9jcy5tb2R1bGUnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBIZWFkZXJNb2R1bGUgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLm1vZHVsZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLWNoaWxkLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLWNoaWxkLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0VGltZUNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL3dpZ2V0LXRpbWUtY29udGV4dC93aWRnZXQtdGltZS1jb250ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRnZXRzRGFzaGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzLWRhc2hib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1zTW9kdWxlIH0gZnJvbSAnLi4vZHluYW1pYy1mb3Jtcyc7XG5pbXBvcnQgeyBIZWxwTW9kdWxlIH0gZnJvbSAnLi4vaGVscCc7XG5pbXBvcnQgeyBEYXRlVGltZVBpY2tlck1vZHVsZSB9IGZyb20gJy4uL2RhdGUtdGltZS1waWNrZXInO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICcuLi9mb3Jtcyc7XG5pbXBvcnQgeyBSZWFsdGltZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL3dpZ2V0LXRpbWUtY29udGV4dC9yZWFsdGltZS1jb250cm9sL3JlYWx0aW1lLWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi93aWdldC10aW1lLWNvbnRleHQvYWdncmVnYXRpb24tcGlja2VyL2FnZ3JlZ2F0aW9uLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0VGltZUNvbnRleHRJY29uQmFyIH0gZnJvbSAnLi93aWdldC10aW1lLWNvbnRleHQvd2lkZ2V0LXRpbWUtY29udGV4dC1pY29uLWJhci93aWRnZXQtdGltZS1jb250ZXh0LWljb24tYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnRlcnZhbFBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaW50ZXJ2YWwtcGlja2VyJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHtcbiAgV2lkZ2V0QXV0b1JlZnJlc2hDb250ZXh0Q29tcG9uZW50LFxuICBBdXRvUmVmcmVzaENvbnRyb2xDb21wb25lbnQsXG4gIEF1dG9SZWZyZXNoU2VsZWN0Q29udHJvbENvbXBvbmVudCxcbiAgV2lkZ2V0QXV0b1JlZnJlc2hDb250ZXh0SWNvbkJhckNvbXBvbmVudFxufSBmcm9tICcuL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dCc7XG5pbXBvcnQgeyBDb3VudGRvd25JbnRlcnZhbE1vZHVsZSB9IGZyb20gJy4uL2NvdW50ZG93bi1pbnRlcnZhbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkQ29tcG9uZW50LFxuICAgIERhc2hib2FyZENoaWxkVGl0bGVDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQsXG4gICAgV2lkZ2V0c0Rhc2hib2FyZENvbXBvbmVudCxcbiAgICBXaWRnZXRUaW1lQ29udGV4dENvbXBvbmVudCxcbiAgICBSZWFsdGltZUNvbnRyb2xDb21wb25lbnQsXG4gICAgQWdncmVnYXRpb25QaWNrZXJDb21wb25lbnQsXG4gICAgV2lkZ2V0QXV0b1JlZnJlc2hDb250ZXh0Q29tcG9uZW50LFxuICAgIFdpZGdldEF1dG9SZWZyZXNoQ29udGV4dEljb25CYXJDb21wb25lbnQsXG4gICAgQXV0b1JlZnJlc2hDb250cm9sQ29tcG9uZW50LFxuICAgIEF1dG9SZWZyZXNoU2VsZWN0Q29udHJvbENvbXBvbmVudCxcbiAgICBXaWRnZXRUaW1lQ29udGV4dEljb25CYXJcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBY3Rpb25CYXJNb2R1bGUsXG4gICAgRHluYW1pY0NvbXBvbmVudE1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLmZvclJvb3QoKSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEhlYWRlck1vZHVsZSxcbiAgICBEb2NzTW9kdWxlLFxuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQnNEYXRlcGlja2VyTW9kdWxlLFxuICAgIER5bmFtaWNGb3Jtc01vZHVsZSxcbiAgICBIZWxwTW9kdWxlLFxuICAgIERhdGVUaW1lUGlja2VyTW9kdWxlLFxuICAgIENvdW50ZG93bkludGVydmFsTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJbnRlcnZhbFBpY2tlckNvbXBvbmVudCxcbiAgICBQb3BvdmVyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkQ2hpbGRUaXRsZUNvbXBvbmVudCxcbiAgICBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudCxcbiAgICBXaWRnZXRzRGFzaGJvYXJkQ29tcG9uZW50LFxuICAgIFdpZGdldFRpbWVDb250ZXh0Q29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkTW9kdWxlIHt9XG4iXX0=
@@ -9,4 +9,7 @@ export * from './dashboard-child-change';
9
9
  export * from './dashboard-child-title.component';
10
10
  export * from './wiget-time-context/widget-time-context.component';
11
11
  export * from './wiget-time-context/widget-time-context.model';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzLWRhc2hib2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNoYW5nZS1ldmVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtYWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtdGl0bGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vd2lnZXQtdGltZS1jb250ZXh0L3dpZGdldC10aW1lLWNvbnRleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vd2lnZXQtdGltZS1jb250ZXh0L3dpZGdldC10aW1lLWNvbnRleHQubW9kZWwnO1xuIl19
12
+ export * from './widget-auto-refresh-context/widget-auto-refresh-context.model';
13
+ export * from './widget-auto-refresh-context/widget-global-auto-refresh.service';
14
+ export * from './widget-auto-refresh-context/global-refresh-loading.operator';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsK0RBQStELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzLWRhc2hib2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNoYW5nZS1ldmVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtYWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtdGl0bGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vd2lnZXQtdGltZS1jb250ZXh0L3dpZGdldC10aW1lLWNvbnRleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vd2lnZXQtdGltZS1jb250ZXh0L3dpZGdldC10aW1lLWNvbnRleHQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L3dpZGdldC1nbG9iYWwtYXV0by1yZWZyZXNoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQvZ2xvYmFsLXJlZnJlc2gtbG9hZGluZy5vcGVyYXRvcic7XG4iXX0=
@@ -0,0 +1,101 @@
1
+ import { Component, EventEmitter, forwardRef, inject, Output, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { Subject } from 'rxjs';
4
+ import { gettext } from '../../i18n';
5
+ import { CountdownIntervalComponent } from '../../countdown-interval';
6
+ import { WidgetGlobalAutoRefreshService } from './widget-global-auto-refresh.service';
7
+ import { filter, takeUntil, tap } from 'rxjs/operators';
8
+ import { DEFAULT_INTERVAL_VALUE } from './widget-auto-refresh-context.model';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../common/icon.directive";
11
+ import * as i2 from "@angular/common";
12
+ import * as i3 from "ngx-bootstrap/tooltip";
13
+ import * as i4 from "../../countdown-interval/countdown-interval.component";
14
+ import * as i5 from "@ngx-translate/core";
15
+ export class AutoRefreshControlComponent {
16
+ constructor() {
17
+ this.DISABLE_AUTO_REFRESH = gettext('Disable auto refresh');
18
+ this.ENABLE_AUTO_REFRESH = gettext('Enable auto refresh');
19
+ this.DEFAULT_INTERVAL_VALUE = DEFAULT_INTERVAL_VALUE;
20
+ this.loading = new EventEmitter();
21
+ this.widgetGlobalAutoRefresh = inject(WidgetGlobalAutoRefreshService);
22
+ this.destroy$ = new Subject();
23
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
24
+ this.onTouched = () => { };
25
+ }
26
+ ngOnInit() {
27
+ this.showIntervalRefresh$ = this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$;
28
+ }
29
+ ngAfterViewInit() {
30
+ this.subscribeOnCountdownChangeState();
31
+ this.setUpOnCountdownEndedListener();
32
+ this.autoRefreshSeconds$ = this.widgetGlobalAutoRefresh.autoRefreshSettings.refreshInterval$;
33
+ }
34
+ ngOnDestroy() {
35
+ this.destroy$.next();
36
+ this.destroy$.complete();
37
+ }
38
+ toggleIntervalRefresh() {
39
+ this.showIntervalRefresh$.next(!this.showIntervalRefresh$.getValue());
40
+ this.onChange(this.showIntervalRefresh$.getValue());
41
+ this.widgetGlobalAutoRefresh.autoRefreshSettings.userDisabledManually$.next(!this.showIntervalRefresh$.getValue());
42
+ }
43
+ registerOnChange(fn) {
44
+ this.onChange = fn;
45
+ }
46
+ writeValue(showIntervalRefresh) {
47
+ if (!this.showIntervalRefresh$) {
48
+ return;
49
+ }
50
+ this.showIntervalRefresh$.next(showIntervalRefresh);
51
+ }
52
+ registerOnTouched(fn) {
53
+ this.onTouched = fn;
54
+ }
55
+ subscribeOnCountdownChangeState() {
56
+ this.widgetGlobalAutoRefresh.countdownActions.reset$
57
+ .pipe(tap(() => {
58
+ this.loading.emit(false);
59
+ this.countdownIntervalComponent?.reset();
60
+ }), takeUntil(this.destroy$))
61
+ .subscribe();
62
+ this.widgetGlobalAutoRefresh.countdownActions.stop$
63
+ .pipe(tap(() => {
64
+ this.loading.emit(true);
65
+ this.countdownIntervalComponent?.stop(true);
66
+ }), takeUntil(this.destroy$))
67
+ .subscribe();
68
+ }
69
+ setUpOnCountdownEndedListener() {
70
+ this.countdownIntervalComponent.countdownEnded
71
+ .pipe(filter(() => this.showIntervalRefresh$.getValue()), tap(() => this.handleCountdownEnded()), takeUntil(this.destroy$))
72
+ .subscribe();
73
+ }
74
+ handleCountdownEnded() {
75
+ this.widgetGlobalAutoRefresh.countdownActions.countdownEnded$.next();
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AutoRefreshControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AutoRefreshControlComponent, selector: "c8y-auto-refresh-control", outputs: { loading: "loading" }, providers: [
79
+ {
80
+ provide: NG_VALUE_ACCESSOR,
81
+ useExisting: forwardRef(() => AutoRefreshControlComponent),
82
+ multi: true
83
+ }
84
+ ], viewQueries: [{ propertyName: "countdownIntervalComponent", first: true, predicate: CountdownIntervalComponent, descendants: true }], ngImport: i0, template: "<div class=\"input-group\">\n <button\n class=\"toggle-countdown\"\n [attr.aria-label]=\"\n ((showIntervalRefresh$ | async) ? DISABLE_AUTO_REFRESH : ENABLE_AUTO_REFRESH) | translate\n \"\n [tooltip]=\"\n ((showIntervalRefresh$ | async) ? DISABLE_AUTO_REFRESH : ENABLE_AUTO_REFRESH) | translate\n \"\n placement=\"bottom\"\n (click)=\"toggleIntervalRefresh()\"\n [adaptivePosition]=\"false\"\n mode\n [delay]=\"500\"\n >\n <c8y-countdown-interval\n [hidden]=\"!(showIntervalRefresh$ | async)\"\n [countdownInterval]=\"(autoRefreshSeconds$ | async) ?? DEFAULT_INTERVAL_VALUE\"\n ></c8y-countdown-interval>\n <i\n c8yIcon=\"pause\"\n *ngIf=\"!(showIntervalRefresh$ | async)\"\n ></i>\n </button>\n <span></span>\n</div>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: "component", type: i4.CountdownIntervalComponent, selector: "c8y-countdown-interval", inputs: ["countdownInterval"], outputs: ["countdownEnded"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AutoRefreshControlComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ selector: 'c8y-auto-refresh-control', providers: [
89
+ {
90
+ provide: NG_VALUE_ACCESSOR,
91
+ useExisting: forwardRef(() => AutoRefreshControlComponent),
92
+ multi: true
93
+ }
94
+ ], template: "<div class=\"input-group\">\n <button\n class=\"toggle-countdown\"\n [attr.aria-label]=\"\n ((showIntervalRefresh$ | async) ? DISABLE_AUTO_REFRESH : ENABLE_AUTO_REFRESH) | translate\n \"\n [tooltip]=\"\n ((showIntervalRefresh$ | async) ? DISABLE_AUTO_REFRESH : ENABLE_AUTO_REFRESH) | translate\n \"\n placement=\"bottom\"\n (click)=\"toggleIntervalRefresh()\"\n [adaptivePosition]=\"false\"\n mode\n [delay]=\"500\"\n >\n <c8y-countdown-interval\n [hidden]=\"!(showIntervalRefresh$ | async)\"\n [countdownInterval]=\"(autoRefreshSeconds$ | async) ?? DEFAULT_INTERVAL_VALUE\"\n ></c8y-countdown-interval>\n <i\n c8yIcon=\"pause\"\n *ngIf=\"!(showIntervalRefresh$ | async)\"\n ></i>\n </button>\n <span></span>\n</div>\n" }]
95
+ }], propDecorators: { countdownIntervalComponent: [{
96
+ type: ViewChild,
97
+ args: [CountdownIntervalComponent]
98
+ }], loading: [{
99
+ type: Output
100
+ }] } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZWZyZXNoLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L2F1dG8tcmVmcmVzaC1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC9hdXRvLXJlZnJlc2gtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBbUIsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7QUFhN0UsTUFBTSxPQUFPLDJCQUEyQjtJQVh4QztRQWNXLHlCQUFvQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3ZELHdCQUFtQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JELDJCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBTXpELFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVyxD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QVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZFLENBQUM7OEdBaEdVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLG9GQVQzQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQzFELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixzRkFVVSwwQkFBMEIsZ0RDckN2Qyw0eEJBMEJBOzsyRkRJYSwyQkFBMkI7a0JBWHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGFBQ3pCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFXRCwwQkFBMEI7c0JBRHpCLFNBQVM7dUJBQUMsMEJBQTBCO2dCQUlyQyxPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IENvdW50ZG93bkludGVydmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY291bnRkb3duLWludGVydmFsJztcbmltcG9ydCB7IFdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0LWdsb2JhbC1hdXRvLXJlZnJlc2guc2VydmljZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9JTlRFUlZBTF9WQUxVRSB9IGZyb20gJy4vd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWF1dG8tcmVmcmVzaC1jb250cm9sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvUmVmcmVzaENvbnRyb2xDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvLXJlZnJlc2gtY29udHJvbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0b1JlZnJlc2hDb250cm9sQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIHJlYWRvbmx5IERJU0FCTEVfQVVUT19SRUZSRVNIID0gZ2V0dGV4dCgnRGlzYWJsZSBhdXRvIHJlZnJlc2gnKTtcbiAgcmVhZG9ubHkgRU5BQkxFX0FVVE9fUkVGUkVTSCA9IGdldHRleHQoJ0VuYWJsZSBhdXRvIHJlZnJlc2gnKTtcbiAgcmVhZG9ubHkgREVGQVVMVF9JTlRFUlZBTF9WQUxVRSA9IERFRkFVTFRfSU5URVJWQUxfVkFMVUU7XG5cbiAgQFZpZXdDaGlsZChDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudClcbiAgY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ6IENvdW50ZG93bkludGVydmFsQ29tcG9uZW50O1xuXG4gIEBPdXRwdXQoKVxuICBsb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHNob3dJbnRlcnZhbFJlZnJlc2gkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIGF1dG9SZWZyZXNoU2Vjb25kcyQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldEdsb2JhbEF1dG9SZWZyZXNoID0gaW5qZWN0KFdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dJbnRlcnZhbFJlZnJlc2gkID0gdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVPbkNvdW50ZG93bkNoYW5nZVN0YXRlKCk7XG5cbiAgICB0aGlzLnNldFVwT25Db3VudGRvd25FbmRlZExpc3RlbmVyKCk7XG4gICAgdGhpcy5hdXRvUmVmcmVzaFNlY29uZHMkID0gdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLnJlZnJlc2hJbnRlcnZhbCQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICB0b2dnbGVJbnRlcnZhbFJlZnJlc2goKSB7XG4gICAgdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5uZXh0KCF0aGlzLnNob3dJbnRlcnZhbFJlZnJlc2gkLmdldFZhbHVlKCkpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpKTtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MudXNlckRpc2FibGVkTWFudWFsbHkkLm5leHQoXG4gICAgICAhdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpXG4gICAgKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoc2hvd0ludGVydmFsUmVmcmVzaDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNob3dJbnRlcnZhbFJlZnJlc2gkLm5leHQoc2hvd0ludGVydmFsUmVmcmVzaCk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25Db3VudGRvd25DaGFuZ2VTdGF0ZSgpIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmNvdW50ZG93bkFjdGlvbnMucmVzZXQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5jb3VudGRvd25JbnRlcnZhbENvbXBvbmVudD8ucmVzZXQoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5jb3VudGRvd25BY3Rpb25zLnN0b3AkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuZW1pdCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdG9wKHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFVwT25Db3VudGRvd25FbmRlZExpc3RlbmVyKCkge1xuICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQuY291bnRkb3duRW5kZWRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGFuZGxlQ291bnRkb3duRW5kZWQoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb3VudGRvd25FbmRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmNvdW50ZG93bkFjdGlvbnMuY291bnRkb3duRW5kZWQkLm5leHQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cInRvZ2dsZS1jb3VudGRvd25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAoKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpID8gRElTQUJMRV9BVVRPX1JFRlJFU0ggOiBFTkFCTEVfQVVUT19SRUZSRVNIKSB8IHRyYW5zbGF0ZVxuICAgIFwiXG4gICAgW3Rvb2x0aXBdPVwiXG4gICAgICAoKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpID8gRElTQUJMRV9BVVRPX1JFRlJFU0ggOiBFTkFCTEVfQVVUT19SRUZSRVNIKSB8IHRyYW5zbGF0ZVxuICAgIFwiXG4gICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlSW50ZXJ2YWxSZWZyZXNoKClcIlxuICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICBtb2RlXG4gICAgW2RlbGF5XT1cIjUwMFwiXG4gID5cbiAgICA8Yzh5LWNvdW50ZG93bi1pbnRlcnZhbFxuICAgICAgW2hpZGRlbl09XCIhKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpXCJcbiAgICAgIFtjb3VudGRvd25JbnRlcnZhbF09XCIoYXV0b1JlZnJlc2hTZWNvbmRzJCB8IGFzeW5jKSA/PyBERUZBVUxUX0lOVEVSVkFMX1ZBTFVFXCJcbiAgICA+PC9jOHktY291bnRkb3duLWludGVydmFsPlxuICAgIDxpXG4gICAgICBjOHlJY29uPVwicGF1c2VcIlxuICAgICAgKm5nSWY9XCIhKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpXCJcbiAgICA+PC9pPlxuICA8L2J1dHRvbj5cbiAgPHNwYW4+PC9zcGFuPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { Component, forwardRef } from '@angular/core';
2
+ import { gettext } from '../../i18n';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { DEFAULT_INTERVAL_VALUE, DEFAULT_INTERVAL_VALUES } from './widget-auto-refresh-context.model';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "ngx-bootstrap/tooltip";
8
+ import * as i3 from "@angular/forms";
9
+ import * as i4 from "@ngx-translate/core";
10
+ export class AutoRefreshSelectControlComponent {
11
+ constructor() {
12
+ this.DEFAULT_INTERVAL_VALUES = DEFAULT_INTERVAL_VALUES;
13
+ this.START_INTERVAL_VALUE = DEFAULT_INTERVAL_VALUE;
14
+ this.SECONDS_UNTIL_REFRESH = gettext('{{ seconds }} s`until refresh`');
15
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
16
+ this.onTouched = () => { };
17
+ }
18
+ registerOnChange(fn) {
19
+ this.onChange = fn;
20
+ }
21
+ registerOnTouched(fn) {
22
+ this.onTouched = fn;
23
+ }
24
+ writeValue(autoRefreshSeconds) {
25
+ this.autoRefreshSeconds = autoRefreshSeconds;
26
+ }
27
+ onIntervalChange(autoRefreshSeconds) {
28
+ this.onChange(autoRefreshSeconds);
29
+ this.autoRefreshSeconds = autoRefreshSeconds;
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AutoRefreshSelectControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AutoRefreshSelectControlComponent, selector: "c8y-auto-refresh-select-control", providers: [
33
+ {
34
+ provide: NG_VALUE_ACCESSOR,
35
+ useExisting: forwardRef(() => AutoRefreshSelectControlComponent),
36
+ multi: true
37
+ }
38
+ ], ngImport: i0, template: "<div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control text-12\"\n [attr.aria-label]=\"'Refresh interval in seconds' | translate\"\n [tooltip]=\"'Refresh interval in seconds' | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [container]=\"'body'\"\n mode\n [(ngModel)]=\"autoRefreshSeconds\"\n (ngModelChange)=\"onIntervalChange($event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option\n *ngFor=\"let refreshInterval of DEFAULT_INTERVAL_VALUES\"\n [ngValue]=\"refreshInterval\"\n [attr.selected]=\"refreshInterval === START_INTERVAL_VALUE ? '' : null\"\n >\n {{ SECONDS_UNTIL_REFRESH | translate: { seconds: refreshInterval / 1000 } }}\n </option>\n </select>\n <span></span>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AutoRefreshSelectControlComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'c8y-auto-refresh-select-control', providers: [
43
+ {
44
+ provide: NG_VALUE_ACCESSOR,
45
+ useExisting: forwardRef(() => AutoRefreshSelectControlComponent),
46
+ multi: true
47
+ }
48
+ ], template: "<div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control text-12\"\n [attr.aria-label]=\"'Refresh interval in seconds' | translate\"\n [tooltip]=\"'Refresh interval in seconds' | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [container]=\"'body'\"\n mode\n [(ngModel)]=\"autoRefreshSeconds\"\n (ngModelChange)=\"onIntervalChange($event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option\n *ngFor=\"let refreshInterval of DEFAULT_INTERVAL_VALUES\"\n [ngValue]=\"refreshInterval\"\n [attr.selected]=\"refreshInterval === START_INTERVAL_VALUE ? '' : null\"\n >\n {{ SECONDS_UNTIL_REFRESH | translate: { seconds: refreshInterval / 1000 } }}\n </option>\n </select>\n <span></span>\n</div>\n" }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZWZyZXNoLXNlbGVjdC1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC9hdXRvLXJlZnJlc2gtc2VsZWN0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L2F1dG8tcmVmcmVzaC1zZWxlY3QtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN4QixNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7QUFhN0MsTUFBTSxPQUFPLGlDQUFpQztJQVg5QztRQVlXLDRCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ2xELHlCQUFvQixHQUFHLHNCQUFzQixDQUFDO1FBRTlDLDBCQUFxQixHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBTTNFLGdFQUFnRTtRQUNoRSxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBa0J0QjtJQWhCQyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVLENBQUMsa0JBQTBCO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsa0JBQTBCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFDL0MsQ0FBQzs4R0E1QlUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsMERBVGpDO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztnQkFDaEUsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ2hCSCwreUJBd0JBOzsyRkRMYSxpQ0FBaUM7a0JBWDdDLFNBQVM7K0JBQ0UsaUNBQWlDLGFBQ2hDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtDQUFrQyxDQUFDOzRCQUNoRSxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9JTlRFUlZBTF9WQUxVRSxcbiAgREVGQVVMVF9JTlRFUlZBTF9WQUxVRVNcbn0gZnJvbSAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXV0by1yZWZyZXNoLXNlbGVjdC1jb250cm9sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvUmVmcmVzaFNlbGVjdENvbnRyb2xDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvLXJlZnJlc2gtc2VsZWN0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9SZWZyZXNoU2VsZWN0Q29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcmVhZG9ubHkgREVGQVVMVF9JTlRFUlZBTF9WQUxVRVMgPSBERUZBVUxUX0lOVEVSVkFMX1ZBTFVFUztcbiAgcmVhZG9ubHkgU1RBUlRfSU5URVJWQUxfVkFMVUUgPSBERUZBVUxUX0lOVEVSVkFMX1ZBTFVFO1xuXG4gIHJlYWRvbmx5IFNFQ09ORFNfVU5USUxfUkVGUkVTSCA9IGdldHRleHQoJ3t7IHNlY29uZHMgfX0gc2B1bnRpbCByZWZyZXNoYCcpO1xuXG4gIGF1dG9SZWZyZXNoU2Vjb25kczogbnVtYmVyO1xuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShhdXRvUmVmcmVzaFNlY29uZHM6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYXV0b1JlZnJlc2hTZWNvbmRzID0gYXV0b1JlZnJlc2hTZWNvbmRzO1xuICB9XG5cbiAgb25JbnRlcnZhbENoYW5nZShhdXRvUmVmcmVzaFNlY29uZHM6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UoYXV0b1JlZnJlc2hTZWNvbmRzKTtcbiAgICB0aGlzLmF1dG9SZWZyZXNoU2Vjb25kcyA9IGF1dG9SZWZyZXNoU2Vjb25kcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImM4eS1zZWxlY3Qtd3JhcHBlclwiPlxuICA8c2VsZWN0XG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdGV4dC0xMlwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVmcmVzaCBpbnRlcnZhbCBpbiBzZWNvbmRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3Rvb2x0aXBdPVwiJ1JlZnJlc2ggaW50ZXJ2YWwgaW4gc2Vjb25kcycgfCB0cmFuc2xhdGVcIlxuICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgIFtkZWxheV09XCI1MDBcIlxuICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICBtb2RlXG4gICAgWyhuZ01vZGVsKV09XCJhdXRvUmVmcmVzaFNlY29uZHNcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW50ZXJ2YWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgPlxuICAgIDxvcHRpb25cbiAgICAgICpuZ0Zvcj1cImxldCByZWZyZXNoSW50ZXJ2YWwgb2YgREVGQVVMVF9JTlRFUlZBTF9WQUxVRVNcIlxuICAgICAgW25nVmFsdWVdPVwicmVmcmVzaEludGVydmFsXCJcbiAgICAgIFthdHRyLnNlbGVjdGVkXT1cInJlZnJlc2hJbnRlcnZhbCA9PT0gU1RBUlRfSU5URVJWQUxfVkFMVUUgPyAnJyA6IG51bGxcIlxuICAgID5cbiAgICAgIHt7IFNFQ09ORFNfVU5USUxfUkVGUkVTSCB8IHRyYW5zbGF0ZTogeyBzZWNvbmRzOiByZWZyZXNoSW50ZXJ2YWwgLyAxMDAwIH0gfX1cbiAgICA8L29wdGlvbj5cbiAgPC9zZWxlY3Q+XG4gIDxzcGFuPjwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,7 @@
1
+ import { distinctUntilChanged, tap } from 'rxjs/operators';
2
+ export function globalAutoRefreshLoading(globalRefreshService) {
3
+ return (source) => source.pipe(distinctUntilChanged(), tap(isLoading => isLoading
4
+ ? globalRefreshService.incrementLoading()
5
+ : globalRefreshService.decrementLoading()));
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXJlZnJlc2gtbG9hZGluZy5vcGVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC9nbG9iYWwtcmVmcmVzaC1sb2FkaW5nLm9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLG9CQUFvRDtJQUVwRCxPQUFPLENBQUMsTUFBMkIsRUFBRSxFQUFFLENBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQ2QsU0FBUztRQUNQLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBRTtRQUN6QyxDQUFDLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLEVBQUUsQ0FDNUMsQ0FDRixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0LWdsb2JhbC1hdXRvLXJlZnJlc2guc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnbG9iYWxBdXRvUmVmcmVzaExvYWRpbmcoXG4gIGdsb2JhbFJlZnJlc2hTZXJ2aWNlOiBXaWRnZXRHbG9iYWxBdXRvUmVmcmVzaFNlcnZpY2Vcbik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxib29sZWFuPiB7XG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPGJvb2xlYW4+KSA9PlxuICAgIHNvdXJjZS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRhcChpc0xvYWRpbmcgPT5cbiAgICAgICAgaXNMb2FkaW5nXG4gICAgICAgICAgPyBnbG9iYWxSZWZyZXNoU2VydmljZS5pbmNyZW1lbnRMb2FkaW5nKClcbiAgICAgICAgICA6IGdsb2JhbFJlZnJlc2hTZXJ2aWNlLmRlY3JlbWVudExvYWRpbmcoKVxuICAgICAgKVxuICAgICk7XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export * from './widget-auto-refresh-context.component';
2
+ export * from './auto-refresh-control.component';
3
+ export * from './auto-refresh-select-control.component';
4
+ export * from './widget-auto-refresh-context.model';
5
+ export * from './widget-global-auto-refresh.service';
6
+ export * from './widget-auto-refresh-context-icon-bar.component';
7
+ export * from './global-refresh-loading.operator';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG8tcmVmcmVzaC1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG8tcmVmcmVzaC1zZWxlY3QtY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtZ2xvYmFsLWF1dG8tcmVmcmVzaC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LWljb24tYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dsb2JhbC1yZWZyZXNoLWxvYWRpbmcub3BlcmF0b3InO1xuIl19
@@ -0,0 +1,18 @@
1
+ import { Component } from '@angular/core';
2
+ import { gettext } from '../../i18n';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../common/icon.directive";
5
+ import * as i2 from "ngx-bootstrap/tooltip";
6
+ import * as i3 from "@ngx-translate/core";
7
+ export class WidgetAutoRefreshContextIconBarComponent {
8
+ constructor() {
9
+ this.globalAutoRefreshTooltip = gettext('This widget is in sync with the dashboard auto refresh context.');
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WidgetAutoRefreshContextIconBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: WidgetAutoRefreshContextIconBarComponent, selector: "c8y-widget-auto-refresh-context-icon-bar", ngImport: i0, template: "<span class=\"m-l-auto d-flex\">\n <button\n class=\"btn btn-clean btn-no-focus p-l-4 p-r-0\"\n [attr.aria-label]=\"globalAutoRefreshTooltip | translate\"\n [tooltip]=\"globalAutoRefreshTooltip | translate\"\n placement=\"top\"\n container=\"body\"\n data-cy=\"c8y-widget-auto-refresh-context-icon-bar--global-refresh-context-indicator\"\n >\n <span class=\"tag tag--info chip\">\n <i c8yIcon=\"refresh\"></i>\n {{ 'Auto refresh' | translate }}\n </span>\n </button>\n</span>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.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: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WidgetAutoRefreshContextIconBarComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'c8y-widget-auto-refresh-context-icon-bar', template: "<span class=\"m-l-auto d-flex\">\n <button\n class=\"btn btn-clean btn-no-focus p-l-4 p-r-0\"\n [attr.aria-label]=\"globalAutoRefreshTooltip | translate\"\n [tooltip]=\"globalAutoRefreshTooltip | translate\"\n placement=\"top\"\n container=\"body\"\n data-cy=\"c8y-widget-auto-refresh-context-icon-bar--global-refresh-context-indicator\"\n >\n <span class=\"tag tag--info chip\">\n <i c8yIcon=\"refresh\"></i>\n {{ 'Auto refresh' | translate }}\n </span>\n </button>\n</span>\n" }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LWljb24tYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQtaWNvbi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC1pY29uLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7O0FBTXJDLE1BQU0sT0FBTyx3Q0FBd0M7SUFKckQ7UUFLRSw2QkFBd0IsR0FBRyxPQUFPLENBQ2hDLGlFQUFpRSxDQUNsRSxDQUFDO0tBQ0g7OEdBSlksd0NBQXdDO2tHQUF4Qyx3Q0FBd0MsZ0ZDUHJELG9nQkFlQTs7MkZEUmEsd0NBQXdDO2tCQUpwRCxTQUFTOytCQUNFLDBDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LWljb24tYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC1pY29uLWJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0QXV0b1JlZnJlc2hDb250ZXh0SWNvbkJhckNvbXBvbmVudCB7XG4gIGdsb2JhbEF1dG9SZWZyZXNoVG9vbHRpcCA9IGdldHRleHQoXG4gICAgJ1RoaXMgd2lkZ2V0IGlzIGluIHN5bmMgd2l0aCB0aGUgZGFzaGJvYXJkIGF1dG8gcmVmcmVzaCBjb250ZXh0LidcbiAgKTtcbn1cbiIsIjxzcGFuIGNsYXNzPVwibS1sLWF1dG8gZC1mbGV4XCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tY2xlYW4gYnRuLW5vLWZvY3VzIHAtbC00IHAtci0wXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdsb2JhbEF1dG9SZWZyZXNoVG9vbHRpcCB8IHRyYW5zbGF0ZVwiXG4gICAgW3Rvb2x0aXBdPVwiZ2xvYmFsQXV0b1JlZnJlc2hUb29sdGlwIHwgdHJhbnNsYXRlXCJcbiAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgIGRhdGEtY3k9XCJjOHktd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LWljb24tYmFyLS1nbG9iYWwtcmVmcmVzaC1jb250ZXh0LWluZGljYXRvclwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cInRhZyB0YWctLWluZm8gY2hpcFwiPlxuICAgICAgPGkgYzh5SWNvbj1cInJlZnJlc2hcIj48L2k+XG4gICAgICB7eyAnQXV0byByZWZyZXNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L3NwYW4+XG4iXX0=