@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
@@ -21,9 +21,26 @@ class PepRemoteLoaderService {
21
21
  this.addonService = addonService;
22
22
  //
23
23
  }
24
+ getBlockLoaderDataUrl(options) {
25
+ var _a;
26
+ const fileName = 'addon_blocks';
27
+ const pagesAddonUuid = this.addonService.getPagesAddonUUID();
28
+ let pagesBaseUrl;
29
+ // For devServer run server on localhost.
30
+ if (((_a = options.pagesDevServer) === null || _a === void 0 ? void 0 : _a.length) > 0) {
31
+ pagesBaseUrl = `${options.pagesDevServer}/${fileName}`;
32
+ }
33
+ else {
34
+ const baseUrl = this.sessionService.getPapiBaseUrl();
35
+ pagesBaseUrl = `${baseUrl}/addons/api/${pagesAddonUuid}/${fileName}`;
36
+ }
37
+ const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${options.name}&slugName=${options.slugName}&blockType=${options.blockType}&addonUUID=${options.addonUUID}`;
38
+ return url;
39
+ }
24
40
  getRemoteLoaderOptions(blockLoaderData, blockRemoteEntry = '', type = 'module') {
25
- var _a, _b;
26
- const exposedModule = ((_a = blockLoaderData.relation.ElementsModule) === null || _a === void 0 ? void 0 : _a.length) > 0 ? blockLoaderData.relation.ElementsModule : blockLoaderData.relation.ModuleName;
41
+ var _a;
42
+ const loadAsElement = ((_a = blockLoaderData.relation.ElementName) === null || _a === void 0 ? void 0 : _a.length) > 0;
43
+ const exposedModule = loadAsElement ? (blockLoaderData.relation.ElementsModule || 'WebComponents') : blockLoaderData.relation.ModuleName;
27
44
  const res = {
28
45
  type: type,
29
46
  remoteEntry: blockRemoteEntry.length > 0 ? blockRemoteEntry : `${blockLoaderData.addonPublicBaseURL}${blockLoaderData.relation.AddonRelativeURL}.js`,
@@ -32,7 +49,7 @@ class PepRemoteLoaderService {
32
49
  addonId: blockLoaderData.relation.AddonUUID, // For local use (adding the relative path to the assets).
33
50
  };
34
51
  // If it's web components
35
- if (((_b = blockLoaderData.relation.ElementsModule) === null || _b === void 0 ? void 0 : _b.length) > 0) {
52
+ if (loadAsElement) {
36
53
  res['elementName'] = blockLoaderData.relation.ElementName;
37
54
  }
38
55
  else { // For load the component from the module.
@@ -40,21 +57,15 @@ class PepRemoteLoaderService {
40
57
  }
41
58
  return res;
42
59
  }
43
- getBlockLoaderDataUrl(options) {
44
- var _a;
45
- const fileName = 'addon_blocks';
46
- const pagesAddonUuid = this.addonService.getPagesAddonUUID();
47
- let pagesBaseUrl;
48
- // For devServer run server on localhost.
49
- if (((_a = options.pagesDevServer) === null || _a === void 0 ? void 0 : _a.length) > 0) {
50
- pagesBaseUrl = `${options.pagesDevServer}/${fileName}`;
51
- }
52
- else {
53
- const baseUrl = this.sessionService.getPapiBaseUrl();
54
- pagesBaseUrl = `${baseUrl}/addons/api/${pagesAddonUuid}/${fileName}`;
55
- }
56
- const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${options.name}&slugName=${options.slugName}&blockType=${options.blockType}&addonUUID=${options.addonUUID}`;
57
- return url;
60
+ getBlockLoaderDataSuccess(data, options) {
61
+ var _a, _b;
62
+ const ngVersionNumber = coerceNumberProperty((_b = (_a = data.relation) === null || _a === void 0 ? void 0 : _a.SubType) === null || _b === void 0 ? void 0 : _b.toLocaleLowerCase().replace('ng', ''), 14);
63
+ const type = ngVersionNumber >= 14 ? 'module' : 'script';
64
+ return this.getRemoteLoaderOptions(data, options.blockRemoteEntry, type);
65
+ }
66
+ getBlockLoaderDataError(options) {
67
+ const nameMsg = options.blockType === 'SettingsBlock' ? `slugName - ${options.slugName}` : `name - ${options.name}`;
68
+ return (`Block with ${nameMsg} is not found for type - ${options.blockType}`);
58
69
  }
59
70
  getBlockRemoteLoaderOptions(options) {
60
71
  var _a, _b, _c, _d;
@@ -64,18 +75,30 @@ class PepRemoteLoaderService {
64
75
  options.slugName = (_c = options.slugName) !== null && _c !== void 0 ? _c : '';
65
76
  options.addonUUID = (_d = options.addonUUID) !== null && _d !== void 0 ? _d : '';
66
77
  return new Promise((resolve, reject) => {
67
- var _a, _b;
78
+ var _a, _b, _c;
68
79
  if (((_a = options.name) === null || _a === void 0 ? void 0 : _a.length) > 0 || (((_b = options.slugName) === null || _b === void 0 ? void 0 : _b.length) > 0 && options.blockType === 'SettingsBlock')) {
69
- const blockLoaderDataUrl = this.getBlockLoaderDataUrl(options);
70
- this.httpService.getHttpCall(blockLoaderDataUrl).toPromise().then((data) => {
71
- var _a, _b;
72
- const ngVersionNumber = coerceNumberProperty((_b = (_a = data.relation) === null || _a === void 0 ? void 0 : _a.SubType) === null || _b === void 0 ? void 0 : _b.toLocaleLowerCase().replace('ng', ''), 14);
73
- const type = ngVersionNumber >= 14 ? 'module' : 'script';
74
- resolve(this.getRemoteLoaderOptions(data, options.blockRemoteEntry, type));
75
- }).catch(err => {
76
- const nameMsg = options.blockType === 'SettingsBlock' ? `slugName - ${options.slugName}` : `name - ${options.name}`;
77
- reject(`Block with ${nameMsg} is not found for type - ${options.blockType}`);
78
- });
80
+ if (options.blockType === 'SettingsBlock' || options.blockType === 'LogicBlock' || ((_c = options.pagesDevServer) === null || _c === void 0 ? void 0 : _c.length) > 0) {
81
+ // Work online for settings blocks or logic blocks or debug only !!!
82
+ const blockLoaderDataUrl = this.getBlockLoaderDataUrl(options);
83
+ this.httpService.getHttpCall(blockLoaderDataUrl).toPromise().then((data) => {
84
+ resolve(this.getBlockLoaderDataSuccess(data, options));
85
+ }).catch(err => {
86
+ reject(this.getBlockLoaderDataError(options));
87
+ });
88
+ }
89
+ else {
90
+ // Work offline !!!
91
+ this.addonService.emitEvent("GetBlockLoaderData", {
92
+ Name: options.name,
93
+ // SlugName: options.slugName,
94
+ BlockType: options.blockType,
95
+ // AddonUUID: options.addonUUID
96
+ }).then((res) => {
97
+ resolve(this.getBlockLoaderDataSuccess(res, options));
98
+ }).catch(err => {
99
+ reject(this.getBlockLoaderDataError(options));
100
+ });
101
+ }
79
102
  }
80
103
  else {
81
104
  if (options.blockType === 'SettingsBlock') {
@@ -143,7 +166,6 @@ class PepRemoteLoaderComponent {
143
166
  var _a, _b, _c, _d, _e, _f;
144
167
  return __awaiter(this, void 0, void 0, function* () {
145
168
  try {
146
- const t0 = performance.now();
147
169
  (_a = this.viewContainer) === null || _a === void 0 ? void 0 : _a.clear();
148
170
  if (((_b = this.options.exposedModule) === null || _b === void 0 ? void 0 : _b.length) > 0) { // Load module
149
171
  if (((_c = this.options) === null || _c === void 0 ? void 0 : _c.addonId) && (this.options.type === 'module' || this.options.type === 'script')) {
@@ -156,8 +178,6 @@ class PepRemoteLoaderComponent {
156
178
  const module = yield loadRemoteModule(this.options).then(m => m);
157
179
  const moduleRef = createNgModuleRef(module[this.options.exposedModule.replace('./', '')], this.injector);
158
180
  this.compRef = this.viewContainer.createComponent(module[this.options.componentName], { injector: this.injector, ngModuleRef: moduleRef });
159
- const t1 = performance.now();
160
- console.log('remote module load performance: ' + (t1 - t0) / 1000);
161
181
  }
162
182
  // Check if this is in use??? (comment out in Angular 14 version)
163
183
  // else { // Load Component
@@ -215,6 +235,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
215
235
  }] } });
216
236
 
217
237
  class PepRemoteLoaderElementComponent {
238
+ // // This is for debounce.
239
+ // private _getBlockRemoteLoaderOptionsSubject = new BehaviorSubject<BlockRemoteLoaderOptionsData>(null);
240
+ // get getBlockRemoteLoaderOptionsDebouncedSubject$(): Observable<BlockRemoteLoaderOptionsData> {
241
+ // return this._getBlockRemoteLoaderOptionsSubject.asObservable().pipe(debounceTime(250));
242
+ // }
218
243
  constructor(renderer, el, pepAddonService, remoteLoaderService, route) {
219
244
  this.renderer = renderer;
220
245
  this.el = el;
@@ -224,6 +249,8 @@ class PepRemoteLoaderElementComponent {
224
249
  this.load = new EventEmitter();
225
250
  this.element = null;
226
251
  this._elementName = '';
252
+ this._blockType = '';
253
+ this._alreadyLoaded = false;
227
254
  }
228
255
  populateProps() {
229
256
  for (const prop in this.props) {
@@ -240,16 +267,16 @@ class PepRemoteLoaderElementComponent {
240
267
  return __awaiter(this, void 0, void 0, function* () {
241
268
  const params = (_a = this.route) === null || _a === void 0 ? void 0 : _a.snapshot.params;
242
269
  const data = (_b = this.route) === null || _b === void 0 ? void 0 : _b.snapshot.data;
243
- const blockType = (data === null || data === void 0 ? void 0 : data.blockType) || 'SettingsBlock';
270
+ this._blockType = (data === null || data === void 0 ? void 0 : data.blockType) || 'SettingsBlock';
244
271
  const slugName = (params === null || params === void 0 ? void 0 : params.slugName) || (data === null || data === void 0 ? void 0 : data.slugName);
245
272
  const blockName = (params === null || params === void 0 ? void 0 : params.blockName) || (data === null || data === void 0 ? void 0 : data.blockName);
246
- if ((blockName === null || blockName === void 0 ? void 0 : blockName.length) > 0 || ((slugName === null || slugName === void 0 ? void 0 : slugName.length) > 0 && blockType === 'SettingsBlock')) {
273
+ if ((blockName === null || blockName === void 0 ? void 0 : blockName.length) > 0 || ((slugName === null || slugName === void 0 ? void 0 : slugName.length) > 0 && this._blockType === 'SettingsBlock')) {
247
274
  const addonUUID = (params === null || params === void 0 ? void 0 : params.addonUUID) || (data === null || data === void 0 ? void 0 : data.addonUUID) || '';
248
275
  const blockRemoteEntry = (data === null || data === void 0 ? void 0 : data.blockRemoteEntry) || '';
249
276
  this.options = yield this.remoteLoaderService.getBlockRemoteLoaderOptions({
250
277
  name: blockName,
251
278
  slugName,
252
- blockType,
279
+ blockType: this._blockType,
253
280
  addonUUID,
254
281
  blockRemoteEntry
255
282
  });
@@ -268,56 +295,168 @@ class PepRemoteLoaderElementComponent {
268
295
  this.populateProps();
269
296
  }
270
297
  ngOnDestroy() {
271
- //
272
- }
273
- ngAfterContentInit() {
274
- var _a, _b;
275
- return __awaiter(this, void 0, void 0, function* () {
298
+ if (this.element) {
276
299
  try {
277
- const t0 = performance.now();
278
- // If the options is not supplied then we need to get it from the route.
279
- if (!this.options) {
280
- yield this.loadOptionsFromRoute();
300
+ if (this.events) {
301
+ for (const event in this.events) {
302
+ try {
303
+ this.element.removeEventListener(event, this.events[event]);
304
+ }
305
+ catch (_a) {
306
+ // ignore
307
+ }
308
+ }
281
309
  }
282
- if (!this.options) {
283
- throw new Error('No options supplied to the component.');
310
+ // ADO 1036660: Fix React teardown race in hosted web-components.
311
+ // The host (Angular) may destroy/remove the element subtree while the remote (React) is still
312
+ // unmounting, which can surface as `NotFoundError: Failed to execute 'removeChild' on 'Node'`.
313
+ // If the remote element exposes `pepperiUnmount()`, call it here to let it cleanup before DOM removal.
314
+ const elToUnmount = this.element;
315
+ let parkedContainer = null;
316
+ const cleanup = () => {
317
+ try {
318
+ if (parkedContainer === null || parkedContainer === void 0 ? void 0 : parkedContainer.parentNode) {
319
+ parkedContainer.parentNode.removeChild(parkedContainer);
320
+ }
321
+ }
322
+ catch (_a) {
323
+ // ignore
324
+ }
325
+ };
326
+ // Detach the remote element subtree so Angular destroying this host won't remove it while React is still unmounting.
327
+ try {
328
+ if (typeof document !== 'undefined' && (elToUnmount === null || elToUnmount === void 0 ? void 0 : elToUnmount.parentNode) && document.body) {
329
+ parkedContainer = document.createElement('div');
330
+ parkedContainer.style.display = 'none';
331
+ document.body.appendChild(parkedContainer);
332
+ parkedContainer.appendChild(elToUnmount);
333
+ }
284
334
  }
285
- else {
286
- if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.addonId) && (this.options.type === 'module' || this.options.type === 'script')) {
287
- const lastSlashIndex = ((_b = this.options.remoteEntry) === null || _b === void 0 ? void 0 : _b.lastIndexOf('/')) || -1;
288
- if (lastSlashIndex > 0) {
289
- const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
290
- this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
335
+ catch (_b) {
336
+ // ignore
337
+ }
338
+ const anyEl = elToUnmount;
339
+ const maybeUnmount = anyEl === null || anyEl === void 0 ? void 0 : anyEl.pepperiUnmount;
340
+ if (typeof maybeUnmount === 'function') {
341
+ try {
342
+ const res = maybeUnmount.call(anyEl);
343
+ if (res && typeof res.then === 'function') {
344
+ res.finally(() => cleanup());
345
+ }
346
+ else {
347
+ cleanup();
291
348
  }
292
349
  }
293
- yield loadRemoteModule(this.options);
294
- this._elementName = this.options.elementName;
295
- this.element = this.renderer.createElement(this._elementName);
296
- this.populateProps();
297
- this.setupEvents();
298
- this.renderer.appendChild(this.el.nativeElement, this.element);
299
- const t1 = performance.now();
300
- console.log('remote module wc load performance: ' + (t1 - t0) / 1000);
301
- // Fix internal routing bug.
302
- this.pepAddonService.connectInternalRouter(this._elementName);
303
- this.load.emit();
350
+ catch (_c) {
351
+ // ignore
352
+ cleanup();
353
+ }
354
+ }
355
+ else {
356
+ cleanup();
304
357
  }
305
358
  }
306
- catch (error) {
307
- console.error(error);
359
+ catch (_d) {
360
+ // ignore
308
361
  }
309
- });
362
+ this.element = null;
363
+ }
364
+ }
365
+ /**
366
+ * Loads the remote JS bundle as a script tag for web component remotes.
367
+ * If the script is already loaded, resolves immediately.
368
+ */
369
+ // private async loadRemoteScript(remoteEntryUrl: string): Promise<any> {
370
+ // return new Promise<any>((resolve, reject) => {
371
+ // if (document.querySelector(`script[src="${remoteEntryUrl}"]`)) {
372
+ // // If script is already loaded, try to get the module
373
+ // import(remoteEntryUrl).then(module => {
374
+ // if (module && module.init) {
375
+ // module.init();
376
+ // }
377
+ // resolve(module);
378
+ // }).catch(err => reject(err));
379
+ // return;
380
+ // }
381
+ // const script = document.createElement('script');
382
+ // script.type = 'module';
383
+ // script.src = remoteEntryUrl;
384
+ // script.onload = () => {
385
+ // // After script is loaded, dynamically import it to get the module
386
+ // import(remoteEntryUrl).then(module => {
387
+ // if (module && module.init) {
388
+ // module.init();
389
+ // }
390
+ // resolve(module);
391
+ // }).catch(err => reject(err));
392
+ // };
393
+ // script.onerror = (err) => reject(err);
394
+ // document.body.appendChild(script);
395
+ // });
396
+ // }
397
+ loadElementFromModule() {
398
+ var _a, _b;
399
+ if (!this.options) {
400
+ // throw new Error('No options supplied to the component.');
401
+ console.info('No options supplied to the component.');
402
+ return;
403
+ }
404
+ else {
405
+ if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.addonId) && (this.options.type === 'module' || this.options.type === 'script')) {
406
+ const lastSlashIndex = ((_b = this.options.remoteEntry) === null || _b === void 0 ? void 0 : _b.lastIndexOf('/')) || -1;
407
+ if (lastSlashIndex > 0) {
408
+ const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
409
+ this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
410
+ }
411
+ }
412
+ // debugger;
413
+ // this.loadRemoteScript(this.options['remoteEntry']).then(() => {
414
+ loadRemoteModule(this.options).then((m) => {
415
+ this._elementName = this.options.elementName;
416
+ this.element = this.renderer.createElement(this._elementName);
417
+ this.populateProps();
418
+ this.setupEvents();
419
+ this.renderer.appendChild(this.el.nativeElement, this.element);
420
+ // Fix internal routing bug.
421
+ if (this._blockType === 'SettingsBlock') {
422
+ this.pepAddonService.connectInternalRouter(this._elementName);
423
+ }
424
+ this.load.emit();
425
+ }).catch((error) => {
426
+ throw error;
427
+ });
428
+ }
429
+ }
430
+ ngAfterContentInit() {
431
+ try {
432
+ // if (!this.element) { maybe the load of the element is too long so change to flag.
433
+ if (!this._alreadyLoaded) {
434
+ this._alreadyLoaded = true;
435
+ // If the options is not supplied then we need to get it from the route.
436
+ if (!this.options) {
437
+ this.loadOptionsFromRoute().then(() => {
438
+ this.loadElementFromModule();
439
+ });
440
+ }
441
+ else {
442
+ this.loadElementFromModule();
443
+ }
444
+ }
445
+ }
446
+ catch (error) {
447
+ console.error(error);
448
+ }
310
449
  }
311
450
  }
312
451
  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 });
313
452
  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: `
314
453
  <!--<div #vc style="height: inherit;"></div>-->
315
- `, isInline: true, styles: [":host{width:100%;height:inherit}:host::ng-deep>*{height:inherit}\n"] });
454
+ `, isInline: true, styles: [":host{width:100%;height:inherit;overflow:inherit}:host::ng-deep>*{height:inherit}\n"] });
316
455
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepRemoteLoaderElementComponent, decorators: [{
317
456
  type: Component,
318
457
  args: [{ selector: 'pep-remote-loader-element', template: `
319
458
  <!--<div #vc style="height: inherit;"></div>-->
320
- `, styles: [":host{width:100%;height:inherit}:host::ng-deep>*{height:inherit}\n"] }]
459
+ `, styles: [":host{width:100%;height:inherit;overflow:inherit}:host::ng-deep>*{height:inherit}\n"] }]
321
460
  }], ctorParameters: function () {
322
461
  return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.PepAddonService }, { type: PepRemoteLoaderService }, { type: i3.ActivatedRoute, decorators: [{
323
462
  type: Optional
@@ -342,10 +481,10 @@ class PepAddonBlockLoaderComponent {
342
481
  this._name = '';
343
482
  this.hostObject = null;
344
483
  this._dialogRef = null;
484
+ this._remoteLoaderOptions = null;
345
485
  this.hostEvents = new EventEmitter();
346
486
  this.blockLoad = new EventEmitter();
347
487
  this.inDialog = false;
348
- this.remotePathOptions = null;
349
488
  this.loadElement = false;
350
489
  this.onHostEventsCallback = (event) => {
351
490
  this.onHostEvents(event.detail);
@@ -370,25 +509,33 @@ class PepAddonBlockLoaderComponent {
370
509
  get dialogRef() {
371
510
  return this._dialogRef;
372
511
  }
512
+ set remoteLoaderOptions(value) {
513
+ var _a, _b;
514
+ this._remoteLoaderOptions = value;
515
+ this.loadElement = ((_b = (_a = this.remoteLoaderOptions) === null || _a === void 0 ? void 0 : _a.elementName) === null || _b === void 0 ? void 0 : _b.length) > 0;
516
+ }
517
+ get remoteLoaderOptions() {
518
+ return this._remoteLoaderOptions;
519
+ }
373
520
  ngOnInit() {
374
- const options = {
375
- name: this.name,
376
- slugName: this.slugName,
377
- blockType: this.blockType,
378
- addonUUID: this.addonId,
379
- blockRemoteEntry: this.remoteEntry
380
- };
381
- this.remoteLoaderService.getBlockRemoteLoaderOptions(options).then((options) => {
382
- var _a;
383
- this.loadElement = ((_a = options.elementName) === null || _a === void 0 ? void 0 : _a.length) > 0;
384
- this.remotePathOptions = options;
385
- });
521
+ if (this.remoteLoaderOptions === null) {
522
+ const rlpOptions = {
523
+ name: this.name,
524
+ slugName: this.slugName,
525
+ blockType: this.blockType,
526
+ addonUUID: this.addonId,
527
+ blockRemoteEntry: this.remoteEntry
528
+ };
529
+ this.remoteLoaderService.getBlockRemoteLoaderOptions(rlpOptions).then((options) => {
530
+ this.remoteLoaderOptions = options;
531
+ });
532
+ }
386
533
  }
387
534
  ngOnDestroy() {
388
535
  if (this.dialogRef) {
389
536
  this.dialogRef = null;
390
537
  }
391
- this.remotePathOptions = null;
538
+ this.remoteLoaderOptions = null;
392
539
  }
393
540
  onBlockLoad() {
394
541
  this.blockLoad.emit();
@@ -402,10 +549,10 @@ class PepAddonBlockLoaderComponent {
402
549
  }
403
550
  }
404
551
  PepAddonBlockLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderComponent, deps: [{ token: PepRemoteLoaderService }], target: i0.ɵɵFactoryTarget.Component });
405
- 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"] }] });
552
+ 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"] }] });
406
553
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonBlockLoaderComponent, decorators: [{
407
554
  type: Component,
408
- 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>" }]
555
+ 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"] }]
409
556
  }], ctorParameters: function () { return [{ type: PepRemoteLoaderService }]; }, propDecorators: { dialogTemplate: [{
410
557
  type: ViewChild,
411
558
  args: ['dialogTemplate', { static: true, read: TemplateRef }]
@@ -423,6 +570,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
423
570
  type: Input
424
571
  }], dialogRef: [{
425
572
  type: Input
573
+ }], remoteLoaderOptions: [{
574
+ type: Input
426
575
  }], hostEvents: [{
427
576
  type: Output
428
577
  }], blockLoad: [{
@@ -444,6 +593,9 @@ class PepAddonBlockLoaderService {
444
593
  addonBlockInstance.addonId = options.addonUUID;
445
594
  addonBlockInstance.remoteEntry = options.blockRemoteEntry;
446
595
  addonBlockInstance.hostObject = options.hostObject;
596
+ if (options.remoteLoaderOptions) {
597
+ addonBlockInstance.remoteLoaderOptions = options.remoteLoaderOptions;
598
+ }
447
599
  addonBlockInstance.hostEvents.subscribe((event) => {
448
600
  if (options.hostEventsCallback) {
449
601
  options.hostEventsCallback(event);
@@ -463,7 +615,7 @@ class PepAddonBlockLoaderService {
463
615
  if (componentRef) {
464
616
  const addonBlockInstance = componentRef.instance;
465
617
  const pepConfig = this.dialogService.getDialogConfig({ disableClose: false, panelClass: 'remote-loader-dialog' }, options.size || 'full-screen');
466
- const mergeConfig = Object.assign(Object.assign({}, options.config), pepConfig);
618
+ const mergeConfig = Object.assign(Object.assign({}, pepConfig), options.config);
467
619
  const data = options.data || null;
468
620
  addonBlockInstance.dialogRef = this.dialogService.openDialog(addonBlockInstance.dialogTemplate, data, mergeConfig);
469
621
  addonBlockInstance.dialogRef.afterClosed().subscribe(() => {