@pepperi-addons/ngx-lib 0.4.2-beta.32 → 0.4.2-beta.320

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 (410) hide show
  1. package/README.md +35 -0
  2. package/address/address.component.d.ts +9 -2
  3. package/attachment/attachment.component.d.ts +3 -1
  4. package/carousel/carousel.component.d.ts +3 -2
  5. package/checkbox/checkbox.component.d.ts +8 -1
  6. package/chips/chips.component.d.ts +4 -7
  7. package/chips/chips.service.d.ts +0 -3
  8. package/core/common/directives/auto-width.directive.d.ts +6 -2
  9. package/core/common/directives/base-destroyer.directive.d.ts +10 -0
  10. package/core/common/directives/public-api.d.ts +1 -0
  11. package/core/common/pipes/common-pipes.d.ts +5 -2
  12. package/core/common/services/addon.service.d.ts +6 -4
  13. package/core/common/services/file.service.d.ts +7 -2
  14. package/core/common/services/session.service.d.ts +2 -0
  15. package/core/common/services/utilities.service.d.ts +4 -4
  16. package/core/customization/customization.model.d.ts +4 -1
  17. package/core/customization/customization.service.d.ts +4 -0
  18. package/date/date.component.d.ts +4 -2
  19. package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
  20. package/draggable-items/draggable-items.component.d.ts +3 -6
  21. package/draggable-items/draggable-items.module.d.ts +4 -3
  22. package/elements/README.md +256 -0
  23. package/esm2020/address/address.component.mjs +93 -5
  24. package/esm2020/assets/i18n/ar.ngx-lib.json +180 -0
  25. package/esm2020/assets/i18n/de.ngx-lib.json +180 -0
  26. package/esm2020/assets/i18n/en.ngx-lib.json +189 -0
  27. package/esm2020/assets/i18n/es.ngx-lib.json +180 -0
  28. package/esm2020/assets/i18n/fr.ngx-lib.json +180 -0
  29. package/esm2020/assets/i18n/he.ngx-lib.json +180 -0
  30. package/esm2020/assets/i18n/hu.ngx-lib.json +79 -0
  31. package/esm2020/assets/i18n/it.ngx-lib.json +180 -0
  32. package/esm2020/assets/i18n/ja.ngx-lib.json +180 -0
  33. package/esm2020/assets/i18n/nl.ngx-lib.json +79 -0
  34. package/esm2020/assets/i18n/pl.ngx-lib.json +180 -0
  35. package/esm2020/assets/i18n/pt.ngx-lib.json +180 -0
  36. package/esm2020/assets/i18n/ru.ngx-lib.json +79 -0
  37. package/esm2020/assets/i18n/sr.ngx-lib.json +180 -0
  38. package/esm2020/assets/i18n/zh.ngx-lib.json +180 -0
  39. package/esm2020/attachment/attachment.component.mjs +16 -6
  40. package/esm2020/carousel/carousel.component.mjs +14 -4
  41. package/esm2020/checkbox/checkbox.component.mjs +37 -3
  42. package/esm2020/chips/chips.component.mjs +11 -16
  43. package/esm2020/chips/chips.service.mjs +2 -11
  44. package/esm2020/color/color-picker.component.mjs +3 -3
  45. package/esm2020/color/color.component.mjs +3 -3
  46. package/esm2020/core/common/directives/auto-width.directive.mjs +29 -9
  47. package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
  48. package/esm2020/core/common/directives/public-api.mjs +2 -1
  49. package/esm2020/core/common/pipes/common-pipes.mjs +18 -8
  50. package/esm2020/core/common/services/addon.service.mjs +31 -7
  51. package/esm2020/core/common/services/data-convertor.service.mjs +3 -3
  52. package/esm2020/core/common/services/file.service.mjs +57 -20
  53. package/esm2020/core/common/services/session.service.mjs +5 -1
  54. package/esm2020/core/common/services/utilities.service.mjs +7 -7
  55. package/esm2020/core/customization/customization.model.mjs +46 -10
  56. package/esm2020/core/customization/customization.service.mjs +29 -1
  57. package/esm2020/core/http/services/http.service.mjs +17 -8
  58. package/esm2020/core/http/services/loader.service.mjs +3 -3
  59. package/esm2020/date/date.component.mjs +35 -13
  60. package/esm2020/dialog/dialog.component.mjs +3 -3
  61. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +44 -4
  62. package/esm2020/draggable-items/draggable-items.component.mjs +7 -15
  63. package/esm2020/draggable-items/draggable-items.module.mjs +5 -1
  64. package/esm2020/field-title/field-title.component.mjs +6 -3
  65. package/esm2020/files-uploader/files-uploader.component.mjs +23 -32
  66. package/esm2020/form/field-generator.component.mjs +3 -3
  67. package/esm2020/form/form.component.mjs +7 -4
  68. package/esm2020/form/internal-button.component.mjs +2 -2
  69. package/esm2020/form/internal-carusel.component.mjs +10 -6
  70. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  71. package/esm2020/form/internal-form.component.mjs +5 -3
  72. package/esm2020/form/internal-list.component.mjs +2 -2
  73. package/esm2020/form/internal-menu.component.mjs +4 -6
  74. package/esm2020/form/internal-page.component.mjs +3 -4
  75. package/esm2020/group-buttons/group-buttons.component.mjs +2 -2
  76. package/esm2020/icon/icon.component.mjs +36 -6
  77. package/esm2020/icon/icon.service.mjs +5 -1
  78. package/esm2020/image/image.component.mjs +15 -3
  79. package/esm2020/image/image.service.mjs +2 -4
  80. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +99 -25
  81. package/esm2020/json-editor/json-editor.component.mjs +288 -0
  82. package/esm2020/json-editor/json-editor.module.mjs +83 -0
  83. package/esm2020/json-editor/json-tree-node.component.mjs +32 -0
  84. package/esm2020/json-editor/pepperi-addons-ngx-lib-json-editor.mjs +5 -0
  85. package/esm2020/json-editor/public-api.mjs +6 -0
  86. package/esm2020/lib/i18n/embedded-i18n.mjs +33 -0
  87. package/esm2020/link/link.component.mjs +25 -4
  88. package/esm2020/list/list-actions.component.mjs +1 -1
  89. package/esm2020/list/list-chooser.component.mjs +1 -1
  90. package/esm2020/list/list-pager.component.mjs +56 -9
  91. package/esm2020/list/list-sorting.component.mjs +1 -1
  92. package/esm2020/list/list-total.component.mjs +6 -3
  93. package/esm2020/list/list-views.component.mjs +1 -1
  94. package/esm2020/list/list.component.mjs +280 -50
  95. package/esm2020/list/list.model.mjs +1 -1
  96. package/esm2020/list/list.module.mjs +5 -1
  97. package/esm2020/list/virtual-scroller.mjs +16 -2
  98. package/esm2020/menu/menu-item.component.mjs +3 -3
  99. package/esm2020/menu/menu.component.mjs +6 -3
  100. package/esm2020/menu/menu.model.mjs +2 -1
  101. package/esm2020/page-layout/page-layout.component.mjs +28 -7
  102. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +1 -1
  103. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +25 -9
  104. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +58 -26
  105. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
  106. package/esm2020/public-api.mjs +2 -1
  107. package/esm2020/quantity-selector/quantity-selector.component.mjs +67 -33
  108. package/esm2020/query-builder/common/model/legacy.mjs +1 -1
  109. package/esm2020/query-builder/common/model/operator.mjs +76 -64
  110. package/esm2020/query-builder/common/services/output-query.service.mjs +5 -3
  111. package/esm2020/query-builder/common/services/query-structure.service.mjs +34 -2
  112. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +14 -12
  113. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
  114. package/esm2020/query-builder/query-builder.module.mjs +14 -3
  115. package/esm2020/query-builder/query-builder.service.mjs +4 -3
  116. package/esm2020/remote-loader/addon-block-loader.component.mjs +26 -16
  117. package/esm2020/remote-loader/addon-block-loader.service.mjs +5 -2
  118. package/esm2020/remote-loader/remote-loader-element.component.mjs +148 -27
  119. package/esm2020/remote-loader/remote-loader.component.mjs +1 -4
  120. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  121. package/esm2020/remote-loader/remote-loader.service.mjs +49 -26
  122. package/esm2020/reset-configuration-field/pepperi-addons-ngx-lib-reset-configuration-field.mjs +5 -0
  123. package/esm2020/reset-configuration-field/public-api.mjs +3 -0
  124. package/esm2020/reset-configuration-field/reset-configuration-field.component.mjs +55 -0
  125. package/esm2020/reset-configuration-field/reset-configuration-field.module.mjs +36 -0
  126. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +19 -3
  127. package/esm2020/search/search.component.mjs +43 -16
  128. package/esm2020/select/select.component.mjs +124 -53
  129. package/esm2020/select-panel/select-panel.component.mjs +4 -6
  130. package/esm2020/side-bar/side-bar.component.mjs +18 -4
  131. package/esm2020/signature/signature-dialog.component.mjs +9 -4
  132. package/esm2020/signature/signature.component.mjs +14 -7
  133. package/esm2020/size-detector/size-detector.component.mjs +16 -6
  134. package/esm2020/skeleton-loader/public-api.mjs +2 -2
  135. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +33 -9
  136. package/esm2020/slider/slider.component.mjs +2 -2
  137. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
  138. package/esm2020/smart-filters/common/model/base-filter-component.mjs +5 -11
  139. package/esm2020/smart-filters/common/model/operator.mjs +15 -6
  140. package/esm2020/smart-filters/common/model/type.mjs +1 -1
  141. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  142. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
  143. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  144. package/esm2020/smart-filters/smart-filters.component.mjs +2 -2
  145. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +27 -7
  146. package/esm2020/snack-bar/snack-bar.component.mjs +21 -6
  147. package/esm2020/textarea/textarea.component.mjs +12 -3
  148. package/esm2020/textbox/textbox-validation.directive.mjs +2 -4
  149. package/esm2020/textbox/textbox.component.mjs +85 -10
  150. package/esm2020/textbox-icon/textbox-icon.component.mjs +3 -3
  151. package/esm2020/top-bar/top-bar.component.mjs +26 -15
  152. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +92 -5
  153. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  154. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +15 -5
  155. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  156. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +13 -3
  157. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  158. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +37 -2
  159. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  160. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +11 -25
  161. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  162. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
  163. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  164. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +35 -12
  165. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  166. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +2 -2
  167. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  168. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
  169. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  170. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  171. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  172. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
  173. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  174. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +31 -25
  175. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  176. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
  177. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  178. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +40 -5
  179. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  180. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +15 -5
  181. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  182. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +101 -24
  183. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  184. package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs +407 -0
  185. package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
  186. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +24 -3
  187. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +367 -66
  189. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  190. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +8 -4
  191. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  192. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
  193. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  194. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  195. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  196. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +66 -31
  197. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  198. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +152 -84
  199. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  200. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +237 -85
  201. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  202. package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
  203. package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
  204. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
  205. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  206. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +45 -15
  207. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  208. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
  209. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  210. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +123 -51
  211. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  212. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
  213. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  214. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +23 -9
  215. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  216. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
  217. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  218. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
  219. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  220. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +2 -2
  221. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  222. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
  223. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  224. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +20 -5
  225. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  226. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +11 -2
  227. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  228. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
  229. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  230. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +87 -12
  231. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  232. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +26 -15
  233. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  234. package/fesm2015/pepperi-addons-ngx-lib.mjs +3441 -574
  235. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  236. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +92 -5
  237. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  238. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +15 -5
  239. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  240. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +13 -3
  241. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  242. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +36 -2
  243. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  244. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +11 -25
  245. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  246. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
  247. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  248. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +34 -12
  249. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  250. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +2 -2
  251. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  252. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
  253. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  254. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  255. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  256. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
  257. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  258. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +31 -25
  259. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  260. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
  261. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  262. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +39 -5
  263. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  264. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +15 -5
  265. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  266. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +98 -24
  267. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  268. package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs +403 -0
  269. package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
  270. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +24 -3
  271. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  272. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +362 -65
  273. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  274. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +8 -4
  275. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  276. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
  277. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  278. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  279. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  280. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +65 -31
  281. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  282. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +141 -82
  283. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  284. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +224 -70
  285. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  286. package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
  287. package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
  288. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
  289. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  290. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +42 -15
  291. package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  292. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
  293. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  294. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +122 -51
  295. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  296. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
  297. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  298. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +21 -9
  299. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  300. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
  301. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  302. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
  303. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  304. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +2 -2
  305. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  306. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
  307. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  308. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +20 -5
  309. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  310. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +11 -2
  311. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  312. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
  313. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  314. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +85 -12
  315. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  316. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +25 -14
  317. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  318. package/fesm2020/pepperi-addons-ngx-lib.mjs +3436 -571
  319. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  320. package/field-title/field-title.component.d.ts +2 -1
  321. package/files-uploader/files-uploader.component.d.ts +4 -2
  322. package/form/internal-carusel.component.d.ts +1 -0
  323. package/form/internal-menu.component.d.ts +1 -2
  324. package/icon/icon.component.d.ts +4 -0
  325. package/image/image.component.d.ts +3 -1
  326. package/images-filmstrip/images-filmstrip.component.d.ts +24 -8
  327. package/json-editor/index.d.ts +5 -0
  328. package/json-editor/json-editor.component.d.ts +75 -0
  329. package/json-editor/json-editor.component.theme.scss +5 -0
  330. package/json-editor/json-editor.module.d.ts +24 -0
  331. package/json-editor/json-tree-node.component.d.ts +18 -0
  332. package/json-editor/public-api.d.ts +2 -0
  333. package/lib/i18n/embedded-i18n.d.ts +1 -0
  334. package/link/link.component.d.ts +7 -2
  335. package/list/list-pager.component.d.ts +16 -6
  336. package/list/list-total.component.d.ts +2 -1
  337. package/list/list.component.d.ts +26 -5
  338. package/list/list.model.d.ts +2 -1
  339. package/list/list.module.d.ts +4 -3
  340. package/menu/menu.component.d.ts +2 -1
  341. package/menu/menu.model.d.ts +1 -0
  342. package/package.json +18 -2
  343. package/page-layout/page-layout.component.d.ts +8 -2
  344. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +3 -3
  345. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +5 -4
  346. package/profile-data-views-list/profile-data-views-list.component.d.ts +13 -10
  347. package/profile-data-views-list/profile-data-views-list.model.d.ts +8 -0
  348. package/public-api.d.ts +1 -0
  349. package/quantity-selector/quantity-selector.component.d.ts +9 -9
  350. package/query-builder/common/model/legacy.d.ts +3 -0
  351. package/query-builder/common/model/operator.d.ts +11 -1
  352. package/query-builder/common/services/query-structure.service.d.ts +1 -0
  353. package/query-builder/query-builder-item/query-builder-item.component.d.ts +3 -1
  354. package/query-builder/query-builder.module.d.ts +7 -3
  355. package/remote-loader/addon-block-loader.component.d.ts +4 -2
  356. package/remote-loader/remote-loader-element.component.d.ts +8 -1
  357. package/remote-loader/remote-loader.model.d.ts +1 -0
  358. package/remote-loader/remote-loader.service.d.ts +3 -1
  359. package/reset-configuration-field/index.d.ts +5 -0
  360. package/reset-configuration-field/public-api.d.ts +2 -0
  361. package/reset-configuration-field/reset-configuration-field.component.d.ts +23 -0
  362. package/reset-configuration-field/reset-configuration-field.module.d.ts +12 -0
  363. package/rich-html-textarea/rich-html-textarea.component.d.ts +4 -1
  364. package/rich-html-textarea/rich-html-textarea.component.theme.scss +4 -2
  365. package/search/search.component.d.ts +9 -3
  366. package/select/select.component.d.ts +18 -2
  367. package/select-panel/select-panel.component.d.ts +1 -2
  368. package/side-bar/side-bar.component.d.ts +4 -1
  369. package/signature/signature-dialog.component.d.ts +2 -1
  370. package/signature/signature.component.d.ts +2 -1
  371. package/size-detector/size-detector.component.d.ts +6 -3
  372. package/skeleton-loader/skeleton-loader.component.d.ts +15 -7
  373. package/slider/slider.component.theme.scss +4 -0
  374. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -0
  375. package/smart-filters/common/model/base-filter-component.d.ts +2 -4
  376. package/smart-filters/common/model/operator.d.ts +3 -0
  377. package/smart-filters/common/model/type.d.ts +1 -1
  378. package/smart-filters/date-filter/date-filter.component.d.ts +3 -0
  379. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -0
  380. package/smart-filters/number-filter/number-filter.component.d.ts +3 -0
  381. package/smart-filters/text-filter/text-filter.component.d.ts +4 -0
  382. package/snack-bar/snack-bar.component.d.ts +9 -4
  383. package/src/assets/i18n/ar.ngx-lib.json +180 -0
  384. package/src/assets/i18n/de.ngx-lib.json +106 -4
  385. package/src/assets/i18n/en.ngx-lib.json +17 -3
  386. package/src/assets/i18n/es.ngx-lib.json +113 -11
  387. package/src/assets/i18n/fr.ngx-lib.json +105 -4
  388. package/src/assets/i18n/he.ngx-lib.json +105 -4
  389. package/src/assets/i18n/it.ngx-lib.json +114 -13
  390. package/src/assets/i18n/ja.ngx-lib.json +105 -4
  391. package/src/assets/i18n/pl.ngx-lib.json +105 -4
  392. package/src/assets/i18n/pt.ngx-lib.json +105 -4
  393. package/src/assets/i18n/sr.ngx-lib.json +180 -0
  394. package/src/assets/i18n/zh.ngx-lib.json +105 -2
  395. package/src/core/style/abstracts/mixins.scss +135 -26
  396. package/src/core/style/abstracts/variables.scss +10 -1
  397. package/src/core/style/base/Spacing.stories.mdx +22 -22
  398. package/src/core/style/base/base.scss +24 -15
  399. package/src/core/style/base/typography.scss +2 -1
  400. package/src/core/style/components/button.scss +11 -0
  401. package/src/core/style/components/checkbox.scss +13 -63
  402. package/src/core/style/components/file.scss +4 -4
  403. package/src/core/style/components/general.scss +27 -9
  404. package/src/core/style/components/textarea.scss +13 -0
  405. package/textarea/textarea.component.d.ts +2 -1
  406. package/textbox/textbox.component.d.ts +10 -3
  407. package/theming.scss +5 -1
  408. package/top-bar/top-bar.component.d.ts +2 -0
  409. package/src/assets/images/sail-away.jpg +0 -0
  410. package/src/core/style/abstracts/AbstractsIntro.stories.mdx +0 -7
@@ -20,8 +20,24 @@ class PepRemoteLoaderService {
20
20
  this.addonService = addonService;
21
21
  //
22
22
  }
23
+ getBlockLoaderDataUrl(options) {
24
+ const fileName = 'addon_blocks';
25
+ const pagesAddonUuid = this.addonService.getPagesAddonUUID();
26
+ let pagesBaseUrl;
27
+ // For devServer run server on localhost.
28
+ if (options.pagesDevServer?.length > 0) {
29
+ pagesBaseUrl = `${options.pagesDevServer}/${fileName}`;
30
+ }
31
+ else {
32
+ const baseUrl = this.sessionService.getPapiBaseUrl();
33
+ pagesBaseUrl = `${baseUrl}/addons/api/${pagesAddonUuid}/${fileName}`;
34
+ }
35
+ const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${options.name}&slugName=${options.slugName}&blockType=${options.blockType}&addonUUID=${options.addonUUID}`;
36
+ return url;
37
+ }
23
38
  getRemoteLoaderOptions(blockLoaderData, blockRemoteEntry = '', type = 'module') {
24
- const exposedModule = blockLoaderData.relation.ElementsModule?.length > 0 ? blockLoaderData.relation.ElementsModule : blockLoaderData.relation.ModuleName;
39
+ const loadAsElement = blockLoaderData.relation.ElementName?.length > 0;
40
+ const exposedModule = loadAsElement ? (blockLoaderData.relation.ElementsModule || 'WebComponents') : blockLoaderData.relation.ModuleName;
25
41
  const res = {
26
42
  type: type,
27
43
  remoteEntry: blockRemoteEntry.length > 0 ? blockRemoteEntry : `${blockLoaderData.addonPublicBaseURL}${blockLoaderData.relation.AddonRelativeURL}.js`,
@@ -30,7 +46,7 @@ class PepRemoteLoaderService {
30
46
  addonId: blockLoaderData.relation.AddonUUID, // For local use (adding the relative path to the assets).
31
47
  };
32
48
  // If it's web components
33
- if (blockLoaderData.relation.ElementsModule?.length > 0) {
49
+ if (loadAsElement) {
34
50
  res['elementName'] = blockLoaderData.relation.ElementName;
35
51
  }
36
52
  else { // For load the component from the module.
@@ -38,20 +54,14 @@ class PepRemoteLoaderService {
38
54
  }
39
55
  return res;
40
56
  }
41
- getBlockLoaderDataUrl(options) {
42
- const fileName = 'addon_blocks';
43
- const pagesAddonUuid = this.addonService.getPagesAddonUUID();
44
- let pagesBaseUrl;
45
- // For devServer run server on localhost.
46
- if (options.pagesDevServer?.length > 0) {
47
- pagesBaseUrl = `${options.pagesDevServer}/${fileName}`;
48
- }
49
- else {
50
- const baseUrl = this.sessionService.getPapiBaseUrl();
51
- pagesBaseUrl = `${baseUrl}/addons/api/${pagesAddonUuid}/${fileName}`;
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;
57
+ getBlockLoaderDataSuccess(data, options) {
58
+ const ngVersionNumber = coerceNumberProperty(data.relation?.SubType?.toLocaleLowerCase().replace('ng', ''), 14);
59
+ const type = ngVersionNumber >= 14 ? 'module' : 'script';
60
+ return this.getRemoteLoaderOptions(data, options.blockRemoteEntry, type);
61
+ }
62
+ getBlockLoaderDataError(options) {
63
+ const nameMsg = options.blockType === 'SettingsBlock' ? `slugName - ${options.slugName}` : `name - ${options.name}`;
64
+ return (`Block with ${nameMsg} is not found for type - ${options.blockType}`);
55
65
  }
56
66
  async getBlockRemoteLoaderOptions(options) {
57
67
  options.blockType = options.blockType ?? 'AddonBlock';
@@ -60,15 +70,28 @@ class PepRemoteLoaderService {
60
70
  options.addonUUID = options.addonUUID ?? '';
61
71
  return new Promise((resolve, reject) => {
62
72
  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
- });
73
+ if (options.blockType === 'SettingsBlock' || options.blockType === 'LogicBlock' || options.pagesDevServer?.length > 0) {
74
+ // Work online for settings blocks or logic blocks or debug only !!!
75
+ const blockLoaderDataUrl = this.getBlockLoaderDataUrl(options);
76
+ this.httpService.getHttpCall(blockLoaderDataUrl).toPromise().then((data) => {
77
+ resolve(this.getBlockLoaderDataSuccess(data, options));
78
+ }).catch(err => {
79
+ reject(this.getBlockLoaderDataError(options));
80
+ });
81
+ }
82
+ else {
83
+ // Work offline !!!
84
+ this.addonService.emitEvent("GetBlockLoaderData", {
85
+ Name: options.name,
86
+ // SlugName: options.slugName,
87
+ BlockType: options.blockType,
88
+ // AddonUUID: options.addonUUID
89
+ }).then((res) => {
90
+ resolve(this.getBlockLoaderDataSuccess(res, options));
91
+ }).catch(err => {
92
+ reject(this.getBlockLoaderDataError(options));
93
+ });
94
+ }
72
95
  }
73
96
  else {
74
97
  if (options.blockType === 'SettingsBlock') {
@@ -132,7 +155,6 @@ class PepRemoteLoaderComponent {
132
155
  }
133
156
  async loadModule() {
134
157
  try {
135
- const t0 = performance.now();
136
158
  this.viewContainer?.clear();
137
159
  if (this.options.exposedModule?.length > 0) { // Load module
138
160
  if (this.options?.addonId && (this.options.type === 'module' || this.options.type === 'script')) {
@@ -145,8 +167,6 @@ class PepRemoteLoaderComponent {
145
167
  const module = await loadRemoteModule(this.options).then(m => m);
146
168
  const moduleRef = createNgModuleRef(module[this.options.exposedModule.replace('./', '')], this.injector);
147
169
  this.compRef = this.viewContainer.createComponent(module[this.options.componentName], { injector: this.injector, ngModuleRef: moduleRef });
148
- const t1 = performance.now();
149
- console.log('remote module load performance: ' + (t1 - t0) / 1000);
150
170
  }
151
171
  // Check if this is in use??? (comment out in Angular 14 version)
152
172
  // else { // Load Component
@@ -202,6 +222,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
202
222
  }] } });
203
223
 
204
224
  class PepRemoteLoaderElementComponent {
225
+ // // This is for debounce.
226
+ // private _getBlockRemoteLoaderOptionsSubject = new BehaviorSubject<BlockRemoteLoaderOptionsData>(null);
227
+ // get getBlockRemoteLoaderOptionsDebouncedSubject$(): Observable<BlockRemoteLoaderOptionsData> {
228
+ // return this._getBlockRemoteLoaderOptionsSubject.asObservable().pipe(debounceTime(250));
229
+ // }
205
230
  constructor(renderer, el, pepAddonService, remoteLoaderService, route) {
206
231
  this.renderer = renderer;
207
232
  this.el = el;
@@ -211,6 +236,8 @@ class PepRemoteLoaderElementComponent {
211
236
  this.load = new EventEmitter();
212
237
  this.element = null;
213
238
  this._elementName = '';
239
+ this._blockType = '';
240
+ this._alreadyLoaded = false;
214
241
  }
215
242
  populateProps() {
216
243
  for (const prop in this.props) {
@@ -225,16 +252,16 @@ class PepRemoteLoaderElementComponent {
225
252
  async loadOptionsFromRoute() {
226
253
  const params = this.route?.snapshot.params;
227
254
  const data = this.route?.snapshot.data;
228
- const blockType = data?.blockType || 'SettingsBlock';
255
+ this._blockType = data?.blockType || 'SettingsBlock';
229
256
  const slugName = params?.slugName || data?.slugName;
230
257
  const blockName = params?.blockName || data?.blockName;
231
- if (blockName?.length > 0 || (slugName?.length > 0 && blockType === 'SettingsBlock')) {
258
+ if (blockName?.length > 0 || (slugName?.length > 0 && this._blockType === 'SettingsBlock')) {
232
259
  const addonUUID = params?.addonUUID || data?.addonUUID || '';
233
260
  const blockRemoteEntry = data?.blockRemoteEntry || '';
234
261
  this.options = await this.remoteLoaderService.getBlockRemoteLoaderOptions({
235
262
  name: blockName,
236
263
  slugName,
237
- blockType,
264
+ blockType: this._blockType,
238
265
  addonUUID,
239
266
  blockRemoteEntry
240
267
  });
@@ -252,37 +279,151 @@ class PepRemoteLoaderElementComponent {
252
279
  this.populateProps();
253
280
  }
254
281
  ngOnDestroy() {
255
- //
256
- }
257
- async ngAfterContentInit() {
258
- try {
259
- const t0 = performance.now();
260
- // If the options is not supplied then we need to get it from the route.
261
- if (!this.options) {
262
- await this.loadOptionsFromRoute();
282
+ if (this.element) {
283
+ try {
284
+ if (this.events) {
285
+ for (const event in this.events) {
286
+ try {
287
+ this.element.removeEventListener(event, this.events[event]);
288
+ }
289
+ catch {
290
+ // ignore
291
+ }
292
+ }
293
+ }
294
+ // ADO 1036660: Fix React teardown race in hosted web-components.
295
+ // The host (Angular) may destroy/remove the element subtree while the remote (React) is still
296
+ // unmounting, which can surface as `NotFoundError: Failed to execute 'removeChild' on 'Node'`.
297
+ // If the remote element exposes `pepperiUnmount()`, call it here to let it cleanup before DOM removal.
298
+ const elToUnmount = this.element;
299
+ let parkedContainer = null;
300
+ const cleanup = () => {
301
+ try {
302
+ if (parkedContainer?.parentNode) {
303
+ parkedContainer.parentNode.removeChild(parkedContainer);
304
+ }
305
+ }
306
+ catch {
307
+ // ignore
308
+ }
309
+ };
310
+ // Detach the remote element subtree so Angular destroying this host won't remove it while React is still unmounting.
311
+ try {
312
+ if (typeof document !== 'undefined' && elToUnmount?.parentNode && document.body) {
313
+ parkedContainer = document.createElement('div');
314
+ parkedContainer.style.display = 'none';
315
+ document.body.appendChild(parkedContainer);
316
+ parkedContainer.appendChild(elToUnmount);
317
+ }
318
+ }
319
+ catch {
320
+ // ignore
321
+ }
322
+ const anyEl = elToUnmount;
323
+ const maybeUnmount = anyEl?.pepperiUnmount;
324
+ if (typeof maybeUnmount === 'function') {
325
+ try {
326
+ const res = maybeUnmount.call(anyEl);
327
+ if (res && typeof res.then === 'function') {
328
+ res.finally(() => cleanup());
329
+ }
330
+ else {
331
+ cleanup();
332
+ }
333
+ }
334
+ catch {
335
+ // ignore
336
+ cleanup();
337
+ }
338
+ }
339
+ else {
340
+ cleanup();
341
+ }
263
342
  }
264
- if (!this.options) {
265
- throw new Error('No options supplied to the component.');
343
+ catch {
344
+ // ignore
266
345
  }
267
- else {
268
- if (this.options?.addonId && (this.options.type === 'module' || this.options.type === 'script')) {
269
- const lastSlashIndex = this.options.remoteEntry?.lastIndexOf('/') || -1;
270
- if (lastSlashIndex > 0) {
271
- const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
272
- this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
273
- }
346
+ this.element = null;
347
+ }
348
+ }
349
+ /**
350
+ * Loads the remote JS bundle as a script tag for web component remotes.
351
+ * If the script is already loaded, resolves immediately.
352
+ */
353
+ // private async loadRemoteScript(remoteEntryUrl: string): Promise<any> {
354
+ // return new Promise<any>((resolve, reject) => {
355
+ // if (document.querySelector(`script[src="${remoteEntryUrl}"]`)) {
356
+ // // If script is already loaded, try to get the module
357
+ // import(remoteEntryUrl).then(module => {
358
+ // if (module && module.init) {
359
+ // module.init();
360
+ // }
361
+ // resolve(module);
362
+ // }).catch(err => reject(err));
363
+ // return;
364
+ // }
365
+ // const script = document.createElement('script');
366
+ // script.type = 'module';
367
+ // script.src = remoteEntryUrl;
368
+ // script.onload = () => {
369
+ // // After script is loaded, dynamically import it to get the module
370
+ // import(remoteEntryUrl).then(module => {
371
+ // if (module && module.init) {
372
+ // module.init();
373
+ // }
374
+ // resolve(module);
375
+ // }).catch(err => reject(err));
376
+ // };
377
+ // script.onerror = (err) => reject(err);
378
+ // document.body.appendChild(script);
379
+ // });
380
+ // }
381
+ loadElementFromModule() {
382
+ if (!this.options) {
383
+ // throw new Error('No options supplied to the component.');
384
+ console.info('No options supplied to the component.');
385
+ return;
386
+ }
387
+ else {
388
+ if (this.options?.addonId && (this.options.type === 'module' || this.options.type === 'script')) {
389
+ const lastSlashIndex = this.options.remoteEntry?.lastIndexOf('/') || -1;
390
+ if (lastSlashIndex > 0) {
391
+ const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
392
+ this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
274
393
  }
275
- await loadRemoteModule(this.options);
394
+ }
395
+ // debugger;
396
+ // this.loadRemoteScript(this.options['remoteEntry']).then(() => {
397
+ loadRemoteModule(this.options).then((m) => {
276
398
  this._elementName = this.options.elementName;
277
399
  this.element = this.renderer.createElement(this._elementName);
278
400
  this.populateProps();
279
401
  this.setupEvents();
280
402
  this.renderer.appendChild(this.el.nativeElement, this.element);
281
- const t1 = performance.now();
282
- console.log('remote module wc load performance: ' + (t1 - t0) / 1000);
283
403
  // Fix internal routing bug.
284
- this.pepAddonService.connectInternalRouter(this._elementName);
404
+ if (this._blockType === 'SettingsBlock') {
405
+ this.pepAddonService.connectInternalRouter(this._elementName);
406
+ }
285
407
  this.load.emit();
408
+ }).catch((error) => {
409
+ throw error;
410
+ });
411
+ }
412
+ }
413
+ ngAfterContentInit() {
414
+ try {
415
+ // if (!this.element) { maybe the load of the element is too long so change to flag.
416
+ if (!this._alreadyLoaded) {
417
+ this._alreadyLoaded = true;
418
+ // If the options is not supplied then we need to get it from the route.
419
+ if (!this.options) {
420
+ this.loadOptionsFromRoute().then(() => {
421
+ this.loadElementFromModule();
422
+ });
423
+ }
424
+ else {
425
+ this.loadElementFromModule();
426
+ }
286
427
  }
287
428
  }
288
429
  catch (error) {
@@ -293,12 +434,12 @@ class PepRemoteLoaderElementComponent {
293
434
  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 });
294
435
  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: `
295
436
  <!--<div #vc style="height: inherit;"></div>-->
296
- `, isInline: true, styles: [":host{width:100%;height:inherit}:host::ng-deep>*{height:inherit}\n"] });
437
+ `, isInline: true, styles: [":host{width:100%;height:inherit;overflow:inherit}:host::ng-deep>*{height:inherit}\n"] });
297
438
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderElementComponent, decorators: [{
298
439
  type: Component,
299
440
  args: [{ selector: 'pep-remote-loader-element', template: `
300
441
  <!--<div #vc style="height: inherit;"></div>-->
301
- `, styles: [":host{width:100%;height:inherit}:host::ng-deep>*{height:inherit}\n"] }]
442
+ `, styles: [":host{width:100%;height:inherit;overflow:inherit}:host::ng-deep>*{height:inherit}\n"] }]
302
443
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.PepAddonService }, { type: PepRemoteLoaderService }, { type: i3.ActivatedRoute, decorators: [{
303
444
  type: Optional
304
445
  }] }]; }, propDecorators: { options: [{
@@ -321,10 +462,10 @@ class PepAddonBlockLoaderComponent {
321
462
  this._name = '';
322
463
  this.hostObject = null;
323
464
  this._dialogRef = null;
465
+ this._remoteLoaderOptions = null;
324
466
  this.hostEvents = new EventEmitter();
325
467
  this.blockLoad = new EventEmitter();
326
468
  this.inDialog = false;
327
- this.remotePathOptions = null;
328
469
  this.loadElement = false;
329
470
  this.onHostEventsCallback = (event) => {
330
471
  this.onHostEvents(event.detail);
@@ -349,24 +490,32 @@ class PepAddonBlockLoaderComponent {
349
490
  get dialogRef() {
350
491
  return this._dialogRef;
351
492
  }
493
+ set remoteLoaderOptions(value) {
494
+ this._remoteLoaderOptions = value;
495
+ this.loadElement = this.remoteLoaderOptions?.elementName?.length > 0;
496
+ }
497
+ get remoteLoaderOptions() {
498
+ return this._remoteLoaderOptions;
499
+ }
352
500
  ngOnInit() {
353
- const options = {
354
- name: this.name,
355
- slugName: this.slugName,
356
- blockType: this.blockType,
357
- addonUUID: this.addonId,
358
- blockRemoteEntry: this.remoteEntry
359
- };
360
- this.remoteLoaderService.getBlockRemoteLoaderOptions(options).then((options) => {
361
- this.loadElement = options.elementName?.length > 0;
362
- this.remotePathOptions = options;
363
- });
501
+ if (this.remoteLoaderOptions === null) {
502
+ const rlpOptions = {
503
+ name: this.name,
504
+ slugName: this.slugName,
505
+ blockType: this.blockType,
506
+ addonUUID: this.addonId,
507
+ blockRemoteEntry: this.remoteEntry
508
+ };
509
+ this.remoteLoaderService.getBlockRemoteLoaderOptions(rlpOptions).then((options) => {
510
+ this.remoteLoaderOptions = options;
511
+ });
512
+ }
364
513
  }
365
514
  ngOnDestroy() {
366
515
  if (this.dialogRef) {
367
516
  this.dialogRef = null;
368
517
  }
369
- this.remotePathOptions = null;
518
+ this.remoteLoaderOptions = null;
370
519
  }
371
520
  onBlockLoad() {
372
521
  this.blockLoad.emit();
@@ -379,10 +528,10 @@ class PepAddonBlockLoaderComponent {
379
528
  }
380
529
  }
381
530
  PepAddonBlockLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderComponent, deps: [{ token: PepRemoteLoaderService }], target: i0.ɵɵFactoryTarget.Component });
382
- 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"] }] });
531
+ 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", remoteLoaderOptions: "remoteLoaderOptions" }, 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 class=\"remote-loader-element\" *ngIf=\"remoteLoaderOptions && !loadElement\"\n [options]=\"remoteLoaderOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n\n <pep-remote-loader-element class=\"remote-loader-element\" *ngIf=\"remoteLoaderOptions && loadElement\" \n [options]=\"remoteLoaderOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onHostEventsCallback }\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader-element>\n\n</ng-template>", styles: [".remote-loader-element{width:100%;height:100%;overflow:auto}\n"], 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"] }] });
383
532
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderComponent, decorators: [{
384
533
  type: Component,
385
- 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>" }]
534
+ 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 class=\"remote-loader-element\" *ngIf=\"remoteLoaderOptions && !loadElement\"\n [options]=\"remoteLoaderOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n\n <pep-remote-loader-element class=\"remote-loader-element\" *ngIf=\"remoteLoaderOptions && loadElement\" \n [options]=\"remoteLoaderOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onHostEventsCallback }\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader-element>\n\n</ng-template>", styles: [".remote-loader-element{width:100%;height:100%;overflow:auto}\n"] }]
386
535
  }], ctorParameters: function () { return [{ type: PepRemoteLoaderService }]; }, propDecorators: { dialogTemplate: [{
387
536
  type: ViewChild,
388
537
  args: ['dialogTemplate', { static: true, read: TemplateRef }]
@@ -400,6 +549,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
400
549
  type: Input
401
550
  }], dialogRef: [{
402
551
  type: Input
552
+ }], remoteLoaderOptions: [{
553
+ type: Input
403
554
  }], hostEvents: [{
404
555
  type: Output
405
556
  }], blockLoad: [{
@@ -421,6 +572,9 @@ class PepAddonBlockLoaderService {
421
572
  addonBlockInstance.addonId = options.addonUUID;
422
573
  addonBlockInstance.remoteEntry = options.blockRemoteEntry;
423
574
  addonBlockInstance.hostObject = options.hostObject;
575
+ if (options.remoteLoaderOptions) {
576
+ addonBlockInstance.remoteLoaderOptions = options.remoteLoaderOptions;
577
+ }
424
578
  addonBlockInstance.hostEvents.subscribe((event) => {
425
579
  if (options.hostEventsCallback) {
426
580
  options.hostEventsCallback(event);
@@ -440,7 +594,7 @@ class PepAddonBlockLoaderService {
440
594
  if (componentRef) {
441
595
  const addonBlockInstance = componentRef.instance;
442
596
  const pepConfig = this.dialogService.getDialogConfig({ disableClose: false, panelClass: 'remote-loader-dialog' }, options.size || 'full-screen');
443
- const mergeConfig = { ...options.config, ...pepConfig };
597
+ const mergeConfig = { ...pepConfig, ...options.config };
444
598
  const data = options.data || null;
445
599
  addonBlockInstance.dialogRef = this.dialogService.openDialog(addonBlockInstance.dialogTemplate, data, mergeConfig);
446
600
  addonBlockInstance.dialogRef.afterClosed().subscribe(() => {