@igo2/common 1.15.3 → 1.15.5

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