@igo2/common 19.0.3 → 20.0.0-next.2

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 (325) hide show
  1. package/action/index.d.ts +194 -3
  2. package/backdrop/index.d.ts +20 -3
  3. package/badge/index.d.ts +44 -3
  4. package/clickout/index.d.ts +20 -3
  5. package/clone/index.d.ts +18 -3
  6. package/collapsible/index.d.ts +43 -3
  7. package/color/index.d.ts +38 -3
  8. package/confirm-dialog/index.d.ts +39 -5
  9. package/context-menu/index.d.ts +50 -3
  10. package/custom-html/index.d.ts +30 -3
  11. package/dom/index.d.ts +34 -3
  12. package/drag-drop/index.d.ts +124 -3
  13. package/dynamic-component/index.d.ts +186 -3
  14. package/entity/index.d.ts +1532 -3
  15. package/environment/index.d.ts +15 -5
  16. package/fesm2022/igo2-common-action.mjs +28 -38
  17. package/fesm2022/igo2-common-action.mjs.map +1 -1
  18. package/fesm2022/igo2-common-backdrop.mjs +7 -7
  19. package/fesm2022/igo2-common-backdrop.mjs.map +1 -1
  20. package/fesm2022/igo2-common-badge.mjs +10 -13
  21. package/fesm2022/igo2-common-badge.mjs.map +1 -1
  22. package/fesm2022/igo2-common-clickout.mjs +10 -13
  23. package/fesm2022/igo2-common-clickout.mjs.map +1 -1
  24. package/fesm2022/igo2-common-clone.mjs +7 -7
  25. package/fesm2022/igo2-common-clone.mjs.map +1 -1
  26. package/fesm2022/igo2-common-collapsible.mjs +14 -18
  27. package/fesm2022/igo2-common-collapsible.mjs.map +1 -1
  28. package/fesm2022/igo2-common-color.mjs +9 -9
  29. package/fesm2022/igo2-common-color.mjs.map +1 -1
  30. package/fesm2022/igo2-common-confirm-dialog.mjs +19 -26
  31. package/fesm2022/igo2-common-confirm-dialog.mjs.map +1 -1
  32. package/fesm2022/igo2-common-context-menu.mjs +16 -21
  33. package/fesm2022/igo2-common-context-menu.mjs.map +1 -1
  34. package/fesm2022/igo2-common-custom-html.mjs +14 -17
  35. package/fesm2022/igo2-common-custom-html.mjs.map +1 -1
  36. package/fesm2022/igo2-common-dom.mjs +11 -14
  37. package/fesm2022/igo2-common-dom.mjs.map +1 -1
  38. package/fesm2022/igo2-common-drag-drop.mjs +15 -17
  39. package/fesm2022/igo2-common-drag-drop.mjs.map +1 -1
  40. package/fesm2022/igo2-common-dynamic-component.mjs +20 -27
  41. package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -1
  42. package/fesm2022/igo2-common-entity.mjs +69 -108
  43. package/fesm2022/igo2-common-entity.mjs.map +1 -1
  44. package/fesm2022/igo2-common-flexible.mjs +13 -18
  45. package/fesm2022/igo2-common-flexible.mjs.map +1 -1
  46. package/fesm2022/igo2-common-form.mjs +77 -112
  47. package/fesm2022/igo2-common-form.mjs.map +1 -1
  48. package/fesm2022/igo2-common-home-button.mjs +7 -7
  49. package/fesm2022/igo2-common-home-button.mjs.map +1 -1
  50. package/fesm2022/igo2-common-icon.mjs +14 -21
  51. package/fesm2022/igo2-common-icon.mjs.map +1 -1
  52. package/fesm2022/igo2-common-image.mjs +53 -57
  53. package/fesm2022/igo2-common-image.mjs.map +1 -1
  54. package/fesm2022/igo2-common-interactive-tour.mjs +43 -56
  55. package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
  56. package/fesm2022/igo2-common-json-dialog.mjs +19 -28
  57. package/fesm2022/igo2-common-json-dialog.mjs.map +1 -1
  58. package/fesm2022/igo2-common-keyvalue.mjs +7 -7
  59. package/fesm2022/igo2-common-keyvalue.mjs.map +1 -1
  60. package/fesm2022/igo2-common-list.mjs +16 -23
  61. package/fesm2022/igo2-common-list.mjs.map +1 -1
  62. package/fesm2022/igo2-common-panel.mjs +9 -9
  63. package/fesm2022/igo2-common-panel.mjs.map +1 -1
  64. package/fesm2022/igo2-common-resizable-bar.mjs +6 -6
  65. package/fesm2022/igo2-common-resizable-bar.mjs.map +1 -1
  66. package/fesm2022/igo2-common-select-value-dialog.mjs +28 -44
  67. package/fesm2022/igo2-common-select-value-dialog.mjs.map +1 -1
  68. package/fesm2022/igo2-common-sidenav.mjs +10 -16
  69. package/fesm2022/igo2-common-sidenav.mjs.map +1 -1
  70. package/fesm2022/igo2-common-spinner.mjs +15 -21
  71. package/fesm2022/igo2-common-spinner.mjs.map +1 -1
  72. package/fesm2022/igo2-common-stop-propagation.mjs +10 -10
  73. package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -1
  74. package/fesm2022/igo2-common-table.mjs +9 -11
  75. package/fesm2022/igo2-common-table.mjs.map +1 -1
  76. package/fesm2022/igo2-common-tool.mjs +16 -22
  77. package/fesm2022/igo2-common-tool.mjs.map +1 -1
  78. package/fesm2022/igo2-common-widget.mjs +19 -24
  79. package/fesm2022/igo2-common-widget.mjs.map +1 -1
  80. package/fesm2022/igo2-common-workspace.mjs +20 -20
  81. package/fesm2022/igo2-common-workspace.mjs.map +1 -1
  82. package/flexible/index.d.ts +54 -3
  83. package/form/index.d.ts +429 -3
  84. package/home-button/index.d.ts +18 -3
  85. package/icon/index.d.ts +42 -3
  86. package/image/index.d.ts +35 -3
  87. package/index.d.ts +16 -5
  88. package/interactive-tour/index.d.ts +116 -5
  89. package/json-dialog/index.d.ts +34 -5
  90. package/keyvalue/index.d.ts +18 -3
  91. package/list/index.d.ts +102 -3
  92. package/package.json +10 -13
  93. package/panel/index.d.ts +20 -3
  94. package/resizable-bar/index.d.ts +37 -5
  95. package/select-value-dialog/index.d.ts +65 -5
  96. package/sidenav/index.d.ts +29 -3
  97. package/spinner/index.d.ts +51 -3
  98. package/src/style/partial/common-utils.scss +1 -1
  99. package/stop-propagation/index.d.ts +26 -3
  100. package/table/index.d.ts +105 -3
  101. package/tool/index.d.ts +289 -3
  102. package/widget/index.d.ts +105 -3
  103. package/workspace/index.d.ts +237 -3
  104. package/action/action.module.d.ts +0 -10
  105. package/action/actionbar/actionbar-item.component.d.ts +0 -73
  106. package/action/actionbar/actionbar.component.d.ts +0 -148
  107. package/action/actionbar/actionbar.module.d.ts +0 -10
  108. package/action/public_api.d.ts +0 -4
  109. package/action/shared/action.enums.d.ts +0 -5
  110. package/action/shared/action.interfaces.d.ts +0 -16
  111. package/action/shared/index.d.ts +0 -3
  112. package/action/shared/store.d.ts +0 -8
  113. package/action/src/action.theming.scss +0 -9
  114. package/action/src/actionbar/actionbar-item.theming.scss +0 -20
  115. package/backdrop/backdrop.component.d.ts +0 -8
  116. package/backdrop/backdrop.module.d.ts +0 -12
  117. package/backdrop/public_api.d.ts +0 -2
  118. package/badge/badge-icon.directive.d.ts +0 -34
  119. package/badge/badge-icon.module.d.ts +0 -12
  120. package/badge/public_api.d.ts +0 -2
  121. package/clickout/clickout.directive.d.ts +0 -10
  122. package/clickout/clickout.module.d.ts +0 -12
  123. package/clickout/public_api.d.ts +0 -2
  124. package/clone/clone.module.d.ts +0 -12
  125. package/clone/clone.pipe.d.ts +0 -7
  126. package/clone/public_api.d.ts +0 -2
  127. package/collapsible/collapse.directive.d.ts +0 -19
  128. package/collapsible/collapsible.component.d.ts +0 -13
  129. package/collapsible/collapsible.module.d.ts +0 -13
  130. package/collapsible/public_api.d.ts +0 -6
  131. package/color/color-picker-form-field/color-picker-form-field.component.d.ts +0 -29
  132. package/color/color-picker-form-field/color-picker-form-field.module.d.ts +0 -10
  133. package/color/color-picker-form-field/index.d.ts +0 -2
  134. package/color/public_api.d.ts +0 -1
  135. package/confirm-dialog/confirm-dialog.component.d.ts +0 -12
  136. package/confirm-dialog/confirm-dialog.interface.d.ts +0 -4
  137. package/confirm-dialog/confirm-dialog.module.d.ts +0 -12
  138. package/confirm-dialog/confirm-dialog.service.d.ts +0 -11
  139. package/confirm-dialog/public_api.d.ts +0 -4
  140. package/context-menu/context-menu.directive.d.ts +0 -21
  141. package/context-menu/context-menu.module.d.ts +0 -13
  142. package/context-menu/long-press.directive.d.ts +0 -19
  143. package/context-menu/public_api.d.ts +0 -6
  144. package/custom-html/custom-html.component.d.ts +0 -8
  145. package/custom-html/custom-html.module.d.ts +0 -13
  146. package/custom-html/custom-html.pipe.d.ts +0 -10
  147. package/custom-html/public_api.d.ts +0 -6
  148. package/dom/dom.interfaces.d.ts +0 -10
  149. package/dom/dom.module.d.ts +0 -14
  150. package/dom/dom.service.d.ts +0 -10
  151. package/dom/public_api.d.ts +0 -3
  152. package/drag-drop/drag-drop.directive.d.ts +0 -14
  153. package/drag-drop/drag-drop.module.d.ts +0 -13
  154. package/drag-drop/public_api.d.ts +0 -3
  155. package/drag-drop/tree-drag-drop/index.d.ts +0 -2
  156. package/drag-drop/tree-drag-drop/tree-drag-drop.directive.d.ts +0 -85
  157. package/drag-drop/tree-drag-drop/tree-drag-drop.interface.d.ts +0 -15
  158. package/dynamic-component/dynamic-component.module.d.ts +0 -10
  159. package/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +0 -66
  160. package/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +0 -10
  161. package/dynamic-component/public_api.d.ts +0 -4
  162. package/dynamic-component/shared/dynamic-component.d.ts +0 -84
  163. package/dynamic-component/shared/dynamic-component.interfaces.d.ts +0 -3
  164. package/dynamic-component/shared/dynamic-component.service.d.ts +0 -18
  165. package/dynamic-component/shared/index.d.ts +0 -3
  166. package/entity/entity-selector/entity-selector.component.d.ts +0 -93
  167. package/entity/entity-selector/entity-selector.module.d.ts +0 -10
  168. package/entity/entity-selector/index.d.ts +0 -2
  169. package/entity/entity-table/entity-table-row.directive.d.ts +0 -69
  170. package/entity/entity-table/entity-table.component.d.ts +0 -330
  171. package/entity/entity-table/entity-table.module.d.ts +0 -10
  172. package/entity/entity-table/index.d.ts +0 -2
  173. package/entity/entity-table-paginator/entity-table-paginator.component.d.ts +0 -50
  174. package/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +0 -8
  175. package/entity/entity-table-paginator/entity-table-paginator.module.d.ts +0 -10
  176. package/entity/entity-table-paginator/index.d.ts +0 -3
  177. package/entity/entity.module.d.ts +0 -16
  178. package/entity/public_api.d.ts +0 -5
  179. package/entity/shared/entity.enums.d.ts +0 -23
  180. package/entity/shared/entity.interfaces.d.ts +0 -92
  181. package/entity/shared/entity.utils.d.ts +0 -49
  182. package/entity/shared/index.d.ts +0 -9
  183. package/entity/shared/state.d.ts +0 -108
  184. package/entity/shared/store.d.ts +0 -180
  185. package/entity/shared/strategies/filter-custom-function.d.ts +0 -51
  186. package/entity/shared/strategies/filter-selection.d.ts +0 -48
  187. package/entity/shared/strategies/index.d.ts +0 -3
  188. package/entity/shared/strategies/strategy.d.ts +0 -56
  189. package/entity/shared/transaction.d.ts +0 -171
  190. package/entity/shared/view.d.ts +0 -193
  191. package/entity/shared/watcher.d.ts +0 -72
  192. package/entity/src/entity-selector/entity-selector.theming.scss +0 -21
  193. package/entity/src/entity-table/entity-table.theming.scss +0 -21
  194. package/entity/src/entity.theming.scss +0 -12
  195. package/environment/environment.interface.d.ts +0 -13
  196. package/environment/public_api.d.ts +0 -1
  197. package/flexible/flexible.component.d.ts +0 -42
  198. package/flexible/flexible.module.d.ts +0 -12
  199. package/flexible/flexible.type.d.ts +0 -2
  200. package/flexible/public_api.d.ts +0 -3
  201. package/form/form/form.component.d.ts +0 -46
  202. package/form/form/form.module.d.ts +0 -10
  203. package/form/form/index.d.ts +0 -2
  204. package/form/form-dialog/form-dialog.component.d.ts +0 -19
  205. package/form/form-dialog/form-dialog.interface.d.ts +0 -16
  206. package/form/form-dialog/form-dialog.module.d.ts +0 -16
  207. package/form/form-dialog/form-dialog.service.d.ts +0 -11
  208. package/form/form-dialog/index.d.ts +0 -4
  209. package/form/form-field/form-field-select.component.d.ts +0 -50
  210. package/form/form-field/form-field-text.component.d.ts +0 -49
  211. package/form/form-field/form-field-textarea.component.d.ts +0 -39
  212. package/form/form-field/form-field.component.d.ts +0 -29
  213. package/form/form-field/form-field.directive.d.ts +0 -5
  214. package/form/form-field/form-field.module.d.ts +0 -13
  215. package/form/form-field/index.d.ts +0 -6
  216. package/form/form-group/form-group.component.d.ts +0 -44
  217. package/form/form-group/form-group.module.d.ts +0 -10
  218. package/form/form-group/index.d.ts +0 -2
  219. package/form/form.module.d.ts +0 -18
  220. package/form/public_api.d.ts +0 -6
  221. package/form/shared/form-field-component.d.ts +0 -1
  222. package/form/shared/form-field.service.d.ts +0 -16
  223. package/form/shared/form.interfaces.d.ts +0 -60
  224. package/form/shared/form.service.d.ts +0 -15
  225. package/form/shared/form.utils.d.ts +0 -7
  226. package/form/shared/index.d.ts +0 -5
  227. package/home-button/home-button.component.d.ts +0 -8
  228. package/home-button/home-button.module.d.ts +0 -10
  229. package/home-button/public_api.d.ts +0 -2
  230. package/icon/icon/icon.component.d.ts +0 -15
  231. package/icon/icon.provider.d.ts +0 -4
  232. package/icon/public_api.d.ts +0 -3
  233. package/icon/shared/icon.interface.d.ts +0 -4
  234. package/icon/shared/icon.service.d.ts +0 -12
  235. package/icon/shared/icons.d.ts +0 -11
  236. package/icon/shared/index.d.ts +0 -3
  237. package/image/image-error.directive.d.ts +0 -11
  238. package/image/image.module.d.ts +0 -13
  239. package/image/public_api.d.ts +0 -6
  240. package/image/secure-image.pipe.d.ts +0 -13
  241. package/interactive-tour/interactive-tour.component.d.ts +0 -33
  242. package/interactive-tour/interactive-tour.interface.d.ts +0 -35
  243. package/interactive-tour/interactive-tour.loader.d.ts +0 -18
  244. package/interactive-tour/interactive-tour.module.d.ts +0 -7
  245. package/interactive-tour/interactive-tour.service.d.ts +0 -30
  246. package/interactive-tour/public_api.d.ts +0 -5
  247. package/json-dialog/json-dialog.component.d.ts +0 -13
  248. package/json-dialog/json-dialog.module.d.ts +0 -12
  249. package/json-dialog/json-dialog.service.d.ts +0 -10
  250. package/json-dialog/public_api.d.ts +0 -3
  251. package/keyvalue/keyvalue.module.d.ts +0 -12
  252. package/keyvalue/keyvalue.pipe.d.ts +0 -7
  253. package/keyvalue/public_api.d.ts +0 -2
  254. package/list/list-item.directive.d.ts +0 -43
  255. package/list/list.component.d.ts +0 -51
  256. package/list/list.module.d.ts +0 -13
  257. package/list/public_api.d.ts +0 -6
  258. package/panel/panel.component.d.ts +0 -10
  259. package/panel/panel.module.d.ts +0 -10
  260. package/panel/public_api.d.ts +0 -2
  261. package/panel/src/panel.theming.scss +0 -20
  262. package/public_api.d.ts +0 -16
  263. package/resizable-bar/public_api.d.ts +0 -2
  264. package/resizable-bar/resizable-bar.component.d.ts +0 -23
  265. package/resizable-bar/shared/resize.directive.d.ts +0 -12
  266. package/select-value-dialog/public_api.d.ts +0 -5
  267. package/select-value-dialog/select-value-check-radio-dialog.component.d.ts +0 -25
  268. package/select-value-dialog/select-value-dialog.enums.d.ts +0 -4
  269. package/select-value-dialog/select-value-dialog.interface.d.ts +0 -16
  270. package/select-value-dialog/select-value-dialog.module.d.ts +0 -12
  271. package/select-value-dialog/select-value-dialog.service.d.ts +0 -11
  272. package/sidenav/public_api.d.ts +0 -2
  273. package/sidenav/sidenav-shim.directive.d.ts +0 -20
  274. package/sidenav/sidenav.module.d.ts +0 -12
  275. package/spinner/public_api.d.ts +0 -3
  276. package/spinner/spinner-activity.directive.d.ts +0 -32
  277. package/spinner/spinner.component.d.ts +0 -11
  278. package/spinner/spinner.module.d.ts +0 -14
  279. package/src/common.theme.scss +0 -18
  280. package/stop-propagation/public_api.d.ts +0 -6
  281. package/stop-propagation/stop-drop-propagation.directive.d.ts +0 -6
  282. package/stop-propagation/stop-propagation.directive.d.ts +0 -6
  283. package/stop-propagation/stop-propagation.module.d.ts +0 -13
  284. package/table/public_api.d.ts +0 -6
  285. package/table/table-action-color.enum.d.ts +0 -5
  286. package/table/table-database.d.ts +0 -10
  287. package/table/table-datasource.d.ts +0 -18
  288. package/table/table-model.interface.d.ts +0 -24
  289. package/table/table.component.d.ts +0 -40
  290. package/table/table.module.d.ts +0 -12
  291. package/tool/public_api.d.ts +0 -3
  292. package/tool/shared/index.d.ts +0 -5
  293. package/tool/shared/tool-component.d.ts +0 -2
  294. package/tool/shared/tool.interface.d.ts +0 -16
  295. package/tool/shared/tool.service.d.ts +0 -28
  296. package/tool/shared/toolbox.d.ts +0 -96
  297. package/tool/shared/toolbox.enums.d.ts +0 -1
  298. package/tool/src/tool.theming.scss +0 -5
  299. package/tool/src/toolbox/toolbox.theming.scss +0 -22
  300. package/tool/tool.module.d.ts +0 -15
  301. package/tool/toolbox/index.d.ts +0 -2
  302. package/tool/toolbox/toolbox.animation.d.ts +0 -2
  303. package/tool/toolbox/toolbox.component.d.ts +0 -126
  304. package/tool/toolbox/toolbox.module.d.ts +0 -10
  305. package/widget/public_api.d.ts +0 -3
  306. package/widget/shared/index.d.ts +0 -3
  307. package/widget/shared/widget.d.ts +0 -4
  308. package/widget/shared/widget.interfaces.d.ts +0 -12
  309. package/widget/shared/widget.service.d.ts +0 -10
  310. package/widget/widget-outlet/index.d.ts +0 -2
  311. package/widget/widget-outlet/widget-outlet.component.d.ts +0 -64
  312. package/widget/widget-outlet/widget-outlet.module.d.ts +0 -10
  313. package/widget/widget.module.d.ts +0 -10
  314. package/workspace/public_api.d.ts +0 -4
  315. package/workspace/shared/index.d.ts +0 -3
  316. package/workspace/shared/store.d.ts +0 -20
  317. package/workspace/shared/workspace.d.ts +0 -98
  318. package/workspace/shared/workspace.interfaces.d.ts +0 -9
  319. package/workspace/workspace-selector/index.d.ts +0 -2
  320. package/workspace/workspace-selector/workspace-selector.component.d.ts +0 -38
  321. package/workspace/workspace-selector/workspace-selector.module.d.ts +0 -10
  322. package/workspace/workspace-widget-outlet/index.d.ts +0 -2
  323. package/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +0 -52
  324. package/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +0 -10
  325. package/workspace/workspace.module.d.ts +0 -14
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import * as i0 from '@angular/core';
3
- import { Injectable, ViewContainerRef, ViewChild, Input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import { inject, ComponentFactoryResolver, Injectable, ChangeDetectorRef, ViewContainerRef, ViewChild, Input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
4
4
  import { ObjectUtils } from '@igo2/utils';
5
5
 
6
6
  /**
@@ -189,10 +189,7 @@ class DynamicComponent {
189
189
  * Service to creates DynamicComponent instances from base component classes
190
190
  */
191
191
  class DynamicComponentService {
192
- resolver;
193
- constructor(resolver) {
194
- this.resolver = resolver;
195
- }
192
+ resolver = inject(ComponentFactoryResolver);
196
193
  /**
197
194
  * Creates a DynamicComponent instance from a base component class
198
195
  * @param componentCls The component class
@@ -202,19 +199,19 @@ class DynamicComponentService {
202
199
  const factory = this.resolver.resolveComponentFactory(componentCls);
203
200
  return new DynamicComponent(factory);
204
201
  }
205
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
206
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DynamicComponentService, providedIn: 'root' });
202
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DynamicComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
203
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DynamicComponentService, providedIn: 'root' });
207
204
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DynamicComponentService, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DynamicComponentService, decorators: [{
209
206
  type: Injectable,
210
207
  args: [{
211
208
  providedIn: 'root'
212
209
  }]
213
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }] });
210
+ }] });
214
211
 
215
212
  class DynamicOutletComponent {
216
- dynamicComponentService;
217
- cdRef;
213
+ dynamicComponentService = inject(DynamicComponentService);
214
+ cdRef = inject(ChangeDetectorRef);
218
215
  /**
219
216
  * The dynamic component base class or the dynamic component itself
220
217
  */
@@ -236,10 +233,6 @@ class DynamicOutletComponent {
236
233
  * @ignore
237
234
  */
238
235
  target;
239
- constructor(dynamicComponentService, cdRef) {
240
- this.dynamicComponentService = dynamicComponentService;
241
- this.cdRef = cdRef;
242
- }
243
236
  /**
244
237
  * If the dynamic component changes, create it.
245
238
  * If the inputs or subscribers change, update the current component's
@@ -318,13 +311,13 @@ class DynamicOutletComponent {
318
311
  updateSubscribers() {
319
312
  this.dynamicComponent.updateSubscribers(this.subscribers);
320
313
  }
321
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DynamicOutletComponent, deps: [{ token: DynamicComponentService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
322
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DynamicOutletComponent, isStandalone: true, selector: "igo-dynamic-outlet", inputs: { component: "component", inputs: "inputs", subscribers: "subscribers" }, viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #target></ng-template>\n", styles: [":host{display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
314
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DynamicOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
315
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: DynamicOutletComponent, isStandalone: true, selector: "igo-dynamic-outlet", inputs: { component: "component", inputs: "inputs", subscribers: "subscribers" }, viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #target></ng-template>\n", styles: [":host{display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
323
316
  }
324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DynamicOutletComponent, decorators: [{
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DynamicOutletComponent, decorators: [{
325
318
  type: Component,
326
319
  args: [{ selector: 'igo-dynamic-outlet', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-template #target></ng-template>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
327
- }], ctorParameters: () => [{ type: DynamicComponentService }, { type: i0.ChangeDetectorRef }], propDecorators: { component: [{
320
+ }], propDecorators: { component: [{
328
321
  type: Input
329
322
  }], inputs: [{
330
323
  type: Input
@@ -339,11 +332,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
339
332
  * @deprecated import the DynamicOutletComponent directly
340
333
  */
341
334
  class IgoDynamicComponentModule {
342
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoDynamicComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
343
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: IgoDynamicComponentModule, imports: [DynamicOutletComponent], exports: [DynamicOutletComponent] });
344
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoDynamicComponentModule });
335
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IgoDynamicComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
336
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: IgoDynamicComponentModule, imports: [DynamicOutletComponent], exports: [DynamicOutletComponent] });
337
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IgoDynamicComponentModule });
345
338
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoDynamicComponentModule, decorators: [{
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IgoDynamicComponentModule, decorators: [{
347
340
  type: NgModule,
348
341
  args: [{
349
342
  imports: [DynamicOutletComponent],
@@ -355,11 +348,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
355
348
  * @deprecated import the DynamicOutletComponent directly
356
349
  */
357
350
  class IgoDynamicOutletModule {
358
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoDynamicOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
359
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: IgoDynamicOutletModule, imports: [DynamicOutletComponent], exports: [DynamicOutletComponent] });
360
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoDynamicOutletModule });
351
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IgoDynamicOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
352
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: IgoDynamicOutletModule, imports: [DynamicOutletComponent], exports: [DynamicOutletComponent] });
353
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IgoDynamicOutletModule });
361
354
  }
362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoDynamicOutletModule, decorators: [{
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IgoDynamicOutletModule, decorators: [{
363
356
  type: NgModule,
364
357
  args: [{
365
358
  imports: [DynamicOutletComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-common-dynamic-component.mjs","sources":["../../../packages/common/dynamic-component/src/shared/dynamic-component.ts","../../../packages/common/dynamic-component/src/shared/dynamic-component.service.ts","../../../packages/common/dynamic-component/src/dynamic-outlet/dynamic-outlet.component.ts","../../../packages/common/dynamic-component/src/dynamic-outlet/dynamic-outlet.component.html","../../../packages/common/dynamic-component/src/dynamic-component.module.ts","../../../packages/common/dynamic-component/src/dynamic-outlet/dynamic-outlet.module.ts","../../../packages/common/dynamic-component/src/igo2-common-dynamic-component.ts"],"sourcesContent":["import {\n ComponentFactory,\n ComponentRef,\n ViewContainerRef\n} from '@angular/core';\n\nimport { Observable, Subscription } from 'rxjs';\n\n/**\n * This class is used in the DynamicComponentOutlet component. It holds\n * a reference to a component factory and can render that component\n * in a target element on demand. It's also possible to set inputs\n * and to subscribe to outputs.\n */\nexport class DynamicComponent<C> {\n /**\n * Component reference\n */\n private componentRef: ComponentRef<C>;\n\n /**\n * Subscriptions to the component's outputs. Those need\n * to be unsubscribed when the component is destroyed.\n */\n private subscriptions: Subscription[] = [];\n\n /**\n * Component target element\n */\n private target: ViewContainerRef;\n\n /**\n * Component inputs\n */\n private inputs: Record<string, any> = {};\n\n /**\n * Subscriptions to the component's async inputs\n */\n private inputs$$: Record<string, Subscription> = {};\n\n /**\n * Subscribers to the component's outputs\n */\n private subscribers: Record<string, (event: any) => void> = {};\n\n constructor(private componentFactory: ComponentFactory<C>) {}\n\n /**\n * Render the component to a target element.\n * Set it's inputs and subscribe to it's outputs.\n * @param target Target element\n */\n setTarget(target: ViewContainerRef) {\n this.target = target;\n this.componentRef = target.createComponent(this.componentFactory);\n this.updateInputs(this.inputs);\n this.updateSubscribers(this.subscribers);\n }\n\n /**\n * Destroy this component. That means, removing from it's target\n * element and unsubscribing to it's outputs.\n */\n destroy() {\n if (this.target !== undefined) {\n this.target.clear();\n }\n if (this.componentRef !== undefined) {\n this.componentRef.destroy();\n this.componentRef = undefined;\n }\n this.unobserveAllInputs();\n this.unsubscribeAll();\n }\n\n /**\n * Update the component inputs. This is an update so any\n * key not defined won't be overwritten.\n */\n updateInputs(inputs: Record<string, any>) {\n this.inputs = inputs;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedInputs = this.componentFactory.inputs;\n allowedInputs.forEach(\n (value: { propName: string; templateName: string }) => {\n const key = value.propName;\n\n this.unobserveInput(key);\n\n const inputValue = inputs[key];\n if (Object.prototype.hasOwnProperty.call(inputs, key)) {\n if (inputValue instanceof Observable) {\n this.observeInput(key, inputValue);\n } else {\n this.setInputValue(instance, key, inputValue);\n }\n }\n }\n );\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n }\n\n /**\n * Set an instance's input value\n * @param instance Component instance\n * @param key Input key\n * @param value Input value\n */\n private setInputValue(instance: C, key: string, value: any) {\n const currentValue = instance[key];\n if (value === currentValue) {\n return;\n }\n\n const prototype = Object.getPrototypeOf(instance);\n const descriptor = Object.getOwnPropertyDescriptor(prototype, key);\n if (descriptor !== undefined && descriptor.set !== undefined) {\n descriptor.set.call(instance, value);\n } else {\n instance[key] = value;\n }\n }\n\n /**\n * Update the component subscribers. This is an update so any\n * key not defined won't be overwritten.\n */\n updateSubscribers(subscribers: Record<string, (event: any) => void>) {\n this.subscribers = subscribers;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedSubscribers = this.componentFactory.outputs;\n allowedSubscribers.forEach(\n (value: { propName: string; templateName: string }) => {\n const key = value.propName;\n if (Object.prototype.hasOwnProperty.call(subscribers, key)) {\n const emitter = instance[key];\n const subscriber = subscribers[key];\n if (Array.isArray(subscriber)) {\n subscriber.forEach((_subscriber) => {\n this.subscriptions.push(emitter.subscribe(_subscriber));\n });\n } else {\n this.subscriptions.push(emitter.subscribe(subscriber));\n }\n }\n }\n );\n }\n\n /**\n * Subscribe to an observable input and update the component's input value\n * accordingly\n * @param key Input key\n * @param observable Observable\n */\n private observeInput(key: string, observable: Observable<any>) {\n this.inputs$$[key] = observable.subscribe((value: any) => {\n const instance = this.componentRef.instance;\n this.setInputValue(instance, key, value);\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n });\n }\n\n /**\n * Unsubscribe to an observable input\n * @param key Input key\n */\n private unobserveInput(key: string) {\n if (this.inputs$$[key] !== undefined) {\n this.inputs$$[key].unsubscribe();\n this.inputs$$[key] = undefined;\n }\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unobserveAllInputs() {\n Object.values(this.inputs$$).forEach((s: Subscription | undefined) => {\n if (s !== undefined) {\n s.unsubscribe();\n }\n });\n this.inputs$$ = {};\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unsubscribeAll() {\n this.subscriptions.forEach((s: Subscription) => s.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { ComponentFactoryResolver, Injectable } from '@angular/core';\n\nimport { DynamicComponent } from './dynamic-component';\n\n/**\n * Service to creates DynamicComponent instances from base component classes\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicComponentService {\n constructor(private resolver: ComponentFactoryResolver) {}\n\n /**\n * Creates a DynamicComponent instance from a base component class\n * @param componentCls The component class\n * @returns DynamicComponent instance\n */\n create(componentCls: any): DynamicComponent<any> {\n const factory = this.resolver.resolveComponentFactory(componentCls as any);\n return new DynamicComponent<typeof componentCls>(factory);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { DynamicComponent } from '../shared/dynamic-component';\nimport { DynamicComponentService } from '../shared/dynamic-component.service';\n\n@Component({\n selector: 'igo-dynamic-outlet',\n templateUrl: 'dynamic-outlet.component.html',\n styleUrls: ['dynamic-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DynamicOutletComponent implements OnChanges, OnDestroy {\n /**\n * The dynamic component base class or the dynamic component itself\n */\n @Input() component: DynamicComponent<any> | any;\n\n /**\n * The dynamic component inputs\n */\n @Input() inputs: Record<string, any> = {};\n\n /**\n * The subscribers to the dynamic component outputs\n */\n @Input() subscribers: Record<string, (event: any) => void> = {};\n\n /**\n * The dynamic component\n */\n private dynamicComponent: DynamicComponent<any>;\n\n /**\n * The view element to render the component to\n * @ignore\n */\n @ViewChild('target', { read: ViewContainerRef, static: true })\n private target: ViewContainerRef;\n\n constructor(\n private dynamicComponentService: DynamicComponentService,\n private cdRef: ChangeDetectorRef\n ) {}\n\n /**\n * If the dynamic component changes, create it.\n * If the inputs or subscribers change, update the current component's\n * inputs or subscribers.\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const component = changes.component;\n const inputs = changes.inputs;\n const subscribers = changes.subscribers;\n const eq = ObjectUtils.objectsAreEquivalent;\n\n if (!component || !component.currentValue) {\n return;\n }\n\n if (component.currentValue !== component.previousValue) {\n this.createComponent(component.currentValue);\n } else {\n const inputsAreEquivalents =\n inputs && eq(inputs.currentValue || {}, inputs.previousValue || {});\n const subscribersAreEquivalents =\n subscribers &&\n eq(subscribers.currentValue || {}, subscribers.previousValue || {});\n\n if (inputsAreEquivalents === false) {\n this.updateInputs();\n }\n\n if (subscribersAreEquivalents === false) {\n this.updateSubscribers();\n }\n }\n this.cdRef.detectChanges();\n }\n\n /**\n * Destroy the dynamic component and all it's subscribers\n * @internal\n */\n ngOnDestroy() {\n if (this.dynamicComponent) {\n this.dynamicComponent.destroy();\n }\n }\n\n /**\n * Create a DynamicComponent out of the component class and render it.\n * @internal\n */\n private createComponent(component: DynamicComponent<any> | any) {\n if (this.dynamicComponent !== undefined) {\n this.dynamicComponent.destroy();\n }\n this.dynamicComponent =\n component instanceof DynamicComponent\n ? component\n : this.dynamicComponentService.create(component);\n this.renderComponent();\n }\n\n /**\n * Create and render the dynamic component. Set it's inputs and subscribers\n * @internal\n */\n private renderComponent() {\n this.updateInputs();\n this.updateSubscribers();\n this.dynamicComponent.setTarget(this.target);\n }\n\n /**\n * Update the dynamic component inputs. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateInputs() {\n this.dynamicComponent.updateInputs(this.inputs);\n }\n\n /**\n * Update the dynamic component subscribers. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateSubscribers() {\n this.dynamicComponent.updateSubscribers(this.subscribers);\n }\n}\n","<ng-template #target></ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { DynamicOutletComponent } from './dynamic-outlet/dynamic-outlet.component';\n\n/**\n * @deprecated import the DynamicOutletComponent directly\n */\n@NgModule({\n imports: [DynamicOutletComponent],\n exports: [DynamicOutletComponent]\n})\nexport class IgoDynamicComponentModule {}\n","import { NgModule } from '@angular/core';\n\nimport { DynamicOutletComponent } from './dynamic-outlet.component';\n\n/**\n * @deprecated import the DynamicOutletComponent directly\n */\n@NgModule({\n imports: [DynamicOutletComponent],\n exports: [DynamicOutletComponent]\n})\nexport class IgoDynamicOutletModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.DynamicComponentService"],"mappings":";;;;;AAQA;;;;;AAKG;MACU,gBAAgB,CAAA;AAgCP,IAAA,gBAAA;AA/BpB;;AAEG;AACK,IAAA,YAAY;AAEpB;;;AAGG;IACK,aAAa,GAAmB,EAAE;AAE1C;;AAEG;AACK,IAAA,MAAM;AAEd;;AAEG;IACK,MAAM,GAAwB,EAAE;AAExC;;AAEG;IACK,QAAQ,GAAiC,EAAE;AAEnD;;AAEG;IACK,WAAW,GAAyC,EAAE;AAE9D,IAAA,WAAA,CAAoB,gBAAqC,EAAA;QAArC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;;AAEpC;;;;AAIG;AACH,IAAA,SAAS,CAAC,MAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACjE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;;AAG1C;;;AAGG;IACH,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;AAErB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;;QAE/B,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,cAAc,EAAE;;AAGvB;;;AAGG;AACH,IAAA,YAAY,CAAC,MAA2B,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC;;AAGF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ;AAC3C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;AAClD,QAAA,aAAa,CAAC,OAAO,CACnB,CAAC,KAAiD,KAAI;AACpD,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ;AAE1B,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAExB,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC;AAC9B,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AACrD,gBAAA,IAAI,UAAU,YAAY,UAAU,EAAE;AACpC,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC;;qBAC7B;oBACL,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC;;;AAGnD,SAAC,CACF;AAED,QAAA,IAAI,OAAQ,QAAgB,CAAC,cAAc,KAAK,UAAU,EAAE;YACzD,QAAgB,CAAC,cAAc,EAAE;;;AAItC;;;;;AAKG;AACK,IAAA,aAAa,CAAC,QAAW,EAAE,GAAW,EAAE,KAAU,EAAA;AACxD,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC;AAClC,QAAA,IAAI,KAAK,KAAK,YAAY,EAAE;YAC1B;;QAGF,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC;QAClE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE;YAC5D,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;;aAC/B;AACL,YAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK;;;AAIzB;;;AAGG;AACH,IAAA,iBAAiB,CAAC,WAAiD,EAAA;AACjE,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC;;AAGF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ;AAC3C,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO;AACxD,QAAA,kBAAkB,CAAC,OAAO,CACxB,CAAC,KAAiD,KAAI;AACpD,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ;AAC1B,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE;AAC1D,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC7B,gBAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC;AACnC,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC7B,oBAAA,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;AACjC,wBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AACzD,qBAAC,CAAC;;qBACG;AACL,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;;;AAG5D,SAAC,CACF;;AAGH;;;;;AAKG;IACK,YAAY,CAAC,GAAW,EAAE,UAA2B,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACvD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ;YAC3C,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC;AAExC,YAAA,IAAI,OAAQ,QAAgB,CAAC,cAAc,KAAK,UAAU,EAAE;gBACzD,QAAgB,CAAC,cAAc,EAAE;;AAEtC,SAAC,CAAC;;AAGJ;;;AAGG;AACK,IAAA,cAAc,CAAC,GAAW,EAAA;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS;;;AAIlC;;AAEG;IACK,kBAAkB,GAAA;AACxB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAA2B,KAAI;AACnE,YAAA,IAAI,CAAC,KAAK,SAAS,EAAE;gBACnB,CAAC,CAAC,WAAW,EAAE;;AAEnB,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB;;AAEG;IACK,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAe,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;;AAE1B;;AC5MD;;AAEG;MAIU,uBAAuB,CAAA;AACd,IAAA,QAAA;AAApB,IAAA,WAAA,CAAoB,QAAkC,EAAA;QAAlC,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAE5B;;;;AAIG;AACH,IAAA,MAAM,CAAC,YAAiB,EAAA;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,YAAmB,CAAC;AAC1E,QAAA,OAAO,IAAI,gBAAgB,CAAsB,OAAO,CAAC;;wGAVhD,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA;;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCeY,sBAAsB,CAAA;AA6BvB,IAAA,uBAAA;AACA,IAAA,KAAA;AA7BV;;AAEG;AACM,IAAA,SAAS;AAElB;;AAEG;IACM,MAAM,GAAwB,EAAE;AAEzC;;AAEG;IACM,WAAW,GAAyC,EAAE;AAE/D;;AAEG;AACK,IAAA,gBAAgB;AAExB;;;AAGG;AAEK,IAAA,MAAM;IAEd,WACU,CAAA,uBAAgD,EAChD,KAAwB,EAAA;QADxB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;QACvB,IAAK,CAAA,KAAA,GAAL,KAAK;;AAGf;;;;;AAKG;AACH,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;AACnC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;AAC7B,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;AACvC,QAAA,MAAM,EAAE,GAAG,WAAW,CAAC,oBAAoB;QAE3C,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YACzC;;QAGF,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,CAAC,aAAa,EAAE;AACtD,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC;;aACvC;AACL,YAAA,MAAM,oBAAoB,GACxB,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;YACrE,MAAM,yBAAyB,GAC7B,WAAW;AACX,gBAAA,EAAE,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,EAAE,WAAW,CAAC,aAAa,IAAI,EAAE,CAAC;AAErE,YAAA,IAAI,oBAAoB,KAAK,KAAK,EAAE;gBAClC,IAAI,CAAC,YAAY,EAAE;;AAGrB,YAAA,IAAI,yBAAyB,KAAK,KAAK,EAAE;gBACvC,IAAI,CAAC,iBAAiB,EAAE;;;AAG5B,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;;AAG5B;;;AAGG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;;;AAInC;;;AAGG;AACK,IAAA,eAAe,CAAC,SAAsC,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;;AAEjC,QAAA,IAAI,CAAC,gBAAgB;AACnB,YAAA,SAAS,YAAY;AACnB,kBAAE;kBACA,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,eAAe,EAAE;;AAGxB;;;AAGG;IACK,eAAe,GAAA;QACrB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG9C;;;;AAIG;IACK,YAAY,GAAA;QAClB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;AAGjD;;;;AAIG;IACK,iBAAiB,GAAA;QACvB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;;wGAvHhD,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAyBJ,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjD/C,uCACA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDuBa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA;yHAMP,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,MAAM,EAAA,CAAA;sBAAd;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAYO,MAAM,EAAA,CAAA;sBADb,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE;;;AE7C/D;;AAEG;MAKU,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAzB,yBAAyB,EAAA,OAAA,EAAA,CAH1B,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACtB,sBAAsB,CAAA,EAAA,CAAA;yGAErB,yBAAyB,EAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,sBAAsB;AACjC,iBAAA;;;ACND;;AAEG;MAKU,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAtB,sBAAsB,EAAA,OAAA,EAAA,CAHvB,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACtB,sBAAsB,CAAA,EAAA,CAAA;yGAErB,sBAAsB,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,sBAAsB;AACjC,iBAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"igo2-common-dynamic-component.mjs","sources":["../../../packages/common/dynamic-component/src/shared/dynamic-component.ts","../../../packages/common/dynamic-component/src/shared/dynamic-component.service.ts","../../../packages/common/dynamic-component/src/dynamic-outlet/dynamic-outlet.component.ts","../../../packages/common/dynamic-component/src/dynamic-outlet/dynamic-outlet.component.html","../../../packages/common/dynamic-component/src/dynamic-component.module.ts","../../../packages/common/dynamic-component/src/dynamic-outlet/dynamic-outlet.module.ts","../../../packages/common/dynamic-component/src/igo2-common-dynamic-component.ts"],"sourcesContent":["import {\n ComponentFactory,\n ComponentRef,\n ViewContainerRef\n} from '@angular/core';\n\nimport { Observable, Subscription } from 'rxjs';\n\n/**\n * This class is used in the DynamicComponentOutlet component. It holds\n * a reference to a component factory and can render that component\n * in a target element on demand. It's also possible to set inputs\n * and to subscribe to outputs.\n */\nexport class DynamicComponent<C> {\n /**\n * Component reference\n */\n private componentRef: ComponentRef<C>;\n\n /**\n * Subscriptions to the component's outputs. Those need\n * to be unsubscribed when the component is destroyed.\n */\n private subscriptions: Subscription[] = [];\n\n /**\n * Component target element\n */\n private target: ViewContainerRef;\n\n /**\n * Component inputs\n */\n private inputs: Record<string, any> = {};\n\n /**\n * Subscriptions to the component's async inputs\n */\n private inputs$$: Record<string, Subscription> = {};\n\n /**\n * Subscribers to the component's outputs\n */\n private subscribers: Record<string, (event: any) => void> = {};\n\n constructor(private componentFactory: ComponentFactory<C>) {}\n\n /**\n * Render the component to a target element.\n * Set it's inputs and subscribe to it's outputs.\n * @param target Target element\n */\n setTarget(target: ViewContainerRef) {\n this.target = target;\n this.componentRef = target.createComponent(this.componentFactory);\n this.updateInputs(this.inputs);\n this.updateSubscribers(this.subscribers);\n }\n\n /**\n * Destroy this component. That means, removing from it's target\n * element and unsubscribing to it's outputs.\n */\n destroy() {\n if (this.target !== undefined) {\n this.target.clear();\n }\n if (this.componentRef !== undefined) {\n this.componentRef.destroy();\n this.componentRef = undefined;\n }\n this.unobserveAllInputs();\n this.unsubscribeAll();\n }\n\n /**\n * Update the component inputs. This is an update so any\n * key not defined won't be overwritten.\n */\n updateInputs(inputs: Record<string, any>) {\n this.inputs = inputs;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedInputs = this.componentFactory.inputs;\n allowedInputs.forEach(\n (value: { propName: string; templateName: string }) => {\n const key = value.propName;\n\n this.unobserveInput(key);\n\n const inputValue = inputs[key];\n if (Object.prototype.hasOwnProperty.call(inputs, key)) {\n if (inputValue instanceof Observable) {\n this.observeInput(key, inputValue);\n } else {\n this.setInputValue(instance, key, inputValue);\n }\n }\n }\n );\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n }\n\n /**\n * Set an instance's input value\n * @param instance Component instance\n * @param key Input key\n * @param value Input value\n */\n private setInputValue(instance: C, key: string, value: any) {\n const currentValue = instance[key];\n if (value === currentValue) {\n return;\n }\n\n const prototype = Object.getPrototypeOf(instance);\n const descriptor = Object.getOwnPropertyDescriptor(prototype, key);\n if (descriptor !== undefined && descriptor.set !== undefined) {\n descriptor.set.call(instance, value);\n } else {\n instance[key] = value;\n }\n }\n\n /**\n * Update the component subscribers. This is an update so any\n * key not defined won't be overwritten.\n */\n updateSubscribers(subscribers: Record<string, (event: any) => void>) {\n this.subscribers = subscribers;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedSubscribers = this.componentFactory.outputs;\n allowedSubscribers.forEach(\n (value: { propName: string; templateName: string }) => {\n const key = value.propName;\n if (Object.prototype.hasOwnProperty.call(subscribers, key)) {\n const emitter = instance[key];\n const subscriber = subscribers[key];\n if (Array.isArray(subscriber)) {\n subscriber.forEach((_subscriber) => {\n this.subscriptions.push(emitter.subscribe(_subscriber));\n });\n } else {\n this.subscriptions.push(emitter.subscribe(subscriber));\n }\n }\n }\n );\n }\n\n /**\n * Subscribe to an observable input and update the component's input value\n * accordingly\n * @param key Input key\n * @param observable Observable\n */\n private observeInput(key: string, observable: Observable<any>) {\n this.inputs$$[key] = observable.subscribe((value: any) => {\n const instance = this.componentRef.instance;\n this.setInputValue(instance, key, value);\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n });\n }\n\n /**\n * Unsubscribe to an observable input\n * @param key Input key\n */\n private unobserveInput(key: string) {\n if (this.inputs$$[key] !== undefined) {\n this.inputs$$[key].unsubscribe();\n this.inputs$$[key] = undefined;\n }\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unobserveAllInputs() {\n Object.values(this.inputs$$).forEach((s: Subscription | undefined) => {\n if (s !== undefined) {\n s.unsubscribe();\n }\n });\n this.inputs$$ = {};\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unsubscribeAll() {\n this.subscriptions.forEach((s: Subscription) => s.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { ComponentFactoryResolver, Injectable, inject } from '@angular/core';\n\nimport { DynamicComponent } from './dynamic-component';\n\n/**\n * Service to creates DynamicComponent instances from base component classes\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicComponentService {\n private resolver = inject(ComponentFactoryResolver);\n\n /**\n * Creates a DynamicComponent instance from a base component class\n * @param componentCls The component class\n * @returns DynamicComponent instance\n */\n create(componentCls: any): DynamicComponent<any> {\n const factory = this.resolver.resolveComponentFactory(componentCls as any);\n return new DynamicComponent<typeof componentCls>(factory);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n inject\n} from '@angular/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { DynamicComponent } from '../shared/dynamic-component';\nimport { DynamicComponentService } from '../shared/dynamic-component.service';\n\n@Component({\n selector: 'igo-dynamic-outlet',\n templateUrl: 'dynamic-outlet.component.html',\n styleUrls: ['dynamic-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DynamicOutletComponent implements OnChanges, OnDestroy {\n private dynamicComponentService = inject(DynamicComponentService);\n private cdRef = inject(ChangeDetectorRef);\n\n /**\n * The dynamic component base class or the dynamic component itself\n */\n @Input() component: DynamicComponent<any> | any;\n\n /**\n * The dynamic component inputs\n */\n @Input() inputs: Record<string, any> = {};\n\n /**\n * The subscribers to the dynamic component outputs\n */\n @Input() subscribers: Record<string, (event: any) => void> = {};\n\n /**\n * The dynamic component\n */\n private dynamicComponent: DynamicComponent<any>;\n\n /**\n * The view element to render the component to\n * @ignore\n */\n @ViewChild('target', { read: ViewContainerRef, static: true })\n private target: ViewContainerRef;\n\n /**\n * If the dynamic component changes, create it.\n * If the inputs or subscribers change, update the current component's\n * inputs or subscribers.\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const component = changes.component;\n const inputs = changes.inputs;\n const subscribers = changes.subscribers;\n const eq = ObjectUtils.objectsAreEquivalent;\n\n if (!component || !component.currentValue) {\n return;\n }\n\n if (component.currentValue !== component.previousValue) {\n this.createComponent(component.currentValue);\n } else {\n const inputsAreEquivalents =\n inputs && eq(inputs.currentValue || {}, inputs.previousValue || {});\n const subscribersAreEquivalents =\n subscribers &&\n eq(subscribers.currentValue || {}, subscribers.previousValue || {});\n\n if (inputsAreEquivalents === false) {\n this.updateInputs();\n }\n\n if (subscribersAreEquivalents === false) {\n this.updateSubscribers();\n }\n }\n this.cdRef.detectChanges();\n }\n\n /**\n * Destroy the dynamic component and all it's subscribers\n * @internal\n */\n ngOnDestroy() {\n if (this.dynamicComponent) {\n this.dynamicComponent.destroy();\n }\n }\n\n /**\n * Create a DynamicComponent out of the component class and render it.\n * @internal\n */\n private createComponent(component: DynamicComponent<any> | any) {\n if (this.dynamicComponent !== undefined) {\n this.dynamicComponent.destroy();\n }\n this.dynamicComponent =\n component instanceof DynamicComponent\n ? component\n : this.dynamicComponentService.create(component);\n this.renderComponent();\n }\n\n /**\n * Create and render the dynamic component. Set it's inputs and subscribers\n * @internal\n */\n private renderComponent() {\n this.updateInputs();\n this.updateSubscribers();\n this.dynamicComponent.setTarget(this.target);\n }\n\n /**\n * Update the dynamic component inputs. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateInputs() {\n this.dynamicComponent.updateInputs(this.inputs);\n }\n\n /**\n * Update the dynamic component subscribers. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateSubscribers() {\n this.dynamicComponent.updateSubscribers(this.subscribers);\n }\n}\n","<ng-template #target></ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { DynamicOutletComponent } from './dynamic-outlet/dynamic-outlet.component';\n\n/**\n * @deprecated import the DynamicOutletComponent directly\n */\n@NgModule({\n imports: [DynamicOutletComponent],\n exports: [DynamicOutletComponent]\n})\nexport class IgoDynamicComponentModule {}\n","import { NgModule } from '@angular/core';\n\nimport { DynamicOutletComponent } from './dynamic-outlet.component';\n\n/**\n * @deprecated import the DynamicOutletComponent directly\n */\n@NgModule({\n imports: [DynamicOutletComponent],\n exports: [DynamicOutletComponent]\n})\nexport class IgoDynamicOutletModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}