@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,297 +1,297 @@
1
- import { Component, ViewChild, Input, Output, EventEmitter } from '@angular/core';
2
- import { MatSort } from '@angular/material/sort';
3
- import { SelectionModel } from '@angular/cdk/collections';
4
- import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
- import { fromEvent } from 'rxjs';
6
- import { ObjectUtils } from '@igo2/utils';
7
- import { TableDataSource } from './table-datasource';
8
- import { TableActionColor } from './table-action-color.enum';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- import * as i2 from "@angular/material/icon";
12
- import * as i3 from "@angular/material/button";
13
- import * as i4 from "@angular/material/table";
14
- import * as i5 from "@angular/material/form-field";
15
- import * as i6 from "@angular/material/input";
16
- import * as i7 from "@angular/material/sort";
17
- import * as i8 from "@angular/material/checkbox";
18
- import * as i9 from "@ngx-translate/core";
19
- const _c0 = ["filter"];
20
- function TableComponent_div_1_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "div", 12)(1, "mat-form-field", 13);
22
- i0.ɵɵelement(2, "input", 14, 15);
23
- i0.ɵɵpipe(4, "translate");
24
- i0.ɵɵelementEnd()();
25
- } if (rf & 2) {
26
- i0.ɵɵadvance(2);
27
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(4, 1, "igo.common.table.filter"));
28
- } }
29
- function TableComponent_th_6_Template(rf, ctx) { if (rf & 1) {
30
- const _r11 = i0.ɵɵgetCurrentView();
31
- i0.ɵɵelementStart(0, "th", 16)(1, "mat-checkbox", 17);
32
- i0.ɵɵlistener("change", function TableComponent_th_6_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView($event ? ctx_r10.masterToggle() : null); });
33
- i0.ɵɵelementEnd()();
34
- } if (rf & 2) {
35
- const ctx_r2 = i0.ɵɵnextContext();
36
- i0.ɵɵadvance(1);
37
- i0.ɵɵproperty("checked", ctx_r2.selection.hasValue() && ctx_r2.isAllSelected())("indeterminate", ctx_r2.selection.hasValue() && !ctx_r2.isAllSelected());
38
- } }
39
- function TableComponent_td_7_Template(rf, ctx) { if (rf & 1) {
40
- const _r15 = i0.ɵɵgetCurrentView();
41
- i0.ɵɵelementStart(0, "td", 18)(1, "mat-checkbox", 19);
42
- i0.ɵɵlistener("click", function TableComponent_td_7_Template_mat_checkbox_click_1_listener($event) { return $event.stopPropagation(); })("change", function TableComponent_td_7_Template_mat_checkbox_change_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r15); const row_r12 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView($event ? ctx_r14.selection.toggle(row_r12) : null); });
43
- i0.ɵɵelementEnd()();
44
- } if (rf & 2) {
45
- const row_r12 = ctx.$implicit;
46
- const ctx_r3 = i0.ɵɵnextContext();
47
- i0.ɵɵadvance(1);
48
- i0.ɵɵproperty("checked", ctx_r3.selection.isSelected(row_r12));
49
- } }
50
- function TableComponent_ng_container_8_ng_container_1_th_1_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵelementStart(0, "th", 25);
52
- i0.ɵɵtext(1);
53
- i0.ɵɵelementEnd();
54
- } if (rf & 2) {
55
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
56
- i0.ɵɵadvance(1);
57
- i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
58
- } }
59
- function TableComponent_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {
60
- i0.ɵɵelementContainerStart(0);
61
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_th_1_Template, 2, 1, "th", 24);
62
- i0.ɵɵelementContainerEnd();
63
- } }
64
- function TableComponent_ng_container_8_ng_container_2_th_1_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelementStart(0, "th", 16);
66
- i0.ɵɵtext(1);
67
- i0.ɵɵelementEnd();
68
- } if (rf & 2) {
69
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
70
- i0.ɵɵadvance(1);
71
- i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
72
- } }
73
- function TableComponent_ng_container_8_ng_container_2_Template(rf, ctx) { if (rf & 1) {
74
- i0.ɵɵelementContainerStart(0);
75
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_2_th_1_Template, 2, 1, "th", 6);
76
- i0.ɵɵelementContainerEnd();
77
- } }
78
- const _c1 = function () { return {}; };
79
- function TableComponent_ng_container_8_ng_container_3_td_1_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵelementStart(0, "td", 27);
81
- i0.ɵɵtext(1);
82
- i0.ɵɵelementEnd();
83
- } if (rf & 2) {
84
- const row_r27 = ctx.$implicit;
85
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
86
- const ctx_r26 = i0.ɵɵnextContext();
87
- i0.ɵɵproperty("ngClass", ctx_r26.model.cellClassFunc ? ctx_r26.model.cellClassFunc(row_r27, column_r16) : i0.ɵɵpureFunction0(2, _c1));
88
- i0.ɵɵadvance(1);
89
- i0.ɵɵtextInterpolate1(" ", ctx_r26.getValue(row_r27, column_r16.name), " ");
90
- } }
91
- function TableComponent_ng_container_8_ng_container_3_Template(rf, ctx) { if (rf & 1) {
92
- i0.ɵɵelementContainerStart(0);
93
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_3_td_1_Template, 2, 3, "td", 26);
94
- i0.ɵɵelementContainerEnd();
95
- } }
96
- function TableComponent_ng_container_8_ng_template_4_td_0_Template(rf, ctx) { if (rf & 1) {
97
- i0.ɵɵelement(0, "td", 29);
98
- } if (rf & 2) {
99
- const row_r30 = ctx.$implicit;
100
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
101
- const ctx_r29 = i0.ɵɵnextContext();
102
- i0.ɵɵproperty("ngClass", ctx_r29.model.cellClassFunc ? ctx_r29.model.cellClassFunc(row_r30, column_r16) : i0.ɵɵpureFunction0(2, _c1))("innerHTML", ctx_r29.getValue(row_r30, column_r16.name), i0.ɵɵsanitizeHtml);
103
- } }
104
- function TableComponent_ng_container_8_ng_template_4_Template(rf, ctx) { if (rf & 1) {
105
- i0.ɵɵtemplate(0, TableComponent_ng_container_8_ng_template_4_td_0_Template, 1, 3, "td", 28);
106
- } }
107
- function TableComponent_ng_container_8_Template(rf, ctx) { if (rf & 1) {
108
- i0.ɵɵelementContainerStart(0, 20);
109
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_Template, 2, 0, "ng-container", 21);
110
- i0.ɵɵtemplate(2, TableComponent_ng_container_8_ng_container_2_Template, 2, 0, "ng-container", 21);
111
- i0.ɵɵtemplate(3, TableComponent_ng_container_8_ng_container_3_Template, 2, 0, "ng-container", 22);
112
- i0.ɵɵtemplate(4, TableComponent_ng_container_8_ng_template_4_Template, 1, 0, "ng-template", null, 23, i0.ɵɵtemplateRefExtractor);
113
- i0.ɵɵelementContainerEnd();
114
- } if (rf & 2) {
115
- const column_r16 = ctx.$implicit;
116
- const _r20 = i0.ɵɵreference(5);
117
- i0.ɵɵproperty("matColumnDef", column_r16.name);
118
- i0.ɵɵadvance(1);
119
- i0.ɵɵproperty("ngIf", column_r16.sortable);
120
- i0.ɵɵadvance(1);
121
- i0.ɵɵproperty("ngIf", !column_r16.sortable);
122
- i0.ɵɵadvance(1);
123
- i0.ɵɵproperty("ngIf", !column_r16.html)("ngIfElse", _r20);
124
- } }
125
- function TableComponent_th_10_Template(rf, ctx) { if (rf & 1) {
126
- i0.ɵɵelement(0, "th", 16);
127
- } }
128
- function TableComponent_td_11_button_1_Template(rf, ctx) { if (rf & 1) {
129
- const _r36 = i0.ɵɵgetCurrentView();
130
- i0.ɵɵelementStart(0, "button", 31);
131
- i0.ɵɵlistener("click", function TableComponent_td_11_button_1_Template_button_click_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r36); const action_r34 = restoredCtx.$implicit; const row_r32 = i0.ɵɵnextContext().$implicit; const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.handleClickAction($event, action_r34, row_r32)); });
132
- i0.ɵɵelement(1, "mat-icon", 32);
133
- i0.ɵɵelementEnd();
134
- } if (rf & 2) {
135
- const action_r34 = ctx.$implicit;
136
- const ctx_r33 = i0.ɵɵnextContext(2);
137
- i0.ɵɵproperty("color", ctx_r33.getActionColor(action_r34.color));
138
- i0.ɵɵadvance(1);
139
- i0.ɵɵpropertyInterpolate("svgIcon", action_r34.icon);
140
- } }
141
- function TableComponent_td_11_Template(rf, ctx) { if (rf & 1) {
142
- i0.ɵɵelementStart(0, "td", 18);
143
- i0.ɵɵtemplate(1, TableComponent_td_11_button_1_Template, 2, 2, "button", 30);
144
- i0.ɵɵelementEnd();
145
- } if (rf & 2) {
146
- const ctx_r6 = i0.ɵɵnextContext();
147
- i0.ɵɵadvance(1);
148
- i0.ɵɵproperty("ngForOf", ctx_r6.model.actions);
149
- } }
150
- function TableComponent_tr_12_Template(rf, ctx) { if (rf & 1) {
151
- i0.ɵɵelement(0, "tr", 33);
152
- } }
153
- function TableComponent_tr_13_Template(rf, ctx) { if (rf & 1) {
154
- const _r40 = i0.ɵɵgetCurrentView();
155
- i0.ɵɵelementStart(0, "tr", 34);
156
- i0.ɵɵlistener("click", function TableComponent_tr_13_Template_tr_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r40); const row_r38 = restoredCtx.$implicit; const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.selection.toggle(row_r38)); });
157
- i0.ɵɵelementEnd();
158
- } if (rf & 2) {
159
- const row_r38 = ctx.$implicit;
160
- const ctx_r8 = i0.ɵɵnextContext();
161
- i0.ɵɵproperty("ngClass", ctx_r8.model.rowClassFunc ? ctx_r8.model.rowClassFunc(row_r38) : i0.ɵɵpureFunction0(1, _c1));
162
- } }
163
- export class TableComponent {
164
- constructor() {
165
- this._hasFIlterInput = true;
166
- this.selection = new SelectionModel(true, []);
167
- this.select = new EventEmitter();
168
- }
169
- get database() {
170
- return this._database;
171
- }
172
- set database(value) {
173
- this._database = value;
174
- }
175
- get model() {
176
- return this._model;
177
- }
178
- set model(value) {
179
- this._model = value;
180
- }
181
- get hasFilterInput() {
182
- return this._hasFIlterInput;
183
- }
184
- set hasFilterInput(value) {
185
- this._hasFIlterInput = value;
186
- }
187
- ngOnInit() {
188
- this.dataSource = new TableDataSource(this.database, this.model, this.sort);
189
- if (this.model) {
190
- this.displayedColumns = this.model.columns
191
- .filter(c => c.displayed !== false)
192
- .map(c => c.name);
193
- if (this.model.selectionCheckbox) {
194
- this.displayedColumns.unshift('selectionCheckbox');
195
- }
196
- if (this.model.actions && this.model.actions.length) {
197
- this.displayedColumns.push('action');
198
- }
199
- }
200
- this.selection.changed.subscribe(e => this.select.emit(e));
201
- }
202
- ngAfterViewInit() {
203
- if (this.filter) {
204
- fromEvent(this.filter.nativeElement, 'keyup')
205
- .pipe(debounceTime(150), distinctUntilChanged())
206
- .subscribe(() => {
207
- if (!this.dataSource) {
208
- return;
209
- }
210
- this.dataSource.filter = this.filter.nativeElement.value;
211
- });
212
- }
213
- }
214
- ngOnChanges(change) {
215
- if (change.database) {
216
- this.dataSource = new TableDataSource(this.database, this.model, this.sort);
217
- this.selection.clear();
218
- }
219
- }
220
- getActionColor(colorId) {
221
- return TableActionColor[colorId];
222
- }
223
- getValue(row, key) {
224
- return ObjectUtils.resolve(row, key);
225
- }
226
- /** Whether the number of selected elements matches the total number of rows. */
227
- isAllSelected() {
228
- const numSelected = this.selection.selected.length;
229
- const numRows = this.database.data.length;
230
- return numSelected === numRows;
231
- }
232
- /** Selects all rows if they are not all selected; otherwise clear selection. */
233
- masterToggle() {
234
- this.isAllSelected()
235
- ? this.selection.clear()
236
- : this.database.data.forEach(row => this.selection.select(row));
237
- }
238
- handleClickAction(event, action, row) {
239
- event.stopPropagation();
240
- action.click(row);
241
- }
242
- }
243
- TableComponent.ɵfac = function TableComponent_Factory(t) { return new (t || TableComponent)(); };
244
- TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["igo-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
245
- i0.ɵɵviewQuery(_c0, 5);
246
- i0.ɵɵviewQuery(MatSort, 7);
247
- } if (rf & 2) {
248
- let _t;
249
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
250
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
251
- } }, inputs: { database: "database", model: "model", hasFilterInput: "hasFilterInput" }, outputs: { select: "select" }, features: [i0.ɵɵNgOnChangesFeature], decls: 14, vars: 5, consts: [[1, "table-box"], ["class", "table-header", 4, "ngIf"], [1, "table-container"], ["mat-table", "", "matSort", "", 3, "dataSource"], ["table", ""], ["matColumnDef", "selectionCheckbox"], ["mat-header-cell", "", 4, "matHeaderCellDef"], ["mat-cell", "", 4, "matCellDef"], [3, "matColumnDef", 4, "ngFor", "ngForOf"], ["matColumnDef", "action"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 3, "ngClass", "click", 4, "matRowDef", "matRowDefColumns"], [1, "table-header"], ["floatPlaceholder", "never"], ["matInput", "", 3, "placeholder"], ["filter", ""], ["mat-header-cell", ""], [3, "checked", "indeterminate", "change"], ["mat-cell", ""], [3, "checked", "click", "change"], [3, "matColumnDef"], [4, "ngIf"], [4, "ngIf", "ngIfElse"], ["cellHTML", ""], ["mat-header-cell", "", "mat-sort-header", "", 4, "matHeaderCellDef"], ["mat-header-cell", "", "mat-sort-header", ""], ["mat-cell", "", "class", "mat-cell-text", 3, "ngClass", 4, "matCellDef"], ["mat-cell", "", 1, "mat-cell-text", 3, "ngClass"], ["mat-cell", "", "class", "mat-cell-text", 3, "ngClass", "innerHTML", 4, "matCellDef"], ["mat-cell", "", 1, "mat-cell-text", 3, "ngClass", "innerHTML"], ["mat-mini-fab", "", 3, "color", "click", 4, "ngFor", "ngForOf"], ["mat-mini-fab", "", 3, "color", "click"], [3, "svgIcon"], ["mat-header-row", ""], ["mat-row", "", 3, "ngClass", "click"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
252
- i0.ɵɵelementStart(0, "div", 0);
253
- i0.ɵɵtemplate(1, TableComponent_div_1_Template, 5, 3, "div", 1);
254
- i0.ɵɵelementStart(2, "div", 2)(3, "table", 3, 4);
255
- i0.ɵɵelementContainerStart(5, 5);
256
- i0.ɵɵtemplate(6, TableComponent_th_6_Template, 2, 2, "th", 6);
257
- i0.ɵɵtemplate(7, TableComponent_td_7_Template, 2, 1, "td", 7);
258
- i0.ɵɵelementContainerEnd();
259
- i0.ɵɵtemplate(8, TableComponent_ng_container_8_Template, 6, 5, "ng-container", 8);
260
- i0.ɵɵelementContainerStart(9, 9);
261
- i0.ɵɵtemplate(10, TableComponent_th_10_Template, 1, 0, "th", 6);
262
- i0.ɵɵtemplate(11, TableComponent_td_11_Template, 2, 1, "td", 7);
263
- i0.ɵɵelementContainerEnd();
264
- i0.ɵɵtemplate(12, TableComponent_tr_12_Template, 1, 0, "tr", 10);
265
- i0.ɵɵtemplate(13, TableComponent_tr_13_Template, 1, 2, "tr", 11);
266
- i0.ɵɵelementEnd()()();
267
- } if (rf & 2) {
268
- i0.ɵɵadvance(1);
269
- i0.ɵɵproperty("ngIf", ctx.hasFilterInput);
270
- i0.ɵɵadvance(2);
271
- i0.ɵɵproperty("dataSource", ctx.dataSource);
272
- i0.ɵɵadvance(5);
273
- i0.ɵɵproperty("ngForOf", ctx.model.columns);
274
- i0.ɵɵadvance(4);
275
- i0.ɵɵproperty("matHeaderRowDef", ctx.displayedColumns);
276
- i0.ɵɵadvance(1);
277
- i0.ɵɵproperty("matRowDefColumns", ctx.displayedColumns);
278
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTable, i4.MatHeaderCellDef, i4.MatHeaderRowDef, i4.MatColumnDef, i4.MatCellDef, i4.MatRowDef, i4.MatHeaderCell, i4.MatCell, i4.MatHeaderRow, i4.MatRow, i5.MatFormField, i6.MatInput, i7.MatSort, i7.MatSortHeader, i8.MatCheckbox, i9.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%;height:100%;display:block}.table-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:auto;flex:1 1 auto}.table-box[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column}.table-header[_ngcontent-%COMP%]{min-height:64px;max-width:500px;display:flex;flex:0 1 auto;align-items:baseline;padding:8px 24px 0;font-size:20px;justify-content:space-between}tr[mat-header-row][_ngcontent-%COMP%], tr[mat-row][_ngcontent-%COMP%]{height:60px}.mat-cell-text[_ngcontent-%COMP%]{overflow:hidden;word-wrap:break-word}td[mat-cell][_ngcontent-%COMP%]{padding-right:15px}th.mat-header-cell[_ngcontent-%COMP%]{padding-right:5px}button[_ngcontent-%COMP%]{margin-right:10px}"] });
279
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
280
- type: Component,
281
- args: [{ selector: 'igo-table', template: "<div class='table-box'>\r\n <div class='table-header' *ngIf=\"hasFilterInput\">\r\n <mat-form-field floatPlaceholder='never'>\r\n <input matInput #filter [placeholder]=\"'igo.common.table.filter' | translate\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class='table-container'>\r\n <table mat-table #table [dataSource]='dataSource' matSort>\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"selectionCheckbox\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container [matColumnDef]='column.name' *ngFor='let column of model.columns'>\r\n <ng-container *ngIf='column.sortable'>\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{column.title}} </th>\r\n </ng-container>\r\n\r\n <ng-container *ngIf='!column.sortable'>\r\n <th mat-header-cell *matHeaderCellDef> {{column.title}} </th>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!column.html; else cellHTML\">\r\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\r\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\">\r\n {{getValue(row, column.name)}}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-template #cellHTML>\r\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\r\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\"\r\n [innerHTML]=\"getValue(row, column.name)\">\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Action Column -->\r\n <ng-container matColumnDef='action'>\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef='let row'>\r\n <button *ngFor='let action of model.actions'\r\n mat-mini-fab\r\n [color]='getActionColor(action.color)'\r\n (click)='handleClickAction($event, action, row)'>\r\n <mat-icon svgIcon=\"{{action.icon}}\"></mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef='displayedColumns;'></tr>\r\n <tr mat-row\r\n *matRowDef='let row; columns: displayedColumns;'\r\n [ngClass]=\"model.rowClassFunc ? model.rowClassFunc(row) : {}\"\r\n (click)=\"selection.toggle(row)\">\r\n </tr>\r\n\r\n </table>\r\n </div>\r\n\r\n</div>\r\n", styles: [":host{width:100%;height:100%;display:block}.table-container{display:flex;flex-direction:column;height:100%;overflow:auto;flex:1 1 auto}.table-box{height:100%;display:flex;flex-direction:column}.table-header{min-height:64px;max-width:500px;display:flex;flex:0 1 auto;align-items:baseline;padding:8px 24px 0;font-size:20px;justify-content:space-between}tr[mat-header-row],tr[mat-row]{height:60px}.mat-cell-text{overflow:hidden;word-wrap:break-word}td[mat-cell]{padding-right:15px}th.mat-header-cell{padding-right:5px}button{margin-right:10px}\n"] }]
282
- }], null, { database: [{
283
- type: Input
284
- }], model: [{
285
- type: Input
286
- }], hasFilterInput: [{
287
- type: Input
288
- }], select: [{
289
- type: Output
290
- }], filter: [{
291
- type: ViewChild,
292
- args: ['filter']
293
- }], sort: [{
294
- type: ViewChild,
295
- args: [MatSort, { static: true }]
296
- }] }); })();
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFJTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3JCM0QsK0JBQWlELHlCQUFBO0lBRTdDLGdDQUE4RTs7SUFDaEYsaUJBQWlCLEVBQUE7O0lBRFMsZUFBcUQ7SUFBckQsNkVBQXFEOzs7O0lBUzNFLDhCQUFzQyx1QkFBQTtJQUN0QiwwS0FBVSx3QkFBUyxzQkFBYyxHQUFHLElBQUksQ0FBQSxJQUFDO0lBR3ZELGlCQUFlLEVBQUE7OztJQUZELGVBQW1EO0lBQW5ELCtFQUFtRCx5RUFBQTs7OztJQUluRSw4QkFBbUMsdUJBQUE7SUFDbkIsNEdBQVMsd0JBQXdCLElBQUMsd05BQ3hCLHdCQUFTLGlDQUFxQixHQUFHLElBQUksQ0FB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N0QsZ0VBSUs7UUFFUCxpQkFBUSxFQUFBLEVBQUE7O1FBckVpQixlQUFvQjtRQUFwQix5Q0FBb0I7UUFPckIsZUFBeUI7UUFBekIsMkNBQXlCO1FBa0JlLGVBQWdCO1FBQWhCLDJDQUFnQjtRQXFDMUQsZUFBa0M7UUFBbEMsc0RBQWtDO1FBRS9CLGVBQTBCO1FBQTFCLHVEQUEwQjs7dUZEcEMxQyxjQUFjO2NBTDFCLFNBQVM7MkJBQ0UsV0FBVztnQkFNakIsUUFBUTtrQkFEWCxLQUFLO1lBVUYsS0FBSztrQkFEUixLQUFLO1lBVUYsY0FBYztrQkFEakIsS0FBSztZQWNOLE1BQU07a0JBREwsTUFBTTtZQU9jLE1BQU07a0JBQTFCLFNBQVM7bUJBQUMsUUFBUTtZQUNtQixJQUFJO2tCQUF6QyxTQUFTO21CQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEV2ZW50RW1pdHRlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuXHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi90YWJsZS1tb2RlbC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUYWJsZURhdGFiYXNlIH0gZnJvbSAnLi90YWJsZS1kYXRhYmFzZSc7XHJcbmltcG9ydCB7IFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vdGFibGUtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFRhYmxlQWN0aW9uQ29sb3IgfSBmcm9tICcuL3RhYmxlLWFjdGlvbi1jb2xvci5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRhdGFiYXNlKCk6IFRhYmxlRGF0YWJhc2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFiYXNlO1xyXG4gIH1cclxuICBzZXQgZGF0YWJhc2UodmFsdWU6IFRhYmxlRGF0YWJhc2UpIHtcclxuICAgIHRoaXMuX2RhdGFiYXNlID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RhdGFiYXNlOiBUYWJsZURhdGFiYXNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBtb2RlbCgpOiBUYWJsZU1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcclxuICB9XHJcbiAgc2V0IG1vZGVsKHZhbHVlOiBUYWJsZU1vZGVsKSB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIF9tb2RlbDogVGFibGVNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgaGFzRmlsdGVySW5wdXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faGFzRklsdGVySW5wdXQ7XHJcbiAgfVxyXG4gIHNldCBoYXNGaWx0ZXJJbnB1dCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faGFzRklsdGVySW5wdXQgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaGFzRklsdGVySW5wdXQgPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgZGlzcGxheWVkQ29sdW1ucztcclxuICBwdWJsaWMgZGF0YVNvdXJjZTogVGFibGVEYXRhU291cmNlIHwgbnVsbDtcclxuICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPGFueT4odHJ1ZSwgW10pO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGFkZGVkOiBhbnlbXTtcclxuICAgIHJlbW92ZWQ6IGFueVtdO1xyXG4gICAgc291cmNlOiBTZWxlY3Rpb25Nb2RlbDxhbnk+O1xyXG4gIH0+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlcjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IFRhYmxlRGF0YVNvdXJjZSh0aGlzLmRhdGFiYXNlLCB0aGlzLm1vZGVsLCB0aGlzLnNvcnQpO1xyXG5cclxuICAgIGlmICh0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMubW9kZWwuY29sdW1uc1xyXG4gICAgICAgIC5maWx0ZXIoYyA9PiBjLmRpc3BsYXllZCAhPT0gZmFsc2UpXHJcbiAgICAgICAgLm1hcChjID0+IGMubmFtZSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5tb2RlbC5zZWxlY3Rpb25DaGVja2JveCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy51bnNoaWZ0KCdzZWxlY3Rpb25DaGVja2JveCcpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsLmFjdGlvbnMgJiYgdGhpcy5tb2RlbC5hY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdhY3Rpb24nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKGUgPT4gdGhpcy5zZWxlY3QuZW1pdChlKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXIpIHtcclxuICAgICAgZnJvbUV2ZW50KHRoaXMuZmlsdGVyLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gdGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZSkge1xyXG4gICAgaWYgKGNoYW5nZS5kYXRhYmFzZSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgVGFibGVEYXRhU291cmNlKFxyXG4gICAgICAgIHRoaXMuZGF0YWJhc2UsXHJcbiAgICAgICAgdGhpcy5tb2RlbCxcclxuICAgICAgICB0aGlzLnNvcnRcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEFjdGlvbkNvbG9yKGNvbG9ySWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gVGFibGVBY3Rpb25Db2xvcltjb2xvcklkXTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKHJvdywga2V5KSB7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMucmVzb2x2ZShyb3csIGtleSk7XHJcbiAgfVxyXG5cclxuICAvKiogV2hldGhlciB0aGUgbnVtYmVyIG9mIHNlbGVjdGVkIGVsZW1lbnRzIG1hdGNoZXMgdGhlIHRvdGFsIG51bWJlciBvZiByb3dzLiAqL1xyXG4gIGlzQWxsU2VsZWN0ZWQoKSB7XHJcbiAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLmRhdGFiYXNlLmRhdGEubGVuZ3RoO1xyXG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvbi4gKi9cclxuICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICB0aGlzLmlzQWxsU2VsZWN0ZWQoKVxyXG4gICAgICA/IHRoaXMuc2VsZWN0aW9uLmNsZWFyKClcclxuICAgICAgOiB0aGlzLmRhdGFiYXNlLmRhdGEuZm9yRWFjaChyb3cgPT4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdykpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2tBY3Rpb24oZXZlbnQsIGFjdGlvbiwgcm93KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGFjdGlvbi5jbGljayhyb3cpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPSd0YWJsZS1ib3gnPlxyXG4gIDxkaXYgY2xhc3M9J3RhYmxlLWhlYWRlcicgKm5nSWY9XCJoYXNGaWx0ZXJJbnB1dFwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0UGxhY2Vob2xkZXI9J25ldmVyJz5cclxuICAgICAgPGlucHV0IG1hdElucHV0ICNmaWx0ZXIgW3BsYWNlaG9sZGVyXT1cIidpZ28uY29tbW9uLnRhYmxlLmZpbHRlcicgfCB0cmFuc2xhdGVcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9J3RhYmxlLWNvbnRhaW5lcic+XHJcbiAgICA8dGFibGUgbWF0LXRhYmxlICN0YWJsZSBbZGF0YVNvdXJjZV09J2RhdGFTb3VyY2UnIG1hdFNvcnQ+XHJcblxyXG4gICAgICA8IS0tIENoZWNrYm94IENvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3Rpb25DaGVja2JveFwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbi50b2dnbGUocm93KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpXCI+XHJcbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09J2NvbHVtbi5uYW1lJyAqbmdGb3I9J2xldCBjb2x1bW4gb2YgbW9kZWwuY29sdW1ucyc+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0nY29sdW1uLnNvcnRhYmxlJz5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiB7e2NvbHVtbi50aXRsZX19IDwvdGg+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9JyFjb2x1bW4uc29ydGFibGUnPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3tjb2x1bW4udGl0bGV9fSA8L3RoPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbHVtbi5odG1sOyBlbHNlIGNlbGxIVE1MXCI+XHJcbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9J2xldCByb3cnIGNsYXNzPVwibWF0LWNlbGwtdGV4dFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1vZGVsLmNlbGxDbGFzc0Z1bmMgPyBtb2RlbC5jZWxsQ2xhc3NGdW5jKHJvdywgY29sdW1uKSA6IHt9XCI+XHJcbiAgICAgICAgICAgIHt7Z2V0VmFsdWUocm93LCBjb2x1bW4ubmFtZSl9fVxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsSFRNTD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0nbGV0IHJvdycgY2xhc3M9XCJtYXQtY2VsbC10ZXh0XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwibW9kZWwuY2VsbENsYXNzRnVuYyA/IG1vZGVsLmNlbGxDbGFzc0Z1bmMocm93LCBjb2x1bW4pIDoge31cIlxyXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldFZhbHVlKHJvdywgY29sdW1uLm5hbWUpXCI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBBY3Rpb24gQ29sdW1uIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj0nYWN0aW9uJz5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPSdsZXQgcm93Jz5cclxuICAgICAgICAgIDxidXR0b24gKm5nRm9yPSdsZXQgYWN0aW9uIG9mIG1vZGVsLmFjdGlvbnMnXHJcbiAgICAgICAgICBtYXQtbWluaS1mYWJcclxuICAgICAgICAgIFtjb2xvcl09J2dldEFjdGlvbkNvbG9yKGFjdGlvbi5jb2xvciknXHJcbiAgICAgICAgICAoY2xpY2spPSdoYW5kbGVDbGlja0FjdGlvbigkZXZlbnQsIGFjdGlvbiwgcm93KSc+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3thY3Rpb24uaWNvbn19XCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9J2Rpc3BsYXllZENvbHVtbnM7Jz48L3RyPlxyXG4gICAgICA8dHIgbWF0LXJvd1xyXG4gICAgICAgICptYXRSb3dEZWY9J2xldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7J1xyXG4gICAgICAgIFtuZ0NsYXNzXT1cIm1vZGVsLnJvd0NsYXNzRnVuYyA/IG1vZGVsLnJvd0NsYXNzRnVuYyhyb3cpIDoge31cIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3Rpb24udG9nZ2xlKHJvdylcIj5cclxuICAgICAgPC90cj5cclxuXHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
1
+ import { Component, ViewChild, Input, Output, EventEmitter } from '@angular/core';
2
+ import { MatSort } from '@angular/material/sort';
3
+ import { SelectionModel } from '@angular/cdk/collections';
4
+ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
+ import { fromEvent } from 'rxjs';
6
+ import { ObjectUtils } from '@igo2/utils';
7
+ import { TableDataSource } from './table-datasource';
8
+ import { TableActionColor } from './table-action-color.enum';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "@angular/material/icon";
12
+ import * as i3 from "@angular/material/button";
13
+ import * as i4 from "@angular/material/table";
14
+ import * as i5 from "@angular/material/form-field";
15
+ import * as i6 from "@angular/material/input";
16
+ import * as i7 from "@angular/material/sort";
17
+ import * as i8 from "@angular/material/checkbox";
18
+ import * as i9 from "@ngx-translate/core";
19
+ const _c0 = ["filter"];
20
+ function TableComponent_div_1_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelementStart(0, "div", 12)(1, "mat-form-field", 13);
22
+ i0.ɵɵelement(2, "input", 14, 15);
23
+ i0.ɵɵpipe(4, "translate");
24
+ i0.ɵɵelementEnd()();
25
+ } if (rf & 2) {
26
+ i0.ɵɵadvance(2);
27
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(4, 1, "igo.common.table.filter"));
28
+ } }
29
+ function TableComponent_th_6_Template(rf, ctx) { if (rf & 1) {
30
+ const _r11 = i0.ɵɵgetCurrentView();
31
+ i0.ɵɵelementStart(0, "th", 16)(1, "mat-checkbox", 17);
32
+ i0.ɵɵlistener("change", function TableComponent_th_6_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView($event ? ctx_r10.masterToggle() : null); });
33
+ i0.ɵɵelementEnd()();
34
+ } if (rf & 2) {
35
+ const ctx_r2 = i0.ɵɵnextContext();
36
+ i0.ɵɵadvance(1);
37
+ i0.ɵɵproperty("checked", ctx_r2.selection.hasValue() && ctx_r2.isAllSelected())("indeterminate", ctx_r2.selection.hasValue() && !ctx_r2.isAllSelected());
38
+ } }
39
+ function TableComponent_td_7_Template(rf, ctx) { if (rf & 1) {
40
+ const _r15 = i0.ɵɵgetCurrentView();
41
+ i0.ɵɵelementStart(0, "td", 18)(1, "mat-checkbox", 19);
42
+ i0.ɵɵlistener("click", function TableComponent_td_7_Template_mat_checkbox_click_1_listener($event) { return $event.stopPropagation(); })("change", function TableComponent_td_7_Template_mat_checkbox_change_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r15); const row_r12 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView($event ? ctx_r14.selection.toggle(row_r12) : null); });
43
+ i0.ɵɵelementEnd()();
44
+ } if (rf & 2) {
45
+ const row_r12 = ctx.$implicit;
46
+ const ctx_r3 = i0.ɵɵnextContext();
47
+ i0.ɵɵadvance(1);
48
+ i0.ɵɵproperty("checked", ctx_r3.selection.isSelected(row_r12));
49
+ } }
50
+ function TableComponent_ng_container_8_ng_container_1_th_1_Template(rf, ctx) { if (rf & 1) {
51
+ i0.ɵɵelementStart(0, "th", 25);
52
+ i0.ɵɵtext(1);
53
+ i0.ɵɵelementEnd();
54
+ } if (rf & 2) {
55
+ const column_r16 = i0.ɵɵnextContext(2).$implicit;
56
+ i0.ɵɵadvance(1);
57
+ i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
58
+ } }
59
+ function TableComponent_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {
60
+ i0.ɵɵelementContainerStart(0);
61
+ i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_th_1_Template, 2, 1, "th", 24);
62
+ i0.ɵɵelementContainerEnd();
63
+ } }
64
+ function TableComponent_ng_container_8_ng_container_2_th_1_Template(rf, ctx) { if (rf & 1) {
65
+ i0.ɵɵelementStart(0, "th", 16);
66
+ i0.ɵɵtext(1);
67
+ i0.ɵɵelementEnd();
68
+ } if (rf & 2) {
69
+ const column_r16 = i0.ɵɵnextContext(2).$implicit;
70
+ i0.ɵɵadvance(1);
71
+ i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
72
+ } }
73
+ function TableComponent_ng_container_8_ng_container_2_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵelementContainerStart(0);
75
+ i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_2_th_1_Template, 2, 1, "th", 6);
76
+ i0.ɵɵelementContainerEnd();
77
+ } }
78
+ const _c1 = function () { return {}; };
79
+ function TableComponent_ng_container_8_ng_container_3_td_1_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelementStart(0, "td", 27);
81
+ i0.ɵɵtext(1);
82
+ i0.ɵɵelementEnd();
83
+ } if (rf & 2) {
84
+ const row_r27 = ctx.$implicit;
85
+ const column_r16 = i0.ɵɵnextContext(2).$implicit;
86
+ const ctx_r26 = i0.ɵɵnextContext();
87
+ i0.ɵɵproperty("ngClass", ctx_r26.model.cellClassFunc ? ctx_r26.model.cellClassFunc(row_r27, column_r16) : i0.ɵɵpureFunction0(2, _c1));
88
+ i0.ɵɵadvance(1);
89
+ i0.ɵɵtextInterpolate1(" ", ctx_r26.getValue(row_r27, column_r16.name), " ");
90
+ } }
91
+ function TableComponent_ng_container_8_ng_container_3_Template(rf, ctx) { if (rf & 1) {
92
+ i0.ɵɵelementContainerStart(0);
93
+ i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_3_td_1_Template, 2, 3, "td", 26);
94
+ i0.ɵɵelementContainerEnd();
95
+ } }
96
+ function TableComponent_ng_container_8_ng_template_4_td_0_Template(rf, ctx) { if (rf & 1) {
97
+ i0.ɵɵelement(0, "td", 29);
98
+ } if (rf & 2) {
99
+ const row_r30 = ctx.$implicit;
100
+ const column_r16 = i0.ɵɵnextContext(2).$implicit;
101
+ const ctx_r29 = i0.ɵɵnextContext();
102
+ i0.ɵɵproperty("ngClass", ctx_r29.model.cellClassFunc ? ctx_r29.model.cellClassFunc(row_r30, column_r16) : i0.ɵɵpureFunction0(2, _c1))("innerHTML", ctx_r29.getValue(row_r30, column_r16.name), i0.ɵɵsanitizeHtml);
103
+ } }
104
+ function TableComponent_ng_container_8_ng_template_4_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵtemplate(0, TableComponent_ng_container_8_ng_template_4_td_0_Template, 1, 3, "td", 28);
106
+ } }
107
+ function TableComponent_ng_container_8_Template(rf, ctx) { if (rf & 1) {
108
+ i0.ɵɵelementContainerStart(0, 20);
109
+ i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_Template, 2, 0, "ng-container", 21);
110
+ i0.ɵɵtemplate(2, TableComponent_ng_container_8_ng_container_2_Template, 2, 0, "ng-container", 21);
111
+ i0.ɵɵtemplate(3, TableComponent_ng_container_8_ng_container_3_Template, 2, 0, "ng-container", 22);
112
+ i0.ɵɵtemplate(4, TableComponent_ng_container_8_ng_template_4_Template, 1, 0, "ng-template", null, 23, i0.ɵɵtemplateRefExtractor);
113
+ i0.ɵɵelementContainerEnd();
114
+ } if (rf & 2) {
115
+ const column_r16 = ctx.$implicit;
116
+ const _r20 = i0.ɵɵreference(5);
117
+ i0.ɵɵproperty("matColumnDef", column_r16.name);
118
+ i0.ɵɵadvance(1);
119
+ i0.ɵɵproperty("ngIf", column_r16.sortable);
120
+ i0.ɵɵadvance(1);
121
+ i0.ɵɵproperty("ngIf", !column_r16.sortable);
122
+ i0.ɵɵadvance(1);
123
+ i0.ɵɵproperty("ngIf", !column_r16.html)("ngIfElse", _r20);
124
+ } }
125
+ function TableComponent_th_10_Template(rf, ctx) { if (rf & 1) {
126
+ i0.ɵɵelement(0, "th", 16);
127
+ } }
128
+ function TableComponent_td_11_button_1_Template(rf, ctx) { if (rf & 1) {
129
+ const _r36 = i0.ɵɵgetCurrentView();
130
+ i0.ɵɵelementStart(0, "button", 31);
131
+ i0.ɵɵlistener("click", function TableComponent_td_11_button_1_Template_button_click_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r36); const action_r34 = restoredCtx.$implicit; const row_r32 = i0.ɵɵnextContext().$implicit; const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.handleClickAction($event, action_r34, row_r32)); });
132
+ i0.ɵɵelement(1, "mat-icon", 32);
133
+ i0.ɵɵelementEnd();
134
+ } if (rf & 2) {
135
+ const action_r34 = ctx.$implicit;
136
+ const ctx_r33 = i0.ɵɵnextContext(2);
137
+ i0.ɵɵproperty("color", ctx_r33.getActionColor(action_r34.color));
138
+ i0.ɵɵadvance(1);
139
+ i0.ɵɵpropertyInterpolate("svgIcon", action_r34.icon);
140
+ } }
141
+ function TableComponent_td_11_Template(rf, ctx) { if (rf & 1) {
142
+ i0.ɵɵelementStart(0, "td", 18);
143
+ i0.ɵɵtemplate(1, TableComponent_td_11_button_1_Template, 2, 2, "button", 30);
144
+ i0.ɵɵelementEnd();
145
+ } if (rf & 2) {
146
+ const ctx_r6 = i0.ɵɵnextContext();
147
+ i0.ɵɵadvance(1);
148
+ i0.ɵɵproperty("ngForOf", ctx_r6.model.actions);
149
+ } }
150
+ function TableComponent_tr_12_Template(rf, ctx) { if (rf & 1) {
151
+ i0.ɵɵelement(0, "tr", 33);
152
+ } }
153
+ function TableComponent_tr_13_Template(rf, ctx) { if (rf & 1) {
154
+ const _r40 = i0.ɵɵgetCurrentView();
155
+ i0.ɵɵelementStart(0, "tr", 34);
156
+ i0.ɵɵlistener("click", function TableComponent_tr_13_Template_tr_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r40); const row_r38 = restoredCtx.$implicit; const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.selection.toggle(row_r38)); });
157
+ i0.ɵɵelementEnd();
158
+ } if (rf & 2) {
159
+ const row_r38 = ctx.$implicit;
160
+ const ctx_r8 = i0.ɵɵnextContext();
161
+ i0.ɵɵproperty("ngClass", ctx_r8.model.rowClassFunc ? ctx_r8.model.rowClassFunc(row_r38) : i0.ɵɵpureFunction0(1, _c1));
162
+ } }
163
+ export class TableComponent {
164
+ constructor() {
165
+ this._hasFIlterInput = true;
166
+ this.selection = new SelectionModel(true, []);
167
+ this.select = new EventEmitter();
168
+ }
169
+ get database() {
170
+ return this._database;
171
+ }
172
+ set database(value) {
173
+ this._database = value;
174
+ }
175
+ get model() {
176
+ return this._model;
177
+ }
178
+ set model(value) {
179
+ this._model = value;
180
+ }
181
+ get hasFilterInput() {
182
+ return this._hasFIlterInput;
183
+ }
184
+ set hasFilterInput(value) {
185
+ this._hasFIlterInput = value;
186
+ }
187
+ ngOnInit() {
188
+ this.dataSource = new TableDataSource(this.database, this.model, this.sort);
189
+ if (this.model) {
190
+ this.displayedColumns = this.model.columns
191
+ .filter(c => c.displayed !== false)
192
+ .map(c => c.name);
193
+ if (this.model.selectionCheckbox) {
194
+ this.displayedColumns.unshift('selectionCheckbox');
195
+ }
196
+ if (this.model.actions && this.model.actions.length) {
197
+ this.displayedColumns.push('action');
198
+ }
199
+ }
200
+ this.selection.changed.subscribe(e => this.select.emit(e));
201
+ }
202
+ ngAfterViewInit() {
203
+ if (this.filter) {
204
+ fromEvent(this.filter.nativeElement, 'keyup')
205
+ .pipe(debounceTime(150), distinctUntilChanged())
206
+ .subscribe(() => {
207
+ if (!this.dataSource) {
208
+ return;
209
+ }
210
+ this.dataSource.filter = this.filter.nativeElement.value;
211
+ });
212
+ }
213
+ }
214
+ ngOnChanges(change) {
215
+ if (change.database) {
216
+ this.dataSource = new TableDataSource(this.database, this.model, this.sort);
217
+ this.selection.clear();
218
+ }
219
+ }
220
+ getActionColor(colorId) {
221
+ return TableActionColor[colorId];
222
+ }
223
+ getValue(row, key) {
224
+ return ObjectUtils.resolve(row, key);
225
+ }
226
+ /** Whether the number of selected elements matches the total number of rows. */
227
+ isAllSelected() {
228
+ const numSelected = this.selection.selected.length;
229
+ const numRows = this.database.data.length;
230
+ return numSelected === numRows;
231
+ }
232
+ /** Selects all rows if they are not all selected; otherwise clear selection. */
233
+ masterToggle() {
234
+ this.isAllSelected()
235
+ ? this.selection.clear()
236
+ : this.database.data.forEach(row => this.selection.select(row));
237
+ }
238
+ handleClickAction(event, action, row) {
239
+ event.stopPropagation();
240
+ action.click(row);
241
+ }
242
+ }
243
+ TableComponent.ɵfac = function TableComponent_Factory(t) { return new (t || TableComponent)(); };
244
+ TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["igo-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
245
+ i0.ɵɵviewQuery(_c0, 5);
246
+ i0.ɵɵviewQuery(MatSort, 7);
247
+ } if (rf & 2) {
248
+ let _t;
249
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
250
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
251
+ } }, inputs: { database: "database", model: "model", hasFilterInput: "hasFilterInput" }, outputs: { select: "select" }, features: [i0.ɵɵNgOnChangesFeature], decls: 14, vars: 5, consts: [[1, "table-box"], ["class", "table-header", 4, "ngIf"], [1, "table-container"], ["mat-table", "", "matSort", "", 3, "dataSource"], ["table", ""], ["matColumnDef", "selectionCheckbox"], ["mat-header-cell", "", 4, "matHeaderCellDef"], ["mat-cell", "", 4, "matCellDef"], [3, "matColumnDef", 4, "ngFor", "ngForOf"], ["matColumnDef", "action"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 3, "ngClass", "click", 4, "matRowDef", "matRowDefColumns"], [1, "table-header"], ["floatPlaceholder", "never"], ["matInput", "", 3, "placeholder"], ["filter", ""], ["mat-header-cell", ""], [3, "checked", "indeterminate", "change"], ["mat-cell", ""], [3, "checked", "click", "change"], [3, "matColumnDef"], [4, "ngIf"], [4, "ngIf", "ngIfElse"], ["cellHTML", ""], ["mat-header-cell", "", "mat-sort-header", "", 4, "matHeaderCellDef"], ["mat-header-cell", "", "mat-sort-header", ""], ["mat-cell", "", "class", "mat-cell-text", 3, "ngClass", 4, "matCellDef"], ["mat-cell", "", 1, "mat-cell-text", 3, "ngClass"], ["mat-cell", "", "class", "mat-cell-text", 3, "ngClass", "innerHTML", 4, "matCellDef"], ["mat-cell", "", 1, "mat-cell-text", 3, "ngClass", "innerHTML"], ["mat-mini-fab", "", 3, "color", "click", 4, "ngFor", "ngForOf"], ["mat-mini-fab", "", 3, "color", "click"], [3, "svgIcon"], ["mat-header-row", ""], ["mat-row", "", 3, "ngClass", "click"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
252
+ i0.ɵɵelementStart(0, "div", 0);
253
+ i0.ɵɵtemplate(1, TableComponent_div_1_Template, 5, 3, "div", 1);
254
+ i0.ɵɵelementStart(2, "div", 2)(3, "table", 3, 4);
255
+ i0.ɵɵelementContainerStart(5, 5);
256
+ i0.ɵɵtemplate(6, TableComponent_th_6_Template, 2, 2, "th", 6);
257
+ i0.ɵɵtemplate(7, TableComponent_td_7_Template, 2, 1, "td", 7);
258
+ i0.ɵɵelementContainerEnd();
259
+ i0.ɵɵtemplate(8, TableComponent_ng_container_8_Template, 6, 5, "ng-container", 8);
260
+ i0.ɵɵelementContainerStart(9, 9);
261
+ i0.ɵɵtemplate(10, TableComponent_th_10_Template, 1, 0, "th", 6);
262
+ i0.ɵɵtemplate(11, TableComponent_td_11_Template, 2, 1, "td", 7);
263
+ i0.ɵɵelementContainerEnd();
264
+ i0.ɵɵtemplate(12, TableComponent_tr_12_Template, 1, 0, "tr", 10);
265
+ i0.ɵɵtemplate(13, TableComponent_tr_13_Template, 1, 2, "tr", 11);
266
+ i0.ɵɵelementEnd()()();
267
+ } if (rf & 2) {
268
+ i0.ɵɵadvance(1);
269
+ i0.ɵɵproperty("ngIf", ctx.hasFilterInput);
270
+ i0.ɵɵadvance(2);
271
+ i0.ɵɵproperty("dataSource", ctx.dataSource);
272
+ i0.ɵɵadvance(5);
273
+ i0.ɵɵproperty("ngForOf", ctx.model.columns);
274
+ i0.ɵɵadvance(4);
275
+ i0.ɵɵproperty("matHeaderRowDef", ctx.displayedColumns);
276
+ i0.ɵɵadvance(1);
277
+ i0.ɵɵproperty("matRowDefColumns", ctx.displayedColumns);
278
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTable, i4.MatHeaderCellDef, i4.MatHeaderRowDef, i4.MatColumnDef, i4.MatCellDef, i4.MatRowDef, i4.MatHeaderCell, i4.MatCell, i4.MatHeaderRow, i4.MatRow, i5.MatFormField, i6.MatInput, i7.MatSort, i7.MatSortHeader, i8.MatCheckbox, i9.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%;height:100%;display:block}.table-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:auto;flex:1 1 auto}.table-box[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column}.table-header[_ngcontent-%COMP%]{min-height:64px;max-width:500px;display:flex;flex:0 1 auto;align-items:baseline;padding:8px 24px 0;font-size:20px;justify-content:space-between}tr[mat-header-row][_ngcontent-%COMP%], tr[mat-row][_ngcontent-%COMP%]{height:60px}.mat-cell-text[_ngcontent-%COMP%]{overflow:hidden;word-wrap:break-word}td[mat-cell][_ngcontent-%COMP%]{padding-right:15px}th.mat-header-cell[_ngcontent-%COMP%]{padding-right:5px}button[_ngcontent-%COMP%]{margin-right:10px}"] });
279
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
280
+ type: Component,
281
+ args: [{ selector: 'igo-table', template: "<div class='table-box'>\n <div class='table-header' *ngIf=\"hasFilterInput\">\n <mat-form-field floatPlaceholder='never'>\n <input matInput #filter [placeholder]=\"'igo.common.table.filter' | translate\">\n </mat-form-field>\n </div>\n\n <div class='table-container'>\n <table mat-table #table [dataSource]='dataSource' matSort>\n\n <!-- Checkbox Column -->\n <ng-container matColumnDef=\"selectionCheckbox\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\"\n [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container [matColumnDef]='column.name' *ngFor='let column of model.columns'>\n <ng-container *ngIf='column.sortable'>\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{column.title}} </th>\n </ng-container>\n\n <ng-container *ngIf='!column.sortable'>\n <th mat-header-cell *matHeaderCellDef> {{column.title}} </th>\n </ng-container>\n\n <ng-container *ngIf=\"!column.html; else cellHTML\">\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\">\n {{getValue(row, column.name)}}\n </td>\n </ng-container>\n\n <ng-template #cellHTML>\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\"\n [innerHTML]=\"getValue(row, column.name)\">\n </td>\n </ng-template>\n </ng-container>\n\n <!-- Action Column -->\n <ng-container matColumnDef='action'>\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef='let row'>\n <button *ngFor='let action of model.actions'\n mat-mini-fab\n [color]='getActionColor(action.color)'\n (click)='handleClickAction($event, action, row)'>\n <mat-icon svgIcon=\"{{action.icon}}\"></mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef='displayedColumns;'></tr>\n <tr mat-row\n *matRowDef='let row; columns: displayedColumns;'\n [ngClass]=\"model.rowClassFunc ? model.rowClassFunc(row) : {}\"\n (click)=\"selection.toggle(row)\">\n </tr>\n\n </table>\n </div>\n\n</div>\n", styles: [":host{width:100%;height:100%;display:block}.table-container{display:flex;flex-direction:column;height:100%;overflow:auto;flex:1 1 auto}.table-box{height:100%;display:flex;flex-direction:column}.table-header{min-height:64px;max-width:500px;display:flex;flex:0 1 auto;align-items:baseline;padding:8px 24px 0;font-size:20px;justify-content:space-between}tr[mat-header-row],tr[mat-row]{height:60px}.mat-cell-text{overflow:hidden;word-wrap:break-word}td[mat-cell]{padding-right:15px}th.mat-header-cell{padding-right:5px}button{margin-right:10px}\n"] }]
282
+ }], null, { database: [{
283
+ type: Input
284
+ }], model: [{
285
+ type: Input
286
+ }], hasFilterInput: [{
287
+ type: Input
288
+ }], select: [{
289
+ type: Output
290
+ }], filter: [{
291
+ type: ViewChild,
292
+ args: ['filter']
293
+ }], sort: [{
294
+ type: ViewChild,
295
+ args: [MatSort, { static: true }]
296
+ }] }); })();
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFJTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3JCM0QsK0JBQWlELHlCQUFBO0lBRTdDLGdDQUE4RTs7SUFDaEYsaUJBQWlCLEVBQUE7O0lBRFMsZUFBcUQ7SUFBckQsNkVBQXFEOzs7O0lBUzNFLDhCQUFzQyx1QkFBQTtJQUN0QiwwS0FBVSx3QkFBUyxzQkFBYyxHQUFHLElBQUksQ0FBQSxJQUFDO0lBR3ZELGlCQUFlLEVBQUE7OztJQUZELGVBQW1EO0lBQW5ELCtFQUFtRCx5RUFBQTs7OztJQUluRSw4QkFBbUMsdUJBQUE7SUFDbkIsNEdBQVMsd0JBQXdCLElBQUMsd05BQ3hCLHdCQUFTLGlDQUFxQixHQUFHLElBQUksQ0FB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N0QsZ0VBSUs7UUFFUCxpQkFBUSxFQUFBLEVBQUE7O1FBckVpQixlQUFvQjtRQUFwQix5Q0FBb0I7UUFPckIsZUFBeUI7UUFBekIsMkNBQXlCO1FBa0JlLGVBQWdCO1FBQWhCLDJDQUFnQjtRQXFDMUQsZUFBa0M7UUFBbEMsc0RBQWtDO1FBRS9CLGVBQTBCO1FBQTFCLHVEQUEwQjs7dUZEcEMxQyxjQUFjO2NBTDFCLFNBQVM7MkJBQ0UsV0FBVztnQkFNakIsUUFBUTtrQkFEWCxLQUFLO1lBVUYsS0FBSztrQkFEUixLQUFLO1lBVUYsY0FBYztrQkFEakIsS0FBSztZQWNOLE1BQU07a0JBREwsTUFBTTtZQU9jLE1BQU07a0JBQTFCLFNBQVM7bUJBQUMsUUFBUTtZQUNtQixJQUFJO2tCQUF6QyxTQUFTO21CQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcblxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gJy4vdGFibGUtbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlRGF0YWJhc2UgfSBmcm9tICcuL3RhYmxlLWRhdGFiYXNlJztcbmltcG9ydCB7IFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vdGFibGUtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBUYWJsZUFjdGlvbkNvbG9yIH0gZnJvbSAnLi90YWJsZS1hY3Rpb24tY29sb3IuZW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpXG4gIGdldCBkYXRhYmFzZSgpOiBUYWJsZURhdGFiYXNlIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YWJhc2U7XG4gIH1cbiAgc2V0IGRhdGFiYXNlKHZhbHVlOiBUYWJsZURhdGFiYXNlKSB7XG4gICAgdGhpcy5fZGF0YWJhc2UgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9kYXRhYmFzZTogVGFibGVEYXRhYmFzZTtcblxuICBASW5wdXQoKVxuICBnZXQgbW9kZWwoKTogVGFibGVNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICB9XG4gIHNldCBtb2RlbCh2YWx1ZTogVGFibGVNb2RlbCkge1xuICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfbW9kZWw6IFRhYmxlTW9kZWw7XG5cbiAgQElucHV0KClcbiAgZ2V0IGhhc0ZpbHRlcklucHV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNGSWx0ZXJJbnB1dDtcbiAgfVxuICBzZXQgaGFzRmlsdGVySW5wdXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oYXNGSWx0ZXJJbnB1dCA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2hhc0ZJbHRlcklucHV0ID0gdHJ1ZTtcblxuICBwdWJsaWMgZGlzcGxheWVkQ29sdW1ucztcbiAgcHVibGljIGRhdGFTb3VyY2U6IFRhYmxlRGF0YVNvdXJjZSB8IG51bGw7XG4gIHB1YmxpYyBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8YW55Pih0cnVlLCBbXSk7XG5cbiAgQE91dHB1dCgpXG4gIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGFkZGVkOiBhbnlbXTtcbiAgICByZW1vdmVkOiBhbnlbXTtcbiAgICBzb3VyY2U6IFNlbGVjdGlvbk1vZGVsPGFueT47XG4gIH0+KCk7XG5cbiAgQFZpZXdDaGlsZCgnZmlsdGVyJykgZmlsdGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IFRhYmxlRGF0YVNvdXJjZSh0aGlzLmRhdGFiYXNlLCB0aGlzLm1vZGVsLCB0aGlzLnNvcnQpO1xuXG4gICAgaWYgKHRoaXMubW9kZWwpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMubW9kZWwuY29sdW1uc1xuICAgICAgICAuZmlsdGVyKGMgPT4gYy5kaXNwbGF5ZWQgIT09IGZhbHNlKVxuICAgICAgICAubWFwKGMgPT4gYy5uYW1lKTtcblxuICAgICAgaWYgKHRoaXMubW9kZWwuc2VsZWN0aW9uQ2hlY2tib3gpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnVuc2hpZnQoJ3NlbGVjdGlvbkNoZWNrYm94Jyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5tb2RlbC5hY3Rpb25zICYmIHRoaXMubW9kZWwuYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ2FjdGlvbicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKGUgPT4gdGhpcy5zZWxlY3QuZW1pdChlKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICBmcm9tRXZlbnQodGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDE1MCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5kYXRhU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIgPSB0aGlzLmZpbHRlci5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2UpIHtcbiAgICBpZiAoY2hhbmdlLmRhdGFiYXNlKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgVGFibGVEYXRhU291cmNlKFxuICAgICAgICB0aGlzLmRhdGFiYXNlLFxuICAgICAgICB0aGlzLm1vZGVsLFxuICAgICAgICB0aGlzLnNvcnRcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFjdGlvbkNvbG9yKGNvbG9ySWQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRhYmxlQWN0aW9uQ29sb3JbY29sb3JJZF07XG4gIH1cblxuICBnZXRWYWx1ZShyb3csIGtleSkge1xuICAgIHJldHVybiBPYmplY3RVdGlscy5yZXNvbHZlKHJvdywga2V5KTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgZWxlbWVudHMgbWF0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3MuICovXG4gIGlzQWxsU2VsZWN0ZWQoKSB7XG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XG4gICAgY29uc3QgbnVtUm93cyA9IHRoaXMuZGF0YWJhc2UuZGF0YS5sZW5ndGg7XG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xuICB9XG5cbiAgLyoqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvbi4gKi9cbiAgbWFzdGVyVG9nZ2xlKCkge1xuICAgIHRoaXMuaXNBbGxTZWxlY3RlZCgpXG4gICAgICA/IHRoaXMuc2VsZWN0aW9uLmNsZWFyKClcbiAgICAgIDogdGhpcy5kYXRhYmFzZS5kYXRhLmZvckVhY2gocm93ID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpKTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrQWN0aW9uKGV2ZW50LCBhY3Rpb24sIHJvdykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGFjdGlvbi5jbGljayhyb3cpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPSd0YWJsZS1ib3gnPlxuICA8ZGl2IGNsYXNzPSd0YWJsZS1oZWFkZXInICpuZ0lmPVwiaGFzRmlsdGVySW5wdXRcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRQbGFjZWhvbGRlcj0nbmV2ZXInPlxuICAgICAgPGlucHV0IG1hdElucHV0ICNmaWx0ZXIgW3BsYWNlaG9sZGVyXT1cIidpZ28uY29tbW9uLnRhYmxlLmZpbHRlcicgfCB0cmFuc2xhdGVcIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPSd0YWJsZS1jb250YWluZXInPlxuICAgIDx0YWJsZSBtYXQtdGFibGUgI3RhYmxlIFtkYXRhU291cmNlXT0nZGF0YVNvdXJjZScgbWF0U29ydD5cblxuICAgICAgPCEtLSBDaGVja2JveCBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNlbGVjdGlvbkNoZWNrYm94XCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2hhbmdlKT1cIiRldmVudCA/IG1hc3RlclRvZ2dsZSgpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiBpc0FsbFNlbGVjdGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiPlxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShyb3cpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpXCI+XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT0nY29sdW1uLm5hbWUnICpuZ0Zvcj0nbGV0IGNvbHVtbiBvZiBtb2RlbC5jb2x1bW5zJz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0nY29sdW1uLnNvcnRhYmxlJz5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4ge3tjb2x1bW4udGl0bGV9fSA8L3RoPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPSchY29sdW1uLnNvcnRhYmxlJz5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e2NvbHVtbi50aXRsZX19IDwvdGg+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uLmh0bWw7IGVsc2UgY2VsbEhUTUxcIj5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9J2xldCByb3cnIGNsYXNzPVwibWF0LWNlbGwtdGV4dFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJtb2RlbC5jZWxsQ2xhc3NGdW5jID8gbW9kZWwuY2VsbENsYXNzRnVuYyhyb3csIGNvbHVtbikgOiB7fVwiPlxuICAgICAgICAgICAge3tnZXRWYWx1ZShyb3csIGNvbHVtbi5uYW1lKX19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsSFRNTD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9J2xldCByb3cnIGNsYXNzPVwibWF0LWNlbGwtdGV4dFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJtb2RlbC5jZWxsQ2xhc3NGdW5jID8gbW9kZWwuY2VsbENsYXNzRnVuYyhyb3csIGNvbHVtbikgOiB7fVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldFZhbHVlKHJvdywgY29sdW1uLm5hbWUpXCI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIEFjdGlvbiBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj0nYWN0aW9uJz5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9J2xldCByb3cnPlxuICAgICAgICAgIDxidXR0b24gKm5nRm9yPSdsZXQgYWN0aW9uIG9mIG1vZGVsLmFjdGlvbnMnXG4gICAgICAgICAgbWF0LW1pbmktZmFiXG4gICAgICAgICAgW2NvbG9yXT0nZ2V0QWN0aW9uQ29sb3IoYWN0aW9uLmNvbG9yKSdcbiAgICAgICAgICAoY2xpY2spPSdoYW5kbGVDbGlja0FjdGlvbigkZXZlbnQsIGFjdGlvbiwgcm93KSc+XG4gICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInt7YWN0aW9uLmljb259fVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9J2Rpc3BsYXllZENvbHVtbnM7Jz48L3RyPlxuICAgICAgPHRyIG1hdC1yb3dcbiAgICAgICAgKm1hdFJvd0RlZj0nbGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uczsnXG4gICAgICAgIFtuZ0NsYXNzXT1cIm1vZGVsLnJvd0NsYXNzRnVuYyA/IG1vZGVsLnJvd0NsYXNzRnVuYyhyb3cpIDoge31cIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0aW9uLnRvZ2dsZShyb3cpXCI+XG4gICAgICA8L3RyPlxuXG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19