@pepperi-addons/ngx-lib 0.4.2-scroll.7 → 0.5.0-ng15.1

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 (508) hide show
  1. package/address/address.component.d.ts +1 -1
  2. package/attachment/attachment.component.d.ts +2 -1
  3. package/bread-crumbs/bread-crumbs.component.d.ts +1 -1
  4. package/bread-crumbs/bread-crumbs.model.d.ts +1 -1
  5. package/button/button.component.d.ts +1 -1
  6. package/carousel/carousel-item.directive.d.ts +1 -1
  7. package/carousel/carousel.component.d.ts +1 -1
  8. package/checkbox/checkbox.component.d.ts +2 -1
  9. package/chips/chips.component.d.ts +4 -5
  10. package/chips/chips.component.theme.scss +15 -5
  11. package/chips/chips.model.d.ts +2 -2
  12. package/chips/chips.service.d.ts +0 -3
  13. package/color/color-picker.component.d.ts +1 -1
  14. package/color/color-picker.component.theme.scss +2 -1
  15. package/color/color.component.d.ts +1 -1
  16. package/color/color.model.d.ts +1 -1
  17. package/core/clipboard/clipboard.directive.d.ts +1 -1
  18. package/core/common/directives/auto-width.directive.d.ts +1 -1
  19. package/core/common/directives/base-destroyer.directive.d.ts +10 -0
  20. package/core/common/directives/button-blur.directive.d.ts +1 -1
  21. package/core/common/directives/button-loader.directive.d.ts +1 -1
  22. package/core/common/directives/data-qa.directive.d.ts +1 -1
  23. package/core/common/directives/div-loader.directive.d.ts +1 -1
  24. package/core/common/directives/menu-blur.directive.d.ts +1 -1
  25. package/core/common/directives/prevent-multi-click.directive.d.ts +1 -1
  26. package/core/common/directives/print.directive.d.ts +1 -1
  27. package/core/common/directives/public-api.d.ts +1 -0
  28. package/core/common/pipes/common-pipes.d.ts +2 -2
  29. package/core/common/services/addon.service.d.ts +6 -4
  30. package/core/common/services/file.service.d.ts +1 -1
  31. package/core/common/services/utilities.service.d.ts +4 -4
  32. package/core/customization/customization.model.d.ts +15 -12
  33. package/core/customization/customization.service.d.ts +4 -0
  34. package/core/layout/layout.service.d.ts +1 -1
  35. package/core/layout/rtl.directive.d.ts +2 -2
  36. package/core/portal/attach.directive.d.ts +1 -1
  37. package/core/portal/target.directive.d.ts +1 -1
  38. package/date/date.component.d.ts +4 -2
  39. package/dialog/default-dialog.component.d.ts +1 -1
  40. package/dialog/dialog.component.d.ts +1 -1
  41. package/dialog/dialog.model.d.ts +2 -2
  42. package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
  43. package/draggable-items/draggable-items.component.d.ts +4 -7
  44. package/draggable-items/draggable-items.model.d.ts +2 -2
  45. package/draggable-items/draggable-items.module.d.ts +4 -3
  46. package/esm2020/address/address.component.mjs +16 -16
  47. package/esm2020/address/address.module.mjs +5 -5
  48. package/esm2020/attachment/attachment.component.mjs +58 -49
  49. package/esm2020/attachment/attachment.module.mjs +5 -5
  50. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +15 -15
  51. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +5 -5
  52. package/esm2020/button/button.component.mjs +23 -23
  53. package/esm2020/button/button.module.mjs +5 -5
  54. package/esm2020/carousel/carousel-item.directive.mjs +9 -9
  55. package/esm2020/carousel/carousel.component.mjs +52 -52
  56. package/esm2020/carousel/carousel.module.mjs +5 -5
  57. package/esm2020/checkbox/checkbox.component.mjs +40 -31
  58. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  59. package/esm2020/chips/chips.component.mjs +26 -28
  60. package/esm2020/chips/chips.module.mjs +5 -5
  61. package/esm2020/chips/chips.service.mjs +5 -14
  62. package/esm2020/color/color-picker.component.mjs +5 -5
  63. package/esm2020/color/color.component.mjs +4 -4
  64. package/esm2020/color/color.module.mjs +5 -5
  65. package/esm2020/core/clipboard/clipboard.directive.mjs +4 -4
  66. package/esm2020/core/clipboard/clipboard.service.mjs +4 -4
  67. package/esm2020/core/common/directives/auto-width.directive.mjs +4 -4
  68. package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
  69. package/esm2020/core/common/directives/button-blur.directive.mjs +4 -4
  70. package/esm2020/core/common/directives/button-loader.directive.mjs +10 -10
  71. package/esm2020/core/common/directives/data-qa.directive.mjs +4 -4
  72. package/esm2020/core/common/directives/div-loader.directive.mjs +4 -4
  73. package/esm2020/core/common/directives/menu-blur.directive.mjs +4 -4
  74. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +4 -4
  75. package/esm2020/core/common/directives/print.directive.mjs +4 -4
  76. package/esm2020/core/common/directives/public-api.mjs +2 -1
  77. package/esm2020/core/common/pipes/common-pipes.mjs +35 -35
  78. package/esm2020/core/common/pipes/date-ago.pipe.mjs +4 -4
  79. package/esm2020/core/common/services/addon.service.mjs +36 -12
  80. package/esm2020/core/common/services/color.service.mjs +4 -4
  81. package/esm2020/core/common/services/cookie.service.mjs +4 -4
  82. package/esm2020/core/common/services/data-convertor.service.mjs +6 -6
  83. package/esm2020/core/common/services/file.service.mjs +4 -4
  84. package/esm2020/core/common/services/jwt-helper.service.mjs +4 -4
  85. package/esm2020/core/common/services/session.service.mjs +4 -4
  86. package/esm2020/core/common/services/translate.service.mjs +4 -4
  87. package/esm2020/core/common/services/utilities.service.mjs +10 -10
  88. package/esm2020/core/common/services/validator.service.mjs +4 -4
  89. package/esm2020/core/common/services/window-scrolling.service.mjs +4 -4
  90. package/esm2020/core/customization/customization.model.mjs +40 -11
  91. package/esm2020/core/customization/customization.service.mjs +22 -4
  92. package/esm2020/core/http/interceptors/error.interceptor.mjs +4 -4
  93. package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -4
  94. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +4 -4
  95. package/esm2020/core/http/services/http.service.mjs +4 -4
  96. package/esm2020/core/http/services/loader.service.mjs +9 -9
  97. package/esm2020/core/layout/layout.service.mjs +12 -12
  98. package/esm2020/core/layout/rtl.directive.mjs +7 -7
  99. package/esm2020/core/portal/attach.directive.mjs +4 -4
  100. package/esm2020/core/portal/portal.service.mjs +4 -4
  101. package/esm2020/core/portal/target.directive.mjs +4 -4
  102. package/esm2020/core/scroll-to/scroll-to.service.mjs +4 -4
  103. package/esm2020/date/date.component.mjs +81 -59
  104. package/esm2020/date/date.model.mjs +7 -7
  105. package/esm2020/date/date.module.mjs +5 -5
  106. package/esm2020/dialog/default-dialog.component.mjs +4 -4
  107. package/esm2020/dialog/dialog.component.mjs +4 -4
  108. package/esm2020/dialog/dialog.module.mjs +5 -5
  109. package/esm2020/dialog/dialog.service.mjs +4 -4
  110. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +46 -6
  111. package/esm2020/draggable-items/draggable-items.component.mjs +21 -29
  112. package/esm2020/draggable-items/draggable-items.module.mjs +9 -5
  113. package/esm2020/field-title/field-title.component.mjs +8 -5
  114. package/esm2020/field-title/field-title.module.mjs +5 -5
  115. package/esm2020/files-uploader/files-uploader.component.mjs +12 -12
  116. package/esm2020/files-uploader/files-uploader.module.mjs +5 -5
  117. package/esm2020/form/field-generator.component.mjs +5 -5
  118. package/esm2020/form/form.component.mjs +29 -27
  119. package/esm2020/form/form.module.mjs +5 -5
  120. package/esm2020/form/indicators.component.mjs +4 -4
  121. package/esm2020/form/internal-button.component.mjs +17 -17
  122. package/esm2020/form/internal-carusel.component.mjs +18 -18
  123. package/esm2020/form/internal-carusel.service.mjs +4 -4
  124. package/esm2020/form/internal-field-generator.component.mjs +5 -5
  125. package/esm2020/form/internal-form.component.mjs +29 -27
  126. package/esm2020/form/internal-list.component.mjs +7 -7
  127. package/esm2020/form/internal-menu.component.mjs +4 -4
  128. package/esm2020/form/internal-page.component.mjs +4 -4
  129. package/esm2020/form/internal-page.service.mjs +4 -4
  130. package/esm2020/group-buttons/group-buttons.component.mjs +5 -5
  131. package/esm2020/group-buttons/group-buttons.module.mjs +5 -5
  132. package/esm2020/icon/icon-registry.service.mjs +4 -4
  133. package/esm2020/icon/icon.component.mjs +11 -11
  134. package/esm2020/icon/icon.module.mjs +5 -5
  135. package/esm2020/icon/icon.service.mjs +4 -4
  136. package/esm2020/image/image.component.mjs +52 -43
  137. package/esm2020/image/image.module.mjs +5 -5
  138. package/esm2020/image/image.service.mjs +4 -4
  139. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +26 -25
  140. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +5 -5
  141. package/esm2020/link/link.component.mjs +59 -50
  142. package/esm2020/link/link.module.mjs +5 -5
  143. package/esm2020/link/link.pipes.mjs +4 -4
  144. package/esm2020/list/list-actions.component.mjs +6 -6
  145. package/esm2020/list/list-carousel.component.mjs +20 -20
  146. package/esm2020/list/list-chooser.component.mjs +6 -6
  147. package/esm2020/list/list-pager.component.mjs +12 -12
  148. package/esm2020/list/list-sorting.component.mjs +6 -6
  149. package/esm2020/list/list-total.component.mjs +9 -6
  150. package/esm2020/list/list-views.component.mjs +6 -6
  151. package/esm2020/list/list.component.mjs +135 -83
  152. package/esm2020/list/list.module.mjs +5 -5
  153. package/esm2020/list/list.pipes.mjs +7 -7
  154. package/esm2020/list/virtual-scroller.mjs +58 -58
  155. package/esm2020/menu/menu-item.component.mjs +5 -5
  156. package/esm2020/menu/menu.component.mjs +11 -11
  157. package/esm2020/menu/menu.module.mjs +5 -5
  158. package/esm2020/ngx-lib.module.mjs +5 -5
  159. package/esm2020/page-layout/page-layout.component.mjs +4 -4
  160. package/esm2020/page-layout/page-layout.module.mjs +5 -5
  161. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +4 -4
  162. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +4 -4
  163. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +17 -17
  164. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +5 -5
  165. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +4 -4
  166. package/esm2020/quantity-selector/quantity-selector.component.mjs +102 -89
  167. package/esm2020/quantity-selector/quantity-selector.module.mjs +5 -5
  168. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +4 -4
  169. package/esm2020/query-builder/common/services/output-query.service.mjs +4 -4
  170. package/esm2020/query-builder/common/services/query-structure.service.mjs +14 -5
  171. package/esm2020/query-builder/common/services/type-convertor.service.mjs +10 -10
  172. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +24 -22
  173. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +4 -4
  174. package/esm2020/query-builder/query-builder.component.mjs +19 -19
  175. package/esm2020/query-builder/query-builder.module.mjs +5 -5
  176. package/esm2020/query-builder/query-builder.service.mjs +4 -4
  177. package/esm2020/remote-loader/addon-block-loader.component.mjs +45 -35
  178. package/esm2020/remote-loader/addon-block-loader.service.mjs +8 -5
  179. package/esm2020/remote-loader/remote-loader-element.component.mjs +81 -26
  180. package/esm2020/remote-loader/remote-loader.component.mjs +13 -13
  181. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  182. package/esm2020/remote-loader/remote-loader.module.mjs +5 -5
  183. package/esm2020/remote-loader/remote-loader.service.mjs +38 -15
  184. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +47 -38
  185. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +5 -5
  186. package/esm2020/search/search.component.mjs +35 -35
  187. package/esm2020/search/search.module.mjs +5 -5
  188. package/esm2020/select/select.component.mjs +89 -45
  189. package/esm2020/select/select.module.mjs +5 -5
  190. package/esm2020/select-panel/select-panel.component.mjs +26 -26
  191. package/esm2020/select-panel/select-panel.module.mjs +5 -5
  192. package/esm2020/separator/separator.component.mjs +16 -16
  193. package/esm2020/separator/separator.module.mjs +5 -5
  194. package/esm2020/side-bar/side-bar.component.mjs +29 -15
  195. package/esm2020/side-bar/side-bar.module.mjs +5 -5
  196. package/esm2020/signature/signature-dialog.component.mjs +4 -4
  197. package/esm2020/signature/signature.component.mjs +40 -31
  198. package/esm2020/signature/signature.module.mjs +5 -5
  199. package/esm2020/size-detector/size-detector.component.mjs +15 -13
  200. package/esm2020/size-detector/size-detector.module.mjs +5 -5
  201. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +5 -5
  202. package/esm2020/skeleton-loader/skeleton-loader.module.mjs +5 -5
  203. package/esm2020/slider/slider.component.mjs +21 -21
  204. package/esm2020/slider/slider.module.mjs +5 -5
  205. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +4 -4
  206. package/esm2020/smart-filters/common/filter-actions.component.mjs +4 -4
  207. package/esm2020/smart-filters/common/model/base-filter-component.mjs +28 -34
  208. package/esm2020/smart-filters/common/model/field.mjs +7 -7
  209. package/esm2020/smart-filters/common/model/operator.mjs +6 -4
  210. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +4 -4
  211. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +5 -5
  212. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +4 -4
  213. package/esm2020/smart-filters/smart-filters.component.mjs +19 -19
  214. package/esm2020/smart-filters/smart-filters.module.mjs +5 -5
  215. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +29 -9
  216. package/esm2020/snack-bar/default-snack-bar.component.mjs +4 -4
  217. package/esm2020/snack-bar/snack-bar.component.mjs +4 -4
  218. package/esm2020/snack-bar/snack-bar.module.mjs +5 -5
  219. package/esm2020/snack-bar/snack-bar.service.mjs +4 -4
  220. package/esm2020/textarea/textarea.component.mjs +40 -31
  221. package/esm2020/textarea/textarea.module.mjs +5 -5
  222. package/esm2020/textbox/textbox-validation.directive.mjs +5 -5
  223. package/esm2020/textbox/textbox.component.mjs +152 -116
  224. package/esm2020/textbox/textbox.module.mjs +5 -5
  225. package/esm2020/textbox-icon/textbox-icon.component.mjs +4 -4
  226. package/esm2020/textbox-icon/textbox-icon.module.mjs +5 -5
  227. package/esm2020/top-bar/top-bar.component.mjs +5 -5
  228. package/esm2020/top-bar/top-bar.module.mjs +5 -5
  229. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +19 -19
  230. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  231. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +61 -52
  232. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  233. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +18 -18
  234. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
  235. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +26 -26
  236. package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  237. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +63 -63
  238. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  239. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +43 -34
  240. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  241. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +33 -44
  242. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  243. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +11 -11
  244. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  245. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +91 -68
  246. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  247. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  248. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  249. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +75 -40
  250. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  251. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +11 -8
  252. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  253. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +15 -15
  254. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  255. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +122 -118
  256. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  257. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +8 -8
  258. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  259. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +20 -20
  260. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  261. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +58 -49
  262. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  263. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +29 -28
  264. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  265. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +65 -56
  266. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  267. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +261 -204
  268. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  269. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +18 -18
  270. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  271. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  272. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  273. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +26 -26
  274. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  275. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +110 -97
  276. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  277. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +75 -65
  278. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  279. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +197 -108
  280. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  281. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +50 -41
  282. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  283. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +38 -38
  284. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  285. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +29 -29
  286. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  287. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +92 -48
  288. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  289. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +19 -19
  290. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
  291. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +32 -18
  292. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  293. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +46 -37
  294. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  295. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +18 -16
  296. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  297. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +8 -8
  298. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  299. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +24 -24
  300. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  301. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +105 -89
  302. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  303. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  304. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  305. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +43 -34
  306. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  307. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  308. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  309. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +161 -124
  310. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  311. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +8 -8
  312. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  313. package/fesm2015/pepperi-addons-ngx-lib.mjs +282 -190
  314. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  315. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +19 -19
  316. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  317. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +61 -52
  318. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  319. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +18 -18
  320. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
  321. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +26 -26
  322. package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  323. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +63 -63
  324. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  325. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +43 -34
  326. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  327. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +33 -44
  328. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  329. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +11 -11
  330. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  331. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +90 -68
  332. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  333. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  334. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  335. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +74 -39
  336. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  337. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +11 -8
  338. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  339. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +15 -15
  340. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  341. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +122 -118
  342. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  343. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +8 -8
  344. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  345. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +20 -20
  346. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  347. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +58 -49
  348. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  349. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +29 -28
  350. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  351. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +65 -56
  352. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  353. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +259 -204
  354. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  355. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +18 -18
  356. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  357. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  358. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  359. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +26 -26
  360. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  361. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +110 -97
  362. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  363. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +75 -65
  364. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  365. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +184 -93
  366. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  367. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +50 -41
  368. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  369. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +38 -38
  370. package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  371. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +29 -29
  372. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  373. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +92 -48
  374. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  375. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +19 -19
  376. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
  377. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +32 -18
  378. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  379. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +46 -37
  380. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  381. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +18 -16
  382. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  383. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +8 -8
  384. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  385. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +24 -24
  386. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  387. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +105 -89
  388. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  389. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  390. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  391. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +43 -34
  392. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  393. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  394. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  395. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +160 -124
  396. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  397. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +8 -8
  398. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  399. package/fesm2020/pepperi-addons-ngx-lib.mjs +281 -190
  400. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  401. package/field-title/field-title.component.d.ts +2 -1
  402. package/files-uploader/files-uploader.component.d.ts +1 -1
  403. package/form/field-generator.component.d.ts +1 -1
  404. package/form/form.component.d.ts +1 -1
  405. package/form/indicators.component.d.ts +1 -1
  406. package/form/internal-button.component.d.ts +1 -1
  407. package/form/internal-carusel.component.d.ts +1 -1
  408. package/form/internal-field-generator.component.d.ts +1 -1
  409. package/form/internal-form.component.d.ts +1 -1
  410. package/form/internal-list.component.d.ts +2 -2
  411. package/form/internal-menu.component.d.ts +1 -1
  412. package/form/internal-page.component.d.ts +1 -1
  413. package/group-buttons/group-buttons.component.d.ts +2 -2
  414. package/icon/icon-generated.model.d.ts +2 -2
  415. package/icon/icon.component.d.ts +1 -1
  416. package/image/image.component.d.ts +2 -1
  417. package/image/image.component.theme.scss +4 -2
  418. package/images-filmstrip/images-filmstrip.component.d.ts +1 -1
  419. package/link/link.component.d.ts +2 -1
  420. package/list/list-actions.component.d.ts +1 -1
  421. package/list/list-carousel.component.d.ts +2 -2
  422. package/list/list-chooser.component.d.ts +1 -1
  423. package/list/list-pager.component.d.ts +1 -1
  424. package/list/list-sorting.component.d.ts +1 -1
  425. package/list/list-total.component.d.ts +2 -1
  426. package/list/list-views.component.d.ts +2 -2
  427. package/list/list.component.d.ts +8 -5
  428. package/list/list.model.d.ts +6 -6
  429. package/list/virtual-scroller.d.ts +2 -2
  430. package/menu/menu-item.component.d.ts +1 -1
  431. package/menu/menu.component.d.ts +1 -1
  432. package/menu/menu.model.d.ts +3 -3
  433. package/package.json +1 -1
  434. package/page-layout/page-layout.component.d.ts +1 -1
  435. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +1 -1
  436. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +1 -1
  437. package/profile-data-views-list/profile-data-views-list.component.d.ts +1 -1
  438. package/quantity-selector/quantity-selector-validation.directive.d.ts +1 -1
  439. package/quantity-selector/quantity-selector.component.d.ts +8 -9
  440. package/quantity-selector/quantity-selector.component.theme.scss +12 -6
  441. package/query-builder/common/model/operator.d.ts +1 -1
  442. package/query-builder/query-builder-item/query-builder-item.component.d.ts +4 -2
  443. package/query-builder/query-builder-section/query-builder-section.component.d.ts +1 -1
  444. package/query-builder/query-builder.component.d.ts +1 -1
  445. package/remote-loader/addon-block-loader.component.d.ts +4 -2
  446. package/remote-loader/remote-loader-element.component.d.ts +9 -2
  447. package/remote-loader/remote-loader.component.d.ts +1 -1
  448. package/remote-loader/remote-loader.model.d.ts +3 -2
  449. package/remote-loader/remote-loader.service.d.ts +2 -0
  450. package/rich-html-textarea/rich-html-textarea.component.d.ts +2 -1
  451. package/rich-html-textarea/rich-html-textarea.component.theme.scss +6 -3
  452. package/search/search.component.d.ts +1 -1
  453. package/search/search.model.d.ts +4 -4
  454. package/select/select.component.d.ts +9 -1
  455. package/select/select.component.theme.scss +22 -11
  456. package/select-panel/select-panel.component.d.ts +1 -1
  457. package/select-panel/select-panel.component.theme.scss +0 -2
  458. package/separator/separator.component.d.ts +1 -1
  459. package/side-bar/side-bar.component.d.ts +4 -1
  460. package/side-bar/side-bar.model.d.ts +1 -1
  461. package/signature/signature-dialog.component.d.ts +1 -1
  462. package/signature/signature.component.d.ts +2 -1
  463. package/size-detector/size-detector.component.d.ts +1 -1
  464. package/skeleton-loader/skeleton-loader.component.d.ts +2 -2
  465. package/slider/slider.component.d.ts +1 -1
  466. package/slider/slider.component.theme.scss +15 -5
  467. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -1
  468. package/smart-filters/common/filter-actions.component.d.ts +1 -1
  469. package/smart-filters/common/model/base-filter-component.d.ts +3 -5
  470. package/smart-filters/common/model/operator.d.ts +2 -0
  471. package/smart-filters/common/model/type.d.ts +4 -4
  472. package/smart-filters/date-filter/date-filter.component.d.ts +3 -1
  473. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -1
  474. package/smart-filters/number-filter/number-filter.component.d.ts +3 -1
  475. package/smart-filters/smart-filters.component.d.ts +1 -1
  476. package/smart-filters/text-filter/text-filter.component.d.ts +4 -1
  477. package/snack-bar/default-snack-bar.component.d.ts +1 -1
  478. package/snack-bar/snack-bar.component.d.ts +1 -1
  479. package/src/assets/i18n/ar.ngx-lib.json +180 -0
  480. package/src/assets/i18n/de.ngx-lib.json +104 -5
  481. package/src/assets/i18n/en.ngx-lib.json +4 -3
  482. package/src/assets/i18n/es.ngx-lib.json +113 -11
  483. package/src/assets/i18n/fr.ngx-lib.json +105 -4
  484. package/src/assets/i18n/he.ngx-lib.json +105 -4
  485. package/src/assets/i18n/it.ngx-lib.json +114 -13
  486. package/src/assets/i18n/ja.ngx-lib.json +105 -4
  487. package/src/assets/i18n/pl.ngx-lib.json +105 -4
  488. package/src/assets/i18n/pt.ngx-lib.json +105 -4
  489. package/src/assets/i18n/sr.ngx-lib.json +180 -0
  490. package/src/assets/i18n/zh.ngx-lib.json +105 -2
  491. package/src/core/style/abstracts/mixins.scss +88 -30
  492. package/src/core/style/abstracts/variables.scss +9 -0
  493. package/src/core/style/base/Spacing.stories.mdx +22 -22
  494. package/src/core/style/base/base.scss +215 -115
  495. package/src/core/style/components/button.scss +41 -19
  496. package/src/core/style/components/checkbox.scss +132 -128
  497. package/src/core/style/components/file.scss +13 -9
  498. package/src/core/style/components/general.scss +149 -65
  499. package/src/core/style/components/radio-button.scss +50 -23
  500. package/src/core/style/components/textarea.scss +69 -30
  501. package/textarea/textarea.component.d.ts +2 -1
  502. package/textbox/textbox-validation.directive.d.ts +1 -1
  503. package/textbox/textbox.component.d.ts +2 -1
  504. package/textbox-icon/textbox-icon.component.d.ts +1 -1
  505. package/theming-offline.scss +2 -1
  506. package/theming.scss +2 -1
  507. package/top-bar/top-bar.component.d.ts +1 -1
  508. package/top-bar/top-bar.model.d.ts +1 -1
@@ -21,7 +21,7 @@ import * as i11 from '@pepperi-addons/ngx-lib/textbox-icon';
21
21
  import { PepTextboxIconModule } from '@pepperi-addons/ngx-lib/textbox-icon';
22
22
  import * as i10 from '@pepperi-addons/ngx-lib/field-title';
23
23
  import { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';
24
- import { BehaviorSubject, distinctUntilChanged } from 'rxjs';
24
+ import { distinctUntilChanged, BehaviorSubject } from 'rxjs';
25
25
  import { coerceNumberProperty } from '@angular/cdk/coercion';
26
26
  import * as i2 from '@ngx-translate/core';
27
27
 
@@ -83,7 +83,7 @@ class PepTextboxValidationDirective {
83
83
  const newValue = this.validatorService.validateNumber(value, this.isDecimal());
84
84
  console.log(`after validateNumber newValue is - ${newValue}`);
85
85
  // Always set to the value input number with '.' decomal separator.
86
- this.hostElement.nativeElement['value'] = newValue ? this.utilitiesService.changeDecimalSeparatorWhenItsComma(newValue) : 0;
86
+ this.hostElement.nativeElement['value'] = newValue ? this.utilitiesService.changeDecimalSeparatorWhenItsComma(newValue) : '';
87
87
  }
88
88
  else if (this.isPhone()) {
89
89
  // test phone with regular expression, when
@@ -98,9 +98,9 @@ class PepTextboxValidationDirective {
98
98
  }
99
99
  }
100
100
  }
101
- PepTextboxValidationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepTextboxValidationDirective, deps: [{ token: i0.ElementRef }, { token: i1.PepUtilitiesService }, { token: i1.PepValidatorService }], target: i0.ɵɵFactoryTarget.Directive });
102
- PepTextboxValidationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: PepTextboxValidationDirective, selector: "[pepTextboxValidation]", inputs: { type: "type" }, host: { listeners: { "change": "onChange($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepTextboxValidationDirective, decorators: [{
101
+ PepTextboxValidationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepTextboxValidationDirective, deps: [{ token: i0.ElementRef }, { token: i1.PepUtilitiesService }, { token: i1.PepValidatorService }], target: i0.ɵɵFactoryTarget.Directive });
102
+ PepTextboxValidationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: PepTextboxValidationDirective, selector: "[pepTextboxValidation]", inputs: { type: "type" }, host: { listeners: { "change": "onChange($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 });
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepTextboxValidationDirective, decorators: [{
104
104
  type: Directive,
105
105
  args: [{
106
106
  selector: '[pepTextboxValidation]',
@@ -133,6 +133,110 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
133
133
  * @implements {OnDestroy}
134
134
  */
135
135
  class PepTextboxComponent {
136
+ /**
137
+ * The text box key
138
+ *
139
+ * @memberof PepTextboxComponent
140
+ */
141
+ set key(value) {
142
+ this._key = value;
143
+ this.dataQa = value;
144
+ }
145
+ get key() {
146
+ return this._key;
147
+ }
148
+ /**
149
+ * The value of the text box.
150
+ *
151
+ * @memberof PepTextboxComponent
152
+ */
153
+ set value(value) {
154
+ if (!value) {
155
+ value = '';
156
+ }
157
+ // else {
158
+ // // If this is a number validate it.
159
+ // if (this.isNumberType()) {
160
+ // value = coerceNumberProperty(value, 0).toString();
161
+ // }
162
+ // }
163
+ if (this.isDifferentValue(value)) {
164
+ // console.log(`set value, value is - ${value}`)
165
+ this._value = value;
166
+ }
167
+ this.setFormattedValue(this.value);
168
+ this.changeDisplayValue();
169
+ }
170
+ get value() {
171
+ return this._value;
172
+ }
173
+ get valueAsCurrentCulture() {
174
+ return this.utilitiesService.changeDecimalSeparatorWhenItsComma(this.value, true);
175
+ // let res = this.value;
176
+ // if (this.isDecimal()) {
177
+ // res = this.utilitiesService.formatDecimal(this.value, this.minFractionDigits, this.maxFractionDigits, false);
178
+ // }
179
+ // return res;
180
+ }
181
+ set minFractionDigits(value) {
182
+ this._minFractionDigits = value;
183
+ this.setFormattedValue(this.value);
184
+ this.changeDisplayValue();
185
+ }
186
+ get minFractionDigits() {
187
+ return this._minFractionDigits;
188
+ }
189
+ set maxFractionDigits(value) {
190
+ this._maxFractionDigits = value;
191
+ this.setFormattedValue(this.value);
192
+ this.changeDisplayValue();
193
+ }
194
+ get maxFractionDigits() {
195
+ return this._maxFractionDigits;
196
+ }
197
+ set type(value) {
198
+ this._type = value;
199
+ if (this.value) {
200
+ this.setFormattedValue(this.value);
201
+ this.changeDisplayValue();
202
+ this.setInputModeAttribute();
203
+ }
204
+ }
205
+ get type() {
206
+ return this._type;
207
+ }
208
+ set mandatory(value) {
209
+ this._mandatory = value;
210
+ }
211
+ get mandatory() {
212
+ return this._mandatory;
213
+ }
214
+ set visible(visible) {
215
+ this._visible = visible;
216
+ if (visible) {
217
+ this.renderer.removeClass(this.element.nativeElement, 'hidden-element');
218
+ }
219
+ else {
220
+ this.renderer.addClass(this.element.nativeElement, 'hidden-element');
221
+ }
222
+ }
223
+ get visible() {
224
+ return this._visible;
225
+ }
226
+ get calculateFormattedValue() {
227
+ return this._calculateFormattedValue;
228
+ }
229
+ set isInFocus(isInFocus) {
230
+ this._isInFocus = isInFocus;
231
+ this.setFormattedValue(this.value);
232
+ this.changeDisplayValue();
233
+ }
234
+ get isInFocus() {
235
+ return this._isInFocus;
236
+ }
237
+ get displayValue$() {
238
+ return this._displayValueSubject.asObservable().pipe(distinctUntilChanged());
239
+ }
136
240
  constructor(customizationService, renderer, element, translate, utilitiesService) {
137
241
  this.customizationService = customizationService;
138
242
  this.renderer = renderer;
@@ -234,9 +338,10 @@ class PepTextboxComponent {
234
338
  * @memberof PepTextboxComponent
235
339
  */
236
340
  this.valueChange = new EventEmitter();
341
+ this.keyup = new EventEmitter();
237
342
  // @Output()
238
343
  // formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();
239
- this.keyup = new EventEmitter();
344
+ this.validationChange = new EventEmitter();
240
345
  this._calculateFormattedValue = true;
241
346
  this.controlType = 'textbox';
242
347
  this.standAlone = false;
@@ -247,110 +352,6 @@ class PepTextboxComponent {
247
352
  this._displayValueSubject = new BehaviorSubject('');
248
353
  this.isInFocus = false;
249
354
  }
250
- /**
251
- * The text box key
252
- *
253
- * @memberof PepTextboxComponent
254
- */
255
- set key(value) {
256
- this._key = value;
257
- this.dataQa = value;
258
- }
259
- get key() {
260
- return this._key;
261
- }
262
- /**
263
- * The value of the text box.
264
- *
265
- * @memberof PepTextboxComponent
266
- */
267
- set value(value) {
268
- if (!value) {
269
- value = '';
270
- }
271
- // else {
272
- // // If this is a number validate it.
273
- // if (this.isNumberType()) {
274
- // value = coerceNumberProperty(value, 0).toString();
275
- // }
276
- // }
277
- if (this.isDifferentValue(value)) {
278
- // console.log(`set value, value is - ${value}`)
279
- this._value = value;
280
- }
281
- this.setFormattedValue(this.value);
282
- this.changeDisplayValue();
283
- }
284
- get value() {
285
- return this._value;
286
- }
287
- get valueAsCurrentCulture() {
288
- return this.utilitiesService.changeDecimalSeparatorWhenItsComma(this.value, true);
289
- // let res = this.value;
290
- // if (this.isDecimal()) {
291
- // res = this.utilitiesService.formatDecimal(this.value, this.minFractionDigits, this.maxFractionDigits, false);
292
- // }
293
- // return res;
294
- }
295
- set minFractionDigits(value) {
296
- this._minFractionDigits = value;
297
- this.setFormattedValue(this.value);
298
- this.changeDisplayValue();
299
- }
300
- get minFractionDigits() {
301
- return this._minFractionDigits;
302
- }
303
- set maxFractionDigits(value) {
304
- this._maxFractionDigits = value;
305
- this.setFormattedValue(this.value);
306
- this.changeDisplayValue();
307
- }
308
- get maxFractionDigits() {
309
- return this._maxFractionDigits;
310
- }
311
- set type(value) {
312
- this._type = value;
313
- if (this.value) {
314
- this.setFormattedValue(this.value);
315
- this.changeDisplayValue();
316
- this.setInputModeAttribute();
317
- }
318
- }
319
- get type() {
320
- return this._type;
321
- }
322
- set mandatory(value) {
323
- this._mandatory = value;
324
- }
325
- get mandatory() {
326
- return this._mandatory;
327
- }
328
- set visible(visible) {
329
- this._visible = visible;
330
- if (visible) {
331
- this.renderer.removeClass(this.element.nativeElement, 'hidden-element');
332
- }
333
- else {
334
- this.renderer.addClass(this.element.nativeElement, 'hidden-element');
335
- }
336
- }
337
- get visible() {
338
- return this._visible;
339
- }
340
- get calculateFormattedValue() {
341
- return this._calculateFormattedValue;
342
- }
343
- set isInFocus(isInFocus) {
344
- this._isInFocus = isInFocus;
345
- this.setFormattedValue(this.value);
346
- this.changeDisplayValue();
347
- }
348
- get isInFocus() {
349
- return this._isInFocus;
350
- }
351
- get displayValue$() {
352
- return this._displayValueSubject.asObservable().pipe(distinctUntilChanged());
353
- }
354
355
  setInputModeAttribute() {
355
356
  if (this.type === 'currency' || this.type === 'percentage' || this.type === 'real') {
356
357
  this.inputMode = 'decimal';
@@ -378,7 +379,7 @@ class PepTextboxComponent {
378
379
  if (this.isInFocus) {
379
380
  return;
380
381
  }
381
- if (this._calculateFormattedValue) {
382
+ if (this._calculateFormattedValue && this.value?.length > 0) {
382
383
  // console.log(`setFormattedValue before - value is ${value}`);
383
384
  if (this.type === 'currency') {
384
385
  this.formattedValue = this.utilitiesService.formatCurrency(value, this.accessory, this.minFractionDigits, this.maxFractionDigits);
@@ -409,6 +410,12 @@ class PepTextboxComponent {
409
410
  // Set the formatted value only for the first load cause it's not formatted if we set the value (I don't know why)
410
411
  // Else we set the value - this is important to set the value only cause setting the formatted value will cause bug when the number is with thousand separator
411
412
  this.customizationService.updateFormFieldValue(this.form, this.key, this.value || this.formattedValue, this.parentFieldKey);
413
+ // Raise this only for stand alone fields, If false then the usage for this field is inside a form.
414
+ // Then the form will take care of raising the (onFormValidationChanged) event
415
+ if (this.standAlone) {
416
+ const isValid = (this.disabled || this.readonly) ? true : this.form.valid;
417
+ this.validationChange.emit(isValid);
418
+ }
412
419
  }
413
420
  changeDisplayValue() {
414
421
  let res = '';
@@ -440,7 +447,7 @@ class PepTextboxComponent {
440
447
  maxValue: this.maxValue,
441
448
  regex: this.regex
442
449
  });
443
- this.form = this.customizationService.getDefaultFromGroup(pepField, this.renderError);
450
+ this.form = this.customizationService.getDefaultFromGroup(pepField, false);
444
451
  }
445
452
  ngOnInit() {
446
453
  if (this.form === null) {
@@ -495,6 +502,21 @@ class PepTextboxComponent {
495
502
  getGeneralError() {
496
503
  return this.translate.instant('MESSAGES.ERROR_IS_NOT_VALID', { field: this.label });
497
504
  }
505
+ // getOtherErrorMessage(inputValue: string) {
506
+ // if (this.isNumberType()) {
507
+ // if (this.type === 'percentage') {
508
+ // inputValue = inputValue.replace('%', '');
509
+ // } else if (this.accessory?.length > 0) {
510
+ // inputValue = inputValue.replace(this.accessory, '');
511
+ // }
512
+ // const numberValue = new PepToNumberPipe(this.utilitiesService).transform(inputValue);
513
+ // return (this.maxValue && numberValue > this.maxValue) || (this.minValue && numberValue < this.minValue) ?
514
+ // this.translate.instant('MESSAGES.ERROR_RANGE_IS_NOT_VALID', { min: this.minValue, max: this.maxValue }) :
515
+ // this.getGeneralError();
516
+ // } else {
517
+ // this.getGeneralError();
518
+ // }
519
+ // }
498
520
  getOtherErrorMessage(inputValue) {
499
521
  if (this.isNumberType()) {
500
522
  if (this.type === 'percentage') {
@@ -504,12 +526,24 @@ class PepTextboxComponent {
504
526
  inputValue = inputValue.replace(this.accessory, '');
505
527
  }
506
528
  const numberValue = new PepToNumberPipe(this.utilitiesService).transform(inputValue);
507
- return (this.maxValue && numberValue > this.maxValue) || (this.minValue && numberValue < this.minValue) ?
508
- this.translate.instant('MESSAGES.ERROR_RANGE_IS_NOT_VALID', { min: this.minValue, max: this.maxValue }) :
509
- this.getGeneralError();
529
+ const minSet = this.minValue !== null && this.minValue !== undefined && !isNaN(this.minValue);
530
+ const maxSet = this.maxValue !== null && this.maxValue !== undefined && !isNaN(this.maxValue);
531
+ if (minSet && !maxSet && numberValue < this.minValue) {
532
+ return this.translate.instant('MESSAGES.ERROR_GREATER_THAN_MIN', { min: this.minValue });
533
+ }
534
+ if (!minSet && maxSet && numberValue > this.maxValue) {
535
+ return this.translate.instant('MESSAGES.ERROR_LESS_THAN_MAX', { max: this.maxValue });
536
+ }
537
+ if (minSet && maxSet && (numberValue < this.minValue || numberValue > this.maxValue)) {
538
+ return this.translate.instant('MESSAGES.ERROR_BETWEEN_MIN_MAX', { min: this.minValue, max: this.maxValue });
539
+ }
540
+ if (isNaN(numberValue)) {
541
+ return this.getGeneralError();
542
+ }
543
+ return '';
510
544
  }
511
545
  else {
512
- this.getGeneralError();
546
+ return this.getGeneralError();
513
547
  }
514
548
  }
515
549
  isDecimal() {
@@ -623,11 +657,11 @@ class PepTextboxComponent {
623
657
  }, 0);
624
658
  }
625
659
  }
626
- PepTextboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepTextboxComponent, deps: [{ token: i1.PepCustomizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.TranslateService }, { token: i1.PepUtilitiesService }], target: i0.ɵɵFactoryTarget.Component });
627
- PepTextboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepTextboxComponent, selector: "pep-textbox", inputs: { key: "key", value: "value", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", accessory: "accessory", label: "label", placeholder: "placeholder", type: "type", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", hint: "hint", textColor: "textColor", xAlignment: "xAlignment", rowSpan: "rowSpan", minValue: "minValue", maxValue: "maxValue", visible: "visible", form: "form", isActive: "isActive", showTitle: "showTitle", renderTitle: "renderTitle", renderError: "renderError", renderSymbol: "renderSymbol", layoutType: "layoutType", parentFieldKey: "parentFieldKey", regex: "regex", regexError: "regexError", isInFocus: "isInFocus" }, outputs: { valueChange: "valueChange", keyup: "keyup" }, host: { properties: { "attr.data-qa": "this.dataQa" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [hint]=\"hint\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"input.value?.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <!-- (click)=\"$event.target.select()\" -->\n <input #input matInput pepTextboxValidation [formControlName]=\"key\" [id]=\"key\"\n [name]=\"key\" class=\" body-sm \" autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [type]=\"type\" [value]=\"displayValue$ | async\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event);\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" (keyup)=\"onKeyup($event)\"\n [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0 && (type === 'phone' || type === 'email' || type === 'link')}\" />\n<!-- [attr.inputmode]=\"inputMode\" -->\n <span\n *ngIf=\"disabled && formattedValue?.length > 0 && (type === 'phone' || type === 'email' || type === 'link')\"\n class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \"> {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\"> \n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherErrorContainer\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherErrorContainer>\n <ng-template *ngIf=\"regex && form?.get(key)?.errors?.pattern then patternError else otherError\"></ng-template>\n <ng-template #patternError>\n <span class=\"body-xs\">\n {{ regexError }}\n </span>\n </ng-template>\n <ng-template #otherError>\n <span class=\"body-xs\" #errSpan [innerText]=\"getOtherErrorMessage(input.value)\" [title]=\"errSpan.innerText\" ></span>\n </ng-template>\n </ng-template>\n </mat-error> \n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template> \n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngIf=\"parentFieldKey; then groupedBlock; else regularBlock\"></ng-container>\n <ng-template #regularBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #groupedBlock>\n <ng-container [formGroupName]=\"parentFieldKey\">\n <mat-form-field appearance=\"outline\">\n <!-- (click)=\"$event.target.select()\" -->\n <input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\" \n [placeholder]=\"!disabled ? placeholder : ''\" title=\"{{ formattedValue }}\"\n [formControlName]=\"key\" [value]=\"value\" \n (blur)=\"onBlur($event)\" (change)=\"onChange($event)\" (keyup)=\"onKeyup($event)\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" />\n </mat-form-field>\n <!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: true }\"></ng-container> -->\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'link'\">\n <a [id]=\"key\" class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" *ngIf=\"formattedValue != null\"\n title=\"{{ formattedValue }}\" target=\"_blank\" href=\"{{ value ? value : formattedValue }}\">{{\n formattedValue }}</a>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <span [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{'readonly': disabled}\"\n title=\"{{ formattedValue }}\" [ngStyle]=\"{ color: textColor }\">{{ formattedValue }}</span>\n </ng-container>\n </ng-container>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\">&nbsp;</span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}\n", ""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1$1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i10.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength", "fontBodyType"] }, { kind: "component", type: i11.PepTextboxIconComponent, selector: "pep-textbox-icon", inputs: ["value", "label", "type", "disabled"], outputs: ["iconClick"] }, { kind: "directive", type: PepTextboxValidationDirective, selector: "[pepTextboxValidation]", inputs: ["type"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
628
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepTextboxComponent, decorators: [{
660
+ PepTextboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepTextboxComponent, deps: [{ token: i1.PepCustomizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.TranslateService }, { token: i1.PepUtilitiesService }], target: i0.ɵɵFactoryTarget.Component });
661
+ PepTextboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PepTextboxComponent, selector: "pep-textbox", inputs: { key: "key", value: "value", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", accessory: "accessory", label: "label", placeholder: "placeholder", type: "type", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", hint: "hint", textColor: "textColor", xAlignment: "xAlignment", rowSpan: "rowSpan", minValue: "minValue", maxValue: "maxValue", visible: "visible", form: "form", isActive: "isActive", showTitle: "showTitle", renderTitle: "renderTitle", renderError: "renderError", renderSymbol: "renderSymbol", layoutType: "layoutType", parentFieldKey: "parentFieldKey", regex: "regex", regexError: "regexError", isInFocus: "isInFocus" }, outputs: { valueChange: "valueChange", keyup: "keyup", validationChange: "validationChange" }, host: { properties: { "attr.data-qa": "this.dataQa" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [hint]=\"hint\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"input.value?.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <!-- (click)=\"$event.target.select()\" -->\n <input #input matInput pepTextboxValidation [formControlName]=\"key\" [id]=\"key\"\n [name]=\"key\" class=\" body-sm \" autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [type]=\"type\" [value]=\"displayValue$ | async\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event);\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" (keyup)=\"onKeyup($event)\"\n [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0 && (type === 'phone' || type === 'email' || type === 'link')}\" />\n<!-- [attr.inputmode]=\"inputMode\" --> \n <span *ngIf=\"disabled && formattedValue?.length > 0 && (type === 'phone' || type === 'email' || type === 'link')\"\n class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm\"> {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\"> \n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherErrorContainer\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherErrorContainer>\n <ng-template *ngIf=\"regex && form?.get(key)?.errors?.pattern then patternError else otherError\"></ng-template>\n <ng-template #patternError>\n <span class=\"body-xs\">\n {{ regexError }}\n </span>\n </ng-template>\n <ng-template #otherError>\n <span class=\"body-xs\" #errSpan [innerText]=\"getOtherErrorMessage(input.value)\" [title]=\"errSpan.innerText\" ></span>\n </ng-template>\n </ng-template>\n </mat-error> \n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template> \n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngIf=\"parentFieldKey; then groupedBlock; else regularBlock\"></ng-container>\n <ng-template #regularBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #groupedBlock>\n <ng-container [formGroupName]=\"parentFieldKey\">\n <mat-form-field appearance=\"outline\">\n <!-- (click)=\"$event.target.select()\" -->\n <input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\" \n [placeholder]=\"!disabled ? placeholder : ''\" title=\"{{ formattedValue }}\"\n [formControlName]=\"key\" [value]=\"value\" \n (blur)=\"onBlur($event)\" (change)=\"onChange($event)\" (keyup)=\"onKeyup($event)\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" />\n </mat-form-field>\n <!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: true }\"></ng-container> -->\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'link'\">\n <a [id]=\"key\" class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" *ngIf=\"formattedValue != null\"\n title=\"{{ formattedValue }}\" target=\"_blank\" href=\"{{ value ? value : formattedValue }}\">{{\n formattedValue }}</a>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <span [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{'readonly': disabled}\"\n title=\"{{ formattedValue }}\" [ngStyle]=\"{ color: textColor }\">{{ formattedValue }}</span>\n </ng-container>\n </ng-container>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\">&nbsp;</span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}mat-form-field .mdc-text-field .mat-mdc-form-field-flex{padding:0 .75rem;height:var(--pep-form-field-height, 2.5rem)}\n", ""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1$1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i10.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength", "fontBodyType", "multiLine"] }, { kind: "component", type: i11.PepTextboxIconComponent, selector: "pep-textbox-icon", inputs: ["value", "label", "type", "disabled"], outputs: ["iconClick"] }, { kind: "directive", type: PepTextboxValidationDirective, selector: "[pepTextboxValidation]", inputs: ["type"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepTextboxComponent, decorators: [{
629
663
  type: Component,
630
- args: [{ selector: 'pep-textbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [hint]=\"hint\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"input.value?.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <!-- (click)=\"$event.target.select()\" -->\n <input #input matInput pepTextboxValidation [formControlName]=\"key\" [id]=\"key\"\n [name]=\"key\" class=\" body-sm \" autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [type]=\"type\" [value]=\"displayValue$ | async\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event);\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" (keyup)=\"onKeyup($event)\"\n [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0 && (type === 'phone' || type === 'email' || type === 'link')}\" />\n<!-- [attr.inputmode]=\"inputMode\" -->\n <span\n *ngIf=\"disabled && formattedValue?.length > 0 && (type === 'phone' || type === 'email' || type === 'link')\"\n class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \"> {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\"> \n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherErrorContainer\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherErrorContainer>\n <ng-template *ngIf=\"regex && form?.get(key)?.errors?.pattern then patternError else otherError\"></ng-template>\n <ng-template #patternError>\n <span class=\"body-xs\">\n {{ regexError }}\n </span>\n </ng-template>\n <ng-template #otherError>\n <span class=\"body-xs\" #errSpan [innerText]=\"getOtherErrorMessage(input.value)\" [title]=\"errSpan.innerText\" ></span>\n </ng-template>\n </ng-template>\n </mat-error> \n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template> \n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngIf=\"parentFieldKey; then groupedBlock; else regularBlock\"></ng-container>\n <ng-template #regularBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #groupedBlock>\n <ng-container [formGroupName]=\"parentFieldKey\">\n <mat-form-field appearance=\"outline\">\n <!-- (click)=\"$event.target.select()\" -->\n <input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\" \n [placeholder]=\"!disabled ? placeholder : ''\" title=\"{{ formattedValue }}\"\n [formControlName]=\"key\" [value]=\"value\" \n (blur)=\"onBlur($event)\" (change)=\"onChange($event)\" (keyup)=\"onKeyup($event)\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" />\n </mat-form-field>\n <!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: true }\"></ng-container> -->\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'link'\">\n <a [id]=\"key\" class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" *ngIf=\"formattedValue != null\"\n title=\"{{ formattedValue }}\" target=\"_blank\" href=\"{{ value ? value : formattedValue }}\">{{\n formattedValue }}</a>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <span [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{'readonly': disabled}\"\n title=\"{{ formattedValue }}\" [ngStyle]=\"{ color: textColor }\">{{ formattedValue }}</span>\n </ng-container>\n </ng-container>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\">&nbsp;</span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}\n"] }]
664
+ args: [{ selector: 'pep-textbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [hint]=\"hint\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"input.value?.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <!-- (click)=\"$event.target.select()\" -->\n <input #input matInput pepTextboxValidation [formControlName]=\"key\" [id]=\"key\"\n [name]=\"key\" class=\" body-sm \" autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [type]=\"type\" [value]=\"displayValue$ | async\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event);\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" (keyup)=\"onKeyup($event)\"\n [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0 && (type === 'phone' || type === 'email' || type === 'link')}\" />\n<!-- [attr.inputmode]=\"inputMode\" --> \n <span *ngIf=\"disabled && formattedValue?.length > 0 && (type === 'phone' || type === 'email' || type === 'link')\"\n class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm\"> {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\"> \n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherErrorContainer\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherErrorContainer>\n <ng-template *ngIf=\"regex && form?.get(key)?.errors?.pattern then patternError else otherError\"></ng-template>\n <ng-template #patternError>\n <span class=\"body-xs\">\n {{ regexError }}\n </span>\n </ng-template>\n <ng-template #otherError>\n <span class=\"body-xs\" #errSpan [innerText]=\"getOtherErrorMessage(input.value)\" [title]=\"errSpan.innerText\" ></span>\n </ng-template>\n </ng-template>\n </mat-error> \n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template> \n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngIf=\"parentFieldKey; then groupedBlock; else regularBlock\"></ng-container>\n <ng-template #regularBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #groupedBlock>\n <ng-container [formGroupName]=\"parentFieldKey\">\n <mat-form-field appearance=\"outline\">\n <!-- (click)=\"$event.target.select()\" -->\n <input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\" \n [placeholder]=\"!disabled ? placeholder : ''\" title=\"{{ formattedValue }}\"\n [formControlName]=\"key\" [value]=\"value\" \n (blur)=\"onBlur($event)\" (change)=\"onChange($event)\" (keyup)=\"onKeyup($event)\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" />\n </mat-form-field>\n <!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: true }\"></ng-container> -->\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'link'\">\n <a [id]=\"key\" class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" *ngIf=\"formattedValue != null\"\n title=\"{{ formattedValue }}\" target=\"_blank\" href=\"{{ value ? value : formattedValue }}\">{{\n formattedValue }}</a>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <span [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{'readonly': disabled}\"\n title=\"{{ formattedValue }}\" [ngStyle]=\"{ color: textColor }\">{{ formattedValue }}</span>\n </ng-container>\n </ng-container>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\">&nbsp;</span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}mat-form-field .mdc-text-field .mat-mdc-form-field-flex{padding:0 .75rem;height:var(--pep-form-field-height, 2.5rem)}\n"] }]
631
665
  }], ctorParameters: function () { return [{ type: i1.PepCustomizationService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.TranslateService }, { type: i1.PepUtilitiesService }]; }, propDecorators: { dataQa: [{
632
666
  type: HostBinding,
633
667
  args: ['attr.data-qa']
@@ -693,6 +727,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
693
727
  type: Output
694
728
  }], keyup: [{
695
729
  type: Output
730
+ }], validationChange: [{
731
+ type: Output
696
732
  }], input: [{
697
733
  type: ViewChild,
698
734
  args: ['input']
@@ -706,8 +742,8 @@ class PepTextboxModule {
706
742
  this.pepIconRegistry.registerIcons([pepIconSystemEdit]);
707
743
  }
708
744
  }
709
- PepTextboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepTextboxModule, deps: [{ token: i1$1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
710
- PepTextboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepTextboxModule, declarations: [PepTextboxComponent, PepTextboxValidationDirective], imports: [CommonModule,
745
+ PepTextboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepTextboxModule, deps: [{ token: i1$1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
746
+ PepTextboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PepTextboxModule, declarations: [PepTextboxComponent, PepTextboxValidationDirective], imports: [CommonModule,
711
747
  ReactiveFormsModule,
712
748
  // Material modules,
713
749
  MatCommonModule,
@@ -720,7 +756,7 @@ PepTextboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
720
756
  PepIconModule,
721
757
  PepFieldTitleModule,
722
758
  PepTextboxIconModule], exports: [PepTextboxComponent] });
723
- PepTextboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepTextboxModule, imports: [CommonModule,
759
+ PepTextboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepTextboxModule, imports: [CommonModule,
724
760
  ReactiveFormsModule,
725
761
  // Material modules,
726
762
  MatCommonModule,
@@ -733,7 +769,7 @@ PepTextboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
733
769
  PepIconModule,
734
770
  PepFieldTitleModule,
735
771
  PepTextboxIconModule] });
736
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepTextboxModule, decorators: [{
772
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepTextboxModule, decorators: [{
737
773
  type: NgModule,
738
774
  args: [{
739
775
  imports: [