@pepperi-addons/ngx-lib 0.4.1-beta.54 → 0.4.1-beta.56

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 (739) hide show
  1. package/address/address.component.d.ts +30 -30
  2. package/address/address.module.d.ts +15 -15
  3. package/address/index.d.ts +5 -5
  4. package/address/public-api.d.ts +2 -2
  5. package/attachment/attachment.component.d.ts +85 -85
  6. package/attachment/attachment.module.d.ts +14 -14
  7. package/attachment/index.d.ts +5 -5
  8. package/attachment/public-api.d.ts +2 -2
  9. package/bread-crumbs/bread-crumbs.component.d.ts +27 -27
  10. package/bread-crumbs/bread-crumbs.model.d.ts +11 -11
  11. package/bread-crumbs/bread-crumbs.module.d.ts +15 -15
  12. package/bread-crumbs/index.d.ts +5 -5
  13. package/bread-crumbs/public-api.d.ts +3 -3
  14. package/button/button.component.d.ts +102 -102
  15. package/button/button.model.d.ts +14 -14
  16. package/button/button.module.d.ts +13 -13
  17. package/button/index.d.ts +5 -5
  18. package/button/public-api.d.ts +3 -3
  19. package/carousel/carousel-item.directive.d.ts +12 -12
  20. package/carousel/carousel.component.d.ts +148 -148
  21. package/carousel/carousel.module.d.ts +8 -8
  22. package/carousel/index.d.ts +5 -5
  23. package/carousel/public-api.d.ts +3 -3
  24. package/checkbox/checkbox.component.d.ts +50 -50
  25. package/checkbox/checkbox.module.d.ts +19 -19
  26. package/checkbox/index.d.ts +5 -5
  27. package/checkbox/public-api.d.ts +2 -2
  28. package/chips/chips.component.d.ts +93 -93
  29. package/chips/chips.model.d.ts +14 -14
  30. package/chips/chips.module.d.ts +20 -20
  31. package/chips/chips.service.d.ts +15 -15
  32. package/chips/index.d.ts +5 -5
  33. package/chips/public-api.d.ts +3 -3
  34. package/color/color-picker.component.d.ts +57 -57
  35. package/color/color.component.d.ts +30 -30
  36. package/color/color.model.d.ts +1 -1
  37. package/color/color.module.d.ts +26 -26
  38. package/color/index.d.ts +5 -5
  39. package/color/public-api.d.ts +3 -3
  40. package/core/clipboard/clipboard.directive.d.ts +5 -5
  41. package/core/clipboard/clipboard.service.d.ts +5 -5
  42. package/core/clipboard/index.d.ts +1 -1
  43. package/core/clipboard/public-api.d.ts +2 -2
  44. package/core/common/directives/auto-width.directive.d.ts +19 -19
  45. package/core/common/directives/button-blur.directive.d.ts +9 -9
  46. package/core/common/directives/button-loader.directive.d.ts +26 -26
  47. package/core/common/directives/data-qa.directive.d.ts +11 -11
  48. package/core/common/directives/div-loader.directive.d.ts +21 -21
  49. package/core/common/directives/index.d.ts +1 -1
  50. package/core/common/directives/menu-blur.directive.d.ts +10 -10
  51. package/core/common/directives/prevent-multi-click.directive.d.ts +7 -7
  52. package/core/common/directives/print.directive.d.ts +75 -75
  53. package/core/common/directives/public-api.d.ts +8 -8
  54. package/core/common/index.d.ts +1 -1
  55. package/core/common/model/index.d.ts +1 -1
  56. package/core/common/model/papi.model.d.ts +2 -2
  57. package/core/common/model/public-api.d.ts +3 -3
  58. package/core/common/model/utilities.model.d.ts +5 -5
  59. package/core/common/model/wapi.model.d.ts +202 -202
  60. package/core/common/pipes/common-pipes.d.ts +57 -57
  61. package/core/common/pipes/date-ago.pipe.d.ts +11 -11
  62. package/core/common/pipes/index.d.ts +1 -1
  63. package/core/common/pipes/public-api.d.ts +2 -2
  64. package/core/common/public-api.d.ts +4 -4
  65. package/core/common/services/addon.service.d.ts +48 -48
  66. package/core/common/services/color.service.d.ts +51 -51
  67. package/core/common/services/cookie.service.d.ts +53 -53
  68. package/core/common/services/data-convertor.service.d.ts +45 -45
  69. package/core/common/services/file.service.d.ts +27 -27
  70. package/core/common/services/index.d.ts +1 -1
  71. package/core/common/services/jwt-helper.service.d.ts +13 -13
  72. package/core/common/services/public-api.d.ts +11 -11
  73. package/core/common/services/session.service.d.ts +18 -18
  74. package/core/common/services/translate.service.d.ts +12 -12
  75. package/core/common/services/utilities.service.d.ts +39 -39
  76. package/core/common/services/validator.service.d.ts +31 -31
  77. package/core/common/services/window-scrolling.service.d.ts +10 -10
  78. package/core/customization/customization.model.d.ts +277 -277
  79. package/core/customization/customization.service.d.ts +159 -159
  80. package/core/customization/index.d.ts +1 -1
  81. package/core/customization/public-api.d.ts +2 -2
  82. package/core/http/index.d.ts +1 -1
  83. package/core/http/interceptors/error.interceptor.d.ts +8 -8
  84. package/core/http/interceptors/index.d.ts +11 -11
  85. package/core/http/interceptors/loader.interceptor.d.ts +11 -11
  86. package/core/http/interceptors/profiler.interceptor.d.ts +8 -8
  87. package/core/http/public-api.d.ts +2 -2
  88. package/core/http/services/http.service.d.ts +28 -28
  89. package/core/http/services/loader.service.d.ts +13 -13
  90. package/core/index.d.ts +1 -1
  91. package/core/layout/index.d.ts +1 -1
  92. package/core/layout/layout.service.d.ts +36 -36
  93. package/core/layout/public-api.d.ts +2 -2
  94. package/core/layout/rtl.directive.d.ts +21 -21
  95. package/core/portal/attach.directive.d.ts +13 -13
  96. package/core/portal/index.d.ts +1 -1
  97. package/core/portal/portal.service.d.ts +12 -12
  98. package/core/portal/public-api.d.ts +3 -3
  99. package/core/portal/target.directive.d.ts +12 -12
  100. package/core/public-api.d.ts +7 -7
  101. package/core/scroll-to/index.d.ts +1 -1
  102. package/core/scroll-to/public-api.d.ts +1 -1
  103. package/core/scroll-to/scroll-to.service.d.ts +11 -11
  104. package/date/date.component.d.ts +69 -69
  105. package/date/date.model.d.ts +31 -31
  106. package/date/date.module.d.ts +23 -23
  107. package/date/index.d.ts +5 -5
  108. package/date/public-api.d.ts +2 -2
  109. package/dialog/default-dialog.component.d.ts +12 -12
  110. package/dialog/dialog.component.d.ts +13 -13
  111. package/dialog/dialog.model.d.ts +31 -31
  112. package/dialog/dialog.module.d.ts +18 -18
  113. package/dialog/dialog.service.d.ts +27 -27
  114. package/dialog/index.d.ts +5 -5
  115. package/dialog/public-api.d.ts +4 -4
  116. package/draggable-items/draggable-item/draggable-item.component.d.ts +11 -11
  117. package/draggable-items/draggable-items.component.d.ts +36 -36
  118. package/draggable-items/draggable-items.model.d.ts +11 -11
  119. package/draggable-items/draggable-items.module.d.ts +18 -18
  120. package/draggable-items/index.d.ts +5 -5
  121. package/draggable-items/public-api.d.ts +4 -4
  122. package/esm2020/address/address.component.mjs +108 -108
  123. package/esm2020/address/address.module.mjs +53 -53
  124. package/esm2020/address/pepperi-addons-ngx-lib-address.mjs +4 -4
  125. package/esm2020/address/public-api.mjs +5 -5
  126. package/esm2020/attachment/attachment.component.mjs +219 -219
  127. package/esm2020/attachment/attachment.module.mjs +49 -49
  128. package/esm2020/attachment/pepperi-addons-ngx-lib-attachment.mjs +4 -4
  129. package/esm2020/attachment/public-api.mjs +5 -5
  130. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +84 -84
  131. package/esm2020/bread-crumbs/bread-crumbs.model.mjs +6 -6
  132. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +49 -49
  133. package/esm2020/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.mjs +4 -4
  134. package/esm2020/bread-crumbs/public-api.mjs +6 -6
  135. package/esm2020/button/button.component.mjs +137 -137
  136. package/esm2020/button/button.model.mjs +5 -5
  137. package/esm2020/button/button.module.mjs +45 -45
  138. package/esm2020/button/pepperi-addons-ngx-lib-button.mjs +4 -4
  139. package/esm2020/button/public-api.mjs +6 -6
  140. package/esm2020/carousel/carousel-item.directive.mjs +32 -32
  141. package/esm2020/carousel/carousel.component.mjs +736 -736
  142. package/esm2020/carousel/carousel.module.mjs +16 -16
  143. package/esm2020/carousel/pepperi-addons-ngx-lib-carousel.mjs +4 -4
  144. package/esm2020/carousel/public-api.mjs +7 -7
  145. package/esm2020/checkbox/checkbox.component.mjs +167 -167
  146. package/esm2020/checkbox/checkbox.module.mjs +62 -62
  147. package/esm2020/checkbox/pepperi-addons-ngx-lib-checkbox.mjs +4 -4
  148. package/esm2020/checkbox/public-api.mjs +5 -5
  149. package/esm2020/chips/chips.component.mjs +157 -157
  150. package/esm2020/chips/chips.model.mjs +1 -1
  151. package/esm2020/chips/chips.module.mjs +80 -80
  152. package/esm2020/chips/chips.service.mjs +44 -44
  153. package/esm2020/chips/pepperi-addons-ngx-lib-chips.mjs +4 -4
  154. package/esm2020/chips/public-api.mjs +6 -6
  155. package/esm2020/color/color-picker.component.mjs +197 -197
  156. package/esm2020/color/color.component.mjs +89 -89
  157. package/esm2020/color/color.model.mjs +1 -1
  158. package/esm2020/color/color.module.mjs +92 -92
  159. package/esm2020/color/pepperi-addons-ngx-lib-color.mjs +4 -4
  160. package/esm2020/color/public-api.mjs +6 -6
  161. package/esm2020/core/clipboard/clipboard.directive.mjs +23 -23
  162. package/esm2020/core/clipboard/clipboard.service.mjs +13 -13
  163. package/esm2020/core/clipboard/index.mjs +4 -4
  164. package/esm2020/core/clipboard/public-api.mjs +5 -5
  165. package/esm2020/core/common/directives/auto-width.directive.mjs +76 -76
  166. package/esm2020/core/common/directives/button-blur.directive.mjs +23 -23
  167. package/esm2020/core/common/directives/button-loader.directive.mjs +111 -111
  168. package/esm2020/core/common/directives/data-qa.directive.mjs +22 -22
  169. package/esm2020/core/common/directives/div-loader.directive.mjs +60 -60
  170. package/esm2020/core/common/directives/index.mjs +4 -4
  171. package/esm2020/core/common/directives/menu-blur.directive.mjs +31 -31
  172. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +26 -26
  173. package/esm2020/core/common/directives/print.directive.mjs +144 -144
  174. package/esm2020/core/common/directives/public-api.mjs +12 -12
  175. package/esm2020/core/common/index.mjs +4 -4
  176. package/esm2020/core/common/model/index.mjs +4 -4
  177. package/esm2020/core/common/model/papi.model.mjs +2 -2
  178. package/esm2020/core/common/model/public-api.mjs +6 -6
  179. package/esm2020/core/common/model/utilities.model.mjs +56 -56
  180. package/esm2020/core/common/model/wapi.model.mjs +156 -156
  181. package/esm2020/core/common/pipes/common-pipes.mjs +166 -166
  182. package/esm2020/core/common/pipes/date-ago.pipe.mjs +45 -45
  183. package/esm2020/core/common/pipes/index.mjs +4 -4
  184. package/esm2020/core/common/pipes/public-api.mjs +5 -5
  185. package/esm2020/core/common/public-api.mjs +7 -7
  186. package/esm2020/core/common/services/addon.service.mjs +188 -188
  187. package/esm2020/core/common/services/color.service.mjs +358 -358
  188. package/esm2020/core/common/services/cookie.service.mjs +152 -152
  189. package/esm2020/core/common/services/data-convertor.service.mjs +121 -121
  190. package/esm2020/core/common/services/file.service.mjs +212 -212
  191. package/esm2020/core/common/services/index.mjs +4 -4
  192. package/esm2020/core/common/services/jwt-helper.service.mjs +105 -105
  193. package/esm2020/core/common/services/public-api.mjs +14 -14
  194. package/esm2020/core/common/services/session.service.mjs +70 -70
  195. package/esm2020/core/common/services/translate.service.mjs +45 -45
  196. package/esm2020/core/common/services/utilities.service.mjs +299 -299
  197. package/esm2020/core/common/services/validator.service.mjs +271 -271
  198. package/esm2020/core/common/services/window-scrolling.service.mjs +31 -31
  199. package/esm2020/core/customization/customization.model.mjs +301 -301
  200. package/esm2020/core/customization/customization.service.mjs +770 -770
  201. package/esm2020/core/customization/index.mjs +4 -4
  202. package/esm2020/core/customization/public-api.mjs +5 -5
  203. package/esm2020/core/http/index.mjs +4 -4
  204. package/esm2020/core/http/interceptors/error.interceptor.mjs +26 -26
  205. package/esm2020/core/http/interceptors/index.mjs +23 -23
  206. package/esm2020/core/http/interceptors/loader.interceptor.mjs +31 -31
  207. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +31 -31
  208. package/esm2020/core/http/public-api.mjs +5 -5
  209. package/esm2020/core/http/services/http.service.mjs +154 -154
  210. package/esm2020/core/http/services/loader.service.mjs +49 -49
  211. package/esm2020/core/index.mjs +4 -4
  212. package/esm2020/core/layout/index.mjs +4 -4
  213. package/esm2020/core/layout/layout.service.mjs +167 -167
  214. package/esm2020/core/layout/public-api.mjs +5 -5
  215. package/esm2020/core/layout/rtl.directive.mjs +43 -43
  216. package/esm2020/core/portal/attach.directive.mjs +26 -26
  217. package/esm2020/core/portal/index.mjs +4 -4
  218. package/esm2020/core/portal/portal.service.mjs +35 -35
  219. package/esm2020/core/portal/public-api.mjs +6 -6
  220. package/esm2020/core/portal/target.directive.mjs +23 -23
  221. package/esm2020/core/public-api.mjs +10 -10
  222. package/esm2020/core/scroll-to/index.mjs +4 -4
  223. package/esm2020/core/scroll-to/public-api.mjs +5 -5
  224. package/esm2020/core/scroll-to/scroll-to.service.mjs +83 -83
  225. package/esm2020/date/date.component.mjs +306 -306
  226. package/esm2020/date/date.model.mjs +53 -53
  227. package/esm2020/date/date.module.mjs +87 -87
  228. package/esm2020/date/pepperi-addons-ngx-lib-date.mjs +4 -4
  229. package/esm2020/date/public-api.mjs +5 -5
  230. package/esm2020/dialog/default-dialog.component.mjs +36 -36
  231. package/esm2020/dialog/dialog.component.mjs +35 -35
  232. package/esm2020/dialog/dialog.model.mjs +32 -32
  233. package/esm2020/dialog/dialog.module.mjs +58 -58
  234. package/esm2020/dialog/dialog.service.mjs +81 -81
  235. package/esm2020/dialog/pepperi-addons-ngx-lib-dialog.mjs +4 -4
  236. package/esm2020/dialog/public-api.mjs +7 -7
  237. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +26 -26
  238. package/esm2020/draggable-items/draggable-items.component.mjs +101 -101
  239. package/esm2020/draggable-items/draggable-items.model.mjs +1 -1
  240. package/esm2020/draggable-items/draggable-items.module.mjs +59 -59
  241. package/esm2020/draggable-items/pepperi-addons-ngx-lib-draggable-items.mjs +4 -4
  242. package/esm2020/draggable-items/public-api.mjs +7 -7
  243. package/esm2020/field-title/field-title.component.mjs +44 -44
  244. package/esm2020/field-title/field-title.module.mjs +46 -46
  245. package/esm2020/field-title/pepperi-addons-ngx-lib-field-title.mjs +4 -4
  246. package/esm2020/field-title/public-api.mjs +5 -5
  247. package/esm2020/files-uploader/files-uploader.component.mjs +240 -240
  248. package/esm2020/files-uploader/files-uploader.module.mjs +78 -78
  249. package/esm2020/files-uploader/pepperi-addons-ngx-lib-files-uploader.mjs +4 -4
  250. package/esm2020/files-uploader/public-api.mjs +5 -5
  251. package/esm2020/form/field-generator.component.mjs +152 -152
  252. package/esm2020/form/form.component.mjs +1226 -1226
  253. package/esm2020/form/form.model.mjs +1 -1
  254. package/esm2020/form/form.module.mjs +178 -178
  255. package/esm2020/form/indicators.component.mjs +22 -22
  256. package/esm2020/form/internal-button.component.mjs +183 -183
  257. package/esm2020/form/internal-carusel.component.mjs +116 -116
  258. package/esm2020/form/internal-carusel.service.mjs +31 -31
  259. package/esm2020/form/internal-field-generator.component.mjs +146 -146
  260. package/esm2020/form/internal-form.component.mjs +1215 -1215
  261. package/esm2020/form/internal-list.component.mjs +512 -512
  262. package/esm2020/form/internal-menu.component.mjs +65 -65
  263. package/esm2020/form/internal-page.component.mjs +361 -361
  264. package/esm2020/form/internal-page.service.mjs +119 -119
  265. package/esm2020/form/pepperi-addons-ngx-lib-form.mjs +4 -4
  266. package/esm2020/form/public-api.mjs +6 -6
  267. package/esm2020/group-buttons/group-buttons.component.mjs +70 -70
  268. package/esm2020/group-buttons/group-buttons.module.mjs +58 -58
  269. package/esm2020/group-buttons/pepperi-addons-ngx-lib-group-buttons.mjs +4 -4
  270. package/esm2020/group-buttons/public-api.mjs +5 -5
  271. package/esm2020/icon/icon-generated-all.model.mjs +113 -113
  272. package/esm2020/icon/icon-generated.model.mjs +441 -441
  273. package/esm2020/icon/icon-registry.service.mjs +24 -24
  274. package/esm2020/icon/icon.component.mjs +90 -90
  275. package/esm2020/icon/icon.module.mjs +19 -19
  276. package/esm2020/icon/icon.service.mjs +30 -30
  277. package/esm2020/icon/pepperi-addons-ngx-lib-icon.mjs +4 -4
  278. package/esm2020/icon/public-api.mjs +10 -10
  279. package/esm2020/image/image.component.mjs +246 -246
  280. package/esm2020/image/image.module.mjs +73 -73
  281. package/esm2020/image/image.service.mjs +51 -51
  282. package/esm2020/image/pepperi-addons-ngx-lib-image.mjs +4 -4
  283. package/esm2020/image/public-api.mjs +6 -6
  284. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +336 -336
  285. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +82 -82
  286. package/esm2020/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.mjs +4 -4
  287. package/esm2020/images-filmstrip/public-api.mjs +5 -5
  288. package/esm2020/link/link.component.mjs +325 -325
  289. package/esm2020/link/link.module.mjs +79 -79
  290. package/esm2020/link/link.pipes.mjs +17 -17
  291. package/esm2020/link/pepperi-addons-ngx-lib-link.mjs +4 -4
  292. package/esm2020/link/public-api.mjs +5 -5
  293. package/esm2020/list/list-actions.component.mjs +43 -43
  294. package/esm2020/list/list-carousel.component.mjs +106 -106
  295. package/esm2020/list/list-chooser.component.mjs +63 -63
  296. package/esm2020/list/list-pager.component.mjs +119 -119
  297. package/esm2020/list/list-sorting.component.mjs +60 -60
  298. package/esm2020/list/list-total.component.mjs +29 -29
  299. package/esm2020/list/list-views.component.mjs +84 -84
  300. package/esm2020/list/list.component.mjs +1162 -1162
  301. package/esm2020/list/list.model.mjs +3 -3
  302. package/esm2020/list/list.module.mjs +143 -143
  303. package/esm2020/list/list.pipes.mjs +46 -46
  304. package/esm2020/list/pepperi-addons-ngx-lib-list.mjs +4 -4
  305. package/esm2020/list/public-api.mjs +14 -14
  306. package/esm2020/list/virtual-scroller.mjs +1061 -1061
  307. package/esm2020/menu/menu-item.component.mjs +114 -114
  308. package/esm2020/menu/menu.component.mjs +212 -212
  309. package/esm2020/menu/menu.model.mjs +18 -18
  310. package/esm2020/menu/menu.module.mjs +58 -58
  311. package/esm2020/menu/pepperi-addons-ngx-lib-menu.mjs +4 -4
  312. package/esm2020/menu/public-api.mjs +6 -6
  313. package/esm2020/ngx-lib.module.mjs +161 -161
  314. package/esm2020/page-layout/page-layout.component.mjs +34 -34
  315. package/esm2020/page-layout/page-layout.module.mjs +33 -33
  316. package/esm2020/page-layout/pepperi-addons-ngx-lib-page-layout.mjs +4 -4
  317. package/esm2020/page-layout/public-api.mjs +5 -5
  318. package/esm2020/pepperi-addons-ngx-lib.mjs +4 -4
  319. package/esm2020/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.mjs +4 -4
  320. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +44 -44
  321. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +64 -64
  322. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +94 -94
  323. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
  324. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +87 -87
  325. package/esm2020/profile-data-views-list/public-api.mjs +8 -8
  326. package/esm2020/public-api.mjs +5 -5
  327. package/esm2020/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.mjs +4 -4
  328. package/esm2020/quantity-selector/public-api.mjs +5 -5
  329. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +48 -48
  330. package/esm2020/quantity-selector/quantity-selector.component.mjs +577 -577
  331. package/esm2020/quantity-selector/quantity-selector.module.mjs +81 -81
  332. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +22 -22
  333. package/esm2020/query-builder/common/model/field.mjs +1 -1
  334. package/esm2020/query-builder/common/model/filter.mjs +1 -1
  335. package/esm2020/query-builder/common/model/legacy.mjs +1 -1
  336. package/esm2020/query-builder/common/model/operator-unit.mjs +41 -41
  337. package/esm2020/query-builder/common/model/operator.mjs +265 -265
  338. package/esm2020/query-builder/common/model/structure.mjs +1 -1
  339. package/esm2020/query-builder/common/model/type-map.mjs +26 -26
  340. package/esm2020/query-builder/common/model/type.mjs +5 -5
  341. package/esm2020/query-builder/common/services/output-query.service.mjs +113 -113
  342. package/esm2020/query-builder/common/services/query-structure.service.mjs +225 -225
  343. package/esm2020/query-builder/common/services/type-convertor.service.mjs +41 -41
  344. package/esm2020/query-builder/pepperi-addons-ngx-lib-query-builder.mjs +4 -4
  345. package/esm2020/query-builder/public-api.mjs +8 -8
  346. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +124 -124
  347. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +70 -70
  348. package/esm2020/query-builder/query-builder.component.mjs +109 -109
  349. package/esm2020/query-builder/query-builder.module.mjs +58 -58
  350. package/esm2020/query-builder/query-builder.service.mjs +101 -101
  351. package/esm2020/remote-loader/addon-block-loader.component.mjs +101 -101
  352. package/esm2020/remote-loader/addon-block-loader.service.mjs +61 -61
  353. package/esm2020/remote-loader/pepperi-addons-ngx-lib-remote-loader.mjs +4 -4
  354. package/esm2020/remote-loader/public-api.mjs +10 -10
  355. package/esm2020/remote-loader/remote-loader-element.component.mjs +104 -104
  356. package/esm2020/remote-loader/remote-loader.component.mjs +108 -108
  357. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  358. package/esm2020/remote-loader/remote-loader.module.mjs +68 -68
  359. package/esm2020/remote-loader/remote-loader.service.mjs +80 -80
  360. package/esm2020/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.mjs +4 -4
  361. package/esm2020/rich-html-textarea/public-api.mjs +5 -5
  362. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +247 -247
  363. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +94 -94
  364. package/esm2020/search/pepperi-addons-ngx-lib-search.mjs +4 -4
  365. package/esm2020/search/public-api.mjs +6 -6
  366. package/esm2020/search/search.component.mjs +316 -316
  367. package/esm2020/search/search.model.mjs +1 -1
  368. package/esm2020/search/search.module.mjs +69 -69
  369. package/esm2020/select/pepperi-addons-ngx-lib-select.mjs +4 -4
  370. package/esm2020/select/public-api.mjs +5 -5
  371. package/esm2020/select/select.component.mjs +266 -266
  372. package/esm2020/select/select.module.mjs +69 -69
  373. package/esm2020/select-panel/pepperi-addons-ngx-lib-select-panel.mjs +4 -4
  374. package/esm2020/select-panel/public-api.mjs +6 -6
  375. package/esm2020/select-panel/select-panel.component.mjs +159 -158
  376. package/esm2020/select-panel/select-panel.model.mjs +1 -1
  377. package/esm2020/select-panel/select-panel.module.mjs +69 -69
  378. package/esm2020/separator/pepperi-addons-ngx-lib-separator.mjs +4 -4
  379. package/esm2020/separator/public-api.mjs +5 -5
  380. package/esm2020/separator/separator.component.mjs +62 -62
  381. package/esm2020/separator/separator.module.mjs +17 -17
  382. package/esm2020/side-bar/pepperi-addons-ngx-lib-side-bar.mjs +4 -4
  383. package/esm2020/side-bar/public-api.mjs +6 -6
  384. package/esm2020/side-bar/side-bar.component.mjs +121 -121
  385. package/esm2020/side-bar/side-bar.model.mjs +1 -1
  386. package/esm2020/side-bar/side-bar.module.mjs +54 -54
  387. package/esm2020/signature/pepperi-addons-ngx-lib-signature.mjs +4 -4
  388. package/esm2020/signature/public-api.mjs +5 -5
  389. package/esm2020/signature/signature.component.mjs +253 -253
  390. package/esm2020/signature/signature.module.mjs +89 -89
  391. package/esm2020/size-detector/pepperi-addons-ngx-lib-size-detector.mjs +4 -4
  392. package/esm2020/size-detector/public-api.mjs +5 -5
  393. package/esm2020/size-detector/size-detector.component.mjs +91 -91
  394. package/esm2020/size-detector/size-detector.module.mjs +34 -34
  395. package/esm2020/slider/pepperi-addons-ngx-lib-slider.mjs +4 -4
  396. package/esm2020/slider/public-api.mjs +5 -5
  397. package/esm2020/slider/slider.component.mjs +100 -100
  398. package/esm2020/slider/slider.module.mjs +41 -41
  399. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +74 -74
  400. package/esm2020/smart-filters/common/filter-actions.component.mjs +28 -28
  401. package/esm2020/smart-filters/common/model/base-filter-component.mjs +295 -295
  402. package/esm2020/smart-filters/common/model/creator.mjs +75 -75
  403. package/esm2020/smart-filters/common/model/field.mjs +116 -116
  404. package/esm2020/smart-filters/common/model/filter.mjs +1 -1
  405. package/esm2020/smart-filters/common/model/operator.mjs +270 -270
  406. package/esm2020/smart-filters/common/model/type.mjs +1 -1
  407. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +181 -181
  408. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +199 -199
  409. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +135 -135
  410. package/esm2020/smart-filters/pepperi-addons-ngx-lib-smart-filters.mjs +4 -4
  411. package/esm2020/smart-filters/public-api.mjs +18 -18
  412. package/esm2020/smart-filters/smart-filters.component.mjs +140 -140
  413. package/esm2020/smart-filters/smart-filters.module.mjs +157 -157
  414. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +92 -92
  415. package/esm2020/snack-bar/default-snack-bar.component.mjs +28 -28
  416. package/esm2020/snack-bar/pepperi-addons-ngx-lib-snack-bar.mjs +4 -4
  417. package/esm2020/snack-bar/public-api.mjs +7 -7
  418. package/esm2020/snack-bar/snack-bar.component.mjs +25 -25
  419. package/esm2020/snack-bar/snack-bar.model.mjs +6 -6
  420. package/esm2020/snack-bar/snack-bar.module.mjs +62 -62
  421. package/esm2020/snack-bar/snack-bar.service.mjs +59 -59
  422. package/esm2020/textarea/pepperi-addons-ngx-lib-textarea.mjs +4 -4
  423. package/esm2020/textarea/public-api.mjs +5 -5
  424. package/esm2020/textarea/textarea.component.mjs +188 -182
  425. package/esm2020/textarea/textarea.module.mjs +81 -81
  426. package/esm2020/textbox/pepperi-addons-ngx-lib-textbox.mjs +4 -4
  427. package/esm2020/textbox/public-api.mjs +5 -5
  428. package/esm2020/textbox/textbox-validation.directive.mjs +92 -92
  429. package/esm2020/textbox/textbox.component.mjs +552 -546
  430. package/esm2020/textbox/textbox.module.mjs +71 -71
  431. package/esm2020/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.mjs +4 -4
  432. package/esm2020/textbox-icon/public-api.mjs +5 -5
  433. package/esm2020/textbox-icon/textbox-icon.component.mjs +47 -47
  434. package/esm2020/textbox-icon/textbox-icon.module.mjs +63 -63
  435. package/esm2020/top-bar/pepperi-addons-ngx-lib-top-bar.mjs +4 -4
  436. package/esm2020/top-bar/public-api.mjs +6 -6
  437. package/esm2020/top-bar/top-bar.component.mjs +111 -111
  438. package/esm2020/top-bar/top-bar.model.mjs +1 -1
  439. package/esm2020/top-bar/top-bar.module.mjs +61 -61
  440. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +143 -143
  441. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  442. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +253 -253
  443. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +122 -122
  444. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +171 -171
  445. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +780 -780
  446. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +206 -206
  447. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +255 -255
  448. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +336 -336
  449. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  450. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +409 -409
  451. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +207 -207
  452. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +163 -163
  453. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +76 -76
  454. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +291 -291
  455. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +4121 -4121
  456. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  457. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +109 -109
  458. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +702 -702
  459. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +340 -340
  460. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +390 -390
  461. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +388 -388
  462. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +2826 -2826
  463. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  464. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +368 -368
  465. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +59 -59
  466. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +254 -254
  467. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +689 -689
  468. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +1119 -1119
  469. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +504 -504
  470. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +303 -303
  471. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +356 -356
  472. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +207 -206
  473. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  474. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +308 -308
  475. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +73 -73
  476. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +158 -158
  477. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +311 -311
  478. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +114 -114
  479. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +130 -130
  480. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +1634 -1634
  481. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  482. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +152 -152
  483. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +238 -232
  484. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  485. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +95 -95
  486. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +679 -673
  487. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  488. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +155 -155
  489. package/fesm2015/pepperi-addons-ngx-lib.mjs +4615 -4615
  490. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  491. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +143 -143
  492. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  493. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +253 -253
  494. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +122 -122
  495. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +171 -171
  496. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +776 -776
  497. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +206 -206
  498. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +254 -254
  499. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +333 -333
  500. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  501. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +405 -405
  502. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +203 -203
  503. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +162 -162
  504. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +76 -76
  505. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +288 -288
  506. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +4120 -4120
  507. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  508. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +109 -109
  509. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +700 -700
  510. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +338 -338
  511. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +387 -387
  512. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +388 -388
  513. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +2812 -2812
  514. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  515. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +368 -368
  516. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +59 -59
  517. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +253 -253
  518. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +688 -688
  519. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +1108 -1108
  520. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +482 -482
  521. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +303 -303
  522. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +355 -355
  523. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +206 -205
  524. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  525. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +308 -308
  526. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +73 -73
  527. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +158 -158
  528. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +311 -311
  529. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +114 -114
  530. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +129 -129
  531. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +1627 -1627
  532. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  533. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +149 -149
  534. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +237 -231
  535. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  536. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +95 -95
  537. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +679 -673
  538. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  539. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +154 -154
  540. package/fesm2020/pepperi-addons-ngx-lib.mjs +4585 -4585
  541. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  542. package/field-title/field-title.component.d.ts +15 -15
  543. package/field-title/field-title.module.d.ts +15 -15
  544. package/field-title/index.d.ts +5 -5
  545. package/field-title/public-api.d.ts +2 -2
  546. package/files-uploader/files-uploader.component.d.ts +57 -57
  547. package/files-uploader/files-uploader.module.d.ts +21 -21
  548. package/files-uploader/index.d.ts +5 -5
  549. package/files-uploader/public-api.d.ts +2 -2
  550. package/form/field-generator.component.d.ts +39 -39
  551. package/form/form.component.d.ts +93 -93
  552. package/form/form.model.d.ts +20 -20
  553. package/form/form.module.d.ts +50 -50
  554. package/form/index.d.ts +5 -5
  555. package/form/indicators.component.d.ts +10 -10
  556. package/form/internal-button.component.d.ts +42 -42
  557. package/form/internal-carusel.component.d.ts +39 -39
  558. package/form/internal-carusel.service.d.ts +10 -10
  559. package/form/internal-field-generator.component.d.ts +35 -35
  560. package/form/internal-form.component.d.ts +89 -89
  561. package/form/internal-list.component.d.ts +95 -95
  562. package/form/internal-menu.component.d.ts +19 -19
  563. package/form/internal-page.component.d.ts +73 -73
  564. package/form/internal-page.service.d.ts +22 -22
  565. package/form/public-api.d.ts +3 -3
  566. package/group-buttons/group-buttons.component.d.ts +24 -24
  567. package/group-buttons/group-buttons.module.d.ts +18 -18
  568. package/group-buttons/index.d.ts +5 -5
  569. package/group-buttons/public-api.d.ts +2 -2
  570. package/icon/icon-generated-all.model.d.ts +112 -112
  571. package/icon/icon-generated.model.d.ts +446 -446
  572. package/icon/icon-registry.service.d.ts +9 -9
  573. package/icon/icon.component.d.ts +49 -49
  574. package/icon/icon.module.d.ts +7 -7
  575. package/icon/icon.service.d.ts +13 -13
  576. package/icon/index.d.ts +5 -5
  577. package/icon/public-api.d.ts +6 -6
  578. package/image/image.component.d.ts +66 -66
  579. package/image/image.module.d.ts +20 -20
  580. package/image/image.service.d.ts +14 -14
  581. package/image/index.d.ts +5 -5
  582. package/image/public-api.d.ts +3 -3
  583. package/images-filmstrip/images-filmstrip.component.d.ts +87 -87
  584. package/images-filmstrip/images-filmstrip.module.d.ts +22 -22
  585. package/images-filmstrip/index.d.ts +5 -5
  586. package/images-filmstrip/public-api.d.ts +2 -2
  587. package/index.d.ts +5 -5
  588. package/link/index.d.ts +5 -5
  589. package/link/link.component.d.ts +126 -126
  590. package/link/link.module.d.ts +22 -22
  591. package/link/link.pipes.d.ts +7 -7
  592. package/link/public-api.d.ts +2 -2
  593. package/list/index.d.ts +5 -5
  594. package/list/list-actions.component.d.ts +18 -18
  595. package/list/list-carousel.component.d.ts +40 -40
  596. package/list/list-chooser.component.d.ts +29 -29
  597. package/list/list-pager.component.d.ts +39 -39
  598. package/list/list-sorting.component.d.ts +30 -30
  599. package/list/list-total.component.d.ts +11 -11
  600. package/list/list-views.component.d.ts +35 -35
  601. package/list/list.component.d.ts +164 -164
  602. package/list/list.model.d.ts +31 -31
  603. package/list/list.module.d.ts +34 -34
  604. package/list/list.pipes.d.ts +16 -16
  605. package/list/public-api.d.ts +10 -10
  606. package/list/virtual-scroller.d.ts +183 -183
  607. package/menu/index.d.ts +5 -5
  608. package/menu/menu-item.component.d.ts +28 -28
  609. package/menu/menu.component.d.ts +48 -48
  610. package/menu/menu.model.d.ts +25 -25
  611. package/menu/menu.module.d.ts +18 -18
  612. package/menu/public-api.d.ts +3 -3
  613. package/ngx-lib.module.d.ts +24 -24
  614. package/package.json +1 -1
  615. package/page-layout/index.d.ts +5 -5
  616. package/page-layout/page-layout.component.d.ts +19 -19
  617. package/page-layout/page-layout.module.d.ts +10 -10
  618. package/page-layout/public-api.d.ts +2 -2
  619. package/profile-data-views-list/index.d.ts +5 -5
  620. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +18 -18
  621. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +24 -24
  622. package/profile-data-views-list/profile-data-views-list.component.d.ts +35 -35
  623. package/profile-data-views-list/profile-data-views-list.model.d.ts +18 -18
  624. package/profile-data-views-list/profile-data-views-list.module.d.ts +23 -23
  625. package/profile-data-views-list/public-api.d.ts +5 -5
  626. package/public-api.d.ts +2 -2
  627. package/quantity-selector/index.d.ts +5 -5
  628. package/quantity-selector/public-api.d.ts +2 -2
  629. package/quantity-selector/quantity-selector-validation.directive.d.ts +17 -17
  630. package/quantity-selector/quantity-selector.component.d.ts +112 -112
  631. package/quantity-selector/quantity-selector.module.d.ts +23 -23
  632. package/quantity-selector/quantity-selector.pipes.d.ts +7 -7
  633. package/query-builder/common/model/field.d.ts +8 -8
  634. package/query-builder/common/model/filter.d.ts +6 -6
  635. package/query-builder/common/model/legacy.d.ts +29 -29
  636. package/query-builder/common/model/operator-unit.d.ts +13 -13
  637. package/query-builder/common/model/operator.d.ts +21 -21
  638. package/query-builder/common/model/structure.d.ts +4 -4
  639. package/query-builder/common/model/type-map.d.ts +12 -12
  640. package/query-builder/common/model/type.d.ts +4 -4
  641. package/query-builder/common/services/output-query.service.d.ts +47 -47
  642. package/query-builder/common/services/query-structure.service.d.ts +82 -82
  643. package/query-builder/common/services/type-convertor.service.d.ts +13 -13
  644. package/query-builder/index.d.ts +5 -5
  645. package/query-builder/public-api.d.ts +5 -5
  646. package/query-builder/query-builder-item/query-builder-item.component.d.ts +41 -41
  647. package/query-builder/query-builder-section/query-builder-section.component.d.ts +30 -30
  648. package/query-builder/query-builder.component.d.ts +39 -39
  649. package/query-builder/query-builder.module.d.ts +16 -16
  650. package/query-builder/query-builder.service.d.ts +30 -30
  651. package/remote-loader/addon-block-loader.component.d.ts +36 -36
  652. package/remote-loader/addon-block-loader.service.d.ts +15 -15
  653. package/remote-loader/index.d.ts +5 -5
  654. package/remote-loader/public-api.d.ts +7 -7
  655. package/remote-loader/remote-loader-element.component.d.ts +30 -30
  656. package/remote-loader/remote-loader.component.d.ts +25 -25
  657. package/remote-loader/remote-loader.model.d.ts +41 -41
  658. package/remote-loader/remote-loader.module.d.ts +15 -15
  659. package/remote-loader/remote-loader.service.d.ts +15 -15
  660. package/rich-html-textarea/index.d.ts +5 -5
  661. package/rich-html-textarea/public-api.d.ts +2 -2
  662. package/rich-html-textarea/rich-html-textarea.component.d.ts +79 -79
  663. package/rich-html-textarea/rich-html-textarea.module.d.ts +25 -25
  664. package/search/index.d.ts +5 -5
  665. package/search/public-api.d.ts +3 -3
  666. package/search/search.component.d.ts +65 -65
  667. package/search/search.model.d.ts +14 -14
  668. package/search/search.module.d.ts +20 -20
  669. package/select/index.d.ts +5 -5
  670. package/select/public-api.d.ts +2 -2
  671. package/select/select.component.d.ts +60 -60
  672. package/select/select.module.d.ts +20 -20
  673. package/select-panel/index.d.ts +5 -5
  674. package/select-panel/public-api.d.ts +3 -3
  675. package/select-panel/select-panel.component.d.ts +51 -50
  676. package/select-panel/select-panel.model.d.ts +5 -5
  677. package/select-panel/select-panel.module.d.ts +19 -19
  678. package/separator/index.d.ts +5 -5
  679. package/separator/public-api.d.ts +2 -2
  680. package/separator/separator.component.d.ts +22 -22
  681. package/separator/separator.module.d.ts +8 -8
  682. package/side-bar/index.d.ts +5 -5
  683. package/side-bar/public-api.d.ts +3 -3
  684. package/side-bar/side-bar.component.d.ts +42 -42
  685. package/side-bar/side-bar.model.d.ts +4 -4
  686. package/side-bar/side-bar.module.d.ts +16 -16
  687. package/signature/index.d.ts +5 -5
  688. package/signature/public-api.d.ts +2 -2
  689. package/signature/signature.component.d.ts +68 -68
  690. package/signature/signature.module.d.ts +24 -24
  691. package/size-detector/index.d.ts +5 -5
  692. package/size-detector/public-api.d.ts +2 -2
  693. package/size-detector/size-detector.component.d.ts +29 -29
  694. package/size-detector/size-detector.module.d.ts +11 -11
  695. package/slider/index.d.ts +5 -5
  696. package/slider/public-api.d.ts +2 -2
  697. package/slider/slider.component.d.ts +39 -39
  698. package/slider/slider.module.d.ts +12 -12
  699. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +28 -28
  700. package/smart-filters/common/filter-actions.component.d.ts +12 -12
  701. package/smart-filters/common/model/base-filter-component.d.ts +74 -74
  702. package/smart-filters/common/model/creator.d.ts +6 -6
  703. package/smart-filters/common/model/field.d.ts +69 -69
  704. package/smart-filters/common/model/filter.d.ts +11 -11
  705. package/smart-filters/common/model/operator.d.ts +51 -51
  706. package/smart-filters/common/model/type.d.ts +4 -4
  707. package/smart-filters/date-filter/date-filter.component.d.ts +60 -60
  708. package/smart-filters/index.d.ts +5 -5
  709. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +56 -56
  710. package/smart-filters/number-filter/number-filter.component.d.ts +52 -52
  711. package/smart-filters/public-api.d.ts +14 -14
  712. package/smart-filters/smart-filters.component.d.ts +35 -35
  713. package/smart-filters/smart-filters.module.d.ts +37 -37
  714. package/smart-filters/text-filter/text-filter.component.d.ts +28 -28
  715. package/snack-bar/default-snack-bar.component.d.ts +13 -13
  716. package/snack-bar/index.d.ts +5 -5
  717. package/snack-bar/public-api.d.ts +4 -4
  718. package/snack-bar/snack-bar.component.d.ts +12 -12
  719. package/snack-bar/snack-bar.model.d.ts +8 -8
  720. package/snack-bar/snack-bar.module.d.ts +19 -19
  721. package/snack-bar/snack-bar.service.d.ts +24 -24
  722. package/textarea/index.d.ts +5 -5
  723. package/textarea/public-api.d.ts +2 -2
  724. package/textarea/textarea.component.d.ts +56 -54
  725. package/textarea/textarea.module.d.ts +23 -23
  726. package/textbox/index.d.ts +5 -5
  727. package/textbox/public-api.d.ts +2 -2
  728. package/textbox/textbox-validation.directive.d.ts +22 -22
  729. package/textbox/textbox.component.d.ts +155 -153
  730. package/textbox/textbox.module.d.ts +22 -22
  731. package/textbox-icon/index.d.ts +5 -5
  732. package/textbox-icon/public-api.d.ts +2 -2
  733. package/textbox-icon/textbox-icon.component.d.ts +13 -13
  734. package/textbox-icon/textbox-icon.module.d.ts +16 -16
  735. package/top-bar/index.d.ts +5 -5
  736. package/top-bar/public-api.d.ts +3 -3
  737. package/top-bar/top-bar.component.d.ts +39 -39
  738. package/top-bar/top-bar.model.d.ts +4 -4
  739. package/top-bar/top-bar.module.d.ts +18 -18
@@ -1,272 +1,272 @@
1
- import { coerceNumberProperty } from '@angular/cdk/coercion';
2
- import { Injectable, Optional } from '@angular/core';
3
- import { FormControl, Validators, } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ngx-translate/core";
6
- export class PepValidatorService {
7
- constructor(translate = null) {
8
- this.translate = translate;
9
- // Regular expressions
10
- this.integerUnsigned = '^[0-9]*$';
11
- this.integerSigned = '^-?[0-9]+$';
12
- this.decimalUnsigned = '^[0-9]+(.[0-9]+)?$';
13
- this.decimalSigned = '^-?[0-9]+(.[0-9]+)?$';
14
- this.phone = '^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-s./0-9]*$';
15
- this.decimalSeparator = '.';
16
- const currentLang = this.translate?.currentLang || navigator.language;
17
- // Check for number with thousands separator and if === ',' then the decimal separator is '.' else ','
18
- const tmp = new Intl.NumberFormat(currentLang, {
19
- maximumSignificantDigits: 2,
20
- }).format(1000);
21
- this.decimalSeparator = tmp.indexOf(',') === 1 ? '.' : ',';
22
- this.decimalUnsigned = `^[0-9]+(${this.decimalSeparator}[0-9]+)?$`;
23
- this.decimalSigned = `^-?[0-9]+(${this.decimalSeparator}[0-9]+)?$`;
24
- }
25
- /*
26
- ValidatorFn functions
27
- */
28
- isEqual(target) {
29
- return (control) => {
30
- if (control.value) {
31
- return target.value !== control.value
32
- ? { equal: { value: true } }
33
- : null;
34
- }
35
- else {
36
- return null;
37
- }
38
- };
39
- }
40
- isGreaterThan(target) {
41
- return (control) => {
42
- if (control.value && typeof target.value === 'number') {
43
- return target.value > control.value
44
- ? { greater: { value: true } }
45
- : null;
46
- }
47
- else if (control.value && typeof target.value === 'string') {
48
- const controlValueNumer = coerceNumberProperty(control.value);
49
- const targetValueNumer = coerceNumberProperty(target.value);
50
- return targetValueNumer > controlValueNumer
51
- ? { greater: { value: true } }
52
- : null;
53
- }
54
- else {
55
- return null;
56
- }
57
- };
58
- }
59
- isLessThan(target) {
60
- return (control) => {
61
- if (control.value && typeof target.value === 'number') {
62
- return target.value < control.value
63
- ? { less: { value: true } }
64
- : null;
65
- }
66
- else if (control.value && typeof target.value === 'string') {
67
- const controlValueNumer = coerceNumberProperty(control.value);
68
- const targetValueNumer = coerceNumberProperty(target.value);
69
- return targetValueNumer < controlValueNumer
70
- ? { less: { value: true } }
71
- : null;
72
- }
73
- else {
74
- return null;
75
- }
76
- };
77
- }
78
- checkEmails(separator) {
79
- return (control) => {
80
- if (control.value) {
81
- const emails = control.value.split(separator ? separator : ',');
82
- const ctrl = new FormControl('', [
83
- Validators.required,
84
- Validators.email,
85
- ]);
86
- const result = emails.every((val) => {
87
- ctrl.setValue(val);
88
- return ctrl.valid;
89
- });
90
- return !result ? { emails: { value: true } } : null;
91
- }
92
- else {
93
- return null;
94
- }
95
- };
96
- }
97
- zipCodeValidator() {
98
- return Validators.pattern(/^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$/);
99
- }
100
- allowableCharactersValidator() {
101
- return Validators.pattern(/^[a-zA-Z0-9`~!@#$%^&*()_+}{|":?><,./;'\\\]\[=\- ]+$/);
102
- }
103
- allowableCharactersWithoutNumberValidator() {
104
- return Validators.pattern(/^[a-zA-Z`~!@#$%^&*()_+}{|":?><,./;'\\\]\[=\- ]+$/);
105
- }
106
- allowableCharactersWithoutSpecialValidator() {
107
- return Validators.pattern(/^[a-zA-Z0-9 ]+$/);
108
- }
109
- dateValidator() {
110
- return Validators.pattern(/^(?:(0[1-9]|1[012])[\/.](0[1-9]|[12][0-9]|3[01])[\/.](19|20)[0-9]{2})$/);
111
- }
112
- numberValidator() {
113
- return Validators.pattern(/^[0-9]*$/);
114
- }
115
- /*
116
- RegExp functions
117
- */
118
- validateNumber(value, allowDecimal) {
119
- // choose the appropiate regular expression
120
- let regex;
121
- if (allowDecimal) {
122
- regex = this.decimalSigned;
123
- }
124
- else {
125
- regex = this.integerSigned;
126
- }
127
- // when a numbers begins with a decimal separator,
128
- // fix it adding a zero in the beginning
129
- const firstCharacter = value.charAt(0);
130
- if (firstCharacter == this.decimalSeparator)
131
- value = 0 + value;
132
- // when a numbers ends with a decimal separator,
133
- // fix it adding a zero in the end
134
- const lastCharacter = value.charAt(value.length - 1);
135
- if (lastCharacter == this.decimalSeparator)
136
- value = value + 0;
137
- // test number with regular expression, when
138
- // number is invalid, replace it with a zero
139
- console.log(`regex is ${regex} and value is ${value}`);
140
- const valid = new RegExp(regex).test(value);
141
- return valid ? value : null;
142
- }
143
- validatePhone(value) {
144
- // test phone with regular expression
145
- const valid = new RegExp(this.phone).test(value);
146
- return valid;
147
- }
148
- getName(e) {
149
- if (e.key) {
150
- return e.key;
151
- }
152
- else {
153
- // for old browsers
154
- if (e.keyCode && String.fromCharCode) {
155
- switch (e.keyCode) {
156
- case 8:
157
- return 'Backspace';
158
- case 9:
159
- return 'Tab';
160
- case 27:
161
- return 'Escape';
162
- case 37:
163
- return 'ArrowLeft';
164
- case 39:
165
- return 'ArrowRight';
166
- case 188:
167
- return ',';
168
- case 190:
169
- return '.';
170
- case 109:
171
- return '-'; // minus in numbpad
172
- case 173:
173
- return '-'; // minus in alphabet keyboard in firefox
174
- case 189:
175
- return '-'; // minus in alphabet keyboard in chrome
176
- default:
177
- return String.fromCharCode(e.keyCode);
178
- }
179
- }
180
- }
181
- }
182
- allowKeyboardNonNumericCharacters(allowedKeys, key, controlOrCommand) {
183
- const defaultAllowedKeys = [
184
- 'Backspace',
185
- 'ArrowLeft',
186
- 'ArrowRight',
187
- 'Escape',
188
- 'Tab',
189
- 'Home',
190
- 'End',
191
- 'Delete',
192
- ];
193
- // allow some non-numeric characters
194
- if (defaultAllowedKeys.indexOf(key) != -1 ||
195
- allowedKeys.indexOf(key) != -1 ||
196
- // Allow: Ctrl+A and Command+A
197
- (key == 'a' && controlOrCommand) ||
198
- // Allow: Ctrl+C and Command+C
199
- (key == 'c' && controlOrCommand) ||
200
- // Allow: Ctrl+V and Command+V
201
- (key == 'v' && controlOrCommand) ||
202
- // Allow: Ctrl+X and Command+X
203
- (key == 'x' && controlOrCommand) ||
204
- key.startsWith('F')) {
205
- // let it happen, don't do anything
206
- return true;
207
- }
208
- else {
209
- return false;
210
- }
211
- }
212
- isPhone(e) {
213
- const key = this.getName(e);
214
- const controlOrCommand = e.ctrlKey === true || e.metaKey === true;
215
- // allowed keys apart from numeric characters
216
- const allowedKeys = ['.', '-', '+', '(', ')', '*', '#'];
217
- // allow some non-numeric characters
218
- if (this.allowKeyboardNonNumericCharacters(allowedKeys, key, controlOrCommand)) {
219
- return true;
220
- }
221
- // allow phone characters only
222
- const isPhone = new RegExp(this.phone).test(key);
223
- return isPhone;
224
- }
225
- isNumber(e, allowDecimal) {
226
- const cursorPosition = e.target['selectionStart'];
227
- const originalValue = e.target['value'];
228
- const key = this.getName(e);
229
- const controlOrCommand = e.ctrlKey === true || e.metaKey === true;
230
- const signExists = originalValue.includes('-');
231
- const separatorExists = originalValue.includes(this.decimalSeparator);
232
- // allowed keys apart from numeric characters
233
- const allowedKeys = [];
234
- // when decimals are allowed, add
235
- // decimal separator to allowed codes when
236
- // its position is not close to the the sign (-. and .-)
237
- const separatorIsCloseToSign = signExists && cursorPosition <= 1;
238
- if (allowDecimal && !separatorIsCloseToSign && !separatorExists) {
239
- if (this.decimalSeparator == '.')
240
- allowedKeys.push('.');
241
- else
242
- allowedKeys.push(',');
243
- }
244
- // when minus sign is allowed, add its
245
- // key to allowed key only when the
246
- // cursor is in the first position, and
247
- // first character is different from
248
- // decimal separator
249
- const firstCharacterIsSeparator = originalValue.charAt(0) != this.decimalSeparator;
250
- if (!signExists && firstCharacterIsSeparator && cursorPosition == 0) {
251
- allowedKeys.push('-');
252
- }
253
- // allow some non-numeric characters
254
- if (this.allowKeyboardNonNumericCharacters(allowedKeys, key, controlOrCommand)) {
255
- return true;
256
- }
257
- // allow number characters only
258
- const isNumber = new RegExp(this.integerUnsigned).test(key);
259
- return isNumber;
260
- }
261
- }
262
- PepValidatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepValidatorService, deps: [{ token: i1.TranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
263
- PepValidatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepValidatorService, providedIn: 'root' });
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepValidatorService, decorators: [{
265
- type: Injectable,
266
- args: [{
267
- providedIn: 'root',
268
- }]
269
- }], ctorParameters: function () { return [{ type: i1.TranslateService, decorators: [{
270
- type: Optional
271
- }] }]; } });
1
+ import { coerceNumberProperty } from '@angular/cdk/coercion';
2
+ import { Injectable, Optional } from '@angular/core';
3
+ import { FormControl, Validators, } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ngx-translate/core";
6
+ export class PepValidatorService {
7
+ constructor(translate = null) {
8
+ this.translate = translate;
9
+ // Regular expressions
10
+ this.integerUnsigned = '^[0-9]*$';
11
+ this.integerSigned = '^-?[0-9]+$';
12
+ this.decimalUnsigned = '^[0-9]+(.[0-9]+)?$';
13
+ this.decimalSigned = '^-?[0-9]+(.[0-9]+)?$';
14
+ this.phone = '^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-s./0-9]*$';
15
+ this.decimalSeparator = '.';
16
+ const currentLang = this.translate?.currentLang || navigator.language;
17
+ // Check for number with thousands separator and if === ',' then the decimal separator is '.' else ','
18
+ const tmp = new Intl.NumberFormat(currentLang, {
19
+ maximumSignificantDigits: 2,
20
+ }).format(1000);
21
+ this.decimalSeparator = tmp.indexOf(',') === 1 ? '.' : ',';
22
+ this.decimalUnsigned = `^[0-9]+(${this.decimalSeparator}[0-9]+)?$`;
23
+ this.decimalSigned = `^-?[0-9]+(${this.decimalSeparator}[0-9]+)?$`;
24
+ }
25
+ /*
26
+ ValidatorFn functions
27
+ */
28
+ isEqual(target) {
29
+ return (control) => {
30
+ if (control.value) {
31
+ return target.value !== control.value
32
+ ? { equal: { value: true } }
33
+ : null;
34
+ }
35
+ else {
36
+ return null;
37
+ }
38
+ };
39
+ }
40
+ isGreaterThan(target) {
41
+ return (control) => {
42
+ if (control.value && typeof target.value === 'number') {
43
+ return target.value > control.value
44
+ ? { greater: { value: true } }
45
+ : null;
46
+ }
47
+ else if (control.value && typeof target.value === 'string') {
48
+ const controlValueNumer = coerceNumberProperty(control.value);
49
+ const targetValueNumer = coerceNumberProperty(target.value);
50
+ return targetValueNumer > controlValueNumer
51
+ ? { greater: { value: true } }
52
+ : null;
53
+ }
54
+ else {
55
+ return null;
56
+ }
57
+ };
58
+ }
59
+ isLessThan(target) {
60
+ return (control) => {
61
+ if (control.value && typeof target.value === 'number') {
62
+ return target.value < control.value
63
+ ? { less: { value: true } }
64
+ : null;
65
+ }
66
+ else if (control.value && typeof target.value === 'string') {
67
+ const controlValueNumer = coerceNumberProperty(control.value);
68
+ const targetValueNumer = coerceNumberProperty(target.value);
69
+ return targetValueNumer < controlValueNumer
70
+ ? { less: { value: true } }
71
+ : null;
72
+ }
73
+ else {
74
+ return null;
75
+ }
76
+ };
77
+ }
78
+ checkEmails(separator) {
79
+ return (control) => {
80
+ if (control.value) {
81
+ const emails = control.value.split(separator ? separator : ',');
82
+ const ctrl = new FormControl('', [
83
+ Validators.required,
84
+ Validators.email,
85
+ ]);
86
+ const result = emails.every((val) => {
87
+ ctrl.setValue(val);
88
+ return ctrl.valid;
89
+ });
90
+ return !result ? { emails: { value: true } } : null;
91
+ }
92
+ else {
93
+ return null;
94
+ }
95
+ };
96
+ }
97
+ zipCodeValidator() {
98
+ return Validators.pattern(/^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$/);
99
+ }
100
+ allowableCharactersValidator() {
101
+ return Validators.pattern(/^[a-zA-Z0-9`~!@#$%^&*()_+}{|":?><,./;'\\\]\[=\- ]+$/);
102
+ }
103
+ allowableCharactersWithoutNumberValidator() {
104
+ return Validators.pattern(/^[a-zA-Z`~!@#$%^&*()_+}{|":?><,./;'\\\]\[=\- ]+$/);
105
+ }
106
+ allowableCharactersWithoutSpecialValidator() {
107
+ return Validators.pattern(/^[a-zA-Z0-9 ]+$/);
108
+ }
109
+ dateValidator() {
110
+ return Validators.pattern(/^(?:(0[1-9]|1[012])[\/.](0[1-9]|[12][0-9]|3[01])[\/.](19|20)[0-9]{2})$/);
111
+ }
112
+ numberValidator() {
113
+ return Validators.pattern(/^[0-9]*$/);
114
+ }
115
+ /*
116
+ RegExp functions
117
+ */
118
+ validateNumber(value, allowDecimal) {
119
+ // choose the appropiate regular expression
120
+ let regex;
121
+ if (allowDecimal) {
122
+ regex = this.decimalSigned;
123
+ }
124
+ else {
125
+ regex = this.integerSigned;
126
+ }
127
+ // when a numbers begins with a decimal separator,
128
+ // fix it adding a zero in the beginning
129
+ const firstCharacter = value.charAt(0);
130
+ if (firstCharacter == this.decimalSeparator)
131
+ value = 0 + value;
132
+ // when a numbers ends with a decimal separator,
133
+ // fix it adding a zero in the end
134
+ const lastCharacter = value.charAt(value.length - 1);
135
+ if (lastCharacter == this.decimalSeparator)
136
+ value = value + 0;
137
+ // test number with regular expression, when
138
+ // number is invalid, replace it with a zero
139
+ console.log(`regex is ${regex} and value is ${value}`);
140
+ const valid = new RegExp(regex).test(value);
141
+ return valid ? value : null;
142
+ }
143
+ validatePhone(value) {
144
+ // test phone with regular expression
145
+ const valid = new RegExp(this.phone).test(value);
146
+ return valid;
147
+ }
148
+ getName(e) {
149
+ if (e.key) {
150
+ return e.key;
151
+ }
152
+ else {
153
+ // for old browsers
154
+ if (e.keyCode && String.fromCharCode) {
155
+ switch (e.keyCode) {
156
+ case 8:
157
+ return 'Backspace';
158
+ case 9:
159
+ return 'Tab';
160
+ case 27:
161
+ return 'Escape';
162
+ case 37:
163
+ return 'ArrowLeft';
164
+ case 39:
165
+ return 'ArrowRight';
166
+ case 188:
167
+ return ',';
168
+ case 190:
169
+ return '.';
170
+ case 109:
171
+ return '-'; // minus in numbpad
172
+ case 173:
173
+ return '-'; // minus in alphabet keyboard in firefox
174
+ case 189:
175
+ return '-'; // minus in alphabet keyboard in chrome
176
+ default:
177
+ return String.fromCharCode(e.keyCode);
178
+ }
179
+ }
180
+ }
181
+ }
182
+ allowKeyboardNonNumericCharacters(allowedKeys, key, controlOrCommand) {
183
+ const defaultAllowedKeys = [
184
+ 'Backspace',
185
+ 'ArrowLeft',
186
+ 'ArrowRight',
187
+ 'Escape',
188
+ 'Tab',
189
+ 'Home',
190
+ 'End',
191
+ 'Delete',
192
+ ];
193
+ // allow some non-numeric characters
194
+ if (defaultAllowedKeys.indexOf(key) != -1 ||
195
+ allowedKeys.indexOf(key) != -1 ||
196
+ // Allow: Ctrl+A and Command+A
197
+ (key == 'a' && controlOrCommand) ||
198
+ // Allow: Ctrl+C and Command+C
199
+ (key == 'c' && controlOrCommand) ||
200
+ // Allow: Ctrl+V and Command+V
201
+ (key == 'v' && controlOrCommand) ||
202
+ // Allow: Ctrl+X and Command+X
203
+ (key == 'x' && controlOrCommand) ||
204
+ key.startsWith('F')) {
205
+ // let it happen, don't do anything
206
+ return true;
207
+ }
208
+ else {
209
+ return false;
210
+ }
211
+ }
212
+ isPhone(e) {
213
+ const key = this.getName(e);
214
+ const controlOrCommand = e.ctrlKey === true || e.metaKey === true;
215
+ // allowed keys apart from numeric characters
216
+ const allowedKeys = ['.', '-', '+', '(', ')', '*', '#'];
217
+ // allow some non-numeric characters
218
+ if (this.allowKeyboardNonNumericCharacters(allowedKeys, key, controlOrCommand)) {
219
+ return true;
220
+ }
221
+ // allow phone characters only
222
+ const isPhone = new RegExp(this.phone).test(key);
223
+ return isPhone;
224
+ }
225
+ isNumber(e, allowDecimal) {
226
+ const cursorPosition = e.target['selectionStart'];
227
+ const originalValue = e.target['value'];
228
+ const key = this.getName(e);
229
+ const controlOrCommand = e.ctrlKey === true || e.metaKey === true;
230
+ const signExists = originalValue.includes('-');
231
+ const separatorExists = originalValue.includes(this.decimalSeparator);
232
+ // allowed keys apart from numeric characters
233
+ const allowedKeys = [];
234
+ // when decimals are allowed, add
235
+ // decimal separator to allowed codes when
236
+ // its position is not close to the the sign (-. and .-)
237
+ const separatorIsCloseToSign = signExists && cursorPosition <= 1;
238
+ if (allowDecimal && !separatorIsCloseToSign && !separatorExists) {
239
+ if (this.decimalSeparator == '.')
240
+ allowedKeys.push('.');
241
+ else
242
+ allowedKeys.push(',');
243
+ }
244
+ // when minus sign is allowed, add its
245
+ // key to allowed key only when the
246
+ // cursor is in the first position, and
247
+ // first character is different from
248
+ // decimal separator
249
+ const firstCharacterIsSeparator = originalValue.charAt(0) != this.decimalSeparator;
250
+ if (!signExists && firstCharacterIsSeparator && cursorPosition == 0) {
251
+ allowedKeys.push('-');
252
+ }
253
+ // allow some non-numeric characters
254
+ if (this.allowKeyboardNonNumericCharacters(allowedKeys, key, controlOrCommand)) {
255
+ return true;
256
+ }
257
+ // allow number characters only
258
+ const isNumber = new RegExp(this.integerUnsigned).test(key);
259
+ return isNumber;
260
+ }
261
+ }
262
+ PepValidatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepValidatorService, deps: [{ token: i1.TranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
263
+ PepValidatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepValidatorService, providedIn: 'root' });
264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepValidatorService, decorators: [{
265
+ type: Injectable,
266
+ args: [{
267
+ providedIn: 'root',
268
+ }]
269
+ }], ctorParameters: function () { return [{ type: i1.TranslateService, decorators: [{
270
+ type: Optional
271
+ }] }]; } });
272
272
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy92YWxpZGF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBR0gsV0FBVyxFQUNYLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDOzs7QUFLeEIsTUFBTSxPQUFPLG1CQUFtQjtJQVU1QixZQUFnQyxZQUE4QixJQUFJO1FBQWxDLGNBQVMsR0FBVCxTQUFTLENBQXlCO1FBVGxFLHVCQUF1QjtRQUNkLG9CQUFlLEdBQUcsVUFBVSxDQUFDO1FBQzdCLGtCQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsb0JBQW9CLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxzQkFBc0IsQ0FBQztRQUM5QixVQUFLLEdBQUcsNENBQTRDLENBQUM7UUFFOUQscUJBQWdCLEdBQUcsR0FBRyxDQUFDO1FBR25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFFdEUsc0dBQXNHO1FBQ3RHLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7WUFDM0Msd0JBQXdCLEVBQUUsQ0FBQztTQUM5QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFF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QUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxJQUFJLHlCQUF5QixJQUFJLGNBQWMsSUFBSSxDQUFDLEVBQUU7WUFDakUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELG9DQUFvQztRQUNwQyxJQUNJLElBQUksQ0FBQyxpQ0FBaUMsQ0FDbEMsV0FBVyxFQUNYLEdBQUcsRUFDSCxnQkFBZ0IsQ0FDbkIsRUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCwrQkFBK0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1RCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOztnSEE5U1EsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFXZ0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBWYWxpZGF0b3JGbixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcFZhbGlkYXRvclNlcnZpY2Uge1xuICAgIC8vICBSZWd1bGFyIGV4cHJlc3Npb25zXG4gICAgcmVhZG9ubHkgaW50ZWdlclVuc2lnbmVkID0gJ15bMC05XSokJztcbiAgICByZWFkb25seSBpbnRlZ2VyU2lnbmVkID0gJ14tP1swLTldKyQnO1xuICAgIGRlY2ltYWxVbnNpZ25lZCA9ICdeWzAtOV0rKC5bMC05XSspPyQnO1xuICAgIGRlY2ltYWxTaWduZWQgPSAnXi0/WzAtOV0rKC5bMC05XSspPyQnO1xuICAgIHJlYWRvbmx5IHBob25lID0gJ15bK10qWyhdezAsMX1bMC05XXsxLDR9WyldezAsMX1bLXMuLzAtOV0qJCc7XG5cbiAgICBkZWNpbWFsU2VwYXJhdG9yID0gJy4nO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UgPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xhdGU/LmN1cnJlbnRMYW5nIHx8IG5hdmlnYXRvci5sYW5ndWFnZTtcblxuICAgICAgICAvLyBDaGVjayBmb3IgbnVtYmVyIHdpdGggdGhvdXNhbmRzIHNlcGFyYXRvciBhbmQgaWYgPT09ICcsJyB0aGVuIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBpcyAnLicgZWxzZSAnLCdcbiAgICAgICAgY29uc3QgdG1wID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KGN1cnJlbnRMYW5nLCB7XG4gICAgICAgICAgICBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM6IDIsXG4gICAgICAgIH0pLmZvcm1hdCgxMDAwKTtcbiAgICAgICAgdGhpcy5kZWNpbWFsU2VwYXJhdG9yID0gdG1wLmluZGV4T2YoJywnKSA9PT0gMSA/ICcuJyA6ICcsJztcblxuICAgICAgICB0aGlzLmRlY2ltYWxVbnNpZ25lZCA9IGBeWzAtOV0rKCR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfVswLTldKyk/JGA7XG4gICAgICAgIHRoaXMuZGVjaW1hbFNpZ25lZCA9IGBeLT9bMC05XSsoJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9WzAtOV0rKT8kYDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAgICBWYWxpZGF0b3JGbiBmdW5jdGlvbnNcbiAgICAqL1xuICAgIGlzRXF1YWwodGFyZ2V0OiBGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWUgIT09IGNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgPyB7IGVxdWFsOiB7IHZhbHVlOiB0cnVlIH0gfVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlzR3JlYXRlclRoYW4odGFyZ2V0OiBGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiB0eXBlb2YgdGFyZ2V0LnZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWUgPiBjb250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8geyBncmVhdGVyOiB7IHZhbHVlOiB0cnVlIH0gfVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sVmFsdWVOdW1lciA9IGNvZXJjZU51bWJlclByb3BlcnR5KGNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldFZhbHVlTnVtZXIgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh0YXJnZXQudmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFZhbHVlTnVtZXIgPiBjb250cm9sVmFsdWVOdW1lclxuICAgICAgICAgICAgICAgICAgICA/IHsgZ3JlYXRlcjogeyB2YWx1ZTogdHJ1ZSB9IH1cbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpc0xlc3NUaGFuKHRhcmdldDogRm9ybUNvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlIDwgY29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHsgbGVzczogeyB2YWx1ZTogdHJ1ZSB9IH1cbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sLnZhbHVlICYmIHR5cGVvZiB0YXJnZXQudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbFZhbHVlTnVtZXIgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eShjb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRWYWx1ZU51bWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkodGFyZ2V0LnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRWYWx1ZU51bWVyIDwgY29udHJvbFZhbHVlTnVtZXJcbiAgICAgICAgICAgICAgICAgICAgPyB7IGxlc3M6IHsgdmFsdWU6IHRydWUgfSB9XG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2hlY2tFbWFpbHMoc2VwYXJhdG9yPzogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW1haWxzID0gY29udHJvbC52YWx1ZS5zcGxpdChzZXBhcmF0b3IgPyBzZXBhcmF0b3IgOiAnLCcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtcbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5lbWFpbCxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBlbWFpbHMuZXZlcnkoKHZhbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGN0cmwuc2V0VmFsdWUodmFsKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0cmwudmFsaWQ7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gIXJlc3VsdCA/IHsgZW1haWxzOiB7IHZhbHVlOiB0cnVlIH0gfSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHppcENvZGVWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKFxcZHs1fSgtXFxkezR9KT98W0EtWl1cXGRbQS1aXSAqXFxkW0EtWl1cXGQpJC8pO1xuICAgIH1cblxuICAgIGFsbG93YWJsZUNoYXJhY3RlcnNWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFxuICAgICAgICAgICAgL15bYS16QS1aMC05YH4hQCMkJV4mKigpXyt9e3xcIjo/PjwsLi87J1xcXFxcXF1cXFs9XFwtIF0rJC9cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhbGxvd2FibGVDaGFyYWN0ZXJzV2l0aG91dE51bWJlclZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnBhdHRlcm4oXG4gICAgICAgICAgICAvXlthLXpBLVpgfiFAIyQlXiYqKClfK317fFwiOj8+PCwuLzsnXFxcXFxcXVxcWz1cXC0gXSskL1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGFsbG93YWJsZUNoYXJhY3RlcnNXaXRob3V0U3BlY2lhbFZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnBhdHRlcm4oL15bYS16QS1aMC05IF0rJC8pO1xuICAgIH1cblxuICAgIGRhdGVWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFxuICAgICAgICAgICAgL14oPzooMFsxLTldfDFbMDEyXSlbXFwvLl0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSlbXFwvLl0oMTl8MjApWzAtOV17Mn0pJC9cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBudW1iZXJWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKC9eWzAtOV0qJC8pO1xuICAgIH1cblxuICAgIC8qXG4gICAgICAgIFJlZ0V4cCBmdW5jdGlvbnNcbiAgICAqL1xuICAgIHZhbGlkYXRlTnVtYmVyKHZhbHVlOiBzdHJpbmcsIGFsbG93RGVjaW1hbDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIC8vIGNob29zZSB0aGUgYXBwcm9waWF0ZSByZWd1bGFyIGV4cHJlc3Npb25cbiAgICAgICAgbGV0IHJlZ2V4OiBzdHJpbmc7XG5cbiAgICAgICAgaWYgKGFsbG93RGVjaW1hbCkge1xuICAgICAgICAgICAgcmVnZXggPSB0aGlzLmRlY2ltYWxTaWduZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWdleCA9IHRoaXMuaW50ZWdlclNpZ25lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdoZW4gYSBudW1iZXJzIGJlZ2lucyB3aXRoIGEgZGVjaW1hbCBzZXBhcmF0b3IsXG4gICAgICAgIC8vIGZpeCBpdCBhZGRpbmcgYSB6ZXJvIGluIHRoZSBiZWdpbm5pbmdcbiAgICAgICAgY29uc3QgZmlyc3RDaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoMCk7XG4gICAgICAgIGlmIChmaXJzdENoYXJhY3RlciA9PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHZhbHVlID0gMCArIHZhbHVlO1xuXG4gICAgICAgIC8vIHdoZW4gYSBudW1iZXJzIGVuZHMgd2l0aCBhIGRlY2ltYWwgc2VwYXJhdG9yLFxuICAgICAgICAvLyBmaXggaXQgYWRkaW5nIGEgemVybyBpbiB0aGUgZW5kXG4gICAgICAgIGNvbnN0IGxhc3RDaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQodmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmIChsYXN0Q2hhcmFjdGVyID09IHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgdmFsdWUgPSB2YWx1ZSArIDA7XG5cbiAgICAgICAgLy8gdGVzdCBudW1iZXIgd2l0aCByZWd1bGFyIGV4cHJlc3Npb24sIHdoZW5cbiAgICAgICAgLy8gbnVtYmVyIGlzIGludmFsaWQsIHJlcGxhY2UgaXQgd2l0aCBhIHplcm9cbiAgICAgICAgY29uc29sZS5sb2coYHJlZ2V4IGlzICR7cmVnZXh9IGFuZCB2YWx1ZSBpcyAke3ZhbHVlfWApO1xuICAgICAgICBjb25zdCB2YWxpZDogYm9vbGVhbiA9IG5ldyBSZWdFeHAocmVnZXgpLnRlc3QodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiB2YWxpZCA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZVBob25lKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgLy8gdGVzdCBwaG9uZSB3aXRoIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgICAgICBjb25zdCB2YWxpZDogYm9vbGVhbiA9IG5ldyBSZWdFeHAodGhpcy5waG9uZSkudGVzdCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5hbWUoZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChlLmtleSkge1xuICAgICAgICAgICAgcmV0dXJuIGUua2V5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZm9yIG9sZCBicm93c2Vyc1xuICAgICAgICAgICAgaWYgKGUua2V5Q29kZSAmJiBTdHJpbmcuZnJvbUNoYXJDb2RlKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChlLmtleUNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdCYWNrc3BhY2UnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1RhYic7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0VzY2FwZSc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0Fycm93TGVmdCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0Fycm93UmlnaHQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE4ODpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnLCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTkwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcuJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxMDk6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJy0nOyAvLyBtaW51cyBpbiBudW1icGFkXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTczOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICctJzsgLy8gbWludXMgaW4gYWxwaGFiZXQga2V5Ym9hcmQgaW4gZmlyZWZveFxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE4OTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnLSc7IC8vIG1pbnVzIGluIGFscGhhYmV0IGtleWJvYXJkIGluIGNocm9tZVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZS5rZXlDb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFsbG93S2V5Ym9hcmROb25OdW1lcmljQ2hhcmFjdGVycyhcbiAgICAgICAgYWxsb3dlZEtleXM6IEFycmF5PHN0cmluZz4sXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICBjb250cm9sT3JDb21tYW5kOiBib29sZWFuXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRBbGxvd2VkS2V5cyA9IFtcbiAgICAgICAgICAgICdCYWNrc3BhY2UnLFxuICAgICAgICAgICAgJ0Fycm93TGVmdCcsXG4gICAgICAgICAgICAnQXJyb3dSaWdodCcsXG4gICAgICAgICAgICAnRXNjYXBlJyxcbiAgICAgICAgICAgICdUYWInLFxuICAgICAgICAgICAgJ0hvbWUnLFxuICAgICAgICAgICAgJ0VuZCcsXG4gICAgICAgICAgICAnRGVsZXRlJyxcbiAgICAgICAgXTtcblxuICAgICAgICAvLyBhbGxvdyBzb21lIG5vbi1udW1lcmljIGNoYXJhY3RlcnNcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGVmYXVsdEFsbG93ZWRLZXlzLmluZGV4T2Yoa2V5KSAhPSAtMSB8fFxuICAgICAgICAgICAgYWxsb3dlZEtleXMuaW5kZXhPZihrZXkpICE9IC0xIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCtBIGFuZCBDb21tYW5kK0FcbiAgICAgICAgICAgIChrZXkgPT0gJ2EnICYmIGNvbnRyb2xPckNvbW1hbmQpIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCtDIGFuZCBDb21tYW5kK0NcbiAgICAgICAgICAgIChrZXkgPT0gJ2MnICYmIGNvbnRyb2xPckNvbW1hbmQpIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCtWIGFuZCBDb21tYW5kK1ZcbiAgICAgICAgICAgIChrZXkgPT0gJ3YnICYmIGNvbnRyb2xPckNvbW1hbmQpIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCtYIGFuZCBDb21tYW5kK1hcbiAgICAgICAgICAgIChrZXkgPT0gJ3gnICYmIGNvbnRyb2xPckNvbW1hbmQpIHx8XG4gICAgICAgICAgICBrZXkuc3RhcnRzV2l0aCgnRicpXG4gICAgICAgICkge1xuICAgICAgICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNQaG9uZShlOiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGtleTogc3RyaW5nID0gdGhpcy5nZXROYW1lKGUpO1xuICAgICAgICBjb25zdCBjb250cm9sT3JDb21tYW5kID0gZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZTtcblxuICAgICAgICAvLyBhbGxvd2VkIGtleXMgYXBhcnQgZnJvbSBudW1lcmljIGNoYXJhY3RlcnNcbiAgICAgICAgY29uc3QgYWxsb3dlZEtleXMgPSBbJy4nLCAnLScsICcrJywgJygnLCAnKScsICcqJywgJyMnXTtcblxuICAgICAgICAvLyBhbGxvdyBzb21lIG5vbi1udW1lcmljIGNoYXJhY3RlcnNcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5hbGxvd0tleWJvYXJkTm9uTnVtZXJpY0NoYXJhY3RlcnMoXG4gICAgICAgICAgICAgICAgYWxsb3dlZEtleXMsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGNvbnRyb2xPckNvbW1hbmRcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsbG93IHBob25lIGNoYXJhY3RlcnMgb25seVxuICAgICAgICBjb25zdCBpc1Bob25lID0gbmV3IFJlZ0V4cCh0aGlzLnBob25lKS50ZXN0KGtleSk7XG4gICAgICAgIHJldHVybiBpc1Bob25lO1xuICAgIH1cblxuICAgIGlzTnVtYmVyKGU6IEtleWJvYXJkRXZlbnQsIGFsbG93RGVjaW1hbDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJzb3JQb3NpdGlvbjogbnVtYmVyID0gZS50YXJnZXRbJ3NlbGVjdGlvblN0YXJ0J107XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWU6IHN0cmluZyA9IGUudGFyZ2V0Wyd2YWx1ZSddO1xuICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IHRoaXMuZ2V0TmFtZShlKTtcbiAgICAgICAgY29uc3QgY29udHJvbE9yQ29tbWFuZCA9IGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWU7XG4gICAgICAgIGNvbnN0IHNpZ25FeGlzdHMgPSBvcmlnaW5hbFZhbHVlLmluY2x1ZGVzKCctJyk7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvckV4aXN0cyA9IG9yaWdpbmFsVmFsdWUuaW5jbHVkZXModGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgICAgICAvLyBhbGxvd2VkIGtleXMgYXBhcnQgZnJvbSBudW1lcmljIGNoYXJhY3RlcnNcbiAgICAgICAgY29uc3QgYWxsb3dlZEtleXMgPSBbXTtcblxuICAgICAgICAvLyB3aGVuIGRlY2ltYWxzIGFyZSBhbGxvd2VkLCBhZGRcbiAgICAgICAgLy8gZGVjaW1hbCBzZXBhcmF0b3IgdG8gYWxsb3dlZCBjb2RlcyB3aGVuXG4gICAgICAgIC8vIGl0cyBwb3NpdGlvbiBpcyBub3QgY2xvc2UgdG8gdGhlIHRoZSBzaWduICgtLiBhbmQgLi0pXG4gICAgICAgIGNvbnN0IHNlcGFyYXRvcklzQ2xvc2VUb1NpZ24gPSBzaWduRXhpc3RzICYmIGN1cnNvclBvc2l0aW9uIDw9IDE7XG4gICAgICAgIGlmIChhbGxvd0RlY2ltYWwgJiYgIXNlcGFyYXRvcklzQ2xvc2VUb1NpZ24gJiYgIXNlcGFyYXRvckV4aXN0cykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9PSAnLicpIGFsbG93ZWRLZXlzLnB1c2goJy4nKTtcbiAgICAgICAgICAgIGVsc2UgYWxsb3dlZEtleXMucHVzaCgnLCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gd2hlbiBtaW51cyBzaWduIGlzIGFsbG93ZWQsIGFkZCBpdHNcbiAgICAgICAgLy8ga2V5IHRvIGFsbG93ZWQga2V5IG9ubHkgd2hlbiB0aGVcbiAgICAgICAgLy8gY3Vyc29yIGlzIGluIHRoZSBmaXJzdCBwb3NpdGlvbiwgYW5kXG4gICAgICAgIC8vIGZpcnN0IGNoYXJhY3RlciBpcyBkaWZmZXJlbnQgZnJvbVxuICAgICAgICAvLyBkZWNpbWFsIHNlcGFyYXRvclxuICAgICAgICBjb25zdCBmaXJzdENoYXJhY3RlcklzU2VwYXJhdG9yID1cbiAgICAgICAgICAgIG9yaWdpbmFsVmFsdWUuY2hhckF0KDApICE9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgICAgICAgaWYgKCFzaWduRXhpc3RzICYmIGZpcnN0Q2hhcmFjdGVySXNTZXBhcmF0b3IgJiYgY3Vyc29yUG9zaXRpb24gPT0gMCkge1xuICAgICAgICAgICAgYWxsb3dlZEtleXMucHVzaCgnLScpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWxsb3cgc29tZSBub24tbnVtZXJpYyBjaGFyYWN0ZXJzXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuYWxsb3dLZXlib2FyZE5vbk51bWVyaWNDaGFyYWN0ZXJzKFxuICAgICAgICAgICAgICAgIGFsbG93ZWRLZXlzLFxuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBjb250cm9sT3JDb21tYW5kXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhbGxvdyBudW1iZXIgY2hhcmFjdGVycyBvbmx5XG4gICAgICAgIGNvbnN0IGlzTnVtYmVyID0gbmV3IFJlZ0V4cCh0aGlzLmludGVnZXJVbnNpZ25lZCkudGVzdChrZXkpO1xuICAgICAgICByZXR1cm4gaXNOdW1iZXI7XG4gICAgfVxufVxuIl19