@pepperi-addons/ngx-lib 0.4.0-angular14.9 → 0.4.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/chips/chips.component.d.ts +93 -0
  2. package/chips/chips.component.theme.scss +58 -0
  3. package/chips/chips.model.d.ts +13 -0
  4. package/chips/chips.module.d.ts +20 -0
  5. package/chips/chips.service.d.ts +15 -0
  6. package/{plugin → chips}/index.d.ts +1 -1
  7. package/chips/public-api.d.ts +3 -0
  8. package/color/color-picker.component.d.ts +1 -1
  9. package/core/common/model/wapi.model.d.ts +1 -0
  10. package/core/common/services/addon.service.d.ts +13 -9
  11. package/core/common/services/utilities.service.d.ts +5 -4
  12. package/core/customization/customization.model.d.ts +7 -0
  13. package/esm2020/address/address.component.mjs +1 -1
  14. package/esm2020/attachment/attachment.component.mjs +1 -1
  15. package/esm2020/checkbox/checkbox.component.mjs +1 -1
  16. package/esm2020/chips/chips.component.mjs +158 -0
  17. package/esm2020/chips/chips.model.mjs +2 -0
  18. package/esm2020/chips/chips.module.mjs +81 -0
  19. package/esm2020/chips/chips.service.mjs +44 -0
  20. package/esm2020/chips/pepperi-addons-ngx-lib-chips.mjs +5 -0
  21. package/esm2020/chips/public-api.mjs +7 -0
  22. package/esm2020/color/color-picker.component.mjs +4 -4
  23. package/esm2020/color/color.component.mjs +1 -1
  24. package/esm2020/core/common/model/wapi.model.mjs +1 -1
  25. package/esm2020/core/common/services/addon.service.mjs +43 -38
  26. package/esm2020/core/common/services/utilities.service.mjs +66 -13
  27. package/esm2020/core/customization/customization.model.mjs +10 -1
  28. package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -5
  29. package/esm2020/core/http/services/loader.service.mjs +4 -4
  30. package/esm2020/date/date.component.mjs +3 -3
  31. package/esm2020/field-title/field-title.component.mjs +6 -3
  32. package/esm2020/form/field-generator.component.mjs +7 -7
  33. package/esm2020/form/form.component.mjs +12 -3
  34. package/esm2020/form/internal-button.component.mjs +1 -1
  35. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  36. package/esm2020/form/internal-form.component.mjs +4 -2
  37. package/esm2020/form/internal-list.component.mjs +5 -2
  38. package/esm2020/group-buttons/group-buttons.component.mjs +8 -4
  39. package/esm2020/icon/icon-generated-all.model.mjs +8 -1
  40. package/esm2020/icon/icon-generated.model.mjs +29 -1
  41. package/esm2020/image/image.component.mjs +1 -1
  42. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +3 -91
  43. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +1 -56
  44. package/esm2020/link/link.component.mjs +1 -1
  45. package/esm2020/list/list-pager.component.mjs +1 -1
  46. package/esm2020/list/list.component.mjs +5 -2
  47. package/esm2020/list/virtual-scroller.mjs +11 -10
  48. package/esm2020/menu/menu.component.mjs +11 -3
  49. package/esm2020/page-layout/page-layout.component.mjs +3 -3
  50. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
  51. package/esm2020/quantity-selector/quantity-selector.component.mjs +24 -4
  52. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
  53. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +1 -1
  54. package/esm2020/remote-loader/addon-block-loader.component.mjs +23 -5
  55. package/esm2020/remote-loader/addon-block-loader.service.mjs +9 -8
  56. package/esm2020/remote-loader/public-api.mjs +2 -1
  57. package/esm2020/remote-loader/remote-loader-element.component.mjs +109 -0
  58. package/esm2020/remote-loader/remote-loader.component.mjs +37 -59
  59. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  60. package/esm2020/remote-loader/remote-loader.module.mjs +12 -3
  61. package/esm2020/remote-loader/remote-loader.service.mjs +50 -26
  62. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +1 -1
  63. package/esm2020/select/select.component.mjs +33 -7
  64. package/esm2020/side-bar/side-bar.component.mjs +11 -27
  65. package/esm2020/side-bar/side-bar.module.mjs +7 -3
  66. package/esm2020/signature/signature.component.mjs +1 -1
  67. package/esm2020/size-detector/size-detector.component.mjs +2 -2
  68. package/esm2020/slider/slider.component.mjs +1 -1
  69. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
  70. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  71. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
  72. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  73. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
  74. package/esm2020/textarea/textarea.component.mjs +1 -1
  75. package/esm2020/textbox/textbox.component.mjs +48 -7
  76. package/esm2020/textbox-icon/textbox-icon.component.mjs +2 -2
  77. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
  78. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  79. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +1 -1
  80. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  81. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
  82. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  83. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +287 -0
  84. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
  85. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
  86. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  87. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +2 -2
  88. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  89. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  90. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  91. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +23 -12
  92. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  93. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
  94. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  95. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +36 -1
  96. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  97. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +1 -1
  98. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  99. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
  100. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  101. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +1 -1
  102. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  103. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +15 -11
  104. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  105. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +10 -2
  106. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  107. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
  108. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  109. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  110. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  111. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
  112. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  113. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
  114. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  115. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +249 -105
  116. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  117. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
  118. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  119. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +32 -6
  120. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  121. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
  122. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  123. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +1 -1
  124. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  125. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +1 -1
  126. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  127. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +1 -1
  128. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  129. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +6 -6
  130. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  131. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +1 -1
  132. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  133. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
  134. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  135. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +49 -8
  136. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  137. package/fesm2015/pepperi-addons-ngx-lib.mjs +128 -57
  138. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  139. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
  140. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  141. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +1 -1
  142. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  143. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
  144. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  145. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +287 -0
  146. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
  147. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
  148. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  149. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +2 -2
  150. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  151. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  152. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  153. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +26 -12
  154. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  155. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
  156. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  157. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +36 -1
  158. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  159. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +1 -1
  160. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  161. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
  162. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  163. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +1 -1
  164. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  165. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +15 -11
  166. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  167. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +10 -2
  168. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  169. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
  170. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  171. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  172. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  173. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
  174. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  175. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
  176. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  177. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +230 -98
  178. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  179. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
  180. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  181. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +32 -6
  182. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  183. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
  184. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  185. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +1 -1
  186. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  187. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +1 -1
  188. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  189. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +1 -1
  190. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  191. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +6 -6
  192. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  193. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +1 -1
  194. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  195. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
  196. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  197. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +48 -8
  198. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  199. package/fesm2020/pepperi-addons-ngx-lib.mjs +125 -58
  200. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  201. package/field-title/field-title.component.d.ts +2 -1
  202. package/form/field-generator.component.d.ts +1 -1
  203. package/group-buttons/group-buttons.component.d.ts +2 -1
  204. package/icon/icon-generated-all.model.d.ts +7 -0
  205. package/icon/icon-generated.model.d.ts +29 -1
  206. package/menu/menu.component.d.ts +2 -0
  207. package/package.json +14 -13
  208. package/page-layout/page-layout.component.d.ts +1 -1
  209. package/quantity-selector/quantity-selector.component.d.ts +7 -1
  210. package/remote-loader/addon-block-loader.component.d.ts +10 -6
  211. package/remote-loader/addon-block-loader.service.d.ts +2 -3
  212. package/remote-loader/public-api.d.ts +1 -0
  213. package/remote-loader/remote-loader-element.component.d.ts +30 -0
  214. package/remote-loader/remote-loader.component.d.ts +3 -5
  215. package/remote-loader/remote-loader.model.d.ts +16 -11
  216. package/remote-loader/remote-loader.module.d.ts +8 -6
  217. package/remote-loader/remote-loader.service.d.ts +5 -7
  218. package/select/select.component.d.ts +10 -4
  219. package/side-bar/side-bar.component.d.ts +3 -3
  220. package/src/assets/i18n/en.ngx-lib.json +4 -0
  221. package/src/core/style/components/checkbox.scss +20 -1
  222. package/src/core/style/components/general.scss +5 -4
  223. package/textbox/textbox.component.d.ts +16 -1
  224. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +0 -5
  225. package/esm2020/plugin/plugin-proxy.component.mjs +0 -90
  226. package/esm2020/plugin/plugin.model.mjs +0 -2
  227. package/esm2020/plugin/public-api.mjs +0 -6
  228. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +0 -107
  229. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +0 -1
  230. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +0 -101
  231. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +0 -1
  232. package/plugin/plugin-proxy.component.d.ts +0 -22
  233. package/plugin/plugin.model.d.ts +0 -5
  234. package/plugin/public-api.d.ts +0 -2
@@ -1,74 +1,98 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, EventEmitter, ViewContainerRef, Component, ViewChild, Input, Output, TemplateRef, NgModule } from '@angular/core';
2
+ import { Injectable, EventEmitter, createNgModuleRef, ViewContainerRef, Component, ViewChild, Input, Output, Optional, TemplateRef, NgModule } from '@angular/core';
3
+ import { coerceNumberProperty } from '@angular/cdk/coercion';
3
4
  import * as i1 from '@pepperi-addons/ngx-lib';
4
5
  import { PepNgxLibModule } from '@pepperi-addons/ngx-lib';
5
- import * as i2 from '@angular/router';
6
- import * as i2$1 from '@angular/common';
6
+ import * as i2 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import * as i1$1 from '@pepperi-addons/ngx-lib/dialog';
9
9
  import { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';
10
10
  import { loadRemoteModule } from '@angular-architects/module-federation';
11
+ import * as i3 from '@angular/router';
11
12
  import { HttpClientModule } from '@angular/common/http';
12
13
  import { MatDialogModule } from '@angular/material/dialog';
14
+ import { ModuleFederationToolsModule } from '@angular-architects/module-federation-tools';
13
15
 
14
16
  class PepRemoteLoaderService {
15
- constructor(httpService, sessionService, addonService, route) {
17
+ constructor(httpService, sessionService, addonService) {
16
18
  this.httpService = httpService;
17
19
  this.sessionService = sessionService;
18
20
  this.addonService = addonService;
19
- this.route = route;
20
21
  //
21
22
  }
22
- getRemoteLoaderOptions(blockLoaderData, remoteEntry = '') {
23
- return {
24
- addonId: blockLoaderData.relation.AddonUUID,
25
- remoteEntry: remoteEntry.length > 0 ? remoteEntry : `${blockLoaderData.addonPublicBaseURL}${blockLoaderData.relation.AddonRelativeURL}.js`,
23
+ getRemoteLoaderOptions(blockLoaderData, blockRemoteEntry = '', type = 'module') {
24
+ const exposedModule = blockLoaderData.relation.ElementsModule?.length > 0 ? blockLoaderData.relation.ElementsModule : blockLoaderData.relation.ModuleName;
25
+ const res = {
26
+ type: type,
27
+ remoteEntry: blockRemoteEntry.length > 0 ? blockRemoteEntry : `${blockLoaderData.addonPublicBaseURL}${blockLoaderData.relation.AddonRelativeURL}.js`,
26
28
  remoteName: blockLoaderData.relation.AddonRelativeURL,
27
- exposedModule: `./${blockLoaderData.relation.ModuleName}`,
28
- componentName: blockLoaderData.relation.ComponentName,
29
+ exposedModule: `./${exposedModule}`,
30
+ addonId: blockLoaderData.relation.AddonUUID, // For local use (adding the relative path to the assets).
29
31
  };
32
+ // If it's web components
33
+ if (blockLoaderData.relation.ElementsModule?.length > 0) {
34
+ res['elementName'] = blockLoaderData.relation.ElementName;
35
+ }
36
+ else { // For load the component from the module.
37
+ res['componentName'] = blockLoaderData.relation.ComponentName;
38
+ }
39
+ return res;
30
40
  }
31
- getAddonBaseUrl(addonUUID, fileName = 'api') {
41
+ getBlockLoaderDataUrl(options) {
42
+ const fileName = 'addon_blocks';
43
+ const pagesAddonUuid = this.addonService.getPagesAddonUUID();
44
+ let pagesBaseUrl;
32
45
  // For devServer run server on localhost.
33
- const devServer = this.route.snapshot.queryParamMap.get('devServer') === 'true';
34
- if (devServer) {
35
- return `http://localhost:4500/${fileName}`;
46
+ if (options.pagesDevServer?.length > 0) {
47
+ pagesBaseUrl = `${options.pagesDevServer}/${fileName}`;
36
48
  }
37
49
  else {
38
50
  const baseUrl = this.sessionService.getPapiBaseUrl();
39
- return `${baseUrl}/addons/api/${addonUUID}/${fileName}`;
51
+ pagesBaseUrl = `${baseUrl}/addons/api/${pagesAddonUuid}/${fileName}`;
40
52
  }
53
+ const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${options.name}&slugName=${options.slugName}&blockType=${options.blockType}&addonUUID=${options.addonUUID}`;
54
+ return url;
41
55
  }
42
- async getBlockRemoteLoaderOptions(name, blockType = 'AddonBlock', remoteEntry = '') {
56
+ async getBlockRemoteLoaderOptions(options) {
57
+ options.blockType = options.blockType ?? 'AddonBlock';
58
+ options.name = options.name ?? '';
59
+ options.slugName = options.slugName ?? '';
60
+ options.addonUUID = options.addonUUID ?? '';
43
61
  return new Promise((resolve, reject) => {
44
- const pagesAddonUuid = this.addonService.getPagesAddonUUID();
45
- const pagesBaseUrl = this.getAddonBaseUrl(pagesAddonUuid, 'addon_blocks');
46
- const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${name}&blockType=${blockType}`;
47
- this.httpService.getHttpCall(url).toPromise().then((data) => {
48
- if (data) {
49
- resolve(this.getRemoteLoaderOptions(data, remoteEntry));
62
+ if (options.name?.length > 0 || (options.slugName?.length > 0 && options.blockType === 'SettingsBlock')) {
63
+ const blockLoaderDataUrl = this.getBlockLoaderDataUrl(options);
64
+ this.httpService.getHttpCall(blockLoaderDataUrl).toPromise().then((data) => {
65
+ const ngVersionNumber = coerceNumberProperty(data.relation?.SubType?.toLocaleLowerCase().replace('ng', ''), 14);
66
+ const type = ngVersionNumber >= 14 ? 'module' : 'script';
67
+ resolve(this.getRemoteLoaderOptions(data, options.blockRemoteEntry, type));
68
+ }).catch(err => {
69
+ const nameMsg = options.blockType === 'SettingsBlock' ? `slugName - ${options.slugName}` : `name - ${options.name}`;
70
+ reject(`Block with ${nameMsg} is not found for type - ${options.blockType}`);
71
+ });
72
+ }
73
+ else {
74
+ if (options.blockType === 'SettingsBlock') {
75
+ reject(`slugName is not supplied`);
50
76
  }
51
77
  else {
52
- reject(`Addon block with name - ${name} is not found for type - ${blockType}`);
78
+ reject(`name is not supplied`);
53
79
  }
54
- });
80
+ }
55
81
  });
56
82
  }
57
83
  }
58
- PepRemoteLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderService, deps: [{ token: i1.PepHttpService }, { token: i1.PepSessionService }, { token: i1.PepAddonService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
84
+ PepRemoteLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderService, deps: [{ token: i1.PepHttpService }, { token: i1.PepSessionService }, { token: i1.PepAddonService }], target: i0.ɵɵFactoryTarget.Injectable });
59
85
  PepRemoteLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderService, providedIn: 'root' });
60
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderService, decorators: [{
61
87
  type: Injectable,
62
88
  args: [{
63
89
  providedIn: 'root'
64
90
  }]
65
- }], ctorParameters: function () { return [{ type: i1.PepHttpService }, { type: i1.PepSessionService }, { type: i1.PepAddonService }, { type: i2.ActivatedRoute }]; } });
91
+ }], ctorParameters: function () { return [{ type: i1.PepHttpService }, { type: i1.PepSessionService }, { type: i1.PepAddonService }]; } });
66
92
 
67
93
  class PepRemoteLoaderComponent {
68
- constructor(injector, cfr, compiler, pepAddonService) {
94
+ constructor(injector, pepAddonService) {
69
95
  this.injector = injector;
70
- this.cfr = cfr;
71
- this.compiler = compiler;
72
96
  this.pepAddonService = pepAddonService;
73
97
  this._options = null;
74
98
  // This is the data passed by the API Design documentation.
@@ -96,73 +120,53 @@ class PepRemoteLoaderComponent {
96
120
  if (this.hostObject && this.compRef?.instance) {
97
121
  this.compRef.instance.hostObject = this.hostObject;
98
122
  // TODO: Check if this is needed?? if not remove this.
99
- if (this.compRef?.instance?.ngOnChanges) {
100
- this.compRef.instance.ngOnChanges(this.hostObject);
101
- }
123
+ // if (this.compRef?.instance?.ngOnChanges) {
124
+ // this.compRef.instance.ngOnChanges(this.hostObject);
125
+ // }
102
126
  }
103
127
  }
104
- async ngOnChanges(changes) {
128
+ ngOnChanges(changes) {
105
129
  // if (changes?.options?.currentValue) {
106
130
  // this.loadModule(changes?.options?.currentValue);
107
131
  // }
108
132
  }
109
133
  async loadModule() {
110
- const t0 = performance.now();
111
- // Check if only need update
112
- if (!this.options?.update) {
113
- this.viewContainer?.clear();
114
- // try {
115
- // if (this.options.addonId) {
116
- // const publicPathArr = this.options.remoteEntry.split('/');
117
- // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
118
- // __webpack_public_path__ = publicPath;
119
- // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
120
- // }
121
- // const module = await loadRemoteModule(this.options).then(m => m);
122
- // const component = module[this.options.componentName];
123
- // this.compRef = this.viewContainer.createComponent(component);
124
- // } catch (e) {
134
+ try {
135
+ const t0 = performance.now();
125
136
  this.viewContainer?.clear();
126
- // Load Component
127
- if (this.options?.noModule) {
128
- const component = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);
129
- // New code
130
- // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });
131
- // Old code
132
- const componentFactory = this.cfr.resolveComponentFactory(component);
133
- this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector);
134
- }
135
- // Load Module
136
- else {
137
- // const publicPathArr = this.options.remoteEntry.split('/');
138
- // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
139
- // __webpack_public_path__ = publicPath;
140
- // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
137
+ if (this.options.exposedModule?.length > 0) { // Load module
138
+ if (this.options?.addonId && (this.options.type === 'module' || this.options.type === 'script')) {
139
+ const lastSlashIndex = this.options.remoteEntry?.lastIndexOf('/') || -1;
140
+ if (lastSlashIndex > 0) {
141
+ const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
142
+ this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
143
+ }
144
+ }
141
145
  const module = await loadRemoteModule(this.options).then(m => m);
142
- // New code
143
- // const moduleRef = createNgModuleRef(module, this.injector);
144
- // const component = module[this.options.componentName];
145
- // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
146
- // Old code
147
- const moduleFactory = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./', '')]);
148
- const moduleRef = moduleFactory.create(this.injector);
149
- const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);
150
- this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector, null, moduleRef);
146
+ const moduleRef = createNgModuleRef(module[this.options.exposedModule.replace('./', '')], this.injector);
147
+ this.compRef = this.viewContainer.createComponent(module[this.options.componentName], { injector: this.injector, ngModuleRef: moduleRef });
151
148
  const t1 = performance.now();
152
149
  console.log('remote module load performance: ' + (t1 - t0) / 1000);
153
150
  }
151
+ // Check if this is in use??? (comment out in Angular 14 version)
152
+ // else { // Load Component
153
+ // const componentType = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);
154
+ // this.compRef = this.viewContainer.createComponent(componentType, { injector: this.injector });
154
155
  // }
155
156
  this.load.emit();
157
+ if (this.compRef) {
158
+ this.setHostComponentIntoComponentRef();
159
+ this.compRef?.instance['hostEvents']?.subscribe(e => {
160
+ // switch(e.action){
161
+ // case 'addon-loaded':
162
+ // this.showSpinner = false;
163
+ // }
164
+ this.hostEvents.emit(e);
165
+ });
166
+ }
156
167
  }
157
- if (this.compRef) {
158
- this.setHostComponentIntoComponentRef();
159
- this.compRef?.instance['hostEvents']?.subscribe(e => {
160
- // switch(e.action){
161
- // case 'addon-loaded':
162
- // this.showSpinner = false;
163
- // }
164
- this.hostEvents.emit(e);
165
- });
168
+ catch (error) {
169
+ console.error(error);
166
170
  }
167
171
  }
168
172
  ngOnDestroy() {
@@ -170,7 +174,7 @@ class PepRemoteLoaderComponent {
170
174
  this.viewContainer?.clear();
171
175
  }
172
176
  }
173
- PepRemoteLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderComponent, deps: [{ token: i0.Injector }, { token: i0.ComponentFactoryResolver }, { token: i0.Compiler }, { token: i1.PepAddonService }], target: i0.ɵɵFactoryTarget.Component });
177
+ PepRemoteLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderComponent, deps: [{ token: i0.Injector }, { token: i1.PepAddonService }], target: i0.ɵɵFactoryTarget.Component });
174
178
  PepRemoteLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepRemoteLoaderComponent, selector: "pep-remote-loader", inputs: { options: "options", hostObject: "hostObject" }, outputs: { hostEvents: "hostEvents", load: "load" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["placeHolder"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
175
179
  <!-- <mat-spinner *ngIf="showSpinner; else placeHolder"></mat-spinner> -->
176
180
  <ng-template #placeHolder></ng-template>
@@ -184,7 +188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
184
188
  <ng-template #placeHolder></ng-template>
185
189
  `
186
190
  }]
187
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.Compiler }, { type: i1.PepAddonService }]; }, propDecorators: { viewContainer: [{
191
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.PepAddonService }]; }, propDecorators: { viewContainer: [{
188
192
  type: ViewChild,
189
193
  args: ['placeHolder', { read: ViewContainerRef, static: true }]
190
194
  }], options: [{
@@ -197,10 +201,115 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
197
201
  type: Output
198
202
  }] } });
199
203
 
204
+ class PepRemoteLoaderElementComponent {
205
+ constructor(renderer, el, pepAddonService, remoteLoaderService, route) {
206
+ this.renderer = renderer;
207
+ this.el = el;
208
+ this.pepAddonService = pepAddonService;
209
+ this.remoteLoaderService = remoteLoaderService;
210
+ this.route = route;
211
+ this.load = new EventEmitter();
212
+ this.element = null;
213
+ }
214
+ ngOnChanges() {
215
+ if (!this.element)
216
+ return;
217
+ this.populateProps();
218
+ }
219
+ populateProps() {
220
+ for (const prop in this.props) {
221
+ this.element[prop] = this.props[prop];
222
+ }
223
+ }
224
+ setupEvents() {
225
+ for (const event in this.events) {
226
+ this.element.addEventListener(event, this.events[event]);
227
+ }
228
+ }
229
+ async loadOptionsFromRoute() {
230
+ const params = this.route?.snapshot.params;
231
+ const data = this.route?.snapshot.data;
232
+ const blockType = data?.blockType || 'SettingsBlock';
233
+ const slugName = params?.slugName || data?.slugName;
234
+ const blockName = params?.blockName || data?.blockName;
235
+ if (blockName?.length > 0 || (slugName?.length > 0 && blockType === 'SettingsBlock')) {
236
+ const addonUUID = params?.addonUUID || data?.addonUUID || '';
237
+ const blockRemoteEntry = data?.blockRemoteEntry || '';
238
+ this.options = await this.remoteLoaderService.getBlockRemoteLoaderOptions({
239
+ name: blockName,
240
+ slugName,
241
+ blockType,
242
+ addonUUID,
243
+ blockRemoteEntry
244
+ });
245
+ const fileName = `${this.options['remoteName']}.js`;
246
+ if (window.location.search.indexOf('dev=true') > 0) {
247
+ this.options['remoteEntry'] = `http://localhost:4400/${fileName}`;
248
+ }
249
+ // Set the data into the props cause this component is loading from the route.
250
+ this.props = data;
251
+ }
252
+ }
253
+ async ngAfterContentInit() {
254
+ try {
255
+ const t0 = performance.now();
256
+ // If the options is not supplied then we need to get it from the route.
257
+ if (!this.options) {
258
+ await this.loadOptionsFromRoute();
259
+ }
260
+ if (!this.options) {
261
+ throw new Error('No options supplied to the component.');
262
+ }
263
+ else {
264
+ if (this.options?.addonId && (this.options.type === 'module' || this.options.type === 'script')) {
265
+ const lastSlashIndex = this.options.remoteEntry?.lastIndexOf('/') || -1;
266
+ if (lastSlashIndex > 0) {
267
+ const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
268
+ this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
269
+ }
270
+ }
271
+ await loadRemoteModule(this.options);
272
+ this.element = this.renderer.createElement(this.options.elementName);
273
+ this.populateProps();
274
+ this.setupEvents();
275
+ this.renderer.appendChild(this.el.nativeElement, this.element);
276
+ const t1 = performance.now();
277
+ console.log('remote module wc load performance: ' + (t1 - t0) / 1000);
278
+ this.load.emit();
279
+ }
280
+ }
281
+ catch (error) {
282
+ console.error(error);
283
+ }
284
+ }
285
+ }
286
+ PepRemoteLoaderElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderElementComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.PepAddonService }, { token: PepRemoteLoaderService }, { token: i3.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Component });
287
+ PepRemoteLoaderElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepRemoteLoaderElementComponent, selector: "pep-remote-loader-element", inputs: { options: "options", props: "props", events: "events" }, outputs: { load: "load" }, usesOnChanges: true, ngImport: i0, template: `
288
+ <!--<div #vc style="height: inherit;"></div>-->
289
+ `, isInline: true, styles: [":host{width:100%;height:inherit}:host::ng-deep>*{height:inherit}\n"] });
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderElementComponent, decorators: [{
291
+ type: Component,
292
+ args: [{ selector: 'pep-remote-loader-element', template: `
293
+ <!--<div #vc style="height: inherit;"></div>-->
294
+ `, styles: [":host{width:100%;height:inherit}:host::ng-deep>*{height:inherit}\n"] }]
295
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.PepAddonService }, { type: PepRemoteLoaderService }, { type: i3.ActivatedRoute, decorators: [{
296
+ type: Optional
297
+ }] }]; }, propDecorators: { options: [{
298
+ type: Input
299
+ }], props: [{
300
+ type: Input
301
+ }], events: [{
302
+ type: Input
303
+ }], load: [{
304
+ type: Output
305
+ }] } });
306
+
200
307
  class PepAddonBlockLoaderComponent {
201
308
  constructor(remoteLoaderService) {
202
309
  this.remoteLoaderService = remoteLoaderService;
310
+ this.addonId = '';
203
311
  this.remoteEntry = '';
312
+ this.slugName = '';
204
313
  this._blockType = 'AddonBlock';
205
314
  this._name = '';
206
315
  this.hostObject = null;
@@ -209,7 +318,10 @@ class PepAddonBlockLoaderComponent {
209
318
  this.blockLoad = new EventEmitter();
210
319
  this.inDialog = false;
211
320
  this.remotePathOptions = null;
212
- //
321
+ this.loadElement = false;
322
+ this.onHostEventsCallback = (event) => {
323
+ this.onHostEvents(event.detail);
324
+ };
213
325
  }
214
326
  set blockType(value) {
215
327
  this._blockType = value;
@@ -231,7 +343,15 @@ class PepAddonBlockLoaderComponent {
231
343
  return this._dialogRef;
232
344
  }
233
345
  ngOnInit() {
234
- this.remoteLoaderService.getBlockRemoteLoaderOptions(this.name, this.blockType, this.remoteEntry).then(options => {
346
+ const options = {
347
+ name: this.name,
348
+ slugName: this.slugName,
349
+ blockType: this.blockType,
350
+ addonUUID: this.addonId,
351
+ blockRemoteEntry: this.remoteEntry
352
+ };
353
+ this.remoteLoaderService.getBlockRemoteLoaderOptions(options).then((options) => {
354
+ this.loadElement = options.elementName?.length > 0;
235
355
  this.remotePathOptions = options;
236
356
  });
237
357
  }
@@ -252,15 +372,19 @@ class PepAddonBlockLoaderComponent {
252
372
  }
253
373
  }
254
374
  PepAddonBlockLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderComponent, deps: [{ token: PepRemoteLoaderService }], target: i0.ɵɵFactoryTarget.Component });
255
- PepAddonBlockLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepAddonBlockLoaderComponent, selector: "pep-addon-block-loader", inputs: { remoteEntry: "remoteEntry", blockType: "blockType", name: "name", hostObject: "hostObject", dialogRef: "dialogRef" }, outputs: { hostEvents: "hostEvents", blockLoad: "blockLoad" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"!inDialog\">\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #dialogTemplate let-data>\n <pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\" [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n </ng-container>\n </pep-dialog>\n</ng-template>\n\n<ng-template #remoteLoaderTemplate>\n <pep-remote-loader *ngIf=\"remotePathOptions\"\n [options]=\"remotePathOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.PepDialogComponent, selector: "pep-dialog", inputs: ["title", "showClose", "showHeader", "showFooter"], outputs: ["close"] }, { kind: "component", type: PepRemoteLoaderComponent, selector: "pep-remote-loader", inputs: ["options", "hostObject"], outputs: ["hostEvents", "load"] }] });
375
+ PepAddonBlockLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepAddonBlockLoaderComponent, selector: "pep-addon-block-loader", inputs: { addonId: "addonId", remoteEntry: "remoteEntry", slugName: "slugName", blockType: "blockType", name: "name", hostObject: "hostObject", dialogRef: "dialogRef" }, outputs: { hostEvents: "hostEvents", blockLoad: "blockLoad" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"!inDialog\">\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #dialogTemplate let-data>\n <pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\" [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n </ng-container>\n </pep-dialog>\n</ng-template>\n\n<ng-template #remoteLoaderTemplate>\n <pep-remote-loader *ngIf=\"remotePathOptions && !loadElement\"\n [options]=\"remotePathOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n\n <pep-remote-loader-element *ngIf=\"remotePathOptions && loadElement\" \n [options]=\"remotePathOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onHostEventsCallback }\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader-element>\n\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.PepDialogComponent, selector: "pep-dialog", inputs: ["title", "showClose", "showHeader", "showFooter"], outputs: ["close"] }, { kind: "component", type: PepRemoteLoaderComponent, selector: "pep-remote-loader", inputs: ["options", "hostObject"], outputs: ["hostEvents", "load"] }, { kind: "component", type: PepRemoteLoaderElementComponent, selector: "pep-remote-loader-element", inputs: ["options", "props", "events"], outputs: ["load"] }] });
256
376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderComponent, decorators: [{
257
377
  type: Component,
258
- args: [{ selector: 'pep-addon-block-loader', template: "<ng-container *ngIf=\"!inDialog\">\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #dialogTemplate let-data>\n <pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\" [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n </ng-container>\n </pep-dialog>\n</ng-template>\n\n<ng-template #remoteLoaderTemplate>\n <pep-remote-loader *ngIf=\"remotePathOptions\"\n [options]=\"remotePathOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n</ng-template>" }]
378
+ args: [{ selector: 'pep-addon-block-loader', template: "<ng-container *ngIf=\"!inDialog\">\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #dialogTemplate let-data>\n <pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\" [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n </ng-container>\n </pep-dialog>\n</ng-template>\n\n<ng-template #remoteLoaderTemplate>\n <pep-remote-loader *ngIf=\"remotePathOptions && !loadElement\"\n [options]=\"remotePathOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n\n <pep-remote-loader-element *ngIf=\"remotePathOptions && loadElement\" \n [options]=\"remotePathOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onHostEventsCallback }\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader-element>\n\n</ng-template>" }]
259
379
  }], ctorParameters: function () { return [{ type: PepRemoteLoaderService }]; }, propDecorators: { dialogTemplate: [{
260
380
  type: ViewChild,
261
381
  args: ['dialogTemplate', { static: true, read: TemplateRef }]
382
+ }], addonId: [{
383
+ type: Input
262
384
  }], remoteEntry: [{
263
385
  type: Input
386
+ }], slugName: [{
387
+ type: Input
264
388
  }], blockType: [{
265
389
  type: Input
266
390
  }], name: [{
@@ -276,18 +400,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
276
400
  }] } });
277
401
 
278
402
  class PepAddonBlockLoaderService {
279
- constructor(resolver, dialogService) {
280
- this.resolver = resolver;
403
+ constructor(dialogService) {
281
404
  this.dialogService = dialogService;
282
405
  //
283
406
  }
284
407
  loadAddonBlockInternal(options) {
285
408
  if (options.container !== null) {
286
- const factory = this.resolver.resolveComponentFactory(PepAddonBlockLoaderComponent);
287
- const componentRef = options.container.createComponent(factory);
409
+ const componentRef = options.container.createComponent(PepAddonBlockLoaderComponent);
288
410
  const addonBlockInstance = componentRef.instance;
289
- addonBlockInstance.blockType = options.blockType || 'AddonBlock';
290
411
  addonBlockInstance.name = options.name;
412
+ addonBlockInstance.slugName = options.slugName;
413
+ addonBlockInstance.blockType = options.blockType || 'AddonBlock';
414
+ addonBlockInstance.addonId = options.addonUUID;
415
+ addonBlockInstance.remoteEntry = options.blockRemoteEntry;
291
416
  addonBlockInstance.hostObject = options.hostObject;
292
417
  addonBlockInstance.hostEvents.subscribe((event) => {
293
418
  if (options.hostEventsCallback) {
@@ -323,32 +448,36 @@ class PepAddonBlockLoaderService {
323
448
  }
324
449
  }
325
450
  }
326
- PepAddonBlockLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1$1.PepDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
451
+ PepAddonBlockLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderService, deps: [{ token: i1$1.PepDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
327
452
  PepAddonBlockLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderService, providedIn: 'root' });
328
453
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderService, decorators: [{
329
454
  type: Injectable,
330
455
  args: [{
331
456
  providedIn: 'root'
332
457
  }]
333
- }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1$1.PepDialogService }]; } });
458
+ }], ctorParameters: function () { return [{ type: i1$1.PepDialogService }]; } });
334
459
 
335
460
  class PepRemoteLoaderModule {
336
461
  }
337
462
  PepRemoteLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
338
463
  PepRemoteLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderModule, declarations: [PepAddonBlockLoaderComponent,
339
- PepRemoteLoaderComponent], imports: [CommonModule,
464
+ PepRemoteLoaderComponent,
465
+ PepRemoteLoaderElementComponent], imports: [CommonModule,
340
466
  HttpClientModule,
467
+ ModuleFederationToolsModule,
341
468
  // Material modules,
342
469
  MatDialogModule,
343
470
  // ngx-lib modules
344
471
  PepNgxLibModule,
345
472
  PepDialogModule], exports: [PepAddonBlockLoaderComponent,
346
- PepRemoteLoaderComponent] });
473
+ PepRemoteLoaderComponent,
474
+ PepRemoteLoaderElementComponent] });
347
475
  PepRemoteLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderModule, providers: [
348
476
  PepAddonBlockLoaderService,
349
477
  PepRemoteLoaderService
350
478
  ], imports: [CommonModule,
351
479
  HttpClientModule,
480
+ ModuleFederationToolsModule,
352
481
  // Material modules,
353
482
  MatDialogModule,
354
483
  // ngx-lib modules
@@ -360,10 +489,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
360
489
  declarations: [
361
490
  PepAddonBlockLoaderComponent,
362
491
  PepRemoteLoaderComponent,
492
+ PepRemoteLoaderElementComponent,
363
493
  ],
364
494
  imports: [
365
495
  CommonModule,
366
496
  HttpClientModule,
497
+ ModuleFederationToolsModule,
367
498
  // Material modules,
368
499
  MatDialogModule,
369
500
  // ngx-lib modules
@@ -373,6 +504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
373
504
  exports: [
374
505
  PepAddonBlockLoaderComponent,
375
506
  PepRemoteLoaderComponent,
507
+ PepRemoteLoaderElementComponent
376
508
  ],
377
509
  providers: [
378
510
  PepAddonBlockLoaderService,
@@ -389,5 +521,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
389
521
  * Generated bundle index. Do not edit.
390
522
  */
391
523
 
392
- export { PepAddonBlockLoaderComponent, PepAddonBlockLoaderService, PepRemoteLoaderComponent, PepRemoteLoaderModule, PepRemoteLoaderService };
524
+ export { PepAddonBlockLoaderComponent, PepAddonBlockLoaderService, PepRemoteLoaderComponent, PepRemoteLoaderElementComponent, PepRemoteLoaderModule, PepRemoteLoaderService };
393
525
  //# sourceMappingURL=pepperi-addons-ngx-lib-remote-loader.mjs.map