@pepperi-addons/ngx-lib 0.4.0-angular14.6 → 0.4.0-angular14.62

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