@igo2/common 1.15.4 → 1.15.5

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 (354) hide show
  1. package/esm2020/igo2-common.mjs +4 -4
  2. package/esm2020/lib/action/action.module.mjs +27 -27
  3. package/esm2020/lib/action/actionbar/actionbar-item.component.mjs +252 -252
  4. package/esm2020/lib/action/actionbar/actionbar.component.mjs +370 -370
  5. package/esm2020/lib/action/actionbar/actionbar.module.mjs +57 -57
  6. package/esm2020/lib/action/index.mjs +3 -3
  7. package/esm2020/lib/action/shared/action.enums.mjs +7 -7
  8. package/esm2020/lib/action/shared/action.interfaces.mjs +2 -2
  9. package/esm2020/lib/action/shared/index.mjs +4 -4
  10. package/esm2020/lib/action/shared/store.mjs +8 -8
  11. package/esm2020/lib/backdrop/backdrop.component.mjs +26 -26
  12. package/esm2020/lib/backdrop/backdrop.module.mjs +25 -25
  13. package/esm2020/lib/backdrop/index.mjs +2 -2
  14. package/esm2020/lib/badge-icon/badge-icon.directive.mjs +141 -141
  15. package/esm2020/lib/badge-icon/badge-icon.module.mjs +26 -26
  16. package/esm2020/lib/badge-icon/index.mjs +2 -2
  17. package/esm2020/lib/clickout/clickout.directive.mjs +32 -32
  18. package/esm2020/lib/clickout/clickout.module.mjs +24 -24
  19. package/esm2020/lib/clickout/index.mjs +2 -2
  20. package/esm2020/lib/clone/clone.module.mjs +24 -24
  21. package/esm2020/lib/clone/clone.pipe.mjs +24 -24
  22. package/esm2020/lib/clone/index.mjs +2 -2
  23. package/esm2020/lib/collapsible/collapse.directive.mjs +55 -55
  24. package/esm2020/lib/collapsible/collapsible.component.mjs +57 -57
  25. package/esm2020/lib/collapsible/collapsible.module.mjs +27 -27
  26. package/esm2020/lib/collapsible/index.mjs +3 -3
  27. package/esm2020/lib/confirm-dialog/confirm-dialog.component.mjs +44 -44
  28. package/esm2020/lib/confirm-dialog/confirm-dialog.module.mjs +29 -29
  29. package/esm2020/lib/confirm-dialog/confirm-dialog.service.mjs +24 -24
  30. package/esm2020/lib/confirm-dialog/index.mjs +3 -3
  31. package/esm2020/lib/context-menu/context-menu.directive.mjs +103 -103
  32. package/esm2020/lib/context-menu/context-menu.module.mjs +25 -25
  33. package/esm2020/lib/context-menu/index.mjs +3 -3
  34. package/esm2020/lib/context-menu/long-press.directive.mjs +67 -67
  35. package/esm2020/lib/custom-html/custom-html.component.mjs +28 -28
  36. package/esm2020/lib/custom-html/custom-html.module.mjs +47 -47
  37. package/esm2020/lib/custom-html/custom-html.pipe.mjs +18 -18
  38. package/esm2020/lib/custom-html/index.mjs +3 -3
  39. package/esm2020/lib/dom/dom.interfaces.mjs +2 -2
  40. package/esm2020/lib/dom/dom.module.mjs +23 -23
  41. package/esm2020/lib/dom/dom.service.mjs +30 -30
  42. package/esm2020/lib/dom/index.mjs +3 -3
  43. package/esm2020/lib/drag-drop/drag-drop.directive.mjs +87 -87
  44. package/esm2020/lib/drag-drop/drag-drop.module.mjs +24 -24
  45. package/esm2020/lib/drag-drop/index.mjs +2 -2
  46. package/esm2020/lib/dynamic-component/dynamic-component.module.mjs +31 -31
  47. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +122 -122
  48. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +28 -28
  49. package/esm2020/lib/dynamic-component/index.mjs +3 -3
  50. package/esm2020/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -2
  51. package/esm2020/lib/dynamic-component/shared/dynamic-component.mjs +174 -174
  52. package/esm2020/lib/dynamic-component/shared/dynamic-component.service.mjs +29 -29
  53. package/esm2020/lib/dynamic-component/shared/index.mjs +4 -4
  54. package/esm2020/lib/entity/entity-selector/entity-selector.component.mjs +194 -194
  55. package/esm2020/lib/entity/entity-selector/entity-selector.module.mjs +32 -32
  56. package/esm2020/lib/entity/entity-table/entity-table-row.directive.mjs +137 -137
  57. package/esm2020/lib/entity/entity-table/entity-table.component.mjs +1376 -1376
  58. package/esm2020/lib/entity/entity-table/entity-table.module.mjs +102 -102
  59. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +132 -132
  60. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -2
  61. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +28 -28
  62. package/esm2020/lib/entity/entity.module.mjs +31 -31
  63. package/esm2020/lib/entity/index.mjs +6 -6
  64. package/esm2020/lib/entity/shared/entity.enums.mjs +28 -28
  65. package/esm2020/lib/entity/shared/entity.interfaces.mjs +2 -2
  66. package/esm2020/lib/entity/shared/entity.utils.mjs +67 -67
  67. package/esm2020/lib/entity/shared/index.mjs +10 -10
  68. package/esm2020/lib/entity/shared/state.mjs +191 -191
  69. package/esm2020/lib/entity/shared/store.mjs +288 -288
  70. package/esm2020/lib/entity/shared/strategies/filter-custom-function.mjs +79 -79
  71. package/esm2020/lib/entity/shared/strategies/filter-selection.mjs +84 -84
  72. package/esm2020/lib/entity/shared/strategies/index.mjs +4 -4
  73. package/esm2020/lib/entity/shared/strategies/strategy.mjs +75 -75
  74. package/esm2020/lib/entity/shared/transaction.mjs +316 -316
  75. package/esm2020/lib/entity/shared/view.mjs +315 -315
  76. package/esm2020/lib/entity/shared/watcher.mjs +120 -120
  77. package/esm2020/lib/flexible/flexible.component.mjs +148 -148
  78. package/esm2020/lib/flexible/flexible.module.mjs +24 -24
  79. package/esm2020/lib/flexible/flexible.type.mjs +2 -2
  80. package/esm2020/lib/flexible/index.mjs +3 -3
  81. package/esm2020/lib/form/form/form.component.mjs +117 -117
  82. package/esm2020/lib/form/form/form.module.mjs +40 -40
  83. package/esm2020/lib/form/form-field/form-field-select.component.mjs +127 -127
  84. package/esm2020/lib/form/form-field/form-field-text.component.mjs +104 -104
  85. package/esm2020/lib/form/form-field/form-field-textarea.component.mjs +105 -105
  86. package/esm2020/lib/form/form-field/form-field.component.mjs +72 -72
  87. package/esm2020/lib/form/form-field/form-field.module.mjs +74 -74
  88. package/esm2020/lib/form/form-field/index.mjs +5 -5
  89. package/esm2020/lib/form/form-group/form-group.component.mjs +105 -105
  90. package/esm2020/lib/form/form-group/form-group.module.mjs +40 -40
  91. package/esm2020/lib/form/form.module.mjs +49 -49
  92. package/esm2020/lib/form/index.mjs +5 -5
  93. package/esm2020/lib/form/shared/form-field-component.mjs +7 -7
  94. package/esm2020/lib/form/shared/form-field.service.mjs +29 -29
  95. package/esm2020/lib/form/shared/form.interfaces.mjs +2 -2
  96. package/esm2020/lib/form/shared/form.service.mjs +81 -81
  97. package/esm2020/lib/form/shared/form.utils.mjs +40 -40
  98. package/esm2020/lib/form/shared/index.mjs +6 -6
  99. package/esm2020/lib/home-button/home-button.component.mjs +31 -31
  100. package/esm2020/lib/home-button/home-button.module.mjs +41 -41
  101. package/esm2020/lib/home-button/index.mjs +2 -2
  102. package/esm2020/lib/image/image-error.directive.mjs +35 -35
  103. package/esm2020/lib/image/image.module.mjs +25 -25
  104. package/esm2020/lib/image/index.mjs +3 -3
  105. package/esm2020/lib/image/secure-image.pipe.mjs +59 -59
  106. package/esm2020/lib/interactive-tour/index.mjs +5 -5
  107. package/esm2020/lib/interactive-tour/interactive-tour.component.mjs +135 -135
  108. package/esm2020/lib/interactive-tour/interactive-tour.interface.mjs +2 -2
  109. package/esm2020/lib/interactive-tour/interactive-tour.loader.mjs +44 -44
  110. package/esm2020/lib/interactive-tour/interactive-tour.module.mjs +40 -40
  111. package/esm2020/lib/interactive-tour/interactive-tour.service.mjs +285 -285
  112. package/esm2020/lib/json-dialog/index.mjs +3 -3
  113. package/esm2020/lib/json-dialog/json-dialog.component.mjs +109 -109
  114. package/esm2020/lib/json-dialog/json-dialog.module.mjs +29 -29
  115. package/esm2020/lib/json-dialog/json-dialog.service.mjs +24 -24
  116. package/esm2020/lib/keyvalue/index.mjs +2 -2
  117. package/esm2020/lib/keyvalue/keyvalue.module.mjs +24 -24
  118. package/esm2020/lib/keyvalue/keyvalue.pipe.mjs +18 -18
  119. package/esm2020/lib/list/index.mjs +3 -3
  120. package/esm2020/lib/list/list-item.directive.mjs +165 -165
  121. package/esm2020/lib/list/list.component.mjs +262 -262
  122. package/esm2020/lib/list/list.module.mjs +29 -29
  123. package/esm2020/lib/panel/index.mjs +2 -2
  124. package/esm2020/lib/panel/panel.component.mjs +59 -59
  125. package/esm2020/lib/panel/panel.module.mjs +19 -19
  126. package/esm2020/lib/sidenav/index.mjs +2 -2
  127. package/esm2020/lib/sidenav/sidenav-shim.directive.mjs +55 -55
  128. package/esm2020/lib/sidenav/sidenav.module.mjs +24 -24
  129. package/esm2020/lib/spinner/index.mjs +3 -3
  130. package/esm2020/lib/spinner/spinner-activity.directive.mjs +47 -47
  131. package/esm2020/lib/spinner/spinner.component.mjs +35 -35
  132. package/esm2020/lib/spinner/spinner.module.mjs +21 -21
  133. package/esm2020/lib/stop-propagation/index.mjs +3 -3
  134. package/esm2020/lib/stop-propagation/stop-drop-propagation.directive.mjs +22 -22
  135. package/esm2020/lib/stop-propagation/stop-propagation.directive.mjs +21 -21
  136. package/esm2020/lib/stop-propagation/stop-propagation.module.mjs +25 -25
  137. package/esm2020/lib/table/index.mjs +6 -6
  138. package/esm2020/lib/table/table-action-color.enum.mjs +7 -7
  139. package/esm2020/lib/table/table-database.mjs +28 -28
  140. package/esm2020/lib/table/table-datasource.mjs +61 -61
  141. package/esm2020/lib/table/table-model.interface.mjs +2 -2
  142. package/esm2020/lib/table/table.component.mjs +297 -297
  143. package/esm2020/lib/table/table.module.mjs +67 -67
  144. package/esm2020/lib/tool/index.mjs +3 -3
  145. package/esm2020/lib/tool/shared/index.mjs +6 -6
  146. package/esm2020/lib/tool/shared/tool-component.mjs +9 -9
  147. package/esm2020/lib/tool/shared/tool.interface.mjs +2 -2
  148. package/esm2020/lib/tool/shared/tool.service.mjs +43 -43
  149. package/esm2020/lib/tool/shared/toolbox.enums.mjs +7 -7
  150. package/esm2020/lib/tool/shared/toolbox.mjs +179 -179
  151. package/esm2020/lib/tool/tool.module.mjs +32 -32
  152. package/esm2020/lib/tool/toolbox/toolbox.animation.mjs +10 -10
  153. package/esm2020/lib/tool/toolbox/toolbox.component.mjs +255 -255
  154. package/esm2020/lib/tool/toolbox/toolbox.module.mjs +36 -36
  155. package/esm2020/lib/widget/index.mjs +3 -3
  156. package/esm2020/lib/widget/shared/index.mjs +4 -4
  157. package/esm2020/lib/widget/shared/widget.interfaces.mjs +2 -2
  158. package/esm2020/lib/widget/shared/widget.mjs +4 -4
  159. package/esm2020/lib/widget/shared/widget.service.mjs +20 -20
  160. package/esm2020/lib/widget/widget-outlet/widget-outlet.component.mjs +116 -116
  161. package/esm2020/lib/widget/widget-outlet/widget-outlet.module.mjs +32 -32
  162. package/esm2020/lib/widget/widget.module.mjs +32 -32
  163. package/esm2020/lib/workspace/index.mjs +4 -4
  164. package/esm2020/lib/workspace/shared/index.mjs +4 -4
  165. package/esm2020/lib/workspace/shared/store.mjs +40 -40
  166. package/esm2020/lib/workspace/shared/workspace.interfaces.mjs +2 -2
  167. package/esm2020/lib/workspace/shared/workspace.mjs +117 -117
  168. package/esm2020/lib/workspace/workspace-selector/workspace-selector.component.mjs +51 -51
  169. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +32 -32
  170. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +88 -88
  171. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +32 -32
  172. package/esm2020/lib/workspace/workspace.module.mjs +27 -27
  173. package/esm2020/public_api.mjs +74 -74
  174. package/fesm2015/igo2-common.mjs +10016 -10016
  175. package/fesm2015/igo2-common.mjs.map +1 -1
  176. package/fesm2020/igo2-common.mjs +9319 -9319
  177. package/fesm2020/igo2-common.mjs.map +1 -1
  178. package/index.d.ts +5 -5
  179. package/lib/action/action.module.d.ts +8 -8
  180. package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
  181. package/lib/action/actionbar/actionbar.component.d.ts +146 -146
  182. package/lib/action/actionbar/actionbar.module.d.ts +20 -20
  183. package/lib/action/index.d.ts +2 -2
  184. package/lib/action/shared/action.enums.d.ts +5 -5
  185. package/lib/action/shared/action.interfaces.d.ts +17 -17
  186. package/lib/action/shared/index.d.ts +3 -3
  187. package/lib/action/shared/store.d.ts +8 -8
  188. package/lib/backdrop/backdrop.component.d.ts +9 -9
  189. package/lib/backdrop/backdrop.module.d.ts +10 -10
  190. package/lib/backdrop/index.d.ts +1 -1
  191. package/lib/badge-icon/badge-icon.directive.d.ts +36 -36
  192. package/lib/badge-icon/badge-icon.module.d.ts +11 -11
  193. package/lib/badge-icon/index.d.ts +1 -1
  194. package/lib/clickout/clickout.directive.d.ts +10 -10
  195. package/lib/clickout/clickout.module.d.ts +9 -9
  196. package/lib/clickout/index.d.ts +1 -1
  197. package/lib/clone/clone.module.d.ts +9 -9
  198. package/lib/clone/clone.pipe.d.ts +7 -7
  199. package/lib/clone/index.d.ts +1 -1
  200. package/lib/collapsible/collapse.directive.d.ts +19 -19
  201. package/lib/collapsible/collapsible.component.d.ts +13 -13
  202. package/lib/collapsible/collapsible.module.d.ts +12 -12
  203. package/lib/collapsible/index.d.ts +2 -2
  204. package/lib/confirm-dialog/confirm-dialog.component.d.ts +9 -9
  205. package/lib/confirm-dialog/confirm-dialog.module.d.ts +12 -12
  206. package/lib/confirm-dialog/confirm-dialog.service.d.ts +12 -12
  207. package/lib/confirm-dialog/index.d.ts +2 -2
  208. package/lib/context-menu/context-menu.directive.d.ts +21 -21
  209. package/lib/context-menu/context-menu.module.d.ts +10 -10
  210. package/lib/context-menu/index.d.ts +2 -2
  211. package/lib/context-menu/long-press.directive.d.ts +20 -20
  212. package/lib/custom-html/custom-html.component.d.ts +9 -9
  213. package/lib/custom-html/custom-html.module.d.ts +16 -16
  214. package/lib/custom-html/custom-html.pipe.d.ts +10 -10
  215. package/lib/custom-html/index.d.ts +2 -2
  216. package/lib/dom/dom.interfaces.d.ts +10 -10
  217. package/lib/dom/dom.module.d.ts +8 -8
  218. package/lib/dom/dom.service.d.ts +10 -10
  219. package/lib/dom/index.d.ts +2 -2
  220. package/lib/drag-drop/drag-drop.directive.d.ts +14 -14
  221. package/lib/drag-drop/drag-drop.module.d.ts +9 -9
  222. package/lib/drag-drop/index.d.ts +1 -1
  223. package/lib/dynamic-component/dynamic-component.module.d.ts +8 -8
  224. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -70
  225. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +11 -11
  226. package/lib/dynamic-component/index.d.ts +2 -2
  227. package/lib/dynamic-component/shared/dynamic-component.d.ts +88 -88
  228. package/lib/dynamic-component/shared/dynamic-component.interfaces.d.ts +3 -3
  229. package/lib/dynamic-component/shared/dynamic-component.service.d.ts +18 -18
  230. package/lib/dynamic-component/shared/index.d.ts +3 -3
  231. package/lib/entity/entity-selector/entity-selector.component.d.ts +92 -92
  232. package/lib/entity/entity-selector/entity-selector.module.d.ts +13 -13
  233. package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
  234. package/lib/entity/entity-table/entity-table.component.d.ts +333 -333
  235. package/lib/entity/entity-table/entity-table.module.d.ts +29 -29
  236. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +49 -49
  237. package/lib/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +8 -8
  238. package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +11 -11
  239. package/lib/entity/entity.module.d.ts +10 -10
  240. package/lib/entity/index.d.ts +5 -5
  241. package/lib/entity/shared/entity.enums.d.ts +23 -23
  242. package/lib/entity/shared/entity.interfaces.d.ts +114 -114
  243. package/lib/entity/shared/entity.utils.d.ts +49 -49
  244. package/lib/entity/shared/index.d.ts +9 -9
  245. package/lib/entity/shared/state.d.ts +103 -103
  246. package/lib/entity/shared/store.d.ts +176 -176
  247. package/lib/entity/shared/strategies/filter-custom-function.d.ts +51 -51
  248. package/lib/entity/shared/strategies/filter-selection.d.ts +48 -48
  249. package/lib/entity/shared/strategies/index.d.ts +3 -3
  250. package/lib/entity/shared/strategies/strategy.d.ts +56 -56
  251. package/lib/entity/shared/transaction.d.ts +168 -168
  252. package/lib/entity/shared/view.d.ts +193 -193
  253. package/lib/entity/shared/watcher.d.ts +72 -72
  254. package/lib/flexible/flexible.component.d.ts +41 -41
  255. package/lib/flexible/flexible.module.d.ts +9 -9
  256. package/lib/flexible/flexible.type.d.ts +2 -2
  257. package/lib/flexible/index.d.ts +2 -2
  258. package/lib/form/form/form.component.d.ts +53 -53
  259. package/lib/form/form/form.module.d.ts +12 -12
  260. package/lib/form/form-field/form-field-select.component.d.ts +48 -48
  261. package/lib/form/form-field/form-field-text.component.d.ts +41 -41
  262. package/lib/form/form-field/form-field-textarea.component.d.ts +41 -41
  263. package/lib/form/form-field/form-field.component.d.ts +34 -34
  264. package/lib/form/form-field/form-field.module.d.ts +21 -21
  265. package/lib/form/form-field/index.d.ts +4 -4
  266. package/lib/form/form-group/form-group.component.d.ts +49 -49
  267. package/lib/form/form-group/form-group.module.d.ts +14 -14
  268. package/lib/form/form.module.d.ts +13 -13
  269. package/lib/form/index.d.ts +4 -4
  270. package/lib/form/shared/form-field-component.d.ts +1 -1
  271. package/lib/form/shared/form-field.service.d.ts +19 -19
  272. package/lib/form/shared/form.interfaces.d.ts +57 -57
  273. package/lib/form/shared/form.service.d.ts +15 -15
  274. package/lib/form/shared/form.utils.d.ts +11 -11
  275. package/lib/form/shared/index.d.ts +5 -5
  276. package/lib/home-button/home-button.component.d.ts +9 -9
  277. package/lib/home-button/home-button.module.d.ts +15 -15
  278. package/lib/home-button/index.d.ts +1 -1
  279. package/lib/image/image-error.directive.d.ts +11 -11
  280. package/lib/image/image.module.d.ts +10 -10
  281. package/lib/image/index.d.ts +2 -2
  282. package/lib/image/secure-image.pipe.d.ts +13 -13
  283. package/lib/interactive-tour/index.d.ts +4 -4
  284. package/lib/interactive-tour/interactive-tour.component.d.ts +30 -30
  285. package/lib/interactive-tour/interactive-tour.interface.d.ts +32 -32
  286. package/lib/interactive-tour/interactive-tour.loader.d.ts +18 -18
  287. package/lib/interactive-tour/interactive-tour.module.d.ts +12 -12
  288. package/lib/interactive-tour/interactive-tour.service.d.ts +29 -29
  289. package/lib/json-dialog/index.d.ts +2 -2
  290. package/lib/json-dialog/json-dialog.component.d.ts +13 -13
  291. package/lib/json-dialog/json-dialog.module.d.ts +13 -13
  292. package/lib/json-dialog/json-dialog.service.d.ts +10 -10
  293. package/lib/keyvalue/index.d.ts +1 -1
  294. package/lib/keyvalue/keyvalue.module.d.ts +9 -9
  295. package/lib/keyvalue/keyvalue.pipe.d.ts +7 -7
  296. package/lib/list/index.d.ts +2 -2
  297. package/lib/list/list-item.directive.d.ts +43 -43
  298. package/lib/list/list.component.d.ts +51 -51
  299. package/lib/list/list.module.d.ts +14 -14
  300. package/lib/panel/index.d.ts +1 -1
  301. package/lib/panel/panel.component.d.ts +10 -10
  302. package/lib/panel/panel.module.d.ts +8 -8
  303. package/lib/sidenav/index.d.ts +1 -1
  304. package/lib/sidenav/sidenav-shim.directive.d.ts +20 -20
  305. package/lib/sidenav/sidenav.module.d.ts +9 -9
  306. package/lib/spinner/index.d.ts +2 -2
  307. package/lib/spinner/spinner-activity.directive.d.ts +32 -32
  308. package/lib/spinner/spinner.component.d.ts +12 -12
  309. package/lib/spinner/spinner.module.d.ts +10 -10
  310. package/lib/stop-propagation/index.d.ts +2 -2
  311. package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +6 -6
  312. package/lib/stop-propagation/stop-propagation.directive.d.ts +6 -6
  313. package/lib/stop-propagation/stop-propagation.module.d.ts +10 -10
  314. package/lib/table/index.d.ts +5 -5
  315. package/lib/table/table-action-color.enum.d.ts +5 -5
  316. package/lib/table/table-database.d.ts +10 -10
  317. package/lib/table/table-datasource.d.ts +17 -17
  318. package/lib/table/table-model.interface.d.ts +28 -28
  319. package/lib/table/table.component.d.ts +40 -40
  320. package/lib/table/table.module.d.ts +20 -20
  321. package/lib/tool/index.d.ts +2 -2
  322. package/lib/tool/shared/index.d.ts +5 -5
  323. package/lib/tool/shared/tool-component.d.ts +2 -2
  324. package/lib/tool/shared/tool.interface.d.ts +18 -18
  325. package/lib/tool/shared/tool.service.d.ts +30 -30
  326. package/lib/tool/shared/toolbox.d.ts +95 -95
  327. package/lib/tool/shared/toolbox.enums.d.ts +5 -5
  328. package/lib/tool/tool.module.d.ts +10 -10
  329. package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
  330. package/lib/tool/toolbox/toolbox.component.d.ts +127 -127
  331. package/lib/tool/toolbox/toolbox.module.d.ts +13 -13
  332. package/lib/widget/index.d.ts +2 -2
  333. package/lib/widget/shared/index.d.ts +3 -3
  334. package/lib/widget/shared/widget.d.ts +4 -4
  335. package/lib/widget/shared/widget.interfaces.d.ts +12 -12
  336. package/lib/widget/shared/widget.service.d.ts +10 -10
  337. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +71 -71
  338. package/lib/widget/widget-outlet/widget-outlet.module.d.ts +12 -12
  339. package/lib/widget/widget.module.d.ts +8 -8
  340. package/lib/workspace/index.d.ts +3 -3
  341. package/lib/workspace/shared/index.d.ts +3 -3
  342. package/lib/workspace/shared/store.d.ts +20 -20
  343. package/lib/workspace/shared/workspace.d.ts +108 -108
  344. package/lib/workspace/shared/workspace.interfaces.d.ts +11 -11
  345. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +39 -39
  346. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +12 -12
  347. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -57
  348. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +12 -12
  349. package/lib/workspace/workspace.module.d.ts +9 -9
  350. package/package.json +3 -3
  351. package/public_api.d.ts +70 -70
  352. package/style/common.theming.scss +12 -12
  353. package/style/partial/action.scss +18 -18
  354. package/style/partial/common.variables.scss +8 -8
@@ -1,370 +1,370 @@
1
- import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';
2
- import { Media } from '@igo2/core';
3
- import { EntityStoreWatcher } from '../../entity';
4
- import { ActionbarMode } from '../shared/action.enums';
5
- import { BehaviorSubject } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/overlay";
8
- import * as i2 from "@igo2/core";
9
- import * as i3 from "@angular/common";
10
- import * as i4 from "@angular/material/button";
11
- import * as i5 from "@angular/material/icon";
12
- import * as i6 from "@angular/material/tooltip";
13
- import * as i7 from "@angular/material/menu";
14
- import * as i8 from "@angular/material/list";
15
- import * as i9 from "@angular/material/card";
16
- import * as i10 from "./actionbar-item.component";
17
- import * as i11 from "@ngx-translate/core";
18
- function ActionbarComponent_mat_list_0_div_1_Template(rf, ctx) { if (rf & 1) {
19
- const _r8 = i0.ɵɵgetCurrentView();
20
- i0.ɵɵelementStart(0, "div", 5)(1, "button", 6);
21
- i0.ɵɵlistener("click", function ActionbarComponent_mat_list_0_div_1_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.scrollUp()); });
22
- i0.ɵɵpipe(2, "translate");
23
- i0.ɵɵelement(3, "mat-icon", 7);
24
- i0.ɵɵelementEnd()();
25
- } if (rf & 2) {
26
- i0.ɵɵadvance(1);
27
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 1, "igo.common.actionbar.scrollUp"));
28
- } }
29
- function ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template(rf, ctx) { if (rf & 1) {
30
- const _r10 = i0.ɵɵgetCurrentView();
31
- i0.ɵɵelementStart(0, "igo-actionbar-item", 8);
32
- i0.ɵɵlistener("trigger", function ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template_igo_actionbar_item_trigger_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.onTriggerAction(ctx_r9.toggleCollapseAction)); });
33
- i0.ɵɵelementEnd();
34
- } if (rf & 2) {
35
- const ctx_r4 = i0.ɵɵnextContext(2);
36
- i0.ɵɵproperty("withTitle", false)("withIcon", true)("color", ctx_r4.color)("disabled", ctx_r4.store.view.empty)("action", ctx_r4.toggleCollapseAction);
37
- } }
38
- function ActionbarComponent_mat_list_0_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
39
- const _r15 = i0.ɵɵgetCurrentView();
40
- i0.ɵɵelementStart(0, "igo-actionbar-item", 11);
41
- i0.ɵɵlistener("trigger", function ActionbarComponent_mat_list_0_3_ng_template_0_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r15); const action_r13 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r14.onTriggerAction(action_r13)); });
42
- i0.ɵɵelementEnd();
43
- } if (rf & 2) {
44
- const action_r13 = ctx.$implicit;
45
- const ctx_r12 = i0.ɵɵnextContext(3);
46
- i0.ɵɵproperty("withTitle", ctx_r12.withTitle)("withIcon", ctx_r12.withIcon)("withTooltip", ctx_r12.withTooltip)("color", ctx_r12.color)("disabled", ctx_r12.store.state.get(action_r13).disabled)("action", action_r13);
47
- } }
48
- function ActionbarComponent_mat_list_0_3_Template(rf, ctx) { if (rf & 1) {
49
- i0.ɵɵtemplate(0, ActionbarComponent_mat_list_0_3_ng_template_0_Template, 1, 6, "ng-template", 9, 10, i0.ɵɵtemplateRefExtractor);
50
- i0.ɵɵpipe(2, "async");
51
- } if (rf & 2) {
52
- const ctx_r5 = i0.ɵɵnextContext(2);
53
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx_r5.store.view.all$()));
54
- } }
55
- function ActionbarComponent_mat_list_0_div_4_Template(rf, ctx) { if (rf & 1) {
56
- const _r17 = i0.ɵɵgetCurrentView();
57
- i0.ɵɵelementStart(0, "div", 12)(1, "button", 6);
58
- i0.ɵɵlistener("click", function ActionbarComponent_mat_list_0_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.scrollDown()); });
59
- i0.ɵɵpipe(2, "translate");
60
- i0.ɵɵelement(3, "mat-icon", 13);
61
- i0.ɵɵelementEnd()();
62
- } if (rf & 2) {
63
- i0.ɵɵadvance(1);
64
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 1, "igo.common.actionbar.scrollDown"));
65
- } }
66
- function ActionbarComponent_mat_list_0_Template(rf, ctx) { if (rf & 1) {
67
- i0.ɵɵelementStart(0, "mat-list");
68
- i0.ɵɵtemplate(1, ActionbarComponent_mat_list_0_div_1_Template, 4, 3, "div", 2);
69
- i0.ɵɵtemplate(2, ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template, 1, 5, "igo-actionbar-item", 3);
70
- i0.ɵɵtemplate(3, ActionbarComponent_mat_list_0_3_Template, 3, 3, null, 0);
71
- i0.ɵɵtemplate(4, ActionbarComponent_mat_list_0_div_4_Template, 4, 3, "div", 4);
72
- i0.ɵɵelementEnd();
73
- } if (rf & 2) {
74
- const ctx_r0 = i0.ɵɵnextContext();
75
- i0.ɵɵadvance(1);
76
- i0.ɵɵproperty("ngIf", ctx_r0.heightCondition && ctx_r0.positionConditionTop && ctx_r0.isDesktop);
77
- i0.ɵɵadvance(1);
78
- i0.ɵɵproperty("ngIf", ctx_r0.withToggleButton);
79
- i0.ɵɵadvance(1);
80
- i0.ɵɵproperty("ngIf", !ctx_r0.collapsed);
81
- i0.ɵɵadvance(1);
82
- i0.ɵɵproperty("ngIf", ctx_r0.heightCondition && ctx_r0.positionConditionLow && ctx_r0.isDesktop);
83
- } }
84
- function ActionbarComponent_div_1_ng_template_7_Template(rf, ctx) { if (rf & 1) {
85
- const _r22 = i0.ɵɵgetCurrentView();
86
- i0.ɵɵelementStart(0, "igo-actionbar-item", 18);
87
- i0.ɵɵlistener("trigger", function ActionbarComponent_div_1_ng_template_7_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const action_r20 = restoredCtx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.onTriggerAction(action_r20)); });
88
- i0.ɵɵelementEnd();
89
- } if (rf & 2) {
90
- const action_r20 = ctx.$implicit;
91
- const ctx_r19 = i0.ɵɵnextContext(2);
92
- i0.ɵɵproperty("withTitle", ctx_r19.withTitle)("withIcon", ctx_r19.withIcon)("color", ctx_r19.color)("action", action_r20);
93
- } }
94
- function ActionbarComponent_div_1_Template(rf, ctx) { if (rf & 1) {
95
- i0.ɵɵelementStart(0, "div")(1, "button", 14);
96
- i0.ɵɵpipe(2, "translate");
97
- i0.ɵɵelement(3, "mat-icon", 15);
98
- i0.ɵɵelementEnd();
99
- i0.ɵɵelementStart(4, "mat-menu", 16, 17)(6, "mat-list");
100
- i0.ɵɵtemplate(7, ActionbarComponent_div_1_ng_template_7_Template, 1, 4, "ng-template", 9);
101
- i0.ɵɵpipe(8, "async");
102
- i0.ɵɵelementEnd()()();
103
- } if (rf & 2) {
104
- const _r18 = i0.ɵɵreference(5);
105
- const ctx_r1 = i0.ɵɵnextContext();
106
- i0.ɵɵadvance(1);
107
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 10, "igo.common.actionbar.icon"))("matMenuTriggerFor", _r18)("disabled", ctx_r1.store.view.empty)("color", ctx_r1.iconColor);
108
- i0.ɵɵadvance(2);
109
- i0.ɵɵproperty("svgIcon", ctx_r1.icon);
110
- i0.ɵɵadvance(1);
111
- i0.ɵɵclassMap(ctx_r1.overlayClass);
112
- i0.ɵɵproperty("xPosition", ctx_r1.xPosition)("yPosition", ctx_r1.yPosition);
113
- i0.ɵɵadvance(3);
114
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(8, 12, ctx_r1.store.view.all$()));
115
- } }
116
- function ActionbarComponent_mat_card_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
117
- const _r26 = i0.ɵɵgetCurrentView();
118
- i0.ɵɵelementStart(0, "igo-actionbar-item", 18);
119
- i0.ɵɵlistener("trigger", function ActionbarComponent_mat_card_2_ng_template_2_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r26); const action_r24 = restoredCtx.$implicit; const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.onTriggerAction(action_r24)); });
120
- i0.ɵɵelementEnd();
121
- i0.ɵɵelement(1, "br");
122
- } if (rf & 2) {
123
- const action_r24 = ctx.$implicit;
124
- const ctx_r23 = i0.ɵɵnextContext(2);
125
- i0.ɵɵproperty("withTitle", ctx_r23.withTitle)("withIcon", ctx_r23.withIcon)("color", ctx_r23.color)("action", action_r24);
126
- } }
127
- function ActionbarComponent_mat_card_2_Template(rf, ctx) { if (rf & 1) {
128
- i0.ɵɵelementStart(0, "mat-card", 19)(1, "mat-list");
129
- i0.ɵɵtemplate(2, ActionbarComponent_mat_card_2_ng_template_2_Template, 2, 4, "ng-template", 9);
130
- i0.ɵɵpipe(3, "async");
131
- i0.ɵɵelementEnd()();
132
- } if (rf & 2) {
133
- const ctx_r2 = i0.ɵɵnextContext();
134
- i0.ɵɵadvance(2);
135
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 1, ctx_r2.store.view.all$()));
136
- } }
137
- /**
138
- * A list of action buttons.
139
- * This component can be displayed in one of two way: 'dock' or 'overlay'
140
- */
141
- export class ActionbarComponent {
142
- constructor(overlay, elRef, cdRef, mediaService) {
143
- this.overlay = overlay;
144
- this.elRef = elRef;
145
- this.cdRef = cdRef;
146
- this.mediaService = mediaService;
147
- /**
148
- * Reference to the ActionbarMode enum for use in the template
149
- * @internal
150
- */
151
- this.actionbarMode = ActionbarMode;
152
- /**
153
- * Whether the actionbar is collapsed (Dock mode)
154
- * @internal
155
- */
156
- this.collapsed = false;
157
- /**
158
- * Toggle collapse action (Dock)
159
- * @internal
160
- */
161
- this.toggleCollapseAction = {
162
- id: 'actionbar_toggle',
163
- icon: 'dots-vertical',
164
- handler: () => {
165
- this.collapsed = !this.collapsed;
166
- }
167
- };
168
- /**
169
- * Height Condition for scroll button
170
- */
171
- this.heightCondition$ = new BehaviorSubject(false);
172
- /**
173
- * Position Condition for top scroll button
174
- */
175
- this.positionConditionTop$ = new BehaviorSubject(true);
176
- /**
177
- * Position Condition for low scroll button
178
- */
179
- this.positionConditionLow$ = new BehaviorSubject(true);
180
- /**
181
- * Actionbar mode
182
- */
183
- this.mode = ActionbarMode.Dock;
184
- /**
185
- * Whether a toggle button should be displayed (Dock mode)
186
- */
187
- this.withToggleButton = false;
188
- /**
189
- * Whether a the actionbar should display buttons horizontally
190
- */
191
- this.horizontal = false;
192
- /**
193
- * Color
194
- */
195
- this.color = 'default';
196
- /**
197
- * Color of the button if action mode === overlay
198
- */
199
- this.iconColor = 'default';
200
- /**
201
- * Whether action titles are displayed
202
- */
203
- this.withTitle = true;
204
- /**
205
- * Whether action tooltips are displayed
206
- */
207
- this.withTooltip = true;
208
- /**
209
- * Whether action titles are displayed (condition for scroll button)
210
- */
211
- this.scrollActive = true;
212
- /**
213
- * Whether action icons are displayed
214
- */
215
- this.withIcon = true;
216
- /**
217
- * Which icon want to be shown
218
- */
219
- this.icon = 'dots-horizontal';
220
- /**
221
- * Overlay X position
222
- */
223
- this.xPosition = 'before';
224
- /**
225
- * Overlay Y position
226
- */
227
- this.yPosition = 'above';
228
- this._overlayClass = '';
229
- }
230
- /**
231
- * Class to add to the actionbar overlay
232
- */
233
- set overlayClass(value) {
234
- this._overlayClass = value;
235
- }
236
- get overlayClass() {
237
- return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');
238
- }
239
- /**
240
- * @ignore
241
- */
242
- get withTitleClass() {
243
- return this.withTitle;
244
- }
245
- /**
246
- * @ignore
247
- */
248
- get withIconClass() {
249
- return this.withIcon;
250
- }
251
- /**
252
- * @ignore
253
- */
254
- get horizontalClass() {
255
- return this.horizontal;
256
- }
257
- get heightCondition() {
258
- const el = this.elRef.nativeElement;
259
- if (this.scrollActive === false) {
260
- if (el.clientHeight < el.scrollHeight) {
261
- return true;
262
- }
263
- }
264
- return false;
265
- }
266
- get positionConditionTop() {
267
- if (this.elRef.nativeElement.scrollTop === 0) {
268
- return false;
269
- }
270
- return true;
271
- }
272
- get positionConditionLow() {
273
- const el = this.elRef.nativeElement;
274
- if (el.scrollTop >= (el.scrollHeight - el.clientHeight)) {
275
- return false;
276
- }
277
- return true;
278
- }
279
- get isDesktop() {
280
- return this.mediaService.getMedia() === Media.Desktop;
281
- }
282
- /**
283
- * @internal
284
- */
285
- ngOnChanges(changes) {
286
- const store = changes.store;
287
- if (store && store.currentValue !== store.previousValue) {
288
- if (this.watcher !== undefined) {
289
- this.watcher.destroy();
290
- }
291
- this.watcher = new EntityStoreWatcher(this.store, this.cdRef);
292
- }
293
- }
294
- /**
295
- * @internal
296
- */
297
- ngOnDestroy() {
298
- this.watcher.destroy();
299
- }
300
- /**
301
- * Invoke the action handler
302
- * @internal
303
- */
304
- onTriggerAction(action) {
305
- const args = action.args || [];
306
- action.handler(...args);
307
- }
308
- scrollDown() {
309
- this.elRef.nativeElement.scrollBy(0, 52);
310
- }
311
- scrollUp() {
312
- this.elRef.nativeElement.scrollBy(0, -52);
313
- }
314
- }
315
- ActionbarComponent.ɵfac = function ActionbarComponent_Factory(t) { return new (t || ActionbarComponent)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.MediaService)); };
316
- ActionbarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionbarComponent, selectors: [["igo-actionbar"]], hostVars: 6, hostBindings: function ActionbarComponent_HostBindings(rf, ctx) { if (rf & 2) {
317
- i0.ɵɵclassProp("with-title", ctx.withTitleClass)("with-icon", ctx.withIconClass)("horizontal", ctx.horizontalClass);
318
- } }, inputs: { store: "store", mode: "mode", withToggleButton: "withToggleButton", horizontal: "horizontal", color: "color", iconColor: "iconColor", withTitle: "withTitle", withTooltip: "withTooltip", scrollActive: "scrollActive", withIcon: "withIcon", icon: "icon", xPosition: "xPosition", yPosition: "yPosition", overlayClass: "overlayClass" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[4, "ngIf"], ["class", "context-menu-card mat-elevation-z4", 4, "ngIf"], ["id", "topChevron", 4, "ngIf"], ["color", "accent", 3, "withTitle", "withIcon", "color", "disabled", "action", "trigger", 4, "ngIf"], ["id", "lowChevron", 4, "ngIf"], ["id", "topChevron"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "click"], ["svgIcon", "chevron-up"], ["color", "accent", 3, "withTitle", "withIcon", "color", "disabled", "action", "trigger"], ["ngFor", "", 3, "ngForOf"], ["buttonContent", ""], ["color", "accent", 3, "withTitle", "withIcon", "withTooltip", "color", "disabled", "action", "trigger"], ["id", "lowChevron"], ["svgIcon", "chevron-down"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "buttonOverlay", 3, "matTooltip", "matMenuTriggerFor", "disabled", "color"], [3, "svgIcon"], ["overlapTrigger", "true", 1, "igo-compact-menu", "igo-no-min-width-menu", 3, "xPosition", "yPosition"], ["actionbarMenu", "matMenu"], ["color", "accent", 3, "withTitle", "withIcon", "color", "action", "trigger"], [1, "context-menu-card", "mat-elevation-z4"]], template: function ActionbarComponent_Template(rf, ctx) { if (rf & 1) {
319
- i0.ɵɵtemplate(0, ActionbarComponent_mat_list_0_Template, 5, 4, "mat-list", 0);
320
- i0.ɵɵtemplate(1, ActionbarComponent_div_1_Template, 9, 14, "div", 0);
321
- i0.ɵɵtemplate(2, ActionbarComponent_mat_card_2_Template, 4, 3, "mat-card", 1);
322
- } if (rf & 2) {
323
- i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Dock);
324
- i0.ɵɵadvance(1);
325
- i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Overlay);
326
- i0.ɵɵadvance(1);
327
- i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Context);
328
- } }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatButton, i5.MatIcon, i6.MatTooltip, i7.MatMenu, i7.MatMenuTrigger, i8.MatList, i9.MatCard, i10.ActionbarItemComponent, i3.AsyncPipe, i11.TranslatePipe], styles: ["[_nghost-%COMP%]{display:block;height:100%;overflow:auto;position:relative}button[_ngcontent-%COMP%]{margin:4px}.buttonOverlay[_ngcontent-%COMP%]{margin:0}mat-list[_ngcontent-%COMP%]{padding-top:0}.horizontal[_nghost-%COMP%]{max-width:100%;overflow:visible;overflow:initial}.horizontal[_nghost-%COMP%] mat-list[_ngcontent-%COMP%]{width:auto;white-space:nowrap}.horizontal[_nghost-%COMP%] igo-actionbar-item[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .mat-list .mat-list-item .mat-list-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar{height:46px}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content{display:-webkit-flex;height:46px;padding:3px}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content>mat-icon{padding:8px}igo-actionbar-item[_ngcontent-%COMP%] mat-list-item [mat-list-avatar]{height:auto;width:40px}igo-actionbar-item[_ngcontent-%COMP%] mat-list-item:hover{cursor:pointer}.context-menu-card[_ngcontent-%COMP%]{padding:8px 3px;margin:10px}#topChevron[_ngcontent-%COMP%]{position:sticky;top:0;background-color:#fff;z-index:3}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#topChevron[_ngcontent-%COMP%]{position:fixed;top:auto;top:initial}}@supports (-ms-accelerator: true){#topChevron[_ngcontent-%COMP%]{position:fixed;top:auto;top:initial}}#lowChevron[_ngcontent-%COMP%]{position:fixed;position:sticky;bottom:0;background-color:#fff;z-index:3}"], changeDetection: 0 });
329
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionbarComponent, [{
330
- type: Component,
331
- args: [{ selector: 'igo-actionbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list *ngIf=\"mode === actionbarMode.Dock\">\r\n\r\n <div *ngIf=\"heightCondition && positionConditionTop && isDesktop\"\r\n id=\"topChevron\">\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\r\n (click)=\"scrollUp()\">\r\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <igo-actionbar-item\r\n *ngIf=\"withToggleButton\"\r\n color=\"accent\"\r\n [withTitle]=\"false\"\r\n [withIcon]=\"true\"\r\n [color]=\"color\"\r\n [disabled]=\"store.view.empty\"\r\n [action]=\"toggleCollapseAction\"\r\n (trigger)=\"onTriggerAction(toggleCollapseAction)\">\r\n </igo-actionbar-item>\r\n\r\n <ng-template #buttonContent *ngIf=\"!collapsed\" ngFor let-action [ngForOf]=\"store.view.all$() | async\">\r\n <igo-actionbar-item\r\n color=\"accent\"\r\n [withTitle]=\"withTitle\"\r\n [withIcon]=\"withIcon\"\r\n [withTooltip]=\"withTooltip\"\r\n [color]=\"color\"\r\n [disabled]=\"store.state.get(action).disabled\"\r\n [action]=\"action\"\r\n (trigger)=\"onTriggerAction(action)\">\r\n </igo-actionbar-item>\r\n </ng-template>\r\n\r\n <div *ngIf=\"heightCondition && positionConditionLow && isDesktop\"\r\n id=\"lowChevron\">\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\r\n (click)=\"scrollDown()\">\r\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n</mat-list>\r\n\r\n<div *ngIf=\"mode === actionbarMode.Overlay\">\r\n <button class=\"buttonOverlay\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\r\n [matMenuTriggerFor]=\"actionbarMenu\"\r\n [disabled]=\"store.view.empty\"\r\n [color]=\"iconColor\">\r\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu\r\n #actionbarMenu=\"matMenu\"\r\n class=\"igo-compact-menu igo-no-min-width-menu\"\r\n overlapTrigger=\"true\"\r\n [xPosition]=\"xPosition\"\r\n [yPosition]=\"yPosition\"\r\n [class]=\"overlayClass\">\r\n\r\n <mat-list>\r\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\r\n <igo-actionbar-item\r\n color=\"accent\"\r\n [withTitle]=\"withTitle\"\r\n [withIcon]=\"withIcon\"\r\n [color]=\"color\"\r\n [action]=\"action\"\r\n (trigger)=\"onTriggerAction(action)\">\r\n </igo-actionbar-item>\r\n </ng-template>\r\n </mat-list>\r\n </mat-menu>\r\n</div>\r\n<mat-card *ngIf=\"mode === actionbarMode.Context\" class=\"context-menu-card mat-elevation-z4\">\r\n <mat-list>\r\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\r\n <igo-actionbar-item\r\n color=\"accent\"\r\n [withTitle]=\"withTitle\"\r\n [withIcon]=\"withIcon\"\r\n [color]=\"color\"\r\n [action]=\"action\"\r\n (trigger)=\"onTriggerAction(action)\">\r\n </igo-actionbar-item>\r\n <br/>\r\n </ng-template>\r\n </mat-list>\r\n</mat-card>\r\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}button{margin:4px}.buttonOverlay{margin:0}mat-list{padding-top:0}:host.horizontal{max-width:100%;overflow:visible;overflow:initial}:host.horizontal mat-list{width:auto;white-space:nowrap}:host.horizontal igo-actionbar-item{display:inline-block}:host ::ng-deep .mat-list .mat-list-item .mat-list-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar{height:46px}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content{display:-webkit-flex;height:46px;padding:3px}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content>mat-icon{padding:8px}igo-actionbar-item ::ng-deep mat-list-item [mat-list-avatar]{height:auto;width:40px}igo-actionbar-item ::ng-deep mat-list-item:hover{cursor:pointer}.context-menu-card{padding:8px 3px;margin:10px}#topChevron{position:sticky;top:0;background-color:#fff;z-index:3}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#topChevron{position:fixed;top:auto;top:initial}}@supports (-ms-accelerator: true){#topChevron{position:fixed;top:auto;top:initial}}#lowChevron{position:fixed;position:sticky;bottom:0;background-color:#fff;z-index:3}\n"] }]
332
- }], function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.MediaService }]; }, { store: [{
333
- type: Input
334
- }], mode: [{
335
- type: Input
336
- }], withToggleButton: [{
337
- type: Input
338
- }], horizontal: [{
339
- type: Input
340
- }], color: [{
341
- type: Input
342
- }], iconColor: [{
343
- type: Input
344
- }], withTitle: [{
345
- type: Input
346
- }], withTooltip: [{
347
- type: Input
348
- }], scrollActive: [{
349
- type: Input
350
- }], withIcon: [{
351
- type: Input
352
- }], icon: [{
353
- type: Input
354
- }], xPosition: [{
355
- type: Input
356
- }], yPosition: [{
357
- type: Input
358
- }], overlayClass: [{
359
- type: Input
360
- }], withTitleClass: [{
361
- type: HostBinding,
362
- args: ['class.with-title']
363
- }], withIconClass: [{
364
- type: HostBinding,
365
- args: ['class.with-icon']
366
- }], horizontalClass: [{
367
- type: HostBinding,
368
- args: ['class.horizontal']
369
- }] }); })();
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2FjdGlvbi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2FjdGlvbi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFFWCx1QkFBdUIsRUFLeEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7SUNoQm5DLDhCQUNrQixnQkFBQTtJQU1kLDJLQUFTLGVBQUEsaUJBQVUsQ0FBQSxJQUFDOztJQUNwQiw4QkFBMEM7SUFDNUMsaUJBQVMsRUFBQTs7SUFIUCxlQUEwRDtJQUExRCxrRkFBMEQ7Ozs7SUFNOUQsNkNBUW9EO0lBQWxELDJNQUFXLGVBQUEsbURBQXFDLENBQUEsSUFBQztJQUNuRCxpQkFBcUI7OztJQU5uQixpQ0FBbUIsa0JBQUEsdUJBQUEscUNBQUEsdUNBQUE7Ozs7SUFTbkIsOENBUXNDO0lBQXBDLHFRQUFXLGVBQUEsbUNBQXVCLENBQUEsSUFBQztJQUNyQyxpQkFBcUI7Ozs7SUFQbkIsNkNBQXVCLDhCQUFBLG9DQUFBLHdCQUFBLDBEQUFBLHNCQUFBOzs7SUFIM0IsK0hBV2M7Ozs7SUFYa0Qsd0VBQXFDOzs7O0lBYXJHLCtCQUNrQixnQkFBQTtJQU1kLDZL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SyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7b0ZBMU5VLGtCQUFrQjtxRUFBbEIsa0JBQWtCOzs7UUM5Qi9CLDZFQWtEVztRQUVYLG9FQWlDTTtRQUNOLDZFQWNXOztRQXBHQSwwREFBaUM7UUFvRHRDLGVBQW9DO1FBQXBDLDZEQUFvQztRQWtDL0IsZUFBb0M7UUFBcEMsNkRBQW9DOzt1RkR4RGxDLGtCQUFrQjtjQU45QixTQUFTOzJCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs4SUFvRHRDLEtBQUs7a0JBQWIsS0FBSztZQUtHLElBQUk7a0JBQVosS0FBSztZQUtHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUtHLFVBQVU7a0JBQWxCLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxTQUFTO2tCQUFqQixLQUFLO1lBS0csU0FBUztrQkFBakIsS0FBSztZQUtHLFdBQVc7a0JBQW5CLEtBQUs7WUFLRyxZQUFZO2tCQUFwQixLQUFLO1lBS0csUUFBUTtrQkFBaEIsS0FBSztZQUtHLElBQUk7a0JBQVosS0FBSztZQUtHLFNBQVM7a0JBQWpCLEtBQUs7WUFLRyxTQUFTO2tCQUFqQixLQUFLO1lBTUYsWUFBWTtrQkFEZixLQUFLO1lBYUYsY0FBYztrQkFEakIsV0FBVzttQkFBQyxrQkFBa0I7WUFTM0IsYUFBYTtrQkFEaEIsV0FBVzttQkFBQyxpQkFBaUI7WUFTMUIsZUFBZTtrQkFEbEIsV0FBVzttQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBIb3N0QmluZGluZyxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgRWxlbWVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlLCBNZWRpYSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZVdhdGNoZXIgfSBmcm9tICcuLi8uLi9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi9zaGFyZWQvYWN0aW9uLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBY3Rpb25iYXJNb2RlIH0gZnJvbSAnLi4vc2hhcmVkL2FjdGlvbi5lbnVtcyc7XHJcbmltcG9ydCB7IEFjdGlvblN0b3JlIH0gZnJvbSAnLi4vc2hhcmVkL3N0b3JlJztcclxuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogQSBsaXN0IG9mIGFjdGlvbiBidXR0b25zLlxyXG4gKiBUaGlzIGNvbXBvbmVudCBjYW4gYmUgZGlzcGxheWVkIGluIG9uZSBvZiB0d28gd2F5OiAnZG9jaycgb3IgJ292ZXJsYXknXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1hY3Rpb25iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25iYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbmJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25iYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgQWN0aW9uYmFyTW9kZSBlbnVtIGZvciB1c2UgaW4gdGhlIHRlbXBsYXRlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgYWN0aW9uYmFyTW9kZSA9IEFjdGlvbmJhck1vZGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIGFjdGlvbmJhciBpcyBjb2xsYXBzZWQgKERvY2sgbW9kZSlcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBjb2xsYXBzZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIGNvbGxhcHNlIGFjdGlvbiAoRG9jaylcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICB0b2dnbGVDb2xsYXBzZUFjdGlvbiA9IHtcclxuICAgIGlkOiAnYWN0aW9uYmFyX3RvZ2dsZScsXHJcbiAgICBpY29uOiAnZG90cy12ZXJ0aWNhbCcsXHJcbiAgICBoYW5kbGVyOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGlvbiBzdG9yZSB3YXRjaGVyXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YXRjaGVyOiBFbnRpdHlTdG9yZVdhdGNoZXI8QWN0aW9uPjtcclxuXHJcbiAgLyoqXHJcbiAgICogSGVpZ2h0IENvbmRpdGlvbiBmb3Igc2Nyb2xsIGJ1dHRvblxyXG4gICAqL1xyXG4gIGhlaWdodENvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKipcclxuICAgKiBQb3NpdGlvbiBDb25kaXRpb24gZm9yIHRvcCBzY3JvbGwgYnV0dG9uXHJcbiAgICovXHJcbiAgcG9zaXRpb25Db25kaXRpb25Ub3AkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICAvKipcclxuICAgKiBQb3NpdGlvbiBDb25kaXRpb24gZm9yIGxvdyBzY3JvbGwgYnV0dG9uXHJcbiAgICovXHJcbiAgcG9zaXRpb25Db25kaXRpb25Mb3ckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICAvKipcclxuICAgKiBBY3Rpb24gc3RvcmVcclxuICAgKi9cclxuICBASW5wdXQoKSBzdG9yZTogQWN0aW9uU3RvcmU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGlvbmJhciBtb2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbW9kZTogQWN0aW9uYmFyTW9kZSA9IEFjdGlvbmJhck1vZGUuRG9jaztcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciBhIHRvZ2dsZSBidXR0b24gc2hvdWxkIGJlIGRpc3BsYXllZCAoRG9jayBtb2RlKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHdpdGhUb2dnbGVCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciBhIHRoZSBhY3Rpb25iYXIgc2hvdWxkIGRpc3BsYXkgYnV0dG9ucyBob3Jpem9udGFsbHlcclxuICAgKi9cclxuICBASW5wdXQoKSBob3Jpem9udGFsID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbG9yXHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sb3IgPSAnZGVmYXVsdCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbG9yIG9mIHRoZSBidXR0b24gaWYgYWN0aW9uIG1vZGUgPT09IG92ZXJsYXlcclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uQ29sb3IgPSAnZGVmYXVsdCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgYWN0aW9uIHRpdGxlcyBhcmUgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgd2l0aFRpdGxlID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciBhY3Rpb24gdG9vbHRpcHMgYXJlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHdpdGhUb29sdGlwID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciBhY3Rpb24gdGl0bGVzIGFyZSBkaXNwbGF5ZWQgKGNvbmRpdGlvbiBmb3Igc2Nyb2xsIGJ1dHRvbilcclxuICAgKi9cclxuICBASW5wdXQoKSBzY3JvbGxBY3RpdmUgPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIGFjdGlvbiBpY29ucyBhcmUgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgd2l0aEljb24gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGljaCBpY29uIHdhbnQgdG8gYmUgc2hvd25cclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uID0gJ2RvdHMtaG9yaXpvbnRhbCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE92ZXJsYXkgWCBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHhQb3NpdGlvbiA9ICdiZWZvcmUnO1xyXG5cclxuICAvKipcclxuICAgKiBPdmVybGF5IFkgcG9zaXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSB5UG9zaXRpb24gPSAnYWJvdmUnO1xyXG5cclxuICAvKipcclxuICAgKiBDbGFzcyB0byBhZGQgdG8gdGhlIGFjdGlvbmJhciBvdmVybGF5XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgb3ZlcmxheUNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX292ZXJsYXlDbGFzcyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgb3ZlcmxheUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gW3RoaXMuX292ZXJsYXlDbGFzcywgJ2lnby1hY3Rpb25iYXItb3ZlcmxheSddLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb3ZlcmxheUNsYXNzID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndpdGgtdGl0bGUnKVxyXG4gIGdldCB3aXRoVGl0bGVDbGFzcygpIHtcclxuICAgIHJldHVybiB0aGlzLndpdGhUaXRsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndpdGgtaWNvbicpXHJcbiAgZ2V0IHdpdGhJY29uQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53aXRoSWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhvcml6b250YWwnKVxyXG4gIGdldCBob3Jpem9udGFsQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5ob3Jpem9udGFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhlaWdodENvbmRpdGlvbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKHRoaXMuc2Nyb2xsQWN0aXZlID09PSBmYWxzZSkge1xyXG4gICAgICBpZiAoZWwuY2xpZW50SGVpZ2h0IDwgZWwuc2Nyb2xsSGVpZ2h0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldCBwb3NpdGlvbkNvbmRpdGlvblRvcCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBvc2l0aW9uQ29uZGl0aW9uTG93KCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoZWwuc2Nyb2xsVG9wID49IChlbC5zY3JvbGxIZWlnaHQgLSBlbC5jbGllbnRIZWlnaHQpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRGVza3RvcCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1lZGlhU2VydmljZS5nZXRNZWRpYSgpID09PSBNZWRpYS5EZXNrdG9wO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3Qgc3RvcmUgPSBjaGFuZ2VzLnN0b3JlO1xyXG4gICAgaWYgKHN0b3JlICYmIHN0b3JlLmN1cnJlbnRWYWx1ZSAhPT0gc3RvcmUucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy53YXRjaGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLndhdGNoZXIuZGVzdHJveSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2F0Y2hlciA9IG5ldyBFbnRpdHlTdG9yZVdhdGNoZXIodGhpcy5zdG9yZSwgdGhpcy5jZFJlZik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMud2F0Y2hlci5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnZva2UgdGhlIGFjdGlvbiBoYW5kbGVyXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgb25UcmlnZ2VyQWN0aW9uKGFjdGlvbjogQWN0aW9uKSB7XHJcbiAgICBjb25zdCBhcmdzID0gYWN0aW9uLmFyZ3MgfHwgW107XHJcbiAgICBhY3Rpb24uaGFuZGxlciguLi5hcmdzKTtcclxuICB9XHJcblxyXG4gIHNjcm9sbERvd24oKSB7XHJcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoMCwgNTIpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVXAoKSB7XHJcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoMCwgLTUyKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxtYXQtbGlzdCAqbmdJZj1cIm1vZGUgPT09IGFjdGlvbmJhck1vZGUuRG9ja1wiPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJoZWlnaHRDb25kaXRpb24gJiYgcG9zaXRpb25Db25kaXRpb25Ub3AgJiYgaXNEZXNrdG9wXCJcclxuICAgICAgaWQ9XCJ0b3BDaGV2cm9uXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uY29tbW9uLmFjdGlvbmJhci5zY3JvbGxVcCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxVcCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLXVwXCI+PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8aWdvLWFjdGlvbmJhci1pdGVtXHJcbiAgICAgICpuZ0lmPVwid2l0aFRvZ2dsZUJ1dHRvblwiXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgW3dpdGhUaXRsZV09XCJmYWxzZVwiXHJcbiAgICAgIFt3aXRoSWNvbl09XCJ0cnVlXCJcclxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgICAgW2Rpc2FibGVkXT1cInN0b3JlLnZpZXcuZW1wdHlcIlxyXG4gICAgICBbYWN0aW9uXT1cInRvZ2dsZUNvbGxhcHNlQWN0aW9uXCJcclxuICAgICAgKHRyaWdnZXIpPVwib25UcmlnZ2VyQWN0aW9uKHRvZ2dsZUNvbGxhcHNlQWN0aW9uKVwiPlxyXG4gICAgPC9pZ28tYWN0aW9uYmFyLWl0ZW0+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNidXR0b25Db250ZW50ICpuZ0lmPVwiIWNvbGxhcHNlZFwiIG5nRm9yIGxldC1hY3Rpb24gW25nRm9yT2ZdPVwic3RvcmUudmlldy5hbGwkKCkgfCBhc3luY1wiPlxyXG4gICAgICA8aWdvLWFjdGlvbmJhci1pdGVtXHJcbiAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxyXG4gICAgICAgIFt3aXRoVGl0bGVdPVwid2l0aFRpdGxlXCJcclxuICAgICAgICBbd2l0aEljb25dPVwid2l0aEljb25cIlxyXG4gICAgICAgIFt3aXRoVG9vbHRpcF09XCJ3aXRoVG9vbHRpcFwiXHJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwic3RvcmUuc3RhdGUuZ2V0KGFjdGlvbikuZGlzYWJsZWRcIlxyXG4gICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcclxuICAgICAgICAodHJpZ2dlcik9XCJvblRyaWdnZXJBY3Rpb24oYWN0aW9uKVwiPlxyXG4gICAgICA8L2lnby1hY3Rpb25iYXItaXRlbT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImhlaWdodENvbmRpdGlvbiAmJiBwb3NpdGlvbkNvbmRpdGlvbkxvdyAmJiBpc0Rlc2t0b3BcIlxyXG4gICAgICBpZD1cImxvd0NoZXZyb25cIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5jb21tb24uYWN0aW9uYmFyLnNjcm9sbERvd24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAoY2xpY2spPVwic2Nyb2xsRG93bigpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLWRvd25cIj48L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9tYXQtbGlzdD5cclxuXHJcbjxkaXYgKm5nSWY9XCJtb2RlID09PSBhY3Rpb25iYXJNb2RlLk92ZXJsYXlcIj5cclxuICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uT3ZlcmxheVwiXHJcbiAgICBtYXQtaWNvbi1idXR0b25cclxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uY29tbW9uLmFjdGlvbmJhci5pY29uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWN0aW9uYmFyTWVudVwiXHJcbiAgICBbZGlzYWJsZWRdPVwic3RvcmUudmlldy5lbXB0eVwiXHJcbiAgICBbY29sb3JdPVwiaWNvbkNvbG9yXCI+XHJcbiAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvblwiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxtYXQtbWVudVxyXG4gICAgI2FjdGlvbmJhck1lbnU9XCJtYXRNZW51XCJcclxuICAgIGNsYXNzPVwiaWdvLWNvbXBhY3QtbWVudSBpZ28tbm8tbWluLXdpZHRoLW1lbnVcIlxyXG4gICAgb3ZlcmxhcFRyaWdnZXI9XCJ0cnVlXCJcclxuICAgIFt4UG9zaXRpb25dPVwieFBvc2l0aW9uXCJcclxuICAgIFt5UG9zaXRpb25dPVwieVBvc2l0aW9uXCJcclxuICAgIFtjbGFzc109XCJvdmVybGF5Q2xhc3NcIj5cclxuXHJcbiAgICA8bWF0LWxpc3Q+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtYWN0aW9uIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cclxuICAgICAgICA8aWdvLWFjdGlvbmJhci1pdGVtXHJcbiAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgICBbd2l0aFRpdGxlXT1cIndpdGhUaXRsZVwiXHJcbiAgICAgICAgICBbd2l0aEljb25dPVwid2l0aEljb25cIlxyXG4gICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcclxuICAgICAgICAgICh0cmlnZ2VyKT1cIm9uVHJpZ2dlckFjdGlvbihhY3Rpb24pXCI+XHJcbiAgICAgICAgPC9pZ28tYWN0aW9uYmFyLWl0ZW0+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21hdC1saXN0PlxyXG4gIDwvbWF0LW1lbnU+XHJcbjwvZGl2PlxyXG48bWF0LWNhcmQgKm5nSWY9XCJtb2RlID09PSBhY3Rpb25iYXJNb2RlLkNvbnRleHRcIiBjbGFzcz1cImNvbnRleHQtbWVudS1jYXJkIG1hdC1lbGV2YXRpb24tejRcIj5cclxuICA8bWF0LWxpc3Q+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtYWN0aW9uIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cclxuICAgICAgICAgIDxpZ28tYWN0aW9uYmFyLWl0ZW1cclxuICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxyXG4gICAgICAgICAgICBbd2l0aFRpdGxlXT1cIndpdGhUaXRsZVwiXHJcbiAgICAgICAgICAgIFt3aXRoSWNvbl09XCJ3aXRoSWNvblwiXHJcbiAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvclwiXHJcbiAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcclxuICAgICAgICAgICAgKHRyaWdnZXIpPVwib25UcmlnZ2VyQWN0aW9uKGFjdGlvbilcIj5cclxuICAgICAgICAgIDwvaWdvLWFjdGlvbmJhci1pdGVtPlxyXG4gICAgICAgIDxici8+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9tYXQtbGlzdD5cclxuPC9tYXQtY2FyZD5cclxuIl19
1
+ import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';
2
+ import { Media } from '@igo2/core';
3
+ import { EntityStoreWatcher } from '../../entity';
4
+ import { ActionbarMode } from '../shared/action.enums';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/overlay";
8
+ import * as i2 from "@igo2/core";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@angular/material/button";
11
+ import * as i5 from "@angular/material/icon";
12
+ import * as i6 from "@angular/material/tooltip";
13
+ import * as i7 from "@angular/material/menu";
14
+ import * as i8 from "@angular/material/list";
15
+ import * as i9 from "@angular/material/card";
16
+ import * as i10 from "./actionbar-item.component";
17
+ import * as i11 from "@ngx-translate/core";
18
+ function ActionbarComponent_mat_list_0_div_1_Template(rf, ctx) { if (rf & 1) {
19
+ const _r8 = i0.ɵɵgetCurrentView();
20
+ i0.ɵɵelementStart(0, "div", 5)(1, "button", 6);
21
+ i0.ɵɵlistener("click", function ActionbarComponent_mat_list_0_div_1_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.scrollUp()); });
22
+ i0.ɵɵpipe(2, "translate");
23
+ i0.ɵɵelement(3, "mat-icon", 7);
24
+ i0.ɵɵelementEnd()();
25
+ } if (rf & 2) {
26
+ i0.ɵɵadvance(1);
27
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 1, "igo.common.actionbar.scrollUp"));
28
+ } }
29
+ function ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template(rf, ctx) { if (rf & 1) {
30
+ const _r10 = i0.ɵɵgetCurrentView();
31
+ i0.ɵɵelementStart(0, "igo-actionbar-item", 8);
32
+ i0.ɵɵlistener("trigger", function ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template_igo_actionbar_item_trigger_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.onTriggerAction(ctx_r9.toggleCollapseAction)); });
33
+ i0.ɵɵelementEnd();
34
+ } if (rf & 2) {
35
+ const ctx_r4 = i0.ɵɵnextContext(2);
36
+ i0.ɵɵproperty("withTitle", false)("withIcon", true)("color", ctx_r4.color)("disabled", ctx_r4.store.view.empty)("action", ctx_r4.toggleCollapseAction);
37
+ } }
38
+ function ActionbarComponent_mat_list_0_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
39
+ const _r15 = i0.ɵɵgetCurrentView();
40
+ i0.ɵɵelementStart(0, "igo-actionbar-item", 11);
41
+ i0.ɵɵlistener("trigger", function ActionbarComponent_mat_list_0_3_ng_template_0_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r15); const action_r13 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r14.onTriggerAction(action_r13)); });
42
+ i0.ɵɵelementEnd();
43
+ } if (rf & 2) {
44
+ const action_r13 = ctx.$implicit;
45
+ const ctx_r12 = i0.ɵɵnextContext(3);
46
+ i0.ɵɵproperty("withTitle", ctx_r12.withTitle)("withIcon", ctx_r12.withIcon)("withTooltip", ctx_r12.withTooltip)("color", ctx_r12.color)("disabled", ctx_r12.store.state.get(action_r13).disabled)("action", action_r13);
47
+ } }
48
+ function ActionbarComponent_mat_list_0_3_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵtemplate(0, ActionbarComponent_mat_list_0_3_ng_template_0_Template, 1, 6, "ng-template", 9, 10, i0.ɵɵtemplateRefExtractor);
50
+ i0.ɵɵpipe(2, "async");
51
+ } if (rf & 2) {
52
+ const ctx_r5 = i0.ɵɵnextContext(2);
53
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx_r5.store.view.all$()));
54
+ } }
55
+ function ActionbarComponent_mat_list_0_div_4_Template(rf, ctx) { if (rf & 1) {
56
+ const _r17 = i0.ɵɵgetCurrentView();
57
+ i0.ɵɵelementStart(0, "div", 12)(1, "button", 6);
58
+ i0.ɵɵlistener("click", function ActionbarComponent_mat_list_0_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.scrollDown()); });
59
+ i0.ɵɵpipe(2, "translate");
60
+ i0.ɵɵelement(3, "mat-icon", 13);
61
+ i0.ɵɵelementEnd()();
62
+ } if (rf & 2) {
63
+ i0.ɵɵadvance(1);
64
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 1, "igo.common.actionbar.scrollDown"));
65
+ } }
66
+ function ActionbarComponent_mat_list_0_Template(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵelementStart(0, "mat-list");
68
+ i0.ɵɵtemplate(1, ActionbarComponent_mat_list_0_div_1_Template, 4, 3, "div", 2);
69
+ i0.ɵɵtemplate(2, ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template, 1, 5, "igo-actionbar-item", 3);
70
+ i0.ɵɵtemplate(3, ActionbarComponent_mat_list_0_3_Template, 3, 3, null, 0);
71
+ i0.ɵɵtemplate(4, ActionbarComponent_mat_list_0_div_4_Template, 4, 3, "div", 4);
72
+ i0.ɵɵelementEnd();
73
+ } if (rf & 2) {
74
+ const ctx_r0 = i0.ɵɵnextContext();
75
+ i0.ɵɵadvance(1);
76
+ i0.ɵɵproperty("ngIf", ctx_r0.heightCondition && ctx_r0.positionConditionTop && ctx_r0.isDesktop);
77
+ i0.ɵɵadvance(1);
78
+ i0.ɵɵproperty("ngIf", ctx_r0.withToggleButton);
79
+ i0.ɵɵadvance(1);
80
+ i0.ɵɵproperty("ngIf", !ctx_r0.collapsed);
81
+ i0.ɵɵadvance(1);
82
+ i0.ɵɵproperty("ngIf", ctx_r0.heightCondition && ctx_r0.positionConditionLow && ctx_r0.isDesktop);
83
+ } }
84
+ function ActionbarComponent_div_1_ng_template_7_Template(rf, ctx) { if (rf & 1) {
85
+ const _r22 = i0.ɵɵgetCurrentView();
86
+ i0.ɵɵelementStart(0, "igo-actionbar-item", 18);
87
+ i0.ɵɵlistener("trigger", function ActionbarComponent_div_1_ng_template_7_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const action_r20 = restoredCtx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.onTriggerAction(action_r20)); });
88
+ i0.ɵɵelementEnd();
89
+ } if (rf & 2) {
90
+ const action_r20 = ctx.$implicit;
91
+ const ctx_r19 = i0.ɵɵnextContext(2);
92
+ i0.ɵɵproperty("withTitle", ctx_r19.withTitle)("withIcon", ctx_r19.withIcon)("color", ctx_r19.color)("action", action_r20);
93
+ } }
94
+ function ActionbarComponent_div_1_Template(rf, ctx) { if (rf & 1) {
95
+ i0.ɵɵelementStart(0, "div")(1, "button", 14);
96
+ i0.ɵɵpipe(2, "translate");
97
+ i0.ɵɵelement(3, "mat-icon", 15);
98
+ i0.ɵɵelementEnd();
99
+ i0.ɵɵelementStart(4, "mat-menu", 16, 17)(6, "mat-list");
100
+ i0.ɵɵtemplate(7, ActionbarComponent_div_1_ng_template_7_Template, 1, 4, "ng-template", 9);
101
+ i0.ɵɵpipe(8, "async");
102
+ i0.ɵɵelementEnd()()();
103
+ } if (rf & 2) {
104
+ const _r18 = i0.ɵɵreference(5);
105
+ const ctx_r1 = i0.ɵɵnextContext();
106
+ i0.ɵɵadvance(1);
107
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 10, "igo.common.actionbar.icon"))("matMenuTriggerFor", _r18)("disabled", ctx_r1.store.view.empty)("color", ctx_r1.iconColor);
108
+ i0.ɵɵadvance(2);
109
+ i0.ɵɵproperty("svgIcon", ctx_r1.icon);
110
+ i0.ɵɵadvance(1);
111
+ i0.ɵɵclassMap(ctx_r1.overlayClass);
112
+ i0.ɵɵproperty("xPosition", ctx_r1.xPosition)("yPosition", ctx_r1.yPosition);
113
+ i0.ɵɵadvance(3);
114
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(8, 12, ctx_r1.store.view.all$()));
115
+ } }
116
+ function ActionbarComponent_mat_card_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
117
+ const _r26 = i0.ɵɵgetCurrentView();
118
+ i0.ɵɵelementStart(0, "igo-actionbar-item", 18);
119
+ i0.ɵɵlistener("trigger", function ActionbarComponent_mat_card_2_ng_template_2_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r26); const action_r24 = restoredCtx.$implicit; const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.onTriggerAction(action_r24)); });
120
+ i0.ɵɵelementEnd();
121
+ i0.ɵɵelement(1, "br");
122
+ } if (rf & 2) {
123
+ const action_r24 = ctx.$implicit;
124
+ const ctx_r23 = i0.ɵɵnextContext(2);
125
+ i0.ɵɵproperty("withTitle", ctx_r23.withTitle)("withIcon", ctx_r23.withIcon)("color", ctx_r23.color)("action", action_r24);
126
+ } }
127
+ function ActionbarComponent_mat_card_2_Template(rf, ctx) { if (rf & 1) {
128
+ i0.ɵɵelementStart(0, "mat-card", 19)(1, "mat-list");
129
+ i0.ɵɵtemplate(2, ActionbarComponent_mat_card_2_ng_template_2_Template, 2, 4, "ng-template", 9);
130
+ i0.ɵɵpipe(3, "async");
131
+ i0.ɵɵelementEnd()();
132
+ } if (rf & 2) {
133
+ const ctx_r2 = i0.ɵɵnextContext();
134
+ i0.ɵɵadvance(2);
135
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 1, ctx_r2.store.view.all$()));
136
+ } }
137
+ /**
138
+ * A list of action buttons.
139
+ * This component can be displayed in one of two way: 'dock' or 'overlay'
140
+ */
141
+ export class ActionbarComponent {
142
+ constructor(overlay, elRef, cdRef, mediaService) {
143
+ this.overlay = overlay;
144
+ this.elRef = elRef;
145
+ this.cdRef = cdRef;
146
+ this.mediaService = mediaService;
147
+ /**
148
+ * Reference to the ActionbarMode enum for use in the template
149
+ * @internal
150
+ */
151
+ this.actionbarMode = ActionbarMode;
152
+ /**
153
+ * Whether the actionbar is collapsed (Dock mode)
154
+ * @internal
155
+ */
156
+ this.collapsed = false;
157
+ /**
158
+ * Toggle collapse action (Dock)
159
+ * @internal
160
+ */
161
+ this.toggleCollapseAction = {
162
+ id: 'actionbar_toggle',
163
+ icon: 'dots-vertical',
164
+ handler: () => {
165
+ this.collapsed = !this.collapsed;
166
+ }
167
+ };
168
+ /**
169
+ * Height Condition for scroll button
170
+ */
171
+ this.heightCondition$ = new BehaviorSubject(false);
172
+ /**
173
+ * Position Condition for top scroll button
174
+ */
175
+ this.positionConditionTop$ = new BehaviorSubject(true);
176
+ /**
177
+ * Position Condition for low scroll button
178
+ */
179
+ this.positionConditionLow$ = new BehaviorSubject(true);
180
+ /**
181
+ * Actionbar mode
182
+ */
183
+ this.mode = ActionbarMode.Dock;
184
+ /**
185
+ * Whether a toggle button should be displayed (Dock mode)
186
+ */
187
+ this.withToggleButton = false;
188
+ /**
189
+ * Whether a the actionbar should display buttons horizontally
190
+ */
191
+ this.horizontal = false;
192
+ /**
193
+ * Color
194
+ */
195
+ this.color = 'default';
196
+ /**
197
+ * Color of the button if action mode === overlay
198
+ */
199
+ this.iconColor = 'default';
200
+ /**
201
+ * Whether action titles are displayed
202
+ */
203
+ this.withTitle = true;
204
+ /**
205
+ * Whether action tooltips are displayed
206
+ */
207
+ this.withTooltip = true;
208
+ /**
209
+ * Whether action titles are displayed (condition for scroll button)
210
+ */
211
+ this.scrollActive = true;
212
+ /**
213
+ * Whether action icons are displayed
214
+ */
215
+ this.withIcon = true;
216
+ /**
217
+ * Which icon want to be shown
218
+ */
219
+ this.icon = 'dots-horizontal';
220
+ /**
221
+ * Overlay X position
222
+ */
223
+ this.xPosition = 'before';
224
+ /**
225
+ * Overlay Y position
226
+ */
227
+ this.yPosition = 'above';
228
+ this._overlayClass = '';
229
+ }
230
+ /**
231
+ * Class to add to the actionbar overlay
232
+ */
233
+ set overlayClass(value) {
234
+ this._overlayClass = value;
235
+ }
236
+ get overlayClass() {
237
+ return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');
238
+ }
239
+ /**
240
+ * @ignore
241
+ */
242
+ get withTitleClass() {
243
+ return this.withTitle;
244
+ }
245
+ /**
246
+ * @ignore
247
+ */
248
+ get withIconClass() {
249
+ return this.withIcon;
250
+ }
251
+ /**
252
+ * @ignore
253
+ */
254
+ get horizontalClass() {
255
+ return this.horizontal;
256
+ }
257
+ get heightCondition() {
258
+ const el = this.elRef.nativeElement;
259
+ if (this.scrollActive === false) {
260
+ if (el.clientHeight < el.scrollHeight) {
261
+ return true;
262
+ }
263
+ }
264
+ return false;
265
+ }
266
+ get positionConditionTop() {
267
+ if (this.elRef.nativeElement.scrollTop === 0) {
268
+ return false;
269
+ }
270
+ return true;
271
+ }
272
+ get positionConditionLow() {
273
+ const el = this.elRef.nativeElement;
274
+ if (el.scrollTop >= (el.scrollHeight - el.clientHeight)) {
275
+ return false;
276
+ }
277
+ return true;
278
+ }
279
+ get isDesktop() {
280
+ return this.mediaService.getMedia() === Media.Desktop;
281
+ }
282
+ /**
283
+ * @internal
284
+ */
285
+ ngOnChanges(changes) {
286
+ const store = changes.store;
287
+ if (store && store.currentValue !== store.previousValue) {
288
+ if (this.watcher !== undefined) {
289
+ this.watcher.destroy();
290
+ }
291
+ this.watcher = new EntityStoreWatcher(this.store, this.cdRef);
292
+ }
293
+ }
294
+ /**
295
+ * @internal
296
+ */
297
+ ngOnDestroy() {
298
+ this.watcher.destroy();
299
+ }
300
+ /**
301
+ * Invoke the action handler
302
+ * @internal
303
+ */
304
+ onTriggerAction(action) {
305
+ const args = action.args || [];
306
+ action.handler(...args);
307
+ }
308
+ scrollDown() {
309
+ this.elRef.nativeElement.scrollBy(0, 52);
310
+ }
311
+ scrollUp() {
312
+ this.elRef.nativeElement.scrollBy(0, -52);
313
+ }
314
+ }
315
+ ActionbarComponent.ɵfac = function ActionbarComponent_Factory(t) { return new (t || ActionbarComponent)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.MediaService)); };
316
+ ActionbarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionbarComponent, selectors: [["igo-actionbar"]], hostVars: 6, hostBindings: function ActionbarComponent_HostBindings(rf, ctx) { if (rf & 2) {
317
+ i0.ɵɵclassProp("with-title", ctx.withTitleClass)("with-icon", ctx.withIconClass)("horizontal", ctx.horizontalClass);
318
+ } }, inputs: { store: "store", mode: "mode", withToggleButton: "withToggleButton", horizontal: "horizontal", color: "color", iconColor: "iconColor", withTitle: "withTitle", withTooltip: "withTooltip", scrollActive: "scrollActive", withIcon: "withIcon", icon: "icon", xPosition: "xPosition", yPosition: "yPosition", overlayClass: "overlayClass" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[4, "ngIf"], ["class", "context-menu-card mat-elevation-z4", 4, "ngIf"], ["id", "topChevron", 4, "ngIf"], ["color", "accent", 3, "withTitle", "withIcon", "color", "disabled", "action", "trigger", 4, "ngIf"], ["id", "lowChevron", 4, "ngIf"], ["id", "topChevron"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "click"], ["svgIcon", "chevron-up"], ["color", "accent", 3, "withTitle", "withIcon", "color", "disabled", "action", "trigger"], ["ngFor", "", 3, "ngForOf"], ["buttonContent", ""], ["color", "accent", 3, "withTitle", "withIcon", "withTooltip", "color", "disabled", "action", "trigger"], ["id", "lowChevron"], ["svgIcon", "chevron-down"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "buttonOverlay", 3, "matTooltip", "matMenuTriggerFor", "disabled", "color"], [3, "svgIcon"], ["overlapTrigger", "true", 1, "igo-compact-menu", "igo-no-min-width-menu", 3, "xPosition", "yPosition"], ["actionbarMenu", "matMenu"], ["color", "accent", 3, "withTitle", "withIcon", "color", "action", "trigger"], [1, "context-menu-card", "mat-elevation-z4"]], template: function ActionbarComponent_Template(rf, ctx) { if (rf & 1) {
319
+ i0.ɵɵtemplate(0, ActionbarComponent_mat_list_0_Template, 5, 4, "mat-list", 0);
320
+ i0.ɵɵtemplate(1, ActionbarComponent_div_1_Template, 9, 14, "div", 0);
321
+ i0.ɵɵtemplate(2, ActionbarComponent_mat_card_2_Template, 4, 3, "mat-card", 1);
322
+ } if (rf & 2) {
323
+ i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Dock);
324
+ i0.ɵɵadvance(1);
325
+ i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Overlay);
326
+ i0.ɵɵadvance(1);
327
+ i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Context);
328
+ } }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatButton, i5.MatIcon, i6.MatTooltip, i7.MatMenu, i7.MatMenuTrigger, i8.MatList, i9.MatCard, i10.ActionbarItemComponent, i3.AsyncPipe, i11.TranslatePipe], styles: ["[_nghost-%COMP%]{display:block;height:100%;overflow:auto;position:relative}button[_ngcontent-%COMP%]{margin:4px}.buttonOverlay[_ngcontent-%COMP%]{margin:0}mat-list[_ngcontent-%COMP%]{padding-top:0}.horizontal[_nghost-%COMP%]{max-width:100%;overflow:visible;overflow:initial}.horizontal[_nghost-%COMP%] mat-list[_ngcontent-%COMP%]{width:auto;white-space:nowrap}.horizontal[_nghost-%COMP%] igo-actionbar-item[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .mat-list .mat-list-item .mat-list-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar{height:46px}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content{display:-webkit-flex;height:46px;padding:3px}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content>mat-icon{padding:8px}igo-actionbar-item[_ngcontent-%COMP%] mat-list-item [mat-list-avatar]{height:auto;width:40px}igo-actionbar-item[_ngcontent-%COMP%] mat-list-item:hover{cursor:pointer}.context-menu-card[_ngcontent-%COMP%]{padding:8px 3px;margin:10px}#topChevron[_ngcontent-%COMP%]{position:sticky;top:0;background-color:#fff;z-index:3}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#topChevron[_ngcontent-%COMP%]{position:fixed;top:auto;top:initial}}@supports (-ms-accelerator: true){#topChevron[_ngcontent-%COMP%]{position:fixed;top:auto;top:initial}}#lowChevron[_ngcontent-%COMP%]{position:fixed;position:sticky;bottom:0;background-color:#fff;z-index:3}"], changeDetection: 0 });
329
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionbarComponent, [{
330
+ type: Component,
331
+ args: [{ selector: 'igo-actionbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list *ngIf=\"mode === actionbarMode.Dock\">\n\n <div *ngIf=\"heightCondition && positionConditionTop && isDesktop\"\n id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\">\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n </div>\n\n <igo-actionbar-item\n *ngIf=\"withToggleButton\"\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color\"\n [disabled]=\"store.view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\">\n </igo-actionbar-item>\n\n <ng-template #buttonContent *ngIf=\"!collapsed\" ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [withTooltip]=\"withTooltip\"\n [color]=\"color\"\n [disabled]=\"store.state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n\n <div *ngIf=\"heightCondition && positionConditionLow && isDesktop\"\n id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n </div>\n\n</mat-list>\n\n<div *ngIf=\"mode === actionbarMode.Overlay\">\n <button class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store.view.empty\"\n [color]=\"iconColor\">\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\n </button>\n\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n [class]=\"overlayClass\">\n\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n </mat-list>\n </mat-menu>\n</div>\n<mat-card *ngIf=\"mode === actionbarMode.Context\" class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n <br/>\n </ng-template>\n </mat-list>\n</mat-card>\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}button{margin:4px}.buttonOverlay{margin:0}mat-list{padding-top:0}:host.horizontal{max-width:100%;overflow:visible;overflow:initial}:host.horizontal mat-list{width:auto;white-space:nowrap}:host.horizontal igo-actionbar-item{display:inline-block}:host ::ng-deep .mat-list .mat-list-item .mat-list-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar{height:46px}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content{display:-webkit-flex;height:46px;padding:3px}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content>mat-icon{padding:8px}igo-actionbar-item ::ng-deep mat-list-item [mat-list-avatar]{height:auto;width:40px}igo-actionbar-item ::ng-deep mat-list-item:hover{cursor:pointer}.context-menu-card{padding:8px 3px;margin:10px}#topChevron{position:sticky;top:0;background-color:#fff;z-index:3}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#topChevron{position:fixed;top:auto;top:initial}}@supports (-ms-accelerator: true){#topChevron{position:fixed;top:auto;top:initial}}#lowChevron{position:fixed;position:sticky;bottom:0;background-color:#fff;z-index:3}\n"] }]
332
+ }], function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.MediaService }]; }, { store: [{
333
+ type: Input
334
+ }], mode: [{
335
+ type: Input
336
+ }], withToggleButton: [{
337
+ type: Input
338
+ }], horizontal: [{
339
+ type: Input
340
+ }], color: [{
341
+ type: Input
342
+ }], iconColor: [{
343
+ type: Input
344
+ }], withTitle: [{
345
+ type: Input
346
+ }], withTooltip: [{
347
+ type: Input
348
+ }], scrollActive: [{
349
+ type: Input
350
+ }], withIcon: [{
351
+ type: Input
352
+ }], icon: [{
353
+ type: Input
354
+ }], xPosition: [{
355
+ type: Input
356
+ }], yPosition: [{
357
+ type: Input
358
+ }], overlayClass: [{
359
+ type: Input
360
+ }], withTitleClass: [{
361
+ type: HostBinding,
362
+ args: ['class.with-title']
363
+ }], withIconClass: [{
364
+ type: HostBinding,
365
+ args: ['class.with-icon']
366
+ }], horizontalClass: [{
367
+ type: HostBinding,
368
+ args: ['class.horizontal']
369
+ }] }); })();
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2FjdGlvbi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2FjdGlvbi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFFWCx1QkFBdUIsRUFLeEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7SUNoQm5DLDhCQUNrQixnQkFBQTtJQU1kLDJLQUFTLGVBQUEsaUJBQVUsQ0FBQSxJQUFDOztJQUNwQiw4QkFBMEM7SUFDNUMsaUJBQVMsRUFBQTs7SUFIUCxlQUEwRDtJQUExRCxrRkFBMEQ7Ozs7SUFNOUQsNkNBUW9EO0lBQWxELDJNQUFXLGVBQUEsbURBQXFDLENBQUEsSUFBQztJQUNuRCxpQkFBcUI7OztJQU5uQixpQ0FBbUIsa0JBQUEsdUJBQUEscUNBQUEsdUNBQUE7Ozs7SUFTbkIsOENBUXNDO0lBQXBDLHFRQUFXLGVBQUEsbUNBQXVCLENBQUEsSUFBQztJQUNyQyxpQkFBcUI7Ozs7SUFQbkIsNkNBQXVCLDhCQUFBLG9DQUFBLHdCQUFBLDBEQUFBLHNCQUFBOzs7SUFIM0IsK0hBV2M7Ozs7SUFYa0Qsd0VBQXFDOzs7O0lBYXJHLCtCQUNrQixnQkFBQTtJQU1kLDZL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SyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7b0ZBMU5VLGtCQUFrQjtxRUFBbEIsa0JBQWtCOzs7UUM5Qi9CLDZFQWtEVztRQUVYLG9FQWlDTTtRQUNOLDZFQWNXOztRQXBHQSwwREFBaUM7UUFvRHRDLGVBQW9DO1FBQXBDLDZEQUFvQztRQWtDL0IsZUFBb0M7UUFBcEMsNkRBQW9DOzt1RkR4RGxDLGtCQUFrQjtjQU45QixTQUFTOzJCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs4SUFvRHRDLEtBQUs7a0JBQWIsS0FBSztZQUtHLElBQUk7a0JBQVosS0FBSztZQUtHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUtHLFVBQVU7a0JBQWxCLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxTQUFTO2tCQUFqQixLQUFLO1lBS0csU0FBUztrQkFBakIsS0FBSztZQUtHLFdBQVc7a0JBQW5CLEtBQUs7WUFLRyxZQUFZO2tCQUFwQixLQUFLO1lBS0csUUFBUTtrQkFBaEIsS0FBSztZQUtHLElBQUk7a0JBQVosS0FBSztZQUtHLFNBQVM7a0JBQWpCLEtBQUs7WUFLRyxTQUFTO2tCQUFqQixLQUFLO1lBTUYsWUFBWTtrQkFEZixLQUFLO1lBYUYsY0FBYztrQkFEakIsV0FBVzttQkFBQyxrQkFBa0I7WUFTM0IsYUFBYTtrQkFEaEIsV0FBVzttQkFBQyxpQkFBaUI7WUFTMUIsZUFBZTtrQkFEbEIsV0FBVzttQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBIb3N0QmluZGluZyxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlLCBNZWRpYSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmVXYXRjaGVyIH0gZnJvbSAnLi4vLi4vZW50aXR5JztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uL3NoYXJlZC9hY3Rpb24uaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBY3Rpb25iYXJNb2RlIH0gZnJvbSAnLi4vc2hhcmVkL2FjdGlvbi5lbnVtcyc7XG5pbXBvcnQgeyBBY3Rpb25TdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQSBsaXN0IG9mIGFjdGlvbiBidXR0b25zLlxuICogVGhpcyBjb21wb25lbnQgY2FuIGJlIGRpc3BsYXllZCBpbiBvbmUgb2YgdHdvIHdheTogJ2RvY2snIG9yICdvdmVybGF5J1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tYWN0aW9uYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbmJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbmJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25iYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgQWN0aW9uYmFyTW9kZSBlbnVtIGZvciB1c2UgaW4gdGhlIHRlbXBsYXRlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYWN0aW9uYmFyTW9kZSA9IEFjdGlvbmJhck1vZGU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjdGlvbmJhciBpcyBjb2xsYXBzZWQgKERvY2sgbW9kZSlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjb2xsYXBzZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVG9nZ2xlIGNvbGxhcHNlIGFjdGlvbiAoRG9jaylcbiAgICogQGludGVybmFsXG4gICAqL1xuICB0b2dnbGVDb2xsYXBzZUFjdGlvbiA9IHtcbiAgICBpZDogJ2FjdGlvbmJhcl90b2dnbGUnLFxuICAgIGljb246ICdkb3RzLXZlcnRpY2FsJyxcbiAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEFjdGlvbiBzdG9yZSB3YXRjaGVyXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSB3YXRjaGVyOiBFbnRpdHlTdG9yZVdhdGNoZXI8QWN0aW9uPjtcblxuICAvKipcbiAgICogSGVpZ2h0IENvbmRpdGlvbiBmb3Igc2Nyb2xsIGJ1dHRvblxuICAgKi9cbiAgaGVpZ2h0Q29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIENvbmRpdGlvbiBmb3IgdG9wIHNjcm9sbCBidXR0b25cbiAgICovXG4gIHBvc2l0aW9uQ29uZGl0aW9uVG9wJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvKipcbiAgICogUG9zaXRpb24gQ29uZGl0aW9uIGZvciBsb3cgc2Nyb2xsIGJ1dHRvblxuICAgKi9cbiAgcG9zaXRpb25Db25kaXRpb25Mb3ckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBBY3Rpb24gc3RvcmVcbiAgICovXG4gIEBJbnB1dCgpIHN0b3JlOiBBY3Rpb25TdG9yZTtcblxuICAvKipcbiAgICogQWN0aW9uYmFyIG1vZGVcbiAgICovXG4gIEBJbnB1dCgpIG1vZGU6IEFjdGlvbmJhck1vZGUgPSBBY3Rpb25iYXJNb2RlLkRvY2s7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSB0b2dnbGUgYnV0dG9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgKERvY2sgbW9kZSlcbiAgICovXG4gIEBJbnB1dCgpIHdpdGhUb2dnbGVCdXR0b24gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciBhIHRoZSBhY3Rpb25iYXIgc2hvdWxkIGRpc3BsYXkgYnV0dG9ucyBob3Jpem9udGFsbHlcbiAgICovXG4gIEBJbnB1dCgpIGhvcml6b250YWwgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ29sb3JcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBDb2xvciBvZiB0aGUgYnV0dG9uIGlmIGFjdGlvbiBtb2RlID09PSBvdmVybGF5XG4gICAqL1xuICBASW5wdXQoKSBpY29uQ29sb3IgPSAnZGVmYXVsdCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWN0aW9uIHRpdGxlcyBhcmUgZGlzcGxheWVkXG4gICAqL1xuICBASW5wdXQoKSB3aXRoVGl0bGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFjdGlvbiB0b29sdGlwcyBhcmUgZGlzcGxheWVkXG4gICAqL1xuICBASW5wdXQoKSB3aXRoVG9vbHRpcCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWN0aW9uIHRpdGxlcyBhcmUgZGlzcGxheWVkIChjb25kaXRpb24gZm9yIHNjcm9sbCBidXR0b24pXG4gICAqL1xuICBASW5wdXQoKSBzY3JvbGxBY3RpdmUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFjdGlvbiBpY29ucyBhcmUgZGlzcGxheWVkXG4gICAqL1xuICBASW5wdXQoKSB3aXRoSWNvbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoaWNoIGljb24gd2FudCB0byBiZSBzaG93blxuICAgKi9cbiAgQElucHV0KCkgaWNvbiA9ICdkb3RzLWhvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBPdmVybGF5IFggcG9zaXRpb25cbiAgICovXG4gIEBJbnB1dCgpIHhQb3NpdGlvbiA9ICdiZWZvcmUnO1xuXG4gIC8qKlxuICAgKiBPdmVybGF5IFkgcG9zaXRpb25cbiAgICovXG4gIEBJbnB1dCgpIHlQb3NpdGlvbiA9ICdhYm92ZSc7XG5cbiAgLyoqXG4gICAqIENsYXNzIHRvIGFkZCB0byB0aGUgYWN0aW9uYmFyIG92ZXJsYXlcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBvdmVybGF5Q2xhc3ModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX292ZXJsYXlDbGFzcyA9IHZhbHVlO1xuICB9XG4gIGdldCBvdmVybGF5Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW3RoaXMuX292ZXJsYXlDbGFzcywgJ2lnby1hY3Rpb25iYXItb3ZlcmxheSddLmpvaW4oJyAnKTtcbiAgfVxuICBwcml2YXRlIF9vdmVybGF5Q2xhc3MgPSAnJztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53aXRoLXRpdGxlJylcbiAgZ2V0IHdpdGhUaXRsZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLndpdGhUaXRsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndpdGgtaWNvbicpXG4gIGdldCB3aXRoSWNvbkNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLndpdGhJY29uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaG9yaXpvbnRhbCcpXG4gIGdldCBob3Jpem9udGFsQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbDtcbiAgfVxuXG4gIGdldCBoZWlnaHRDb25kaXRpb24oKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuc2Nyb2xsQWN0aXZlID09PSBmYWxzZSkge1xuICAgICAgaWYgKGVsLmNsaWVudEhlaWdodCA8IGVsLnNjcm9sbEhlaWdodCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uQ29uZGl0aW9uVG9wKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uQ29uZGl0aW9uTG93KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbC5zY3JvbGxUb3AgPj0gKGVsLnNjcm9sbEhlaWdodCAtIGVsLmNsaWVudEhlaWdodCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgaXNEZXNrdG9wKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lZGlhU2VydmljZS5nZXRNZWRpYSgpID09PSBNZWRpYS5EZXNrdG9wO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHN0b3JlID0gY2hhbmdlcy5zdG9yZTtcbiAgICBpZiAoc3RvcmUgJiYgc3RvcmUuY3VycmVudFZhbHVlICE9PSBzdG9yZS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICBpZiAodGhpcy53YXRjaGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy53YXRjaGVyLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICAgIHRoaXMud2F0Y2hlciA9IG5ldyBFbnRpdHlTdG9yZVdhdGNoZXIodGhpcy5zdG9yZSwgdGhpcy5jZFJlZik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy53YXRjaGVyLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdGhlIGFjdGlvbiBoYW5kbGVyXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25UcmlnZ2VyQWN0aW9uKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgY29uc3QgYXJncyA9IGFjdGlvbi5hcmdzIHx8IFtdO1xuICAgIGFjdGlvbi5oYW5kbGVyKC4uLmFyZ3MpO1xuICB9XG5cbiAgc2Nyb2xsRG93bigpIHtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoMCwgNTIpO1xuICB9XG5cbiAgc2Nyb2xsVXAoKSB7XG4gICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEJ5KDAsIC01Mik7XG4gIH1cblxufVxuIiwiPG1hdC1saXN0ICpuZ0lmPVwibW9kZSA9PT0gYWN0aW9uYmFyTW9kZS5Eb2NrXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaGVpZ2h0Q29uZGl0aW9uICYmIHBvc2l0aW9uQ29uZGl0aW9uVG9wICYmIGlzRGVza3RvcFwiXG4gICAgICBpZD1cInRvcENoZXZyb25cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmNvbW1vbi5hY3Rpb25iYXIuc2Nyb2xsVXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKGNsaWNrKT1cInNjcm9sbFVwKClcIj5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLXVwXCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGlnby1hY3Rpb25iYXItaXRlbVxuICAgICAgKm5nSWY9XCJ3aXRoVG9nZ2xlQnV0dG9uXCJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgIFt3aXRoVGl0bGVdPVwiZmFsc2VcIlxuICAgICAgW3dpdGhJY29uXT1cInRydWVcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzdG9yZS52aWV3LmVtcHR5XCJcbiAgICAgIFthY3Rpb25dPVwidG9nZ2xlQ29sbGFwc2VBY3Rpb25cIlxuICAgICAgKHRyaWdnZXIpPVwib25UcmlnZ2VyQWN0aW9uKHRvZ2dsZUNvbGxhcHNlQWN0aW9uKVwiPlxuICAgIDwvaWdvLWFjdGlvbmJhci1pdGVtPlxuXG4gICAgPG5nLXRlbXBsYXRlICNidXR0b25Db250ZW50ICpuZ0lmPVwiIWNvbGxhcHNlZFwiIG5nRm9yIGxldC1hY3Rpb24gW25nRm9yT2ZdPVwic3RvcmUudmlldy5hbGwkKCkgfCBhc3luY1wiPlxuICAgICAgPGlnby1hY3Rpb25iYXItaXRlbVxuICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgIFt3aXRoVGl0bGVdPVwid2l0aFRpdGxlXCJcbiAgICAgICAgW3dpdGhJY29uXT1cIndpdGhJY29uXCJcbiAgICAgICAgW3dpdGhUb29sdGlwXT1cIndpdGhUb29sdGlwXCJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInN0b3JlLnN0YXRlLmdldChhY3Rpb24pLmRpc2FibGVkXCJcbiAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICAodHJpZ2dlcik9XCJvblRyaWdnZXJBY3Rpb24oYWN0aW9uKVwiPlxuICAgICAgPC9pZ28tYWN0aW9uYmFyLWl0ZW0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxkaXYgKm5nSWY9XCJoZWlnaHRDb25kaXRpb24gJiYgcG9zaXRpb25Db25kaXRpb25Mb3cgJiYgaXNEZXNrdG9wXCJcbiAgICAgIGlkPVwibG93Q2hldnJvblwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uY29tbW9uLmFjdGlvbmJhci5zY3JvbGxEb3duJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxEb3duKClcIj5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLWRvd25cIj48L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbjwvbWF0LWxpc3Q+XG5cbjxkaXYgKm5nSWY9XCJtb2RlID09PSBhY3Rpb25iYXJNb2RlLk92ZXJsYXlcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbk92ZXJsYXlcIlxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5jb21tb24uYWN0aW9uYmFyLmljb24nIHwgdHJhbnNsYXRlXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWN0aW9uYmFyTWVudVwiXG4gICAgW2Rpc2FibGVkXT1cInN0b3JlLnZpZXcuZW1wdHlcIlxuICAgIFtjb2xvcl09XCJpY29uQ29sb3JcIj5cbiAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvblwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDxtYXQtbWVudVxuICAgICNhY3Rpb25iYXJNZW51PVwibWF0TWVudVwiXG4gICAgY2xhc3M9XCJpZ28tY29tcGFjdC1tZW51IGlnby1uby1taW4td2lkdGgtbWVudVwiXG4gICAgb3ZlcmxhcFRyaWdnZXI9XCJ0cnVlXCJcbiAgICBbeFBvc2l0aW9uXT1cInhQb3NpdGlvblwiXG4gICAgW3lQb3NpdGlvbl09XCJ5UG9zaXRpb25cIlxuICAgIFtjbGFzc109XCJvdmVybGF5Q2xhc3NcIj5cblxuICAgIDxtYXQtbGlzdD5cbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtYWN0aW9uIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cbiAgICAgICAgPGlnby1hY3Rpb25iYXItaXRlbVxuICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICBbd2l0aFRpdGxlXT1cIndpdGhUaXRsZVwiXG4gICAgICAgICAgW3dpdGhJY29uXT1cIndpdGhJY29uXCJcbiAgICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAodHJpZ2dlcik9XCJvblRyaWdnZXJBY3Rpb24oYWN0aW9uKVwiPlxuICAgICAgICA8L2lnby1hY3Rpb25iYXItaXRlbT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtbGlzdD5cbiAgPC9tYXQtbWVudT5cbjwvZGl2PlxuPG1hdC1jYXJkICpuZ0lmPVwibW9kZSA9PT0gYWN0aW9uYmFyTW9kZS5Db250ZXh0XCIgY2xhc3M9XCJjb250ZXh0LW1lbnUtY2FyZCBtYXQtZWxldmF0aW9uLXo0XCI+XG4gIDxtYXQtbGlzdD5cbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtYWN0aW9uIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cbiAgICAgICAgICA8aWdvLWFjdGlvbmJhci1pdGVtXG4gICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICBbd2l0aFRpdGxlXT1cIndpdGhUaXRsZVwiXG4gICAgICAgICAgICBbd2l0aEljb25dPVwid2l0aEljb25cIlxuICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICh0cmlnZ2VyKT1cIm9uVHJpZ2dlckFjdGlvbihhY3Rpb24pXCI+XG4gICAgICAgICAgPC9pZ28tYWN0aW9uYmFyLWl0ZW0+XG4gICAgICAgIDxici8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICA8L21hdC1saXN0PlxuPC9tYXQtY2FyZD5cbiJdfQ==