@igo2/common 1.14.2 → 1.14.3

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 (349) hide show
  1. package/esm2020/igo2-common.mjs +4 -4
  2. package/esm2020/lib/action/action.module.mjs +26 -26
  3. package/esm2020/lib/action/actionbar/actionbar-item.component.mjs +251 -251
  4. package/esm2020/lib/action/actionbar/actionbar.component.mjs +369 -369
  5. package/esm2020/lib/action/actionbar/actionbar.module.mjs +56 -56
  6. package/esm2020/lib/action/index.mjs +2 -2
  7. package/esm2020/lib/action/shared/action.enums.mjs +6 -6
  8. package/esm2020/lib/action/shared/action.interfaces.mjs +1 -1
  9. package/esm2020/lib/action/shared/index.mjs +3 -3
  10. package/esm2020/lib/action/shared/store.mjs +7 -7
  11. package/esm2020/lib/backdrop/backdrop.component.mjs +25 -25
  12. package/esm2020/lib/backdrop/backdrop.module.mjs +24 -24
  13. package/esm2020/lib/backdrop/index.mjs +1 -1
  14. package/esm2020/lib/badge-icon/badge-icon.directive.mjs +140 -140
  15. package/esm2020/lib/badge-icon/badge-icon.module.mjs +25 -25
  16. package/esm2020/lib/badge-icon/index.mjs +1 -1
  17. package/esm2020/lib/clickout/clickout.directive.mjs +31 -31
  18. package/esm2020/lib/clickout/clickout.module.mjs +23 -23
  19. package/esm2020/lib/clickout/index.mjs +1 -1
  20. package/esm2020/lib/clone/clone.module.mjs +23 -23
  21. package/esm2020/lib/clone/clone.pipe.mjs +23 -23
  22. package/esm2020/lib/clone/index.mjs +1 -1
  23. package/esm2020/lib/collapsible/collapse.directive.mjs +54 -54
  24. package/esm2020/lib/collapsible/collapsible.component.mjs +56 -56
  25. package/esm2020/lib/collapsible/collapsible.module.mjs +26 -26
  26. package/esm2020/lib/collapsible/index.mjs +2 -2
  27. package/esm2020/lib/confirm-dialog/confirm-dialog.component.mjs +43 -43
  28. package/esm2020/lib/confirm-dialog/confirm-dialog.module.mjs +28 -28
  29. package/esm2020/lib/confirm-dialog/confirm-dialog.service.mjs +21 -21
  30. package/esm2020/lib/confirm-dialog/index.mjs +2 -2
  31. package/esm2020/lib/context-menu/context-menu.directive.mjs +102 -102
  32. package/esm2020/lib/context-menu/context-menu.module.mjs +24 -24
  33. package/esm2020/lib/context-menu/index.mjs +2 -2
  34. package/esm2020/lib/context-menu/long-press.directive.mjs +62 -62
  35. package/esm2020/lib/custom-html/custom-html.component.mjs +27 -27
  36. package/esm2020/lib/custom-html/custom-html.module.mjs +46 -46
  37. package/esm2020/lib/custom-html/custom-html.pipe.mjs +17 -17
  38. package/esm2020/lib/custom-html/index.mjs +2 -2
  39. package/esm2020/lib/dom/dom.interfaces.mjs +1 -1
  40. package/esm2020/lib/dom/dom.module.mjs +22 -22
  41. package/esm2020/lib/dom/dom.service.mjs +29 -29
  42. package/esm2020/lib/dom/index.mjs +2 -2
  43. package/esm2020/lib/drag-drop/drag-drop.directive.mjs +87 -87
  44. package/esm2020/lib/drag-drop/drag-drop.module.mjs +23 -23
  45. package/esm2020/lib/drag-drop/index.mjs +1 -1
  46. package/esm2020/lib/dynamic-component/dynamic-component.module.mjs +30 -30
  47. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +121 -121
  48. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +27 -27
  49. package/esm2020/lib/dynamic-component/index.mjs +2 -2
  50. package/esm2020/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +1 -1
  51. package/esm2020/lib/dynamic-component/shared/dynamic-component.mjs +173 -173
  52. package/esm2020/lib/dynamic-component/shared/dynamic-component.service.mjs +28 -28
  53. package/esm2020/lib/dynamic-component/shared/index.mjs +3 -3
  54. package/esm2020/lib/entity/entity-selector/entity-selector.component.mjs +193 -193
  55. package/esm2020/lib/entity/entity-selector/entity-selector.module.mjs +31 -31
  56. package/esm2020/lib/entity/entity-table/entity-table-row.directive.mjs +136 -136
  57. package/esm2020/lib/entity/entity-table/entity-table.component.mjs +1367 -1367
  58. package/esm2020/lib/entity/entity-table/entity-table.module.mjs +101 -101
  59. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +131 -131
  60. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +1 -1
  61. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +27 -27
  62. package/esm2020/lib/entity/entity.module.mjs +30 -30
  63. package/esm2020/lib/entity/index.mjs +5 -5
  64. package/esm2020/lib/entity/shared/entity.enums.mjs +27 -27
  65. package/esm2020/lib/entity/shared/entity.interfaces.mjs +1 -1
  66. package/esm2020/lib/entity/shared/entity.utils.mjs +66 -66
  67. package/esm2020/lib/entity/shared/index.mjs +9 -9
  68. package/esm2020/lib/entity/shared/state.mjs +190 -190
  69. package/esm2020/lib/entity/shared/store.mjs +287 -287
  70. package/esm2020/lib/entity/shared/strategies/filter-custom-function.mjs +78 -78
  71. package/esm2020/lib/entity/shared/strategies/filter-selection.mjs +83 -83
  72. package/esm2020/lib/entity/shared/strategies/index.mjs +3 -3
  73. package/esm2020/lib/entity/shared/strategies/strategy.mjs +74 -74
  74. package/esm2020/lib/entity/shared/transaction.mjs +315 -315
  75. package/esm2020/lib/entity/shared/view.mjs +314 -314
  76. package/esm2020/lib/entity/shared/watcher.mjs +119 -119
  77. package/esm2020/lib/flexible/flexible.component.mjs +147 -147
  78. package/esm2020/lib/flexible/flexible.module.mjs +23 -23
  79. package/esm2020/lib/flexible/flexible.type.mjs +1 -1
  80. package/esm2020/lib/flexible/index.mjs +2 -2
  81. package/esm2020/lib/form/form/form.component.mjs +116 -116
  82. package/esm2020/lib/form/form/form.module.mjs +39 -39
  83. package/esm2020/lib/form/form-field/form-field-select.component.mjs +126 -126
  84. package/esm2020/lib/form/form-field/form-field-text.component.mjs +103 -103
  85. package/esm2020/lib/form/form-field/form-field-textarea.component.mjs +104 -104
  86. package/esm2020/lib/form/form-field/form-field.component.mjs +71 -71
  87. package/esm2020/lib/form/form-field/form-field.module.mjs +73 -73
  88. package/esm2020/lib/form/form-field/index.mjs +4 -4
  89. package/esm2020/lib/form/form-group/form-group.component.mjs +104 -104
  90. package/esm2020/lib/form/form-group/form-group.module.mjs +39 -39
  91. package/esm2020/lib/form/form.module.mjs +48 -48
  92. package/esm2020/lib/form/index.mjs +4 -4
  93. package/esm2020/lib/form/shared/form-field-component.mjs +6 -6
  94. package/esm2020/lib/form/shared/form-field.service.mjs +28 -28
  95. package/esm2020/lib/form/shared/form.interfaces.mjs +1 -1
  96. package/esm2020/lib/form/shared/form.service.mjs +80 -80
  97. package/esm2020/lib/form/shared/form.utils.mjs +39 -39
  98. package/esm2020/lib/form/shared/index.mjs +5 -5
  99. package/esm2020/lib/home-button/home-button.component.mjs +30 -30
  100. package/esm2020/lib/home-button/home-button.module.mjs +40 -40
  101. package/esm2020/lib/home-button/index.mjs +1 -1
  102. package/esm2020/lib/image/image-error.directive.mjs +34 -34
  103. package/esm2020/lib/image/image.module.mjs +24 -24
  104. package/esm2020/lib/image/index.mjs +2 -2
  105. package/esm2020/lib/image/secure-image.pipe.mjs +58 -58
  106. package/esm2020/lib/interactive-tour/index.mjs +4 -4
  107. package/esm2020/lib/interactive-tour/interactive-tour.component.mjs +134 -134
  108. package/esm2020/lib/interactive-tour/interactive-tour.interface.mjs +1 -1
  109. package/esm2020/lib/interactive-tour/interactive-tour.loader.mjs +43 -43
  110. package/esm2020/lib/interactive-tour/interactive-tour.module.mjs +39 -39
  111. package/esm2020/lib/interactive-tour/interactive-tour.service.mjs +284 -284
  112. package/esm2020/lib/json-dialog/index.mjs +2 -2
  113. package/esm2020/lib/json-dialog/json-dialog.component.mjs +108 -108
  114. package/esm2020/lib/json-dialog/json-dialog.module.mjs +28 -28
  115. package/esm2020/lib/json-dialog/json-dialog.service.mjs +23 -23
  116. package/esm2020/lib/keyvalue/index.mjs +1 -1
  117. package/esm2020/lib/keyvalue/keyvalue.module.mjs +23 -23
  118. package/esm2020/lib/keyvalue/keyvalue.pipe.mjs +17 -17
  119. package/esm2020/lib/list/index.mjs +2 -2
  120. package/esm2020/lib/list/list-item.directive.mjs +164 -164
  121. package/esm2020/lib/list/list.component.mjs +261 -261
  122. package/esm2020/lib/list/list.module.mjs +28 -28
  123. package/esm2020/lib/panel/index.mjs +1 -1
  124. package/esm2020/lib/panel/panel.component.mjs +58 -58
  125. package/esm2020/lib/panel/panel.module.mjs +18 -18
  126. package/esm2020/lib/sidenav/index.mjs +1 -1
  127. package/esm2020/lib/sidenav/sidenav-shim.directive.mjs +54 -54
  128. package/esm2020/lib/sidenav/sidenav.module.mjs +23 -23
  129. package/esm2020/lib/spinner/index.mjs +2 -2
  130. package/esm2020/lib/spinner/spinner-activity.directive.mjs +46 -46
  131. package/esm2020/lib/spinner/spinner.component.mjs +34 -34
  132. package/esm2020/lib/spinner/spinner.module.mjs +20 -20
  133. package/esm2020/lib/stop-propagation/index.mjs +2 -2
  134. package/esm2020/lib/stop-propagation/stop-drop-propagation.directive.mjs +21 -21
  135. package/esm2020/lib/stop-propagation/stop-propagation.directive.mjs +20 -20
  136. package/esm2020/lib/stop-propagation/stop-propagation.module.mjs +24 -24
  137. package/esm2020/lib/table/index.mjs +5 -5
  138. package/esm2020/lib/table/table-action-color.enum.mjs +6 -6
  139. package/esm2020/lib/table/table-database.mjs +27 -27
  140. package/esm2020/lib/table/table-datasource.mjs +60 -60
  141. package/esm2020/lib/table/table-model.interface.mjs +1 -1
  142. package/esm2020/lib/table/table.component.mjs +296 -296
  143. package/esm2020/lib/table/table.module.mjs +66 -66
  144. package/esm2020/lib/tool/index.mjs +2 -2
  145. package/esm2020/lib/tool/shared/index.mjs +5 -5
  146. package/esm2020/lib/tool/shared/tool-component.mjs +8 -8
  147. package/esm2020/lib/tool/shared/tool.interface.mjs +1 -1
  148. package/esm2020/lib/tool/shared/tool.service.mjs +42 -42
  149. package/esm2020/lib/tool/shared/toolbox.enums.mjs +6 -6
  150. package/esm2020/lib/tool/shared/toolbox.mjs +178 -178
  151. package/esm2020/lib/tool/tool.module.mjs +31 -31
  152. package/esm2020/lib/tool/toolbox/toolbox.animation.mjs +9 -9
  153. package/esm2020/lib/tool/toolbox/toolbox.component.mjs +254 -254
  154. package/esm2020/lib/tool/toolbox/toolbox.module.mjs +35 -35
  155. package/esm2020/lib/widget/index.mjs +2 -2
  156. package/esm2020/lib/widget/shared/index.mjs +3 -3
  157. package/esm2020/lib/widget/shared/widget.interfaces.mjs +1 -1
  158. package/esm2020/lib/widget/shared/widget.mjs +3 -3
  159. package/esm2020/lib/widget/shared/widget.service.mjs +19 -19
  160. package/esm2020/lib/widget/widget-outlet/widget-outlet.component.mjs +115 -115
  161. package/esm2020/lib/widget/widget-outlet/widget-outlet.module.mjs +31 -31
  162. package/esm2020/lib/widget/widget.module.mjs +31 -31
  163. package/esm2020/lib/workspace/index.mjs +3 -3
  164. package/esm2020/lib/workspace/shared/index.mjs +3 -3
  165. package/esm2020/lib/workspace/shared/store.mjs +39 -39
  166. package/esm2020/lib/workspace/shared/workspace.interfaces.mjs +1 -1
  167. package/esm2020/lib/workspace/shared/workspace.mjs +116 -116
  168. package/esm2020/lib/workspace/workspace-selector/workspace-selector.component.mjs +50 -50
  169. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +31 -31
  170. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +87 -87
  171. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +31 -31
  172. package/esm2020/lib/workspace/workspace.module.mjs +26 -26
  173. package/esm2020/public_api.mjs +73 -73
  174. package/fesm2015/igo2-common.mjs +10003 -10003
  175. package/fesm2020/igo2-common.mjs +9306 -9306
  176. package/index.d.ts +5 -5
  177. package/lib/action/action.module.d.ts +8 -8
  178. package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
  179. package/lib/action/actionbar/actionbar.component.d.ts +146 -146
  180. package/lib/action/actionbar/actionbar.module.d.ts +20 -20
  181. package/lib/action/index.d.ts +2 -2
  182. package/lib/action/shared/action.enums.d.ts +5 -5
  183. package/lib/action/shared/action.interfaces.d.ts +17 -17
  184. package/lib/action/shared/index.d.ts +3 -3
  185. package/lib/action/shared/store.d.ts +8 -8
  186. package/lib/backdrop/backdrop.component.d.ts +9 -9
  187. package/lib/backdrop/backdrop.module.d.ts +10 -10
  188. package/lib/backdrop/index.d.ts +1 -1
  189. package/lib/badge-icon/badge-icon.directive.d.ts +36 -36
  190. package/lib/badge-icon/badge-icon.module.d.ts +11 -11
  191. package/lib/badge-icon/index.d.ts +1 -1
  192. package/lib/clickout/clickout.directive.d.ts +10 -10
  193. package/lib/clickout/clickout.module.d.ts +9 -9
  194. package/lib/clickout/index.d.ts +1 -1
  195. package/lib/clone/clone.module.d.ts +9 -9
  196. package/lib/clone/clone.pipe.d.ts +7 -7
  197. package/lib/clone/index.d.ts +1 -1
  198. package/lib/collapsible/collapse.directive.d.ts +19 -19
  199. package/lib/collapsible/collapsible.component.d.ts +13 -13
  200. package/lib/collapsible/collapsible.module.d.ts +12 -12
  201. package/lib/collapsible/index.d.ts +2 -2
  202. package/lib/confirm-dialog/confirm-dialog.component.d.ts +9 -9
  203. package/lib/confirm-dialog/confirm-dialog.module.d.ts +12 -12
  204. package/lib/confirm-dialog/confirm-dialog.service.d.ts +10 -10
  205. package/lib/confirm-dialog/index.d.ts +2 -2
  206. package/lib/context-menu/context-menu.directive.d.ts +21 -21
  207. package/lib/context-menu/context-menu.module.d.ts +10 -10
  208. package/lib/context-menu/index.d.ts +2 -2
  209. package/lib/context-menu/long-press.directive.d.ts +20 -20
  210. package/lib/custom-html/custom-html.component.d.ts +9 -9
  211. package/lib/custom-html/custom-html.module.d.ts +16 -16
  212. package/lib/custom-html/custom-html.pipe.d.ts +10 -10
  213. package/lib/custom-html/index.d.ts +2 -2
  214. package/lib/dom/dom.interfaces.d.ts +10 -10
  215. package/lib/dom/dom.module.d.ts +8 -8
  216. package/lib/dom/dom.service.d.ts +10 -10
  217. package/lib/dom/index.d.ts +2 -2
  218. package/lib/drag-drop/drag-drop.directive.d.ts +14 -14
  219. package/lib/drag-drop/drag-drop.module.d.ts +9 -9
  220. package/lib/drag-drop/index.d.ts +1 -1
  221. package/lib/dynamic-component/dynamic-component.module.d.ts +8 -8
  222. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -70
  223. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +11 -11
  224. package/lib/dynamic-component/index.d.ts +2 -2
  225. package/lib/dynamic-component/shared/dynamic-component.d.ts +88 -88
  226. package/lib/dynamic-component/shared/dynamic-component.interfaces.d.ts +3 -3
  227. package/lib/dynamic-component/shared/dynamic-component.service.d.ts +18 -18
  228. package/lib/dynamic-component/shared/index.d.ts +3 -3
  229. package/lib/entity/entity-selector/entity-selector.component.d.ts +92 -92
  230. package/lib/entity/entity-selector/entity-selector.module.d.ts +13 -13
  231. package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
  232. package/lib/entity/entity-table/entity-table.component.d.ts +327 -327
  233. package/lib/entity/entity-table/entity-table.module.d.ts +29 -29
  234. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +49 -49
  235. package/lib/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +8 -8
  236. package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +11 -11
  237. package/lib/entity/entity.module.d.ts +10 -10
  238. package/lib/entity/index.d.ts +5 -5
  239. package/lib/entity/shared/entity.enums.d.ts +23 -23
  240. package/lib/entity/shared/entity.interfaces.d.ts +114 -114
  241. package/lib/entity/shared/entity.utils.d.ts +49 -49
  242. package/lib/entity/shared/index.d.ts +9 -9
  243. package/lib/entity/shared/state.d.ts +103 -103
  244. package/lib/entity/shared/store.d.ts +176 -176
  245. package/lib/entity/shared/strategies/filter-custom-function.d.ts +51 -51
  246. package/lib/entity/shared/strategies/filter-selection.d.ts +48 -48
  247. package/lib/entity/shared/strategies/index.d.ts +3 -3
  248. package/lib/entity/shared/strategies/strategy.d.ts +56 -56
  249. package/lib/entity/shared/transaction.d.ts +168 -168
  250. package/lib/entity/shared/view.d.ts +193 -193
  251. package/lib/entity/shared/watcher.d.ts +72 -72
  252. package/lib/flexible/flexible.component.d.ts +41 -41
  253. package/lib/flexible/flexible.module.d.ts +9 -9
  254. package/lib/flexible/flexible.type.d.ts +2 -2
  255. package/lib/flexible/index.d.ts +2 -2
  256. package/lib/form/form/form.component.d.ts +53 -53
  257. package/lib/form/form/form.module.d.ts +12 -12
  258. package/lib/form/form-field/form-field-select.component.d.ts +48 -48
  259. package/lib/form/form-field/form-field-text.component.d.ts +41 -41
  260. package/lib/form/form-field/form-field-textarea.component.d.ts +41 -41
  261. package/lib/form/form-field/form-field.component.d.ts +34 -34
  262. package/lib/form/form-field/form-field.module.d.ts +21 -21
  263. package/lib/form/form-field/index.d.ts +4 -4
  264. package/lib/form/form-group/form-group.component.d.ts +49 -49
  265. package/lib/form/form-group/form-group.module.d.ts +14 -14
  266. package/lib/form/form.module.d.ts +13 -13
  267. package/lib/form/index.d.ts +4 -4
  268. package/lib/form/shared/form-field-component.d.ts +1 -1
  269. package/lib/form/shared/form-field.service.d.ts +19 -19
  270. package/lib/form/shared/form.interfaces.d.ts +57 -57
  271. package/lib/form/shared/form.service.d.ts +15 -15
  272. package/lib/form/shared/form.utils.d.ts +11 -11
  273. package/lib/form/shared/index.d.ts +5 -5
  274. package/lib/home-button/home-button.component.d.ts +9 -9
  275. package/lib/home-button/home-button.module.d.ts +15 -15
  276. package/lib/home-button/index.d.ts +1 -1
  277. package/lib/image/image-error.directive.d.ts +11 -11
  278. package/lib/image/image.module.d.ts +10 -10
  279. package/lib/image/index.d.ts +2 -2
  280. package/lib/image/secure-image.pipe.d.ts +13 -13
  281. package/lib/interactive-tour/index.d.ts +4 -4
  282. package/lib/interactive-tour/interactive-tour.component.d.ts +30 -30
  283. package/lib/interactive-tour/interactive-tour.interface.d.ts +32 -32
  284. package/lib/interactive-tour/interactive-tour.loader.d.ts +18 -18
  285. package/lib/interactive-tour/interactive-tour.module.d.ts +12 -12
  286. package/lib/interactive-tour/interactive-tour.service.d.ts +29 -29
  287. package/lib/json-dialog/index.d.ts +2 -2
  288. package/lib/json-dialog/json-dialog.component.d.ts +13 -13
  289. package/lib/json-dialog/json-dialog.module.d.ts +13 -13
  290. package/lib/json-dialog/json-dialog.service.d.ts +10 -10
  291. package/lib/keyvalue/index.d.ts +1 -1
  292. package/lib/keyvalue/keyvalue.module.d.ts +9 -9
  293. package/lib/keyvalue/keyvalue.pipe.d.ts +7 -7
  294. package/lib/list/index.d.ts +2 -2
  295. package/lib/list/list-item.directive.d.ts +43 -43
  296. package/lib/list/list.component.d.ts +51 -51
  297. package/lib/list/list.module.d.ts +14 -14
  298. package/lib/panel/index.d.ts +1 -1
  299. package/lib/panel/panel.component.d.ts +10 -10
  300. package/lib/panel/panel.module.d.ts +8 -8
  301. package/lib/sidenav/index.d.ts +1 -1
  302. package/lib/sidenav/sidenav-shim.directive.d.ts +20 -20
  303. package/lib/sidenav/sidenav.module.d.ts +9 -9
  304. package/lib/spinner/index.d.ts +2 -2
  305. package/lib/spinner/spinner-activity.directive.d.ts +32 -32
  306. package/lib/spinner/spinner.component.d.ts +12 -12
  307. package/lib/spinner/spinner.module.d.ts +10 -10
  308. package/lib/stop-propagation/index.d.ts +2 -2
  309. package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +6 -6
  310. package/lib/stop-propagation/stop-propagation.directive.d.ts +6 -6
  311. package/lib/stop-propagation/stop-propagation.module.d.ts +10 -10
  312. package/lib/table/index.d.ts +5 -5
  313. package/lib/table/table-action-color.enum.d.ts +5 -5
  314. package/lib/table/table-database.d.ts +10 -10
  315. package/lib/table/table-datasource.d.ts +17 -17
  316. package/lib/table/table-model.interface.d.ts +28 -28
  317. package/lib/table/table.component.d.ts +40 -40
  318. package/lib/table/table.module.d.ts +20 -20
  319. package/lib/tool/index.d.ts +2 -2
  320. package/lib/tool/shared/index.d.ts +5 -5
  321. package/lib/tool/shared/tool-component.d.ts +2 -2
  322. package/lib/tool/shared/tool.interface.d.ts +18 -18
  323. package/lib/tool/shared/tool.service.d.ts +30 -30
  324. package/lib/tool/shared/toolbox.d.ts +95 -95
  325. package/lib/tool/shared/toolbox.enums.d.ts +5 -5
  326. package/lib/tool/tool.module.d.ts +10 -10
  327. package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
  328. package/lib/tool/toolbox/toolbox.component.d.ts +127 -127
  329. package/lib/tool/toolbox/toolbox.module.d.ts +13 -13
  330. package/lib/widget/index.d.ts +2 -2
  331. package/lib/widget/shared/index.d.ts +3 -3
  332. package/lib/widget/shared/widget.d.ts +4 -4
  333. package/lib/widget/shared/widget.interfaces.d.ts +12 -12
  334. package/lib/widget/shared/widget.service.d.ts +10 -10
  335. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +71 -71
  336. package/lib/widget/widget-outlet/widget-outlet.module.d.ts +12 -12
  337. package/lib/widget/widget.module.d.ts +8 -8
  338. package/lib/workspace/index.d.ts +3 -3
  339. package/lib/workspace/shared/index.d.ts +3 -3
  340. package/lib/workspace/shared/store.d.ts +20 -20
  341. package/lib/workspace/shared/workspace.d.ts +108 -108
  342. package/lib/workspace/shared/workspace.interfaces.d.ts +11 -11
  343. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +39 -39
  344. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +12 -12
  345. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -57
  346. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +12 -12
  347. package/lib/workspace/workspace.module.d.ts +9 -9
  348. package/package.json +3 -3
  349. package/public_api.d.ts +70 -70
@@ -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:-webkit-sticky;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:-webkit-sticky;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:-webkit-sticky;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:-webkit-sticky;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
- }] }); })();
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:-webkit-sticky;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:-webkit-sticky;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:-webkit-sticky;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:-webkit-sticky;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
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==