@igo2/common 1.8.1 → 1.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/bundles/igo2-common.umd.js +10700 -10473
  2. package/bundles/igo2-common.umd.js.map +1 -1
  3. package/esm2015/igo2-common.js +5 -5
  4. package/esm2015/lib/action/action.module.js +29 -28
  5. package/esm2015/lib/action/actionbar/actionbar-item.component.js +257 -257
  6. package/esm2015/lib/action/actionbar/actionbar.component.js +385 -387
  7. package/esm2015/lib/action/actionbar/actionbar.module.js +59 -58
  8. package/esm2015/lib/action/index.js +3 -3
  9. package/esm2015/lib/action/shared/action.enums.js +7 -7
  10. package/esm2015/lib/action/shared/action.interfaces.js +2 -1
  11. package/esm2015/lib/action/shared/index.js +4 -4
  12. package/esm2015/lib/action/shared/store.js +8 -8
  13. package/esm2015/lib/backdrop/backdrop.component.js +30 -30
  14. package/esm2015/lib/backdrop/backdrop.module.js +25 -24
  15. package/esm2015/lib/backdrop/index.js +2 -2
  16. package/esm2015/lib/badge-icon/badge-icon.directive.js +125 -121
  17. package/esm2015/lib/badge-icon/badge-icon.module.js +26 -25
  18. package/esm2015/lib/badge-icon/index.js +2 -2
  19. package/esm2015/lib/clickout/clickout.directive.js +32 -32
  20. package/esm2015/lib/clickout/clickout.module.js +24 -23
  21. package/esm2015/lib/clickout/index.js +2 -2
  22. package/esm2015/lib/clone/clone.module.js +24 -23
  23. package/esm2015/lib/clone/clone.pipe.js +24 -24
  24. package/esm2015/lib/clone/index.js +2 -2
  25. package/esm2015/lib/collapsible/collapse.directive.js +55 -55
  26. package/esm2015/lib/collapsible/collapsible.component.js +63 -63
  27. package/esm2015/lib/collapsible/collapsible.module.js +27 -26
  28. package/esm2015/lib/collapsible/index.js +3 -3
  29. package/esm2015/lib/confirm-dialog/confirm-dialog.component.js +50 -51
  30. package/esm2015/lib/confirm-dialog/confirm-dialog.module.js +29 -28
  31. package/esm2015/lib/confirm-dialog/confirm-dialog.service.js +22 -23
  32. package/esm2015/lib/confirm-dialog/index.js +3 -3
  33. package/esm2015/lib/context-menu/context-menu.directive.js +135 -89
  34. package/esm2015/lib/context-menu/context-menu.module.js +24 -23
  35. package/esm2015/lib/context-menu/index.js +2 -2
  36. package/esm2015/lib/custom-html/custom-html.component.js +32 -32
  37. package/esm2015/lib/custom-html/custom-html.module.js +49 -48
  38. package/esm2015/lib/custom-html/custom-html.pipe.js +18 -19
  39. package/esm2015/lib/custom-html/index.js +3 -3
  40. package/esm2015/lib/drag-drop/drag-drop.directive.js +88 -88
  41. package/esm2015/lib/drag-drop/drag-drop.module.js +24 -23
  42. package/esm2015/lib/drag-drop/index.js +2 -2
  43. package/esm2015/lib/dynamic-component/dynamic-component.module.js +33 -32
  44. package/esm2015/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.js +124 -125
  45. package/esm2015/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.js +30 -29
  46. package/esm2015/lib/dynamic-component/index.js +3 -3
  47. package/esm2015/lib/dynamic-component/shared/dynamic-component.interfaces.js +2 -1
  48. package/esm2015/lib/dynamic-component/shared/dynamic-component.js +174 -174
  49. package/esm2015/lib/dynamic-component/shared/dynamic-component.service.js +29 -29
  50. package/esm2015/lib/dynamic-component/shared/index.js +4 -4
  51. package/esm2015/lib/entity/entity-selector/entity-selector.component.js +201 -202
  52. package/esm2015/lib/entity/entity-selector/entity-selector.module.js +34 -33
  53. package/esm2015/lib/entity/entity-table/entity-table-row.directive.js +137 -137
  54. package/esm2015/lib/entity/entity-table/entity-table.component.js +912 -916
  55. package/esm2015/lib/entity/entity-table/entity-table.module.js +77 -76
  56. package/esm2015/lib/entity/entity-table-paginator/entity-table-paginator.component.js +138 -140
  57. package/esm2015/lib/entity/entity-table-paginator/entity-table-paginator.interface.js +2 -1
  58. package/esm2015/lib/entity/entity-table-paginator/entity-table-paginator.module.js +30 -29
  59. package/esm2015/lib/entity/entity.module.js +33 -32
  60. package/esm2015/lib/entity/index.js +6 -6
  61. package/esm2015/lib/entity/shared/entity.enums.js +27 -27
  62. package/esm2015/lib/entity/shared/entity.interfaces.js +2 -1
  63. package/esm2015/lib/entity/shared/entity.utils.js +67 -67
  64. package/esm2015/lib/entity/shared/index.js +10 -10
  65. package/esm2015/lib/entity/shared/state.js +191 -191
  66. package/esm2015/lib/entity/shared/store.js +288 -288
  67. package/esm2015/lib/entity/shared/strategies/filter-custom-function.js +79 -79
  68. package/esm2015/lib/entity/shared/strategies/filter-selection.js +84 -84
  69. package/esm2015/lib/entity/shared/strategies/index.js +4 -4
  70. package/esm2015/lib/entity/shared/strategies/strategy.js +75 -75
  71. package/esm2015/lib/entity/shared/transaction.js +316 -316
  72. package/esm2015/lib/entity/shared/view.js +315 -315
  73. package/esm2015/lib/entity/shared/watcher.js +120 -120
  74. package/esm2015/lib/flexible/flexible.component.js +158 -159
  75. package/esm2015/lib/flexible/flexible.module.js +24 -23
  76. package/esm2015/lib/flexible/flexible.type.js +2 -1
  77. package/esm2015/lib/flexible/index.js +3 -3
  78. package/esm2015/lib/form/form/form.component.js +125 -125
  79. package/esm2015/lib/form/form/form.module.js +42 -41
  80. package/esm2015/lib/form/form-field/form-field-select.component.js +132 -132
  81. package/esm2015/lib/form/form-field/form-field-text.component.js +108 -108
  82. package/esm2015/lib/form/form-field/form-field-textarea.component.js +110 -110
  83. package/esm2015/lib/form/form-field/form-field.component.js +77 -78
  84. package/esm2015/lib/form/form-field/form-field.module.js +76 -75
  85. package/esm2015/lib/form/form-field/index.js +5 -5
  86. package/esm2015/lib/form/form-group/form-group.component.js +110 -110
  87. package/esm2015/lib/form/form-group/form-group.module.js +42 -41
  88. package/esm2015/lib/form/form.module.js +51 -50
  89. package/esm2015/lib/form/index.js +5 -5
  90. package/esm2015/lib/form/shared/form-field-component.js +7 -7
  91. package/esm2015/lib/form/shared/form-field.service.js +29 -29
  92. package/esm2015/lib/form/shared/form.interfaces.js +2 -1
  93. package/esm2015/lib/form/shared/form.service.js +77 -77
  94. package/esm2015/lib/form/shared/form.utils.js +40 -40
  95. package/esm2015/lib/form/shared/index.js +6 -6
  96. package/esm2015/lib/home-button/home-button.component.js +35 -0
  97. package/esm2015/lib/home-button/home-button.module.js +43 -0
  98. package/esm2015/lib/home-button/index.js +2 -0
  99. package/esm2015/lib/image/image.module.js +24 -23
  100. package/esm2015/lib/image/index.js +2 -2
  101. package/esm2015/lib/image/secure-image.pipe.js +48 -51
  102. package/esm2015/lib/interactive-tour/index.js +5 -5
  103. package/esm2015/lib/interactive-tour/interactive-tour.component.js +140 -142
  104. package/esm2015/lib/interactive-tour/interactive-tour.interface.js +2 -1
  105. package/esm2015/lib/interactive-tour/interactive-tour.loader.js +44 -46
  106. package/esm2015/lib/interactive-tour/interactive-tour.module.js +42 -41
  107. package/esm2015/lib/interactive-tour/interactive-tour.service.js +285 -288
  108. package/esm2015/lib/json-dialog/index.js +3 -3
  109. package/esm2015/lib/json-dialog/json-dialog.component.js +116 -117
  110. package/esm2015/lib/json-dialog/json-dialog.module.js +29 -28
  111. package/esm2015/lib/json-dialog/json-dialog.service.js +24 -25
  112. package/esm2015/lib/keyvalue/index.js +2 -2
  113. package/esm2015/lib/keyvalue/keyvalue.module.js +24 -23
  114. package/esm2015/lib/keyvalue/keyvalue.pipe.js +18 -18
  115. package/esm2015/lib/list/index.js +3 -3
  116. package/esm2015/lib/list/list-item.directive.js +165 -165
  117. package/esm2015/lib/list/list.component.js +266 -266
  118. package/esm2015/lib/list/list.module.js +29 -28
  119. package/esm2015/lib/panel/index.js +2 -2
  120. package/esm2015/lib/panel/panel.component.js +67 -67
  121. package/esm2015/lib/panel/panel.module.js +19 -18
  122. package/esm2015/lib/sidenav/index.js +2 -2
  123. package/esm2015/lib/sidenav/sidenav-shim.directive.js +55 -56
  124. package/esm2015/lib/sidenav/sidenav.module.js +24 -23
  125. package/esm2015/lib/spinner/index.js +3 -3
  126. package/esm2015/lib/spinner/spinner-activity.directive.js +47 -49
  127. package/esm2015/lib/spinner/spinner.component.js +40 -40
  128. package/esm2015/lib/spinner/spinner.module.js +21 -20
  129. package/esm2015/lib/stop-propagation/index.js +3 -3
  130. package/esm2015/lib/stop-propagation/stop-drop-propagation.directive.js +22 -22
  131. package/esm2015/lib/stop-propagation/stop-propagation.directive.js +21 -21
  132. package/esm2015/lib/stop-propagation/stop-propagation.module.js +25 -24
  133. package/esm2015/lib/table/index.js +6 -6
  134. package/esm2015/lib/table/table-action-color.enum.js +7 -7
  135. package/esm2015/lib/table/table-database.js +28 -28
  136. package/esm2015/lib/table/table-datasource.js +61 -61
  137. package/esm2015/lib/table/table-model.interface.js +2 -1
  138. package/esm2015/lib/table/table.component.js +310 -311
  139. package/esm2015/lib/table/table.module.js +69 -68
  140. package/esm2015/lib/tool/index.js +3 -3
  141. package/esm2015/lib/tool/shared/index.js +6 -6
  142. package/esm2015/lib/tool/shared/tool-component.js +9 -9
  143. package/esm2015/lib/tool/shared/tool.interface.js +2 -1
  144. package/esm2015/lib/tool/shared/tool.service.js +43 -43
  145. package/esm2015/lib/tool/shared/toolbox.enums.js +7 -7
  146. package/esm2015/lib/tool/shared/toolbox.js +179 -179
  147. package/esm2015/lib/tool/tool.module.js +34 -33
  148. package/esm2015/lib/tool/toolbox/toolbox.animation.js +10 -10
  149. package/esm2015/lib/tool/toolbox/toolbox.component.js +261 -262
  150. package/esm2015/lib/tool/toolbox/toolbox.module.js +38 -37
  151. package/esm2015/lib/widget/index.js +3 -3
  152. package/esm2015/lib/widget/shared/index.js +4 -4
  153. package/esm2015/lib/widget/shared/widget.interfaces.js +2 -1
  154. package/esm2015/lib/widget/shared/widget.js +4 -4
  155. package/esm2015/lib/widget/shared/widget.service.js +20 -21
  156. package/esm2015/lib/widget/widget-outlet/widget-outlet.component.js +121 -122
  157. package/esm2015/lib/widget/widget-outlet/widget-outlet.module.js +34 -33
  158. package/esm2015/lib/widget/widget.module.js +34 -33
  159. package/esm2015/lib/workspace/index.js +4 -4
  160. package/esm2015/lib/workspace/shared/index.js +4 -4
  161. package/esm2015/lib/workspace/shared/store.js +40 -40
  162. package/esm2015/lib/workspace/shared/workspace.interfaces.js +2 -1
  163. package/esm2015/lib/workspace/shared/workspace.js +117 -117
  164. package/esm2015/lib/workspace/workspace-selector/workspace-selector.component.js +54 -55
  165. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +34 -33
  166. package/esm2015/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.js +93 -94
  167. package/esm2015/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.js +34 -33
  168. package/esm2015/lib/workspace/workspace.module.js +29 -28
  169. package/esm2015/public_api.js +72 -70
  170. package/fesm2015/igo2-common.js +9015 -8846
  171. package/fesm2015/igo2-common.js.map +1 -1
  172. package/igo2-common.d.ts +5 -5
  173. package/lib/action/action.module.d.ts +8 -7
  174. package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
  175. package/lib/action/actionbar/actionbar.component.d.ts +146 -146
  176. package/lib/action/actionbar/actionbar.module.d.ts +20 -19
  177. package/lib/action/index.d.ts +2 -2
  178. package/lib/action/shared/action.enums.d.ts +5 -5
  179. package/lib/action/shared/action.interfaces.d.ts +17 -17
  180. package/lib/action/shared/index.d.ts +3 -3
  181. package/lib/action/shared/store.d.ts +8 -8
  182. package/lib/backdrop/backdrop.component.d.ts +9 -9
  183. package/lib/backdrop/backdrop.module.d.ts +10 -9
  184. package/lib/backdrop/index.d.ts +1 -1
  185. package/lib/badge-icon/badge-icon.directive.d.ts +32 -27
  186. package/lib/badge-icon/badge-icon.module.d.ts +11 -10
  187. package/lib/badge-icon/index.d.ts +1 -1
  188. package/lib/clickout/clickout.directive.d.ts +10 -10
  189. package/lib/clickout/clickout.module.d.ts +9 -8
  190. package/lib/clickout/index.d.ts +1 -1
  191. package/lib/clone/clone.module.d.ts +9 -8
  192. package/lib/clone/clone.pipe.d.ts +7 -7
  193. package/lib/clone/index.d.ts +1 -1
  194. package/lib/collapsible/collapse.directive.d.ts +19 -19
  195. package/lib/collapsible/collapsible.component.d.ts +13 -13
  196. package/lib/collapsible/collapsible.module.d.ts +12 -11
  197. package/lib/collapsible/index.d.ts +2 -2
  198. package/lib/confirm-dialog/confirm-dialog.component.d.ts +9 -9
  199. package/lib/confirm-dialog/confirm-dialog.module.d.ts +12 -11
  200. package/lib/confirm-dialog/confirm-dialog.service.d.ts +10 -10
  201. package/lib/confirm-dialog/index.d.ts +2 -2
  202. package/lib/context-menu/context-menu.directive.d.ts +27 -21
  203. package/lib/context-menu/context-menu.module.d.ts +9 -8
  204. package/lib/context-menu/index.d.ts +1 -1
  205. package/lib/custom-html/custom-html.component.d.ts +9 -9
  206. package/lib/custom-html/custom-html.module.d.ts +16 -15
  207. package/lib/custom-html/custom-html.pipe.d.ts +10 -10
  208. package/lib/custom-html/index.d.ts +2 -2
  209. package/lib/drag-drop/drag-drop.directive.d.ts +14 -14
  210. package/lib/drag-drop/drag-drop.module.d.ts +9 -8
  211. package/lib/drag-drop/index.d.ts +1 -1
  212. package/lib/dynamic-component/dynamic-component.module.d.ts +8 -7
  213. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -70
  214. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +11 -10
  215. package/lib/dynamic-component/index.d.ts +2 -2
  216. package/lib/dynamic-component/shared/dynamic-component.d.ts +88 -88
  217. package/lib/dynamic-component/shared/dynamic-component.interfaces.d.ts +3 -3
  218. package/lib/dynamic-component/shared/dynamic-component.service.d.ts +18 -18
  219. package/lib/dynamic-component/shared/index.d.ts +3 -3
  220. package/lib/entity/entity-selector/entity-selector.component.d.ts +92 -92
  221. package/lib/entity/entity-selector/entity-selector.module.d.ts +13 -12
  222. package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
  223. package/lib/entity/entity-table/entity-table.component.d.ts +275 -275
  224. package/lib/entity/entity-table/entity-table.module.d.ts +23 -22
  225. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +49 -49
  226. package/lib/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +8 -8
  227. package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +11 -10
  228. package/lib/entity/entity.module.d.ts +10 -9
  229. package/lib/entity/index.d.ts +5 -5
  230. package/lib/entity/shared/entity.enums.d.ts +22 -22
  231. package/lib/entity/shared/entity.interfaces.d.ts +88 -88
  232. package/lib/entity/shared/entity.utils.d.ts +49 -49
  233. package/lib/entity/shared/index.d.ts +9 -9
  234. package/lib/entity/shared/state.d.ts +103 -103
  235. package/lib/entity/shared/store.d.ts +176 -176
  236. package/lib/entity/shared/strategies/filter-custom-function.d.ts +51 -51
  237. package/lib/entity/shared/strategies/filter-selection.d.ts +48 -48
  238. package/lib/entity/shared/strategies/index.d.ts +3 -3
  239. package/lib/entity/shared/strategies/strategy.d.ts +56 -56
  240. package/lib/entity/shared/transaction.d.ts +168 -168
  241. package/lib/entity/shared/view.d.ts +193 -193
  242. package/lib/entity/shared/watcher.d.ts +72 -72
  243. package/lib/flexible/flexible.component.d.ts +41 -41
  244. package/lib/flexible/flexible.module.d.ts +9 -8
  245. package/lib/flexible/flexible.type.d.ts +2 -2
  246. package/lib/flexible/index.d.ts +2 -2
  247. package/lib/form/form/form.component.d.ts +53 -53
  248. package/lib/form/form/form.module.d.ts +12 -11
  249. package/lib/form/form-field/form-field-select.component.d.ts +48 -48
  250. package/lib/form/form-field/form-field-text.component.d.ts +41 -41
  251. package/lib/form/form-field/form-field-textarea.component.d.ts +41 -41
  252. package/lib/form/form-field/form-field.component.d.ts +34 -34
  253. package/lib/form/form-field/form-field.module.d.ts +21 -20
  254. package/lib/form/form-field/index.d.ts +4 -4
  255. package/lib/form/form-group/form-group.component.d.ts +49 -49
  256. package/lib/form/form-group/form-group.module.d.ts +14 -13
  257. package/lib/form/form.module.d.ts +13 -12
  258. package/lib/form/index.d.ts +4 -4
  259. package/lib/form/shared/form-field-component.d.ts +1 -1
  260. package/lib/form/shared/form-field.service.d.ts +19 -19
  261. package/lib/form/shared/form.interfaces.d.ts +57 -57
  262. package/lib/form/shared/form.service.d.ts +15 -15
  263. package/lib/form/shared/form.utils.d.ts +11 -11
  264. package/lib/form/shared/index.d.ts +5 -5
  265. package/lib/home-button/home-button.component.d.ts +9 -0
  266. package/lib/home-button/home-button.module.d.ts +15 -0
  267. package/lib/home-button/index.d.ts +1 -0
  268. package/lib/image/image.module.d.ts +9 -8
  269. package/lib/image/index.d.ts +1 -1
  270. package/lib/image/secure-image.pipe.d.ts +11 -11
  271. package/lib/interactive-tour/index.d.ts +4 -4
  272. package/lib/interactive-tour/interactive-tour.component.d.ts +30 -30
  273. package/lib/interactive-tour/interactive-tour.interface.d.ts +32 -32
  274. package/lib/interactive-tour/interactive-tour.loader.d.ts +18 -18
  275. package/lib/interactive-tour/interactive-tour.module.d.ts +12 -11
  276. package/lib/interactive-tour/interactive-tour.service.d.ts +29 -29
  277. package/lib/json-dialog/index.d.ts +2 -2
  278. package/lib/json-dialog/json-dialog.component.d.ts +13 -13
  279. package/lib/json-dialog/json-dialog.module.d.ts +13 -12
  280. package/lib/json-dialog/json-dialog.service.d.ts +10 -10
  281. package/lib/keyvalue/index.d.ts +1 -1
  282. package/lib/keyvalue/keyvalue.module.d.ts +9 -8
  283. package/lib/keyvalue/keyvalue.pipe.d.ts +7 -7
  284. package/lib/list/index.d.ts +2 -2
  285. package/lib/list/list-item.directive.d.ts +43 -43
  286. package/lib/list/list.component.d.ts +51 -51
  287. package/lib/list/list.module.d.ts +14 -13
  288. package/lib/panel/index.d.ts +1 -1
  289. package/lib/panel/panel.component.d.ts +11 -11
  290. package/lib/panel/panel.module.d.ts +8 -7
  291. package/lib/sidenav/index.d.ts +1 -1
  292. package/lib/sidenav/sidenav-shim.directive.d.ts +20 -20
  293. package/lib/sidenav/sidenav.module.d.ts +9 -8
  294. package/lib/spinner/index.d.ts +2 -2
  295. package/lib/spinner/spinner-activity.directive.d.ts +32 -32
  296. package/lib/spinner/spinner.component.d.ts +12 -12
  297. package/lib/spinner/spinner.module.d.ts +10 -9
  298. package/lib/stop-propagation/index.d.ts +2 -2
  299. package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +6 -6
  300. package/lib/stop-propagation/stop-propagation.directive.d.ts +6 -6
  301. package/lib/stop-propagation/stop-propagation.module.d.ts +10 -9
  302. package/lib/table/index.d.ts +5 -5
  303. package/lib/table/table-action-color.enum.d.ts +5 -5
  304. package/lib/table/table-database.d.ts +10 -10
  305. package/lib/table/table-datasource.d.ts +17 -17
  306. package/lib/table/table-model.interface.d.ts +28 -28
  307. package/lib/table/table.component.d.ts +40 -40
  308. package/lib/table/table.module.d.ts +20 -19
  309. package/lib/tool/index.d.ts +2 -2
  310. package/lib/tool/shared/index.d.ts +5 -5
  311. package/lib/tool/shared/tool-component.d.ts +2 -2
  312. package/lib/tool/shared/tool.interface.d.ts +18 -18
  313. package/lib/tool/shared/tool.service.d.ts +30 -30
  314. package/lib/tool/shared/toolbox.d.ts +95 -95
  315. package/lib/tool/shared/toolbox.enums.d.ts +5 -5
  316. package/lib/tool/tool.module.d.ts +10 -9
  317. package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
  318. package/lib/tool/toolbox/toolbox.component.d.ts +127 -127
  319. package/lib/tool/toolbox/toolbox.module.d.ts +13 -12
  320. package/lib/widget/index.d.ts +2 -2
  321. package/lib/widget/shared/index.d.ts +3 -3
  322. package/lib/widget/shared/widget.d.ts +4 -4
  323. package/lib/widget/shared/widget.interfaces.d.ts +12 -12
  324. package/lib/widget/shared/widget.service.d.ts +10 -10
  325. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +71 -71
  326. package/lib/widget/widget-outlet/widget-outlet.module.d.ts +12 -11
  327. package/lib/widget/widget.module.d.ts +8 -7
  328. package/lib/workspace/index.d.ts +3 -3
  329. package/lib/workspace/shared/index.d.ts +3 -3
  330. package/lib/workspace/shared/store.d.ts +20 -20
  331. package/lib/workspace/shared/workspace.d.ts +108 -108
  332. package/lib/workspace/shared/workspace.interfaces.d.ts +11 -11
  333. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +35 -35
  334. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +12 -11
  335. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -57
  336. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +12 -11
  337. package/lib/workspace/workspace.module.d.ts +9 -8
  338. package/package.json +8 -7
  339. package/public_api.d.ts +68 -66
  340. package/style/common.theming.scss +12 -236
  341. package/style/partial/action.scss +18 -18
  342. package/style/partial/common.variables.scss +8 -8
  343. package/bundles/igo2-common.umd.min.js +0 -17
  344. package/bundles/igo2-common.umd.min.js.map +0 -1
@@ -1,174 +1,174 @@
1
- import { Observable } from 'rxjs';
2
- /**
3
- * This class is used in the DynamicComponentOutlet component. It holds
4
- * a reference to a component factory and can render that component
5
- * in a target element on demand. It's also possible to set inputs
6
- * and to subscribe to outputs.
7
- */
8
- export class DynamicComponent {
9
- constructor(componentFactory) {
10
- this.componentFactory = componentFactory;
11
- /**
12
- * Subscriptions to the component's outputs. Those need
13
- * to be unsubscribed when the component is destroyed.
14
- */
15
- this.subscriptions = [];
16
- /**
17
- * Component inputs
18
- */
19
- this.inputs = {};
20
- /**
21
- * Subscriptions to the component's async inputs
22
- */
23
- this.inputs$$ = {};
24
- /**
25
- * Subscribers to the component's outputs
26
- */
27
- this.subscribers = {};
28
- }
29
- /**
30
- * Render the component to a target element.
31
- * Set it's inputs and subscribe to it's outputs.
32
- * @param target Target element
33
- */
34
- setTarget(target) {
35
- this.target = target;
36
- this.componentRef = target.createComponent(this.componentFactory);
37
- this.updateInputs(this.inputs);
38
- this.updateSubscribers(this.subscribers);
39
- }
40
- /**
41
- * Destroy this component. That means, removing from it's target
42
- * element and unsubscribing to it's outputs.
43
- */
44
- destroy() {
45
- if (this.target !== undefined) {
46
- this.target.clear();
47
- }
48
- if (this.componentRef !== undefined) {
49
- this.componentRef.destroy();
50
- this.componentRef = undefined;
51
- }
52
- this.unobserveAllInputs();
53
- this.unsubscribeAll();
54
- }
55
- /**
56
- * Update the component inputs. This is an update so any
57
- * key not defined won't be overwritten.
58
- */
59
- updateInputs(inputs) {
60
- this.inputs = inputs;
61
- if (this.componentRef === undefined) {
62
- return;
63
- }
64
- const instance = this.componentRef.instance;
65
- const allowedInputs = this.componentFactory.inputs;
66
- allowedInputs.forEach((value) => {
67
- const key = value.propName;
68
- this.unobserveInput(key);
69
- const inputValue = inputs[key];
70
- if (inputs.hasOwnProperty(key)) {
71
- if (inputValue instanceof Observable) {
72
- this.observeInput(key, inputValue);
73
- }
74
- else {
75
- this.setInputValue(instance, key, inputValue);
76
- }
77
- }
78
- });
79
- if (typeof instance.onUpdateInputs === 'function') {
80
- instance.onUpdateInputs();
81
- }
82
- }
83
- /**
84
- * Set an instance's input value
85
- * @param instance Component instance
86
- * @param key Input key
87
- * @param value Input value
88
- */
89
- setInputValue(instance, key, value) {
90
- const currentValue = instance[key];
91
- if (value === currentValue) {
92
- return;
93
- }
94
- const prototype = Object.getPrototypeOf(instance);
95
- const descriptor = Object.getOwnPropertyDescriptor(prototype, key);
96
- if (descriptor !== undefined && descriptor.set !== undefined) {
97
- descriptor.set.call(instance, value);
98
- }
99
- else {
100
- instance[key] = value;
101
- }
102
- }
103
- /**
104
- * Update the component subscribers. This is an update so any
105
- * key not defined won't be overwritten.
106
- */
107
- updateSubscribers(subscribers) {
108
- this.subscribers = subscribers;
109
- if (this.componentRef === undefined) {
110
- return;
111
- }
112
- const instance = this.componentRef.instance;
113
- const allowedSubscribers = this.componentFactory.outputs;
114
- allowedSubscribers.forEach((value) => {
115
- const key = value.propName;
116
- if (subscribers.hasOwnProperty(key)) {
117
- const emitter = instance[key];
118
- const subscriber = subscribers[key];
119
- if (Array.isArray(subscriber)) {
120
- subscriber.forEach((_subscriber) => {
121
- this.subscriptions.push(emitter.subscribe(_subscriber));
122
- });
123
- }
124
- else {
125
- this.subscriptions.push(emitter.subscribe(subscriber));
126
- }
127
- }
128
- });
129
- }
130
- /**
131
- * Subscribe to an observable input and update the component's input value
132
- * accordingly
133
- * @param key Input key
134
- * @param observable Observable
135
- */
136
- observeInput(key, observable) {
137
- this.inputs$$[key] = observable.subscribe((value) => {
138
- const instance = this.componentRef.instance;
139
- this.setInputValue(instance, key, value);
140
- if (typeof instance.onUpdateInputs === 'function') {
141
- instance.onUpdateInputs();
142
- }
143
- });
144
- }
145
- /**
146
- * Unsubscribe to an observable input
147
- * @param key Input key
148
- */
149
- unobserveInput(key) {
150
- if (this.inputs$$[key] !== undefined) {
151
- this.inputs$$[key].unsubscribe();
152
- this.inputs$$[key] = undefined;
153
- }
154
- }
155
- /**
156
- * Unsubscribe to all outputs.
157
- */
158
- unobserveAllInputs() {
159
- Object.values(this.inputs$$).forEach((s) => {
160
- if (s !== undefined) {
161
- s.unsubscribe();
162
- }
163
- });
164
- this.inputs$$ = {};
165
- }
166
- /**
167
- * Unsubscribe to all outputs.
168
- */
169
- unsubscribeAll() {
170
- this.subscriptions.forEach((s) => s.unsubscribe());
171
- this.subscriptions = [];
172
- }
173
- }
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL3Nydi9hcHBzL2lnbzItbGliL3BhY2thZ2VzL2NvbW1vbi9zcmMvIiwic291cmNlcyI6WyJsaWIvZHluYW1pYy1jb21wb25lbnQvc2hhcmVkL2R5bmFtaWMtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRWhEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQWlDM0IsWUFBb0IsZ0JBQXFDO1FBQXJDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUExQnpEOzs7V0FHRztRQUNLLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQU8zQzs7V0FFRztRQUNLLFdBQU0sR0FBeUIsRUFBRSxDQUFDO1FBRTFDOztXQUVHO1FBQ0ssYUFBUSxHQUFrQyxFQUFFLENBQUM7UUFFckQ7O1dBRUc7UUFDSyxnQkFBVyxHQUEwQyxFQUFFLENBQUM7SUFFSixDQUFDO0lBRTdEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsTUFBd0I7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckI7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQ25DLElBQUks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O0lBQ0ssa0JBQWtCO1FBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQTJCLEVBQUUsRUFBRTtZQUNuRSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7Z0JBQ25CLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNqQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYztRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50UmVmLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgaW4gdGhlIER5bmFtaWNDb21wb25lbnRPdXRsZXQgY29tcG9uZW50LiBJdCBob2xkc1xuICogYSByZWZlcmVuY2UgdG8gYSBjb21wb25lbnQgZmFjdG9yeSBhbmQgY2FuIHJlbmRlciB0aGF0IGNvbXBvbmVudFxuICogaW4gYSB0YXJnZXQgZWxlbWVudCBvbiBkZW1hbmQuIEl0J3MgYWxzbyBwb3NzaWJsZSB0byBzZXQgaW5wdXRzXG4gKiBhbmQgdG8gc3Vic2NyaWJlIHRvIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEeW5hbWljQ29tcG9uZW50PEM+IHtcblxuICAvKipcbiAgICogQ29tcG9uZW50IHJlZmVyZW5jZVxuICAgKi9cbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxDPjtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9ucyB0byB0aGUgY29tcG9uZW50J3Mgb3V0cHV0cy4gVGhvc2UgbmVlZFxuICAgKiB0byBiZSB1bnN1YnNjcmliZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAvKipcbiAgICogQ29tcG9uZW50IHRhcmdldCBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIHRhcmdldDogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKipcbiAgICogQ29tcG9uZW50IGlucHV0c1xuICAgKi9cbiAgcHJpdmF0ZSBpbnB1dHM6IHtba2V5OiBzdHJpbmddOiBhbnl9ID0ge307XG5cbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbnMgdG8gdGhlIGNvbXBvbmVudCdzIGFzeW5jIGlucHV0c1xuICAgKi9cbiAgcHJpdmF0ZSBpbnB1dHMkJDoge1trZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvbn0gPSB7fTtcblxuICAvKipcbiAgICogU3Vic2NyaWJlcnMgdG8gdGhlIGNvbXBvbmVudCdzIG91dHB1dHNcbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlcnM6IHtba2V5OiBzdHJpbmddOiAoZXZlbnQ6IGFueSkgPT4gdm9pZH0gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8Qz4pIHt9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgY29tcG9uZW50IHRvIGEgdGFyZ2V0IGVsZW1lbnQuXG4gICAqIFNldCBpdCdzIGlucHV0cyBhbmQgc3Vic2NyaWJlIHRvIGl0J3Mgb3V0cHV0cy5cbiAgICogQHBhcmFtIHRhcmdldCBUYXJnZXQgZWxlbWVudFxuICAgKi9cbiAgc2V0VGFyZ2V0KHRhcmdldDogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGFyZ2V0LmNyZWF0ZUNvbXBvbmVudCh0aGlzLmNvbXBvbmVudEZhY3RvcnkpO1xuICAgIHRoaXMudXBkYXRlSW5wdXRzKHRoaXMuaW5wdXRzKTtcbiAgICB0aGlzLnVwZGF0ZVN1YnNjcmliZXJzKHRoaXMuc3Vic2NyaWJlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3kgdGhpcyBjb21wb25lbnQuIFRoYXQgbWVhbnMsIHJlbW92aW5nIGZyb20gaXQncyB0YXJnZXRcbiAgICogZWxlbWVudCBhbmQgdW5zdWJzY3JpYmluZyB0byBpdCdzIG91dHB1dHMuXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnRhcmdldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnRhcmdldC5jbGVhcigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMudW5vYnNlcnZlQWxsSW5wdXRzKCk7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgY29tcG9uZW50IGlucHV0cy4gVGhpcyBpcyBhbiB1cGRhdGUgc28gYW55XG4gICAqIGtleSBub3QgZGVmaW5lZCB3b24ndCBiZSBvdmVyd3JpdHRlbi5cbiAgICovXG4gIHVwZGF0ZUlucHV0cyhpbnB1dHM6IHtba2V5OiBzdHJpbmddOiBhbnl9KSB7XG4gICAgdGhpcy5pbnB1dHMgPSBpbnB1dHM7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIGNvbnN0IGFsbG93ZWRJbnB1dHMgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnkuaW5wdXRzO1xuICAgIGFsbG93ZWRJbnB1dHMuZm9yRWFjaCgodmFsdWU6IHtwcm9wTmFtZTogc3RyaW5nOyB0ZW1wbGF0ZU5hbWU6IHN0cmluZzsgfSkgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gdmFsdWUucHJvcE5hbWU7XG5cbiAgICAgIHRoaXMudW5vYnNlcnZlSW5wdXQoa2V5KTtcblxuICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IGlucHV0c1trZXldO1xuICAgICAgaWYgKGlucHV0cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmIChpbnB1dFZhbHVlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgICAgIHRoaXMub2JzZXJ2ZUlucHV0KGtleSwgaW5wdXRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKGluc3RhbmNlLCBrZXksIGlucHV0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodHlwZW9mIChpbnN0YW5jZSBhcyBhbnkpLm9uVXBkYXRlSW5wdXRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAoaW5zdGFuY2UgYXMgYW55KS5vblVwZGF0ZUlucHV0cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW4gaW5zdGFuY2UncyBpbnB1dCB2YWx1ZVxuICAgKiBAcGFyYW0gaW5zdGFuY2UgQ29tcG9uZW50IGluc3RhbmNlXG4gICAqIEBwYXJhbSBrZXkgSW5wdXQga2V5XG4gICAqIEBwYXJhbSB2YWx1ZSBJbnB1dCB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRJbnB1dFZhbHVlKGluc3RhbmNlOiBDLCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGluc3RhbmNlW2tleV07XG4gICAgaWYgKHZhbHVlID09PSBjdXJyZW50VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaW5zdGFuY2UpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvdHlwZSwga2V5KTtcbiAgICBpZiAoZGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkICYmIGRlc2NyaXB0b3Iuc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlc2NyaXB0b3Iuc2V0LmNhbGwoaW5zdGFuY2UsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5zdGFuY2Vba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGNvbXBvbmVudCBzdWJzY3JpYmVycy4gVGhpcyBpcyBhbiB1cGRhdGUgc28gYW55XG4gICAqIGtleSBub3QgZGVmaW5lZCB3b24ndCBiZSBvdmVyd3JpdHRlbi5cbiAgICovXG4gIHVwZGF0ZVN1YnNjcmliZXJzKHN1YnNjcmliZXJzOiB7W2tleTogc3RyaW5nXTogKGV2ZW50OiBhbnkpID0+IHZvaWR9KSB7XG4gICAgdGhpcy5zdWJzY3JpYmVycyA9IHN1YnNjcmliZXJzO1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICBjb25zdCBhbGxvd2VkU3Vic2NyaWJlcnMgPSB0aGlzLmNvbXBvbmVudEZhY3Rvcnkub3V0cHV0cztcbiAgICBhbGxvd2VkU3Vic2NyaWJlcnMuZm9yRWFjaCgodmFsdWU6IHtwcm9wTmFtZTogc3RyaW5nOyB0ZW1wbGF0ZU5hbWU6IHN0cmluZzsgfSkgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gdmFsdWUucHJvcE5hbWU7XG4gICAgICBpZiAoc3Vic2NyaWJlcnMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb25zdCBlbWl0dGVyID0gaW5zdGFuY2Vba2V5XTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlciA9IHN1YnNjcmliZXJzW2tleV07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHN1YnNjcmliZXIpKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5mb3JFYWNoKChfc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZW1pdHRlci5zdWJzY3JpYmUoX3N1YnNjcmliZXIpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChlbWl0dGVyLnN1YnNjcmliZShzdWJzY3JpYmVyKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gYW4gb2JzZXJ2YWJsZSBpbnB1dCBhbmQgdXBkYXRlIHRoZSBjb21wb25lbnQncyBpbnB1dCB2YWx1ZVxuICAgKiBhY2NvcmRpbmdseVxuICAgKiBAcGFyYW0ga2V5IElucHV0IGtleVxuICAgKiBAcGFyYW0gb2JzZXJ2YWJsZSBPYnNlcnZhYmxlXG4gICAqL1xuICBwcml2YXRlIG9ic2VydmVJbnB1dChrZXk6IHN0cmluZywgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgdGhpcy5pbnB1dHMkJFtrZXldID0gb2JzZXJ2YWJsZS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICB0aGlzLnNldElucHV0VmFsdWUoaW5zdGFuY2UsIGtleSwgdmFsdWUpO1xuXG4gICAgICBpZiAodHlwZW9mIChpbnN0YW5jZSBhcyBhbnkpLm9uVXBkYXRlSW5wdXRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIChpbnN0YW5jZSBhcyBhbnkpLm9uVXBkYXRlSW5wdXRzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gYW4gb2JzZXJ2YWJsZSBpbnB1dFxuICAgKiBAcGFyYW0ga2V5IElucHV0IGtleVxuICAgKi9cbiAgcHJpdmF0ZSB1bm9ic2VydmVJbnB1dChrZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlucHV0cyQkW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pbnB1dHMkJFtrZXldLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmlucHV0cyQkW2tleV0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVuc3Vic2NyaWJlIHRvIGFsbCBvdXRwdXRzLlxuICAgKi9cbiAgcHJpdmF0ZSB1bm9ic2VydmVBbGxJbnB1dHMoKSB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmlucHV0cyQkKS5mb3JFYWNoKChzOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQpID0+IHtcbiAgICAgIGlmIChzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcy51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuaW5wdXRzJCQgPSB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSB0byBhbGwgb3V0cHV0cy5cbiAgICovXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHM6IFN1YnNjcmlwdGlvbikgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgfVxuXG59XG4iXX0=
1
+ import { Observable } from 'rxjs';
2
+ /**
3
+ * This class is used in the DynamicComponentOutlet component. It holds
4
+ * a reference to a component factory and can render that component
5
+ * in a target element on demand. It's also possible to set inputs
6
+ * and to subscribe to outputs.
7
+ */
8
+ export class DynamicComponent {
9
+ constructor(componentFactory) {
10
+ this.componentFactory = componentFactory;
11
+ /**
12
+ * Subscriptions to the component's outputs. Those need
13
+ * to be unsubscribed when the component is destroyed.
14
+ */
15
+ this.subscriptions = [];
16
+ /**
17
+ * Component inputs
18
+ */
19
+ this.inputs = {};
20
+ /**
21
+ * Subscriptions to the component's async inputs
22
+ */
23
+ this.inputs$$ = {};
24
+ /**
25
+ * Subscribers to the component's outputs
26
+ */
27
+ this.subscribers = {};
28
+ }
29
+ /**
30
+ * Render the component to a target element.
31
+ * Set it's inputs and subscribe to it's outputs.
32
+ * @param target Target element
33
+ */
34
+ setTarget(target) {
35
+ this.target = target;
36
+ this.componentRef = target.createComponent(this.componentFactory);
37
+ this.updateInputs(this.inputs);
38
+ this.updateSubscribers(this.subscribers);
39
+ }
40
+ /**
41
+ * Destroy this component. That means, removing from it's target
42
+ * element and unsubscribing to it's outputs.
43
+ */
44
+ destroy() {
45
+ if (this.target !== undefined) {
46
+ this.target.clear();
47
+ }
48
+ if (this.componentRef !== undefined) {
49
+ this.componentRef.destroy();
50
+ this.componentRef = undefined;
51
+ }
52
+ this.unobserveAllInputs();
53
+ this.unsubscribeAll();
54
+ }
55
+ /**
56
+ * Update the component inputs. This is an update so any
57
+ * key not defined won't be overwritten.
58
+ */
59
+ updateInputs(inputs) {
60
+ this.inputs = inputs;
61
+ if (this.componentRef === undefined) {
62
+ return;
63
+ }
64
+ const instance = this.componentRef.instance;
65
+ const allowedInputs = this.componentFactory.inputs;
66
+ allowedInputs.forEach((value) => {
67
+ const key = value.propName;
68
+ this.unobserveInput(key);
69
+ const inputValue = inputs[key];
70
+ if (inputs.hasOwnProperty(key)) {
71
+ if (inputValue instanceof Observable) {
72
+ this.observeInput(key, inputValue);
73
+ }
74
+ else {
75
+ this.setInputValue(instance, key, inputValue);
76
+ }
77
+ }
78
+ });
79
+ if (typeof instance.onUpdateInputs === 'function') {
80
+ instance.onUpdateInputs();
81
+ }
82
+ }
83
+ /**
84
+ * Set an instance's input value
85
+ * @param instance Component instance
86
+ * @param key Input key
87
+ * @param value Input value
88
+ */
89
+ setInputValue(instance, key, value) {
90
+ const currentValue = instance[key];
91
+ if (value === currentValue) {
92
+ return;
93
+ }
94
+ const prototype = Object.getPrototypeOf(instance);
95
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, key);
96
+ if (descriptor !== undefined && descriptor.set !== undefined) {
97
+ descriptor.set.call(instance, value);
98
+ }
99
+ else {
100
+ instance[key] = value;
101
+ }
102
+ }
103
+ /**
104
+ * Update the component subscribers. This is an update so any
105
+ * key not defined won't be overwritten.
106
+ */
107
+ updateSubscribers(subscribers) {
108
+ this.subscribers = subscribers;
109
+ if (this.componentRef === undefined) {
110
+ return;
111
+ }
112
+ const instance = this.componentRef.instance;
113
+ const allowedSubscribers = this.componentFactory.outputs;
114
+ allowedSubscribers.forEach((value) => {
115
+ const key = value.propName;
116
+ if (subscribers.hasOwnProperty(key)) {
117
+ const emitter = instance[key];
118
+ const subscriber = subscribers[key];
119
+ if (Array.isArray(subscriber)) {
120
+ subscriber.forEach((_subscriber) => {
121
+ this.subscriptions.push(emitter.subscribe(_subscriber));
122
+ });
123
+ }
124
+ else {
125
+ this.subscriptions.push(emitter.subscribe(subscriber));
126
+ }
127
+ }
128
+ });
129
+ }
130
+ /**
131
+ * Subscribe to an observable input and update the component's input value
132
+ * accordingly
133
+ * @param key Input key
134
+ * @param observable Observable
135
+ */
136
+ observeInput(key, observable) {
137
+ this.inputs$$[key] = observable.subscribe((value) => {
138
+ const instance = this.componentRef.instance;
139
+ this.setInputValue(instance, key, value);
140
+ if (typeof instance.onUpdateInputs === 'function') {
141
+ instance.onUpdateInputs();
142
+ }
143
+ });
144
+ }
145
+ /**
146
+ * Unsubscribe to an observable input
147
+ * @param key Input key
148
+ */
149
+ unobserveInput(key) {
150
+ if (this.inputs$$[key] !== undefined) {
151
+ this.inputs$$[key].unsubscribe();
152
+ this.inputs$$[key] = undefined;
153
+ }
154
+ }
155
+ /**
156
+ * Unsubscribe to all outputs.
157
+ */
158
+ unobserveAllInputs() {
159
+ Object.values(this.inputs$$).forEach((s) => {
160
+ if (s !== undefined) {
161
+ s.unsubscribe();
162
+ }
163
+ });
164
+ this.inputs$$ = {};
165
+ }
166
+ /**
167
+ * Unsubscribe to all outputs.
168
+ */
169
+ unsubscribeAll() {
170
+ this.subscriptions.forEach((s) => s.unsubscribe());
171
+ this.subscriptions = [];
172
+ }
173
+ }
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9keW5hbWljLWNvbXBvbmVudC9zaGFyZWQvZHluYW1pYy1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFaEQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBaUMzQixZQUFvQixnQkFBcUM7UUFBckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtRQTFCekQ7OztXQUdHO1FBQ0ssa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBTzNDOztXQUVHO1FBQ0ssV0FBTSxHQUF5QixFQUFFLENBQUM7UUFFMUM7O1dBRUc7UUFDSyxhQUFRLEdBQWtDLEVBQUUsQ0FBQztRQUVyRDs7V0FFRztRQUNLLGdCQUFXLEdBQTBDLEVBQUUsQ0FBQztJQUVKLENBQUM7SUFFN0Q7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxNQUF3QjtRQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNyQjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxD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SUFDSyxrQkFBa0I7UUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBMkIsRUFBRSxFQUFFO1lBQ25FLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDbkIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnksXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCBpbiB0aGUgRHluYW1pY0NvbXBvbmVudE91dGxldCBjb21wb25lbnQuIEl0IGhvbGRzXHJcbiAqIGEgcmVmZXJlbmNlIHRvIGEgY29tcG9uZW50IGZhY3RvcnkgYW5kIGNhbiByZW5kZXIgdGhhdCBjb21wb25lbnRcclxuICogaW4gYSB0YXJnZXQgZWxlbWVudCBvbiBkZW1hbmQuIEl0J3MgYWxzbyBwb3NzaWJsZSB0byBzZXQgaW5wdXRzXHJcbiAqIGFuZCB0byBzdWJzY3JpYmUgdG8gb3V0cHV0cy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ29tcG9uZW50PEM+IHtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcG9uZW50IHJlZmVyZW5jZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8Qz47XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbnMgdG8gdGhlIGNvbXBvbmVudCdzIG91dHB1dHMuIFRob3NlIG5lZWRcclxuICAgKiB0byBiZSB1bnN1YnNjcmliZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cclxuICAgKi9cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBvbmVudCB0YXJnZXQgZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAvKipcclxuICAgKiBDb21wb25lbnQgaW5wdXRzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbnB1dHM6IHtba2V5OiBzdHJpbmddOiBhbnl9ID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbnMgdG8gdGhlIGNvbXBvbmVudCdzIGFzeW5jIGlucHV0c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaW5wdXRzJCQ6IHtba2V5OiBzdHJpbmddOiBTdWJzY3JpcHRpb259ID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmliZXJzIHRvIHRoZSBjb21wb25lbnQncyBvdXRwdXRzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVyczoge1trZXk6IHN0cmluZ106IChldmVudDogYW55KSA9PiB2b2lkfSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8Qz4pIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbmRlciB0aGUgY29tcG9uZW50IHRvIGEgdGFyZ2V0IGVsZW1lbnQuXHJcbiAgICogU2V0IGl0J3MgaW5wdXRzIGFuZCBzdWJzY3JpYmUgdG8gaXQncyBvdXRwdXRzLlxyXG4gICAqIEBwYXJhbSB0YXJnZXQgVGFyZ2V0IGVsZW1lbnRcclxuICAgKi9cclxuICBzZXRUYXJnZXQodGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGFyZ2V0LmNyZWF0ZUNvbXBvbmVudCh0aGlzLmNvbXBvbmVudEZhY3RvcnkpO1xyXG4gICAgdGhpcy51cGRhdGVJbnB1dHModGhpcy5pbnB1dHMpO1xyXG4gICAgdGhpcy51cGRhdGVTdWJzY3JpYmVycyh0aGlzLnN1YnNjcmliZXJzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc3Ryb3kgdGhpcyBjb21wb25lbnQuIFRoYXQgbWVhbnMsIHJlbW92aW5nIGZyb20gaXQncyB0YXJnZXRcclxuICAgKiBlbGVtZW50IGFuZCB1bnN1YnNjcmliaW5nIHRvIGl0J3Mgb3V0cHV0cy5cclxuICAgKi9cclxuICBkZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMudGFyZ2V0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy50YXJnZXQuY2xlYXIoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVub2JzZXJ2ZUFsbElucHV0cygpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBjb21wb25lbnQgaW5wdXRzLiBUaGlzIGlzIGFuIHVwZGF0ZSBzbyBhbnlcclxuICAgKiBrZXkgbm90IGRlZmluZWQgd29uJ3QgYmUgb3ZlcndyaXR0ZW4uXHJcbiAgICovXHJcbiAgdXBkYXRlSW5wdXRzKGlucHV0czoge1trZXk6IHN0cmluZ106IGFueX0pIHtcclxuICAgIHRoaXMuaW5wdXRzID0gaW5wdXRzO1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBjb25zdCBhbGxvd2VkSW5wdXRzID0gdGhpcy5jb21wb25lbnRGYWN0b3J5LmlucHV0cztcclxuICAgIGFsbG93ZWRJbnB1dHMuZm9yRWFjaCgodmFsdWU6IHtwcm9wTmFtZTogc3RyaW5nOyB0ZW1wbGF0ZU5hbWU6IHN0cmluZzsgfSkgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSB2YWx1ZS5wcm9wTmFtZTtcclxuXHJcbiAgICAgIHRoaXMudW5vYnNlcnZlSW5wdXQoa2V5KTtcclxuXHJcbiAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBpbnB1dHNba2V5XTtcclxuICAgICAgaWYgKGlucHV0cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XHJcbiAgICAgICAgICB0aGlzLm9ic2VydmVJbnB1dChrZXksIGlucHV0VmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldElucHV0VmFsdWUoaW5zdGFuY2UsIGtleSwgaW5wdXRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodHlwZW9mIChpbnN0YW5jZSBhcyBhbnkpLm9uVXBkYXRlSW5wdXRzID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIChpbnN0YW5jZSBhcyBhbnkpLm9uVXBkYXRlSW5wdXRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgYW4gaW5zdGFuY2UncyBpbnB1dCB2YWx1ZVxyXG4gICAqIEBwYXJhbSBpbnN0YW5jZSBDb21wb25lbnQgaW5zdGFuY2VcclxuICAgKiBAcGFyYW0ga2V5IElucHV0IGtleVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBJbnB1dCB2YWx1ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0SW5wdXRWYWx1ZShpbnN0YW5jZTogQywga2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGluc3RhbmNlW2tleV07XHJcbiAgICBpZiAodmFsdWUgPT09IGN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGluc3RhbmNlKTtcclxuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvdHlwZSwga2V5KTtcclxuICAgIGlmIChkZXNjcmlwdG9yICE9PSB1bmRlZmluZWQgJiYgZGVzY3JpcHRvci5zZXQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkZXNjcmlwdG9yLnNldC5jYWxsKGluc3RhbmNlLCB2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbnN0YW5jZVtrZXldID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIGNvbXBvbmVudCBzdWJzY3JpYmVycy4gVGhpcyBpcyBhbiB1cGRhdGUgc28gYW55XHJcbiAgICoga2V5IG5vdCBkZWZpbmVkIHdvbid0IGJlIG92ZXJ3cml0dGVuLlxyXG4gICAqL1xyXG4gIHVwZGF0ZVN1YnNjcmliZXJzKHN1YnNjcmliZXJzOiB7W2tleTogc3RyaW5nXTogKGV2ZW50OiBhbnkpID0+IHZvaWR9KSB7XHJcbiAgICB0aGlzLnN1YnNjcmliZXJzID0gc3Vic2NyaWJlcnM7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgIGNvbnN0IGFsbG93ZWRTdWJzY3JpYmVycyA9IHRoaXMuY29tcG9uZW50RmFjdG9yeS5vdXRwdXRzO1xyXG4gICAgYWxsb3dlZFN1YnNjcmliZXJzLmZvckVhY2goKHZhbHVlOiB7cHJvcE5hbWU6IHN0cmluZzsgdGVtcGxhdGVOYW1lOiBzdHJpbmc7IH0pID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gdmFsdWUucHJvcE5hbWU7XHJcbiAgICAgIGlmIChzdWJzY3JpYmVycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgY29uc3QgZW1pdHRlciA9IGluc3RhbmNlW2tleV07XHJcbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlciA9IHN1YnNjcmliZXJzW2tleV07XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc3Vic2NyaWJlcikpIHtcclxuICAgICAgICAgIHN1YnNjcmliZXIuZm9yRWFjaCgoX3N1YnNjcmliZXIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZW1pdHRlci5zdWJzY3JpYmUoX3N1YnNjcmliZXIpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChlbWl0dGVyLnN1YnNjcmliZShzdWJzY3JpYmVyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmliZSB0byBhbiBvYnNlcnZhYmxlIGlucHV0IGFuZCB1cGRhdGUgdGhlIGNvbXBvbmVudCdzIGlucHV0IHZhbHVlXHJcbiAgICogYWNjb3JkaW5nbHlcclxuICAgKiBAcGFyYW0ga2V5IElucHV0IGtleVxyXG4gICAqIEBwYXJhbSBvYnNlcnZhYmxlIE9ic2VydmFibGVcclxuICAgKi9cclxuICBwcml2YXRlIG9ic2VydmVJbnB1dChrZXk6IHN0cmluZywgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+KSB7XHJcbiAgICB0aGlzLmlucHV0cyQkW2tleV0gPSBvYnNlcnZhYmxlLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgICB0aGlzLnNldElucHV0VmFsdWUoaW5zdGFuY2UsIGtleSwgdmFsdWUpO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiAoaW5zdGFuY2UgYXMgYW55KS5vblVwZGF0ZUlucHV0cyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIChpbnN0YW5jZSBhcyBhbnkpLm9uVXBkYXRlSW5wdXRzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5zdWJzY3JpYmUgdG8gYW4gb2JzZXJ2YWJsZSBpbnB1dFxyXG4gICAqIEBwYXJhbSBrZXkgSW5wdXQga2V5XHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bm9ic2VydmVJbnB1dChrZXk6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRzJCRba2V5XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzJCRba2V5XS51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmlucHV0cyQkW2tleV0gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnN1YnNjcmliZSB0byBhbGwgb3V0cHV0cy5cclxuICAgKi9cclxuICBwcml2YXRlIHVub2JzZXJ2ZUFsbElucHV0cygpIHtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5pbnB1dHMkJCkuZm9yRWFjaCgoczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgIGlmIChzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbnB1dHMkJCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5zdWJzY3JpYmUgdG8gYWxsIG91dHB1dHMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUFsbCgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzOiBTdWJzY3JpcHRpb24pID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,29 +1,29 @@
1
- import { ComponentFactoryResolver, Injectable } from '@angular/core';
2
- import { DynamicComponent } from './dynamic-component';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Service to creates DynamicComponent instances from base component classes
6
- */
7
- export class DynamicComponentService {
8
- constructor(resolver) {
9
- this.resolver = resolver;
10
- }
11
- /**
12
- * Creates a DynamicComponent instance from a base component class
13
- * @param componentCls The component class
14
- * @returns DynamicComponent instance
15
- */
16
- create(componentCls) {
17
- const factory = this.resolver.resolveComponentFactory(componentCls);
18
- return new DynamicComponent(factory);
19
- }
20
- }
21
- DynamicComponentService.ɵfac = function DynamicComponentService_Factory(t) { return new (t || DynamicComponentService)(i0.ɵɵinject(i0.ComponentFactoryResolver)); };
22
- DynamicComponentService.ɵprov = i0.ɵɵdefineInjectable({ token: DynamicComponentService, factory: DynamicComponentService.ɵfac, providedIn: 'root' });
23
- /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(DynamicComponentService, [{
24
- type: Injectable,
25
- args: [{
26
- providedIn: 'root'
27
- }]
28
- }], function () { return [{ type: i0.ComponentFactoryResolver }]; }, null); })();
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvc3J2L2FwcHMvaWdvMi1saWIvcGFja2FnZXMvY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9keW5hbWljLWNvbXBvbmVudC9zaGFyZWQvZHluYW1pYy1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFdkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQW9CLFFBQWtDO1FBQWxDLGFBQVEsR0FBUixRQUFRLENBQTBCO0lBQUcsQ0FBQztJQUUxRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFlBQWlCO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsWUFBbUIsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBc0IsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7OEZBWlUsdUJBQXVCOytEQUF2Qix1QkFBdUIsV0FBdkIsdUJBQXVCLG1CQUZ0QixNQUFNO2tEQUVQLHVCQUF1QjtjQUhuQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50JztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGNyZWF0ZXMgRHluYW1pY0NvbXBvbmVudCBpbnN0YW5jZXMgZnJvbSBiYXNlIGNvbXBvbmVudCBjbGFzc2VzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBEeW5hbWljQ29tcG9uZW50IGluc3RhbmNlIGZyb20gYSBiYXNlIGNvbXBvbmVudCBjbGFzc1xuICAgKiBAcGFyYW0gY29tcG9uZW50Q2xzIFRoZSBjb21wb25lbnQgY2xhc3NcbiAgICogQHJldHVybnMgRHluYW1pY0NvbXBvbmVudCBpbnN0YW5jZVxuICAgKi9cbiAgY3JlYXRlKGNvbXBvbmVudENsczogYW55KTogRHluYW1pY0NvbXBvbmVudDxhbnk+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRDbHMgYXMgYW55KTtcbiAgICByZXR1cm4gbmV3IER5bmFtaWNDb21wb25lbnQ8dHlwZW9mIGNvbXBvbmVudENscz4oZmFjdG9yeSk7XG4gIH1cbn1cbiJdfQ==
1
+ import { Injectable } from '@angular/core';
2
+ import { DynamicComponent } from './dynamic-component';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Service to creates DynamicComponent instances from base component classes
6
+ */
7
+ export class DynamicComponentService {
8
+ constructor(resolver) {
9
+ this.resolver = resolver;
10
+ }
11
+ /**
12
+ * Creates a DynamicComponent instance from a base component class
13
+ * @param componentCls The component class
14
+ * @returns DynamicComponent instance
15
+ */
16
+ create(componentCls) {
17
+ const factory = this.resolver.resolveComponentFactory(componentCls);
18
+ return new DynamicComponent(factory);
19
+ }
20
+ }
21
+ DynamicComponentService.ɵfac = function DynamicComponentService_Factory(t) { return new (t || DynamicComponentService)(i0.ɵɵinject(i0.ComponentFactoryResolver)); };
22
+ DynamicComponentService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DynamicComponentService, factory: DynamicComponentService.ɵfac, providedIn: 'root' });
23
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicComponentService, [{
24
+ type: Injectable,
25
+ args: [{
26
+ providedIn: 'root'
27
+ }]
28
+ }], function () { return [{ type: i0.ComponentFactoryResolver }]; }, null); })();
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2R5bmFtaWMtY29tcG9uZW50L3NoYXJlZC9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXZEOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixRQUFrQztRQUFsQyxhQUFRLEdBQVIsUUFBUSxDQUEwQjtJQUFHLENBQUM7SUFFMUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxZQUFpQjtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLFlBQW1CLENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksZ0JBQWdCLENBQXNCLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7OzhGQVpVLHVCQUF1Qjs2RUFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1QixtQkFGdEIsTUFBTTt1RkFFUCx1QkFBdUI7Y0FIbkMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgSW5qZWN0YWJsZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdG8gY3JlYXRlcyBEeW5hbWljQ29tcG9uZW50IGluc3RhbmNlcyBmcm9tIGJhc2UgY29tcG9uZW50IGNsYXNzZXNcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgRHluYW1pY0NvbXBvbmVudCBpbnN0YW5jZSBmcm9tIGEgYmFzZSBjb21wb25lbnQgY2xhc3NcclxuICAgKiBAcGFyYW0gY29tcG9uZW50Q2xzIFRoZSBjb21wb25lbnQgY2xhc3NcclxuICAgKiBAcmV0dXJucyBEeW5hbWljQ29tcG9uZW50IGluc3RhbmNlXHJcbiAgICovXHJcbiAgY3JlYXRlKGNvbXBvbmVudENsczogYW55KTogRHluYW1pY0NvbXBvbmVudDxhbnk+IHtcclxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENscyBhcyBhbnkpO1xyXG4gICAgcmV0dXJuIG5ldyBEeW5hbWljQ29tcG9uZW50PHR5cGVvZiBjb21wb25lbnRDbHM+KGZhY3RvcnkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- export * from './dynamic-component.interfaces';
2
- export * from './dynamic-component';
3
- export * from './dynamic-component.service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3Nydi9hcHBzL2lnbzItbGliL3BhY2thZ2VzL2NvbW1vbi9zcmMvIiwic291cmNlcyI6WyJsaWIvZHluYW1pYy1jb21wb25lbnQvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJztcbiJdfQ==
1
+ export * from './dynamic-component.interfaces';
2
+ export * from './dynamic-component';
3
+ export * from './dynamic-component.service';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9keW5hbWljLWNvbXBvbmVudC9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50LmludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJztcclxuIl19