@igo2/common 1.15.4 → 16.0.0-rc.1

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 (476) hide show
  1. package/common-theme.scss +19 -0
  2. package/{esm2020 → esm2022}/igo2-common.mjs +4 -4
  3. package/esm2022/lib/action/action.module.mjs +20 -0
  4. package/esm2022/lib/action/actionbar/actionbar-item.component.mjs +270 -0
  5. package/esm2022/lib/action/actionbar/actionbar.component.mjs +389 -0
  6. package/{esm2020 → esm2022}/lib/action/actionbar/actionbar.module.mjs +57 -57
  7. package/{esm2020 → esm2022}/lib/action/index.mjs +3 -3
  8. package/{esm2020 → esm2022}/lib/action/shared/action.enums.mjs +7 -7
  9. package/esm2022/lib/action/shared/action.interfaces.mjs +2 -0
  10. package/{esm2020 → esm2022}/lib/action/shared/index.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/action/shared/store.mjs +8 -8
  12. package/esm2022/lib/backdrop/backdrop.component.mjs +27 -0
  13. package/{esm2020 → esm2022}/lib/backdrop/backdrop.module.mjs +25 -25
  14. package/{esm2020 → esm2022}/lib/backdrop/index.mjs +2 -2
  15. package/esm2022/lib/badge-icon/badge-icon.directive.mjs +150 -0
  16. package/{esm2020 → esm2022}/lib/badge-icon/badge-icon.module.mjs +26 -26
  17. package/{esm2020 → esm2022}/lib/badge-icon/index.mjs +2 -2
  18. package/esm2022/lib/clickout/clickout.directive.mjs +33 -0
  19. package/{esm2020 → esm2022}/lib/clickout/clickout.module.mjs +24 -24
  20. package/{esm2020 → esm2022}/lib/clickout/index.mjs +2 -2
  21. package/{esm2020 → esm2022}/lib/clone/clone.module.mjs +24 -24
  22. package/esm2022/lib/clone/clone.pipe.mjs +24 -0
  23. package/{esm2020 → esm2022}/lib/clone/index.mjs +2 -2
  24. package/esm2022/lib/collapsible/collapse.directive.mjs +58 -0
  25. package/esm2022/lib/collapsible/collapsible.component.mjs +54 -0
  26. package/{esm2020 → esm2022}/lib/collapsible/collapsible.module.mjs +27 -27
  27. package/{esm2020 → esm2022}/lib/collapsible/index.mjs +3 -3
  28. package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +121 -0
  29. package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +32 -0
  30. package/esm2022/lib/color-picker-form-field/index.mjs +2 -0
  31. package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +47 -0
  32. package/{esm2020 → esm2022}/lib/confirm-dialog/confirm-dialog.module.mjs +29 -29
  33. package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +29 -0
  34. package/{esm2020 → esm2022}/lib/confirm-dialog/index.mjs +3 -3
  35. package/esm2022/lib/context-menu/context-menu.directive.mjs +110 -0
  36. package/{esm2020 → esm2022}/lib/context-menu/context-menu.module.mjs +25 -25
  37. package/{esm2020 → esm2022}/lib/context-menu/index.mjs +3 -3
  38. package/esm2022/lib/context-menu/long-press.directive.mjs +67 -0
  39. package/esm2022/lib/custom-html/custom-html.component.mjs +27 -0
  40. package/{esm2020 → esm2022}/lib/custom-html/custom-html.module.mjs +47 -47
  41. package/esm2022/lib/custom-html/custom-html.pipe.mjs +20 -0
  42. package/{esm2020 → esm2022}/lib/custom-html/index.mjs +3 -3
  43. package/{esm2020 → esm2022}/lib/dom/dom.interfaces.mjs +2 -2
  44. package/{esm2020 → esm2022}/lib/dom/dom.module.mjs +21 -23
  45. package/esm2022/lib/dom/dom.service.mjs +35 -0
  46. package/{esm2020 → esm2022}/lib/dom/index.mjs +3 -3
  47. package/esm2022/lib/drag-drop/drag-drop.directive.mjs +85 -0
  48. package/{esm2020 → esm2022}/lib/drag-drop/drag-drop.module.mjs +24 -24
  49. package/{esm2020 → esm2022}/lib/drag-drop/index.mjs +2 -2
  50. package/esm2022/lib/dynamic-component/dynamic-component.module.mjs +20 -0
  51. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +138 -0
  52. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +22 -0
  53. package/{esm2020 → esm2022}/lib/dynamic-component/index.mjs +3 -3
  54. package/{esm2020 → esm2022}/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -2
  55. package/esm2022/lib/dynamic-component/shared/dynamic-component.mjs +183 -0
  56. package/esm2022/lib/dynamic-component/shared/dynamic-component.service.mjs +30 -0
  57. package/{esm2020 → esm2022}/lib/dynamic-component/shared/index.mjs +4 -4
  58. package/esm2022/lib/entity/entity-selector/entity-selector.component.mjs +214 -0
  59. package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +24 -0
  60. package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +139 -0
  61. package/esm2022/lib/entity/entity-table/entity-table.component.mjs +1455 -0
  62. package/{esm2020 → esm2022}/lib/entity/entity-table/entity-table.module.mjs +96 -102
  63. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +167 -0
  64. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -0
  65. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +22 -0
  66. package/{esm2020 → esm2022}/lib/entity/entity.module.mjs +29 -31
  67. package/{esm2020 → esm2022}/lib/entity/index.mjs +6 -6
  68. package/{esm2020 → esm2022}/lib/entity/shared/entity.enums.mjs +28 -28
  69. package/esm2022/lib/entity/shared/entity.interfaces.mjs +2 -0
  70. package/esm2022/lib/entity/shared/entity.utils.mjs +73 -0
  71. package/esm2022/lib/entity/shared/index.mjs +11 -0
  72. package/esm2022/lib/entity/shared/state.mjs +194 -0
  73. package/esm2022/lib/entity/shared/store-strategy.mjs +73 -0
  74. package/esm2022/lib/entity/shared/store.mjs +256 -0
  75. package/esm2022/lib/entity/shared/strategies/filter-custom-function.mjs +80 -0
  76. package/esm2022/lib/entity/shared/strategies/filter-selection.mjs +81 -0
  77. package/{esm2020 → esm2022}/lib/entity/shared/strategies/index.mjs +4 -4
  78. package/esm2022/lib/entity/shared/strategies/strategy.mjs +78 -0
  79. package/esm2022/lib/entity/shared/transaction.mjs +329 -0
  80. package/esm2022/lib/entity/shared/view.mjs +330 -0
  81. package/esm2022/lib/entity/shared/watcher.mjs +135 -0
  82. package/esm2022/lib/flexible/flexible.component.mjs +153 -0
  83. package/{esm2020 → esm2022}/lib/flexible/flexible.module.mjs +24 -24
  84. package/{esm2020 → esm2022}/lib/flexible/flexible.type.mjs +2 -2
  85. package/{esm2020 → esm2022}/lib/flexible/index.mjs +3 -3
  86. package/esm2022/lib/form/form/form.component.mjs +125 -0
  87. package/esm2022/lib/form/form/form.module.mjs +23 -0
  88. package/esm2022/lib/form/form-field/form-field-select.component.mjs +140 -0
  89. package/esm2022/lib/form/form-field/form-field-text.component.mjs +113 -0
  90. package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +114 -0
  91. package/esm2022/lib/form/form-field/form-field.component.mjs +78 -0
  92. package/{esm2020 → esm2022}/lib/form/form-field/form-field.module.mjs +74 -74
  93. package/{esm2020 → esm2022}/lib/form/form-field/index.mjs +5 -5
  94. package/esm2022/lib/form/form-group/form-group.component.mjs +115 -0
  95. package/esm2022/lib/form/form-group/form-group.module.mjs +36 -0
  96. package/esm2022/lib/form/form.module.mjs +27 -0
  97. package/{esm2020 → esm2022}/lib/form/index.mjs +5 -5
  98. package/{esm2020 → esm2022}/lib/form/shared/form-field-component.mjs +7 -7
  99. package/esm2022/lib/form/shared/form-field.service.mjs +29 -0
  100. package/esm2022/lib/form/shared/form.interfaces.mjs +2 -0
  101. package/esm2022/lib/form/shared/form.service.mjs +82 -0
  102. package/esm2022/lib/form/shared/form.utils.mjs +40 -0
  103. package/{esm2020 → esm2022}/lib/form/shared/index.mjs +6 -6
  104. package/esm2022/lib/home-button/home-button.component.mjs +30 -0
  105. package/{esm2020 → esm2022}/lib/home-button/home-button.module.mjs +41 -41
  106. package/{esm2020 → esm2022}/lib/home-button/index.mjs +2 -2
  107. package/esm2022/lib/image/image-error.directive.mjs +36 -0
  108. package/{esm2020 → esm2022}/lib/image/image.module.mjs +25 -25
  109. package/{esm2020 → esm2022}/lib/image/index.mjs +3 -3
  110. package/esm2022/lib/image/secure-image.pipe.mjs +65 -0
  111. package/{esm2020 → esm2022}/lib/interactive-tour/index.mjs +5 -5
  112. package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +161 -0
  113. package/esm2022/lib/interactive-tour/interactive-tour.interface.mjs +2 -0
  114. package/esm2022/lib/interactive-tour/interactive-tour.loader.mjs +49 -0
  115. package/{esm2020 → esm2022}/lib/interactive-tour/interactive-tour.module.mjs +40 -40
  116. package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +298 -0
  117. package/{esm2020 → esm2022}/lib/json-dialog/index.mjs +3 -3
  118. package/esm2022/lib/json-dialog/json-dialog.component.mjs +114 -0
  119. package/{esm2020 → esm2022}/lib/json-dialog/json-dialog.module.mjs +29 -29
  120. package/{esm2020 → esm2022}/lib/json-dialog/json-dialog.service.mjs +26 -24
  121. package/{esm2020 → esm2022}/lib/keyvalue/index.mjs +2 -2
  122. package/{esm2020 → esm2022}/lib/keyvalue/keyvalue.module.mjs +24 -24
  123. package/{esm2020 → esm2022}/lib/keyvalue/keyvalue.pipe.mjs +18 -18
  124. package/{esm2020 → esm2022}/lib/list/index.mjs +3 -3
  125. package/esm2022/lib/list/list-item.directive.mjs +167 -0
  126. package/esm2022/lib/list/list.component.mjs +268 -0
  127. package/{esm2020 → esm2022}/lib/list/list.module.mjs +29 -29
  128. package/{esm2020 → esm2022}/lib/panel/index.mjs +2 -2
  129. package/esm2022/lib/panel/panel.component.mjs +60 -0
  130. package/{esm2020 → esm2022}/lib/panel/panel.module.mjs +19 -19
  131. package/{esm2020 → esm2022}/lib/sidenav/index.mjs +2 -2
  132. package/esm2022/lib/sidenav/sidenav-shim.directive.mjs +59 -0
  133. package/{esm2020 → esm2022}/lib/sidenav/sidenav.module.mjs +24 -24
  134. package/{esm2020 → esm2022}/lib/spinner/index.mjs +3 -3
  135. package/esm2022/lib/spinner/spinner-activity.directive.mjs +55 -0
  136. package/esm2022/lib/spinner/spinner.component.mjs +38 -0
  137. package/{esm2020 → esm2022}/lib/spinner/spinner.module.mjs +21 -21
  138. package/{esm2020 → esm2022}/lib/stop-propagation/index.mjs +3 -3
  139. package/{esm2020 → esm2022}/lib/stop-propagation/stop-drop-propagation.directive.mjs +22 -22
  140. package/{esm2020 → esm2022}/lib/stop-propagation/stop-propagation.directive.mjs +21 -21
  141. package/{esm2020 → esm2022}/lib/stop-propagation/stop-propagation.module.mjs +25 -25
  142. package/{esm2020 → esm2022}/lib/table/index.mjs +6 -6
  143. package/{esm2020 → esm2022}/lib/table/table-action-color.enum.mjs +7 -7
  144. package/esm2022/lib/table/table-database.mjs +28 -0
  145. package/esm2022/lib/table/table-datasource.mjs +64 -0
  146. package/esm2022/lib/table/table-model.interface.mjs +2 -0
  147. package/esm2022/lib/table/table.component.mjs +302 -0
  148. package/{esm2020 → esm2022}/lib/table/table.module.mjs +67 -67
  149. package/{esm2020 → esm2022}/lib/tool/index.mjs +3 -3
  150. package/{esm2020 → esm2022}/lib/tool/shared/index.mjs +6 -6
  151. package/esm2022/lib/tool/shared/tool-component.mjs +9 -0
  152. package/esm2022/lib/tool/shared/tool.interface.mjs +2 -0
  153. package/esm2022/lib/tool/shared/tool.service.mjs +43 -0
  154. package/{esm2020 → esm2022}/lib/tool/shared/toolbox.enums.mjs +7 -7
  155. package/esm2022/lib/tool/shared/toolbox.mjs +184 -0
  156. package/esm2022/lib/tool/tool.module.mjs +26 -0
  157. package/{esm2020 → esm2022}/lib/tool/toolbox/toolbox.animation.mjs +10 -10
  158. package/esm2022/lib/tool/toolbox/toolbox.component.mjs +273 -0
  159. package/esm2022/lib/tool/toolbox/toolbox.module.mjs +24 -0
  160. package/{esm2020 → esm2022}/lib/widget/index.mjs +3 -3
  161. package/{esm2020 → esm2022}/lib/widget/shared/index.mjs +4 -4
  162. package/esm2022/lib/widget/shared/widget.interfaces.mjs +2 -0
  163. package/{esm2020 → esm2022}/lib/widget/shared/widget.mjs +4 -4
  164. package/esm2022/lib/widget/shared/widget.service.mjs +22 -0
  165. package/esm2022/lib/widget/widget-outlet/widget-outlet.component.mjs +124 -0
  166. package/esm2022/lib/widget/widget-outlet/widget-outlet.module.mjs +23 -0
  167. package/esm2022/lib/widget/widget.module.mjs +21 -0
  168. package/{esm2020 → esm2022}/lib/workspace/index.mjs +4 -4
  169. package/{esm2020 → esm2022}/lib/workspace/shared/index.mjs +4 -4
  170. package/esm2022/lib/workspace/shared/store.mjs +37 -0
  171. package/esm2022/lib/workspace/shared/workspace.interfaces.mjs +2 -0
  172. package/esm2022/lib/workspace/shared/workspace.mjs +143 -0
  173. package/esm2022/lib/workspace/workspace-selector/workspace-selector.component.mjs +58 -0
  174. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +23 -0
  175. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +94 -0
  176. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +23 -0
  177. package/esm2022/lib/workspace/workspace.module.mjs +20 -0
  178. package/esm2022/public_api.mjs +76 -0
  179. package/{fesm2020 → fesm2022}/igo2-common.mjs +9838 -9345
  180. package/fesm2022/igo2-common.mjs.map +1 -0
  181. package/index.d.ts +5 -5
  182. package/lib/action/action.module.d.ts +8 -8
  183. package/lib/action/action.theming.scss +5 -0
  184. package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
  185. package/lib/action/actionbar/actionbar-item.theming.scss +32 -0
  186. package/lib/action/actionbar/actionbar.component.d.ts +147 -146
  187. package/lib/action/actionbar/actionbar.module.d.ts +20 -20
  188. package/lib/action/actionbar/actionbar.theming.scss +22 -0
  189. package/lib/action/index.d.ts +2 -2
  190. package/lib/action/shared/action.enums.d.ts +5 -5
  191. package/lib/action/shared/action.interfaces.d.ts +17 -17
  192. package/lib/action/shared/index.d.ts +3 -3
  193. package/lib/action/shared/store.d.ts +8 -8
  194. package/lib/backdrop/backdrop.component.d.ts +9 -9
  195. package/lib/backdrop/backdrop.module.d.ts +10 -10
  196. package/lib/backdrop/index.d.ts +1 -1
  197. package/lib/badge-icon/badge-icon.directive.d.ts +36 -36
  198. package/lib/badge-icon/badge-icon.module.d.ts +11 -11
  199. package/lib/badge-icon/index.d.ts +1 -1
  200. package/lib/clickout/clickout.directive.d.ts +10 -10
  201. package/lib/clickout/clickout.module.d.ts +9 -9
  202. package/lib/clickout/index.d.ts +1 -1
  203. package/lib/clone/clone.module.d.ts +9 -9
  204. package/lib/clone/clone.pipe.d.ts +7 -7
  205. package/lib/clone/index.d.ts +1 -1
  206. package/lib/collapsible/collapse.directive.d.ts +19 -19
  207. package/lib/collapsible/collapsible.component.d.ts +13 -13
  208. package/lib/collapsible/collapsible.module.d.ts +12 -12
  209. package/lib/collapsible/collapsible.theming.scss +22 -0
  210. package/lib/collapsible/index.d.ts +2 -2
  211. package/lib/color-picker-form-field/color-picker-form-field.component.d.ts +26 -0
  212. package/lib/color-picker-form-field/color-picker-form-field.module.d.ts +10 -0
  213. package/lib/color-picker-form-field/index.d.ts +1 -0
  214. package/lib/confirm-dialog/confirm-dialog.component.d.ts +9 -9
  215. package/lib/confirm-dialog/confirm-dialog.module.d.ts +12 -12
  216. package/lib/confirm-dialog/confirm-dialog.service.d.ts +12 -12
  217. package/lib/confirm-dialog/index.d.ts +2 -2
  218. package/lib/context-menu/context-menu.directive.d.ts +21 -21
  219. package/lib/context-menu/context-menu.module.d.ts +10 -10
  220. package/lib/context-menu/index.d.ts +2 -2
  221. package/lib/context-menu/long-press.directive.d.ts +20 -20
  222. package/lib/custom-html/custom-html.component.d.ts +9 -9
  223. package/lib/custom-html/custom-html.module.d.ts +16 -16
  224. package/lib/custom-html/custom-html.pipe.d.ts +10 -10
  225. package/lib/custom-html/index.d.ts +2 -2
  226. package/lib/dom/dom.interfaces.d.ts +10 -10
  227. package/lib/dom/dom.module.d.ts +8 -8
  228. package/lib/dom/dom.service.d.ts +10 -10
  229. package/lib/dom/index.d.ts +2 -2
  230. package/lib/drag-drop/drag-drop.directive.d.ts +14 -14
  231. package/lib/drag-drop/drag-drop.module.d.ts +9 -9
  232. package/lib/drag-drop/index.d.ts +1 -1
  233. package/lib/dynamic-component/dynamic-component.module.d.ts +8 -8
  234. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -70
  235. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +11 -11
  236. package/lib/dynamic-component/index.d.ts +2 -2
  237. package/lib/dynamic-component/shared/dynamic-component.d.ts +88 -88
  238. package/lib/dynamic-component/shared/dynamic-component.interfaces.d.ts +3 -3
  239. package/lib/dynamic-component/shared/dynamic-component.service.d.ts +18 -18
  240. package/lib/dynamic-component/shared/index.d.ts +3 -3
  241. package/lib/entity/entity-selector/entity-selector.component.d.ts +92 -92
  242. package/lib/entity/entity-selector/entity-selector.module.d.ts +13 -13
  243. package/lib/entity/entity-selector/entity-selector.theming.scss +21 -0
  244. package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
  245. package/lib/entity/entity-table/entity-table.component.d.ts +327 -333
  246. package/lib/entity/entity-table/entity-table.module.d.ts +29 -29
  247. package/lib/entity/entity-table/entity-table.theming.scss +34 -0
  248. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +49 -49
  249. package/lib/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +8 -8
  250. package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +11 -11
  251. package/lib/entity/entity-table-paginator/entity-table-paginator.theming.scss +21 -0
  252. package/lib/entity/entity.module.d.ts +10 -10
  253. package/lib/entity/entity.theming.scss +10 -0
  254. package/lib/entity/index.d.ts +5 -5
  255. package/lib/entity/shared/entity.enums.d.ts +23 -23
  256. package/lib/entity/shared/entity.interfaces.d.ts +95 -114
  257. package/lib/entity/shared/entity.utils.d.ts +49 -49
  258. package/lib/entity/shared/index.d.ts +10 -9
  259. package/lib/entity/shared/state.d.ts +108 -103
  260. package/lib/entity/shared/store-strategy.d.ts +38 -0
  261. package/lib/entity/shared/store.d.ts +147 -176
  262. package/lib/entity/shared/strategies/filter-custom-function.d.ts +51 -51
  263. package/lib/entity/shared/strategies/filter-selection.d.ts +48 -48
  264. package/lib/entity/shared/strategies/index.d.ts +3 -3
  265. package/lib/entity/shared/strategies/strategy.d.ts +56 -56
  266. package/lib/entity/shared/transaction.d.ts +180 -168
  267. package/lib/entity/shared/view.d.ts +193 -193
  268. package/lib/entity/shared/watcher.d.ts +72 -72
  269. package/lib/flexible/flexible.component.d.ts +41 -41
  270. package/lib/flexible/flexible.module.d.ts +9 -9
  271. package/lib/flexible/flexible.type.d.ts +2 -2
  272. package/lib/flexible/index.d.ts +2 -2
  273. package/lib/form/form/form.component.d.ts +53 -53
  274. package/lib/form/form/form.module.d.ts +12 -12
  275. package/lib/form/form-field/form-field-select.component.d.ts +48 -48
  276. package/lib/form/form-field/form-field-text.component.d.ts +41 -41
  277. package/lib/form/form-field/form-field-textarea.component.d.ts +41 -41
  278. package/lib/form/form-field/form-field.component.d.ts +29 -34
  279. package/lib/form/form-field/form-field.module.d.ts +21 -21
  280. package/lib/form/form-field/index.d.ts +4 -4
  281. package/lib/form/form-group/form-group.component.d.ts +49 -49
  282. package/lib/form/form-group/form-group.module.d.ts +14 -14
  283. package/lib/form/form.module.d.ts +13 -13
  284. package/lib/form/index.d.ts +4 -4
  285. package/lib/form/shared/form-field-component.d.ts +1 -1
  286. package/lib/form/shared/form-field.service.d.ts +19 -19
  287. package/lib/form/shared/form.interfaces.d.ts +61 -57
  288. package/lib/form/shared/form.service.d.ts +15 -15
  289. package/lib/form/shared/form.utils.d.ts +11 -11
  290. package/lib/form/shared/index.d.ts +5 -5
  291. package/lib/home-button/home-button.component.d.ts +9 -9
  292. package/lib/home-button/home-button.module.d.ts +15 -15
  293. package/lib/home-button/home-button.theming.scss +18 -0
  294. package/lib/home-button/index.d.ts +1 -1
  295. package/lib/image/image-error.directive.d.ts +11 -11
  296. package/lib/image/image.module.d.ts +10 -10
  297. package/lib/image/index.d.ts +2 -2
  298. package/lib/image/secure-image.pipe.d.ts +13 -13
  299. package/lib/interactive-tour/index.d.ts +4 -4
  300. package/lib/interactive-tour/interactive-tour.component.d.ts +30 -30
  301. package/lib/interactive-tour/interactive-tour.interface.d.ts +33 -32
  302. package/lib/interactive-tour/interactive-tour.loader.d.ts +18 -18
  303. package/lib/interactive-tour/interactive-tour.module.d.ts +12 -12
  304. package/lib/interactive-tour/interactive-tour.service.d.ts +29 -29
  305. package/lib/interactive-tour/interactive-tour.theming.scss +32 -0
  306. package/lib/json-dialog/index.d.ts +2 -2
  307. package/lib/json-dialog/json-dialog.component.d.ts +13 -13
  308. package/lib/json-dialog/json-dialog.module.d.ts +13 -13
  309. package/lib/json-dialog/json-dialog.service.d.ts +10 -10
  310. package/lib/keyvalue/index.d.ts +1 -1
  311. package/lib/keyvalue/keyvalue.module.d.ts +9 -9
  312. package/lib/keyvalue/keyvalue.pipe.d.ts +7 -7
  313. package/lib/list/index.d.ts +2 -2
  314. package/lib/list/list-item.directive.d.ts +43 -43
  315. package/lib/list/list.component.d.ts +51 -51
  316. package/lib/list/list.module.d.ts +14 -14
  317. package/lib/list/list.theming.scss +40 -0
  318. package/lib/panel/index.d.ts +1 -1
  319. package/lib/panel/panel.component.d.ts +10 -10
  320. package/lib/panel/panel.module.d.ts +8 -8
  321. package/lib/panel/panel.theming.scss +30 -0
  322. package/lib/sidenav/index.d.ts +1 -1
  323. package/lib/sidenav/sidenav-shim.directive.d.ts +20 -20
  324. package/lib/sidenav/sidenav.module.d.ts +9 -9
  325. package/lib/spinner/index.d.ts +2 -2
  326. package/lib/spinner/spinner-activity.directive.d.ts +32 -32
  327. package/lib/spinner/spinner.component.d.ts +12 -12
  328. package/lib/spinner/spinner.module.d.ts +10 -10
  329. package/lib/stop-propagation/index.d.ts +2 -2
  330. package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +6 -6
  331. package/lib/stop-propagation/stop-propagation.directive.d.ts +6 -6
  332. package/lib/stop-propagation/stop-propagation.module.d.ts +10 -10
  333. package/lib/table/index.d.ts +5 -5
  334. package/lib/table/table-action-color.enum.d.ts +5 -5
  335. package/lib/table/table-database.d.ts +10 -10
  336. package/lib/table/table-datasource.d.ts +18 -17
  337. package/lib/table/table-model.interface.d.ts +28 -28
  338. package/lib/table/table.component.d.ts +40 -40
  339. package/lib/table/table.module.d.ts +20 -20
  340. package/lib/tool/index.d.ts +2 -2
  341. package/lib/tool/shared/index.d.ts +5 -5
  342. package/lib/tool/shared/tool-component.d.ts +2 -2
  343. package/lib/tool/shared/tool.interface.d.ts +18 -18
  344. package/lib/tool/shared/tool.service.d.ts +30 -30
  345. package/lib/tool/shared/toolbox.d.ts +95 -95
  346. package/lib/tool/shared/toolbox.enums.d.ts +5 -5
  347. package/lib/tool/tool.module.d.ts +10 -10
  348. package/lib/tool/tool.theming.scss +5 -0
  349. package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
  350. package/lib/tool/toolbox/toolbox.component.d.ts +128 -127
  351. package/lib/tool/toolbox/toolbox.module.d.ts +13 -13
  352. package/lib/tool/toolbox/toolbox.theming.scss +105 -0
  353. package/lib/widget/index.d.ts +2 -2
  354. package/lib/widget/shared/index.d.ts +3 -3
  355. package/lib/widget/shared/widget.d.ts +4 -4
  356. package/lib/widget/shared/widget.interfaces.d.ts +12 -12
  357. package/lib/widget/shared/widget.service.d.ts +10 -10
  358. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +71 -71
  359. package/lib/widget/widget-outlet/widget-outlet.module.d.ts +12 -12
  360. package/lib/widget/widget.module.d.ts +8 -8
  361. package/lib/workspace/index.d.ts +3 -3
  362. package/lib/workspace/shared/index.d.ts +3 -3
  363. package/lib/workspace/shared/store.d.ts +20 -20
  364. package/lib/workspace/shared/workspace.d.ts +108 -108
  365. package/lib/workspace/shared/workspace.interfaces.d.ts +11 -11
  366. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +39 -39
  367. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +12 -12
  368. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -57
  369. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +12 -12
  370. package/lib/workspace/workspace.module.d.ts +9 -9
  371. package/locale/en.common.json +43 -0
  372. package/locale/fr.common.json +43 -0
  373. package/package.json +31 -28
  374. package/public_api.d.ts +72 -70
  375. package/style/partial/common-utils.scss +9 -0
  376. package/style/partial/common.variables.scss +8 -8
  377. package/style/style.css +204 -0
  378. package/esm2020/lib/action/action.module.mjs +0 -27
  379. package/esm2020/lib/action/actionbar/actionbar-item.component.mjs +0 -252
  380. package/esm2020/lib/action/actionbar/actionbar.component.mjs +0 -370
  381. package/esm2020/lib/action/shared/action.interfaces.mjs +0 -2
  382. package/esm2020/lib/backdrop/backdrop.component.mjs +0 -26
  383. package/esm2020/lib/badge-icon/badge-icon.directive.mjs +0 -141
  384. package/esm2020/lib/clickout/clickout.directive.mjs +0 -32
  385. package/esm2020/lib/clone/clone.pipe.mjs +0 -24
  386. package/esm2020/lib/collapsible/collapse.directive.mjs +0 -55
  387. package/esm2020/lib/collapsible/collapsible.component.mjs +0 -57
  388. package/esm2020/lib/confirm-dialog/confirm-dialog.component.mjs +0 -44
  389. package/esm2020/lib/confirm-dialog/confirm-dialog.service.mjs +0 -24
  390. package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -103
  391. package/esm2020/lib/context-menu/long-press.directive.mjs +0 -67
  392. package/esm2020/lib/custom-html/custom-html.component.mjs +0 -28
  393. package/esm2020/lib/custom-html/custom-html.pipe.mjs +0 -18
  394. package/esm2020/lib/dom/dom.service.mjs +0 -30
  395. package/esm2020/lib/drag-drop/drag-drop.directive.mjs +0 -88
  396. package/esm2020/lib/dynamic-component/dynamic-component.module.mjs +0 -31
  397. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +0 -122
  398. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +0 -28
  399. package/esm2020/lib/dynamic-component/shared/dynamic-component.mjs +0 -174
  400. package/esm2020/lib/dynamic-component/shared/dynamic-component.service.mjs +0 -29
  401. package/esm2020/lib/entity/entity-selector/entity-selector.component.mjs +0 -194
  402. package/esm2020/lib/entity/entity-selector/entity-selector.module.mjs +0 -32
  403. package/esm2020/lib/entity/entity-table/entity-table-row.directive.mjs +0 -137
  404. package/esm2020/lib/entity/entity-table/entity-table.component.mjs +0 -1376
  405. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +0 -132
  406. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +0 -2
  407. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +0 -28
  408. package/esm2020/lib/entity/shared/entity.interfaces.mjs +0 -2
  409. package/esm2020/lib/entity/shared/entity.utils.mjs +0 -67
  410. package/esm2020/lib/entity/shared/index.mjs +0 -10
  411. package/esm2020/lib/entity/shared/state.mjs +0 -191
  412. package/esm2020/lib/entity/shared/store.mjs +0 -288
  413. package/esm2020/lib/entity/shared/strategies/filter-custom-function.mjs +0 -79
  414. package/esm2020/lib/entity/shared/strategies/filter-selection.mjs +0 -84
  415. package/esm2020/lib/entity/shared/strategies/strategy.mjs +0 -75
  416. package/esm2020/lib/entity/shared/transaction.mjs +0 -316
  417. package/esm2020/lib/entity/shared/view.mjs +0 -315
  418. package/esm2020/lib/entity/shared/watcher.mjs +0 -120
  419. package/esm2020/lib/flexible/flexible.component.mjs +0 -148
  420. package/esm2020/lib/form/form/form.component.mjs +0 -117
  421. package/esm2020/lib/form/form/form.module.mjs +0 -40
  422. package/esm2020/lib/form/form-field/form-field-select.component.mjs +0 -127
  423. package/esm2020/lib/form/form-field/form-field-text.component.mjs +0 -104
  424. package/esm2020/lib/form/form-field/form-field-textarea.component.mjs +0 -105
  425. package/esm2020/lib/form/form-field/form-field.component.mjs +0 -72
  426. package/esm2020/lib/form/form-group/form-group.component.mjs +0 -105
  427. package/esm2020/lib/form/form-group/form-group.module.mjs +0 -40
  428. package/esm2020/lib/form/form.module.mjs +0 -49
  429. package/esm2020/lib/form/shared/form-field.service.mjs +0 -29
  430. package/esm2020/lib/form/shared/form.interfaces.mjs +0 -2
  431. package/esm2020/lib/form/shared/form.service.mjs +0 -81
  432. package/esm2020/lib/form/shared/form.utils.mjs +0 -40
  433. package/esm2020/lib/home-button/home-button.component.mjs +0 -31
  434. package/esm2020/lib/image/image-error.directive.mjs +0 -35
  435. package/esm2020/lib/image/secure-image.pipe.mjs +0 -59
  436. package/esm2020/lib/interactive-tour/interactive-tour.component.mjs +0 -135
  437. package/esm2020/lib/interactive-tour/interactive-tour.interface.mjs +0 -2
  438. package/esm2020/lib/interactive-tour/interactive-tour.loader.mjs +0 -44
  439. package/esm2020/lib/interactive-tour/interactive-tour.service.mjs +0 -285
  440. package/esm2020/lib/json-dialog/json-dialog.component.mjs +0 -109
  441. package/esm2020/lib/list/list-item.directive.mjs +0 -165
  442. package/esm2020/lib/list/list.component.mjs +0 -262
  443. package/esm2020/lib/panel/panel.component.mjs +0 -59
  444. package/esm2020/lib/sidenav/sidenav-shim.directive.mjs +0 -55
  445. package/esm2020/lib/spinner/spinner-activity.directive.mjs +0 -47
  446. package/esm2020/lib/spinner/spinner.component.mjs +0 -35
  447. package/esm2020/lib/table/table-database.mjs +0 -28
  448. package/esm2020/lib/table/table-datasource.mjs +0 -61
  449. package/esm2020/lib/table/table-model.interface.mjs +0 -2
  450. package/esm2020/lib/table/table.component.mjs +0 -297
  451. package/esm2020/lib/tool/shared/tool-component.mjs +0 -9
  452. package/esm2020/lib/tool/shared/tool.interface.mjs +0 -2
  453. package/esm2020/lib/tool/shared/tool.service.mjs +0 -43
  454. package/esm2020/lib/tool/shared/toolbox.mjs +0 -179
  455. package/esm2020/lib/tool/tool.module.mjs +0 -32
  456. package/esm2020/lib/tool/toolbox/toolbox.component.mjs +0 -255
  457. package/esm2020/lib/tool/toolbox/toolbox.module.mjs +0 -36
  458. package/esm2020/lib/widget/shared/widget.interfaces.mjs +0 -2
  459. package/esm2020/lib/widget/shared/widget.service.mjs +0 -20
  460. package/esm2020/lib/widget/widget-outlet/widget-outlet.component.mjs +0 -116
  461. package/esm2020/lib/widget/widget-outlet/widget-outlet.module.mjs +0 -32
  462. package/esm2020/lib/widget/widget.module.mjs +0 -32
  463. package/esm2020/lib/workspace/shared/store.mjs +0 -40
  464. package/esm2020/lib/workspace/shared/workspace.interfaces.mjs +0 -2
  465. package/esm2020/lib/workspace/shared/workspace.mjs +0 -117
  466. package/esm2020/lib/workspace/workspace-selector/workspace-selector.component.mjs +0 -51
  467. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -32
  468. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +0 -88
  469. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +0 -32
  470. package/esm2020/lib/workspace/workspace.module.mjs +0 -27
  471. package/esm2020/public_api.mjs +0 -74
  472. package/fesm2015/igo2-common.mjs +0 -10329
  473. package/fesm2015/igo2-common.mjs.map +0 -1
  474. package/fesm2020/igo2-common.mjs.map +0 -1
  475. package/style/common.theming.scss +0 -12
  476. package/style/partial/action.scss +0 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-common.mjs","sources":["../../../packages/common/src/lib/entity/shared/entity.enums.ts","../../../packages/common/src/lib/entity/shared/entity.utils.ts","../../../packages/common/src/lib/entity/shared/state.ts","../../../packages/common/src/lib/entity/shared/view.ts","../../../packages/common/src/lib/entity/shared/store.ts","../../../packages/common/src/lib/entity/shared/store-strategy.ts","../../../packages/common/src/lib/entity/shared/watcher.ts","../../../packages/common/src/lib/entity/shared/transaction.ts","../../../packages/common/src/lib/entity/shared/strategies/strategy.ts","../../../packages/common/src/lib/entity/shared/strategies/filter-custom-function.ts","../../../packages/common/src/lib/entity/shared/strategies/filter-selection.ts","../../../packages/common/src/lib/entity/entity-selector/entity-selector.component.html","../../../packages/common/src/lib/entity/entity-selector/entity-selector.component.ts","../../../packages/common/src/lib/stop-propagation/stop-propagation.directive.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.html","../../../packages/common/src/lib/image/image-error.directive.ts","../../../packages/common/src/lib/entity/entity-table/entity-table-row.directive.ts","../../../packages/common/src/lib/custom-html/custom-html.pipe.ts","../../../packages/common/src/lib/image/secure-image.pipe.ts","../../../packages/common/src/lib/entity/entity-table/entity-table.component.html","../../../packages/common/src/lib/entity/entity-table/entity-table.component.ts","../../../packages/common/src/lib/action/shared/action.enums.ts","../../../packages/common/src/lib/action/shared/store.ts","../../../packages/common/src/lib/action/actionbar/actionbar-item.component.html","../../../packages/common/src/lib/action/actionbar/actionbar-item.component.ts","../../../packages/common/src/lib/action/actionbar/actionbar.component.html","../../../packages/common/src/lib/action/actionbar/actionbar.component.ts","../../../packages/common/src/lib/action/actionbar/actionbar.module.ts","../../../packages/common/src/lib/action/action.module.ts","../../../packages/common/src/lib/backdrop/backdrop.component.ts","../../../packages/common/src/lib/backdrop/backdrop.component.html","../../../packages/common/src/lib/backdrop/backdrop.module.ts","../../../packages/common/src/lib/badge-icon/badge-icon.directive.ts","../../../packages/common/src/lib/badge-icon/badge-icon.module.ts","../../../packages/common/src/lib/clickout/clickout.directive.ts","../../../packages/common/src/lib/clickout/clickout.module.ts","../../../packages/common/src/lib/clone/clone.pipe.ts","../../../packages/common/src/lib/clone/clone.module.ts","../../../packages/common/src/lib/collapsible/collapse.directive.ts","../../../packages/common/src/lib/collapsible/collapsible.component.ts","../../../packages/common/src/lib/collapsible/collapsible.component.html","../../../packages/common/src/lib/collapsible/collapsible.module.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.component.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.component.html","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.service.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.module.ts","../../../packages/common/src/lib/context-menu/context-menu.directive.ts","../../../packages/common/src/lib/context-menu/long-press.directive.ts","../../../packages/common/src/lib/context-menu/context-menu.module.ts","../../../packages/common/src/lib/custom-html/custom-html.component.ts","../../../packages/common/src/lib/custom-html/custom-html.component.html","../../../packages/common/src/lib/custom-html/custom-html.module.ts","../../../packages/common/src/lib/dom/dom.service.ts","../../../packages/common/src/lib/dom/dom.module.ts","../../../packages/common/src/lib/drag-drop/drag-drop.directive.ts","../../../packages/common/src/lib/drag-drop/drag-drop.module.ts","../../../packages/common/src/lib/dynamic-component/shared/dynamic-component.ts","../../../packages/common/src/lib/dynamic-component/shared/dynamic-component.service.ts","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.ts","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.html","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.ts","../../../packages/common/src/lib/dynamic-component/dynamic-component.module.ts","../../../packages/common/src/lib/flexible/flexible.component.ts","../../../packages/common/src/lib/flexible/flexible.component.html","../../../packages/common/src/lib/flexible/flexible.module.ts","../../../packages/common/src/lib/form/shared/form.utils.ts","../../../packages/common/src/lib/form/form/form.component.ts","../../../packages/common/src/lib/form/form/form.component.html","../../../packages/common/src/lib/form/form/form.module.ts","../../../packages/common/src/lib/form/shared/form-field.service.ts","../../../packages/common/src/lib/form/shared/form.service.ts","../../../packages/common/src/lib/form/shared/form-field-component.ts","../../../packages/common/src/lib/form/form-field/form-field.component.html","../../../packages/common/src/lib/form/form-field/form-field.component.ts","../../../packages/common/src/lib/form/form-field/form-field-select.component.html","../../../packages/common/src/lib/form/form-field/form-field-select.component.ts","../../../packages/common/src/lib/form/form-field/form-field-text.component.html","../../../packages/common/src/lib/form/form-field/form-field-text.component.ts","../../../packages/common/src/lib/form/form-field/form-field-textarea.component.html","../../../packages/common/src/lib/form/form-field/form-field-textarea.component.ts","../../../packages/common/src/lib/form/form-field/form-field.module.ts","../../../packages/common/src/lib/form/form-group/form-group.component.html","../../../packages/common/src/lib/form/form-group/form-group.component.ts","../../../packages/common/src/lib/form/form-group/form-group.module.ts","../../../packages/common/src/lib/form/form.module.ts","../../../packages/common/src/lib/home-button/home-button.component.ts","../../../packages/common/src/lib/home-button/home-button.component.html","../../../packages/common/src/lib/home-button/home-button.module.ts","../../../packages/common/src/lib/entity/entity-selector/entity-selector.module.ts","../../../packages/common/src/lib/stop-propagation/stop-drop-propagation.directive.ts","../../../packages/common/src/lib/stop-propagation/stop-propagation.module.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.module.ts","../../../packages/common/src/lib/image/image.module.ts","../../../packages/common/src/lib/entity/entity-table/entity-table.module.ts","../../../packages/common/src/lib/entity/entity.module.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.loader.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.service.ts","../../../packages/common/src/lib/tool/shared/toolbox.ts","../../../packages/common/src/lib/tool/shared/tool.service.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.component.html","../../../packages/common/src/lib/interactive-tour/interactive-tour.component.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.module.ts","../../../packages/common/src/lib/keyvalue/keyvalue.pipe.ts","../../../packages/common/src/lib/keyvalue/keyvalue.module.ts","../../../packages/common/src/lib/json-dialog/json-dialog.component.html","../../../packages/common/src/lib/json-dialog/json-dialog.component.ts","../../../packages/common/src/lib/json-dialog/json-dialog.service.ts","../../../packages/common/src/lib/json-dialog/json-dialog.module.ts","../../../packages/common/src/lib/list/list-item.directive.ts","../../../packages/common/src/lib/list/list.component.ts","../../../packages/common/src/lib/list/list.component.html","../../../packages/common/src/lib/list/list.module.ts","../../../packages/common/src/lib/panel/panel.component.html","../../../packages/common/src/lib/panel/panel.component.ts","../../../packages/common/src/lib/panel/panel.module.ts","../../../packages/common/src/lib/sidenav/sidenav-shim.directive.ts","../../../packages/common/src/lib/sidenav/sidenav.module.ts","../../../packages/common/src/lib/spinner/spinner.component.ts","../../../packages/common/src/lib/spinner/spinner.component.html","../../../packages/common/src/lib/spinner/spinner-activity.directive.ts","../../../packages/common/src/lib/spinner/spinner.module.ts","../../../packages/common/src/lib/table/table-database.ts","../../../packages/common/src/lib/table/table-datasource.ts","../../../packages/common/src/lib/table/table-action-color.enum.ts","../../../packages/common/src/lib/table/table.component.html","../../../packages/common/src/lib/table/table.component.ts","../../../packages/common/src/lib/table/table.module.ts","../../../packages/common/src/lib/tool/shared/toolbox.enums.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.animation.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.component.html","../../../packages/common/src/lib/tool/toolbox/toolbox.component.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.module.ts","../../../packages/common/src/lib/tool/tool.module.ts","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.component.html","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.component.ts","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.module.ts","../../../packages/common/src/lib/widget/shared/widget.service.ts","../../../packages/common/src/lib/widget/widget.module.ts","../../../packages/common/src/lib/workspace/shared/store.ts","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.component.ts","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.component.html","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.module.ts","../../../packages/common/src/lib/workspace/shared/workspace.ts","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.html","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.ts","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.ts","../../../packages/common/src/lib/workspace/workspace.module.ts","../../../packages/common/src/lib/color-picker-form-field/color-picker-form-field.component.ts","../../../packages/common/src/lib/color-picker-form-field/color-picker-form-field.component.html","../../../packages/common/src/lib/color-picker-form-field/color-picker-form-field.module.ts","../../../packages/common/src/lib/tool/shared/tool-component.ts","../../../packages/common/src/lib/widget/shared/widget.ts","../../../packages/common/src/public_api.ts","../../../packages/common/src/igo2-common.ts"],"sourcesContent":["export enum EntityOperationType {\n Insert = 'Insert',\n Update = 'Update',\n Delete = 'Delete'\n}\n\nexport enum EntityTableColumnRenderer {\n Default = 'Default',\n HTML = 'HTML',\n UnsanitizedHTML = 'UnsanitizedHTML',\n Editable = 'Editable',\n Icon = 'Icon',\n ButtonGroup = 'ButtonGroup'\n}\n\nexport enum EntityTableScrollBehavior {\n Auto = 'auto',\n Instant = 'instant',\n Smooth = 'smooth'\n}\n\nexport enum EntityTableSelectionState {\n None = 'None',\n All = 'All',\n Some = 'Some'\n}\n","import { t } from 'typy';\n\nimport { EntityKey } from './entity.interfaces';\n\n/**\n * Get an entity's named property. Nested properties are supported\n * with the dotted notation. (i.e 'author.name')\n *\n * Note: this method is a 'best attempt' at getting an entity's property.\n * It fits the most common cases but you might need to explicitely define\n * a property getter when using an EntityStore, for example.\n * @param entity Entity\n * @param property Property name\n * @returns Property value\n */\nexport function getEntityProperty(entity: object, property: string): any {\n return t(entity, property).safeObject;\n}\n\n/**\n * Get an entity's id. An entity's id can be one of:\n * 'entity.meta.id', 'entity.meta.idProperty' or 'entity.id'.\n *\n * Note: See the note in the 'getEntityProperty' documentation.\n * @param entity Entity\n * @returns Entity id\n */\nexport function getEntityId(entity: object): EntityKey {\n const meta = (entity as any).meta || {};\n return meta.id ? meta.id : getEntityProperty(entity, meta.idProperty || 'id');\n}\n\n/**\n * Get an entity's title. An entity's title can be one of:\n * 'entity.meta.title', 'entity.meta.titleProperty' or 'entity.title'.\n * @param entity Entity\n * @returns Entity title\n */\nexport function getEntityTitle(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.title\n ? meta.title\n : getEntityProperty(entity, meta.titleProperty || 'title');\n}\n\n/**\n * Get an entity's HTML title. An entity's HTML title can be one of:\n * 'entity.meta.titleHtml', 'entity.meta.titleHtmlProperty' or 'entity.titleHtml'.\n * @param entity Entity\n * @returns Entity HTML title\n */\nexport function getEntityTitleHtml(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.titleHtml\n ? meta.titleHtml\n : getEntityProperty(entity, meta.titleHtmlProperty || 'titleHtml');\n}\n\n/**\n * Get an entity's icon. An entity's icon can be one of:\n * 'entity.meta.icon', 'entity.meta.iconProperty' or 'entity.icon'.\n * @param entity Entity\n * @returns Entity icon\n */\nexport function getEntityIcon(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.icon\n ? meta.icon\n : getEntityProperty(entity, meta.iconProperty || 'icon');\n}\n\n/**\n * Get an entity's revision.\n * @param entity Entity\n * @returns Entity revision\n */\nexport function getEntityRevision(entity: object): number {\n const meta = (entity as any).meta || {};\n return meta.revision || 0;\n}\n","import { ReplaySubject } from 'rxjs';\n\nimport { EntityKey, EntityState } from './entity.interfaces';\nimport { getEntityId } from './entity.utils';\n\ninterface EntityStateManagerOptions<E extends object> {\n getKey?: (entity: object) => EntityKey;\n index?: Map<EntityKey, E>;\n}\n\n/**\n * This class is used to track a store's entities state\n */\nexport class EntityStateManager<\n E extends object,\n S extends EntityState = EntityState\n> {\n /**\n * State index\n */\n readonly index = new Map<EntityKey, S>();\n\n /**\n * Change emitter\n */\n readonly change$ = new ReplaySubject<void>(1);\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n constructor(private options: EntityStateManagerOptions<E> = {}) {\n this.getKey = options.getKey ? options.getKey : getEntityId;\n\n this.next();\n }\n\n /**\n * Clear state\n */\n clear() {\n if (this.index.size > 0) {\n this.index.clear();\n this.next();\n }\n }\n\n /**\n * Get an entity's state\n * @param entity Entity\n * @returns State\n */\n get(entity: E): S {\n return (this.index.get(this.getKey(entity)) || {}) as S;\n }\n\n /**\n * Set an entity's state\n * @param entity Entity\n * @param state State\n */\n set(entity: E, state: S) {\n this.setMany([entity], state);\n }\n\n /**\n * Set many entitie's state\n * @param entitie Entities\n * @param state State\n */\n setMany(entities: E[], state: S) {\n entities.forEach((entity: E) => {\n this.index.set(this.getKey(entity), Object.assign({}, state));\n });\n this.next();\n }\n\n /**\n * Set state of all entities that already have a state. This is not\n * the same as setting the state of all the store's entities.\n * @param state State\n */\n setAll(state: S) {\n Array.from(this.index.keys()).forEach((key: EntityKey) => {\n this.index.set(key, Object.assign({}, state));\n });\n this.next();\n }\n\n /**\n * Update an entity's state\n * @param entity Entity\n * @param changes State changes\n */\n update(entity: E, changes: Partial<S>, exclusive = false) {\n this.updateMany([entity], changes, exclusive);\n }\n\n /**\n * Update many entitie's state\n * @param entitie Entities\n * @param changes State changes\n */\n updateMany(entities: E[], changes: Partial<S>, exclusive = false) {\n if (exclusive === true) {\n return this.updateManyExclusive(entities, changes);\n }\n\n entities.forEach((entity: E) => {\n const state = Object.assign({}, this.get(entity), changes);\n this.index.set(this.getKey(entity), state);\n });\n this.next();\n }\n\n /**\n * Reversee an entity's state\n * @param entity Entity\n * @param keys State keys to reverse\n */\n reverse(entity: E, keys: string[]) {\n this.reverseMany([entity], keys);\n }\n\n /**\n * Reverse many entitie's state\n * @param entitie Entities\n * @param keys State keys to reverse\n */\n reverseMany(entities: E[], keys: string[]) {\n entities.forEach((entity: E) => {\n const currentState = this.get(entity);\n const changes = keys.reduce(\n (acc: { [key: string]: boolean }, key: string) => {\n acc[key] = currentState[key] || false;\n return acc;\n },\n {}\n ) as Partial<S>;\n const reversedChanges = this.reverseChanges(changes);\n const state = Object.assign({}, currentState, reversedChanges);\n this.index.set(this.getKey(entity), state);\n });\n this.next();\n }\n\n /**\n * Update state of all entities that already have a state. This is not\n * the same as updating the state of all the store's entities.\n * @param changes State\n */\n updateAll(changes: Partial<S>) {\n const allKeys = this.getAllKeys();\n Array.from(allKeys).forEach((key: EntityKey) => {\n const state = Object.assign({}, this.index.get(key), changes);\n this.index.set(key, state);\n });\n this.next();\n }\n\n /**\n * When some state changes are flagged as 'exclusive', reverse\n * the state of all other entities. Changes are reversable when\n * they are boolean.\n * @param entitie Entities\n * @param changes State changes\n */\n private updateManyExclusive(entities: E[], changes: Partial<S>) {\n const reverseChanges = this.reverseChanges(changes);\n\n const keys = entities.map((entity: E) => this.getKey(entity));\n const allKeys = new Set(keys.concat(Array.from(this.getAllKeys())));\n allKeys.forEach((key: EntityKey) => {\n const state = this.index.get(key) || ({} as S);\n\n if (keys.indexOf(key) >= 0) {\n this.index.set(key, Object.assign({}, state, changes));\n } else {\n // Update only if the reverse changes would modify\n // a key already present in the current state\n const shouldUpdate = Object.keys(reverseChanges).some(\n (changeKey: string) => {\n return (\n state[changeKey] !== undefined &&\n state[changeKey] !== reverseChanges[changeKey]\n );\n }\n );\n if (shouldUpdate === true) {\n this.index.set(key, Object.assign({}, state, reverseChanges));\n }\n }\n });\n\n this.next();\n }\n\n /**\n * Compute a 'reversed' version of some state changes.\n * Changes are reversable when they are boolean.\n * @param changes State changes\n * @returns Reversed state changes\n */\n private reverseChanges(changes: Partial<S>): Partial<S> {\n return Object.entries(changes).reduce(\n (reverseChanges: Partial<S>, bunch: [string, any]) => {\n const [changeKey, value] = bunch;\n if (typeof value === typeof true) {\n (reverseChanges as object)[changeKey] = !value;\n }\n return reverseChanges;\n },\n {}\n );\n }\n\n /**\n * Return all the keys in that state and in the store it's bound to, if any.\n * @returns Set of keys\n */\n private getAllKeys(): Set<EntityKey> {\n const storeKeys = Array.from(this.options?.index?.keys() ?? []);\n return new Set(Array.from(this.index.keys()).concat(storeKeys));\n }\n\n /**\n * Emit 'change' event\n */\n private next() {\n this.change$.next();\n }\n}\n","import { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\nimport { debounceTime, map, skip } from 'rxjs/operators';\n\nimport { ObjectUtils, uuid } from '@igo2/utils';\nimport {\n EntityKey,\n EntityFilterClause,\n EntitySortClause,\n EntityJoinClause\n} from './entity.interfaces';\n\n/**\n * An entity view streams entities from an observable source. These entities\n * can be filtered or sorted without affecting the source. A view can also\n * combine data from multiple sources, joined together.\n */\nexport class EntityView<E extends object, V extends object = E> {\n /**\n * Observable stream of values\n */\n readonly values$ = new BehaviorSubject<V[]>([]);\n\n /**\n * Subscription to the source (and joined sources) values\n */\n private values$$: Subscription;\n\n /**\n * Whether this view has been lifted\n */\n private lifted = false;\n\n /**\n * Join clauses\n */\n private joins: EntityJoinClause[] = [];\n\n /**\n * Observable of a filter clause\n */\n private filter$ = new BehaviorSubject(undefined);\n\n /**\n * Observable of filter clauses\n */\n private filters$: BehaviorSubject<EntityFilterClause[]> = new BehaviorSubject(\n []\n );\n\n /**\n * Filters index\n */\n private filterIndex: Map<string, EntityFilterClause> = new Map();\n\n /**\n * Observable of a sort clause\n */\n private sort$ = new BehaviorSubject(undefined);\n\n /**\n * Method for indexing\n */\n get getKey(): (V) => EntityKey {\n return this.getKey$.value;\n }\n private getKey$: BehaviorSubject<(V) => EntityKey> = new BehaviorSubject(\n undefined\n );\n\n /**\n * Number of entities\n */\n readonly count$ = new BehaviorSubject<number>(0);\n get count(): number {\n return this.count$.value;\n }\n\n /**\n * Whether the store is empty\n */\n readonly empty$ = new BehaviorSubject<boolean>(true);\n get empty(): boolean {\n return this.empty$.value;\n }\n\n /**\n * Store index\n */\n get index(): Map<EntityKey, V> {\n return this._index;\n }\n private _index: Map<EntityKey, V>;\n\n constructor(private source$: BehaviorSubject<E[]>) {}\n\n /**\n * Get a value from the view by key\n * @param key Key\n * @returns Value\n */\n get(key: EntityKey): V {\n if (this._index === undefined) {\n throw new Error(\n 'This view has no index, therefore, this method is unavailable.'\n );\n }\n return this.index.get(key);\n }\n\n /**\n * Get all the values\n * @returns Array of values\n */\n all(): V[] {\n return this.values$.value;\n }\n\n /**\n * Observe all the values\n * @returns Observable of values\n */\n all$(): BehaviorSubject<V[]> {\n return this.values$;\n }\n\n /**\n * Get the first value that respects a criteria\n * @returns A value\n */\n firstBy(clause: EntityFilterClause<V>): V {\n return this.values$.value.find(clause);\n }\n\n /**\n * Observe the first value that respects a criteria\n * @returns Observable of a value\n */\n firstBy$(clause: EntityFilterClause<V>): Observable<V> {\n return this.values$.pipe(map((values: V[]) => values.find(clause)));\n }\n\n /**\n * Get all the values that respect a criteria\n * @returns Array of values\n */\n manyBy(clause: EntityFilterClause<V>): V[] {\n return this.values$.value.filter(clause);\n }\n\n /**\n * Observe all the values that respect a criteria\n * @returns Observable of values\n */\n manyBy$(clause: EntityFilterClause<V>): Observable<V[]> {\n return this.values$.pipe(map((values: V[]) => values.filter(clause)));\n }\n\n /**\n * Clear the filter and sort and unsubscribe from the source\n */\n clear() {\n this.filter(undefined);\n this.sort(undefined);\n }\n\n destroy() {\n if (this.values$$ !== undefined) {\n this.values$$.unsubscribe();\n }\n this.clear();\n }\n\n /**\n * Create an index\n * @param getKey Method to get a value's id\n * @returns The view\n */\n createIndex(getKey: (E) => EntityKey): EntityView<E, V> {\n this._index = new Map();\n this.getKey$.next(getKey);\n return this;\n }\n\n /**\n * Join another source to the stream (chainable)\n * @param clause Join clause\n * @returns The view\n */\n join(clause: EntityJoinClause): EntityView<E, V> {\n if (this.lifted === true) {\n throw new Error(\n 'This view has already been lifted, therefore, no join is allowed.'\n );\n }\n this.joins.push(clause);\n return this;\n }\n\n /**\n * Filter values (chainable)\n * @param clause Filter clause\n * @returns The view\n */\n filter(clause: EntityFilterClause<V>): EntityView<E, V> {\n this.filter$.next(clause);\n return this;\n }\n\n /**\n * @param clause Filter clause\n * @returns The filter id\n */\n addFilter(clause: EntityFilterClause<V>): string {\n const id = uuid();\n this.filterIndex.set(id, clause);\n this.filters$.next(Array.from(this.filterIndex.values()));\n return id;\n }\n\n /**\n * Remove a filter by id\n * @param clause Filter clause\n */\n removeFilter(id: string) {\n this.filterIndex.delete(id);\n this.filters$.next(Array.from(this.filterIndex.values()));\n }\n\n /**\n * Sort values (chainable)\n * @param clauseSort clause\n * @returns The view\n */\n sort(clause: EntitySortClause<V>): EntityView<E, V> {\n this.sort$.next(clause);\n return this;\n }\n\n /**\n * Create the final observable\n * @returns Observable\n */\n lift() {\n this.lifted = true;\n const source$ =\n this.joins.length > 0 ? this.liftJoinedSource() : this.liftSource();\n const observables$ = [\n source$,\n this.filters$,\n this.filter$,\n this.sort$,\n this.getKey$\n ];\n\n this.values$$ = combineLatest(observables$)\n .pipe(skip(1), debounceTime(5))\n .subscribe((bunch: any[]) => {\n const [_values, filters, filter, sort, getKey] = bunch;\n const values = this.processValues(_values, filters, filter, sort);\n const generateIndex = getKey !== undefined;\n this.setValues(values, generateIndex);\n });\n }\n\n /**\n * Create the source observable when no joins are defined\n * @returns Observable\n */\n private liftSource(): Observable<V[]> {\n return this.source$ as any as Observable<V[]>;\n }\n\n /**\n * Create the source observable when joins are defined\n * @returns Observable\n */\n private liftJoinedSource(): Observable<V[]> {\n const sources$ = [\n this.source$,\n combineLatest(this.joins.map((join: EntityJoinClause) => join.source))\n ];\n\n return combineLatest(sources$).pipe(\n map((bunch: [E[], any[]]) => {\n const [entities, joinData] = bunch;\n return entities.reduce((values: V[], entity: E) => {\n const value = this.computeJoinedValue(entity, joinData);\n if (value !== undefined) {\n values.push(value);\n }\n return values;\n }, []);\n })\n );\n }\n\n /**\n * Apply joins to a source's entity and return the final value\n * @returns Final value\n */\n private computeJoinedValue(entity: E, joinData: any[]): V | undefined {\n let value = entity as Partial<V>;\n let joinIndex = 0;\n while (value !== undefined && joinIndex < this.joins.length) {\n value = this.joins[joinIndex].reduce(value, joinData[joinIndex]);\n joinIndex += 1;\n }\n return value as V;\n }\n\n /**\n * Filter and sort values before streaming them\n * @param values Values\n * @param filters Filter clauses\n * @param filter Filter clause\n * @param sort Sort clause\n * @returns Filtered and sorted values\n */\n private processValues(\n values: V[],\n filters: EntityFilterClause[],\n filter: EntityFilterClause,\n sort: EntitySortClause\n ): V[] {\n values = values.slice(0);\n values = this.filterValues(values, filters.concat([filter]));\n values = this.sortValues(values, sort);\n return values;\n }\n\n /**\n * Filter values\n * @param values Values\n * @param filters Filter clauses\n * @returns Filtered values\n */\n private filterValues(values: V[], clauses: EntityFilterClause[]): V[] {\n if (clauses.length === 0) {\n return values;\n }\n\n return values.filter((value: V) => {\n return clauses\n .filter((clause: EntityFilterClause) => clause !== undefined)\n .every((clause: EntityFilterClause) => clause(value));\n });\n }\n\n /**\n * Sort values\n * @param values Values\n * @param sort Sort clause\n * @returns Sorted values\n */\n private sortValues(values: V[], clause: EntitySortClause): V[] {\n if (clause === undefined) {\n return values;\n }\n return values.sort((v1: V, v2: V) => {\n return ObjectUtils.naturalCompare(\n clause.valueAccessor(v1),\n clause.valueAccessor(v2),\n clause.direction,\n clause.nullsFirst\n );\n });\n }\n\n /**\n * Set value and optionally generate an index\n * @param values Values\n * @param generateIndex boolean\n */\n private setValues(values: V[], generateIndex: boolean) {\n if (generateIndex === true) {\n this._index = this.generateIndex(values);\n }\n\n this.values$.next(values);\n\n const count = values.length;\n const empty = count === 0;\n this.count$.next(count);\n this.empty$.next(empty);\n }\n\n /**\n * Generate a complete index of all the values\n * @param entities Entities\n * @returns Index\n */\n private generateIndex(values: V[]): Map<EntityKey, V> {\n const entries = values.map((value: V) => [this.getKey(value), value]);\n return new Map(entries as [EntityKey, V][]);\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nimport { EntityStateManager } from './state';\nimport { EntityView } from './view';\nimport { EntityKey, EntityState, EntityRecord } from './entity.interfaces';\nimport { getEntityId, getEntityProperty } from './entity.utils';\n\nexport interface EntityStoreOptions {\n getKey?: (entity: object) => EntityKey;\n getProperty?: (entity: object, property: string) => any;\n}\n\n/**\n * An entity store class holds any number of entities\n * as well as their state. It can be observed, filtered and sorted and\n * provides methods to insert, update or delete entities.\n */\nexport class EntityStore<\n E extends object = object,\n S extends EntityState = EntityState\n> {\n /**\n * Observable of the raw entities\n */\n readonly entities$ = new BehaviorSubject<E[]>([]);\n\n /**\n * Number of entities\n */\n readonly count$ = new BehaviorSubject<number>(0);\n get count(): number {\n return this.count$.value;\n }\n\n /**\n * Whether the store is empty\n */\n readonly empty$ = new BehaviorSubject<boolean>(true);\n get empty(): boolean {\n return this.empty$.value;\n }\n\n /**\n * Entity store state\n */\n readonly state: EntityStateManager<E, S>;\n\n /**\n * View of all the entities\n */\n readonly view: EntityView<E>;\n\n /**\n * View of all the entities and their state\n */\n readonly stateView: EntityView<E, EntityRecord<E, S>>;\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n /**\n * Method to get an entity's named property\n */\n readonly getProperty: (E, prop: string) => any;\n\n /**\n * Store index\n */\n get index(): Map<EntityKey, E> {\n return this._index;\n }\n private _index: Map<EntityKey, E>;\n\n /**\n * Store index\n */\n get pristine(): boolean {\n return this._pristine;\n }\n private _pristine: boolean = true;\n\n constructor(entities: E[], options: EntityStoreOptions = {}) {\n this.getKey = options.getKey ? options.getKey : getEntityId;\n this.getProperty = options.getProperty\n ? options.getProperty\n : getEntityProperty;\n\n this.state = this.createStateManager();\n this.view = this.createDataView();\n this.stateView = this.createStateView();\n\n this.view.lift();\n this.stateView.lift();\n\n if (entities.length > 0) {\n this.load(entities);\n } else {\n this._index = this.generateIndex(entities);\n }\n }\n\n /**\n * Get an entity from the store by key\n * @param key Key\n * @returns Entity\n */\n get(key: EntityKey): E {\n return this.index.get(key);\n }\n\n /**\n * Get all entities in the store\n * @returns Array of entities\n */\n all(): E[] {\n return this.entities$.value;\n }\n\n /**\n * Set this store's entities\n * @param entities Entities\n */\n load(entities: E[], pristine: boolean = true) {\n this._index = this.generateIndex(entities);\n this._pristine = pristine;\n this.next();\n }\n\n /**\n * Clear the store's entities but keep the state and views intact.\n * Views won't return any data but future data will be subject to the\n * current views filter and sort\n */\n softClear() {\n if (this.index && this.index.size > 0) {\n this.index.clear();\n this._pristine = true;\n this.next();\n } else if (this.index) {\n this.updateCount();\n }\n }\n\n /**\n * Clear the store's entities, state and views\n */\n clear() {\n this.stateView.clear();\n this.view.clear();\n this.state.clear();\n this.softClear();\n }\n\n destroy() {\n this.stateView.destroy();\n this.view.destroy();\n this.clear();\n }\n\n /**\n * Insert an entity into the store\n * @param entity Entity\n */\n insert(entity: E) {\n this.insertMany([entity]);\n }\n\n /**\n * Insert many entities into the store\n * @param entities Entities\n */\n insertMany(entities: E[]) {\n entities.forEach((entity: E) =>\n this.index.set(this.getKey(entity), entity)\n );\n this._pristine = false;\n this.next();\n }\n\n /**\n * Update or insert an entity into the store\n * @param entity Entity\n */\n update(entity: E) {\n this.updateMany([entity]);\n }\n\n /**\n * Update or insert many entities into the store\n * @param entities Entities\n */\n updateMany(entities: E[]) {\n entities.forEach((entity: E) =>\n this.index.set(this.getKey(entity), entity)\n );\n this._pristine = false;\n this.next();\n }\n\n /**\n * Delete an entity from the store\n * @param entity Entity\n */\n delete(entity: E) {\n this.deleteMany([entity]);\n }\n\n /**\n * Delete many entities from the store\n * @param entities Entities\n */\n deleteMany(entities: E[]) {\n entities.forEach((entity: E) => this.index.delete(this.getKey(entity)));\n this._pristine = false;\n this.next();\n }\n\n /**\n * Generate a complete index of all the entities\n * @param entities Entities\n * @returns Index\n */\n private generateIndex(entities: E[]): Map<EntityKey, E> {\n const entries = entities.map((entity: E) => [this.getKey(entity), entity]);\n return new Map(entries as [EntityKey, E][]);\n }\n\n /**\n * Push the index's entities into the entities$ observable\n */\n private next() {\n this.entities$.next(Array.from(this.index.values()));\n this.updateCount();\n }\n\n /**\n * Update the store's count and empty\n */\n private updateCount() {\n const count = this.index.size;\n const empty = count === 0;\n this.count$.next(count);\n this.empty$.next(empty);\n }\n\n /**\n * Create the entity state manager\n * @returns EntityStateManager\n */\n private createStateManager() {\n return new EntityStateManager<E, S>({\n getKey: this.getKey,\n index: this.index\n });\n }\n\n /**\n * Create the data view\n * @returns EntityView<E>\n */\n private createDataView() {\n return new EntityView<E>(this.entities$);\n }\n\n /**\n * Create the state view\n * @returns EntityView<EntityRecord<E>>\n */\n private createStateView() {\n return new EntityView<E, EntityRecord<E, S>>(this.view.all$())\n .join({\n source: this.state.change$,\n reduce: (entity: E): EntityRecord<E, S> => {\n const key = this.getKey(entity);\n const state = this.state.get(entity);\n const currentRecord = this.stateView.get(key);\n\n if (\n currentRecord !== undefined &&\n currentRecord.entity === entity &&\n this.statesAreTheSame(currentRecord.state, state)\n ) {\n return currentRecord;\n }\n\n const revision = currentRecord ? currentRecord.revision + 1 : 1;\n const ref = `${key}-${revision}`;\n return { entity, state, revision, ref };\n }\n })\n .createIndex((record: EntityRecord<E, S>) => this.getKey(record.entity));\n }\n\n private statesAreTheSame(currentState: S, newState: S): boolean {\n if (currentState === newState) {\n return true;\n }\n\n const currentStateIsEmpty = Object.keys(currentState).length === 0;\n const newStateIsEmpty = Object.keys(newState).length === 0;\n return currentStateIsEmpty && newStateIsEmpty;\n }\n}\n","import { EntityState } from './entity.interfaces';\nimport { EntityStoreStrategy } from './strategies/strategy';\nimport { EntityStore, EntityStoreOptions } from './store';\n\nexport class EntityStoreWithStrategy<\n E extends object = object,\n S extends EntityState = EntityState\n> extends EntityStore<E, S> {\n /**\n * Strategies\n */\n private strategies: EntityStoreStrategy[] = [];\n\n constructor(entities: E[], options: EntityStoreOptions = {}) {\n super(entities, options);\n }\n\n /**\n * Add a strategy to this store\n * @param strategy Entity store strategy\n * @returns Entity store\n */\n addStrategy(\n strategy: EntityStoreStrategy,\n activate: boolean = false\n ): EntityStore {\n const existingStrategy = this.strategies.find(\n (_strategy: EntityStoreStrategy) => {\n return strategy.constructor === _strategy.constructor;\n }\n );\n if (existingStrategy !== undefined) {\n throw new Error(\n 'A strategy of this type already exists on that EntityStore.'\n );\n }\n\n this.strategies.push(strategy);\n strategy.bindStore(this);\n\n if (activate === true) {\n strategy.activate();\n }\n\n return this;\n }\n\n /**\n * Remove a strategy from this store\n * @param strategy Entity store strategy\n * @returns Entity store\n */\n removeStrategy(strategy: EntityStoreStrategy): EntityStore {\n const index = this.strategies.indexOf(strategy);\n if (index >= 0) {\n this.strategies.splice(index, 1);\n strategy.unbindStore(this);\n }\n return this;\n }\n\n /**\n * Return strategies of a given type\n * @param type Entity store strategy class\n * @returns Strategies\n */\n getStrategyOfType(type: typeof EntityStoreStrategy): EntityStoreStrategy {\n return this.strategies.find((strategy: EntityStoreStrategy) => {\n return strategy instanceof type;\n });\n }\n\n /**\n * Activate strategies of a given type\n * @param type Entity store strategy class\n */\n activateStrategyOfType(type: typeof EntityStoreStrategy) {\n const strategy = this.getStrategyOfType(type);\n if (strategy !== undefined) {\n strategy.activate();\n }\n }\n\n /**\n * Deactivate strategies of a given type\n * @param type Entity store strategy class\n */\n deactivateStrategyOfType(type: typeof EntityStoreStrategy) {\n const strategy = this.getStrategyOfType(type);\n if (strategy !== undefined) {\n strategy.deactivate();\n }\n }\n}\n","import { ChangeDetectorRef } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\n\nimport { ObjectUtils } from '@igo2/utils';\nimport { EntityKey } from './entity.interfaces';\n\nimport { EntityStore } from './store';\n\n/**\n * This class is used to synchronize a component's changes\n * detection with an EntityStore changes. For example, it is frequent\n * to have a component subscribe to a store's selected entity and, at the same time,\n * this component provides a way to select an entity with, let's say, a click.\n *\n * This class automatically handles those case and triggers the compoent's\n * change detection when needed.\n *\n * Note: If the component observes the store's stateView, a workspace is\n * probably not required because the stateView catches any changes to the\n * entities and their state.\n */\nexport class EntityStoreWatcher<E extends object> {\n /**\n * Component change detector\n */\n private cdRef: ChangeDetectorRef;\n\n /**\n * Entity store\n */\n private store: EntityStore<E>;\n\n /**\n * Component inner state\n */\n private innerStateIndex = new Map<EntityKey, { [key: string]: any }>();\n\n /**\n * Subscription to the store's entities\n */\n private entities$$: Subscription;\n\n /**\n * Subscription to the store's state\n */\n private state$$: Subscription;\n\n constructor(store?: EntityStore<E>, cdRef?: ChangeDetectorRef) {\n this.setChangeDetector(cdRef);\n this.setStore(store);\n }\n\n destroy() {\n this.setChangeDetector(undefined);\n this.setStore(undefined);\n }\n\n /**\n * Bind this workspace to a store and start watching for changes\n * @param store Entity store\n */\n setStore(store?: EntityStore<E>) {\n if (store === undefined) {\n this.teardownObservers();\n this.innerStateIndex.clear();\n this.store = undefined;\n return;\n }\n\n this.setStore(undefined);\n this.store = store;\n this.setupObservers();\n this.detectChanges();\n }\n\n /**\n * Bind this workspace to a component's change detector\n * @param cdRef Change detector\n */\n setChangeDetector(cdRef?: ChangeDetectorRef) {\n this.cdRef = cdRef;\n }\n\n /**\n * Set up observers on a store's entities and their state\n * @param store Entity store\n */\n private setupObservers() {\n this.teardownObservers();\n\n this.entities$$ = this.store.entities$.subscribe((entities: E[]) =>\n this.onEntitiesChange(entities)\n );\n\n this.state$$ = this.store.state.change$\n .pipe(skip(1))\n .subscribe(() => this.onStateChange());\n }\n\n /**\n * Teardown store observers\n */\n private teardownObservers() {\n if (this.entities$$ !== undefined) {\n this.entities$$.unsubscribe();\n }\n if (this.state$$ !== undefined) {\n this.state$$.unsubscribe();\n }\n this.entities$$ = undefined;\n this.state$$ = undefined;\n }\n\n /**\n * When the entities change, always trigger the changes detection\n */\n private onEntitiesChange(entities: E[]) {\n this.detectChanges();\n }\n\n /**\n * When the entities state change, trigger the change detection\n * only if the component has not handled these changes yet. For example,\n * the component might have initiated thoses changes itself.\n */\n private onStateChange() {\n let changesDetected = false;\n const storeIndex = this.store.state.index;\n const innerIndex = this.innerStateIndex;\n\n if (storeIndex.size !== innerIndex.size) {\n changesDetected = this.detectChanges();\n }\n\n const storeKeys = Array.from(storeIndex.keys());\n for (const key of storeKeys) {\n const storeValue = storeIndex.get(key);\n const innerValue = innerIndex.get(key);\n if (changesDetected === false) {\n if (innerValue === undefined) {\n changesDetected = this.detectChanges();\n } else if (!ObjectUtils.objectsAreEquivalent(storeValue, innerValue)) {\n changesDetected = this.detectChanges();\n }\n }\n\n this.innerStateIndex.set(key, Object.assign({}, storeValue));\n }\n }\n\n /**\n * Trigger the change detection of the workspace is bound to a change detector\n */\n private detectChanges() {\n if (this.cdRef !== undefined) {\n this.cdRef.detectChanges();\n }\n return true;\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n EntityKey,\n EntityTransactionOptions,\n EntityOperationState\n} from './entity.interfaces';\nimport { EntityStore } from './store';\nimport { EntityOperationType } from './entity.enums';\nimport { getEntityId } from './entity.utils';\n\ninterface EntityOperation<E extends object = object> {\n key: EntityKey;\n type: EntityOperationType;\n previous: E | undefined;\n current: E | undefined;\n store?: EntityStore<E>;\n meta?: { [key: string]: any };\n}\n\nexport type EntityTransactionCommitHandler = (\n transaction: EntityTransaction,\n operations: EntityOperation[]\n) => Observable<any>;\n\n/**\n * This class holds a reference to the insert, update and delete\n * operations performed on a store. This is useful to commit\n * these operations in a single pass or to cancel them.\n */\nexport class EntityTransaction {\n /**\n * Store holding the operations on another store\n */\n readonly operations: EntityStore<EntityOperation, EntityOperationState>;\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n /**\n * Whether there are pending operations\n */\n get empty$(): BehaviorSubject<boolean> {\n return this.operations.empty$;\n }\n\n /**\n * Whether there are pending operations\n */\n get empty(): boolean {\n return this.empty$.value;\n }\n\n /**\n * Whether thise store is in commit phase\n */\n get inCommitPhase(): boolean {\n return this.inCommitPhase$.value;\n }\n readonly inCommitPhase$: BehaviorSubject<boolean> = new BehaviorSubject(\n false\n );\n\n constructor(options: EntityTransactionOptions = {}) {\n this.getKey = options.getKey ? options.getKey : getEntityId;\n this.operations = new EntityStore<EntityOperation, EntityOperationState>(\n [],\n {\n getKey: (operation: EntityOperation) => operation.key\n }\n );\n }\n\n destroy() {\n this.operations.destroy();\n }\n\n /**\n * Insert an entity into a store. If no store is specified, an insert\n * operation is still created but the transaction won't add the new\n * entity to the store.\n * @param current The entity to insert\n * @param store Optional: The store to insert the entity into\n * @param meta Optional: Any metadata on the operation\n */\n insert(\n current: object,\n store?: EntityStore<object>,\n meta?: { [key: string]: any }\n ) {\n const existingOperation = this.getOperationByEntity(current);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n }\n\n this.doInsert(current, store, meta);\n }\n\n /**\n * Update an entity in a store. If no store is specified, an update\n * operation is still created but the transaction won't update the\n * entity into the store.\n * @param previous The entity before update\n * @param current The entity after update\n * @param store Optional: The store to update the entity into\n * @param meta Optional: Any metadata on the operation\n */\n update(\n previous: object,\n current: object,\n store?: EntityStore<object>,\n meta?: { [key: string]: any }\n ) {\n const existingOperation = this.getOperationByEntity(current);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n if (existingOperation.type === EntityOperationType.Insert) {\n this.doInsert(current, store, meta);\n return;\n } else if (existingOperation.type === EntityOperationType.Update) {\n previous = existingOperation.previous;\n }\n }\n\n this.doUpdate(previous, current, store, meta);\n }\n\n /**\n * Delete an entity from a store. If no store is specified, a delete\n * operation is still created but the transaction won't remove the\n * entity from the store.\n * @param previous The entity before delete\n * @param store Optional: The store to delete the entity from\n * @param meta Optional: Any metadata on the operation\n */\n delete(\n previous: object,\n store?: EntityStore<object>,\n meta?: { [key: string]: any }\n ) {\n const existingOperation = this.getOperationByEntity(previous);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n if (existingOperation.type === EntityOperationType.Insert) {\n if (store !== undefined) {\n store.delete(previous);\n }\n return;\n }\n }\n\n this.doDelete(previous, store, meta);\n }\n\n /**\n * Commit operations the transaction. This method doesn't do much\n * in itself. The handler it receives does the hard work and it's\n * implementation is left to the caller. This method simply wraps\n * the handler into an error catching mechanism to update\n * the transaction afterward. The caller needs to subscribe to this\n * method's output (observable) for the commit to be performed.\n * @param operations Operations to commit\n * @param handler Function that handles the commit operation\n * @returns The handler output (observable)\n */\n commit(\n operations: EntityOperation[],\n handler: EntityTransactionCommitHandler\n ): Observable<any> {\n this.inCommitPhase$.next(true);\n\n return handler(this, operations).pipe(\n catchError(() => of(new Error())),\n tap((result: any) => {\n if (result instanceof Error) {\n this.onCommitError(operations);\n } else {\n this.onCommitSuccess(operations);\n }\n })\n );\n }\n\n /**\n * Commit all the operations of the transaction.\n * @param handler Function that handles the commit operation\n * @returns The handler output (observable)\n */\n commitAll(handler: EntityTransactionCommitHandler): Observable<any> {\n const operations = this.getOperationsInCommit();\n return this.commit(operations, handler);\n }\n\n /**\n * Rollback this transaction\n */\n rollback() {\n this.rollbackOperations(this.operations.all());\n }\n\n /**\n * Rollback specific operations\n */\n rollbackOperations(operations: EntityOperation[]) {\n this.checkInCommitPhase();\n\n const operationsFactory = () =>\n new Map([\n [EntityOperationType.Delete, []],\n [EntityOperationType.Update, []],\n [EntityOperationType.Insert, []]\n ]);\n const storesOperations = new Map();\n\n // Group operations by store and by operation type.\n // Grouping operations allows us to revert them in bacth, thus, triggering\n // observables only one per operation type.\n for (const operation of operations) {\n const store = operation.store;\n if (operation.store === undefined) {\n continue;\n }\n\n let storeOperations = storesOperations.get(store);\n if (storeOperations === undefined) {\n storeOperations = operationsFactory();\n storesOperations.set(store, storeOperations);\n }\n storeOperations.get(operation.type).push(operation);\n }\n\n Array.from(storesOperations.keys()).forEach(\n (store: EntityStore<object>) => {\n const storeOperations = storesOperations.get(store);\n\n const deletes = storeOperations.get(EntityOperationType.Delete);\n store.insertMany(\n deletes.map((_delete: EntityOperation) => _delete.previous)\n );\n\n const updates = storeOperations.get(EntityOperationType.Update);\n store.updateMany(\n updates.map((_update: EntityOperation) => _update.previous)\n );\n\n const inserts = storeOperations.get(EntityOperationType.Insert);\n store.deleteMany(\n inserts.map((_insert: EntityOperation) => _insert.current)\n );\n }\n );\n\n this.operations.deleteMany(operations);\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Clear this transaction\n * @todo Raise event and synchronize stores?\n */\n clear() {\n this.operations.clear();\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Get any existing operation on an entity\n * @param entity Entity\n * @returns Either an insert, update or delete operation\n */\n getOperationByEntity(entity: object): EntityOperation {\n return this.operations.get(this.getKey(entity));\n }\n\n /**\n * Merge another transaction in this one\n * @param transaction Another transaction\n */\n mergeTransaction(transaction: EntityTransaction) {\n this.checkInCommitPhase();\n\n const operations = transaction.operations.all();\n operations.forEach((operation: EntityOperation) => {\n this.addOperation(operation);\n });\n }\n\n /**\n * Create an insert operation and add an entity to the store\n * @param current The entity to insert\n * @param store Optional: The store to insert the entity into\n * @param meta Optional: Any metadata on the operation\n */\n private doInsert(\n current: object,\n store?: EntityStore<object>,\n meta?: { [key: string]: any }\n ) {\n this.addOperation({\n key: this.getKey(current),\n type: EntityOperationType.Insert,\n previous: undefined,\n current,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.insert(current);\n }\n }\n\n /**\n * Create an update operation and update an entity into the store\n * @param previous The entity before update\n * @param current The entity after update\n * @param store Optional: The store to update the entity into\n * @param meta Optional: Any metadata on the operation\n */\n private doUpdate(\n previous: object,\n current: object,\n store?: EntityStore<object>,\n meta?: { [key: string]: any }\n ) {\n this.addOperation({\n key: this.getKey(current),\n type: EntityOperationType.Update,\n previous,\n current,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.update(current);\n }\n }\n\n /**\n * Create a delete operation and delete an entity from the store\n * @param previous The entity before delete\n * @param store Optional: The store to delete the entity from\n * @param meta Optional: Any metadata on the operation\n */\n private doDelete(\n previous: object,\n store?: EntityStore<object>,\n meta?: { [key: string]: any }\n ) {\n this.addOperation({\n key: this.getKey(previous),\n type: EntityOperationType.Delete,\n previous,\n current: undefined,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.delete(previous);\n }\n }\n\n /**\n * Remove committed operations from store\n * @param operations Commited operations\n * @todo Raise event and synchronize stores?\n */\n private resolveOperations(operations: EntityOperation[]) {\n this.operations.deleteMany(operations);\n }\n\n /**\n * On commit success, resolve commited operations and exit commit phase\n * @param operations Commited operations\n */\n private onCommitSuccess(operations: EntityOperation[]) {\n this.resolveOperations(operations);\n this.inCommitPhase$.next(false);\n }\n\n /**\n * On commit error, abort transaction\n * @param operations Commited operations\n */\n private onCommitError(operations: EntityOperation[]) {\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Add an operation to the operations store\n * @param operation Operation to add\n */\n private addOperation(operation: EntityOperation) {\n this.checkInCommitPhase();\n\n this.operations.insert(operation);\n this.operations.state.update(operation, { added: true });\n }\n\n /**\n * Remove an operation from the operations store\n * @param operation Operation to remove\n */\n private removeOperation(operation: EntityOperation) {\n this.checkInCommitPhase();\n\n this.operations.delete(operation);\n this.operations.state.update(operation, { added: false });\n }\n\n /**\n * Get all the operations to commit\n * @returns Operations to commit\n */\n private getOperationsInCommit(): EntityOperation[] {\n return this.operations.stateView\n .manyBy(\n (value: { entity: EntityOperation; state: EntityOperationState }) => {\n return value.state.added === true;\n }\n )\n .map(\n (value: { entity: EntityOperation; state: EntityOperationState }) =>\n value.entity\n );\n }\n\n /**\n * Check if the transaction is in the commit phase and throw an error if it is\n */\n private checkInCommitPhase() {\n if (this.inCommitPhase === true) {\n throw new Error(\n 'This transaction is in the commit phase. Cannot complete this operation.'\n );\n }\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nimport { EntityStoreStrategyOptions } from '../entity.interfaces';\nimport { EntityStore } from '../store';\n\n/**\n * Entity store strategies. They can do pretty much anything during a store's\n * lifetime. For example, they may act as triggers when something happens.\n * Sharing a strategy is a good idea when multiple strategies would have\n * on cancelling effect on each other.\n *\n * At creation, strategy is inactive and needs to be manually activated.\n */\nexport class EntityStoreStrategy {\n /**\n * Feature store\n * @internal\n */\n protected stores: EntityStore[] = [];\n\n /**\n * Whether this strategy is active\n * @internal\n */\n get active(): boolean {\n return this.active$.value;\n }\n readonly active$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n constructor(protected options: EntityStoreStrategyOptions = {}) {\n this.options = options;\n }\n\n /**\n * Activate the strategy. If it's already active, it'll be deactivated\n * and activated again.\n */\n activate() {\n if (this.active === true) {\n this.doDeactivate();\n }\n this.active$.next(true);\n this.doActivate();\n }\n\n /**\n * Activate the strategy. If it's already active, it'll be deactivated\n * and activated again.\n */\n deactivate() {\n this.active$.next(false);\n this.doDeactivate();\n }\n\n /**\n * Bind this strategy to a store\n * @param store Feature store\n */\n bindStore(store: EntityStore) {\n if (this.stores.indexOf(store) < 0) {\n this.stores.push(store);\n }\n }\n\n /**\n * Unbind this strategy from store\n * @param store Feature store\n */\n unbindStore(store: EntityStore) {\n const index = this.stores.indexOf(store);\n if (index >= 0) {\n this.stores.splice(index, 1);\n }\n }\n\n /**\n * Do the stataegy activation\n * @internal\n */\n protected doActivate() {}\n\n /**\n * Do the strategy deactivation\n * @internal\n */\n protected doDeactivate() {}\n}\n","import { EntityStoreStrategyFuncOptions } from '../entity.interfaces';\nimport { EntityStore } from '../store';\nimport { EntityStoreStrategy } from './strategy';\n\n/**\n * When active, this strategy filters a store's stateView to return\n * selected entities only.\n */\nexport class EntityStoreFilterCustomFuncStrategy extends EntityStoreStrategy {\n constructor(protected options: EntityStoreStrategyFuncOptions) {\n super(options);\n }\n\n /**\n * Store / filter ids map\n */\n private filters: Map<EntityStore, string> = new Map();\n\n /**\n * Bind this strategy to a store and start filtering it\n * @param store Entity store\n */\n bindStore(store: EntityStore) {\n super.bindStore(store);\n if (this.active === true) {\n this.filterStore(store);\n }\n }\n\n /**\n * Unbind this strategy from a store and stop filtering it\n * @param store Entity store\n */\n unbindStore(store: EntityStore) {\n super.unbindStore(store);\n if (this.active === true) {\n this.unfilterStore(store);\n }\n }\n\n /**\n * Start filtering all stores\n * @internal\n */\n protected doActivate() {\n this.filterAll();\n }\n\n /**\n * Stop filtering all stores\n * @internal\n */\n protected doDeactivate() {\n this.unfilterAll();\n }\n\n /**\n * Filter all stores\n */\n private filterAll() {\n this.stores.forEach((store: EntityStore) => this.filterStore(store));\n }\n\n /**\n * Unfilter all stores\n */\n private unfilterAll() {\n this.stores.forEach((store: EntityStore) => this.unfilterStore(store));\n }\n\n /**\n * Filter a store and add it to the filters map\n */\n private filterStore(store: EntityStore) {\n this.filters.set(\n store,\n store.stateView.addFilter(this.options.filterClauseFunc)\n );\n }\n\n /**\n * Unfilter a store and delete it from the filters map\n */\n private unfilterStore(store: EntityStore) {\n const filterId = this.filters.get(store);\n if (filterId === undefined) {\n return;\n }\n\n store.stateView.removeFilter(filterId);\n this.filters.delete(store);\n }\n}\n","import { EntityRecord } from '../entity.interfaces';\nimport { EntityStore } from '../store';\nimport { EntityStoreStrategy } from './strategy';\n\n/**\n * When active, this strategy filters a store's stateView to return\n * selected entities only.\n */\nexport class EntityStoreFilterSelectionStrategy extends EntityStoreStrategy {\n /**\n * Store / filter ids map\n */\n private filters: Map<EntityStore, string> = new Map();\n\n /**\n * Bind this strategy to a store and start filtering it\n * @param store Entity store\n */\n bindStore(store: EntityStore) {\n super.bindStore(store);\n if (this.active === true) {\n this.filterStore(store);\n }\n }\n\n /**\n * Unbind this strategy from a store and stop filtering it\n * @param store Entity store\n */\n unbindStore(store: EntityStore) {\n super.unbindStore(store);\n if (this.active === true) {\n this.unfilterStore(store);\n }\n }\n\n /**\n * Start filtering all stores\n * @internal\n */\n protected doActivate() {\n this.filterAll();\n }\n\n /**\n * Stop filtering all stores\n * @internal\n */\n protected doDeactivate() {\n this.unfilterAll();\n }\n\n /**\n * Filter all stores\n */\n private filterAll() {\n this.stores.forEach((store: EntityStore) => this.filterStore(store));\n }\n\n /**\n * Unfilter all stores\n */\n private unfilterAll() {\n this.stores.forEach((store: EntityStore) => this.unfilterStore(store));\n }\n\n /**\n * Filter a store and add it to the filters map\n */\n private filterStore(store: EntityStore) {\n if (this.filters.has(store)) {\n return;\n }\n\n const filter = (record: EntityRecord<object>) => {\n return record.state.selected === true;\n };\n this.filters.set(store, store.stateView.addFilter(filter));\n }\n\n /**\n * Unfilter a store and delete it from the filters map\n */\n private unfilterStore(store: EntityStore) {\n const filterId = this.filters.get(store);\n if (filterId === undefined) {\n return;\n }\n\n store.stateView.removeFilter(filterId);\n this.filters.delete(store);\n }\n}\n","<mat-form-field class=\"igo-entity-selector\" subscriptSizing=\"dynamic\">\n <mat-select\n [disabled]=\"disabled\"\n [value]=\"selected$ | async\"\n [multiple]=\"multi\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <mat-option\n *ngIf=\"emptyText !== undefined && multi === false\"\n [value]=\"emptyValue\"\n >{{ emptyText }}</mat-option\n >\n <mat-option *ngIf=\"multi === true\" [value]=\"multiSelectValue\">{{\n multiText$ | async\n }}</mat-option>\n <ng-template ngFor let-record [ngForOf]=\"store.stateView.all$() | async\">\n <mat-option [value]=\"record.entity\">\n {{ titleAccessor(record.entity) }}\n </mat-option>\n </ng-template>\n </mat-select>\n</mat-form-field>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy\n} from '@angular/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { EntityRecord } from '../shared/entity.interfaces';\nimport { EntityStore } from '../shared/store';\nimport { EntityStoreWatcher } from '../shared/watcher';\nimport { getEntityTitle } from '../shared/entity.utils';\n\n@Component({\n selector: 'igo-entity-selector',\n templateUrl: './entity-selector.component.html',\n styleUrls: ['./entity-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntitySelectorComponent implements OnInit, OnDestroy {\n /**\n * The selected entity\n * @internal\n */\n readonly selected$ = new BehaviorSubject<object>(undefined);\n\n /**\n * The current multi select option text\n * @internal\n */\n readonly multiText$ = new BehaviorSubject<string>(undefined);\n\n readonly multiSelectValue = { id: 'IGO_MULTI_SELECT' };\n\n readonly emptyValue = { id: 'IGO_EMPTY_SELECT' };\n\n /**\n * Subscription to the selected entity\n */\n private selected$$: Subscription;\n\n /**\n * Store watcher\n */\n private watcher: EntityStoreWatcher<object>;\n\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Title accessor\n */\n @Input() titleAccessor: (object) => string = getEntityTitle;\n\n /**\n * Text to display when nothing is selected\n */\n @Input() emptyText: string = undefined;\n\n /**\n * Wheter selecting many entities is allowed\n */\n @Input() multi: boolean = false;\n\n /**\n * Text to display for the select all option\n */\n @Input() multiAllText: string = 'All';\n\n /**\n * Text to display for the select none option\n */\n @Input() multiNoneText: string = 'None';\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Wheter the selector is disabled or not\n */\n @Input() disabled: boolean = false;\n\n /**\n * Event emitted when the selection changes\n */\n @Output() selectedChange = new EventEmitter<{\n selected: boolean;\n value: object | object[];\n }>();\n\n constructor(private cdRef: ChangeDetectorRef) {}\n\n /**\n * Create a store watcher and subscribe to the selected entity\n * @internal\n */\n ngOnInit() {\n this.watcher = new EntityStoreWatcher(this.store, this.cdRef);\n\n this.selected$$ = this.store.stateView\n .manyBy$((record: EntityRecord<object>) => record.state.selected === true)\n .subscribe((records: EntityRecord<object>[]) => {\n const entities = records.map(\n (record: EntityRecord<object>) => record.entity\n );\n this.onSelectFromStore(entities);\n });\n }\n\n /**\n * Unsubscribe to the selected entity and destroy the store watcher\n * @internal\n */\n ngOnDestroy() {\n this.watcher.destroy();\n this.selected$$.unsubscribe();\n }\n\n /**\n * On selection change, update the store's state and emit an event\n * @internal\n */\n onSelectionChange(event: { value: object | undefined }) {\n const values = event.value instanceof Array ? event.value : [event.value];\n\n const multiSelect = values.find(\n (_value: object) => _value === this.multiSelectValue\n );\n let entities = values.filter(\n (_value: object) => _value !== this.multiSelectValue\n );\n if (multiSelect !== undefined) {\n if (entities.length === this.store.count) {\n entities = [];\n } else if (entities.length < this.store.count) {\n entities = this.store.all();\n }\n }\n\n entities = entities.filter((entity: object) => entity !== this.emptyValue);\n if (entities.length === 0) {\n this.store.state.updateAll({ selected: false });\n } else {\n this.store.state.updateMany(entities, { selected: true }, true);\n }\n\n const value = this.multi ? entities : event.value;\n this.selectedChange.emit({ selected: true, value });\n }\n\n private onSelectFromStore(entities: object[]) {\n if (this.multi === true) {\n this.selected$.next(entities);\n } else {\n const entity = entities.length > 0 ? entities[0] : undefined;\n this.selected$.next(entity);\n }\n\n this.updateMultiToggleWithEntities(entities);\n }\n\n private updateMultiToggleWithEntities(entities: object[]) {\n if (\n entities.length === this.store.count &&\n this.multiText$.value !== this.multiNoneText\n ) {\n this.multiText$.next(this.multiNoneText);\n } else if (\n entities.length < this.store.count &&\n this.multiText$.value !== this.multiAllText\n ) {\n this.multiText$.next(this.multiAllText);\n }\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[igoStopPropagation]'\n})\nexport class StopPropagationDirective {\n @HostListener('click', ['$event'])\n public onClick(event: any): void {\n event.stopPropagation();\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n OnChanges,\n ViewChild,\n Output,\n EventEmitter,\n OnDestroy\n} from '@angular/core';\n\nimport { EntityStore } from '../shared';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { LanguageService, MediaService } from '@igo2/core';\nimport { EntityTablePaginatorOptions } from './entity-table-paginator.interface';\n\n@Component({\n selector: 'igo-entity-table-paginator',\n templateUrl: './entity-table-paginator.component.html',\n styleUrls: ['./entity-table-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntityTablePaginatorComponent implements OnChanges, OnDestroy {\n public disabled: boolean = false;\n public hidePageSize: boolean = false;\n public pageIndex: number = 0;\n public pageSize: number = 50;\n public pageSizeOptions: number[] = [5, 10, 20, 50, 100, 200];\n public showFirstLastButtons: boolean = true;\n private count$$: Subscription;\n private entitySortChange$$: Subscription;\n private paginationLabelTranslation$$: Subscription[] = [];\n\n @Input() entitySortChange$: BehaviorSubject<boolean> = new BehaviorSubject(\n false\n );\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Paginator options\n */\n @Input()\n paginatorOptions: EntityTablePaginatorOptions;\n\n /**\n * Event emitted when the paginator changes the page size or page index.\n */\n @Output() page: EventEmitter<PageEvent>;\n\n public length: number = 0;\n\n /**\n * Paginator emitted.\n */\n @Output() paginatorChange: EventEmitter<MatPaginator> =\n new EventEmitter<MatPaginator>();\n\n constructor(\n private languageService: LanguageService,\n private mediaService: MediaService\n ) {}\n\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n\n ngOnChanges() {\n this.unsubscribeAll();\n this.count$$ = this.store.stateView.count$.subscribe((count) => {\n this.length = count;\n this.emitPaginator();\n });\n this.entitySortChange$$ = this.entitySortChange$.subscribe(() => {\n if (this.paginator) {\n this.paginator.firstPage();\n }\n });\n this.initPaginatorOptions();\n this.translateLabels();\n }\n\n initPaginatorOptions() {\n this.disabled = this.paginatorOptions?.disabled || this.disabled;\n this.pageIndex = this.paginatorOptions?.pageIndex || this.pageIndex;\n this.pageSize = this.paginatorOptions?.pageSize || this.pageSize;\n this.pageSizeOptions =\n this.paginatorOptions?.pageSizeOptions || this.pageSizeOptions;\n if (this.mediaService.isMobile()) {\n this.showFirstLastButtons = false;\n this.hidePageSize = true;\n } else {\n this.showFirstLastButtons =\n this.paginatorOptions?.showFirstLastButtons ||\n this.showFirstLastButtons;\n this.hidePageSize =\n this.paginatorOptions?.hidePageSize || this.hidePageSize;\n }\n }\n\n translateLabels() {\n this.paginationLabelTranslation$$.push(\n this.languageService.translate\n .get('igo.common.paginator.firstPageLabel')\n .subscribe((label: string) => {\n this.paginator._intl.firstPageLabel = label;\n })\n );\n\n this.paginator._intl.getRangeLabel = this.rangeLabel;\n\n this.paginationLabelTranslation$$.push(\n this.languageService.translate\n .get('igo.common.paginator.itemsPerPageLabel')\n .subscribe((label: string) => {\n this.paginator._intl.itemsPerPageLabel = label;\n })\n );\n this.paginationLabelTranslation$$.push(\n this.languageService.translate\n .get('igo.common.paginator.lastPageLabel')\n .subscribe((label: string) => {\n this.paginator._intl.lastPageLabel = label;\n })\n );\n this.paginationLabelTranslation$$.push(\n this.languageService.translate\n .get('igo.common.paginator.nextPageLabel')\n .subscribe((label: string) => {\n this.paginator._intl.nextPageLabel = label;\n })\n );\n this.paginationLabelTranslation$$.push(\n this.languageService.translate\n .get('igo.common.paginator.previousPageLabel')\n .subscribe((label: string) => {\n this.paginator._intl.previousPageLabel = label;\n })\n );\n }\n\n rangeLabel = (page: number, pageSize: number, length: number) => {\n const of: BehaviorSubject<string> = new BehaviorSubject('');\n\n this.paginationLabelTranslation$$.push(\n this.languageService.translate\n .get('igo.common.paginator.of')\n .subscribe((label: string) => {\n of.next(label);\n })\n );\n if (length === 0 || pageSize === 0) {\n return `0 ${of.value} ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex =\n startIndex < length\n ? Math.min(startIndex + pageSize, length)\n : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} ${of.value} ${length}`;\n };\n\n private unsubscribeAll() {\n this.paginationLabelTranslation$$.map((sub) => sub.unsubscribe());\n if (this.count$$) {\n this.count$$.unsubscribe();\n }\n if (this.entitySortChange$$) {\n this.entitySortChange$$.unsubscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.unsubscribeAll();\n }\n\n emitPaginator() {\n this.paginatorChange.emit(this.paginator);\n }\n}\n","<mat-paginator\n [disabled]=\"disabled\"\n [hidePageSize]=\"hidePageSize\"\n [length]=\"length\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"emitPaginator()\"\n>\n</mat-paginator>\n","import { Directive, HostListener, Input, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[igoImageError]'\n})\nexport class ImageErrorDirective {\n @Input() errorImageUrl: string = './assets/igo2/common/images/na.png';\n @Input() hideError: boolean = false;\n\n constructor(private el: ElementRef) {}\n\n @HostListener('error', ['$event'])\n public onError(event: any): void {\n if (this.hideError) {\n this.el.nativeElement.style.display = 'none';\n } else {\n event.target.src = this.errorImageUrl;\n }\n }\n}\n","import {\n Directive,\n Input,\n ElementRef,\n Renderer2,\n EventEmitter,\n Output,\n HostListener\n} from '@angular/core';\n\nimport scrollIntoView from 'scroll-into-view-if-needed';\n\nimport { EntityTableScrollBehavior } from '../shared/entity.enums';\n\n/**\n * Directive that handles an entity table row click and selection.\n */\n@Directive({\n selector: '[igoEntityTableRow]'\n})\nexport class EntityTableRowDirective {\n /**\n * Class added to a selected row\n */\n static selectedCls = 'igo-entity-table-row-selected';\n\n /**\n * Class added to a highlighted row\n */\n static highlightedCls = 'igo-entity-table-row-highlighted';\n\n /**\n * Whether a row supports selection\n */\n @Input() selection = false;\n\n /**\n * Whether clicking a row should select it (if selection is true)\n */\n @Input() selectOnClick: boolean = true;\n\n /**\n * Whether the selected row should be highlighted\n */\n @Input() highlightSelection: boolean = true;\n\n /**\n * Whether a row is selected\n */\n @Input()\n set selected(value: boolean) {\n if (this.selection === false) {\n return;\n }\n if (value === this._selected) {\n return;\n }\n\n this.toggleSelected(value);\n this.scroll();\n }\n get selected(): boolean {\n return this._selected;\n }\n private _selected = false;\n\n /**\n * Scroll behavior on selection\n */\n @Input()\n scrollBehavior: EntityTableScrollBehavior = EntityTableScrollBehavior.Auto;\n\n /**\n * Event emitted when a row is selected\n */\n @Output() select = new EventEmitter<EntityTableRowDirective>();\n\n /**\n * When a row is clicked, select it if it's supported\n * @ignore\n */\n @HostListener('click')\n onClick() {\n if (this.selection === false || this.selectOnClick === false) {\n return;\n }\n\n this.toggleSelected(true);\n this.select.emit(this);\n }\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n /**\n * Select a row and add or remove the selected class from it\n * @param selected Whether the row should be selected\n */\n private toggleSelected(selected: boolean) {\n this._selected = selected;\n if (selected === true) {\n this.addCls(EntityTableRowDirective.selectedCls);\n if (this.highlightSelection === true) {\n this.addCls(EntityTableRowDirective.highlightedCls);\n }\n } else {\n this.removeCls(EntityTableRowDirective.selectedCls);\n this.removeCls(EntityTableRowDirective.highlightedCls);\n }\n }\n\n /**\n * Scroll to the selected row\n */\n private scroll() {\n if (this._selected === true) {\n scrollIntoView(this.el.nativeElement, {\n scrollMode: 'if-needed',\n behavior: 'smooth',\n block: 'end',\n inline: 'nearest'\n });\n }\n }\n\n /**\n * Add the selected CSS class\n */\n private addCls(cls: string) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n\n /**\n * Remove the selected CSS class\n */\n private removeCls(cls: string) {\n this.renderer.removeClass(this.el.nativeElement, cls);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({ name: 'sanitizeHtml' })\nexport class SanitizeHtmlPipe implements PipeTransform {\n constructor(private _sanitizer: DomSanitizer) {}\n transform(v: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Cacheable } from 'ts-cacheable';\nimport { Observable } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { ConfigService } from '@igo2/core';\n\n@Pipe({\n name: 'secureImage'\n})\nexport class SecureImagePipe implements PipeTransform {\n constructor(\n private http: HttpClient,\n private configService?: ConfigService\n ) {}\n\n @Cacheable({\n maxCacheCount: 20\n })\n transform(url: string): Observable<string> {\n const headers = new HttpHeaders({\n 'Content-Type': 'text/plain',\n activityInterceptor: 'false',\n interceptError: 'false'\n });\n\n const regexDepot = new RegExp(\n this.configService?.getConfig('depot.url') + '.*?(?=\"|$)'\n );\n if (regexDepot.test(url)) {\n url = url.match(regexDepot)[0];\n }\n\n return this.http\n .get(url, {\n headers,\n responseType: 'blob'\n })\n .pipe(\n catchError((err) => {\n err.error.caught = true;\n err.error.toDisplay = false;\n throw err;\n }),\n switchMap((blob) => {\n return new Observable((observer) => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onloadend = () => {\n observer.next(reader.result);\n observer.complete();\n };\n });\n })\n ) as Observable<string>;\n }\n}\n","<div class=\"table-container\" [ngStyle]=\"{ height: tableHeight }\">\n <table\n id=\"currentWorkspaceTable\"\n mat-table\n matSort\n [ngClass]=\"getTableClass()\"\n [dataSource]=\"dataSource\"\n [trackBy]=\"getTrackByFunction()\"\n (matSortChange)=\"onSort($event)\"\n >\n <ng-container matColumnDef=\"selectionCheckbox\" class=\"mat-cell-checkbox\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-container *ngIf=\"selectMany\">\n <ng-container *ngIf=\"selectionState$ | async as selectionState\">\n <mat-checkbox\n (change)=\"onToggleRows($event.checked)\"\n [checked]=\"selectionState === entityTableSelectionState.All\"\n [indeterminate]=\"\n selectionState === entityTableSelectionState.Some\n \"\n >\n </mat-checkbox>\n </ng-container>\n </ng-container>\n </th>\n <td mat-cell *matCellDef=\"let record\">\n <mat-checkbox\n (mousedown)=\"$event.shiftKey ? $event.preventDefault() : null\"\n (click)=\"\n $event.shiftKey\n ? onShiftToggleRow(!rowIsSelected(record), record, $event)\n : $event.stopPropagation()\n \"\n (change)=\"onToggleRow($event.checked, record)\"\n [checked]=\"rowIsSelected(record)\"\n >\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container\n [matColumnDef]=\"column.name\"\n *ngFor=\"let column of template.columns\"\n >\n <ng-container *ngIf=\"columnIsSortable(column)\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [matTooltip]=\"column.tooltip ? column.tooltip : undefined\"\n class=\"mat-body-1\"\n >\n {{ column.title }}\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"!columnIsSortable(column)\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [matTooltip]=\"column.tooltip ? column.tooltip : undefined\"\n class=\"mat-body-1\"\n >\n {{ column.title }}\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"getColumnRenderer(column) as columnRenderer\">\n <ng-container\n *ngIf=\"columnRenderer === entityTableColumnRenderer.Default\"\n >\n <ng-container *matCellDef=\"let record\">\n <td\n mat-cell\n class=\"mat-cell-text\"\n *ngIf=\"!isUrl(getValue(record, column)); else isAnUrlDefault\"\n [ngClass]=\"getCellClass(record, column)\"\n >\n {{ getValue(record, column) }}\n </td>\n <ng-template #isAnUrlDefault>\n <td\n mat-cell\n class=\"mat-cell-text\"\n [ngClass]=\"getCellClass(record, column)\"\n >\n <a\n href=\"{{ getValue(record, column) }}\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n (click)=\"$event.stopPropagation()\"\n >\n <img\n igoImageError\n *ngIf=\"isImg(getValue(record, column)); else notImg\"\n src=\"{{ getValue(record, column) | secureImage | async }}\"\n width=\"50\"\n heigth=\"auto\"\n />\n <ng-template #notImg\n ><span\n >{{ 'igo.common.entity-table.targetHtmlUrl' | translate }}\n </span></ng-template\n >\n </a>\n </td>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.HTML\">\n <ng-container *matCellDef=\"let record\">\n <td\n mat-cell\n class=\"mat-cell-text\"\n *ngIf=\"!isUrl(getValue(record, column)); else isAnUrlHTML\"\n [ngClass]=\"getCellClass(record, column)\"\n [innerHTML]=\"getValue(record, column)\"\n ></td>\n <ng-template #isAnUrlHTML>\n <td\n mat-cell\n class=\"mat-cell-text\"\n [ngClass]=\"getCellClass(record, column)\"\n >\n <a\n href=\"{{ getValue(record, column) }}\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n (click)=\"$event.stopPropagation()\"\n >\n <img\n igoImageError\n *ngIf=\"isImg(getValue(record, column)); else notImg\"\n src=\"{{ getValue(record, column) | secureImage | async }}\"\n width=\"50\"\n heigth=\"auto\"\n />\n <ng-template #notImg\n ><span\n >{{ 'igo.geo.targetHtmlUrl' | translate }}\n </span></ng-template\n >\n </a>\n </td>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"columnRenderer === entityTableColumnRenderer.UnsanitizedHTML\"\n >\n <ng-container *matCellDef=\"let record\">\n <td\n mat-cell\n class=\"mat-cell-text edition\"\n [formGroup]=\"formGroup\"\n *ngIf=\"isEdition(record); else isUnsanitizedHTML\"\n [ngClass]=\"getCellClass(record, column)\"\n >\n <div class=\"date-picker\" *ngIf=\"column.type === 'date'\">\n <mat-datepicker-toggle\n matSuffix\n [for]=\"picker\"\n ></mat-datepicker-toggle>\n <input\n matInput\n [matDatepicker]=\"picker\"\n [formControlName]=\"column.name\"\n value=\"{{ getValue(record, column) }}\"\n (dateChange)=\"onDateChange(column.name, record, $event)\"\n />\n <mat-datepicker #picker></mat-datepicker>\n </div>\n <input\n matInput\n type=\"time\"\n *ngIf=\"column.type === 'time'\"\n [formControlName]=\"column.name\"\n step=\"900\"\n (focus)=\"column.onFocus($event)\"\n (keypress)=\"column.onChange($event)\"\n (blur)=\"column.onBlur($event)\"\n />\n <input\n matInput\n type=\"number\"\n class=\"class_number_edition\"\n *ngIf=\"column.type === 'number'\"\n [formControlName]=\"column.name\"\n step=\"{{ column.step }}\"\n value=\"{{ getValue(record, column) }}\"\n (input)=\"onValueChange(column.name, record, $event)\"\n readonly=\"{{ getValidationAttributeValue(column, 'readonly') }}\"\n required=\"{{\n getValidationAttributeValue(column, 'mandatory')\n }}\"\n min=\"{{ getValidationAttributeValue(column, 'minValue') }}\"\n max=\"{{ getValidationAttributeValue(column, 'maxValue') }}\"\n />\n <input\n matInput\n type=\"text\"\n *ngIf=\"!column.type || column.type === 'string'\"\n [formControlName]=\"column.name\"\n value=\"{{ getValue(record, column) }}\"\n (input)=\"onValueChange(column.name, record, $event)\"\n readonly=\"{{ getValidationAttributeValue(column, 'readonly') }}\"\n required=\"{{\n getValidationAttributeValue(column, 'mandatory')\n }}\"\n />\n <mat-checkbox\n *ngIf=\"column.type === 'boolean'\"\n [formControlName]=\"column.name\"\n [checked]=\"getValue(record, column)\"\n (change)=\"onBooleanValueChange(column.name, record, $event)\"\n ></mat-checkbox>\n <mat-select\n *ngIf=\"column.type === 'list'\"\n required=\"{{\n getValidationAttributeValue(column, 'mandatory')\n }}\"\n [formControlName]=\"column.name\"\n [multiple]=\"column.multiple\"\n (selectionChange)=\"\n onSelectValueChange(column.name, record, $event)\n \"\n [value]=\"getValue(record, column)\"\n >\n <mat-option\n *ngFor=\"let option of column.domainValues\"\n [value]=\"option.id\"\n [disabled]=\"option.disabled\"\n >\n {{ option.value }}\n </mat-option>\n </mat-select>\n <input\n matInput\n type=\"text\"\n [formControlName]=\"column.name\"\n *ngIf=\"column.type === 'autocomplete'\"\n [matAutocomplete]=\"auto\"\n required=\"{{\n getValidationAttributeValue(column, 'mandatory')\n }}\"\n value=\"{{ getValue(record, column) }}\"\n readonly=\"{{ getValidationAttributeValue(column, 'readonly') }}\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"\n onAutocompleteValueChange(column, record, $event)\n \"\n panelWidth=\"430px\"\n >\n <mat-option\n *ngFor=\"let option of filteredOptions[column.name] | async\"\n [value]=\"option.id\"\n >\n {{ option.value }}\n </mat-option>\n </mat-autocomplete>\n </td>\n <ng-template #isUnsanitizedHTML>\n <td\n mat-cell\n class=\"mat-cell-text\"\n *ngIf=\"\n !isUrl(getValue(record, column));\n else isAnUrlUnsanitizedHTML\n \"\n [ngClass]=\"getCellClass(record, column)\"\n [innerHTML]=\"getValue(record, column) | sanitizeHtml\"\n ></td>\n <ng-template #isAnUrlUnsanitizedHTML>\n <td\n mat-cell\n class=\"mat-cell-text\"\n [ngClass]=\"getCellClass(record, column)\"\n >\n <a\n href=\"{{ getValue(record, column) }}\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n (click)=\"$event.stopPropagation()\"\n >\n <img\n igoImageError\n *ngIf=\"isImg(getValue(record, column)); else notImg\"\n src=\"{{ getValue(record, column) | secureImage | async }}\"\n width=\"50\"\n heigth=\"auto\"\n />\n <ng-template #notImg\n ><span\n >{{ 'igo.geo.targetHtmlUrl' | translate }}\n </span></ng-template\n >\n </a>\n </td>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.Icon\">\n <td\n mat-cell\n *matCellDef=\"let record\"\n class=\"mat-cell-text\"\n [ngClass]=\"getCellClass(record, column)\"\n >\n <mat-icon\n *ngIf=\"column.onClick\"\n svgIcon=\"{{ getValue(record, column) || column.icon }}\"\n (click)=\"column.onClick($event)\"\n ></mat-icon>\n <mat-icon\n *ngIf=\"!column.onClick\"\n svgIcon=\"{{ getValue(record, column) || column.icon }}\"\n ></mat-icon>\n </td>\n </ng-container>\n <ng-container\n *ngIf=\"columnRenderer === entityTableColumnRenderer.ButtonGroup\"\n >\n <ng-container *matCellDef=\"let record\">\n <td\n mat-cell\n class=\"mat-cell-text\"\n [ngClass]=\"getCellClass(record, column)\"\n >\n <span *ngFor=\"let button of getValue(record, column)\">\n <ng-container\n *ngIf=\"\n isEdition(record) === button.editMode ||\n button.editMode === undefined\n \"\n >\n <button\n *ngIf=\"button.style === 'mat-icon-button'\"\n igoStopPropagation\n mat-icon-button\n [color]=\"button.color\"\n (mousedown)=\"onButtonClick(button.click, record)\"\n [disabled]=\"button.disabled\"\n >\n <mat-icon svgIcon=\"{{ button.icon }}\"></mat-icon>\n </button>\n <button\n *ngIf=\"button.style !== 'mat-icon-button'\"\n igoStopPropagation\n mat-mini-fab\n [color]=\"button.color\"\n (mousedown)=\"onButtonClick(button.click, record)\"\n [disabled]=\"button.disabled\"\n >\n <mat-icon svgIcon=\"{{ button.icon }}\"></mat-icon>\n </button>\n </ng-container>\n </span>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <tr\n mat-header-row\n *matHeaderRowDef=\"headers; sticky: fixedHeader\"\n [ngClass]=\"getHeaderClass()\"\n ></tr>\n <tr\n mat-row\n igoEntityTableRow\n *matRowDef=\"let record; columns: headers\"\n [scrollBehavior]=\"scrollBehavior\"\n [ngClass]=\"getRowClass(record)\"\n [selection]=\"selection\"\n [selected]=\"rowIsSelected(record)\"\n (select)=\"onRowSelect(record)\"\n (click)=\"onRowClick(record)\"\n ></tr>\n </table>\n <igo-entity-table-paginator\n *ngIf=\"withPaginator\"\n [store]=\"store\"\n [paginatorOptions]=\"paginatorOptions\"\n [entitySortChange$]=\"entitySortChange$\"\n (paginatorChange)=\"paginatorChange($event)\"\n >\n </igo-entity-table-paginator>\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n Optional,\n Self\n} from '@angular/core';\n\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\n\nimport {\n EntityKey,\n EntityRecord,\n EntityState,\n EntityStore,\n EntityTableTemplate,\n EntityTableColumn,\n EntityTableColumnRenderer,\n EntityTableSelectionState,\n EntityTableScrollBehavior\n} from '../shared';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EntityTablePaginatorOptions } from '../entity-table-paginator/entity-table-paginator.interface';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport {\n UntypedFormBuilder,\n NgControl,\n NgForm,\n FormControlName,\n UntypedFormGroup\n} from '@angular/forms';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { DateAdapter, ErrorStateMatcher } from '@angular/material/core';\nimport { map } from 'rxjs/operators';\nimport { default as moment } from 'moment';\nimport { StringUtils } from '@igo2/utils';\n\n@Component({\n selector: 'igo-entity-table',\n templateUrl: './entity-table.component.html',\n styleUrls: ['./entity-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: MatFormFieldControl, useExisting: EntityTableComponent }\n ]\n})\nexport class EntityTableComponent implements OnInit, OnChanges, OnDestroy {\n entitySortChange$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n public formGroup: UntypedFormGroup = new UntypedFormGroup({});\n\n public filteredOptions = {};\n\n /**\n * Reference to the column renderer types\n * @internal\n */\n entityTableColumnRenderer = EntityTableColumnRenderer;\n\n /**\n * Reference to the selection's state\n * @internal\n */\n entityTableSelectionState = EntityTableSelectionState;\n\n /**\n * Observable of the selection,s state\n * @internal\n */\n readonly selectionState$: BehaviorSubject<EntityTableSelectionState> =\n new BehaviorSubject(undefined);\n\n /**\n * Subscription to the store's selection\n */\n private selection$$: Subscription;\n\n /**\n * Subscription to the dataSource\n */\n private dataSource$$: Subscription;\n\n /**\n * The last record checked. Useful for selecting\n * multiple records by holding the shift key and checking\n * checkboxes.\n */\n private lastRecordCheckedKey: EntityKey;\n\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Table paginator\n */\n @Input() set paginator(value: MatPaginator) {\n this._paginator = value;\n this.dataSource.paginator = value;\n }\n\n get paginator(): MatPaginator {\n return this._paginator;\n }\n private _paginator: MatPaginator;\n\n /**\n * Table template\n */\n @Input() template: EntityTableTemplate;\n\n /**\n * Scroll behavior on selection\n */\n @Input()\n scrollBehavior: EntityTableScrollBehavior = EntityTableScrollBehavior.Auto;\n\n /**\n * Whether nulls should be first when sorting\n */\n @Input()\n sortNullsFirst: boolean = false;\n\n /**\n * Show the table paginator or not. False by default.\n */\n @Input()\n withPaginator: boolean = false;\n\n /**\n * Paginator options\n */\n @Input()\n paginatorOptions: EntityTablePaginatorOptions;\n\n /**\n * Event emitted when an entity (row) is clicked\n */\n @Output() entityClick = new EventEmitter<object>();\n\n /**\n * Event emitted when an entity (row) is selected\n */\n @Output() entitySelectChange = new EventEmitter<{\n added: object[];\n }>();\n\n /**\n * Event emitted when the table sort is changed.\n */\n @Output() entitySortChange: EventEmitter<{\n column: EntityTableColumn;\n direction: string;\n }> = new EventEmitter(undefined);\n\n /**\n * Table headers\n * @internal\n */\n get headers(): string[] {\n let columns = this.template.columns\n .filter((column: EntityTableColumn) => column.visible !== false)\n .map((column: EntityTableColumn) => column.name);\n\n if (this.selectionCheckbox === true) {\n columns = ['selectionCheckbox'].concat(columns);\n }\n\n return columns;\n }\n\n /**\n * Data source consumable by the underlying material table\n * @internal\n */\n dataSource = new MatTableDataSource<object>();\n\n /**\n * Whether selection is supported\n * @internal\n */\n get selection(): boolean {\n return this.template.selection || false;\n }\n\n /**\n * Whether a selection checkbox should be displayed\n * @internal\n */\n get selectionCheckbox(): boolean {\n return this.template.selectionCheckbox || false;\n }\n\n /**\n * Whether selection many entities should eb supported\n * @internal\n */\n get selectMany(): boolean {\n return this.template.selectMany || false;\n }\n\n /**\n * Whether selection many entities should eb supported\n * @internal\n */\n get fixedHeader(): boolean {\n return this.template.fixedHeader === undefined\n ? true\n : this.template.fixedHeader;\n }\n\n get tableHeight(): string {\n return this.template.tableHeight ? this.template.tableHeight : 'auto';\n }\n\n constructor(\n private cdRef: ChangeDetectorRef,\n private formBuilder: UntypedFormBuilder,\n protected _focusMonitor: FocusMonitor,\n protected _elementRef: ElementRef<HTMLElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() protected _parentForm: NgForm,\n @Optional() protected _controlName: FormControlName,\n protected _defaultErrorStateMatcher: ErrorStateMatcher,\n private dateAdapter: DateAdapter<Date>\n ) {\n this.dateAdapter.setLocale('fr-CA');\n }\n\n /**\n * Track the selection state to properly display the selection checkboxes\n * @internal\n */\n ngOnInit() {\n this.handleDatasource();\n this.dataSource.paginator = this.paginator;\n }\n\n /**\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const store = changes.store;\n if (store && store.currentValue !== store.previousValue) {\n this.handleDatasource();\n }\n }\n\n /**\n * Process text or number value change (edition)\n */\n onValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.target.value;\n }\n\n /**\n * Process boolean value change (edition)\n */\n onBooleanValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.checked;\n }\n\n /**\n * Process select value change (edition)\n */\n onSelectValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.value;\n }\n\n /**\n * Process autocomplete value change (edition)\n */\n onAutocompleteValueChange(\n column: EntityTableColumn,\n record: EntityRecord<any>,\n event\n ) {\n this.formGroup.controls[column.name].setValue(event.option.viewValue);\n const key = this.getColumnKeyWithoutPropertiesTag(column.name);\n record.entity.properties[key] = event.option.value;\n }\n\n /**\n * Process date value change (edition)\n */\n onDateChange(column: string, record: EntityRecord<any>, event) {\n const format = 'YYYY-MM-DD';\n const value = moment(event.value).format(format);\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = value;\n }\n\n /**\n * Enable edition mode for one row\n * More than one row can be edited at the same time\n */\n private enableEdit(record: EntityRecord<any>) {\n const item = record.entity.properties || record.entity;\n this.template.columns.forEach((column) => {\n column.title =\n column.validation?.mandatory && !column.title.includes('*')\n ? column.title + ' *'\n : column.title;\n\n const key = this.getColumnKeyWithoutPropertiesTag(column.name);\n if (column.type === 'boolean') {\n if (!item[key] || item[key] === null) {\n item[key] = false;\n } else if (typeof item[key] === 'string') {\n item[key] = JSON.parse(item[key].toLowerCase());\n }\n this.formGroup.setControl(\n column.name,\n this.formBuilder.control(item[key])\n );\n } else if (column.type === 'list') {\n if (column.multiple) {\n this.formGroup.setControl(\n column.name,\n this.formBuilder.control([item[key]])\n );\n } else {\n this.formGroup.setControl(\n column.name,\n this.formBuilder.control(item[key])\n );\n\n typeof item[key] === 'string'\n ? this.formGroup.controls[column.name].setValue(parseInt(item[key]))\n : this.formGroup.controls[column.name].setValue(item[key]);\n }\n } else if (column.type === 'autocomplete') {\n this.formGroup.setControl(\n column.name,\n this.formBuilder.control(item[key])\n );\n\n this.filteredOptions[column.name] = new Observable<any[]>();\n this.filteredOptions[column.name] = this.formGroup.controls[\n column.name\n ].valueChanges.pipe(\n map((value) => {\n if (value?.length) {\n return column.domainValues?.filter((option) => {\n const filterNormalized = value\n ? value\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n : '';\n const featureNameNormalized = option.value\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n return featureNameNormalized.includes(filterNormalized);\n });\n }\n })\n );\n\n let formControlValue = item[key];\n column.domainValues.forEach((option) => {\n if (\n typeof formControlValue === 'string' &&\n StringUtils.isValidNumber(formControlValue) &&\n !StringUtils.isOctalNumber(formControlValue)\n ) {\n formControlValue = parseInt(formControlValue);\n }\n if (\n option.value === formControlValue ||\n option.id === formControlValue\n ) {\n formControlValue = option.value;\n }\n });\n\n this.formGroup.controls[column.name].setValue(formControlValue);\n if (this.isEdition(record) && column.linkColumnForce) {\n const entity = record.entity as any;\n this.formGroup.controls[column.name].setValue(\n entity?.properties[\n this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)\n ]\n );\n }\n } else if (column.type === 'date') {\n if (column.visible !== false) {\n if (item[key]) {\n let date = moment(item[key]);\n item[key] = date.utc().format('YYYY-MM-DD');\n this.formGroup.setControl(\n column.name,\n this.formBuilder.control(item[key])\n );\n } else {\n const newKey = this.getColumnKeyWithoutPropertiesTag(column.name);\n record.entity.properties[newKey] = null;\n this.formGroup.setControl(\n column.name,\n this.formBuilder.control(null)\n );\n }\n }\n } else {\n this.formGroup.setControl(\n column.name,\n this.formBuilder.control(item[key])\n );\n }\n\n if (\n this.formGroup.controls[column.name] &&\n this.getValidationAttributeValue(column, 'readonly')\n ) {\n this.formGroup.controls[column.name].disable();\n }\n });\n }\n\n private handleDatasource() {\n this.unsubscribeStore();\n this.selection$$ = this.store.stateView\n .manyBy$((record: EntityRecord<object>) => record.state.selected === true)\n .subscribe((records: EntityRecord<object>[]) => {\n const firstSelected = records[0];\n const firstSelectedStateviewPosition = this.store.stateView\n .all()\n .indexOf(firstSelected);\n const pageMax = this.paginator\n ? this.paginator.pageSize * (this.paginator.pageIndex + 1)\n : 0;\n const pageMin = this.paginator ? pageMax - this.paginator.pageSize : 0;\n\n if (\n this.paginator &&\n (firstSelectedStateviewPosition < pageMin ||\n firstSelectedStateviewPosition >= pageMax)\n ) {\n const pageToReach = Math.floor(\n firstSelectedStateviewPosition / this.paginator.pageSize\n );\n this.dataSource.paginator.pageIndex = pageToReach;\n }\n this.selectionState$.next(this.computeSelectionState(records));\n });\n this.dataSource$$ = this.store.stateView.all$().subscribe((all) => {\n if (all[0]) {\n this.enableEdit(all[0]);\n }\n this.dataSource.data = all;\n });\n }\n\n /**\n * Unbind the store watcher\n * @internal\n */\n ngOnDestroy() {\n this.unsubscribeStore();\n }\n\n private unsubscribeStore() {\n if (this.selection$$) {\n this.selection$$.unsubscribe();\n }\n if (this.dataSource$$) {\n this.dataSource$$.unsubscribe();\n }\n }\n\n /**\n * Trackby function\n * @param record Record\n * @param index Record index\n * @internal\n */\n getTrackByFunction() {\n return (index: number, record: EntityRecord<object, EntityState>) => {\n return record.ref;\n };\n }\n\n /**\n * Trigger a refresh of thre table. This can be useful when\n * the data source doesn't emit a new value but for some reason\n * the records need an update.\n * @internal\n */\n refresh() {\n this.cdRef.detectChanges();\n }\n\n paginatorChange(event: MatPaginator) {\n this.paginator = event;\n }\n\n /**\n * On sort, sort the store\n * @param event Sort event\n * @internal\n */\n onSort(event: { active: string; direction: string }) {\n const direction = event.direction;\n const column = this.template.columns.find(\n (c: EntityTableColumn) => c.name === event.active\n );\n\n if (direction === 'asc' || direction === 'desc') {\n this.store.stateView.sort({\n valueAccessor: (record: EntityRecord<object>) =>\n this.getValue(record, column),\n direction,\n nullsFirst: this.sortNullsFirst\n });\n this.entitySortChange.emit({ column, direction });\n this.entitySortChange$.next(true);\n } else {\n this.store.stateView.sort(undefined);\n }\n }\n\n /**\n * When an entity is clicked, emit an event\n * @param record Record\n * @internal\n */\n onRowClick(record: EntityRecord<object>) {\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n this.entityClick.emit(record.entity);\n }\n\n /**\n * When an entity is selected, select it in the store and emit an event. Even if\n * \"many\" is set to true, this method always select a single, exclusive row. Selecting\n * multiple rows should be achieved by using the checkboxes.\n * @param record Record\n * @internal\n */\n onRowSelect(record: EntityRecord<object>) {\n if (this.selection === false) {\n return;\n }\n\n const entity = record.entity;\n this.store.state.update(entity, { selected: true }, true);\n this.entitySelectChange.emit({ added: [entity] });\n }\n\n /**\n * Select or unselect all rows at once. On select, emit an event.\n * @param toggle Select or unselect\n * @internal\n */\n onToggleRows(toggle: boolean) {\n if (this.selection === false) {\n return;\n }\n\n this.store.state.updateAll({ selected: toggle });\n if (toggle === true) {\n const entities = this.store.stateView\n .all()\n .map((record: EntityRecord<object>) => record.entity);\n this.entitySelectChange.emit({ added: [entities] });\n }\n }\n\n /**\n * When an entity is toggled, select or unselect it in the store. On select,\n * emit an event.\n * @param toggle Select or unselect\n * @param record Record\n * @internal\n */\n onToggleRow(toggle: boolean, record: EntityRecord<object>) {\n if (this.selection === false) {\n return;\n }\n\n const entity = record.entity;\n const exclusive = toggle === true && !this.selectMany;\n this.store.state.update(entity, { selected: toggle }, exclusive);\n if (toggle === true) {\n this.entitySelectChange.emit({ added: [entity] });\n }\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n }\n\n /**\n * When an entity is toggled, select or unselect it in the store. On select,\n * emit an event.\n * @param toggle Select or unselect\n * @param record Record\n * @internal\n */\n onShiftToggleRow(\n toggle: boolean,\n record: EntityRecord<object>,\n event: MouseEvent\n ) {\n if (this.selection === false) {\n return;\n }\n\n if (this.selectMany === false || this.lastRecordCheckedKey === undefined) {\n this.onToggleRow(toggle, record);\n return;\n }\n\n // This is a workaround mat checkbox wrong behavior\n // when the shift key is held.\n // See https://github.com/angular/components/issues/6232\n const range = window.document.createRange();\n range.selectNode(event.target as HTMLElement);\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(range);\n event.stopImmediatePropagation();\n\n const records = this.store.stateView.all();\n const recordIndex = records.indexOf(record);\n const lastRecordChecked = this.store.stateView.get(\n this.lastRecordCheckedKey\n );\n const lastRecordIndex = records.indexOf(lastRecordChecked);\n const indexes = [recordIndex, lastRecordIndex];\n const selectRecords = records.slice(\n Math.min(...indexes),\n Math.max(...indexes) + 1\n );\n\n const entities = selectRecords.map(\n (_record: EntityRecord<object>) => _record.entity\n );\n this.store.state.updateMany(entities, { selected: toggle });\n if (toggle === true) {\n this.entitySelectChange.emit({ added: entities });\n }\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n }\n\n /**\n * Compute the selection state\n * @returns Whether all, some or no rows are selected\n * @internal\n */\n private computeSelectionState(\n selectedRecords: EntityRecord<object>[]\n ): EntityTableSelectionState {\n const states = EntityTableSelectionState;\n const selectionCount = selectedRecords.length;\n return selectionCount === 0\n ? states.None\n : selectionCount === this.store.stateView.count\n ? states.All\n : states.Some;\n }\n\n /**\n * Whether a column is sortable\n * @param column Column\n * @returns True if a column is sortable\n * @internal\n */\n columnIsSortable(column: EntityTableColumn): boolean {\n let sortable = column.sort;\n if (sortable === undefined) {\n sortable = this.template.sort === undefined ? false : this.template.sort;\n }\n return sortable;\n }\n\n /**\n * Whether a row is should be selected based on the underlying entity state\n * @param record Record\n * @returns True if a row should be selected\n * @internal\n */\n rowIsSelected(record: EntityRecord<object>): boolean {\n const state = record.state;\n return state.selected ? state.selected : false;\n }\n\n isImg(value) {\n if (this.isUrl(value)) {\n return (\n ['jpg', 'png', 'gif'].indexOf(value.split('.').pop().toLowerCase()) !==\n -1\n );\n } else {\n return false;\n }\n }\n\n isUrl(value) {\n if (typeof value === 'string') {\n return (\n value.slice(0, 8) === 'https://' || value.slice(0, 7) === 'http://'\n );\n } else {\n return false;\n }\n }\n\n /**\n * Method to access an entity's values\n * @param record Record\n * @param column Column\n * @returns Any value\n * @internal\n */\n getValue(record: EntityRecord<object>, column: EntityTableColumn): any {\n const entity = record.entity;\n let value;\n if (column.valueAccessor !== undefined) {\n return column.valueAccessor(entity, record);\n }\n if (this.template.valueAccessor !== undefined) {\n return this.template.valueAccessor(entity, column.name, record);\n }\n value = this.store.getProperty(entity, column.name);\n\n if (column.type === 'boolean') {\n if (value === undefined || value === null || value === '') {\n value = false;\n } else if (typeof value !== 'boolean' && value !== undefined) {\n if (typeof value === 'number') {\n value = Boolean(value);\n } else {\n value = JSON.parse(value.toLowerCase());\n }\n }\n if (!this.isEdition(record)) {\n value = value ? '&#10003;' : ''; // check mark\n }\n } else if (column.type === 'list' && value && column.domainValues) {\n const entity = record.entity as any;\n if (column.multiple) {\n let list_id;\n typeof value === 'string'\n ? (list_id = value.match(/[\\w.-]+/g).map(Number))\n : (list_id = value);\n let list_option = [];\n\n column.domainValues.forEach((option) => {\n if (list_id.includes(option.id)) {\n if (record.edition) {\n list_option.push(option.id);\n } else {\n list_option.push(option.value);\n }\n }\n });\n\n this.isEdition(record) ? (value = list_id) : (value = list_option);\n } else {\n if (!this.isEdition(record) && column.linkColumnForce) {\n value =\n entity?.properties[\n this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)\n ];\n } else {\n column.domainValues.forEach((option) => {\n if (\n typeof value === 'string' &&\n StringUtils.isValidNumber(value) &&\n !StringUtils.isOctalNumber(value)\n ) {\n value = parseInt(value);\n }\n if (option.value === value || option.id === value) {\n this.isEdition(record)\n ? (value = option.id)\n : (value = option.value);\n }\n });\n }\n }\n } else if (column.type === 'autocomplete' && value && column.domainValues) {\n const entity = record.entity as any;\n if (!this.isEdition(record) && column.linkColumnForce) {\n value =\n entity?.properties[\n this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)\n ];\n } else {\n column.domainValues.forEach((option) => {\n if (\n typeof value === 'string' &&\n StringUtils.isValidNumber(value) &&\n !StringUtils.isOctalNumber(value)\n ) {\n value = parseInt(value);\n }\n if (option.value === value || option.id === value) {\n value = option.value;\n }\n });\n }\n } else if (column.type === 'date') {\n if (this.isEdition(record)) {\n if (value) {\n let date = moment(value);\n value = date.format();\n this.formGroup.controls[column.name].setValue(value);\n }\n } else if (!this.isEdition(record) && value === null) {\n value = '';\n }\n }\n\n if (value === undefined) {\n value = '';\n }\n\n return value;\n }\n\n /**\n * Method to access an entity's validation values\n * @param column Column\n * @param validationType string\n * @returns Any value (false if no validation or not the one concerned)\n * @internal\n */\n getValidationAttributeValue(\n column: EntityTableColumn,\n validationType: string\n ): any {\n if (\n column.validation !== undefined &&\n column.validation[validationType] !== undefined\n ) {\n return column.validation[validationType];\n } else {\n return false;\n }\n }\n\n public isEdition(record) {\n return record.entity.edition ? true : false;\n }\n\n /**\n * Return the type of renderer of a column\n * @param column Column\n * @returns Renderer type\n * @internal\n */\n getColumnRenderer(column: EntityTableColumn): EntityTableColumnRenderer {\n if (column.renderer !== undefined) {\n return column.renderer;\n }\n return EntityTableColumnRenderer.Default;\n }\n\n /**\n * Return the table ngClass\n * @returns ngClass\n * @internal\n */\n getTableClass(): { [key: string]: boolean } {\n return {\n 'igo-entity-table-with-selection': this.selection\n };\n }\n\n /**\n * Return a header ngClass\n * @returns ngClass\n * @internal\n */\n getHeaderClass(): { [key: string]: boolean } {\n const func = this.template.headerClassFunc;\n if (func instanceof Function) {\n return func();\n }\n return {};\n }\n\n /**\n * Return a row ngClass\n * @param record Record\n * @returns ngClass\n * @internal\n */\n getRowClass(record: EntityRecord<object>): { [key: string]: boolean } {\n const entity = record.entity;\n const func = this.template.rowClassFunc;\n if (func instanceof Function) {\n return func(entity, record);\n }\n return {};\n }\n\n /**\n * Return a row ngClass\n * @param record Record\n * @param column Column\n * @returns ngClass\n * @internal\n */\n getCellClass(\n record: EntityRecord<object>,\n column: EntityTableColumn\n ): { [key: string]: boolean } {\n const entity = record.entity;\n const cls = {};\n\n const tableFunc = this.template.cellClassFunc;\n if (tableFunc instanceof Function) {\n Object.assign(cls, tableFunc(entity, column, record));\n }\n\n const columnFunc = column.cellClassFunc;\n if (columnFunc instanceof Function) {\n Object.assign(cls, columnFunc(entity, record));\n }\n\n return cls;\n }\n\n /**\n * When a button is clicked\n * @param func Function\n * @param record Record\n * @internal\n */\n onButtonClick(\n clickFunc: (entity: object, record?: EntityRecord<object>) => void,\n record: EntityRecord<object>\n ) {\n this.enableEdit(record);\n if (typeof clickFunc === 'function') {\n clickFunc(record.entity, record);\n }\n }\n\n /**\n * Retrieve column name without his \"properties\" tag (useful for edition workspace properties)\n */\n public getColumnKeyWithoutPropertiesTag(column: string) {\n if (column.includes('properties.')) {\n return column.split('.')[1];\n }\n return column;\n }\n}\n","export enum ActionbarMode {\n Dock = 'dock',\n Overlay = 'overlay',\n Context = 'context'\n}\n","import { EntityStore } from '../../entity';\nimport { Action } from './action.interfaces';\n\n/**\n * The class is a specialized version of an EntityStore that stores\n * actions.\n */\nexport class ActionStore extends EntityStore<Action> {}\n","<mat-list-item\n *ngIf=\"!action.checkbox\"\n class=\"actionbar-item\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\"\n (click)=\"onClick()\"\n>\n <button\n *ngIf=\"withIcon\"\n matListItemAvatar\n mat-icon-button\n [color]=\"color\"\n [disabled]=\"disabled$ | async\"\n [disableRipple]=\"true\"\n >\n <mat-icon *ngIf=\"withIcon\" svgIcon=\"{{ icon$ | async }}\"></mat-icon>\n </button>\n <span *ngIf=\"withTitle\" matLine>{{ title | translate }}</span>\n</mat-list-item>\n\n<mat-list-item\n class=\"item-checkbox\"\n *ngIf=\"action.checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\"\n>\n <mat-checkbox\n *ngIf=\"withTitle\"\n (change)=\"action.handler()\"\n [checked]=\"checkCondition$ | async\"\n >\n {{ title | translate }}\n </mat-checkbox>\n</mat-list-item>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n OnDestroy\n} from '@angular/core';\n\nimport { BehaviorSubject, Subscription, isObservable } from 'rxjs';\n\nimport { Action } from '../shared/action.interfaces';\n\n/**\n * An action button\n */\n@Component({\n selector: 'igo-actionbar-item',\n templateUrl: './actionbar-item.component.html',\n styleUrls: ['./actionbar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionbarItemComponent implements OnInit, OnDestroy {\n readonly disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly checkCondition$: BehaviorSubject<boolean> = new BehaviorSubject(\n undefined\n );\n\n readonly icon$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n readonly tooltip$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n readonly noDisplay$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly ngClass$: BehaviorSubject<{ [key: string]: boolean }> =\n new BehaviorSubject({});\n\n private ngClass$$: Subscription;\n\n private disabled$$: Subscription;\n\n private availability$$: Subscription;\n\n private icon$$: Subscription;\n\n private checkCondition$$: Subscription;\n\n private tooltip$$: Subscription;\n\n private noDisplay$$: Subscription;\n\n private display$$: Subscription;\n\n /**\n * Action\n */\n @Input() action: Action;\n\n /**\n * Color\n */\n @Input() color = 'default';\n\n /**\n * Whether the action title is displayed\n */\n @Input() withTitle = true;\n\n /**\n * Whether the action icon is displayed\n */\n @Input() withIcon = true;\n\n /**\n * Whether a tooltip should be shown\n */\n @Input() withTooltip = true;\n\n /**\n * Whether the action is disabled\n */\n @Input()\n set disabled(value: boolean) {\n this.disabled$.next(value);\n }\n get disabled(): boolean {\n return this.disabled$.value;\n }\n\n /**\n * Whether the action is display or not\n */\n @Input()\n set noDisplay(value: boolean) {\n this.noDisplay$.next(value);\n }\n get noDisplay(): boolean {\n return this.noDisplay$.value;\n }\n\n /**\n * Event emitted when the action button is clicked\n */\n @Output() trigger: EventEmitter<Action> = new EventEmitter();\n\n /**\n * @internal\n */\n get title(): string {\n return this.action.title;\n }\n\n constructor() {}\n\n ngOnInit() {\n const args = this.action.args || [];\n\n if (this.action.ngClass !== undefined) {\n this.ngClass$$ = this.action\n .ngClass(...args)\n .subscribe((ngClass: { [key: string]: boolean }) =>\n this.updateNgClass(ngClass)\n );\n }\n\n if (isObservable(this.action.icon)) {\n this.icon$$ = this.action.icon.subscribe((icon: string) =>\n this.updateIcon(icon)\n );\n } else {\n this.updateIcon(this.action.icon);\n }\n\n if (isObservable(this.action.checkCondition)) {\n this.checkCondition$$ = this.action.checkCondition.subscribe(\n (checkCondition: boolean) => this.updateCheckCondition(checkCondition)\n );\n } else {\n this.updateCheckCondition(this.action.checkCondition);\n }\n\n if (isObservable(this.action.tooltip)) {\n this.tooltip$$ = this.action.tooltip.subscribe((tooltip: string) =>\n this.updateTooltip(tooltip)\n );\n } else {\n this.updateTooltip(this.action.tooltip);\n }\n\n if (this.action.availability !== undefined) {\n this.availability$$ = this.action\n .availability(...args)\n .subscribe((available: boolean) => (this.disabled = !available));\n }\n\n this.disabled$$ = this.disabled$.subscribe((disabled: boolean) =>\n this.updateNgClass({ 'igo-actionbar-item-disabled': disabled })\n );\n\n if (this.action.display !== undefined) {\n this.display$$ = this.action\n .display(...args)\n .subscribe((display: boolean) => (this.noDisplay = !display));\n }\n\n this.noDisplay$$ = this.noDisplay$.subscribe((noDisplay: boolean) =>\n this.updateNgClass({ 'igo-actionbar-item-no-display': noDisplay })\n );\n }\n\n ngOnDestroy() {\n if (this.ngClass$$ !== undefined) {\n this.ngClass$$.unsubscribe();\n this.ngClass$$ = undefined;\n }\n\n if (this.availability$$ !== undefined) {\n this.availability$$.unsubscribe();\n this.availability$$ = undefined;\n }\n\n if (this.display$$ !== undefined) {\n this.display$$.unsubscribe();\n this.display$$ = undefined;\n }\n\n if (this.checkCondition$$ !== undefined) {\n this.checkCondition$$.unsubscribe();\n this.checkCondition$$ = undefined;\n }\n\n if (this.icon$$ !== undefined) {\n this.icon$$.unsubscribe();\n this.icon$$ = undefined;\n }\n\n if (this.tooltip$$ !== undefined) {\n this.tooltip$$.unsubscribe();\n this.tooltip$$ = undefined;\n }\n\n this.disabled$$.unsubscribe();\n this.noDisplay$$.unsubscribe();\n }\n\n /**\n * When the action button is clicked, emit the 'trigger' event but don't\n * invoke the action handler. This is handled by the parent component.\n * @internal\n */\n onClick() {\n if (this.disabled === true) {\n return;\n }\n this.trigger.emit(this.action);\n }\n\n private updateNgClass(ngClass: { [key: string]: boolean }) {\n this.ngClass$.next(Object.assign({}, this.ngClass$.value, ngClass));\n }\n\n private updateTooltip(tooltip: string) {\n this.tooltip$.next(tooltip);\n }\n\n private updateCheckCondition(checkCondition: boolean) {\n this.checkCondition$.next(checkCondition);\n }\n\n private updateIcon(icon: string) {\n this.icon$.next(icon);\n }\n}\n","<mat-list *ngIf=\"mode === actionbarMode.Dock\" matListItemIcon>\n <div\n *ngIf=\"heightCondition && positionConditionTop && isDesktop\"\n id=\"topChevron\"\n >\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\"\n >\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n </div>\n\n <igo-actionbar-item\n *ngIf=\"withToggleButton\"\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color\"\n [disabled]=\"store.view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\"\n >\n </igo-actionbar-item>\n\n <ng-template\n #buttonContent\n *ngIf=\"!collapsed\"\n ngFor\n let-action\n [ngForOf]=\"store.view.all$() | async\"\n >\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [withTooltip]=\"withTooltip\"\n [color]=\"color\"\n [disabled]=\"store.state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n >\n </igo-actionbar-item>\n </ng-template>\n\n <div\n *ngIf=\"heightCondition && positionConditionLow && isDesktop\"\n id=\"lowChevron\"\n >\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\"\n >\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n </div>\n</mat-list>\n\n<div *ngIf=\"mode === actionbarMode.Overlay\">\n <button\n class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store.view.empty\"\n [color]=\"iconColor\"\n >\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\n </button>\n\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n [class]=\"overlayClass\"\n >\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n >\n </igo-actionbar-item>\n </ng-template>\n </mat-list>\n </mat-menu>\n</div>\n<mat-card\n *ngIf=\"mode === actionbarMode.Context\"\n class=\"context-menu-card mat-elevation-z4\"\n>\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n >\n </igo-actionbar-item>\n <br />\n </ng-template>\n </mat-list>\n</mat-card>\n","import {\n Component,\n Input,\n HostBinding,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ElementRef\n} from '@angular/core';\n\nimport { MediaService, Media } from '@igo2/core';\nimport { EntityStoreWatcher } from '../../entity';\nimport { Action } from '../shared/action.interfaces';\nimport { ActionbarMode } from '../shared/action.enums';\nimport { ActionStore } from '../shared/store';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * A list of action buttons.\n * This component can be displayed in one of two way: 'dock' or 'overlay'\n */\n@Component({\n selector: 'igo-actionbar',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionbarComponent implements OnDestroy, OnChanges {\n /**\n * Reference to the ActionbarMode enum for use in the template\n * @internal\n */\n actionbarMode = ActionbarMode;\n\n /**\n * Whether the actionbar is collapsed (Dock mode)\n * @internal\n */\n collapsed = false;\n\n /**\n * Toggle collapse action (Dock)\n * @internal\n */\n toggleCollapseAction = {\n id: 'actionbar_toggle',\n icon: 'dots-vertical',\n handler: () => {\n this.collapsed = !this.collapsed;\n }\n };\n\n /**\n * Action store watcher\n * @internal\n */\n private watcher: EntityStoreWatcher<Action>;\n\n /**\n * Height Condition for scroll button\n */\n heightCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(\n false\n );\n\n /**\n * Position Condition for top scroll button\n */\n positionConditionTop$: BehaviorSubject<boolean> =\n new BehaviorSubject<boolean>(true);\n\n /**\n * Position Condition for low scroll button\n */\n positionConditionLow$: BehaviorSubject<boolean> =\n new BehaviorSubject<boolean>(true);\n\n /**\n * Action store\n */\n @Input() store: ActionStore;\n\n /**\n * Actionbar mode\n */\n @Input() mode: ActionbarMode = ActionbarMode.Dock;\n\n /**\n * Whether a toggle button should be displayed (Dock mode)\n */\n @Input() withToggleButton = false;\n\n /**\n * Whether a the actionbar should display buttons horizontally\n */\n @Input() horizontal = false;\n\n /**\n * Color\n */\n @Input() color = 'default';\n\n /**\n * Color of the button if action mode === overlay\n */\n @Input() iconColor = 'default';\n\n /**\n * Whether action titles are displayed\n */\n @Input() withTitle = true;\n\n /**\n * Whether action tooltips are displayed\n */\n @Input() withTooltip = true;\n\n /**\n * Whether action titles are displayed (condition for scroll button)\n */\n @Input() scrollActive = true;\n\n /**\n * Whether action icons are displayed\n */\n @Input() withIcon = true;\n\n /**\n * Which icon want to be shown\n */\n @Input() icon = 'dots-horizontal';\n\n /**\n * Overlay X position\n */\n @Input() xPosition = 'before';\n\n /**\n * Overlay Y position\n */\n @Input() yPosition = 'above';\n\n /**\n * Class to add to the actionbar overlay\n */\n @Input()\n set overlayClass(value: string) {\n this._overlayClass = value;\n }\n get overlayClass(): string {\n return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');\n }\n private _overlayClass = '';\n\n @HostBinding('class.is-collapsed') isCollapsed = this.collapsed;\n\n /**\n * @ignore\n */\n @HostBinding('class.with-title')\n get withTitleClass() {\n return this.withTitle;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.with-icon')\n get withIconClass() {\n return this.withIcon;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.horizontal')\n get horizontalClass() {\n return this.horizontal;\n }\n\n get heightCondition(): boolean {\n const el = this.elRef.nativeElement;\n if (this.scrollActive === false) {\n if (el.clientHeight < el.scrollHeight) {\n return true;\n }\n }\n return false;\n }\n\n get positionConditionTop(): boolean {\n if (this.elRef.nativeElement.scrollTop === 0) {\n return false;\n }\n return true;\n }\n\n get positionConditionLow(): boolean {\n const el = this.elRef.nativeElement;\n if (el.scrollTop >= el.scrollHeight - el.clientHeight) {\n return false;\n }\n return true;\n }\n\n get isDesktop(): boolean {\n return this.mediaService.getMedia() === Media.Desktop;\n }\n\n constructor(\n public overlay: Overlay,\n private elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n public mediaService: MediaService\n ) {}\n\n /**\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const store = changes.store;\n if (store && store.currentValue !== store.previousValue) {\n if (this.watcher !== undefined) {\n this.watcher.destroy();\n }\n this.watcher = new EntityStoreWatcher(this.store, this.cdRef);\n }\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.watcher.destroy();\n }\n\n /**\n * Invoke the action handler\n * @internal\n */\n onTriggerAction(action: Action) {\n const args = action.args || [];\n action.handler(...args);\n }\n\n scrollDown() {\n this.elRef.nativeElement.scrollBy(0, 52);\n }\n\n scrollUp() {\n this.elRef.nativeElement.scrollBy(0, -52);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { ActionbarComponent } from './actionbar.component';\nimport { ActionbarItemComponent } from './actionbar-item.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoLanguageModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatMenuModule,\n MatListModule,\n MatCardModule,\n MatCheckboxModule\n ],\n exports: [ActionbarComponent],\n declarations: [ActionbarComponent, ActionbarItemComponent]\n})\nexport class IgoActionbarModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoActionbarModule } from './actionbar/actionbar.module';\n\n@NgModule({\n imports: [CommonModule, IgoActionbarModule],\n exports: [IgoActionbarModule],\n declarations: [],\n providers: []\n})\nexport class IgoActionModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'igo-backdrop',\n templateUrl: './backdrop.component.html',\n styleUrls: ['./backdrop.component.scss']\n})\nexport class BackdropComponent {\n @Input()\n get shown(): boolean {\n return this._shown;\n }\n set shown(value: boolean) {\n this._shown = value;\n }\n private _shown: boolean;\n\n constructor() {}\n}\n","<div [ngClass]=\"{ 'igo-backdrop-shown': shown }\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BackdropComponent } from './backdrop.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BackdropComponent],\n exports: [BackdropComponent]\n})\nexport class IgoBackdropModule {\n static forRoot(): ModuleWithProviders<IgoBackdropModule> {\n return {\n ngModule: IgoBackdropModule,\n providers: []\n };\n }\n}\n","import { Directive, Input, ElementRef, OnInit } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\n\n/**\n * This directive allow to add an icon inside a matBadge.\n * A value must be set into the matBadge directive ex: matBadge=\"icon\".\n * The badge content will be overrided by this current directive.\n */\n@Directive({\n selector: '[igoMatBadgeIcon]'\n})\nexport class IgoBadgeIconDirective implements OnInit {\n @Input()\n set igoMatBadgeIcon(value: string) {\n this.matIconRegistry.getNamedSvgIcon(value).subscribe((svgObj) => {\n this.svg = svgObj;\n this.updateSvg();\n });\n }\n private svg: SVGElement;\n\n @Input()\n set matBadgeHidden(value: boolean) {\n this.hidden = value;\n this.updateHidden();\n }\n private hidden = false;\n\n @Input()\n set matBadgeDisabled(value: boolean) {\n this.disabled = value;\n this.updateDisabled();\n }\n private disabled = false;\n\n @Input()\n set igoMatBadgeInverseColor(value: boolean) {\n this.inverseColor = value;\n this.updateColor();\n }\n private inverseColor = false;\n\n @Input()\n set igoMatBadgeInheritColor(value: boolean) {\n this.inheritColor = value;\n this.updateColor();\n }\n private inheritColor = false;\n\n @Input()\n set igoMatBadgeColor(value: string) {\n this.color = value;\n this.updateColor();\n }\n private color;\n\n @Input()\n set igoMatBadgeBackgroundColor(value: string) {\n this.backgroundColor = value;\n this.updateColor();\n }\n private backgroundColor;\n\n get badge() {\n return this.el.nativeElement.querySelector('.mat-badge-content');\n }\n\n private originalColor: string;\n\n constructor(\n private el: ElementRef,\n private matIconRegistry: MatIconRegistry\n ) {}\n\n ngOnInit() {\n this.badge.style.alignItems = 'center';\n this.badge.style.justifyContent = 'center';\n\n this.updateHidden();\n this.updateColor();\n this.updateSvg();\n }\n\n private updateSvg() {\n if (!this.badge) {\n return;\n }\n this.badge.innerHTML = '';\n if (this.svg) {\n this.badge.appendChild(this.svg);\n }\n }\n private updateColor() {\n if (!this.badge) {\n return;\n }\n\n if (this.color || this.backgroundColor) {\n this.badge.style.color = this.color ? this.color : '';\n this.badge.style.background = this.backgroundColor\n ? this.backgroundColor\n : '';\n } else if (this.inheritColor) {\n if (this.inverseColor) {\n this.badge.style.color = 'currentColor';\n this.badge.style.background = 'none';\n } else {\n this.badge.style.color = '';\n this.badge.style.background = 'currentColor';\n }\n } else if (!this.inheritColor) {\n if (this.inverseColor) {\n this.badge.style.color = window\n .getComputedStyle(this.badge, null)\n .getPropertyValue('background-color');\n this.badge.style.background = 'none';\n } else {\n this.badge.style.color = '';\n this.badge.style.background = '';\n }\n }\n this.originalColor = this.badge.style.color;\n this.updateDisabled();\n }\n\n private updateHidden() {\n if (!this.badge) {\n return;\n }\n this.badge.style.display = this.hidden ? 'none' : 'flex';\n }\n\n private updateDisabled() {\n if (!this.badge || !this.inverseColor) {\n return;\n }\n if (this.disabled) {\n this.originalColor = this.badge.style.color;\n this.badge.style.color = '#b9b9b9';\n } else {\n this.badge.style.color = this.originalColor;\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { IgoBadgeIconDirective } from './badge-icon.directive';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n imports: [MatBadgeModule, MatIconModule],\n declarations: [IgoBadgeIconDirective],\n exports: [MatBadgeModule, IgoBadgeIconDirective]\n})\nexport class IgoMatBadgeIconModule {\n static forRoot(): ModuleWithProviders<IgoMatBadgeIconModule> {\n return {\n ngModule: IgoMatBadgeIconModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Output\n} from '@angular/core';\n\n@Directive({\n selector: '[igoClickout]'\n})\nexport class ClickoutDirective {\n @Output() clickout = new EventEmitter<MouseEvent>();\n\n @HostListener('document:click', ['$event', '$event.target'])\n handleMouseClick(event: MouseEvent, target: HTMLElement) {\n if (!target) {\n return;\n }\n\n if (!this.el.nativeElement.contains(target)) {\n this.clickout.emit(event);\n }\n }\n\n constructor(private el: ElementRef) {}\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ClickoutDirective } from './clickout.directive';\n\n@NgModule({\n imports: [],\n declarations: [ClickoutDirective],\n exports: [ClickoutDirective]\n})\nexport class IgoClickoutModule {\n static forRoot(): ModuleWithProviders<IgoClickoutModule> {\n return {\n ngModule: IgoClickoutModule,\n providers: []\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'clone'\n})\nexport class ClonePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n if (value === undefined) {\n return value;\n }\n\n if (value instanceof Array) {\n return value.map((obj) => Object.assign(Object.create(obj), obj));\n } else {\n return Object.assign(Object.create(value), value);\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ClonePipe } from './clone.pipe';\n\n@NgModule({\n imports: [],\n declarations: [ClonePipe],\n exports: [ClonePipe]\n})\nexport class IgoCloneModule {\n static forRoot(): ModuleWithProviders<IgoCloneModule> {\n return {\n ngModule: IgoCloneModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostListener,\n ElementRef,\n Renderer2\n} from '@angular/core';\n\n@Directive({\n selector: '[igoCollapse]'\n})\nexport class CollapseDirective {\n @Input()\n get target() {\n return this._target;\n }\n set target(value: Element) {\n this._target = value;\n }\n private _target: Element;\n\n @Input()\n get collapsed(): boolean {\n return this._collapsed;\n }\n set collapsed(collapsed: boolean) {\n collapsed ? this.collapseTarget() : this.expandTarget();\n this._collapsed = collapsed;\n this.toggle.emit(collapsed);\n }\n private _collapsed = false;\n\n @Output() toggle: EventEmitter<boolean> = new EventEmitter();\n\n @HostListener('click')\n click() {\n this.collapsed = !this.collapsed;\n }\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n private collapseTarget() {\n this.renderer.addClass(this.target, 'igo-collapsed');\n this.renderer.addClass(this.el.nativeElement, 'collapsed');\n }\n\n private expandTarget() {\n this.renderer.removeClass(this.target, 'igo-collapsed');\n this.renderer.removeClass(this.el.nativeElement, 'collapsed');\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'igo-collapsible',\n templateUrl: './collapsible.component.html',\n styleUrls: ['./collapsible.component.scss']\n})\nexport class CollapsibleComponent {\n @Input()\n get title() {\n return this._title;\n }\n set title(value: string) {\n this._title = value;\n }\n private _title = '';\n\n @Input()\n get collapsed() {\n return this._collapsed;\n }\n set collapsed(value: boolean) {\n this._collapsed = value;\n this.toggle.emit(value);\n }\n private _collapsed = false;\n\n @Output() toggle: EventEmitter<boolean> = new EventEmitter();\n}\n","<mat-list-item>\n <mat-icon\n svgIcon=\"chevron-up\"\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"content\"\n [collapsed]=\"collapsed\"\n (toggle)=\"collapsed = $event\"\n >\n </mat-icon>\n <span matListItemTitle>{{ title }}</span>\n</mat-list-item>\n\n<div #content>\n <ng-content></ng-content>\n</div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\n\nimport { CollapseDirective } from './collapse.directive';\nimport { CollapsibleComponent } from './collapsible.component';\n\n@NgModule({\n imports: [MatIconModule, MatListModule],\n declarations: [CollapsibleComponent, CollapseDirective],\n exports: [CollapsibleComponent, CollapseDirective]\n})\nexport class IgoCollapsibleModule {\n static forRoot(): ModuleWithProviders<IgoCollapsibleModule> {\n return {\n ngModule: IgoCollapsibleModule,\n providers: []\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss']\n})\nexport class ConfirmDialogComponent {\n public confirmMessage: string;\n\n constructor(public dialogRef: MatDialogRef<ConfirmDialogComponent>) {}\n}\n","<h2 mat-dialog-title class=\"mat-typography\">\n {{ 'igo.common.confirmDialog.title' | translate }}\n</h2>\n<div mat-dialog-content class=\"mat-typography\">{{ confirmMessage }}</div>\n<div mat-dialog-actions>\n <button mat-button color=\"primary\" (click)=\"dialogRef.close(true)\">\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\n </button>\n <button mat-button (click)=\"dialogRef.close(false)\">\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { LanguageService } from '@igo2/core';\n\nimport { Observable } from 'rxjs';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\n\n@Injectable()\nexport class ConfirmDialogService {\n constructor(\n private dialog: MatDialog,\n private languageService: LanguageService\n ) {}\n\n public open(message: string): Observable<any> {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.confirmMessage =\n this.languageService.translate.instant(message);\n\n return dialogRef.afterClosed();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { ConfirmDialogService } from './confirm-dialog.service';\n\n@NgModule({\n imports: [MatButtonModule, MatDialogModule, IgoLanguageModule],\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [ConfirmDialogService]\n})\nexport class IgoConfirmDialogModule {\n static forRoot(): ModuleWithProviders<IgoConfirmDialogModule> {\n return {\n ngModule: IgoConfirmDialogModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewContainerRef\n} from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\n\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\n\n@Directive({\n selector: '[igoContextMenu]'\n})\nexport class ContextMenuDirective {\n private overlayRef: OverlayRef | null;\n private sub: Subscription;\n\n @Input('igoContextMenu') menuContext: TemplateRef<any>;\n @Output() menuPosition = new EventEmitter<{ x: number; y: number }>();\n\n constructor(\n public overlay: Overlay,\n public viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n @HostListener('longpress', ['$event'])\n @HostListener('contextmenu', ['$event'])\n public onContextMenu(e: MouseEvent | TouchEvent): void {\n let x;\n let y;\n if (e instanceof TouchEvent) {\n x = e.touches[0].pageX;\n y = e.touches[0].pageY;\n } else if (e instanceof MouseEvent) {\n x = e.x;\n y = e.y;\n }\n if (!x || !y) {\n return;\n }\n\n this.close();\n e.preventDefault();\n this.menuPosition.emit({ x, y });\n this.overlayRef = null;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo({ x, y })\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n this.overlayRef.attach(\n new TemplatePortal(this.menuContext, this.viewContainerRef, {\n $implicit: undefined\n })\n );\n\n this.sub = fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter((event) => {\n const clickTarget = event.target as HTMLElement;\n this.close();\n return (\n !!this.overlayRef &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n );\n }),\n take(1)\n )\n .subscribe(() => this.close());\n\n this.sub = fromEvent<MouseEvent>(document, 'contextmenu')\n .pipe(\n filter((event) => {\n const clickTarget = event.target as HTMLElement;\n if (\n clickTarget &&\n !this.elementRef.nativeElement.contains(clickTarget) &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n ) {\n return true;\n } else {\n event.preventDefault();\n }\n }),\n take(1)\n )\n .subscribe(() => this.close());\n }\n\n close() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n}\n","import {\n Directive,\n HostListener,\n Output,\n EventEmitter,\n Input\n} from '@angular/core';\nimport { userAgent } from '@igo2/utils';\n\n/**\n * IgoLongPress trigger longpress event after a define duration.\n * This directive exist to patch the unavailable contextmenu event on iOS.\n * @param touchDuration touch duration in ms, default value is 400ms\n * @param iOSOnly define if longpress is triggered only for iOS, default value = true\n */\n@Directive({\n selector: '[igoLongPress]'\n})\nexport class LongPressDirective {\n private touchTimeout: any;\n @Input() touchDuration: number = 400;\n @Input() onlyIOS: boolean = true;\n @Output() longpress = new EventEmitter();\n\n constructor() {}\n\n @HostListener('touchstart', ['$event'])\n public touchstart(e: TouchEvent) {\n if (e.touches.length > 1) {\n this.touchEnd();\n return;\n }\n this.touchTimeout = setTimeout(() => {\n if (this.onlyIOS) {\n if (userAgent.getOSName() === 'iOS') {\n this.longpress.emit(e);\n }\n } else {\n this.longpress.emit(e);\n }\n }, this.touchDuration);\n }\n @HostListener('touchmove')\n @HostListener('touchcancel')\n @HostListener('touchend')\n public touchend() {\n this.touchEnd();\n }\n\n private touchEnd() {\n clearTimeout(this.touchTimeout);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ContextMenuDirective } from './context-menu.directive';\nimport { LongPressDirective } from './long-press.directive';\n\n@NgModule({\n imports: [],\n declarations: [ContextMenuDirective, LongPressDirective],\n exports: [ContextMenuDirective, LongPressDirective]\n})\nexport class IgoContextMenuModule {\n static forRoot(): ModuleWithProviders<IgoContextMenuModule> {\n return {\n ngModule: IgoContextMenuModule,\n providers: []\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'igo-custom-html',\n templateUrl: './custom-html.component.html',\n styleUrls: ['./custom-html.component.scss']\n})\nexport class CustomHtmlComponent {\n @Input()\n get html(): string {\n return this._html;\n }\n set html(value: string) {\n this._html = value;\n }\n private _html = '';\n\n constructor() {}\n}\n","<div class=\"custom-html\" [innerHTML]=\"html | sanitizeHtml\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { CustomHtmlComponent } from './custom-html.component';\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatTooltipModule,\n MatInputModule,\n MatButtonModule,\n IgoLanguageModule\n ],\n exports: [SanitizeHtmlPipe, CustomHtmlComponent],\n declarations: [SanitizeHtmlPipe, CustomHtmlComponent]\n})\nexport class IgoCustomHtmlModule {\n static forRoot(): ModuleWithProviders<IgoCustomHtmlModule> {\n return {\n ngModule: IgoCustomHtmlModule\n };\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { catchError, map } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\n\nimport { DOMOptions, DOMValue } from './dom.interfaces';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DOMService {\n constructor(private http: HttpClient) {}\n\n async getDom(dom: DOMOptions): Promise<DOMValue[]> {\n const url = dom.url;\n let result: DOMValue[];\n\n await this.http\n .get<any>(url)\n .pipe(\n map((response) => {\n result = response;\n return response;\n }),\n catchError((err: HttpErrorResponse) => {\n return throwError(err);\n })\n )\n .toPromise();\n\n return result;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { DOMService } from './dom.service';\n\n@NgModule({\n providers: [DOMService]\n})\nexport class IgoDOMModule {\n static forRoot(): ModuleWithProviders<IgoDOMModule> {\n return {\n ngModule: IgoDOMModule,\n providers: [DOMService]\n };\n }\n}\n","import {\n Directive,\n HostListener,\n HostBinding,\n EventEmitter,\n Output,\n Input\n} from '@angular/core';\n\n@Directive({\n selector: '[igoDragAndDrop]'\n})\nexport class DragAndDropDirective {\n @Input() allowedExtensions: Array<string> = [];\n\n @Output() protected filesDropped: EventEmitter<File[]> = new EventEmitter();\n\n @Output() protected filesInvalid: EventEmitter<File[]> = new EventEmitter();\n\n @HostBinding('style.background') private background = 'inherit';\n\n @HostListener('dragover', ['$event'])\n public onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = '#999';\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = 'inherit';\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (evt.alreadyFired) {\n return;\n }\n evt.alreadyFired = true;\n\n this.background = 'inherit';\n const filesObj = this.validExtensions(evt);\n if (filesObj.valid.length) {\n this.filesDropped.emit(filesObj.valid);\n }\n if (filesObj.invalid.length) {\n this.filesInvalid.emit(filesObj.invalid);\n }\n }\n\n private validExtensions(evt) {\n const files = evt.dataTransfer.files;\n const filesObj = {\n valid: [],\n invalid: []\n };\n if (files.length > 0) {\n for (const file of files) {\n const ext = file.name.split('.')[file.name.split('.').length - 1];\n if (\n this.allowedExtensions.length === 0 ||\n (this.allowedExtensions.lastIndexOf(ext) !== -1 && file.size !== 0)\n ) {\n filesObj.valid.push(file);\n } else {\n filesObj.invalid.push(file);\n }\n }\n }\n\n return filesObj;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { DragAndDropDirective } from './drag-drop.directive';\n\n@NgModule({\n imports: [],\n declarations: [DragAndDropDirective],\n exports: [DragAndDropDirective]\n})\nexport class IgoDrapDropModule {\n static forRoot(): ModuleWithProviders<IgoDrapDropModule> {\n return {\n ngModule: IgoDrapDropModule,\n providers: []\n };\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n ViewContainerRef\n} from '@angular/core';\n\nimport { Observable, Subscription } from 'rxjs';\n\n/**\n * This class is used in the DynamicComponentOutlet component. It holds\n * a reference to a component factory and can render that component\n * in a target element on demand. It's also possible to set inputs\n * and to subscribe to outputs.\n */\nexport class DynamicComponent<C> {\n /**\n * Component reference\n */\n private componentRef: ComponentRef<C>;\n\n /**\n * Subscriptions to the component's outputs. Those need\n * to be unsubscribed when the component is destroyed.\n */\n private subscriptions: Subscription[] = [];\n\n /**\n * Component target element\n */\n private target: ViewContainerRef;\n\n /**\n * Component inputs\n */\n private inputs: { [key: string]: any } = {};\n\n /**\n * Subscriptions to the component's async inputs\n */\n private inputs$$: { [key: string]: Subscription } = {};\n\n /**\n * Subscribers to the component's outputs\n */\n private subscribers: { [key: string]: (event: any) => void } = {};\n\n constructor(private componentFactory: ComponentFactory<C>) {}\n\n /**\n * Render the component to a target element.\n * Set it's inputs and subscribe to it's outputs.\n * @param target Target element\n */\n setTarget(target: ViewContainerRef) {\n this.target = target;\n this.componentRef = target.createComponent(this.componentFactory);\n this.updateInputs(this.inputs);\n this.updateSubscribers(this.subscribers);\n }\n\n /**\n * Destroy this component. That means, removing from it's target\n * element and unsubscribing to it's outputs.\n */\n destroy() {\n if (this.target !== undefined) {\n this.target.clear();\n }\n if (this.componentRef !== undefined) {\n this.componentRef.destroy();\n this.componentRef = undefined;\n }\n this.unobserveAllInputs();\n this.unsubscribeAll();\n }\n\n /**\n * Update the component inputs. This is an update so any\n * key not defined won't be overwritten.\n */\n updateInputs(inputs: { [key: string]: any }) {\n this.inputs = inputs;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedInputs = this.componentFactory.inputs;\n allowedInputs.forEach(\n (value: { propName: string; templateName: string }) => {\n const key = value.propName;\n\n this.unobserveInput(key);\n\n const inputValue = inputs[key];\n if (inputs.hasOwnProperty(key)) {\n if (inputValue instanceof Observable) {\n this.observeInput(key, inputValue);\n } else {\n this.setInputValue(instance, key, inputValue);\n }\n }\n }\n );\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n }\n\n /**\n * Set an instance's input value\n * @param instance Component instance\n * @param key Input key\n * @param value Input value\n */\n private setInputValue(instance: C, key: string, value: any) {\n const currentValue = instance[key];\n if (value === currentValue) {\n return;\n }\n\n const prototype = Object.getPrototypeOf(instance);\n const descriptor = Object.getOwnPropertyDescriptor(prototype, key);\n if (descriptor !== undefined && descriptor.set !== undefined) {\n descriptor.set.call(instance, value);\n } else {\n instance[key] = value;\n }\n }\n\n /**\n * Update the component subscribers. This is an update so any\n * key not defined won't be overwritten.\n */\n updateSubscribers(subscribers: { [key: string]: (event: any) => void }) {\n this.subscribers = subscribers;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedSubscribers = this.componentFactory.outputs;\n allowedSubscribers.forEach(\n (value: { propName: string; templateName: string }) => {\n const key = value.propName;\n if (subscribers.hasOwnProperty(key)) {\n const emitter = instance[key];\n const subscriber = subscribers[key];\n if (Array.isArray(subscriber)) {\n subscriber.forEach((_subscriber) => {\n this.subscriptions.push(emitter.subscribe(_subscriber));\n });\n } else {\n this.subscriptions.push(emitter.subscribe(subscriber));\n }\n }\n }\n );\n }\n\n /**\n * Subscribe to an observable input and update the component's input value\n * accordingly\n * @param key Input key\n * @param observable Observable\n */\n private observeInput(key: string, observable: Observable<any>) {\n this.inputs$$[key] = observable.subscribe((value: any) => {\n const instance = this.componentRef.instance;\n this.setInputValue(instance, key, value);\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n });\n }\n\n /**\n * Unsubscribe to an observable input\n * @param key Input key\n */\n private unobserveInput(key: string) {\n if (this.inputs$$[key] !== undefined) {\n this.inputs$$[key].unsubscribe();\n this.inputs$$[key] = undefined;\n }\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unobserveAllInputs() {\n Object.values(this.inputs$$).forEach((s: Subscription | undefined) => {\n if (s !== undefined) {\n s.unsubscribe();\n }\n });\n this.inputs$$ = {};\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unsubscribeAll() {\n this.subscriptions.forEach((s: Subscription) => s.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { ComponentFactoryResolver, Injectable } from '@angular/core';\n\nimport { DynamicComponent } from './dynamic-component';\n\n/**\n * Service to creates DynamicComponent instances from base component classes\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicComponentService {\n constructor(private resolver: ComponentFactoryResolver) {}\n\n /**\n * Creates a DynamicComponent instance from a base component class\n * @param componentCls The component class\n * @returns DynamicComponent instance\n */\n create(componentCls: any): DynamicComponent<any> {\n const factory = this.resolver.resolveComponentFactory(componentCls as any);\n return new DynamicComponent<typeof componentCls>(factory);\n }\n}\n","import {\n Input,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Component,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewContainerRef,\n ViewChild\n} from '@angular/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { DynamicComponent } from '../shared/dynamic-component';\nimport { DynamicComponentService } from '../shared/dynamic-component.service';\n\n@Component({\n selector: 'igo-dynamic-outlet',\n templateUrl: 'dynamic-outlet.component.html',\n styleUrls: ['dynamic-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DynamicOutletComponent implements OnChanges, OnDestroy {\n /**\n * The dynamic component base class or the dynamic component itself\n */\n @Input() component: DynamicComponent<any> | any;\n\n /**\n * The dynamic component inputs\n */\n @Input() inputs: { [key: string]: any } = {};\n\n /**\n * The subscribers to the dynamic component outputs\n */\n @Input() subscribers: { [key: string]: (event: any) => void } = {};\n\n /**\n * The dynamic component\n */\n private dynamicComponent: DynamicComponent<any>;\n\n /**\n * The view element to render the component to\n * @ignore\n */\n @ViewChild('target', { read: ViewContainerRef, static: true })\n private target: ViewContainerRef;\n\n constructor(\n private dynamicComponentService: DynamicComponentService,\n private cdRef: ChangeDetectorRef\n ) {}\n\n /**\n * If the dynamic component changes, create it.\n * If the inputs or subscribers change, update the current component's\n * inputs or subscribers.\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const component = changes.component;\n const inputs = changes.inputs;\n const subscribers = changes.subscribers;\n const eq = ObjectUtils.objectsAreEquivalent;\n\n if (!component || !component.currentValue) {\n return;\n }\n\n if (component.currentValue !== component.previousValue) {\n this.createComponent(component.currentValue);\n } else {\n const inputsAreEquivalents =\n inputs && eq(inputs.currentValue || {}, inputs.previousValue || {});\n const subscribersAreEquivalents =\n subscribers &&\n eq(subscribers.currentValue || {}, subscribers.previousValue || {});\n\n if (inputsAreEquivalents === false) {\n this.updateInputs();\n }\n\n if (subscribersAreEquivalents === false) {\n this.updateSubscribers();\n }\n }\n this.cdRef.detectChanges();\n }\n\n /**\n * Destroy the dynamic component and all it's subscribers\n * @internal\n */\n ngOnDestroy() {\n if (this.dynamicComponent) {\n this.dynamicComponent.destroy();\n }\n }\n\n /**\n * Create a DynamicComponent out of the component class and render it.\n * @internal\n */\n private createComponent(component: DynamicComponent<any> | any) {\n if (this.dynamicComponent !== undefined) {\n this.dynamicComponent.destroy();\n }\n this.dynamicComponent =\n component instanceof DynamicComponent\n ? component\n : this.dynamicComponentService.create(component);\n this.renderComponent();\n }\n\n /**\n * Create and render the dynamic component. Set it's inputs and subscribers\n * @internal\n */\n private renderComponent() {\n this.updateInputs();\n this.updateSubscribers();\n this.dynamicComponent.setTarget(this.target);\n }\n\n /**\n * Update the dynamic component inputs. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateInputs() {\n this.dynamicComponent.updateInputs(this.inputs);\n }\n\n /**\n * Update the dynamic component subscribers. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateSubscribers() {\n this.dynamicComponent.updateSubscribers(this.subscribers);\n }\n}\n","<ng-template #target></ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DynamicOutletComponent } from './dynamic-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [CommonModule],\n exports: [DynamicOutletComponent],\n declarations: [DynamicOutletComponent]\n})\nexport class IgoDynamicOutletModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoDynamicOutletModule } from './dynamic-outlet/dynamic-outlet.module';\nimport { DynamicComponentService } from './shared/dynamic-component.service';\n\n@NgModule({\n imports: [CommonModule, IgoDynamicOutletModule],\n exports: [IgoDynamicOutletModule],\n providers: [DynamicComponentService]\n})\nexport class IgoDynamicComponentModule {}\n","import {\n Component,\n OnInit,\n OnDestroy,\n Input,\n ViewChild,\n ElementRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Media, MediaService } from '@igo2/core';\n\nimport { FlexibleState, FlexibleDirection } from './flexible.type';\n\n@Component({\n selector: 'igo-flexible',\n templateUrl: './flexible.component.html',\n styleUrls: ['./flexible.component.scss']\n})\nexport class FlexibleComponent implements OnInit, OnDestroy {\n static transitionTime = 250;\n\n @ViewChild('flexibleMain', { static: true }) main;\n\n @Input()\n get initial(): string {\n return this._initial;\n }\n set initial(value: string) {\n this._initial = value;\n }\n private _initial = '0';\n\n @Input()\n get collapsed(): string {\n return this._collapsed;\n }\n set collapsed(value: string) {\n this._collapsed = value;\n }\n private _collapsed = '0';\n\n @Input()\n get expanded(): string {\n return this._expanded;\n }\n set expanded(value: string) {\n this._expanded = value;\n }\n private _expanded = '100%';\n\n @Input()\n get initialMobile(): string {\n return this._initialMobile;\n }\n set initialMobile(value: string) {\n this._initialMobile = value;\n }\n private _initialMobile: string = this.expanded;\n\n @Input()\n get collapsedMobile(): string {\n return this._collapsedMobile;\n }\n set collapsedMobile(value: string) {\n this._collapsedMobile = value;\n }\n private _collapsedMobile: string = this.collapsed;\n\n @Input()\n get expandedMobile(): string {\n return this._expandedMobile;\n }\n set expandedMobile(value: string) {\n this._expandedMobile = value;\n }\n private _expandedMobile: string = this.expanded;\n\n @Input()\n get direction(): FlexibleDirection {\n return this._direction;\n }\n set direction(value: FlexibleDirection) {\n this._direction = value;\n }\n private _direction: FlexibleDirection = 'column';\n\n @Input()\n get state(): FlexibleState {\n return this._state;\n }\n set state(value: FlexibleState) {\n const sizes = {\n initial: this.initial,\n collapsed: this.collapsed,\n expanded: this.expanded\n };\n\n if (this.mediaService.isMobile()) {\n Object.assign(sizes, {\n initial: this.initialMobile,\n collapsed: this.collapsedMobile,\n expanded: this.expandedMobile\n });\n }\n\n const size = sizes[value];\n if (size !== undefined) {\n this.setSize(size);\n setTimeout(() => {\n this._state = value;\n }, FlexibleComponent.transitionTime);\n }\n }\n private _state: FlexibleState = 'initial';\n\n private mediaService$$: Subscription;\n\n constructor(\n private el: ElementRef,\n private mediaService: MediaService\n ) {}\n\n ngOnInit() {\n this.el.nativeElement.className += this.direction;\n\n // Since this component supports different sizes\n // on mobile, force a redraw when the media changes\n this.mediaService$$ = this.mediaService.media$.subscribe(\n (media: Media) => (this.state = this.state)\n );\n }\n\n ngOnDestroy() {\n if (this.mediaService$$) {\n this.mediaService$$.unsubscribe();\n }\n }\n\n private setSize(size: string) {\n this._state = 'transition';\n\n if (this.direction === 'column') {\n this.main.nativeElement.style.height = size;\n } else if (this.direction === 'row') {\n this.main.nativeElement.style.width = size;\n }\n }\n}\n","<div #flexibleMain class=\"igo-flexible-main {{ state }} {{ direction }}\">\n <div class=\"igo-container\">\n <ng-content></ng-content>\n </div>\n</div>\n<div class=\"igo-flexible-fill\">\n <div>\n <div class=\"igo-container\">\n <ng-content select=\"[igoFlexibleFill]\"></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { FlexibleComponent } from './flexible.component';\n\n@NgModule({\n imports: [],\n declarations: [FlexibleComponent],\n exports: [FlexibleComponent]\n})\nexport class IgoFlexibleModule {\n static forRoot(): ModuleWithProviders<IgoFlexibleModule> {\n return {\n ngModule: IgoFlexibleModule,\n providers: []\n };\n }\n}\n","import { AbstractControl } from '@angular/forms';\n\nimport { Form, FormField, FormFieldGroup } from './form.interfaces';\n\nexport function formControlIsRequired(control: AbstractControl): boolean {\n if (control.validator) {\n const validator = control.validator({} as AbstractControl);\n if (validator && validator.required) {\n return true;\n }\n }\n\n if ((control as any).controls) {\n const requiredControl = Object.keys((control as any).controls).find(\n (key: string) => {\n return formControlIsRequired((control as any).controls[key]);\n }\n );\n return requiredControl !== undefined;\n }\n\n return false;\n}\n\nexport function getDefaultErrorMessages(): { [key: string]: string } {\n return {\n required: 'igo.common.form.errors.required'\n };\n}\n\nexport function getControlErrorMessage(\n control: AbstractControl,\n messages: { [key: string]: string }\n): string {\n const errors = control.errors || {};\n const errorKeys = Object.keys(errors);\n const errorMessages = errorKeys\n .map((key: string) => messages[key])\n .filter((message: string) => message !== undefined);\n return errorMessages.length > 0 ? errorMessages[0] : '';\n}\n\nexport function getAllFormFields(form: Form): FormField[] {\n return form.groups.reduce((acc: FormField[], group: FormFieldGroup) => {\n return acc.concat(group.fields);\n }, [].concat(form.fields));\n}\n\nexport function getFormFieldByName(form: Form, name: string): FormField {\n const fields = getAllFormFields(form);\n return fields.find((field: FormField) => {\n return field.name === name;\n });\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef\n} from '@angular/core';\n\nimport { t } from 'typy';\n\nimport { Form, FormField, FormFieldGroup } from '../shared/form.interfaces';\nimport { getAllFormFields } from '../shared/form.utils';\n\n/**\n * A configurable form\n */\n@Component({\n selector: 'igo-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormComponent implements OnChanges {\n /**\n * Form\n */\n @Input() form: Form;\n\n /**\n * Input data\n */\n @Input() formData: { [key: string]: any };\n\n /**\n * Form autocomplete\n */\n @Input() autocomplete: string = 'off';\n\n /**\n * Event emitted when the form is submitted\n */\n @Output() submitForm = new EventEmitter<{ [key: string]: any }>();\n\n @ViewChild('buttons', { static: true }) buttons: ElementRef;\n\n get hasButtons(): boolean {\n return this.buttons.nativeElement.children.length !== 0;\n }\n\n constructor() {}\n\n /**\n * Is the entity or the template change, recreate the form or repopulate it.\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const formData = changes.formData;\n if (formData && formData.currentValue !== formData.previousValue) {\n if (formData.currentValue === undefined) {\n this.clear();\n } else {\n this.setData(formData.currentValue);\n }\n }\n }\n\n /**\n * Transform the form data to a feature and emit an event\n * @param event Form submit event\n * @internal\n */\n onSubmit() {\n this.submitForm.emit(this.getData());\n }\n\n getData(): { [key: string]: any } {\n const data = {};\n getAllFormFields(this.form).forEach((field: FormField) => {\n this.updateDataWithFormField(data, field);\n });\n return data;\n }\n\n private setData(data: { [key: string]: any }) {\n this.form.fields.forEach((field: FormField) => {\n field.control.setValue(t(data, field.name).safeObject);\n });\n\n this.form.groups.forEach((group: FormFieldGroup) => {\n group.fields.forEach((field: FormField) => {\n field.control.setValue(t(data, field.name).safeObject);\n });\n });\n }\n\n private updateDataWithFormField(\n data: { [key: string]: any },\n field: FormField\n ) {\n const control = field.control;\n if (!control.disabled) {\n data[field.name] = control.value;\n }\n }\n\n /**\n * Clear form\n */\n private clear() {\n this.form.control.reset();\n }\n}\n","<form\n [autocomplete]=\"autocomplete\"\n [formGroup]=\"form.control\"\n (ngSubmit)=\"onSubmit()\"\n>\n <div\n class=\"igo-form-body\"\n [ngClass]=\"{ 'igo-form-body-with-buttons': hasButtons }\"\n >\n <div class=\"igo-form-content\">\n <ng-content></ng-content>\n </div>\n <div #buttons class=\"igo-form-buttons\">\n <ng-content select=\"[formButtons]\"></ng-content>\n </div>\n </div>\n</form>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { FormComponent } from './form.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [FormComponent, FormsModule, ReactiveFormsModule],\n declarations: [FormComponent]\n})\nexport class IgoFormFormModule {}\n","import { Injectable } from '@angular/core';\n\n/**\n * Service where all available form fields are registered.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FormFieldService {\n static fields: { [key: string]: any } = {};\n\n static register(type: string, component: any) {\n FormFieldService.fields[type] = component;\n }\n\n constructor() {}\n\n /**\n * Return field component by type\n * @param type Field type\n * @returns Field component\n */\n getFieldByType(type: string): any {\n return FormFieldService.fields[type];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UntypedFormBuilder, Validators, ValidatorFn } from '@angular/forms';\n\nimport {\n Form,\n FormField,\n FormFieldConfig,\n FormFieldGroup,\n FormFieldGroupConfig\n} from './form.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormService {\n constructor(private formBuilder: UntypedFormBuilder) {}\n\n form(fields: FormField[], groups: FormFieldGroup[]): Form {\n const control = this.formBuilder.group({});\n fields.forEach((field: FormField) => {\n control.addControl(field.name, field.control);\n });\n groups.forEach((group: FormFieldGroup) => {\n control.addControl(group.name, group.control);\n });\n\n return { fields, groups, control };\n }\n\n group(config: FormFieldGroupConfig, fields: FormField[]): FormFieldGroup {\n const options = config.options || {};\n const control = this.formBuilder.group({});\n fields.forEach((field: FormField) => {\n control.addControl(field.name, field.control);\n });\n\n if (options.validator) {\n const validators = this.getValidators(options.validator); // convert string to actual validator\n control.setValidators(validators);\n }\n\n return Object.assign({}, config, { fields, control }) as FormFieldGroup;\n }\n\n field(config: FormFieldConfig): FormField {\n const options = config.options || {};\n const state = {\n value: '',\n disabled: options.disabled\n };\n const control = this.formBuilder.control(state);\n\n if (options.validator) {\n const validators = this.getValidators(options.validator); // convert string to actual validator\n control.setValidators(validators);\n }\n\n return Object.assign({ type: 'text' }, config, { control }) as FormField;\n }\n\n extendFieldConfig(\n config: FormFieldConfig,\n partial: Partial<FormFieldConfig>\n ): FormFieldConfig {\n const options = Object.assign(\n {},\n config.options || {},\n partial.options || {}\n );\n const inputs = Object.assign({}, config.inputs || {}, partial.inputs || {});\n const subscribers = Object.assign(\n {},\n config.subscribers || {},\n partial.subscribers || {}\n );\n return Object.assign({}, config, { options, inputs, subscribers });\n }\n\n private getValidators(\n validatorOption: string | string[] | ValidatorFn\n ): ValidatorFn | ValidatorFn[] {\n if (Array.isArray(validatorOption)) {\n return validatorOption.map((validatorStr) => {\n return this.getValidator(validatorStr);\n });\n }\n\n return this.getValidator(validatorOption);\n }\n\n private getValidator(validatorStr: string | ValidatorFn): ValidatorFn {\n if (typeof validatorStr !== 'string') {\n return validatorStr;\n }\n\n // regex pattern to extract arguments from string for e.g applying on \"minLength(8)\" would extract 8\n const re = /^([a-zA-Z]{3,15})\\((.{0,20})\\)$/;\n const match = validatorStr.match(re);\n\n if (!match) {\n return Validators[validatorStr];\n }\n\n const name = match[1];\n const args = match[2];\n return Validators[name](args);\n }\n}\n","import { FormFieldService } from './form-field.service';\n\nexport function IgoFormFieldComponent(type: string): (cls: any) => any {\n return (compType: any) => {\n FormFieldService.register(type, compType);\n };\n}\n","<ng-container *ngIf=\"field !== undefined\">\n <igo-dynamic-outlet\n [component]=\"getFieldComponent()\"\n [inputs]=\"getFieldInputs()\"\n [subscribers]=\"getFieldSubscribers()\"\n >\n </igo-dynamic-outlet>\n</ng-container>\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\n\nimport {\n FormField,\n FormFieldInputs,\n FormFieldOptions,\n FormFieldSubscribers\n} from '../shared/form.interfaces';\nimport { FormFieldService } from '../shared/form-field.service';\nimport { getDefaultErrorMessages } from '../shared';\n\n/**\n * This component renders the proper form input based on\n * the field configuration it receives.\n */\n@Component({\n selector: 'igo-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldComponent {\n /**\n * Field configuration\n */\n @Input() field: FormField;\n\n /**\n * Field inputs cache\n */\n private fieldInputs: FormFieldInputs = undefined;\n\n /**\n * Field subscribers cache\n */\n private fieldSubscribers: FormFieldSubscribers = undefined;\n\n get fieldOptions(): FormFieldOptions {\n return this.field.options || {};\n }\n\n constructor(private formFieldService: FormFieldService) {}\n\n getFieldComponent(): any {\n return this.formFieldService.getFieldByType(this.field.type || 'text');\n }\n\n getFieldInputs(): FormFieldInputs {\n if (this.fieldInputs !== undefined) {\n return this.fieldInputs;\n }\n\n const errors = this.fieldOptions.errors || {};\n this.fieldInputs = Object.assign(\n {\n placeholder: this.field.title,\n disableSwitch: this.fieldOptions.disableSwitch || false\n },\n Object.assign({}, this.field.inputs || {}),\n {\n formControl: this.field.control,\n errors: Object.assign({}, getDefaultErrorMessages(), errors)\n }\n );\n return this.fieldInputs;\n }\n\n getFieldSubscribers(): FormFieldSubscribers {\n if (this.fieldSubscribers !== undefined) {\n return this.fieldSubscribers;\n }\n\n this.fieldSubscribers = Object.assign({}, this.field.subscribers || {});\n return this.fieldSubscribers;\n }\n}\n","<mat-form-field>\n <mat-select\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n >\n <mat-option *ngFor=\"let choice of choices$ | async\" [value]=\"choice.value\">\n {{ choice.title }}\n </mat-option>\n </mat-select>\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"\n (disabled$ | async) === true\n ? 'checkbox-blank-outline'\n : 'checkbox-marked-outline'\n \"\n (click)=\"onDisableSwitchClick()\"\n matPrefix\n >\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{\n getErrorMessage() | translate\n }}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n formControlIsRequired,\n getControlErrorMessage\n} from '../shared/form.utils';\nimport { FormFieldSelectChoice } from '../shared/form.interfaces';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a select field\n */\n@IgoFormFieldComponent('select')\n@Component({\n selector: 'igo-form-field-select',\n templateUrl: './form-field-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldSelectComponent implements OnInit {\n readonly disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * Select input choices\n */\n @Input()\n set choices(value: FormFieldSelectChoice[]) {\n this.choices$.next(value);\n }\n get choices(): FormFieldSelectChoice[] {\n return this.choices$.value;\n }\n readonly choices$: BehaviorSubject<FormFieldSelectChoice[]> =\n new BehaviorSubject([]);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: { [key: string]: string };\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n}\n","<mat-form-field>\n <input\n matInput\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n />\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"\n (disabled$ | async) === true\n ? 'checkbox-blank-outline'\n : 'checkbox-marked-outline'\n \"\n (click)=\"onDisableSwitchClick()\"\n matPrefix\n >\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{\n getErrorMessage() | translate\n }}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n formControlIsRequired,\n getControlErrorMessage\n} from '../shared/form.utils';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a text field\n */\n@IgoFormFieldComponent('text')\n@Component({\n selector: 'igo-form-field-text',\n templateUrl: './form-field-text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldTextComponent implements OnInit {\n disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: { [key: string]: string };\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n}\n","<mat-form-field>\n <textarea\n matInput\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n >\n </textarea>\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"\n (disabled$ | async) === true\n ? 'checkbox-blank-outline'\n : 'checkbox-marked-outline'\n \"\n (click)=\"onDisableSwitchClick()\"\n matPrefix\n >\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{\n getErrorMessage() | translate\n }}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n formControlIsRequired,\n getControlErrorMessage\n} from '../shared/form.utils';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a textarea field\n */\n@IgoFormFieldComponent('textarea')\n@Component({\n selector: 'igo-form-field-textarea',\n templateUrl: './form-field-textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldTextareaComponent implements OnInit {\n disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: { [key: string]: string };\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { IgoDynamicOutletModule } from '../../dynamic-component/dynamic-outlet/dynamic-outlet.module';\n\nimport { FormFieldComponent } from './form-field.component';\nimport { FormFieldSelectComponent } from './form-field-select.component';\nimport { FormFieldTextComponent } from './form-field-text.component';\nimport { FormFieldTextareaComponent } from './form-field-textarea.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n IgoLanguageModule,\n IgoDynamicOutletModule\n ],\n exports: [\n FormFieldComponent,\n FormFieldSelectComponent,\n FormFieldTextComponent,\n FormFieldTextareaComponent\n ],\n declarations: [\n FormFieldComponent,\n FormFieldSelectComponent,\n FormFieldTextComponent,\n FormFieldTextareaComponent\n ]\n})\nexport class IgoFormFieldModule {}\n","<div *ngIf=\"group && group.fields.length > 0\" class=\"igo-form-group-fields\">\n <div\n *ngFor=\"let field of group.fields\"\n class=\"igo-form-field-wrapper\"\n [ngClass]=\"getFieldNgClass(field)\"\n >\n <igo-form-field [field]=\"field\"></igo-form-field>\n </div>\n</div>\n\n<div class=\"igo-form-group-extra-content\">\n <ng-content></ng-content>\n</div>\n\n<mat-error *ngIf=\"formControl.errors\">{{\n getErrorMessage() | translate\n}}</mat-error>\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { getControlErrorMessage } from '../shared/form.utils';\nimport { FormField, FormFieldGroup } from '../shared/form.interfaces';\n\n/**\n * A configurable form, optionnally bound to an entity\n * (for example in case of un update). Submitting that form\n * emits an event with the form data but no other operation is performed.\n */\n@Component({\n selector: 'igo-form-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormGroupComponent {\n /**\n * Form field group\n */\n @Input() group: FormFieldGroup;\n\n /**\n * Field placeholder\n */\n @Input() errors: { [key: string]: string };\n\n /**\n * Form group control\n */\n get formControl(): UntypedFormGroup {\n return this.group.control;\n }\n\n constructor() {}\n\n /**\n * Return the number of columns a field should occupy.\n * The maximum allowed is 2, even if the field config says more.\n * @param field Field\n * @returns Number of columns\n * @internal\n */\n getFieldColSpan(field: FormField): number {\n let colSpan = 2;\n const options = field.options || {};\n if (options.cols && options.cols > 0) {\n colSpan = Math.min(options.cols, 2);\n }\n\n return colSpan;\n }\n\n /**\n * Return the number of columns a field should occupy.\n * The maximum allowed is 2, even if the field config says more.\n * @param field Field\n * @returns Number of columns\n * @internal\n */\n getFieldNgClass(field: FormField): { [key: string]: boolean } {\n const colspan = this.getFieldColSpan(field);\n return { [`igo-form-field-colspan-${colspan}`]: true };\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n const options = this.group.options || {};\n return getControlErrorMessage(this.formControl, options.errors || {});\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { IgoFormFieldModule } from '../form-field/form-field.module';\nimport { FormGroupComponent } from './form-group.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n IgoLanguageModule,\n IgoFormFieldModule\n ],\n exports: [FormGroupComponent],\n declarations: [FormGroupComponent]\n})\nexport class IgoFormGroupModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoFormFormModule } from './form/form.module';\nimport { IgoFormGroupModule } from './form-group/form-group.module';\nimport { IgoFormFieldModule } from './form-field/form-field.module';\nimport { FormService } from './shared/form.service';\nimport { FormFieldService } from './shared/form-field.service';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [CommonModule, IgoFormGroupModule, IgoFormFieldModule],\n exports: [IgoFormFormModule, IgoFormGroupModule, IgoFormFieldModule],\n declarations: [],\n providers: [FormService, FormFieldService]\n})\nexport class IgoFormModule {}\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'igo-home-button',\n templateUrl: './home-button.component.html',\n styleUrls: ['./home-button.component.scss']\n})\nexport class HomeButtonComponent {\n @Output() unselectButton = new EventEmitter<any>();\n\n constructor() {}\n\n onUnselectButtonClick() {\n this.unselectButton.emit();\n }\n}\n","<button\n id=\"homeButton\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\n (click)=\"onUnselectButtonClick()\"\n>\n <mat-icon svgIcon=\"home\"></mat-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { HomeButtonComponent } from './home-button.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n IgoLanguageModule\n ],\n exports: [HomeButtonComponent],\n declarations: [HomeButtonComponent],\n providers: []\n})\nexport class IgoHomeButtonModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { EntitySelectorComponent } from './entity-selector.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [CommonModule, FormsModule, MatSelectModule],\n exports: [EntitySelectorComponent],\n declarations: [EntitySelectorComponent]\n})\nexport class IgoEntitySelectorModule {}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[igoStopDropPropagation]'\n})\nexport class StopDropPropagationDirective {\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { StopDropPropagationDirective } from './stop-drop-propagation.directive';\nimport { StopPropagationDirective } from './stop-propagation.directive';\n\n@NgModule({\n imports: [],\n declarations: [StopDropPropagationDirective, StopPropagationDirective],\n exports: [StopDropPropagationDirective, StopPropagationDirective]\n})\nexport class IgoStopPropagationModule {\n static forRoot(): ModuleWithProviders<IgoStopPropagationModule> {\n return {\n ngModule: IgoStopPropagationModule,\n providers: []\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EntityTablePaginatorComponent } from './entity-table-paginator.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [MatPaginatorModule],\n exports: [EntityTablePaginatorComponent],\n declarations: [EntityTablePaginatorComponent]\n})\nexport class IgoEntityTablePaginatorModule {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ImageErrorDirective } from './image-error.directive';\nimport { SecureImagePipe } from './secure-image.pipe';\n\n@NgModule({\n imports: [],\n declarations: [SecureImagePipe, ImageErrorDirective],\n exports: [SecureImagePipe, ImageErrorDirective]\n})\nexport class IgoImageModule {\n static forRoot(): ModuleWithProviders<IgoImageModule> {\n return {\n ngModule: IgoImageModule,\n providers: []\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nimport { IgoStopPropagationModule } from '../../stop-propagation/stop-propagation.module';\nimport { IgoCustomHtmlModule } from '../../custom-html/custom-html.module';\nimport { EntityTableRowDirective } from './entity-table-row.directive';\nimport { EntityTableComponent } from './entity-table.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { IgoEntityTablePaginatorModule } from '../entity-table-paginator/entity-table-paginator.module';\nimport { IgoImageModule } from '../../image/image.module';\nimport { IgoLanguageModule } from '@igo2/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatSelectModule } from '@angular/material/select';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatTableModule,\n MatAutocompleteModule,\n MatSortModule,\n MatIconModule,\n MatButtonModule,\n MatCheckboxModule,\n MatPaginatorModule,\n MatSelectModule,\n IgoStopPropagationModule,\n IgoCustomHtmlModule,\n IgoEntityTablePaginatorModule,\n IgoImageModule,\n IgoLanguageModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatDatepickerModule,\n MatTooltipModule\n ],\n exports: [EntityTableComponent],\n declarations: [EntityTableComponent, EntityTableRowDirective]\n})\nexport class IgoEntityTableModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoEntitySelectorModule } from './entity-selector/entity-selector.module';\nimport { IgoEntityTableModule } from './entity-table/entity-table.module';\nimport { IgoEntityTablePaginatorModule } from './entity-table-paginator/entity-table-paginator.module';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n IgoEntitySelectorModule,\n IgoEntityTableModule,\n IgoEntityTablePaginatorModule\n ],\n declarations: []\n})\nexport class IgoEntityModule {}\n","import { catchError } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { InteractiveTourOptions } from './interactive-tour.interface';\nimport { ConfigService } from '@igo2/core';\n\n@Injectable()\nexport class InteractiveTourLoader {\n private jsonURL: string;\n private allToursOptions;\n\n constructor(\n private http: HttpClient,\n private configService: ConfigService\n ) {\n this.jsonURL = this.getPathToConfigFile();\n }\n\n public loadConfigTour() {\n this.getJSON().subscribe(\n (data) => {\n this.allToursOptions = data;\n },\n (err) => {\n throw new Error(\n `Problem with Interactive tour configuration file: interactiveTour.json not find. Check if the file and is path is set correctly.`\n );\n }\n );\n }\n\n public getPathToConfigFile(): string {\n return (\n this.configService.getConfig('interactiveTour.pathToConfigFile') ||\n './config/interactiveTour.json'\n );\n }\n\n public getJSON(): Observable<any> {\n return this.http.get(this.jsonURL).pipe(\n catchError((e) => {\n e.error.caught = true;\n throw e;\n })\n );\n }\n\n public getTourOptionData(toolName): InteractiveTourOptions {\n if (this.allToursOptions === undefined) {\n return undefined;\n }\n let nameInConfigFile = toolName;\n nameInConfigFile = nameInConfigFile.replace(/\\s/g, '');\n return this.allToursOptions[nameInConfigFile];\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { ShepherdService } from 'angular-shepherd';\r\nimport Shepherd from 'shepherd.js';\r\nimport { offset } from '@floating-ui/dom';\r\n\r\nimport { ConfigService, MediaService, LanguageService } from '@igo2/core';\r\nimport { InteractiveTourLoader } from './interactive-tour.loader';\r\nimport {\r\n InteractiveTourOptions,\r\n InteractiveTourStep,\r\n InteractiveTourAction\r\n} from './interactive-tour.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InteractiveTourService {\r\n private previousStep: InteractiveTourStep;\r\n private nextIndex = 1;\r\n\r\n constructor(\r\n private configService: ConfigService,\r\n private mediaService: MediaService,\r\n private languageService: LanguageService,\r\n private interactiveTourLoader: InteractiveTourLoader,\r\n private shepherdService: ShepherdService\r\n ) {\r\n if (this.isAppHaveTour()) {\r\n this.interactiveTourLoader.loadConfigTour();\r\n }\r\n }\r\n\r\n public isAppHaveTour() {\r\n const haveTour = this.configService.getConfig(\r\n 'interactiveTour.activateInteractiveTour'\r\n );\r\n if (haveTour === undefined) {\r\n return true;\r\n } else {\r\n return haveTour;\r\n }\r\n }\r\n\r\n public isToolHaveTourConfig(toolName: string): boolean {\r\n const checkTourActiveOptions =\r\n this.interactiveTourLoader.getTourOptionData(toolName);\r\n if (checkTourActiveOptions === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n public disabledTourButton(toolName: string): boolean {\r\n const stepConfig: InteractiveTourOptions =\r\n this.interactiveTourLoader.getTourOptionData(toolName);\r\n\r\n if (stepConfig?.conditions) {\r\n for (const condition of stepConfig?.conditions) {\r\n if (document.querySelector(condition) === null) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public isMobile(): boolean {\r\n return this.mediaService.isMobile();\r\n }\r\n\r\n public isTourDisplayInMobile(): boolean {\r\n const showInMobile = this.configService.getConfig(\r\n 'interactiveTour.tourInMobile'\r\n );\r\n if (showInMobile === undefined) {\r\n return true;\r\n }\r\n return this.configService.getConfig('interactiveTour.tourInMobile');\r\n }\r\n\r\n private getButtons(buttonKind?: 'first' | 'last' | 'noBackButton') {\r\n if (buttonKind === 'noBackButton') {\r\n return [\r\n {\r\n classes: 'shepherd-button-primary',\r\n text: this.languageService.translate.instant(\r\n 'igo.common.interactiveTour.nextButton'\r\n ),\r\n type: 'next'\r\n }\r\n ];\r\n }\r\n if (buttonKind === 'first') {\r\n return [\r\n {\r\n classes: 'shepherd-button-secondary',\r\n text: this.languageService.translate.instant(\r\n 'igo.common.interactiveTour.exitButton'\r\n ),\r\n type: 'cancel'\r\n },\r\n {\r\n classes: 'shepherd-button-primary',\r\n text: this.languageService.translate.instant(\r\n 'igo.common.interactiveTour.nextButton'\r\n ),\r\n type: 'next'\r\n }\r\n ];\r\n }\r\n\r\n if (buttonKind === 'last') {\r\n return [\r\n {\r\n classes: 'shepherd-button-secondary',\r\n text: this.languageService.translate.instant(\r\n 'igo.common.interactiveTour.backButton'\r\n ),\r\n type: 'back'\r\n },\r\n {\r\n classes: 'shepherd-button-primary',\r\n text: this.languageService.translate.instant(\r\n 'igo.common.interactiveTour.exitButton'\r\n ),\r\n type: 'cancel'\r\n }\r\n ];\r\n }\r\n\r\n return [\r\n {\r\n classes: 'shepherd-button-secondary',\r\n text: this.languageService.translate.instant(\r\n 'igo.common.interactiveTour.backButton'\r\n ),\r\n type: 'back'\r\n },\r\n {\r\n classes: 'shepherd-button-primary',\r\n text: this.languageService.translate.instant(\r\n 'igo.common.interactiveTour.nextButton'\r\n ),\r\n type: 'next'\r\n }\r\n ];\r\n }\r\n\r\n private getAction(actionName: string) {\r\n const action = {\r\n click: 'click'\r\n };\r\n return action[actionName.toLowerCase()];\r\n }\r\n\r\n private addProgress() {\r\n const self = this as any;\r\n let nbTry = 0;\r\n const maxTry = 21;\r\n const checkExist = setInterval(() => {\r\n if (self.getCurrentStep()) {\r\n if (\r\n self.getCurrentStep().options.attachTo.element &&\r\n !document.querySelector(\r\n self.getCurrentStep().options.attachTo.element\r\n )\r\n ) {\r\n self.cancel();\r\n clearInterval(checkExist);\r\n return;\r\n } else {\r\n const currentStepElement = self.getCurrentStep().getElement();\r\n if (currentStepElement) {\r\n const shepherdList = currentStepElement.querySelectorAll(\r\n '.shepherd-content, .shepherd-text'\r\n );\r\n shepherdList.forEach((element) => {\r\n element.classList.add('mat-typography');\r\n });\r\n }\r\n const header = currentStepElement\r\n ? currentStepElement.querySelector('.shepherd-header')\r\n : undefined;\r\n\r\n nbTry++;\r\n if (header || nbTry > maxTry) {\r\n clearInterval(checkExist);\r\n }\r\n\r\n if (header) {\r\n const stepsArray = self.steps;\r\n const progress = document.createElement('span');\r\n progress.className = 'shepherd-progress';\r\n progress.innerText = `${\r\n stepsArray.indexOf(self.getCurrentStep()) + 1\r\n }/${stepsArray.length}`;\r\n header.insertBefore(\r\n progress,\r\n currentStepElement.querySelector('.shepherd-cancel-icon')\r\n );\r\n }\r\n }\r\n }\r\n }, 100);\r\n }\r\n\r\n private checkNext(index, tour, service) {\r\n if (tour.getCurrentStep()) {\r\n if (\r\n tour.getCurrentStep().options.attachTo.element &&\r\n document.querySelector(tour.getCurrentStep().options.attachTo.element)\r\n ) {\r\n tour.complete();\r\n return;\r\n }\r\n\r\n if (index.index === tour.steps.length - 1) {\r\n tour.complete();\r\n return;\r\n }\r\n\r\n tour.steps.splice(index.index, 1);\r\n const nextStep = tour.steps[index.index];\r\n if (\r\n nextStep.options.attachTo.element &&\r\n !document.querySelector(nextStep.options.attachTo.element)\r\n ) {\r\n service.checkNext(index, tour, service);\r\n } else {\r\n tour._setupModal();\r\n tour.show(nextStep.id);\r\n }\r\n }\r\n }\r\n\r\n private executeAction(\r\n step: InteractiveTourStep,\r\n actionConfig: InteractiveTourAction\r\n ) {\r\n if (!actionConfig) {\r\n return;\r\n }\r\n\r\n if (\r\n actionConfig.condition &&\r\n ((actionConfig.condition.charAt(0) === '!' &&\r\n document.querySelector(actionConfig.condition.slice(1))) ||\r\n (actionConfig.condition.charAt(0) !== '!' &&\r\n !document.querySelector(actionConfig.condition)))\r\n ) {\r\n return;\r\n }\r\n\r\n const element: HTMLElement = document.querySelector(\r\n actionConfig.element || step.element\r\n ) as HTMLElement;\r\n const action = this.getAction(actionConfig.action);\r\n if (element && action) {\r\n element[action]();\r\n }\r\n }\r\n\r\n private executeActionPromise(\r\n step: InteractiveTourStep,\r\n actionConfig: InteractiveTourAction\r\n ) {\r\n return new Promise<void>((resolve) => {\r\n this.executeAction(step, actionConfig);\r\n if (!actionConfig || !actionConfig.waitFor) {\r\n resolve();\r\n return;\r\n }\r\n let nbTry = 0;\r\n const maxTry = actionConfig.maxWait ? actionConfig.maxWait / 100 : 20;\r\n const checkExist = setInterval(() => {\r\n nbTry++;\r\n if (nbTry > maxTry || document.querySelector(actionConfig.waitFor)) {\r\n clearInterval(checkExist);\r\n resolve();\r\n }\r\n }, 100);\r\n });\r\n }\r\n\r\n private getShepherdSteps(stepConfig: InteractiveTourOptions) {\r\n const shepherdSteps: Shepherd.Step.StepOptions[] = [];\r\n\r\n let i = 0;\r\n for (const step of stepConfig.steps) {\r\n shepherdSteps.push({\r\n attachTo: {\r\n element: step.element,\r\n on: (step.position || stepConfig.position) as any // PopperPlacement\r\n },\r\n floatingUIOptions: {\r\n middleware: [offset({ mainAxis: 15 })]\r\n },\r\n beforeShowPromise: () => {\r\n return Promise.all([\r\n this.executeActionPromise(\r\n this.previousStep,\r\n this.previousStep ? this.previousStep.beforeChange : undefined\r\n ),\r\n this.executeActionPromise(step, step.beforeShow)\r\n ]);\r\n },\r\n buttons: this.getButtons(\r\n i === 0\r\n ? 'first'\r\n : i + 1 === stepConfig.steps.length\r\n ? 'last'\r\n : stepConfig.steps[i].noBackButton\r\n ? 'noBackButton'\r\n : undefined\r\n ),\r\n classes: step.class,\r\n highlightClass: step.highlightClass,\r\n scrollTo: step.scrollToElement || stepConfig.scrollToElement || true,\r\n canClickTarget: step.disableInteraction\r\n ? !step.disableInteraction\r\n : undefined,\r\n title: this.languageService.translate.instant(\r\n step.title || stepConfig.title\r\n ),\r\n text: [this.languageService.translate.instant(step.text)],\r\n when: {\r\n show: () => {\r\n this.executeAction(step, step.onShow);\r\n },\r\n hide: () => {\r\n this.previousStep = step;\r\n this.executeAction(step, step.onHide);\r\n }\r\n }\r\n } satisfies Shepherd.Step.StepOptions);\r\n i++;\r\n }\r\n\r\n return shepherdSteps;\r\n }\r\n\r\n public startTour(toolName: string) {\r\n const stepConfig: InteractiveTourOptions =\r\n this.interactiveTourLoader.getTourOptionData(toolName);\r\n\r\n this.shepherdService.defaultStepOptions = {\r\n classes: stepConfig.class,\r\n highlightClass: stepConfig.highlightClass,\r\n canClickTarget: stepConfig.disableInteraction\r\n ? !stepConfig.disableInteraction\r\n : true,\r\n cancelIcon: {\r\n enabled: true\r\n }\r\n };\r\n\r\n const shepherdSteps = this.getShepherdSteps(stepConfig);\r\n\r\n this.shepherdService.modal = true;\r\n this.shepherdService.confirmCancel = false;\r\n this.shepherdService.addSteps(shepherdSteps);\r\n\r\n this.shepherdService.tourObject.on('show', this.addProgress);\r\n this.shepherdService.tourObject.on('cancel', (index) => {\r\n this.checkNext(index, this.shepherdService.tourObject, this);\r\n });\r\n\r\n this.shepherdService.start();\r\n }\r\n}\r\n","import { EntityRecord, EntityStore } from '../../entity';\nimport { Tool, ToolboxOptions } from './tool.interface';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * Service where all available tools and their component are registered.\n */\nexport class Toolbox {\n /**\n * Observable of the active tool\n */\n activeTool$: BehaviorSubject<Tool> = new BehaviorSubject(undefined);\n\n /**\n * Ordered list of tool names to display in a toolbar\n */\n toolbar$: BehaviorSubject<string[]> = new BehaviorSubject([]);\n\n /**\n * Observable of the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Active tool history. Useful for activating the previous tool.\n */\n private activeToolHistory: string[] = [];\n\n /**\n * Tool store\n */\n private store = new EntityStore<Tool>([], {\n getKey: (tool: Tool) => tool.name\n });\n\n get tools$(): BehaviorSubject<Tool[]> {\n return this.store.entities$;\n }\n\n constructor(private options: ToolboxOptions = {}) {\n this.setToolbar(options.toolbar);\n this.initStore();\n }\n\n /**\n * Destroy the toolbox\n */\n destroy() {\n this.activeTool$$.unsubscribe();\n this.store.destroy();\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return this.store.get(name);\n }\n\n /**\n * Return all tools\n * @returns Array of tools\n */\n getTools(): Tool[] {\n return this.store.all();\n }\n\n /**\n * Set tool configurations\n * @param tools Tools\n */\n setTools(tools: Tool[]) {\n this.store.load(tools);\n }\n\n /**\n * Get toolbar\n * @returns Toolbar value\n */\n getToolbar(): string[] {\n return this.toolbar$.getValue();\n }\n\n /**\n * Set toolbar\n * @param toolbar A list of tool names\n */\n setToolbar(toolbar: string[]) {\n this.toolbar$.next(toolbar || []);\n }\n\n /**\n * Activate a tool (and deactivate other tools)\n * @param name Tool name\n * @param options Tool options\n */\n activateTool(name: string, options: { [key: string]: any } = {}) {\n const tool = this.getTool(name);\n if (tool === undefined) {\n return;\n }\n\n this.store.state.update(tool, { active: true, options }, true);\n }\n\n /**\n * Activate the previous tool, if any\n */\n activatePreviousTool() {\n if (this.activeToolHistory.length <= 1) {\n this.deactivateTool();\n return;\n }\n const [previous, current] = this.activeToolHistory.splice(-2, 2);\n this.activateTool(previous);\n }\n\n /**\n * Activate the tool below, if any\n */\n /* activateBelowTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index + 1] !== undefined) {\n this.deactivateTool();\n const below = arrayTools[index + 1];\n this.activateTool(below);\n } else {\n this.deactivateTool();\n const below = arrayTools[0];\n this.activateTool(below);\n }\n } */\n\n /**\n * Activate the tool above, if any\n */\n /* activateAboveTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index - 1] !== undefined) {\n this.deactivateTool();\n const above = arrayTools[index - 1];\n this.activateTool(above);\n } else {\n this.deactivateTool();\n const above = arrayTools[arrayTools.length - 1];\n this.activateTool(above);\n }\n } */\n\n /**\n * Deactivate the active tool\n */\n deactivateTool() {\n this.clearActiveToolHistory();\n this.store.state.updateAll({ active: false });\n }\n\n /**\n * Initialize the tool store and start observing the active tool\n */\n private initStore() {\n this.store = new EntityStore<Tool>([], {\n getKey: (entity: Tool) => entity.name\n });\n\n this.activeTool$$ = this.store.stateView\n .firstBy$((record: EntityRecord<Tool>) => record.state.active === true)\n .subscribe((record: EntityRecord<Tool>) => {\n if (record === undefined) {\n this.setActiveTool(undefined);\n return;\n }\n\n const tool = record.entity;\n const options = Object.assign(\n {},\n tool.options || {},\n record.state.options || {}\n );\n this.setActiveTool(Object.assign({}, tool, { options }));\n });\n }\n\n /**\n * Set the active tool and update the tool history\n * @param tool Tool\n */\n private setActiveTool(tool: Tool | undefined) {\n this.activeTool$.next(tool);\n if (tool === undefined) {\n this.clearActiveToolHistory();\n } else {\n this.activeToolHistory = this.activeToolHistory\n .filter((name: string) => name !== tool.name)\n .concat([tool.name]);\n }\n }\n\n /**\n * Clear the tool history\n */\n private clearActiveToolHistory() {\n this.activeToolHistory = [];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Tool } from './tool.interface';\nimport { Toolbox } from './toolbox';\n\n/**\n * Service where runtime tool configurations are registered\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ToolService {\n static tools: { [key: string]: Tool } = {};\n\n /**\n * Toolbox that holds main tools\n */\n public toolbox: Toolbox = new Toolbox();\n\n static register(tool: Tool) {\n ToolService.tools[tool.name] = tool;\n }\n\n constructor() {\n this.toolbox.setTools(this.getTools());\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return ToolService.tools[name];\n }\n\n /**\n * Return all tools\n * @returns tTols\n */\n getTools(): Tool[] {\n return Object.values(ToolService.tools);\n }\n}\n","<ng-container *ngIf=\"showTourButton\">\n <button\n *ngIf=\"styleButton === 'icon'; else raisedButton\"\n (click)=\"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n disabledTourButton\n ? ('igo.common.interactiveTour.disaledTooltipTourToolButton'\n | translate)\n : ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\n \"\n [disabled]=\"disabledTourButton\"\n >\n <mat-icon iconPositionEnd svgIcon=\"presentation-play\"> </mat-icon>\n </button>\n\n <ng-template #raisedButton>\n <button\n (click)=\"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n color=\"primary\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"disabledTourButton\"\n >\n {{ 'igo.common.interactiveTour.buttonTitle' | translate }}\n {{ discoverTitleInLocale$ | async | translate }}\n <mat-icon\n iconPositionEnd\n svgIcon=\"presentation-play\"\n [matTooltip]=\"\n disabledTourButton\n ? ('igo.common.interactiveTour.disaledTooltipTourToolButton'\n | translate)\n : ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\n \"\n >\n </mat-icon>\n </button>\n </ng-template>\n</ng-container>\n","import { Component, ViewEncapsulation, Input } from '@angular/core';\nimport { InteractiveTourService } from './interactive-tour.service';\nimport { ToolService } from '../tool/shared/tool.service';\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'igo-interactive-tour',\n templateUrl: './interactive-tour.component.html',\n styleUrls: ['./interactive-tour.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InteractiveTourComponent {\n /**\n * Toolbox that holds main tools\n */\n @Input() tourToStart: string = '';\n @Input() styleButton: 'icon' | 'raised';\n @Input() discoverTitleInLocale$: Observable<string> = of('IGO');\n\n getClass() {\n return {\n 'tour-button-tool-icon': this.styleButton === 'icon',\n 'tour-button-tool': this.styleButton === 'raised'\n };\n }\n\n get toolbox() {\n return this.toolService.toolbox;\n }\n\n getTourToStart() {\n if (this.tourToStart) {\n return this.tourToStart;\n } else {\n return this.activeToolName;\n }\n }\n\n get activeToolName() {\n if (this.toolbox) {\n if (this.isActiveTool) {\n return this.toolbox.activeTool$.getValue().name;\n } else {\n return 'global';\n }\n } else {\n return undefined;\n }\n }\n\n get isActiveTool(): boolean {\n if (this.toolbox) {\n return this.toolbox.activeTool$.getValue() !== undefined;\n } else {\n return undefined;\n }\n }\n\n get isToolHaveTour(): boolean {\n if (this.activeToolName === 'about' && !this.tourToStart) {\n return false;\n }\n return this.interactiveTourService.isToolHaveTourConfig(\n this.getTourToStart()\n );\n }\n\n get showTourButton(): boolean {\n // 2 conditions to show: have Tour on tool in Config file and if we are in mobile displayInMobile= true\n let haveTour: boolean;\n haveTour = this.isToolHaveTour;\n if (haveTour === false) {\n return false;\n }\n\n let inMobileAndShow: boolean;\n if (this.interactiveTourService.isMobile()) {\n inMobileAndShow = this.isTourDisplayInMobile;\n if (inMobileAndShow === false) {\n return false;\n }\n }\n return true;\n }\n\n get isTourDisplayInMobile(): boolean {\n return this.interactiveTourService.isTourDisplayInMobile();\n }\n\n get disabledTourButton(): boolean {\n return this.interactiveTourService.disabledTourButton(this.activeToolName);\n }\n\n constructor(\n private interactiveTourService: InteractiveTourService,\n private toolService: ToolService\n ) {}\n\n startInteractiveTour() {\n const tour = this.getTourToStart();\n if (tour) {\n this.interactiveTourService.startTour(tour);\n } else {\n return;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { InteractiveTourService } from './interactive-tour.service';\nimport { InteractiveTourComponent } from './interactive-tour.component';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\n\n@NgModule({\n declarations: [InteractiveTourComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n IgoLanguageModule\n ],\n providers: [InteractiveTourService, InteractiveTourLoader],\n exports: [InteractiveTourComponent]\n})\nexport class IgoInteractiveTourModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyvalue'\n})\nexport class KeyValuePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n const keyValues = [];\n Object.getOwnPropertyNames(value).forEach((key: string) =>\n keyValues.push({ key, value: value[key] })\n );\n\n return keyValues;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { KeyValuePipe } from './keyvalue.pipe';\n\n@NgModule({\n imports: [],\n declarations: [KeyValuePipe],\n exports: [KeyValuePipe]\n})\nexport class IgoKeyValueModule {\n static forRoot(): ModuleWithProviders<IgoKeyValueModule> {\n return {\n ngModule: IgoKeyValueModule,\n providers: []\n };\n }\n}\n","<h1 mat-dialog-title class=\"mat-typography\">{{ title }}</h1>\n\n<div mat-dialog-content class=\"mat-typography\">\n <ng-container\n *ngTemplateOutlet=\"loopObject; context: { obj: data }\"\n ></ng-container>\n\n <ng-template #loopObject let-obj=\"obj\" let-baseKey=\"baseKey\">\n <ng-container *ngFor=\"let property of obj | keyvalue\">\n <ng-container\n *ngIf=\"ignoreKeys.indexOf(getKey(baseKey, property.key)) === -1\"\n >\n <ng-container *ngIf=\"isObject(property.value); else notObject\">\n <ng-container\n *ngTemplateOutlet=\"\n loopObject;\n context: {\n obj: property.value,\n baseKey: getKey(baseKey, property.key)\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #notObject>\n <p>\n <span\n ><b>{{ getKey(baseKey, property.key) }}</b> : </span\n ><span class=\"propertyValue\" [innerHtml]=\"property.value\"></span>\n </p>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n</div>\n\n<div mat-dialog-actions>\n <button mat-button color=\"primary\" (click)=\"dialogRef.close(false)\">\n OK\n </button>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-json-dialog',\n templateUrl: './json-dialog.component.html'\n})\nexport class JsonDialogComponent {\n public title: string;\n public data: any;\n public ignoreKeys: string[];\n\n constructor(public dialogRef: MatDialogRef<JsonDialogComponent>) {}\n\n isObject(val) {\n return typeof val === 'object' && !Array.isArray(val);\n }\n\n getKey(baseKey, key) {\n return (baseKey ? baseKey + '.' : '') + key;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\n\nimport { JsonDialogComponent } from './json-dialog.component';\n\n@Injectable()\nexport class JsonDialogService {\n constructor(private dialog: MatDialog) {}\n\n public open(title: any, data, ignoreKeys?: string[]): Observable<any> {\n const dialogRef = this.dialog.open(JsonDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.data = data;\n dialogRef.componentInstance.title = title;\n dialogRef.componentInstance.ignoreKeys = ignoreKeys;\n\n return dialogRef.afterClosed();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { IgoKeyValueModule } from '../keyvalue/keyvalue.module';\n\nimport { JsonDialogComponent } from './json-dialog.component';\nimport { JsonDialogService } from './json-dialog.service';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatDialogModule, IgoKeyValueModule],\n exports: [JsonDialogComponent],\n declarations: [JsonDialogComponent],\n providers: [JsonDialogService]\n})\nexport class IgoJsonDialogModule {\n static forRoot(): ModuleWithProviders<IgoJsonDialogModule> {\n return {\n ngModule: IgoJsonDialogModule\n };\n }\n}\n","import {\n Directive,\n Input,\n Output,\n ElementRef,\n Renderer2,\n HostListener,\n EventEmitter\n} from '@angular/core';\n\n@Directive({\n selector: '[igoListItem]'\n})\nexport class ListItemDirective {\n static focusedCls = 'igo-list-item-focused';\n static selectedCls = 'igo-list-item-selected';\n static disabledCls = 'igo-list-item-disabled';\n\n @Input()\n get color() {\n return this._color;\n }\n set color(value: string) {\n this._color = value;\n }\n private _color = 'primary';\n\n @Input()\n get focused() {\n return this._focused;\n }\n set focused(value: boolean) {\n if (value === this._focused) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeFocus.emit(this) : this.beforeUnfocus.emit(this);\n\n this._focused = value;\n if (this.selected !== true) {\n this.toggleFocusedClass();\n }\n\n value ? this.focus.emit(this) : this.unfocus.emit(this);\n }\n private _focused = false;\n\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(value: boolean) {\n if (value === this._selected) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeSelect.emit(this) : this.beforeUnselect.emit(this);\n\n this._selected = value;\n this._focused = value;\n this.toggleSelectedClass();\n\n value ? this.select.emit(this) : this.unselect.emit(this);\n }\n private _selected = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: boolean) {\n if (value === this._disabled) {\n return;\n }\n\n if (value === true) {\n this.selected = false;\n }\n\n value ? this.beforeDisable.emit(this) : this.beforeEnable.emit(this);\n\n this._disabled = value;\n this.toggleDisabledClass();\n\n value ? this.disable.emit(this) : this.enable.emit(this);\n }\n private _disabled = false;\n\n @Output() beforeSelect = new EventEmitter<ListItemDirective>();\n @Output() beforeFocus = new EventEmitter<ListItemDirective>();\n @Output() beforeUnselect = new EventEmitter<ListItemDirective>();\n @Output() beforeUnfocus = new EventEmitter<ListItemDirective>();\n @Output() beforeDisable = new EventEmitter<ListItemDirective>();\n @Output() beforeEnable = new EventEmitter<ListItemDirective>();\n @Output() focus = new EventEmitter<ListItemDirective>();\n @Output() unfocus = new EventEmitter<ListItemDirective>();\n @Output() select = new EventEmitter<ListItemDirective>();\n @Output() unselect = new EventEmitter<ListItemDirective>();\n @Output() disable = new EventEmitter<ListItemDirective>();\n @Output() enable = new EventEmitter<ListItemDirective>();\n\n @HostListener('click')\n onClick() {\n this.selected = true;\n }\n\n constructor(\n public renderer: Renderer2,\n public el: ElementRef\n ) {}\n\n getOffsetTop(): number {\n const padding = 5;\n\n return this.el.nativeElement.offsetTop - padding;\n }\n\n private toggleFocusedClass() {\n if (this.focused) {\n this.addCls(ListItemDirective.focusedCls);\n } else {\n this.removeCls(ListItemDirective.focusedCls);\n }\n }\n\n private toggleSelectedClass() {\n if (this.selected) {\n this.addCls(ListItemDirective.selectedCls);\n this.removeCls(ListItemDirective.focusedCls);\n } else {\n this.removeCls(ListItemDirective.selectedCls);\n }\n }\n\n private toggleDisabledClass() {\n if (this.disabled) {\n this.addCls(ListItemDirective.disabledCls);\n } else {\n this.removeCls(ListItemDirective.disabledCls);\n }\n }\n\n private addCls(cls: string) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n\n private removeCls(cls: string) {\n this.renderer.removeClass(this.el.nativeElement, cls);\n }\n}\n","import {\n Component,\n AfterViewInit,\n OnInit,\n OnDestroy,\n Input,\n ContentChildren,\n HostListener,\n ElementRef\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { ListItemDirective } from './list-item.directive';\n\n@Component({\n selector: 'igo-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss']\n})\nexport class ListComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input()\n get navigation() {\n return this._navigation;\n }\n set navigation(value: boolean) {\n this._navigation = value;\n }\n private _navigation = true;\n\n @Input()\n get selection() {\n return this._selection;\n }\n set selection(value: boolean) {\n this._selection = value;\n }\n private _selection = true;\n\n get selectedItem() {\n return this._selectedItem;\n }\n set selectedItem(value: ListItemDirective) {\n this.focusedItem = value;\n this._selectedItem = value;\n }\n private _selectedItem: ListItemDirective;\n\n get focusedItem() {\n return this._focusedItem;\n }\n set focusedItem(value: ListItemDirective) {\n this._focusedItem = value;\n }\n private _focusedItem: ListItemDirective;\n\n private navigationEnabled: boolean;\n private listItems$$: Subscription;\n private subscriptions: Subscription[] = [];\n\n @ContentChildren(ListItemDirective, { descendants: true })\n listItems: QueryList<ListItemDirective>;\n\n @HostListener('document:keydown', ['$event'])\n @HostListener('document:enter', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n // It would be nice to be able to unsubscribe to the event\n // completely but until ES7 this won't be possible because\n // document events are not observables\n if (this.navigationEnabled) {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n this.navigate(event.key);\n } else if (event.key === 'Enter') {\n this.select(this.focusedItem);\n }\n }\n }\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n this.enableNavigation();\n }\n\n ngAfterViewInit() {\n if (this.listItems.length) {\n this.init();\n }\n\n this.listItems$$ = this.listItems.changes.subscribe(\n (items: ListItemDirective[]) => this.init()\n );\n }\n\n ngOnDestroy() {\n this.listItems$$.unsubscribe();\n }\n\n focus(item?: ListItemDirective) {\n if (!this.selection) {\n return;\n }\n\n this.unfocus();\n\n // We need to make this check because dynamic\n // lists such as in the search results list may fail\n if (item !== undefined) {\n item.focused = true;\n }\n }\n\n unfocus() {\n if (this.focusedItem !== undefined) {\n this.focusedItem.focused = false;\n }\n\n this.focusedItem = undefined;\n }\n\n focusNext() {\n const items = this.listItems.toArray();\n let item;\n const igoList = this.el.nativeElement;\n let disabled = true;\n let index = this.getFocusedIndex();\n if (index === undefined) {\n index = -1;\n }\n\n while (disabled && index < items.length - 1) {\n index += 1;\n item = items[index];\n disabled = item.disabled;\n }\n\n if (item !== undefined) {\n this.focus(item);\n }\n\n if (!items[index + 1]) {\n igoList.scrollTop = igoList.scrollHeight - igoList.clientHeight;\n return;\n }\n\n if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) {\n igoList.scrollTop =\n item.el.nativeElement.offsetTop +\n item.el.nativeElement.children[0].offsetHeight -\n igoList.clientHeight;\n }\n }\n\n focusPrevious() {\n const items = this.listItems.toArray();\n let item: ListItemDirective;\n const igoList = this.el.nativeElement;\n let disabled = true;\n let index = this.getFocusedIndex();\n\n while (disabled && index > 0) {\n index -= 1;\n item = items[index];\n disabled = item.disabled;\n }\n\n if (item !== undefined) {\n this.focus(item);\n }\n\n if (!items[index - 1]) {\n igoList.scrollTop = 0;\n return;\n }\n\n if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) {\n const padding = 3;\n igoList.scrollTop = item.el.nativeElement.offsetTop - padding;\n }\n }\n\n select(item?: ListItemDirective) {\n if (!this.selection) {\n return;\n }\n\n this.unselect();\n\n if (item !== undefined) {\n item.selected = true;\n }\n }\n\n unselect() {\n this.unfocus();\n\n if (this.selectedItem !== undefined) {\n this.selectedItem.selected = false;\n }\n\n this.selectedItem = undefined;\n }\n\n enableNavigation() {\n if (this.navigation) {\n this.navigationEnabled = true;\n }\n }\n\n disableNavigation() {\n this.navigationEnabled = false;\n }\n\n scrollToItem(item: ListItemDirective) {\n this.el.nativeElement.scrollTop = item.getOffsetTop();\n }\n\n isScrolledIntoView(elem) {\n const docViewTop =\n this.el.nativeElement.scrollTop + this.el.nativeElement.offsetTop;\n const docViewBottom = docViewTop + this.el.nativeElement.clientHeight;\n\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.children[0].offsetHeight;\n return elemBottom <= docViewBottom && elemTop >= docViewTop;\n }\n\n private init() {\n this.subscribe();\n\n this.selectedItem = this.findSelectedItem();\n this.focusedItem = this.findFocusedItem();\n\n this.enableNavigation();\n }\n\n private subscribe() {\n this.unsubscribe();\n\n this.listItems.toArray().forEach((item) => {\n this.subscriptions.push(\n item.beforeSelect.subscribe((item2: ListItemDirective) =>\n this.handleItemBeforeSelect(item2)\n )\n );\n\n this.subscriptions.push(\n item.select.subscribe((item2: ListItemDirective) =>\n this.handleItemSelect(item2)\n )\n );\n\n this.subscriptions.push(\n item.beforeFocus.subscribe((item2: ListItemDirective) =>\n this.handleItemBeforeFocus(item2)\n )\n );\n\n this.subscriptions.push(\n item.focus.subscribe((item2: ListItemDirective) =>\n this.handleItemFocus(item2)\n )\n );\n }, this);\n }\n\n private unsubscribe() {\n this.subscriptions.forEach((sub: Subscription) => sub.unsubscribe());\n this.subscriptions = [];\n }\n\n private handleItemBeforeFocus(item: ListItemDirective) {\n if (item !== this.focusedItem) {\n this.unfocus();\n }\n }\n\n private handleItemFocus(item: ListItemDirective) {\n this.focusedItem = item;\n }\n\n private handleItemBeforeSelect(item: ListItemDirective) {\n if (item !== this.focusedItem) {\n this.unselect();\n }\n }\n\n private handleItemSelect(item: ListItemDirective) {\n this.selectedItem = item;\n }\n\n private findSelectedItem() {\n return this.listItems.toArray().find((item) => item.selected);\n }\n\n private findFocusedItem() {\n return this.listItems.toArray().find((item) => item.focused);\n }\n\n private getFocusedIndex() {\n return this.listItems\n .toArray()\n .findIndex((item) => item === this.focusedItem);\n }\n\n private navigate(key: string) {\n switch (key) {\n case 'ArrowUp':\n this.focusPrevious();\n break;\n case 'ArrowDown':\n this.focusNext();\n break;\n default:\n break;\n }\n }\n}\n","<mat-list\n igoClickout\n [ngClass]=\"{ selectable: selection }\"\n (clickout)=\"disableNavigation()\"\n (click)=\"enableNavigation()\"\n>\n <ng-content></ng-content>\n</mat-list>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\n\nimport { IgoClickoutModule } from '../clickout/clickout.module';\n\nimport { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatListModule, IgoClickoutModule],\n declarations: [ListItemDirective, ListComponent],\n exports: [ListItemDirective, ListComponent]\n})\nexport class IgoListModule {\n static forRoot(): ModuleWithProviders<IgoListModule> {\n return {\n ngModule: IgoListModule,\n providers: []\n };\n }\n}\n","<div\n *ngIf=\"withHeader\"\n class=\"igo-panel-header\"\n title=\"\"\n [ngClass]=\"{ 'igo-cursor-pointer': cursorPointer === true }\"\n>\n <div class=\"panel-left\">\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n </div>\n <h3 class=\"igo-panel-title\">\n {{ title }}\n <ng-content select=\"[panelHeader]\"></ng-content>\n </h3>\n <div class=\"panel-right\">\n <ng-content select=\"[panelRightButton]\"></ng-content>\n </div>\n</div>\n<div class=\"igo-panel-content\" title=\"\">\n <ng-content></ng-content>\n</div>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n HostBinding\n} from '@angular/core';\n\n@Component({\n selector: 'igo-panel',\n templateUrl: './panel.component.html',\n styleUrls: ['./panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PanelComponent {\n @Input() title: string;\n\n @Input()\n @HostBinding('class.igo-panel-with-header')\n get withHeader(): boolean {\n return this._withHeader;\n }\n set withHeader(value: boolean) {\n this._withHeader = value;\n }\n private _withHeader = true;\n\n @Input() cursorPointer: boolean = false;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PanelComponent } from './panel.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [PanelComponent],\n declarations: [PanelComponent]\n})\nexport class IgoPanelModule {}\n","import { Directive, Self, HostListener, Renderer2 } from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n/**\n * <igoSidenavShim> directive.\n *\n * This directive prevents a material sidenav with mode=\"side\"\n * from focusing an element after it's closed\n */\n@Directive({\n selector: '[igoSidenavShim]'\n})\nexport class SidenavShimDirective {\n private focusedElement: HTMLElement;\n private blurElement: HTMLElement;\n\n @HostListener('open', ['$event'])\n onOpen() {\n this.focusedElement = document.activeElement as HTMLElement;\n }\n\n @HostListener('close-start', ['$event'])\n onCloseStart() {\n const focusedElement = document.activeElement as HTMLElement;\n if (focusedElement !== this.focusedElement) {\n this.blurElement = this.focusedElement;\n } else {\n this.blurElement = undefined;\n }\n }\n\n @HostListener('close', ['$event'])\n onClose() {\n if (this.blurElement) {\n this.renderer.selectRootElement(this.blurElement).blur();\n }\n\n this.blurElement = undefined;\n this.focusedElement = undefined;\n }\n\n constructor(\n @Self() component: MatSidenav,\n private renderer: Renderer2\n ) {}\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { SidenavShimDirective } from './sidenav-shim.directive';\n\n@NgModule({\n imports: [],\n declarations: [SidenavShimDirective],\n exports: [SidenavShimDirective]\n})\nexport class IgoSidenavModule {\n static forRoot(): ModuleWithProviders<IgoSidenavModule> {\n return {\n ngModule: IgoSidenavModule,\n providers: []\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'igo-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n public shown$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n @Input()\n set shown(value: boolean) {\n this.shown$.next(value);\n }\n get shown(): boolean {\n return this.shown$.value;\n }\n\n constructor() {}\n\n show() {\n this.shown = true;\n }\n\n hide() {\n this.shown = false;\n }\n}\n","<div\n [ngClass]=\"{\n 'igo-spinner-container': true,\n 'igo-spinner-shown': (shown$ | async)\n }\"\n>\n <div class=\"igo-spinner-background\"></div>\n <mat-progress-spinner\n diameter=\"40\"\n mode=\"indeterminate\"\n ></mat-progress-spinner>\n</div>\n","import { Directive, Self, OnInit, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { ActivityService } from '@igo2/core';\nimport { SpinnerComponent } from './spinner.component';\n\n/**\n * A directive to bind a SpinnerComponent to the activity service.\n * The activity service tracks any HTTP request and this directive\n * will display the spinner it's attached to when the activity counter\n * is greater than 0.\n */\n@Directive({\n selector: '[igoSpinnerActivity]'\n})\nexport class SpinnerActivityDirective implements OnInit, OnDestroy {\n /**\n * Subscription to the activity service counter\n */\n private counter$$: Subscription;\n\n constructor(\n @Self() private spinner: SpinnerComponent,\n private activityService: ActivityService\n ) {}\n\n /**\n * Subscribe to the activity service counter and display the spinner\n * when it's is greater than 0.\n * @internal\n */\n ngOnInit() {\n this.counter$$ = this.activityService.counter$\n .pipe(debounceTime(50))\n .subscribe((count: number) => {\n count > 0 ? this.spinner.show() : this.spinner.hide();\n });\n }\n\n /**\n * Unsubcribe to the activity service counter.\n * @internal\n */\n ngOnDestroy() {\n this.counter$$.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { SpinnerActivityDirective } from './spinner-activity.directive';\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n imports: [CommonModule, MatProgressSpinnerModule],\n declarations: [SpinnerActivityDirective, SpinnerComponent],\n exports: [SpinnerActivityDirective, SpinnerComponent]\n})\nexport class IgoSpinnerModule {}\n","import { BehaviorSubject } from 'rxjs';\n\nexport class TableDatabase {\n /** Stream that emits whenever the data has been modified. */\n dataChange: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n get data(): any[] {\n return this.dataChange.value;\n }\n\n constructor(data?) {\n if (data) {\n this.dataChange.next(data);\n }\n }\n\n set(data) {\n this.dataChange.next(data);\n }\n\n add(item) {\n const copiedData = this.data.slice();\n copiedData.push(item);\n this.set(copiedData);\n }\n\n remove(item) {\n const copiedData = this.data.slice();\n const index = copiedData.indexOf(item);\n copiedData.splice(index, 1);\n this.set(copiedData);\n }\n}\n","import { DataSource } from '@angular/cdk/table';\nimport { MatSort } from '@angular/material/sort';\n\nimport { Observable, BehaviorSubject, merge } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { TableModel } from './table-model.interface';\nimport { TableDatabase } from './table-database';\n\nexport class TableDataSource extends DataSource<any> {\n get filter(): string {\n return this._filterChange.value;\n }\n set filter(filter: string) {\n this._filterChange.next(filter);\n }\n private _filterChange = new BehaviorSubject('');\n\n constructor(\n private _database: TableDatabase,\n private _model: TableModel,\n private _sort: MatSort\n ) {\n super();\n }\n\n // Connect function called by the table to retrieve one stream containing\n // the data to render.\n connect(): Observable<any[]> {\n if (!this._database) {\n return merge([]);\n }\n const displayDataChanges = [\n this._database.dataChange,\n this._filterChange,\n this._sort.sortChange\n ];\n\n return merge(...displayDataChanges).pipe(\n map(() => {\n return this.getFilteredData(this._database.data);\n }),\n map((data) => {\n return this.getSortedData(data);\n })\n );\n }\n\n disconnect() {}\n\n getFilteredData(data): any[] {\n if (!this.filter) {\n return data;\n }\n return data.slice().filter((item: any) => {\n const searchStr: string = this._model.columns\n .filter((c) => c.filterable)\n .map((c) => ObjectUtils.resolve(item, c.name))\n .join(' ')\n .toLowerCase();\n\n return searchStr.indexOf(this.filter.toLowerCase()) !== -1;\n });\n }\n\n getSortedData(data): any[] {\n if (!this._sort.active || this._sort.direction === '') {\n return data;\n }\n\n return data.sort((a, b) => {\n const propertyA: number | string = ObjectUtils.resolve(\n a,\n this._sort.active\n );\n const propertyB: number | string = ObjectUtils.resolve(\n b,\n this._sort.active\n );\n\n return ObjectUtils.naturalCompare(\n propertyB,\n propertyA,\n this._sort.direction\n );\n });\n }\n}\n","export enum TableActionColor {\n primary,\n accent,\n warn\n}\n","<div class=\"table-box\">\n <div class=\"table-header\" *ngIf=\"hasFilterInput\">\n <mat-form-field floatPlaceholder=\"never\">\n <input\n matInput\n #filter\n [placeholder]=\"'igo.common.table.filter' | translate\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"table-container\">\n <table mat-table #table [dataSource]=\"dataSource\" matSort>\n <!-- Checkbox Column -->\n <ng-container matColumnDef=\"selectionCheckbox\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox\n (change)=\"$event ? masterToggle() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n >\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\"\n [checked]=\"selection.isSelected(row)\"\n >\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container\n [matColumnDef]=\"column.name\"\n *ngFor=\"let column of model.columns\"\n >\n <ng-container *ngIf=\"column.sortable\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n {{ column.title }}\n </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\n mat-cell\n *matCellDef=\"let row\"\n class=\"mat-cell-text\"\n [ngClass]=\"\n model.cellClassFunc ? model.cellClassFunc(row, column) : {}\n \"\n >\n {{ getValue(row, column.name) }}\n </td>\n </ng-container>\n\n <ng-template #cellHTML>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"mat-cell-text\"\n [ngClass]=\"\n model.cellClassFunc ? model.cellClassFunc(row, column) : {}\n \"\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\n *ngFor=\"let action of model.actions\"\n mat-mini-fab\n [color]=\"getActionColor(action.color)\"\n (click)=\"handleClickAction($event, action, row)\"\n >\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\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n [ngClass]=\"model.rowClassFunc ? model.rowClassFunc(row) : {}\"\n (click)=\"selection.toggle(row)\"\n ></tr>\n </table>\n </div>\n</div>\n","import {\n Component,\n ElementRef,\n ViewChild,\n Input,\n Output,\n OnChanges,\n OnInit,\n AfterViewInit,\n EventEmitter\n} from '@angular/core';\nimport { MatSort } from '@angular/material/sort';\nimport { SelectionModel } from '@angular/cdk/collections';\n\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { fromEvent } from 'rxjs';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { TableModel } from './table-model.interface';\nimport { TableDatabase } from './table-database';\nimport { TableDataSource } from './table-datasource';\nimport { TableActionColor } from './table-action-color.enum';\n\n@Component({\n selector: 'igo-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent implements OnChanges, OnInit, AfterViewInit {\n @Input()\n get database(): TableDatabase {\n return this._database;\n }\n set database(value: TableDatabase) {\n this._database = value;\n }\n private _database: TableDatabase;\n\n @Input()\n get model(): TableModel {\n return this._model;\n }\n set model(value: TableModel) {\n this._model = value;\n }\n private _model: TableModel;\n\n @Input()\n get hasFilterInput(): boolean {\n return this._hasFIlterInput;\n }\n set hasFilterInput(value: boolean) {\n this._hasFIlterInput = value;\n }\n private _hasFIlterInput = true;\n\n public displayedColumns;\n public dataSource: TableDataSource | null;\n public selection = new SelectionModel<any>(true, []);\n\n @Output()\n select = new EventEmitter<{\n added: any[];\n removed: any[];\n source: SelectionModel<any>;\n }>();\n\n @ViewChild('filter') filter: ElementRef;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n\n ngOnInit() {\n this.dataSource = new TableDataSource(this.database, this.model, this.sort);\n\n if (this.model) {\n this.displayedColumns = this.model.columns\n .filter((c) => c.displayed !== false)\n .map((c) => c.name);\n\n if (this.model.selectionCheckbox) {\n this.displayedColumns.unshift('selectionCheckbox');\n }\n if (this.model.actions && this.model.actions.length) {\n this.displayedColumns.push('action');\n }\n }\n\n this.selection.changed.subscribe((e) => this.select.emit(e));\n }\n\n ngAfterViewInit() {\n if (this.filter) {\n fromEvent(this.filter.nativeElement, 'keyup')\n .pipe(debounceTime(150), distinctUntilChanged())\n .subscribe(() => {\n if (!this.dataSource) {\n return;\n }\n this.dataSource.filter = this.filter.nativeElement.value;\n });\n }\n }\n\n ngOnChanges(change) {\n if (change.database) {\n this.dataSource = new TableDataSource(\n this.database,\n this.model,\n this.sort\n );\n this.selection.clear();\n }\n }\n\n getActionColor(colorId: number): string {\n return TableActionColor[colorId];\n }\n\n getValue(row, key) {\n return ObjectUtils.resolve(row, key);\n }\n\n /** Whether the number of selected elements matches the total number of rows. */\n isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.database.data.length;\n return numSelected === numRows;\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle() {\n this.isAllSelected()\n ? this.selection.clear()\n : this.database.data.forEach((row) => this.selection.select(row));\n }\n\n handleClickAction(event, action, row) {\n event.stopPropagation();\n action.click(row);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CdkTableModule,\n MatIconModule,\n MatButtonModule,\n MatTableModule,\n MatFormFieldModule,\n MatInputModule,\n MatSortModule,\n MatCheckboxModule,\n IgoLanguageModule\n ],\n declarations: [TableComponent],\n exports: [TableComponent]\n})\nexport class IgoTableModule {\n static forRoot(): ModuleWithProviders<IgoTableModule> {\n return {\n ngModule: IgoTableModule,\n providers: []\n };\n }\n}\n","export enum ToolboxColor {\n White = 'white',\n Grey = 'grey',\n Primary = 'primary'\n}\n","import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\nexport function toolSlideInOut(\n speed = '300ms',\n type = 'ease-in-out'\n): AnimationTriggerMetadata {\n return trigger('toolSlideInOut', [\n state(\n 'enter',\n style({\n transform: 'translate3d(0, 0, 0)'\n })\n ),\n transition('void => enter', animate(speed + ' ' + type))\n ]);\n}\n","<igo-actionbar\n *ngIf=\"(toolbar$ | async).length > 0\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container mat-body-1\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n>\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n >\n </igo-dynamic-outlet>\n</div>\n","import {\n Component,\n Input,\n OnDestroy,\n OnInit,\n HostBinding,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { Subscription, BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Action, ActionStore } from '../../action';\nimport { Tool } from '../shared/tool.interface';\nimport { ToolboxColor } from '../shared/toolbox.enums';\nimport { Toolbox } from '../shared/toolbox';\nimport { toolSlideInOut } from './toolbox.animation';\n\n@Component({\n selector: 'igo-toolbox',\n templateUrl: 'toolbox.component.html',\n styleUrls: ['toolbox.component.scss'],\n animations: [toolSlideInOut()],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToolboxComponent implements OnInit, OnDestroy {\n /**\n * Observable of the active tool\n */\n activeTool$: BehaviorSubject<Tool> = new BehaviorSubject(undefined);\n\n get isActive(): boolean {\n return !!this.activeTool$.value;\n }\n\n /**\n * Store of actions that toggle tools\n */\n actionStore: ActionStore = new ActionStore([]);\n\n /**\n * Observable of he anmation state\n */\n animation$: BehaviorSubject<string> = new BehaviorSubject('none');\n\n /**\n * Observable of the toolbar\n */\n toolbar$: BehaviorSubject<string[]> = new BehaviorSubject([]);\n\n /**\n * Whether the Toolbar should display actions' titles\n */\n toolbarWithTitle$: Observable<boolean> = this.activeTool$.pipe(\n map((tool: Tool | undefined) => tool === undefined)\n );\n\n /**\n * Subscription to the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Subscription to the toolbar\n */\n private toolbar$$: Subscription;\n\n /**\n * Observable of the ongoing animation. This is useful when\n * multiple animations are triggered at once i.e. when the user clicks\n * too fast on different actions\n */\n private animating$ = new BehaviorSubject<boolean>(false);\n\n /**\n * Subscription to the ongoing animation\n */\n private animating$$: Subscription;\n\n /**\n * Toolbox\n */\n @Input() toolbox: Toolbox;\n\n /**\n * Whether the toolbox should animate the first tool entering\n */\n @Input() animate: boolean = false;\n\n /**\n * Color of Toolbox\n */\n @Input() color: ToolboxColor = ToolboxColor.White;\n\n /**\n * @ignore\n */\n @HostBinding('class.color-grey')\n get classColorGrey() {\n return this.color === ToolboxColor.Grey;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.color-primary')\n get classColorPrimary() {\n return this.color === ToolboxColor.Primary;\n }\n\n /**\n * Initialize the toolbar and subscribe to the active tool\n * @internal\n */\n ngOnInit() {\n this.toolbar$$ = this.toolbox.toolbar$.subscribe((toolbar: string[]) =>\n this.onToolbarChange(toolbar)\n );\n this.activeTool$$ = this.toolbox.activeTool$.subscribe((tool: Tool) =>\n this.onActiveToolChange(tool)\n );\n }\n\n /**\n * Unsubscribe to the active tool and destroy the action store\n * @internal\n */\n ngOnDestroy() {\n this.toolbar$$.unsubscribe();\n this.activeTool$$.unsubscribe();\n this.actionStore.destroy();\n }\n\n /**\n * Track the starting animation\n * @internal\n */\n onAnimationStart() {\n this.animating$.next(true);\n }\n\n /**\n * Untrack the completed animation\n * @internal\n */\n onAnimationComplete() {\n this.animating$.next(false);\n }\n\n /**\n * Return a tool's inputs\n * @param tool Tool\n * @returns Tool inputs\n * @internal\n */\n getToolInputs(tool: Tool): { [key: string]: any } {\n return tool.options || {};\n }\n\n /**\n * Initialize an action store\n * @param toolbar Toolbar\n */\n private onToolbarChange(toolbar: string[]) {\n this.setToolbar(toolbar);\n }\n\n /**\n * Activate a tool and trigger an animation or not\n * @param tool Tool to activate\n */\n private onActiveToolChange(tool: Tool) {\n if (!this.animate) {\n this.setActiveTool(tool);\n return;\n }\n this.onAnimate(() => this.setActiveTool(tool));\n }\n\n /**\n * Set the active tool\n * @param tool Tool to activate\n */\n private setActiveTool(tool: Tool | undefined) {\n if (tool === undefined) {\n this.actionStore.state.updateAll({ active: false });\n } else {\n const action = this.actionStore.get(tool.name);\n if (action !== undefined) {\n this.actionStore.state.update(action, { active: true }, true);\n }\n }\n\n this.activeTool$.next(tool);\n if (this.animate) {\n this.animation$.next('enter');\n }\n }\n\n /**\n * Initialize the toolbar\n */\n private setToolbar(toolbar: string[]) {\n const actions = toolbar.reduce((acc: Action[], toolName: string) => {\n const tool = this.toolbox.getTool(toolName);\n if (tool === undefined) {\n return acc;\n }\n\n acc.push({\n id: tool.name,\n title: tool.title,\n icon: tool.icon,\n // iconImage: tool.iconImage,\n tooltip: tool.tooltip,\n args: [tool, this.toolbox],\n handler: (_tool: Tool, _toolbox: Toolbox) => {\n _toolbox.activateTool(_tool.name);\n },\n ngClass: (_tool: Tool, _toolbox: Toolbox) => {\n return this.toolbox.activeTool$.pipe(\n map((activeTool: Tool) => {\n let toolActivated = false;\n if (activeTool !== undefined && _tool.name === activeTool.name) {\n toolActivated = true;\n }\n\n let childrenToolActivated = false;\n if (\n activeTool !== undefined &&\n _tool.name === activeTool.parent\n ) {\n childrenToolActivated = true;\n }\n\n return {\n 'tool-activated': toolActivated,\n 'children-tool-activated': childrenToolActivated\n };\n })\n );\n }\n });\n return acc;\n }, []);\n this.actionStore.load(actions);\n this.toolbar$.next(toolbar);\n }\n\n /**\n * Observe the ongoing animation and ignore any incoming animation\n * while one is still ongoing.\n * @param callback Callback to execute when the animation completes\n */\n private onAnimate(callback: () => void) {\n this.unAnimate();\n this.animating$$ = this.animating$.subscribe((animation: boolean) => {\n if (!animation) {\n callback.call(this);\n this.unAnimate();\n }\n });\n }\n\n /**\n * Stop observing an animation when it's complete\n */\n private unAnimate() {\n if (this.animating$$) {\n this.animating$$.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoActionModule } from '../../action/action.module';\nimport { IgoDynamicComponentModule } from '../../dynamic-component/dynamic-component.module';\n\nimport { ToolboxComponent } from './toolbox.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [CommonModule, IgoActionModule, IgoDynamicComponentModule],\n exports: [ToolboxComponent],\n declarations: [ToolboxComponent]\n})\nexport class IgoToolboxModule {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToolService } from './shared/tool.service';\nimport { IgoToolboxModule } from './toolbox/toolbox.module';\n\n@NgModule({\n imports: [CommonModule],\n exports: [IgoToolboxModule],\n declarations: []\n})\nexport class IgoToolModule {\n static forRoot(): ModuleWithProviders<IgoToolModule> {\n return {\n ngModule: IgoToolModule,\n providers: [ToolService]\n };\n }\n}\n","<igo-dynamic-outlet\n *ngIf=\"widget\"\n [component]=\"widget\"\n [inputs]=\"inputs\"\n [subscribers]=\"getEffectiveSubscribers()\"\n>\n</igo-dynamic-outlet>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnDestroy\n} from '@angular/core';\n\nimport { DynamicComponent } from '../../dynamic-component';\n\nimport { WidgetComponent } from '../shared/widget.interfaces';\n\n/**\n * This component dynamically renders a widget. It also subscribes\n * to the widget's 'cancel' and 'complete' events and destroys it\n * when any of those event is emitted.\n */\n@Component({\n selector: 'igo-widget-outlet',\n templateUrl: './widget-outlet.component.html',\n styleUrls: ['./widget-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WidgetOutletComponent implements OnDestroy {\n /**\n * Widget subscribers to 'cancel' and 'complete'\n * @internal\n */\n private baseSubscribers = {\n cancel: (event: any) => this.onCancel(event),\n complete: (event: any) => this.onComplete(event)\n };\n\n /**\n * Widget\n */\n @Input() widget: DynamicComponent<WidgetComponent>;\n\n /**\n * Widget inputs\n */\n @Input() inputs: { [key: string]: any };\n\n /**\n * Widget subscribers\n */\n @Input() subscribers: { [key: string]: (event: any) => void } = {};\n\n /**\n * Event emitted when the widget emits 'complete'\n */\n @Output() complete = new EventEmitter<any>();\n\n /**\n * Event emitted when the widget emits 'cancel'\n */\n @Output() cancel = new EventEmitter<any>();\n\n constructor() {}\n\n /**\n * Destroy the current widget and all it's inner subscriptions\n * @internal\n */\n ngOnDestroy() {\n this.destroyWidget();\n }\n\n /**\n * Get the effective subscribers. That means a combination of the base\n * subscribers and any subscriber given as input.\n * @returns Combined subscribers\n * @internal\n */\n getEffectiveSubscribers(): { [key: string]: (event: any) => void } {\n const subscribers = Object.assign({}, this.subscribers);\n\n // Base subscribers\n Object.keys(this.baseSubscribers).forEach((key: string) => {\n const subscriber = subscribers[key];\n const baseSubscriber = this.baseSubscribers[key];\n if (subscriber !== undefined) {\n subscribers[key] = (event: any) => {\n subscriber(event);\n baseSubscriber(event);\n };\n } else {\n subscribers[key] = baseSubscriber;\n }\n });\n\n return subscribers;\n }\n\n /**\n * When the widget emits 'cancel', propagate that event and destroy\n * the widget\n */\n private onCancel(event: any) {\n this.cancel.emit(event);\n this.destroyWidget();\n }\n\n /**\n * When the widget emits 'complete', propagate that event and destroy\n * the widget\n */\n private onComplete(event: any) {\n this.complete.emit(event);\n this.destroyWidget();\n }\n\n /**\n * Destroy the current widget\n */\n private destroyWidget() {\n if (this.widget !== undefined) {\n this.widget.destroy();\n }\n this.widget = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoDynamicComponentModule } from '../../dynamic-component/dynamic-component.module';\n\nimport { WidgetOutletComponent } from './widget-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [CommonModule, IgoDynamicComponentModule],\n exports: [WidgetOutletComponent],\n declarations: [WidgetOutletComponent]\n})\nexport class IgoWidgetOutletModule {}\n","import { Injectable } from '@angular/core';\n\nimport { DynamicComponentService } from '../../dynamic-component/shared/dynamic-component.service';\n\nimport { Widget } from './widget';\nimport { WidgetComponent } from './widget.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetService {\n constructor(private dynamicComponentService: DynamicComponentService) {}\n\n create(widgetCls: any): Widget {\n return this.dynamicComponentService.create(widgetCls as WidgetComponent);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWidgetOutletModule } from './widget-outlet/widget-outlet.module';\nimport { WidgetService } from './shared/widget.service';\n\n@NgModule({\n imports: [CommonModule, IgoWidgetOutletModule],\n exports: [IgoWidgetOutletModule],\n declarations: [],\n providers: [WidgetService]\n})\nexport class IgoWidgetModule {}\n","import { EntityStore } from '../../entity';\nimport { Workspace } from './workspace';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * The class is a specialized version of an EntityStore that stores\n * workspaces.\n */\nexport class WorkspaceStore extends EntityStore<Workspace> {\n activeWorkspace$: BehaviorSubject<Workspace> = new BehaviorSubject(undefined);\n\n /**\n * Activate the an workspace workspace and deactivate the one currently active\n * @param workspace Workspace\n */\n activateWorkspace(workspace: Workspace) {\n const active = this.activeWorkspace$.value;\n if (active !== undefined) {\n active.deactivate();\n }\n\n this.deactivateWorkspace();\n if (workspace !== undefined) {\n this.state.update(workspace, { active: true, selected: true }, true);\n this.activeWorkspace$.next(workspace);\n workspace.activate();\n }\n }\n\n /**\n * Deactivate the current workspace\n * @param workspace Workspace\n */\n deactivateWorkspace() {\n const active = this.activeWorkspace$.value;\n if (active !== undefined) {\n active.deactivate();\n this.activeWorkspace$.next(undefined);\n }\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { getEntityTitle } from '../../entity';\nimport { Workspace } from '../shared/workspace';\nimport { WorkspaceStore } from '../shared/store';\n\n/**\n * Drop list that activates the selected workspace emit an event.\n */\n@Component({\n selector: 'igo-workspace-selector',\n templateUrl: './workspace-selector.component.html',\n styleUrls: ['./workspace-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkspaceSelectorComponent {\n /**\n * Store that holds the available workspaces.\n */\n @Input() store: WorkspaceStore;\n\n /**\n * Wheither the selector must be disabled or not.\n */\n @Input() disabled: boolean;\n\n /**\n * Event emitted when an workspace is selected or unselected\n */\n @Output() selectedChange = new EventEmitter<{\n selected: boolean;\n value: Workspace;\n }>();\n\n /**\n * @internal\n */\n getWorkspaceTitle(workspace: Workspace): string {\n return getEntityTitle(workspace);\n }\n\n /**\n * When an workspace is manually selected, select it into the\n * store and emit an event.\n * @internal\n * @param event The selection change event\n */\n onSelectedChange(event: { value: Workspace }) {\n const workspace = event.value;\n this.store.activateWorkspace(workspace);\n this.selectedChange.emit({ selected: true, value: workspace });\n }\n}\n","<igo-entity-selector\n [store]=\"store\"\n [multi]=\"false\"\n [titleAccessor]=\"getWorkspaceTitle\"\n [disabled]=\"disabled\"\n (selectedChange)=\"onSelectedChange($event)\"\n>\n</igo-entity-selector>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoEntitySelectorModule } from '../../entity/entity-selector/entity-selector.module';\nimport { WorkspaceSelectorComponent } from './workspace-selector.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [CommonModule, IgoEntitySelectorModule],\n exports: [WorkspaceSelectorComponent],\n declarations: [WorkspaceSelectorComponent]\n})\nexport class IgoWorkspaceSelectorModule {}\n","import { Subscription, BehaviorSubject, Subject } from 'rxjs';\n\nimport { ActionStore } from '../../action';\nimport { Widget } from '../../widget';\nimport { EntityStoreWithStrategy } from '../../entity';\n\nimport { WorkspaceOptions } from './workspace.interfaces';\n\n/**\n * This class is responsible of managing the relations between\n * entities and the actions that consume them. It also defines an\n * entity table template that may be used by an entity table component.\n */\nexport class Workspace<E extends object = object> {\n /**\n * Observable of the selected widget\n */\n readonly widget$ = new BehaviorSubject<Widget>(undefined);\n\n /**\n * Observable of the selected widget's inputs\n */\n readonly widgetInputs$ = new BehaviorSubject<{ [key: string]: any }>({});\n\n /**\n * Observable of the selected widget's subscribers\n */\n readonly widgetSubscribers$ = new BehaviorSubject<{\n [key: string]: (event: any) => void;\n }>({});\n\n /**\n * Subscription to the selected entity\n */\n private entities$$: Subscription;\n\n /**\n * State change that trigger an update of the actions availability\n */\n private change: Subject<void> = new Subject();\n\n /**\n * Subscription to state changes\n */\n private change$: Subscription;\n\n /**\n * Workspace id\n */\n get id(): string {\n return this.options.id;\n }\n\n /**\n * Workspace title\n */\n get title(): string {\n return this.options.title;\n }\n\n /**\n * Workspace title\n */\n get meta(): { [key: string]: any } {\n return this.options.meta || {};\n }\n\n /**\n * Entities store\n */\n get entityStore(): EntityStoreWithStrategy<E> {\n return this.options.entityStore as EntityStoreWithStrategy<E>;\n }\n\n /**\n * Actions store (some actions activate a widget)\n */\n get actionStore(): ActionStore {\n return this.options.actionStore;\n }\n\n /**\n * Selected widget\n */\n get widget(): Widget {\n return this.widget$.value;\n }\n\n /**\n * Whether a widget is selected\n */\n get hasWidget(): boolean {\n return this.widget !== undefined;\n }\n\n constructor(protected options: WorkspaceOptions) {}\n\n /**\n * Whether this strategy is active\n * @internal\n */\n get active(): boolean {\n return this.active$.value;\n }\n readonly active$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * Activate the workspace. By doing that, the workspace will observe\n * the selected entity (from the store) and update the actions availability.\n * For example, some actions require an entity to be selected.\n */\n activate() {\n if (this.active === true) {\n this.deactivate();\n }\n this.active$.next(true);\n\n if (this.entityStore !== undefined) {\n this.entities$$ = this.entityStore.stateView\n .all$()\n .subscribe(() => this.onStateChange());\n }\n\n this.change.next();\n }\n\n /**\n * Deactivate the workspace. Unsubcribe to the selected entity.\n */\n deactivate() {\n this.active$.next(false);\n this.deactivateWidget();\n\n if (this.entities$$ !== undefined) {\n this.entities$$.unsubscribe();\n }\n if (this.change$ !== undefined) {\n this.change$.unsubscribe();\n }\n }\n\n /**\n * Activate a widget. In itself, activating a widget doesn't render it but,\n * if an WorkspaceWidgetOutlet component is bound to this workspace, the widget will\n * show up.\n * @param widget Widget\n * @param inputs Inputs the widget will receive\n */\n activateWidget(\n widget: Widget,\n inputs: { [key: string]: any } = {},\n subscribers: { [key: string]: (event: any) => void } = {}\n ) {\n this.widget$.next(widget);\n this.widgetInputs$.next(inputs);\n this.widgetSubscribers$.next(subscribers);\n this.change.next();\n }\n\n /**\n * Deactivate a widget.\n */\n deactivateWidget() {\n this.widget$.next(undefined);\n this.change.next();\n }\n\n /**\n * When the state changes, update the actions availability.\n */\n private onStateChange() {\n this.change.next();\n }\n}\n","<ng-container *ngIf=\"widget$ | async as widget\">\n <igo-widget-outlet\n [widget]=\"widget\"\n [inputs]=\"widgetInputs$ | async\"\n [subscribers]=\"widgetSubscribers$ | async\"\n (cancel)=\"onWidgetCancel(widget)\"\n (complete)=\"onWidgetComplete(widget)\"\n >\n </igo-widget-outlet>\n</ng-container>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Widget } from '../../widget';\nimport { Workspace } from '../shared/workspace';\n\n/**\n * This component dynamically render an Workspace's active widget.\n * It also deactivate that widget whenever the widget's component\n * emit the 'cancel' or 'complete' event.\n */\n@Component({\n selector: 'igo-workspace-widget-outlet',\n templateUrl: './workspace-widget-outlet.component.html',\n styleUrls: ['./workspace-widget-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkspaceWidgetOutletComponent {\n /**\n * Workspace\n */\n @Input() workspace: Workspace;\n\n /**\n * Event emitted when a widget is deactivate which happens\n * when the widget's component emits the 'cancel' or 'complete' event.\n */\n @Output() deactivateWidget = new EventEmitter<Widget>();\n\n /**\n * Observable of the workspace's active widget\n * @internal\n */\n get widget$(): BehaviorSubject<Widget> {\n return this.workspace.widget$;\n }\n\n /**\n * Observable of the workspace's widget inputs\n * @internal\n */\n get widgetInputs$(): BehaviorSubject<{ [key: string]: any }> {\n return this.workspace.widgetInputs$;\n }\n\n /**\n * Observable of the workspace's widget inputs\n * @internal\n */\n get widgetSubscribers$(): BehaviorSubject<{\n [key: string]: (event: any) => void;\n }> {\n return this.workspace.widgetSubscribers$;\n }\n\n constructor() {}\n\n /**\n * When a widget's component emit the 'cancel' event,\n * deactivate that widget and emit the 'deactivateWidget' event.\n * @param widget Widget\n * @internal\n */\n onWidgetCancel(widget: Widget) {\n this.workspace.deactivateWidget();\n this.deactivateWidget.emit(widget);\n }\n\n /**\n * When a widget's component emit the 'cancel' event,\n * deactivate that widget and emit the 'deactivateWidget' event.\n * @param widget Widget\n * @internal\n */\n onWidgetComplete(widget: Widget) {\n this.workspace.deactivateWidget();\n this.deactivateWidget.emit(widget);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWidgetOutletModule } from '../../widget/widget-outlet/widget-outlet.module';\n\nimport { WorkspaceWidgetOutletComponent } from './workspace-widget-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [CommonModule, IgoWidgetOutletModule],\n exports: [WorkspaceWidgetOutletComponent],\n declarations: [WorkspaceWidgetOutletComponent]\n})\nexport class IgoWorkspaceWidgetOutletModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWorkspaceSelectorModule } from './workspace-selector/workspace-selector.module';\nimport { IgoWorkspaceWidgetOutletModule } from './workspace-widget-outlet/workspace-widget-outlet.module';\n\n@NgModule({\n imports: [CommonModule],\n exports: [IgoWorkspaceSelectorModule, IgoWorkspaceWidgetOutletModule],\n declarations: []\n})\nexport class IgoWorkspaceModule {}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Output,\n OnInit\n} from '@angular/core';\nimport { Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport tinycolor from 'tinycolor2';\n\n@Component({\n selector: 'igo-color-picker-form-field',\n templateUrl: './color-picker-form-field.component.html',\n styleUrls: ['./color-picker-form-field.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerFormFieldComponent),\n multi: true\n }\n ]\n})\nexport class ColorPickerFormFieldComponent\n implements ControlValueAccessor, OnInit\n{\n // native color picker can't give transparency\n // set transparency manually\n @Input() setAlpha: number = 1;\n\n // by default native color picker gives hex result\n @Input() outputFormat: 'hex' | 'rgba' | 'hsla' = 'rgba';\n\n // default color\n @Input() color: string = '#000';\n\n // open and close native color picker event\n @Output() open = new EventEmitter<boolean>();\n @Output() close = new EventEmitter<boolean>();\n\n onChange: any = () => {};\n onTouch: any = () => {};\n\n // final value we get as result with custom format\n set value(value: string) {\n value = !value ? this.color : value;\n this.onChange(value);\n this.onTouch(value);\n this._value = value;\n }\n get value(): string {\n return this._value;\n }\n public _value: string;\n\n // native color picker accept hex format\n set hexColor(value: string) {\n this.value = this.setFormat(value);\n this._hexColor = value;\n }\n get hexColor(): string {\n return this._hexColor;\n }\n public _hexColor: string;\n\n ngOnInit(): void {\n if (this.color) {\n this._hexColor = tinycolor(this.color)\n .setAlpha(this.setAlpha)\n .toHexString();\n }\n }\n\n writeValue(value: string) {\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setFormat(color: string): string {\n switch (this.outputFormat) {\n case 'hex':\n color = tinycolor(color).setAlpha(this.setAlpha).toHexString();\n break;\n case 'rgba':\n color = tinycolor(color).setAlpha(this.setAlpha).toRgbString();\n break;\n case 'hsla':\n color = tinycolor(color).setAlpha(this.setAlpha).toHsvString();\n break;\n default:\n color = tinycolor(color).setAlpha(this.setAlpha).toRgbString();\n break;\n }\n return color;\n }\n\n closePicker() {\n setTimeout(() => {\n this.close.emit(true);\n }, 300);\n }\n}\n","<mat-form-field\n class=\"fill-field\"\n floatLabel=\"always\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ value }}</mat-label>\n <input\n matInput\n [readonly]=\"true\"\n (click)=\"open.emit(true)\"\n (blur)=\"closePicker()\"\n [(ngModel)]=\"hexColor\"\n type=\"color\"\n />\n</mat-form-field>\n","import { NgModule } from '@angular/core';\nimport { ColorPickerFormFieldComponent } from './color-picker-form-field.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule\n ],\n declarations: [ColorPickerFormFieldComponent],\n exports: [ColorPickerFormFieldComponent]\n})\nexport class ColorPickerFormFieldModule {}\n","import { Tool } from './tool.interface';\nimport { ToolService } from './tool.service';\n\nexport function ToolComponent(tool: Partial<Tool>): (cls: any) => any {\n return (compType: any) => {\n ToolService.register(\n Object.assign({}, tool, {\n component: compType\n } as Tool)\n );\n };\n}\n","import { DynamicComponent } from '../../dynamic-component/shared/dynamic-component';\nimport { WidgetComponent } from './widget.interfaces';\n\nexport class Widget extends DynamicComponent<WidgetComponent> {}\n","/*\n * Public API Surface of common\n */\n\nexport * from './lib/action/action.module';\nexport * from './lib/action/actionbar/actionbar.module';\nexport * from './lib/backdrop/backdrop.module';\nexport * from './lib/badge-icon/badge-icon.module';\nexport * from './lib/clickout/clickout.module';\nexport * from './lib/clone/clone.module';\nexport * from './lib/collapsible/collapsible.module';\nexport * from './lib/confirm-dialog/confirm-dialog.module';\nexport * from './lib/context-menu/context-menu.module';\nexport * from './lib/custom-html/custom-html.module';\nexport * from './lib/dom/dom.module';\nexport * from './lib/drag-drop/drag-drop.module';\nexport * from './lib/dynamic-component/dynamic-component.module';\nexport * from './lib/dynamic-component/dynamic-outlet/dynamic-outlet.module';\nexport * from './lib/flexible/flexible.module';\nexport * from './lib/form/form.module';\nexport * from './lib/form/form/form.module';\nexport * from './lib/home-button/home-button.module';\nexport * from './lib/form/form-field/form-field.module';\nexport * from './lib/form/form-group/form-group.module';\nexport * from './lib/entity/entity.module';\nexport * from './lib/entity/entity-selector/entity-selector.module';\nexport * from './lib/entity/entity-table/entity-table.module';\nexport * from './lib/entity/entity-table-paginator/entity-table-paginator.module';\nexport * from './lib/image/image.module';\nexport * from './lib/interactive-tour/interactive-tour.module';\nexport * from './lib/json-dialog/json-dialog.module';\nexport * from './lib/keyvalue/keyvalue.module';\nexport * from './lib/list/list.module';\nexport * from './lib/panel/panel.module';\nexport * from './lib/sidenav/sidenav.module';\nexport * from './lib/spinner/spinner.module';\nexport * from './lib/stop-propagation/stop-propagation.module';\nexport * from './lib/table/table.module';\nexport * from './lib/tool/tool.module';\nexport * from './lib/tool/toolbox/toolbox.module';\nexport * from './lib/widget/widget.module';\nexport * from './lib/widget/widget-outlet/widget-outlet.module';\nexport * from './lib/workspace/workspace.module';\nexport * from './lib/workspace/workspace-selector/workspace-selector.module';\nexport * from './lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module';\nexport * from './lib/color-picker-form-field/color-picker-form-field.module';\n\nexport * from './lib/action';\nexport * from './lib/backdrop';\nexport * from './lib/badge-icon';\nexport * from './lib/clickout';\nexport * from './lib/clone';\nexport * from './lib/collapsible';\nexport * from './lib/confirm-dialog';\nexport * from './lib/context-menu';\nexport * from './lib/custom-html';\nexport * from './lib/drag-drop';\nexport * from './lib/dom';\nexport * from './lib/dynamic-component';\nexport * from './lib/form';\nexport * from './lib/home-button';\nexport * from './lib/entity';\nexport * from './lib/flexible';\nexport * from './lib/image';\nexport * from './lib/interactive-tour';\nexport * from './lib/json-dialog';\nexport * from './lib/keyvalue';\nexport * from './lib/list';\nexport * from './lib/panel';\nexport * from './lib/sidenav';\nexport * from './lib/spinner';\nexport * from './lib/stop-propagation';\nexport * from './lib/table';\nexport * from './lib/tool';\nexport * from './lib/widget';\nexport * from './lib/workspace';\nexport * from './lib/color-picker-form-field';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","_c0","i1.DynamicComponentService","_c2","i1.FormFieldService","i2.InteractiveTourLoader","i1.InteractiveTourService","i2.ToolService","_c1","i1.SpinnerComponent"],"mappings":"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"}