@igo2/common 1.8.1 → 1.9.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 (344) hide show
  1. package/bundles/igo2-common.umd.js +10700 -10473
  2. package/bundles/igo2-common.umd.js.map +1 -1
  3. package/esm2015/igo2-common.js +5 -5
  4. package/esm2015/lib/action/action.module.js +29 -28
  5. package/esm2015/lib/action/actionbar/actionbar-item.component.js +257 -257
  6. package/esm2015/lib/action/actionbar/actionbar.component.js +385 -387
  7. package/esm2015/lib/action/actionbar/actionbar.module.js +59 -58
  8. package/esm2015/lib/action/index.js +3 -3
  9. package/esm2015/lib/action/shared/action.enums.js +7 -7
  10. package/esm2015/lib/action/shared/action.interfaces.js +2 -1
  11. package/esm2015/lib/action/shared/index.js +4 -4
  12. package/esm2015/lib/action/shared/store.js +8 -8
  13. package/esm2015/lib/backdrop/backdrop.component.js +30 -30
  14. package/esm2015/lib/backdrop/backdrop.module.js +25 -24
  15. package/esm2015/lib/backdrop/index.js +2 -2
  16. package/esm2015/lib/badge-icon/badge-icon.directive.js +125 -121
  17. package/esm2015/lib/badge-icon/badge-icon.module.js +26 -25
  18. package/esm2015/lib/badge-icon/index.js +2 -2
  19. package/esm2015/lib/clickout/clickout.directive.js +32 -32
  20. package/esm2015/lib/clickout/clickout.module.js +24 -23
  21. package/esm2015/lib/clickout/index.js +2 -2
  22. package/esm2015/lib/clone/clone.module.js +24 -23
  23. package/esm2015/lib/clone/clone.pipe.js +24 -24
  24. package/esm2015/lib/clone/index.js +2 -2
  25. package/esm2015/lib/collapsible/collapse.directive.js +55 -55
  26. package/esm2015/lib/collapsible/collapsible.component.js +63 -63
  27. package/esm2015/lib/collapsible/collapsible.module.js +27 -26
  28. package/esm2015/lib/collapsible/index.js +3 -3
  29. package/esm2015/lib/confirm-dialog/confirm-dialog.component.js +50 -51
  30. package/esm2015/lib/confirm-dialog/confirm-dialog.module.js +29 -28
  31. package/esm2015/lib/confirm-dialog/confirm-dialog.service.js +22 -23
  32. package/esm2015/lib/confirm-dialog/index.js +3 -3
  33. package/esm2015/lib/context-menu/context-menu.directive.js +135 -89
  34. package/esm2015/lib/context-menu/context-menu.module.js +24 -23
  35. package/esm2015/lib/context-menu/index.js +2 -2
  36. package/esm2015/lib/custom-html/custom-html.component.js +32 -32
  37. package/esm2015/lib/custom-html/custom-html.module.js +49 -48
  38. package/esm2015/lib/custom-html/custom-html.pipe.js +18 -19
  39. package/esm2015/lib/custom-html/index.js +3 -3
  40. package/esm2015/lib/drag-drop/drag-drop.directive.js +88 -88
  41. package/esm2015/lib/drag-drop/drag-drop.module.js +24 -23
  42. package/esm2015/lib/drag-drop/index.js +2 -2
  43. package/esm2015/lib/dynamic-component/dynamic-component.module.js +33 -32
  44. package/esm2015/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.js +124 -125
  45. package/esm2015/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.js +30 -29
  46. package/esm2015/lib/dynamic-component/index.js +3 -3
  47. package/esm2015/lib/dynamic-component/shared/dynamic-component.interfaces.js +2 -1
  48. package/esm2015/lib/dynamic-component/shared/dynamic-component.js +174 -174
  49. package/esm2015/lib/dynamic-component/shared/dynamic-component.service.js +29 -29
  50. package/esm2015/lib/dynamic-component/shared/index.js +4 -4
  51. package/esm2015/lib/entity/entity-selector/entity-selector.component.js +201 -202
  52. package/esm2015/lib/entity/entity-selector/entity-selector.module.js +34 -33
  53. package/esm2015/lib/entity/entity-table/entity-table-row.directive.js +137 -137
  54. package/esm2015/lib/entity/entity-table/entity-table.component.js +912 -916
  55. package/esm2015/lib/entity/entity-table/entity-table.module.js +77 -76
  56. package/esm2015/lib/entity/entity-table-paginator/entity-table-paginator.component.js +138 -140
  57. package/esm2015/lib/entity/entity-table-paginator/entity-table-paginator.interface.js +2 -1
  58. package/esm2015/lib/entity/entity-table-paginator/entity-table-paginator.module.js +30 -29
  59. package/esm2015/lib/entity/entity.module.js +33 -32
  60. package/esm2015/lib/entity/index.js +6 -6
  61. package/esm2015/lib/entity/shared/entity.enums.js +27 -27
  62. package/esm2015/lib/entity/shared/entity.interfaces.js +2 -1
  63. package/esm2015/lib/entity/shared/entity.utils.js +67 -67
  64. package/esm2015/lib/entity/shared/index.js +10 -10
  65. package/esm2015/lib/entity/shared/state.js +191 -191
  66. package/esm2015/lib/entity/shared/store.js +288 -288
  67. package/esm2015/lib/entity/shared/strategies/filter-custom-function.js +79 -79
  68. package/esm2015/lib/entity/shared/strategies/filter-selection.js +84 -84
  69. package/esm2015/lib/entity/shared/strategies/index.js +4 -4
  70. package/esm2015/lib/entity/shared/strategies/strategy.js +75 -75
  71. package/esm2015/lib/entity/shared/transaction.js +316 -316
  72. package/esm2015/lib/entity/shared/view.js +315 -315
  73. package/esm2015/lib/entity/shared/watcher.js +120 -120
  74. package/esm2015/lib/flexible/flexible.component.js +158 -159
  75. package/esm2015/lib/flexible/flexible.module.js +24 -23
  76. package/esm2015/lib/flexible/flexible.type.js +2 -1
  77. package/esm2015/lib/flexible/index.js +3 -3
  78. package/esm2015/lib/form/form/form.component.js +125 -125
  79. package/esm2015/lib/form/form/form.module.js +42 -41
  80. package/esm2015/lib/form/form-field/form-field-select.component.js +132 -132
  81. package/esm2015/lib/form/form-field/form-field-text.component.js +108 -108
  82. package/esm2015/lib/form/form-field/form-field-textarea.component.js +110 -110
  83. package/esm2015/lib/form/form-field/form-field.component.js +77 -78
  84. package/esm2015/lib/form/form-field/form-field.module.js +76 -75
  85. package/esm2015/lib/form/form-field/index.js +5 -5
  86. package/esm2015/lib/form/form-group/form-group.component.js +110 -110
  87. package/esm2015/lib/form/form-group/form-group.module.js +42 -41
  88. package/esm2015/lib/form/form.module.js +51 -50
  89. package/esm2015/lib/form/index.js +5 -5
  90. package/esm2015/lib/form/shared/form-field-component.js +7 -7
  91. package/esm2015/lib/form/shared/form-field.service.js +29 -29
  92. package/esm2015/lib/form/shared/form.interfaces.js +2 -1
  93. package/esm2015/lib/form/shared/form.service.js +77 -77
  94. package/esm2015/lib/form/shared/form.utils.js +40 -40
  95. package/esm2015/lib/form/shared/index.js +6 -6
  96. package/esm2015/lib/home-button/home-button.component.js +35 -0
  97. package/esm2015/lib/home-button/home-button.module.js +43 -0
  98. package/esm2015/lib/home-button/index.js +2 -0
  99. package/esm2015/lib/image/image.module.js +24 -23
  100. package/esm2015/lib/image/index.js +2 -2
  101. package/esm2015/lib/image/secure-image.pipe.js +48 -51
  102. package/esm2015/lib/interactive-tour/index.js +5 -5
  103. package/esm2015/lib/interactive-tour/interactive-tour.component.js +140 -142
  104. package/esm2015/lib/interactive-tour/interactive-tour.interface.js +2 -1
  105. package/esm2015/lib/interactive-tour/interactive-tour.loader.js +44 -46
  106. package/esm2015/lib/interactive-tour/interactive-tour.module.js +42 -41
  107. package/esm2015/lib/interactive-tour/interactive-tour.service.js +285 -288
  108. package/esm2015/lib/json-dialog/index.js +3 -3
  109. package/esm2015/lib/json-dialog/json-dialog.component.js +116 -117
  110. package/esm2015/lib/json-dialog/json-dialog.module.js +29 -28
  111. package/esm2015/lib/json-dialog/json-dialog.service.js +24 -25
  112. package/esm2015/lib/keyvalue/index.js +2 -2
  113. package/esm2015/lib/keyvalue/keyvalue.module.js +24 -23
  114. package/esm2015/lib/keyvalue/keyvalue.pipe.js +18 -18
  115. package/esm2015/lib/list/index.js +3 -3
  116. package/esm2015/lib/list/list-item.directive.js +165 -165
  117. package/esm2015/lib/list/list.component.js +266 -266
  118. package/esm2015/lib/list/list.module.js +29 -28
  119. package/esm2015/lib/panel/index.js +2 -2
  120. package/esm2015/lib/panel/panel.component.js +67 -67
  121. package/esm2015/lib/panel/panel.module.js +19 -18
  122. package/esm2015/lib/sidenav/index.js +2 -2
  123. package/esm2015/lib/sidenav/sidenav-shim.directive.js +55 -56
  124. package/esm2015/lib/sidenav/sidenav.module.js +24 -23
  125. package/esm2015/lib/spinner/index.js +3 -3
  126. package/esm2015/lib/spinner/spinner-activity.directive.js +47 -49
  127. package/esm2015/lib/spinner/spinner.component.js +40 -40
  128. package/esm2015/lib/spinner/spinner.module.js +21 -20
  129. package/esm2015/lib/stop-propagation/index.js +3 -3
  130. package/esm2015/lib/stop-propagation/stop-drop-propagation.directive.js +22 -22
  131. package/esm2015/lib/stop-propagation/stop-propagation.directive.js +21 -21
  132. package/esm2015/lib/stop-propagation/stop-propagation.module.js +25 -24
  133. package/esm2015/lib/table/index.js +6 -6
  134. package/esm2015/lib/table/table-action-color.enum.js +7 -7
  135. package/esm2015/lib/table/table-database.js +28 -28
  136. package/esm2015/lib/table/table-datasource.js +61 -61
  137. package/esm2015/lib/table/table-model.interface.js +2 -1
  138. package/esm2015/lib/table/table.component.js +310 -311
  139. package/esm2015/lib/table/table.module.js +69 -68
  140. package/esm2015/lib/tool/index.js +3 -3
  141. package/esm2015/lib/tool/shared/index.js +6 -6
  142. package/esm2015/lib/tool/shared/tool-component.js +9 -9
  143. package/esm2015/lib/tool/shared/tool.interface.js +2 -1
  144. package/esm2015/lib/tool/shared/tool.service.js +43 -43
  145. package/esm2015/lib/tool/shared/toolbox.enums.js +7 -7
  146. package/esm2015/lib/tool/shared/toolbox.js +179 -179
  147. package/esm2015/lib/tool/tool.module.js +34 -33
  148. package/esm2015/lib/tool/toolbox/toolbox.animation.js +10 -10
  149. package/esm2015/lib/tool/toolbox/toolbox.component.js +261 -262
  150. package/esm2015/lib/tool/toolbox/toolbox.module.js +38 -37
  151. package/esm2015/lib/widget/index.js +3 -3
  152. package/esm2015/lib/widget/shared/index.js +4 -4
  153. package/esm2015/lib/widget/shared/widget.interfaces.js +2 -1
  154. package/esm2015/lib/widget/shared/widget.js +4 -4
  155. package/esm2015/lib/widget/shared/widget.service.js +20 -21
  156. package/esm2015/lib/widget/widget-outlet/widget-outlet.component.js +121 -122
  157. package/esm2015/lib/widget/widget-outlet/widget-outlet.module.js +34 -33
  158. package/esm2015/lib/widget/widget.module.js +34 -33
  159. package/esm2015/lib/workspace/index.js +4 -4
  160. package/esm2015/lib/workspace/shared/index.js +4 -4
  161. package/esm2015/lib/workspace/shared/store.js +40 -40
  162. package/esm2015/lib/workspace/shared/workspace.interfaces.js +2 -1
  163. package/esm2015/lib/workspace/shared/workspace.js +117 -117
  164. package/esm2015/lib/workspace/workspace-selector/workspace-selector.component.js +54 -55
  165. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +34 -33
  166. package/esm2015/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.js +93 -94
  167. package/esm2015/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.js +34 -33
  168. package/esm2015/lib/workspace/workspace.module.js +29 -28
  169. package/esm2015/public_api.js +72 -70
  170. package/fesm2015/igo2-common.js +9015 -8846
  171. package/fesm2015/igo2-common.js.map +1 -1
  172. package/igo2-common.d.ts +5 -5
  173. package/lib/action/action.module.d.ts +8 -7
  174. package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
  175. package/lib/action/actionbar/actionbar.component.d.ts +146 -146
  176. package/lib/action/actionbar/actionbar.module.d.ts +20 -19
  177. package/lib/action/index.d.ts +2 -2
  178. package/lib/action/shared/action.enums.d.ts +5 -5
  179. package/lib/action/shared/action.interfaces.d.ts +17 -17
  180. package/lib/action/shared/index.d.ts +3 -3
  181. package/lib/action/shared/store.d.ts +8 -8
  182. package/lib/backdrop/backdrop.component.d.ts +9 -9
  183. package/lib/backdrop/backdrop.module.d.ts +10 -9
  184. package/lib/backdrop/index.d.ts +1 -1
  185. package/lib/badge-icon/badge-icon.directive.d.ts +32 -27
  186. package/lib/badge-icon/badge-icon.module.d.ts +11 -10
  187. package/lib/badge-icon/index.d.ts +1 -1
  188. package/lib/clickout/clickout.directive.d.ts +10 -10
  189. package/lib/clickout/clickout.module.d.ts +9 -8
  190. package/lib/clickout/index.d.ts +1 -1
  191. package/lib/clone/clone.module.d.ts +9 -8
  192. package/lib/clone/clone.pipe.d.ts +7 -7
  193. package/lib/clone/index.d.ts +1 -1
  194. package/lib/collapsible/collapse.directive.d.ts +19 -19
  195. package/lib/collapsible/collapsible.component.d.ts +13 -13
  196. package/lib/collapsible/collapsible.module.d.ts +12 -11
  197. package/lib/collapsible/index.d.ts +2 -2
  198. package/lib/confirm-dialog/confirm-dialog.component.d.ts +9 -9
  199. package/lib/confirm-dialog/confirm-dialog.module.d.ts +12 -11
  200. package/lib/confirm-dialog/confirm-dialog.service.d.ts +10 -10
  201. package/lib/confirm-dialog/index.d.ts +2 -2
  202. package/lib/context-menu/context-menu.directive.d.ts +27 -21
  203. package/lib/context-menu/context-menu.module.d.ts +9 -8
  204. package/lib/context-menu/index.d.ts +1 -1
  205. package/lib/custom-html/custom-html.component.d.ts +9 -9
  206. package/lib/custom-html/custom-html.module.d.ts +16 -15
  207. package/lib/custom-html/custom-html.pipe.d.ts +10 -10
  208. package/lib/custom-html/index.d.ts +2 -2
  209. package/lib/drag-drop/drag-drop.directive.d.ts +14 -14
  210. package/lib/drag-drop/drag-drop.module.d.ts +9 -8
  211. package/lib/drag-drop/index.d.ts +1 -1
  212. package/lib/dynamic-component/dynamic-component.module.d.ts +8 -7
  213. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -70
  214. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +11 -10
  215. package/lib/dynamic-component/index.d.ts +2 -2
  216. package/lib/dynamic-component/shared/dynamic-component.d.ts +88 -88
  217. package/lib/dynamic-component/shared/dynamic-component.interfaces.d.ts +3 -3
  218. package/lib/dynamic-component/shared/dynamic-component.service.d.ts +18 -18
  219. package/lib/dynamic-component/shared/index.d.ts +3 -3
  220. package/lib/entity/entity-selector/entity-selector.component.d.ts +92 -92
  221. package/lib/entity/entity-selector/entity-selector.module.d.ts +13 -12
  222. package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
  223. package/lib/entity/entity-table/entity-table.component.d.ts +275 -275
  224. package/lib/entity/entity-table/entity-table.module.d.ts +23 -22
  225. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +49 -49
  226. package/lib/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +8 -8
  227. package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +11 -10
  228. package/lib/entity/entity.module.d.ts +10 -9
  229. package/lib/entity/index.d.ts +5 -5
  230. package/lib/entity/shared/entity.enums.d.ts +22 -22
  231. package/lib/entity/shared/entity.interfaces.d.ts +88 -88
  232. package/lib/entity/shared/entity.utils.d.ts +49 -49
  233. package/lib/entity/shared/index.d.ts +9 -9
  234. package/lib/entity/shared/state.d.ts +103 -103
  235. package/lib/entity/shared/store.d.ts +176 -176
  236. package/lib/entity/shared/strategies/filter-custom-function.d.ts +51 -51
  237. package/lib/entity/shared/strategies/filter-selection.d.ts +48 -48
  238. package/lib/entity/shared/strategies/index.d.ts +3 -3
  239. package/lib/entity/shared/strategies/strategy.d.ts +56 -56
  240. package/lib/entity/shared/transaction.d.ts +168 -168
  241. package/lib/entity/shared/view.d.ts +193 -193
  242. package/lib/entity/shared/watcher.d.ts +72 -72
  243. package/lib/flexible/flexible.component.d.ts +41 -41
  244. package/lib/flexible/flexible.module.d.ts +9 -8
  245. package/lib/flexible/flexible.type.d.ts +2 -2
  246. package/lib/flexible/index.d.ts +2 -2
  247. package/lib/form/form/form.component.d.ts +53 -53
  248. package/lib/form/form/form.module.d.ts +12 -11
  249. package/lib/form/form-field/form-field-select.component.d.ts +48 -48
  250. package/lib/form/form-field/form-field-text.component.d.ts +41 -41
  251. package/lib/form/form-field/form-field-textarea.component.d.ts +41 -41
  252. package/lib/form/form-field/form-field.component.d.ts +34 -34
  253. package/lib/form/form-field/form-field.module.d.ts +21 -20
  254. package/lib/form/form-field/index.d.ts +4 -4
  255. package/lib/form/form-group/form-group.component.d.ts +49 -49
  256. package/lib/form/form-group/form-group.module.d.ts +14 -13
  257. package/lib/form/form.module.d.ts +13 -12
  258. package/lib/form/index.d.ts +4 -4
  259. package/lib/form/shared/form-field-component.d.ts +1 -1
  260. package/lib/form/shared/form-field.service.d.ts +19 -19
  261. package/lib/form/shared/form.interfaces.d.ts +57 -57
  262. package/lib/form/shared/form.service.d.ts +15 -15
  263. package/lib/form/shared/form.utils.d.ts +11 -11
  264. package/lib/form/shared/index.d.ts +5 -5
  265. package/lib/home-button/home-button.component.d.ts +9 -0
  266. package/lib/home-button/home-button.module.d.ts +15 -0
  267. package/lib/home-button/index.d.ts +1 -0
  268. package/lib/image/image.module.d.ts +9 -8
  269. package/lib/image/index.d.ts +1 -1
  270. package/lib/image/secure-image.pipe.d.ts +11 -11
  271. package/lib/interactive-tour/index.d.ts +4 -4
  272. package/lib/interactive-tour/interactive-tour.component.d.ts +30 -30
  273. package/lib/interactive-tour/interactive-tour.interface.d.ts +32 -32
  274. package/lib/interactive-tour/interactive-tour.loader.d.ts +18 -18
  275. package/lib/interactive-tour/interactive-tour.module.d.ts +12 -11
  276. package/lib/interactive-tour/interactive-tour.service.d.ts +29 -29
  277. package/lib/json-dialog/index.d.ts +2 -2
  278. package/lib/json-dialog/json-dialog.component.d.ts +13 -13
  279. package/lib/json-dialog/json-dialog.module.d.ts +13 -12
  280. package/lib/json-dialog/json-dialog.service.d.ts +10 -10
  281. package/lib/keyvalue/index.d.ts +1 -1
  282. package/lib/keyvalue/keyvalue.module.d.ts +9 -8
  283. package/lib/keyvalue/keyvalue.pipe.d.ts +7 -7
  284. package/lib/list/index.d.ts +2 -2
  285. package/lib/list/list-item.directive.d.ts +43 -43
  286. package/lib/list/list.component.d.ts +51 -51
  287. package/lib/list/list.module.d.ts +14 -13
  288. package/lib/panel/index.d.ts +1 -1
  289. package/lib/panel/panel.component.d.ts +11 -11
  290. package/lib/panel/panel.module.d.ts +8 -7
  291. package/lib/sidenav/index.d.ts +1 -1
  292. package/lib/sidenav/sidenav-shim.directive.d.ts +20 -20
  293. package/lib/sidenav/sidenav.module.d.ts +9 -8
  294. package/lib/spinner/index.d.ts +2 -2
  295. package/lib/spinner/spinner-activity.directive.d.ts +32 -32
  296. package/lib/spinner/spinner.component.d.ts +12 -12
  297. package/lib/spinner/spinner.module.d.ts +10 -9
  298. package/lib/stop-propagation/index.d.ts +2 -2
  299. package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +6 -6
  300. package/lib/stop-propagation/stop-propagation.directive.d.ts +6 -6
  301. package/lib/stop-propagation/stop-propagation.module.d.ts +10 -9
  302. package/lib/table/index.d.ts +5 -5
  303. package/lib/table/table-action-color.enum.d.ts +5 -5
  304. package/lib/table/table-database.d.ts +10 -10
  305. package/lib/table/table-datasource.d.ts +17 -17
  306. package/lib/table/table-model.interface.d.ts +28 -28
  307. package/lib/table/table.component.d.ts +40 -40
  308. package/lib/table/table.module.d.ts +20 -19
  309. package/lib/tool/index.d.ts +2 -2
  310. package/lib/tool/shared/index.d.ts +5 -5
  311. package/lib/tool/shared/tool-component.d.ts +2 -2
  312. package/lib/tool/shared/tool.interface.d.ts +18 -18
  313. package/lib/tool/shared/tool.service.d.ts +30 -30
  314. package/lib/tool/shared/toolbox.d.ts +95 -95
  315. package/lib/tool/shared/toolbox.enums.d.ts +5 -5
  316. package/lib/tool/tool.module.d.ts +10 -9
  317. package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
  318. package/lib/tool/toolbox/toolbox.component.d.ts +127 -127
  319. package/lib/tool/toolbox/toolbox.module.d.ts +13 -12
  320. package/lib/widget/index.d.ts +2 -2
  321. package/lib/widget/shared/index.d.ts +3 -3
  322. package/lib/widget/shared/widget.d.ts +4 -4
  323. package/lib/widget/shared/widget.interfaces.d.ts +12 -12
  324. package/lib/widget/shared/widget.service.d.ts +10 -10
  325. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +71 -71
  326. package/lib/widget/widget-outlet/widget-outlet.module.d.ts +12 -11
  327. package/lib/widget/widget.module.d.ts +8 -7
  328. package/lib/workspace/index.d.ts +3 -3
  329. package/lib/workspace/shared/index.d.ts +3 -3
  330. package/lib/workspace/shared/store.d.ts +20 -20
  331. package/lib/workspace/shared/workspace.d.ts +108 -108
  332. package/lib/workspace/shared/workspace.interfaces.d.ts +11 -11
  333. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +35 -35
  334. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +12 -11
  335. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -57
  336. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +12 -11
  337. package/lib/workspace/workspace.module.d.ts +9 -8
  338. package/package.json +8 -7
  339. package/public_api.d.ts +68 -66
  340. package/style/common.theming.scss +12 -236
  341. package/style/partial/action.scss +18 -18
  342. package/style/partial/common.variables.scss +8 -8
  343. package/bundles/igo2-common.umd.min.js +0 -17
  344. package/bundles/igo2-common.umd.min.js.map +0 -1
@@ -1,311 +1,310 @@
1
- import { Component, ElementRef, 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 { TableDatabase } from './table-database';
8
- import { TableDataSource } from './table-datasource';
9
- import { TableActionColor } from './table-action-color.enum';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- import * as i2 from "@angular/material/table";
13
- import * as i3 from "@angular/material/sort";
14
- import * as i4 from "@angular/material/form-field";
15
- import * as i5 from "@angular/material/input";
16
- import * as i6 from "@angular/material/checkbox";
17
- import * as i7 from "@angular/material/button";
18
- import * as i8 from "@angular/material/icon";
19
- import * as i9 from "@ngx-translate/core";
20
- const _c0 = ["filter"];
21
- function TableComponent_div_1_Template(rf, ctx) { if (rf & 1) {
22
- i0.ɵɵelementStart(0, "div", 12);
23
- i0.ɵɵelementStart(1, "mat-form-field", 13);
24
- i0.ɵɵelement(2, "input", 14, 15);
25
- i0.ɵɵpipe(4, "translate");
26
- i0.ɵɵelementEnd();
27
- i0.ɵɵelementEnd();
28
- } if (rf & 2) {
29
- i0.ɵɵadvance(2);
30
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(4, 1, "igo.common.table.filter"));
31
- } }
32
- function TableComponent_th_6_Template(rf, ctx) { if (rf & 1) {
33
- const _r11 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "th", 16);
35
- i0.ɵɵelementStart(1, "mat-checkbox", 17);
36
- i0.ɵɵlistener("change", function TableComponent_th_6_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return $event ? ctx_r10.masterToggle() : null; });
37
- i0.ɵɵelementEnd();
38
- i0.ɵɵelementEnd();
39
- } if (rf & 2) {
40
- const ctx_r2 = i0.ɵɵnextContext();
41
- i0.ɵɵadvance(1);
42
- i0.ɵɵproperty("checked", ctx_r2.selection.hasValue() && ctx_r2.isAllSelected())("indeterminate", ctx_r2.selection.hasValue() && !ctx_r2.isAllSelected());
43
- } }
44
- function TableComponent_td_7_Template(rf, ctx) { if (rf & 1) {
45
- const _r14 = i0.ɵɵgetCurrentView();
46
- i0.ɵɵelementStart(0, "td", 18);
47
- i0.ɵɵelementStart(1, "mat-checkbox", 19);
48
- i0.ɵɵlistener("click", function TableComponent_td_7_Template_mat_checkbox_click_1_listener($event) { i0.ɵɵrestoreView(_r14); return $event.stopPropagation(); })("change", function TableComponent_td_7_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r14); const row_r12 = ctx.$implicit; const ctx_r15 = i0.ɵɵnextContext(); return $event ? ctx_r15.selection.toggle(row_r12) : null; });
49
- i0.ɵɵelementEnd();
50
- i0.ɵɵelementEnd();
51
- } if (rf & 2) {
52
- const row_r12 = ctx.$implicit;
53
- const ctx_r3 = i0.ɵɵnextContext();
54
- i0.ɵɵadvance(1);
55
- i0.ɵɵproperty("checked", ctx_r3.selection.isSelected(row_r12));
56
- } }
57
- function TableComponent_ng_container_8_ng_container_1_th_1_Template(rf, ctx) { if (rf & 1) {
58
- i0.ɵɵelementStart(0, "th", 25);
59
- i0.ɵɵtext(1);
60
- i0.ɵɵelementEnd();
61
- } if (rf & 2) {
62
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
63
- i0.ɵɵadvance(1);
64
- i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
65
- } }
66
- function TableComponent_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {
67
- i0.ɵɵelementContainerStart(0);
68
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_th_1_Template, 2, 1, "th", 24);
69
- i0.ɵɵelementContainerEnd();
70
- } }
71
- function TableComponent_ng_container_8_ng_container_2_th_1_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "th", 16);
73
- i0.ɵɵtext(1);
74
- i0.ɵɵelementEnd();
75
- } if (rf & 2) {
76
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
77
- i0.ɵɵadvance(1);
78
- i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
79
- } }
80
- function TableComponent_ng_container_8_ng_container_2_Template(rf, ctx) { if (rf & 1) {
81
- i0.ɵɵelementContainerStart(0);
82
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_2_th_1_Template, 2, 1, "th", 6);
83
- i0.ɵɵelementContainerEnd();
84
- } }
85
- const _c1 = function () { return {}; };
86
- function TableComponent_ng_container_8_ng_container_3_td_1_Template(rf, ctx) { if (rf & 1) {
87
- i0.ɵɵelementStart(0, "td", 27);
88
- i0.ɵɵtext(1);
89
- i0.ɵɵelementEnd();
90
- } if (rf & 2) {
91
- const row_r27 = ctx.$implicit;
92
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
93
- const ctx_r26 = i0.ɵɵnextContext();
94
- i0.ɵɵproperty("ngClass", ctx_r26.model.cellClassFunc ? ctx_r26.model.cellClassFunc(row_r27, column_r16) : i0.ɵɵpureFunction0(2, _c1));
95
- i0.ɵɵadvance(1);
96
- i0.ɵɵtextInterpolate1(" ", ctx_r26.getValue(row_r27, column_r16.name), " ");
97
- } }
98
- function TableComponent_ng_container_8_ng_container_3_Template(rf, ctx) { if (rf & 1) {
99
- i0.ɵɵelementContainerStart(0);
100
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_3_td_1_Template, 2, 3, "td", 26);
101
- i0.ɵɵelementContainerEnd();
102
- } }
103
- function TableComponent_ng_container_8_ng_template_4_td_0_Template(rf, ctx) { if (rf & 1) {
104
- i0.ɵɵelement(0, "td", 29);
105
- } if (rf & 2) {
106
- const row_r30 = ctx.$implicit;
107
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
108
- const ctx_r29 = i0.ɵɵnextContext();
109
- 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);
110
- } }
111
- function TableComponent_ng_container_8_ng_template_4_Template(rf, ctx) { if (rf & 1) {
112
- i0.ɵɵtemplate(0, TableComponent_ng_container_8_ng_template_4_td_0_Template, 1, 3, "td", 28);
113
- } }
114
- function TableComponent_ng_container_8_Template(rf, ctx) { if (rf & 1) {
115
- i0.ɵɵelementContainerStart(0, 20);
116
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_Template, 2, 0, "ng-container", 21);
117
- i0.ɵɵtemplate(2, TableComponent_ng_container_8_ng_container_2_Template, 2, 0, "ng-container", 21);
118
- i0.ɵɵtemplate(3, TableComponent_ng_container_8_ng_container_3_Template, 2, 0, "ng-container", 22);
119
- i0.ɵɵtemplate(4, TableComponent_ng_container_8_ng_template_4_Template, 1, 0, "ng-template", null, 23, i0.ɵɵtemplateRefExtractor);
120
- i0.ɵɵelementContainerEnd();
121
- } if (rf & 2) {
122
- const column_r16 = ctx.$implicit;
123
- const _r20 = i0.ɵɵreference(5);
124
- i0.ɵɵproperty("matColumnDef", column_r16.name);
125
- i0.ɵɵadvance(1);
126
- i0.ɵɵproperty("ngIf", column_r16.sortable);
127
- i0.ɵɵadvance(1);
128
- i0.ɵɵproperty("ngIf", !column_r16.sortable);
129
- i0.ɵɵadvance(1);
130
- i0.ɵɵproperty("ngIf", !column_r16.html)("ngIfElse", _r20);
131
- } }
132
- function TableComponent_th_10_Template(rf, ctx) { if (rf & 1) {
133
- i0.ɵɵelement(0, "th", 16);
134
- } }
135
- function TableComponent_td_11_button_1_Template(rf, ctx) { if (rf & 1) {
136
- const _r36 = i0.ɵɵgetCurrentView();
137
- i0.ɵɵelementStart(0, "button", 31);
138
- i0.ɵɵlistener("click", function TableComponent_td_11_button_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r36); const action_r34 = ctx.$implicit; const row_r32 = i0.ɵɵnextContext().$implicit; const ctx_r35 = i0.ɵɵnextContext(); return ctx_r35.handleClickAction($event, action_r34, row_r32); });
139
- i0.ɵɵelement(1, "mat-icon", 32);
140
- i0.ɵɵelementEnd();
141
- } if (rf & 2) {
142
- const action_r34 = ctx.$implicit;
143
- const ctx_r33 = i0.ɵɵnextContext(2);
144
- i0.ɵɵproperty("color", ctx_r33.getActionColor(action_r34.color));
145
- i0.ɵɵadvance(1);
146
- i0.ɵɵpropertyInterpolate("svgIcon", action_r34.icon);
147
- } }
148
- function TableComponent_td_11_Template(rf, ctx) { if (rf & 1) {
149
- i0.ɵɵelementStart(0, "td", 18);
150
- i0.ɵɵtemplate(1, TableComponent_td_11_button_1_Template, 2, 2, "button", 30);
151
- i0.ɵɵelementEnd();
152
- } if (rf & 2) {
153
- const ctx_r6 = i0.ɵɵnextContext();
154
- i0.ɵɵadvance(1);
155
- i0.ɵɵproperty("ngForOf", ctx_r6.model.actions);
156
- } }
157
- function TableComponent_tr_12_Template(rf, ctx) { if (rf & 1) {
158
- i0.ɵɵelement(0, "tr", 33);
159
- } }
160
- function TableComponent_tr_13_Template(rf, ctx) { if (rf & 1) {
161
- const _r40 = i0.ɵɵgetCurrentView();
162
- i0.ɵɵelementStart(0, "tr", 34);
163
- i0.ɵɵlistener("click", function TableComponent_tr_13_Template_tr_click_0_listener() { i0.ɵɵrestoreView(_r40); const row_r38 = ctx.$implicit; const ctx_r39 = i0.ɵɵnextContext(); return ctx_r39.selection.toggle(row_r38); });
164
- i0.ɵɵelementEnd();
165
- } if (rf & 2) {
166
- const row_r38 = ctx.$implicit;
167
- const ctx_r8 = i0.ɵɵnextContext();
168
- i0.ɵɵproperty("ngClass", ctx_r8.model.rowClassFunc ? ctx_r8.model.rowClassFunc(row_r38) : i0.ɵɵpureFunction0(1, _c1));
169
- } }
170
- export class TableComponent {
171
- constructor() {
172
- this._hasFIlterInput = true;
173
- this.selection = new SelectionModel(true, []);
174
- this.select = new EventEmitter();
175
- }
176
- get database() {
177
- return this._database;
178
- }
179
- set database(value) {
180
- this._database = value;
181
- }
182
- get model() {
183
- return this._model;
184
- }
185
- set model(value) {
186
- this._model = value;
187
- }
188
- get hasFilterInput() {
189
- return this._hasFIlterInput;
190
- }
191
- set hasFilterInput(value) {
192
- this._hasFIlterInput = value;
193
- }
194
- ngOnInit() {
195
- this.dataSource = new TableDataSource(this.database, this.model, this.sort);
196
- if (this.model) {
197
- this.displayedColumns = this.model.columns
198
- .filter(c => c.displayed !== false)
199
- .map(c => c.name);
200
- if (this.model.selectionCheckbox) {
201
- this.displayedColumns.unshift('selectionCheckbox');
202
- }
203
- if (this.model.actions && this.model.actions.length) {
204
- this.displayedColumns.push('action');
205
- }
206
- }
207
- this.selection.changed.subscribe(e => this.select.emit(e));
208
- }
209
- ngAfterViewInit() {
210
- if (this.filter) {
211
- fromEvent(this.filter.nativeElement, 'keyup')
212
- .pipe(debounceTime(150), distinctUntilChanged())
213
- .subscribe(() => {
214
- if (!this.dataSource) {
215
- return;
216
- }
217
- this.dataSource.filter = this.filter.nativeElement.value;
218
- });
219
- }
220
- }
221
- ngOnChanges(change) {
222
- if (change.database) {
223
- this.dataSource = new TableDataSource(this.database, this.model, this.sort);
224
- this.selection.clear();
225
- }
226
- }
227
- getActionColor(colorId) {
228
- return TableActionColor[colorId];
229
- }
230
- getValue(row, key) {
231
- return ObjectUtils.resolve(row, key);
232
- }
233
- /** Whether the number of selected elements matches the total number of rows. */
234
- isAllSelected() {
235
- const numSelected = this.selection.selected.length;
236
- const numRows = this.database.data.length;
237
- return numSelected === numRows;
238
- }
239
- /** Selects all rows if they are not all selected; otherwise clear selection. */
240
- masterToggle() {
241
- this.isAllSelected()
242
- ? this.selection.clear()
243
- : this.database.data.forEach(row => this.selection.select(row));
244
- }
245
- handleClickAction(event, action, row) {
246
- event.stopPropagation();
247
- action.click(row);
248
- }
249
- }
250
- TableComponent.ɵfac = function TableComponent_Factory(t) { return new (t || TableComponent)(); };
251
- TableComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["igo-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
252
- i0.ɵɵviewQuery(_c0, true);
253
- i0.ɵɵstaticViewQuery(MatSort, true);
254
- } if (rf & 2) {
255
- var _t;
256
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
257
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
258
- } }, 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) {
259
- i0.ɵɵelementStart(0, "div", 0);
260
- i0.ɵɵtemplate(1, TableComponent_div_1_Template, 5, 3, "div", 1);
261
- i0.ɵɵelementStart(2, "div", 2);
262
- i0.ɵɵelementStart(3, "table", 3, 4);
263
- i0.ɵɵelementContainerStart(5, 5);
264
- i0.ɵɵtemplate(6, TableComponent_th_6_Template, 2, 2, "th", 6);
265
- i0.ɵɵtemplate(7, TableComponent_td_7_Template, 2, 1, "td", 7);
266
- i0.ɵɵelementContainerEnd();
267
- i0.ɵɵtemplate(8, TableComponent_ng_container_8_Template, 6, 5, "ng-container", 8);
268
- i0.ɵɵelementContainerStart(9, 9);
269
- i0.ɵɵtemplate(10, TableComponent_th_10_Template, 1, 0, "th", 6);
270
- i0.ɵɵtemplate(11, TableComponent_td_11_Template, 2, 1, "td", 7);
271
- i0.ɵɵelementContainerEnd();
272
- i0.ɵɵtemplate(12, TableComponent_tr_12_Template, 1, 0, "tr", 10);
273
- i0.ɵɵtemplate(13, TableComponent_tr_13_Template, 1, 2, "tr", 11);
274
- i0.ɵɵelementEnd();
275
- i0.ɵɵelementEnd();
276
- i0.ɵɵelementEnd();
277
- } if (rf & 2) {
278
- i0.ɵɵadvance(1);
279
- i0.ɵɵproperty("ngIf", ctx.hasFilterInput);
280
- i0.ɵɵadvance(2);
281
- i0.ɵɵproperty("dataSource", ctx.dataSource);
282
- i0.ɵɵadvance(5);
283
- i0.ɵɵproperty("ngForOf", ctx.model.columns);
284
- i0.ɵɵadvance(4);
285
- i0.ɵɵproperty("matHeaderRowDef", ctx.displayedColumns);
286
- i0.ɵɵadvance(1);
287
- i0.ɵɵproperty("matRowDefColumns", ctx.displayedColumns);
288
- } }, directives: [i1.NgIf, i2.MatTable, i3.MatSort, i2.MatColumnDef, i2.MatHeaderCellDef, i2.MatCellDef, i1.NgForOf, i2.MatHeaderRowDef, i2.MatRowDef, i4.MatFormField, i5.MatInput, i2.MatHeaderCell, i6.MatCheckbox, i2.MatCell, i3.MatSortHeader, i1.NgClass, i7.MatButton, i8.MatIcon, i2.MatHeaderRow, i2.MatRow], pipes: [i9.TranslatePipe], styles: ["[_nghost-%COMP%]{display:block;height:100%;width:100%}.table-container[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto}.table-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.table-header[_ngcontent-%COMP%]{align-items:baseline;display:flex;flex:0 1 auto;font-size:20px;justify-content:space-between;max-width:500px;min-height:64px;padding:8px 24px 0}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}"] });
289
- /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(TableComponent, [{
290
- type: Component,
291
- args: [{
292
- selector: 'igo-table',
293
- templateUrl: './table.component.html',
294
- styleUrls: ['./table.component.scss']
295
- }]
296
- }], null, { database: [{
297
- type: Input
298
- }], model: [{
299
- type: Input
300
- }], hasFilterInput: [{
301
- type: Input
302
- }], select: [{
303
- type: Output
304
- }], filter: [{
305
- type: ViewChild,
306
- args: ['filter']
307
- }], sort: [{
308
- type: ViewChild,
309
- args: [MatSort, { static: true }]
310
- }] }); })();
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9zcnYvYXBwcy9pZ28yLWxpYi9wYWNrYWdlcy9jb21tb24vc3JjLyIsInNvdXJjZXMiOlsibGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsImxpYi90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFJTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7Ozs7SUNyQjNELCtCQUNFO0lBQUEsMENBQ0U7SUFBQSxnQ0FDRjs7SUFBQSxpQkFBaUI7SUFDbkIsaUJBQU07O0lBRnNCLGVBQXFEO0lBQXJELDZFQUFxRDs7OztJQVMzRSw4QkFDRTtJQUFBLHdDQUdlO0lBSEQsNE1BQW9DLElBQUksSUFBQztJQUd2RCxpQkFBZTtJQUNqQixpQkFBSzs7O0lBSFcsZUFBbUQ7SUFBbkQsK0VBQW1ELHlFQUFBOzs7O0lBSW5FLDhCQUNFO0lBQUEsd0NBR2U7SUFIRCxvSUFBUyx3QkFBd0IsSUFBQyxxTUFDZixpQ0FB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UixpQkFBTTs7UUF4RXNCLGVBQXNCO1FBQXRCLHlDQUFzQjtRQU90QixlQUF5QjtRQUF6QiwyQ0FBeUI7UUFrQkosZUFBb0M7UUFBcEMsMkNBQW9DO1FBcUM1RCxlQUFvQztRQUFwQyxzREFBb0M7UUFFckQsZUFBZ0Q7UUFBaEQsdURBQWdEOztrRERwQzNDLGNBQWM7Y0FMMUIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixXQUFXLEVBQUUsd0JBQXdCO2dCQUNyQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzthQUN0QztnQkFHSyxRQUFRO2tCQURYLEtBQUs7WUFVRixLQUFLO2tCQURSLEtBQUs7WUFVRixjQUFjO2tCQURqQixLQUFLO1lBY04sTUFBTTtrQkFETCxNQUFNO1lBT2MsTUFBTTtrQkFBMUIsU0FBUzttQkFBQyxRQUFRO1lBQ21CLElBQUk7a0JBQXpDLFNBQVM7bUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi90YWJsZS1tb2RlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFibGVEYXRhYmFzZSB9IGZyb20gJy4vdGFibGUtZGF0YWJhc2UnO1xuaW1wb3J0IHsgVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi90YWJsZS1kYXRhc291cmNlJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uQ29sb3IgfSBmcm9tICcuL3RhYmxlLWFjdGlvbi1jb2xvci5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KClcbiAgZ2V0IGRhdGFiYXNlKCk6IFRhYmxlRGF0YWJhc2Uge1xuICAgIHJldHVybiB0aGlzLl9kYXRhYmFzZTtcbiAgfVxuICBzZXQgZGF0YWJhc2UodmFsdWU6IFRhYmxlRGF0YWJhc2UpIHtcbiAgICB0aGlzLl9kYXRhYmFzZSA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2RhdGFiYXNlOiBUYWJsZURhdGFiYXNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBtb2RlbCgpOiBUYWJsZU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gIH1cbiAgc2V0IG1vZGVsKHZhbHVlOiBUYWJsZU1vZGVsKSB7XG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9tb2RlbDogVGFibGVNb2RlbDtcblxuICBASW5wdXQoKVxuICBnZXQgaGFzRmlsdGVySW5wdXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc0ZJbHRlcklucHV0O1xuICB9XG4gIHNldCBoYXNGaWx0ZXJJbnB1dCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hhc0ZJbHRlcklucHV0ID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfaGFzRklsdGVySW5wdXQgPSB0cnVlO1xuXG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5zO1xuICBwdWJsaWMgZGF0YVNvdXJjZTogVGFibGVEYXRhU291cmNlIHwgbnVsbDtcbiAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KHRydWUsIFtdKTtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgYWRkZWQ6IGFueVtdO1xuICAgIHJlbW92ZWQ6IGFueVtdO1xuICAgIHNvdXJjZTogU2VsZWN0aW9uTW9kZWw8YW55PjtcbiAgfT4oKTtcblxuICBAVmlld0NoaWxkKCdmaWx0ZXInKSBmaWx0ZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IHRydWUgfSkgc29ydDogTWF0U29ydDtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgVGFibGVEYXRhU291cmNlKHRoaXMuZGF0YWJhc2UsIHRoaXMubW9kZWwsIHRoaXMuc29ydCk7XG5cbiAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5tb2RlbC5jb2x1bW5zXG4gICAgICAgIC5maWx0ZXIoYyA9PiBjLmRpc3BsYXllZCAhPT0gZmFsc2UpXG4gICAgICAgIC5tYXAoYyA9PiBjLm5hbWUpO1xuXG4gICAgICBpZiAodGhpcy5tb2RlbC5zZWxlY3Rpb25DaGVja2JveCkge1xuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMudW5zaGlmdCgnc2VsZWN0aW9uQ2hlY2tib3gnKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1vZGVsLmFjdGlvbnMgJiYgdGhpcy5tb2RlbC5hY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3Rpb24uY2hhbmdlZC5zdWJzY3JpYmUoZSA9PiB0aGlzLnNlbGVjdC5lbWl0KGUpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5maWx0ZXIpIHtcbiAgICAgIGZyb21FdmVudCh0aGlzLmZpbHRlci5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9IHRoaXMuZmlsdGVyLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZSkge1xuICAgIGlmIChjaGFuZ2UuZGF0YWJhc2UpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBUYWJsZURhdGFTb3VyY2UoXG4gICAgICAgIHRoaXMuZGF0YWJhc2UsXG4gICAgICAgIHRoaXMubW9kZWwsXG4gICAgICAgIHRoaXMuc29ydFxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWN0aW9uQ29sb3IoY29sb3JJZDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVGFibGVBY3Rpb25Db2xvcltjb2xvcklkXTtcbiAgfVxuXG4gIGdldFZhbHVlKHJvdywga2V5KSB7XG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlc29sdmUocm93LCBrZXkpO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBlbGVtZW50cyBtYXRjaGVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cy4gKi9cbiAgaXNBbGxTZWxlY3RlZCgpIHtcbiAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcbiAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhYmFzZS5kYXRhLmxlbmd0aDtcbiAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3M7XG4gIH1cblxuICAvKiogU2VsZWN0cyBhbGwgcm93cyBpZiB0aGV5IGFyZSBub3QgYWxsIHNlbGVjdGVkOyBvdGhlcndpc2UgY2xlYXIgc2VsZWN0aW9uLiAqL1xuICBtYXN0ZXJUb2dnbGUoKSB7XG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkKClcbiAgICAgID8gdGhpcy5zZWxlY3Rpb24uY2xlYXIoKVxuICAgICAgOiB0aGlzLmRhdGFiYXNlLmRhdGEuZm9yRWFjaChyb3cgPT4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdykpO1xuICB9XG5cbiAgaGFuZGxlQ2xpY2tBY3Rpb24oZXZlbnQsIGFjdGlvbiwgcm93KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgYWN0aW9uLmNsaWNrKHJvdyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9J3RhYmxlLWJveCc+XG4gIDxkaXYgY2xhc3M9J3RhYmxlLWhlYWRlcicgKm5nSWY9XCJoYXNGaWx0ZXJJbnB1dFwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdFBsYWNlaG9sZGVyPSduZXZlcic+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgI2ZpbHRlciBbcGxhY2Vob2xkZXJdPVwiJ2lnby5jb21tb24udGFibGUuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9J3RhYmxlLWNvbnRhaW5lcic+XG4gICAgPHRhYmxlIG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPSdkYXRhU291cmNlJyBtYXRTb3J0PlxuXG4gICAgICA8IS0tIENoZWNrYm94IENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0aW9uQ2hlY2tib3hcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCI+XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24udG9nZ2xlKHJvdykgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5pc1NlbGVjdGVkKHJvdylcIj5cbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPSdjb2x1bW4ubmFtZScgKm5nRm9yPSdsZXQgY29sdW1uIG9mIG1vZGVsLmNvbHVtbnMnPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPSdjb2x1bW4uc29ydGFibGUnPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiB7e2NvbHVtbi50aXRsZX19IDwvdGg+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9JyFjb2x1bW4uc29ydGFibGUnPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7Y29sdW1uLnRpdGxlfX0gPC90aD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uaHRtbDsgZWxzZSBjZWxsSFRNTFwiPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0nbGV0IHJvdycgY2xhc3M9XCJtYXQtY2VsbC10ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1vZGVsLmNlbGxDbGFzc0Z1bmMgPyBtb2RlbC5jZWxsQ2xhc3NGdW5jKHJvdywgY29sdW1uKSA6IHt9XCI+XG4gICAgICAgICAgICB7e2dldFZhbHVlKHJvdywgY29sdW1uLm5hbWUpfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGxIVE1MPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0nbGV0IHJvdycgY2xhc3M9XCJtYXQtY2VsbC10ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1vZGVsLmNlbGxDbGFzc0Z1bmMgPyBtb2RlbC5jZWxsQ2xhc3NGdW5jKHJvdywgY29sdW1uKSA6IHt9XCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZ2V0VmFsdWUocm93LCBjb2x1bW4ubmFtZSlcIj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQWN0aW9uIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPSdhY3Rpb24nPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0nbGV0IHJvdyc+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9J2xldCBhY3Rpb24gb2YgbW9kZWwuYWN0aW9ucydcbiAgICAgICAgICBtYXQtbWluaS1mYWJcbiAgICAgICAgICBbY29sb3JdPSdnZXRBY3Rpb25Db2xvcihhY3Rpb24uY29sb3IpJ1xuICAgICAgICAgIChjbGljayk9J2hhbmRsZUNsaWNrQWN0aW9uKCRldmVudCwgYWN0aW9uLCByb3cpJz5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3thY3Rpb24uaWNvbn19XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj0nZGlzcGxheWVkQ29sdW1uczsnPjwvdHI+XG4gICAgICA8dHIgbWF0LXJvd1xuICAgICAgICAqbWF0Um93RGVmPSdsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zOydcbiAgICAgICAgW25nQ2xhc3NdPVwibW9kZWwucm93Q2xhc3NGdW5jID8gbW9kZWwucm93Q2xhc3NGdW5jKHJvdykgOiB7fVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3Rpb24udG9nZ2xlKHJvdylcIj5cbiAgICAgIDwvdHI+XG5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
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/table";
12
+ import * as i3 from "@angular/material/sort";
13
+ import * as i4 from "@angular/material/form-field";
14
+ import * as i5 from "@angular/material/input";
15
+ import * as i6 from "@angular/material/checkbox";
16
+ import * as i7 from "@angular/material/button";
17
+ import * as i8 from "@angular/material/icon";
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);
22
+ i0.ɵɵelementStart(1, "mat-form-field", 13);
23
+ i0.ɵɵelement(2, "input", 14, 15);
24
+ i0.ɵɵpipe(4, "translate");
25
+ i0.ɵɵelementEnd();
26
+ i0.ɵɵelementEnd();
27
+ } if (rf & 2) {
28
+ i0.ɵɵadvance(2);
29
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(4, 1, "igo.common.table.filter"));
30
+ } }
31
+ function TableComponent_th_6_Template(rf, ctx) { if (rf & 1) {
32
+ const _r11 = i0.ɵɵgetCurrentView();
33
+ i0.ɵɵelementStart(0, "th", 16);
34
+ i0.ɵɵelementStart(1, "mat-checkbox", 17);
35
+ i0.ɵɵlistener("change", function TableComponent_th_6_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return $event ? ctx_r10.masterToggle() : null; });
36
+ i0.ɵɵelementEnd();
37
+ i0.ɵɵelementEnd();
38
+ } if (rf & 2) {
39
+ const ctx_r2 = i0.ɵɵnextContext();
40
+ i0.ɵɵadvance(1);
41
+ i0.ɵɵproperty("checked", ctx_r2.selection.hasValue() && ctx_r2.isAllSelected())("indeterminate", ctx_r2.selection.hasValue() && !ctx_r2.isAllSelected());
42
+ } }
43
+ function TableComponent_td_7_Template(rf, ctx) { if (rf & 1) {
44
+ const _r15 = i0.ɵɵgetCurrentView();
45
+ i0.ɵɵelementStart(0, "td", 18);
46
+ i0.ɵɵelementStart(1, "mat-checkbox", 19);
47
+ 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 $event ? ctx_r14.selection.toggle(row_r12) : null; });
48
+ i0.ɵɵelementEnd();
49
+ i0.ɵɵelementEnd();
50
+ } if (rf & 2) {
51
+ const row_r12 = ctx.$implicit;
52
+ const ctx_r3 = i0.ɵɵnextContext();
53
+ i0.ɵɵadvance(1);
54
+ i0.ɵɵproperty("checked", ctx_r3.selection.isSelected(row_r12));
55
+ } }
56
+ function TableComponent_ng_container_8_ng_container_1_th_1_Template(rf, ctx) { if (rf & 1) {
57
+ i0.ɵɵelementStart(0, "th", 25);
58
+ i0.ɵɵtext(1);
59
+ i0.ɵɵelementEnd();
60
+ } if (rf & 2) {
61
+ const column_r16 = i0.ɵɵnextContext(2).$implicit;
62
+ i0.ɵɵadvance(1);
63
+ i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
64
+ } }
65
+ function TableComponent_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {
66
+ i0.ɵɵelementContainerStart(0);
67
+ i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_th_1_Template, 2, 1, "th", 24);
68
+ i0.ɵɵelementContainerEnd();
69
+ } }
70
+ function TableComponent_ng_container_8_ng_container_2_th_1_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵelementStart(0, "th", 16);
72
+ i0.ɵɵtext(1);
73
+ i0.ɵɵelementEnd();
74
+ } if (rf & 2) {
75
+ const column_r16 = i0.ɵɵnextContext(2).$implicit;
76
+ i0.ɵɵadvance(1);
77
+ i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
78
+ } }
79
+ function TableComponent_ng_container_8_ng_container_2_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelementContainerStart(0);
81
+ i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_2_th_1_Template, 2, 1, "th", 6);
82
+ i0.ɵɵelementContainerEnd();
83
+ } }
84
+ const _c1 = function () { return {}; };
85
+ function TableComponent_ng_container_8_ng_container_3_td_1_Template(rf, ctx) { if (rf & 1) {
86
+ i0.ɵɵelementStart(0, "td", 27);
87
+ i0.ɵɵtext(1);
88
+ i0.ɵɵelementEnd();
89
+ } if (rf & 2) {
90
+ const row_r27 = ctx.$implicit;
91
+ const column_r16 = i0.ɵɵnextContext(2).$implicit;
92
+ const ctx_r26 = i0.ɵɵnextContext();
93
+ i0.ɵɵproperty("ngClass", ctx_r26.model.cellClassFunc ? ctx_r26.model.cellClassFunc(row_r27, column_r16) : i0.ɵɵpureFunction0(2, _c1));
94
+ i0.ɵɵadvance(1);
95
+ i0.ɵɵtextInterpolate1(" ", ctx_r26.getValue(row_r27, column_r16.name), " ");
96
+ } }
97
+ function TableComponent_ng_container_8_ng_container_3_Template(rf, ctx) { if (rf & 1) {
98
+ i0.ɵɵelementContainerStart(0);
99
+ i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_3_td_1_Template, 2, 3, "td", 26);
100
+ i0.ɵɵelementContainerEnd();
101
+ } }
102
+ function TableComponent_ng_container_8_ng_template_4_td_0_Template(rf, ctx) { if (rf & 1) {
103
+ i0.ɵɵelement(0, "td", 29);
104
+ } if (rf & 2) {
105
+ const row_r30 = ctx.$implicit;
106
+ const column_r16 = i0.ɵɵnextContext(2).$implicit;
107
+ const ctx_r29 = i0.ɵɵnextContext();
108
+ 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);
109
+ } }
110
+ function TableComponent_ng_container_8_ng_template_4_Template(rf, ctx) { if (rf & 1) {
111
+ i0.ɵɵtemplate(0, TableComponent_ng_container_8_ng_template_4_td_0_Template, 1, 3, "td", 28);
112
+ } }
113
+ function TableComponent_ng_container_8_Template(rf, ctx) { if (rf & 1) {
114
+ i0.ɵɵelementContainerStart(0, 20);
115
+ i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_Template, 2, 0, "ng-container", 21);
116
+ i0.ɵɵtemplate(2, TableComponent_ng_container_8_ng_container_2_Template, 2, 0, "ng-container", 21);
117
+ i0.ɵɵtemplate(3, TableComponent_ng_container_8_ng_container_3_Template, 2, 0, "ng-container", 22);
118
+ i0.ɵɵtemplate(4, TableComponent_ng_container_8_ng_template_4_Template, 1, 0, "ng-template", null, 23, i0.ɵɵtemplateRefExtractor);
119
+ i0.ɵɵelementContainerEnd();
120
+ } if (rf & 2) {
121
+ const column_r16 = ctx.$implicit;
122
+ const _r20 = i0.ɵɵreference(5);
123
+ i0.ɵɵproperty("matColumnDef", column_r16.name);
124
+ i0.ɵɵadvance(1);
125
+ i0.ɵɵproperty("ngIf", column_r16.sortable);
126
+ i0.ɵɵadvance(1);
127
+ i0.ɵɵproperty("ngIf", !column_r16.sortable);
128
+ i0.ɵɵadvance(1);
129
+ i0.ɵɵproperty("ngIf", !column_r16.html)("ngIfElse", _r20);
130
+ } }
131
+ function TableComponent_th_10_Template(rf, ctx) { if (rf & 1) {
132
+ i0.ɵɵelement(0, "th", 16);
133
+ } }
134
+ function TableComponent_td_11_button_1_Template(rf, ctx) { if (rf & 1) {
135
+ const _r36 = i0.ɵɵgetCurrentView();
136
+ i0.ɵɵelementStart(0, "button", 31);
137
+ 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 ctx_r35.handleClickAction($event, action_r34, row_r32); });
138
+ i0.ɵɵelement(1, "mat-icon", 32);
139
+ i0.ɵɵelementEnd();
140
+ } if (rf & 2) {
141
+ const action_r34 = ctx.$implicit;
142
+ const ctx_r33 = i0.ɵɵnextContext(2);
143
+ i0.ɵɵproperty("color", ctx_r33.getActionColor(action_r34.color));
144
+ i0.ɵɵadvance(1);
145
+ i0.ɵɵpropertyInterpolate("svgIcon", action_r34.icon);
146
+ } }
147
+ function TableComponent_td_11_Template(rf, ctx) { if (rf & 1) {
148
+ i0.ɵɵelementStart(0, "td", 18);
149
+ i0.ɵɵtemplate(1, TableComponent_td_11_button_1_Template, 2, 2, "button", 30);
150
+ i0.ɵɵelementEnd();
151
+ } if (rf & 2) {
152
+ const ctx_r6 = i0.ɵɵnextContext();
153
+ i0.ɵɵadvance(1);
154
+ i0.ɵɵproperty("ngForOf", ctx_r6.model.actions);
155
+ } }
156
+ function TableComponent_tr_12_Template(rf, ctx) { if (rf & 1) {
157
+ i0.ɵɵelement(0, "tr", 33);
158
+ } }
159
+ function TableComponent_tr_13_Template(rf, ctx) { if (rf & 1) {
160
+ const _r40 = i0.ɵɵgetCurrentView();
161
+ i0.ɵɵelementStart(0, "tr", 34);
162
+ 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 ctx_r39.selection.toggle(row_r38); });
163
+ i0.ɵɵelementEnd();
164
+ } if (rf & 2) {
165
+ const row_r38 = ctx.$implicit;
166
+ const ctx_r8 = i0.ɵɵnextContext();
167
+ i0.ɵɵproperty("ngClass", ctx_r8.model.rowClassFunc ? ctx_r8.model.rowClassFunc(row_r38) : i0.ɵɵpureFunction0(1, _c1));
168
+ } }
169
+ export class TableComponent {
170
+ constructor() {
171
+ this._hasFIlterInput = true;
172
+ this.selection = new SelectionModel(true, []);
173
+ this.select = new EventEmitter();
174
+ }
175
+ get database() {
176
+ return this._database;
177
+ }
178
+ set database(value) {
179
+ this._database = value;
180
+ }
181
+ get model() {
182
+ return this._model;
183
+ }
184
+ set model(value) {
185
+ this._model = value;
186
+ }
187
+ get hasFilterInput() {
188
+ return this._hasFIlterInput;
189
+ }
190
+ set hasFilterInput(value) {
191
+ this._hasFIlterInput = value;
192
+ }
193
+ ngOnInit() {
194
+ this.dataSource = new TableDataSource(this.database, this.model, this.sort);
195
+ if (this.model) {
196
+ this.displayedColumns = this.model.columns
197
+ .filter(c => c.displayed !== false)
198
+ .map(c => c.name);
199
+ if (this.model.selectionCheckbox) {
200
+ this.displayedColumns.unshift('selectionCheckbox');
201
+ }
202
+ if (this.model.actions && this.model.actions.length) {
203
+ this.displayedColumns.push('action');
204
+ }
205
+ }
206
+ this.selection.changed.subscribe(e => this.select.emit(e));
207
+ }
208
+ ngAfterViewInit() {
209
+ if (this.filter) {
210
+ fromEvent(this.filter.nativeElement, 'keyup')
211
+ .pipe(debounceTime(150), distinctUntilChanged())
212
+ .subscribe(() => {
213
+ if (!this.dataSource) {
214
+ return;
215
+ }
216
+ this.dataSource.filter = this.filter.nativeElement.value;
217
+ });
218
+ }
219
+ }
220
+ ngOnChanges(change) {
221
+ if (change.database) {
222
+ this.dataSource = new TableDataSource(this.database, this.model, this.sort);
223
+ this.selection.clear();
224
+ }
225
+ }
226
+ getActionColor(colorId) {
227
+ return TableActionColor[colorId];
228
+ }
229
+ getValue(row, key) {
230
+ return ObjectUtils.resolve(row, key);
231
+ }
232
+ /** Whether the number of selected elements matches the total number of rows. */
233
+ isAllSelected() {
234
+ const numSelected = this.selection.selected.length;
235
+ const numRows = this.database.data.length;
236
+ return numSelected === numRows;
237
+ }
238
+ /** Selects all rows if they are not all selected; otherwise clear selection. */
239
+ masterToggle() {
240
+ this.isAllSelected()
241
+ ? this.selection.clear()
242
+ : this.database.data.forEach(row => this.selection.select(row));
243
+ }
244
+ handleClickAction(event, action, row) {
245
+ event.stopPropagation();
246
+ action.click(row);
247
+ }
248
+ }
249
+ TableComponent.ɵfac = function TableComponent_Factory(t) { return new (t || TableComponent)(); };
250
+ TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["igo-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
251
+ i0.ɵɵviewQuery(_c0, 5);
252
+ i0.ɵɵviewQuery(MatSort, 7);
253
+ } if (rf & 2) {
254
+ let _t;
255
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
256
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
257
+ } }, 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) {
258
+ i0.ɵɵelementStart(0, "div", 0);
259
+ i0.ɵɵtemplate(1, TableComponent_div_1_Template, 5, 3, "div", 1);
260
+ i0.ɵɵelementStart(2, "div", 2);
261
+ i0.ɵɵelementStart(3, "table", 3, 4);
262
+ i0.ɵɵelementContainerStart(5, 5);
263
+ i0.ɵɵtemplate(6, TableComponent_th_6_Template, 2, 2, "th", 6);
264
+ i0.ɵɵtemplate(7, TableComponent_td_7_Template, 2, 1, "td", 7);
265
+ i0.ɵɵelementContainerEnd();
266
+ i0.ɵɵtemplate(8, TableComponent_ng_container_8_Template, 6, 5, "ng-container", 8);
267
+ i0.ɵɵelementContainerStart(9, 9);
268
+ i0.ɵɵtemplate(10, TableComponent_th_10_Template, 1, 0, "th", 6);
269
+ i0.ɵɵtemplate(11, TableComponent_td_11_Template, 2, 1, "td", 7);
270
+ i0.ɵɵelementContainerEnd();
271
+ i0.ɵɵtemplate(12, TableComponent_tr_12_Template, 1, 0, "tr", 10);
272
+ i0.ɵɵtemplate(13, TableComponent_tr_13_Template, 1, 2, "tr", 11);
273
+ i0.ɵɵelementEnd();
274
+ i0.ɵɵelementEnd();
275
+ i0.ɵɵelementEnd();
276
+ } if (rf & 2) {
277
+ i0.ɵɵadvance(1);
278
+ i0.ɵɵproperty("ngIf", ctx.hasFilterInput);
279
+ i0.ɵɵadvance(2);
280
+ i0.ɵɵproperty("dataSource", ctx.dataSource);
281
+ i0.ɵɵadvance(5);
282
+ i0.ɵɵproperty("ngForOf", ctx.model.columns);
283
+ i0.ɵɵadvance(4);
284
+ i0.ɵɵproperty("matHeaderRowDef", ctx.displayedColumns);
285
+ i0.ɵɵadvance(1);
286
+ i0.ɵɵproperty("matRowDefColumns", ctx.displayedColumns);
287
+ } }, directives: [i1.NgIf, i2.MatTable, i3.MatSort, i2.MatColumnDef, i2.MatHeaderCellDef, i2.MatCellDef, i1.NgForOf, i2.MatHeaderRowDef, i2.MatRowDef, i4.MatFormField, i5.MatInput, i2.MatHeaderCell, i6.MatCheckbox, i2.MatCell, i3.MatSortHeader, i1.NgClass, i7.MatButton, i8.MatIcon, i2.MatHeaderRow, i2.MatRow], pipes: [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}"] });
288
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
289
+ type: Component,
290
+ args: [{
291
+ selector: 'igo-table',
292
+ templateUrl: './table.component.html',
293
+ styleUrls: ['./table.component.scss']
294
+ }]
295
+ }], null, { database: [{
296
+ type: Input
297
+ }], model: [{
298
+ type: Input
299
+ }], hasFilterInput: [{
300
+ type: Input
301
+ }], select: [{
302
+ type: Output
303
+ }], filter: [{
304
+ type: ViewChild,
305
+ args: ['filter']
306
+ }], sort: [{
307
+ type: ViewChild,
308
+ args: [MatSort, { static: true }]
309
+ }] }); })();
310
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFJTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3JCM0QsK0JBQWlEO0lBQy9DLDBDQUF5QztJQUN2QyxnQ0FBOEU7O0lBQ2hGLGlCQUFpQjtJQUNuQixpQkFBTTs7SUFGc0IsZUFBcUQ7SUFBckQsNkVBQXFEOzs7O0lBUzNFLDhCQUFzQztJQUNwQyx3Q0FFeUU7SUFGM0QsNE1BQW9DLElBQUksSUFBQztJQUd2RCxpQkFBZTtJQUNqQixpQkFBSzs7O0lBSFcsZUFBbUQ7SUFBbkQsK0VBQW1ELHlFQUFBOzs7O0lBSW5FLDhCQUFtQztJQUNqQyx3Q0FFb0Q7SUFGdEMsNEdBQVMsd0JBQXdCLElBQUMsaU9BQ2YsaUNBQXFCLEdBQUcs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aUJBQVE7UUFDVixpQkFBTTtRQUVSLGlCQUFNOztRQXhFdUIsZUFBb0I7UUFBcEIseUNBQW9CO1FBT3JCLGVBQXlCO1FBQXpCLDJDQUF5QjtRQWtCZSxlQUFnQjtRQUFoQiwyQ0FBZ0I7UUFxQzFELGVBQWtDO1FBQWxDLHNEQUFrQztRQUUvQixlQUEwQjtRQUExQix1REFBMEI7O3VGRHBDMUMsY0FBYztjQUwxQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFdBQVcsRUFBRSx3QkFBd0I7Z0JBQ3JDLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2FBQ3RDO2dCQUdLLFFBQVE7a0JBRFgsS0FBSztZQVVGLEtBQUs7a0JBRFIsS0FBSztZQVVGLGNBQWM7a0JBRGpCLEtBQUs7WUFjTixNQUFNO2tCQURMLE1BQU07WUFPYyxNQUFNO2tCQUExQixTQUFTO21CQUFDLFFBQVE7WUFDbUIsSUFBSTtrQkFBekMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBFdmVudEVtaXR0ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gJy4vdGFibGUtbW9kZWwuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVGFibGVEYXRhYmFzZSB9IGZyb20gJy4vdGFibGUtZGF0YWJhc2UnO1xyXG5pbXBvcnQgeyBUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuL3RhYmxlLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBUYWJsZUFjdGlvbkNvbG9yIH0gZnJvbSAnLi90YWJsZS1hY3Rpb24tY29sb3IuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGdldCBkYXRhYmFzZSgpOiBUYWJsZURhdGFiYXNlIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhYmFzZTtcclxuICB9XHJcbiAgc2V0IGRhdGFiYXNlKHZhbHVlOiBUYWJsZURhdGFiYXNlKSB7XHJcbiAgICB0aGlzLl9kYXRhYmFzZSA9IHZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIF9kYXRhYmFzZTogVGFibGVEYXRhYmFzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgbW9kZWwoKTogVGFibGVNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XHJcbiAgfVxyXG4gIHNldCBtb2RlbCh2YWx1ZTogVGFibGVNb2RlbCkge1xyXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbW9kZWw6IFRhYmxlTW9kZWw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGhhc0ZpbHRlcklucHV0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hhc0ZJbHRlcklucHV0O1xyXG4gIH1cclxuICBzZXQgaGFzRmlsdGVySW5wdXQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2hhc0ZJbHRlcklucHV0ID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hhc0ZJbHRlcklucHV0ID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIGRpc3BsYXllZENvbHVtbnM7XHJcbiAgcHVibGljIGRhdGFTb3VyY2U6IFRhYmxlRGF0YVNvdXJjZSB8IG51bGw7XHJcbiAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KHRydWUsIFtdKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBhZGRlZDogYW55W107XHJcbiAgICByZW1vdmVkOiBhbnlbXTtcclxuICAgIHNvdXJjZTogU2VsZWN0aW9uTW9kZWw8YW55PjtcclxuICB9PigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdmaWx0ZXInKSBmaWx0ZXI6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KSBzb3J0OiBNYXRTb3J0O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhYmFzZSwgdGhpcy5tb2RlbCwgdGhpcy5zb3J0KTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RlbCkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLm1vZGVsLmNvbHVtbnNcclxuICAgICAgICAuZmlsdGVyKGMgPT4gYy5kaXNwbGF5ZWQgIT09IGZhbHNlKVxyXG4gICAgICAgIC5tYXAoYyA9PiBjLm5hbWUpO1xyXG5cclxuICAgICAgaWYgKHRoaXMubW9kZWwuc2VsZWN0aW9uQ2hlY2tib3gpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMudW5zaGlmdCgnc2VsZWN0aW9uQ2hlY2tib3gnKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5tb2RlbC5hY3Rpb25zICYmIHRoaXMubW9kZWwuYWN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnYWN0aW9uJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjdGlvbi5jaGFuZ2VkLnN1YnNjcmliZShlID0+IHRoaXMuc2VsZWN0LmVtaXQoZSkpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyKSB7XHJcbiAgICAgIGZyb21FdmVudCh0aGlzLmZpbHRlci5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDE1MCksXHJcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9IHRoaXMuZmlsdGVyLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2UpIHtcclxuICAgIGlmIChjaGFuZ2UuZGF0YWJhc2UpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IFRhYmxlRGF0YVNvdXJjZShcclxuICAgICAgICB0aGlzLmRhdGFiYXNlLFxyXG4gICAgICAgIHRoaXMubW9kZWwsXHJcbiAgICAgICAgdGhpcy5zb3J0XHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpb25Db2xvcihjb2xvcklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFRhYmxlQWN0aW9uQ29sb3JbY29sb3JJZF07XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZShyb3csIGtleSkge1xyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlc29sdmUocm93LCBrZXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBlbGVtZW50cyBtYXRjaGVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cy4gKi9cclxuICBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhYmFzZS5kYXRhLmxlbmd0aDtcclxuICAgIHJldHVybiBudW1TZWxlY3RlZCA9PT0gbnVtUm93cztcclxuICB9XHJcblxyXG4gIC8qKiBTZWxlY3RzIGFsbCByb3dzIGlmIHRoZXkgYXJlIG5vdCBhbGwgc2VsZWN0ZWQ7IG90aGVyd2lzZSBjbGVhciBzZWxlY3Rpb24uICovXHJcbiAgbWFzdGVyVG9nZ2xlKCkge1xyXG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkKClcclxuICAgICAgPyB0aGlzLnNlbGVjdGlvbi5jbGVhcigpXHJcbiAgICAgIDogdGhpcy5kYXRhYmFzZS5kYXRhLmZvckVhY2gocm93ID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNsaWNrQWN0aW9uKGV2ZW50LCBhY3Rpb24sIHJvdykge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBhY3Rpb24uY2xpY2socm93KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz0ndGFibGUtYm94Jz5cclxuICA8ZGl2IGNsYXNzPSd0YWJsZS1oZWFkZXInICpuZ0lmPVwiaGFzRmlsdGVySW5wdXRcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdFBsYWNlaG9sZGVyPSduZXZlcic+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCAjZmlsdGVyIFtwbGFjZWhvbGRlcl09XCInaWdvLmNvbW1vbi50YWJsZS5maWx0ZXInIHwgdHJhbnNsYXRlXCI+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPSd0YWJsZS1jb250YWluZXInPlxyXG4gICAgPHRhYmxlIG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPSdkYXRhU291cmNlJyBtYXRTb3J0PlxyXG5cclxuICAgICAgPCEtLSBDaGVja2JveCBDb2x1bW4gLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0aW9uQ2hlY2tib3hcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2hhbmdlKT1cIiRldmVudCA/IG1hc3RlclRvZ2dsZSgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICFpc0FsbFNlbGVjdGVkKClcIj5cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24udG9nZ2xlKHJvdykgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPSdjb2x1bW4ubmFtZScgKm5nRm9yPSdsZXQgY29sdW1uIG9mIG1vZGVsLmNvbHVtbnMnPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9J2NvbHVtbi5zb3J0YWJsZSc+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4ge3tjb2x1bW4udGl0bGV9fSA8L3RoPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPSchY29sdW1uLnNvcnRhYmxlJz5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7Y29sdW1uLnRpdGxlfX0gPC90aD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uaHRtbDsgZWxzZSBjZWxsSFRNTFwiPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPSdsZXQgcm93JyBjbGFzcz1cIm1hdC1jZWxsLXRleHRcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJtb2RlbC5jZWxsQ2xhc3NGdW5jID8gbW9kZWwuY2VsbENsYXNzRnVuYyhyb3csIGNvbHVtbikgOiB7fVwiPlxyXG4gICAgICAgICAgICB7e2dldFZhbHVlKHJvdywgY29sdW1uLm5hbWUpfX1cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbEhUTUw+XHJcbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9J2xldCByb3cnIGNsYXNzPVwibWF0LWNlbGwtdGV4dFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1vZGVsLmNlbGxDbGFzc0Z1bmMgPyBtb2RlbC5jZWxsQ2xhc3NGdW5jKHJvdywgY29sdW1uKSA6IHt9XCJcclxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRWYWx1ZShyb3csIGNvbHVtbi5uYW1lKVwiPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gQWN0aW9uIENvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9J2FjdGlvbic+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0nbGV0IHJvdyc+XHJcbiAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj0nbGV0IGFjdGlvbiBvZiBtb2RlbC5hY3Rpb25zJ1xyXG4gICAgICAgICAgbWF0LW1pbmktZmFiXHJcbiAgICAgICAgICBbY29sb3JdPSdnZXRBY3Rpb25Db2xvcihhY3Rpb24uY29sb3IpJ1xyXG4gICAgICAgICAgKGNsaWNrKT0naGFuZGxlQ2xpY2tBY3Rpb24oJGV2ZW50LCBhY3Rpb24sIHJvdyknPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInt7YWN0aW9uLmljb259fVwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPSdkaXNwbGF5ZWRDb2x1bW5zOyc+PC90cj5cclxuICAgICAgPHRyIG1hdC1yb3dcclxuICAgICAgICAqbWF0Um93RGVmPSdsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zOydcclxuICAgICAgICBbbmdDbGFzc109XCJtb2RlbC5yb3dDbGFzc0Z1bmMgPyBtb2RlbC5yb3dDbGFzc0Z1bmMocm93KSA6IHt9XCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0aW9uLnRvZ2dsZShyb3cpXCI+XHJcbiAgICAgIDwvdHI+XHJcblxyXG4gICAgPC90YWJsZT5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=