@pepperi-addons/ngx-lib 0.4.1-cards-list-scroll.32 → 0.4.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 (752) 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 +104 -93
  29. package/chips/chips.component.theme.scss +16 -7
  30. package/chips/chips.model.d.ts +14 -14
  31. package/chips/chips.module.d.ts +20 -20
  32. package/chips/chips.service.d.ts +15 -15
  33. package/chips/index.d.ts +5 -5
  34. package/chips/public-api.d.ts +3 -3
  35. package/color/color-picker.component.d.ts +57 -57
  36. package/color/color.component.d.ts +30 -30
  37. package/color/color.model.d.ts +1 -1
  38. package/color/color.module.d.ts +26 -26
  39. package/color/index.d.ts +5 -5
  40. package/color/public-api.d.ts +3 -3
  41. package/core/clipboard/clipboard.directive.d.ts +5 -5
  42. package/core/clipboard/clipboard.service.d.ts +5 -5
  43. package/core/clipboard/index.d.ts +1 -1
  44. package/core/clipboard/public-api.d.ts +2 -2
  45. package/core/common/directives/auto-width.directive.d.ts +19 -19
  46. package/core/common/directives/button-blur.directive.d.ts +9 -9
  47. package/core/common/directives/button-loader.directive.d.ts +26 -26
  48. package/core/common/directives/data-qa.directive.d.ts +11 -11
  49. package/core/common/directives/div-loader.directive.d.ts +21 -21
  50. package/core/common/directives/index.d.ts +1 -1
  51. package/core/common/directives/menu-blur.directive.d.ts +10 -10
  52. package/core/common/directives/prevent-multi-click.directive.d.ts +7 -7
  53. package/core/common/directives/print.directive.d.ts +75 -75
  54. package/core/common/directives/public-api.d.ts +8 -8
  55. package/core/common/index.d.ts +1 -1
  56. package/core/common/model/index.d.ts +1 -1
  57. package/core/common/model/papi.model.d.ts +2 -2
  58. package/core/common/model/public-api.d.ts +3 -3
  59. package/core/common/model/utilities.model.d.ts +5 -5
  60. package/core/common/model/wapi.model.d.ts +202 -202
  61. package/core/common/pipes/common-pipes.d.ts +57 -57
  62. package/core/common/pipes/date-ago.pipe.d.ts +11 -11
  63. package/core/common/pipes/index.d.ts +1 -1
  64. package/core/common/pipes/public-api.d.ts +2 -2
  65. package/core/common/public-api.d.ts +4 -4
  66. package/core/common/services/addon.service.d.ts +50 -48
  67. package/core/common/services/color.service.d.ts +51 -51
  68. package/core/common/services/cookie.service.d.ts +53 -53
  69. package/core/common/services/data-convertor.service.d.ts +45 -45
  70. package/core/common/services/file.service.d.ts +27 -27
  71. package/core/common/services/index.d.ts +1 -1
  72. package/core/common/services/jwt-helper.service.d.ts +13 -13
  73. package/core/common/services/public-api.d.ts +11 -11
  74. package/core/common/services/session.service.d.ts +18 -18
  75. package/core/common/services/translate.service.d.ts +12 -12
  76. package/core/common/services/utilities.service.d.ts +39 -39
  77. package/core/common/services/validator.service.d.ts +31 -31
  78. package/core/common/services/window-scrolling.service.d.ts +10 -10
  79. package/core/customization/customization.model.d.ts +277 -277
  80. package/core/customization/customization.service.d.ts +159 -159
  81. package/core/customization/index.d.ts +1 -1
  82. package/core/customization/public-api.d.ts +2 -2
  83. package/core/http/index.d.ts +1 -1
  84. package/core/http/interceptors/error.interceptor.d.ts +8 -8
  85. package/core/http/interceptors/index.d.ts +11 -11
  86. package/core/http/interceptors/loader.interceptor.d.ts +11 -11
  87. package/core/http/interceptors/profiler.interceptor.d.ts +8 -8
  88. package/core/http/public-api.d.ts +2 -2
  89. package/core/http/services/http.service.d.ts +28 -28
  90. package/core/http/services/loader.service.d.ts +13 -13
  91. package/core/index.d.ts +1 -1
  92. package/core/layout/index.d.ts +1 -1
  93. package/core/layout/layout.service.d.ts +36 -36
  94. package/core/layout/public-api.d.ts +2 -2
  95. package/core/layout/rtl.directive.d.ts +21 -21
  96. package/core/portal/attach.directive.d.ts +13 -13
  97. package/core/portal/index.d.ts +1 -1
  98. package/core/portal/portal.service.d.ts +12 -12
  99. package/core/portal/public-api.d.ts +3 -3
  100. package/core/portal/target.directive.d.ts +12 -12
  101. package/core/public-api.d.ts +7 -7
  102. package/core/scroll-to/index.d.ts +1 -1
  103. package/core/scroll-to/public-api.d.ts +1 -1
  104. package/core/scroll-to/scroll-to.service.d.ts +11 -11
  105. package/date/date.component.d.ts +70 -69
  106. package/date/date.model.d.ts +31 -31
  107. package/date/date.module.d.ts +23 -23
  108. package/date/index.d.ts +5 -5
  109. package/date/public-api.d.ts +2 -2
  110. package/dialog/default-dialog.component.d.ts +12 -12
  111. package/dialog/dialog.component.d.ts +13 -13
  112. package/dialog/dialog.model.d.ts +31 -31
  113. package/dialog/dialog.module.d.ts +18 -18
  114. package/dialog/dialog.service.d.ts +27 -27
  115. package/dialog/index.d.ts +5 -5
  116. package/dialog/public-api.d.ts +4 -4
  117. package/draggable-items/draggable-item/draggable-item.component.d.ts +11 -11
  118. package/draggable-items/draggable-items.component.d.ts +36 -36
  119. package/draggable-items/draggable-items.model.d.ts +11 -11
  120. package/draggable-items/draggable-items.module.d.ts +18 -18
  121. package/draggable-items/index.d.ts +5 -5
  122. package/draggable-items/public-api.d.ts +4 -4
  123. package/esm2020/address/address.component.mjs +108 -108
  124. package/esm2020/address/address.module.mjs +53 -53
  125. package/esm2020/address/pepperi-addons-ngx-lib-address.mjs +4 -4
  126. package/esm2020/address/public-api.mjs +5 -5
  127. package/esm2020/attachment/attachment.component.mjs +219 -219
  128. package/esm2020/attachment/attachment.module.mjs +49 -49
  129. package/esm2020/attachment/pepperi-addons-ngx-lib-attachment.mjs +4 -4
  130. package/esm2020/attachment/public-api.mjs +5 -5
  131. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +84 -84
  132. package/esm2020/bread-crumbs/bread-crumbs.model.mjs +6 -6
  133. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +49 -49
  134. package/esm2020/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.mjs +4 -4
  135. package/esm2020/bread-crumbs/public-api.mjs +6 -6
  136. package/esm2020/button/button.component.mjs +137 -137
  137. package/esm2020/button/button.model.mjs +5 -5
  138. package/esm2020/button/button.module.mjs +45 -45
  139. package/esm2020/button/pepperi-addons-ngx-lib-button.mjs +4 -4
  140. package/esm2020/button/public-api.mjs +6 -6
  141. package/esm2020/carousel/carousel-item.directive.mjs +32 -32
  142. package/esm2020/carousel/carousel.component.mjs +736 -736
  143. package/esm2020/carousel/carousel.module.mjs +16 -16
  144. package/esm2020/carousel/pepperi-addons-ngx-lib-carousel.mjs +4 -4
  145. package/esm2020/carousel/public-api.mjs +7 -7
  146. package/esm2020/checkbox/checkbox.component.mjs +167 -167
  147. package/esm2020/checkbox/checkbox.module.mjs +62 -62
  148. package/esm2020/checkbox/pepperi-addons-ngx-lib-checkbox.mjs +4 -4
  149. package/esm2020/checkbox/public-api.mjs +5 -5
  150. package/esm2020/chips/chips.component.mjs +190 -158
  151. package/esm2020/chips/chips.model.mjs +1 -1
  152. package/esm2020/chips/chips.module.mjs +80 -80
  153. package/esm2020/chips/chips.service.mjs +44 -44
  154. package/esm2020/chips/pepperi-addons-ngx-lib-chips.mjs +4 -4
  155. package/esm2020/chips/public-api.mjs +6 -6
  156. package/esm2020/color/color-picker.component.mjs +197 -197
  157. package/esm2020/color/color.component.mjs +89 -89
  158. package/esm2020/color/color.model.mjs +1 -1
  159. package/esm2020/color/color.module.mjs +92 -92
  160. package/esm2020/color/pepperi-addons-ngx-lib-color.mjs +4 -4
  161. package/esm2020/color/public-api.mjs +6 -6
  162. package/esm2020/core/clipboard/clipboard.directive.mjs +23 -23
  163. package/esm2020/core/clipboard/clipboard.service.mjs +13 -13
  164. package/esm2020/core/clipboard/index.mjs +4 -4
  165. package/esm2020/core/clipboard/public-api.mjs +5 -5
  166. package/esm2020/core/common/directives/auto-width.directive.mjs +76 -76
  167. package/esm2020/core/common/directives/button-blur.directive.mjs +23 -23
  168. package/esm2020/core/common/directives/button-loader.directive.mjs +111 -111
  169. package/esm2020/core/common/directives/data-qa.directive.mjs +22 -22
  170. package/esm2020/core/common/directives/div-loader.directive.mjs +60 -60
  171. package/esm2020/core/common/directives/index.mjs +4 -4
  172. package/esm2020/core/common/directives/menu-blur.directive.mjs +31 -31
  173. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +26 -26
  174. package/esm2020/core/common/directives/print.directive.mjs +144 -144
  175. package/esm2020/core/common/directives/public-api.mjs +12 -12
  176. package/esm2020/core/common/index.mjs +4 -4
  177. package/esm2020/core/common/model/index.mjs +4 -4
  178. package/esm2020/core/common/model/papi.model.mjs +2 -2
  179. package/esm2020/core/common/model/public-api.mjs +6 -6
  180. package/esm2020/core/common/model/utilities.model.mjs +56 -56
  181. package/esm2020/core/common/model/wapi.model.mjs +156 -156
  182. package/esm2020/core/common/pipes/common-pipes.mjs +166 -166
  183. package/esm2020/core/common/pipes/date-ago.pipe.mjs +45 -45
  184. package/esm2020/core/common/pipes/index.mjs +4 -4
  185. package/esm2020/core/common/pipes/public-api.mjs +5 -5
  186. package/esm2020/core/common/public-api.mjs +7 -7
  187. package/esm2020/core/common/services/addon.service.mjs +203 -189
  188. package/esm2020/core/common/services/color.service.mjs +358 -358
  189. package/esm2020/core/common/services/cookie.service.mjs +152 -152
  190. package/esm2020/core/common/services/data-convertor.service.mjs +121 -121
  191. package/esm2020/core/common/services/file.service.mjs +212 -212
  192. package/esm2020/core/common/services/index.mjs +4 -4
  193. package/esm2020/core/common/services/jwt-helper.service.mjs +105 -105
  194. package/esm2020/core/common/services/public-api.mjs +14 -14
  195. package/esm2020/core/common/services/session.service.mjs +70 -70
  196. package/esm2020/core/common/services/translate.service.mjs +45 -45
  197. package/esm2020/core/common/services/utilities.service.mjs +301 -299
  198. package/esm2020/core/common/services/validator.service.mjs +271 -271
  199. package/esm2020/core/common/services/window-scrolling.service.mjs +31 -31
  200. package/esm2020/core/customization/customization.model.mjs +301 -301
  201. package/esm2020/core/customization/customization.service.mjs +770 -770
  202. package/esm2020/core/customization/index.mjs +4 -4
  203. package/esm2020/core/customization/public-api.mjs +5 -5
  204. package/esm2020/core/http/index.mjs +4 -4
  205. package/esm2020/core/http/interceptors/error.interceptor.mjs +26 -26
  206. package/esm2020/core/http/interceptors/index.mjs +23 -23
  207. package/esm2020/core/http/interceptors/loader.interceptor.mjs +31 -31
  208. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +31 -31
  209. package/esm2020/core/http/public-api.mjs +5 -5
  210. package/esm2020/core/http/services/http.service.mjs +154 -154
  211. package/esm2020/core/http/services/loader.service.mjs +49 -49
  212. package/esm2020/core/index.mjs +4 -4
  213. package/esm2020/core/layout/index.mjs +4 -4
  214. package/esm2020/core/layout/layout.service.mjs +167 -167
  215. package/esm2020/core/layout/public-api.mjs +5 -5
  216. package/esm2020/core/layout/rtl.directive.mjs +43 -43
  217. package/esm2020/core/portal/attach.directive.mjs +26 -26
  218. package/esm2020/core/portal/index.mjs +4 -4
  219. package/esm2020/core/portal/portal.service.mjs +35 -35
  220. package/esm2020/core/portal/public-api.mjs +6 -6
  221. package/esm2020/core/portal/target.directive.mjs +23 -23
  222. package/esm2020/core/public-api.mjs +10 -10
  223. package/esm2020/core/scroll-to/index.mjs +4 -4
  224. package/esm2020/core/scroll-to/public-api.mjs +5 -5
  225. package/esm2020/core/scroll-to/scroll-to.service.mjs +83 -83
  226. package/esm2020/date/date.component.mjs +312 -307
  227. package/esm2020/date/date.model.mjs +53 -53
  228. package/esm2020/date/date.module.mjs +87 -87
  229. package/esm2020/date/pepperi-addons-ngx-lib-date.mjs +4 -4
  230. package/esm2020/date/public-api.mjs +5 -5
  231. package/esm2020/dialog/default-dialog.component.mjs +36 -36
  232. package/esm2020/dialog/dialog.component.mjs +35 -35
  233. package/esm2020/dialog/dialog.model.mjs +32 -32
  234. package/esm2020/dialog/dialog.module.mjs +58 -58
  235. package/esm2020/dialog/dialog.service.mjs +81 -81
  236. package/esm2020/dialog/pepperi-addons-ngx-lib-dialog.mjs +4 -4
  237. package/esm2020/dialog/public-api.mjs +7 -7
  238. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +26 -26
  239. package/esm2020/draggable-items/draggable-items.component.mjs +101 -101
  240. package/esm2020/draggable-items/draggable-items.model.mjs +1 -1
  241. package/esm2020/draggable-items/draggable-items.module.mjs +59 -59
  242. package/esm2020/draggable-items/pepperi-addons-ngx-lib-draggable-items.mjs +4 -4
  243. package/esm2020/draggable-items/public-api.mjs +7 -7
  244. package/esm2020/field-title/field-title.component.mjs +44 -44
  245. package/esm2020/field-title/field-title.module.mjs +46 -46
  246. package/esm2020/field-title/pepperi-addons-ngx-lib-field-title.mjs +4 -4
  247. package/esm2020/field-title/public-api.mjs +5 -5
  248. package/esm2020/files-uploader/files-uploader.component.mjs +240 -240
  249. package/esm2020/files-uploader/files-uploader.module.mjs +78 -78
  250. package/esm2020/files-uploader/pepperi-addons-ngx-lib-files-uploader.mjs +4 -4
  251. package/esm2020/files-uploader/public-api.mjs +5 -5
  252. package/esm2020/form/field-generator.component.mjs +152 -152
  253. package/esm2020/form/form.component.mjs +1237 -1227
  254. package/esm2020/form/form.model.mjs +1 -1
  255. package/esm2020/form/form.module.mjs +178 -178
  256. package/esm2020/form/indicators.component.mjs +22 -22
  257. package/esm2020/form/internal-button.component.mjs +183 -183
  258. package/esm2020/form/internal-carusel.component.mjs +116 -116
  259. package/esm2020/form/internal-carusel.service.mjs +31 -31
  260. package/esm2020/form/internal-field-generator.component.mjs +145 -145
  261. package/esm2020/form/internal-form.component.mjs +1215 -1215
  262. package/esm2020/form/internal-list.component.mjs +512 -512
  263. package/esm2020/form/internal-menu.component.mjs +65 -65
  264. package/esm2020/form/internal-page.component.mjs +361 -361
  265. package/esm2020/form/internal-page.service.mjs +119 -119
  266. package/esm2020/form/pepperi-addons-ngx-lib-form.mjs +4 -4
  267. package/esm2020/form/public-api.mjs +6 -6
  268. package/esm2020/group-buttons/group-buttons.component.mjs +70 -70
  269. package/esm2020/group-buttons/group-buttons.module.mjs +58 -58
  270. package/esm2020/group-buttons/pepperi-addons-ngx-lib-group-buttons.mjs +4 -4
  271. package/esm2020/group-buttons/public-api.mjs +5 -5
  272. package/esm2020/icon/icon-generated-all.model.mjs +117 -114
  273. package/esm2020/icon/icon-generated.model.mjs +454 -442
  274. package/esm2020/icon/icon-registry.service.mjs +24 -24
  275. package/esm2020/icon/icon.component.mjs +90 -90
  276. package/esm2020/icon/icon.module.mjs +19 -19
  277. package/esm2020/icon/icon.service.mjs +30 -30
  278. package/esm2020/icon/pepperi-addons-ngx-lib-icon.mjs +4 -4
  279. package/esm2020/icon/public-api.mjs +10 -10
  280. package/esm2020/image/image.component.mjs +246 -246
  281. package/esm2020/image/image.module.mjs +73 -73
  282. package/esm2020/image/image.service.mjs +51 -51
  283. package/esm2020/image/pepperi-addons-ngx-lib-image.mjs +4 -4
  284. package/esm2020/image/public-api.mjs +6 -6
  285. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +336 -336
  286. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +82 -82
  287. package/esm2020/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.mjs +4 -4
  288. package/esm2020/images-filmstrip/public-api.mjs +5 -5
  289. package/esm2020/link/link.component.mjs +324 -324
  290. package/esm2020/link/link.module.mjs +79 -79
  291. package/esm2020/link/link.pipes.mjs +17 -17
  292. package/esm2020/link/pepperi-addons-ngx-lib-link.mjs +4 -4
  293. package/esm2020/link/public-api.mjs +7 -6
  294. package/esm2020/list/list-actions.component.mjs +43 -43
  295. package/esm2020/list/list-carousel.component.mjs +106 -106
  296. package/esm2020/list/list-chooser.component.mjs +63 -63
  297. package/esm2020/list/list-pager.component.mjs +119 -119
  298. package/esm2020/list/list-sorting.component.mjs +60 -60
  299. package/esm2020/list/list-total.component.mjs +29 -29
  300. package/esm2020/list/list-views.component.mjs +84 -84
  301. package/esm2020/list/list.component.mjs +1193 -1187
  302. package/esm2020/list/list.model.mjs +3 -3
  303. package/esm2020/list/list.module.mjs +143 -143
  304. package/esm2020/list/list.pipes.mjs +46 -46
  305. package/esm2020/list/pepperi-addons-ngx-lib-list.mjs +4 -4
  306. package/esm2020/list/public-api.mjs +14 -14
  307. package/esm2020/list/virtual-scroller.mjs +1070 -1070
  308. package/esm2020/menu/menu-item.component.mjs +114 -114
  309. package/esm2020/menu/menu.component.mjs +212 -212
  310. package/esm2020/menu/menu.model.mjs +18 -18
  311. package/esm2020/menu/menu.module.mjs +58 -58
  312. package/esm2020/menu/pepperi-addons-ngx-lib-menu.mjs +4 -4
  313. package/esm2020/menu/public-api.mjs +6 -6
  314. package/esm2020/ngx-lib.module.mjs +161 -161
  315. package/esm2020/page-layout/page-layout.component.mjs +34 -34
  316. package/esm2020/page-layout/page-layout.module.mjs +33 -33
  317. package/esm2020/page-layout/pepperi-addons-ngx-lib-page-layout.mjs +4 -4
  318. package/esm2020/page-layout/public-api.mjs +5 -5
  319. package/esm2020/pepperi-addons-ngx-lib.mjs +4 -4
  320. package/esm2020/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.mjs +4 -4
  321. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +44 -44
  322. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +64 -64
  323. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +94 -94
  324. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
  325. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +87 -87
  326. package/esm2020/profile-data-views-list/public-api.mjs +8 -8
  327. package/esm2020/public-api.mjs +5 -5
  328. package/esm2020/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.mjs +4 -4
  329. package/esm2020/quantity-selector/public-api.mjs +5 -5
  330. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +48 -48
  331. package/esm2020/quantity-selector/quantity-selector.component.mjs +574 -574
  332. package/esm2020/quantity-selector/quantity-selector.module.mjs +81 -81
  333. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +22 -22
  334. package/esm2020/query-builder/common/model/field.mjs +1 -1
  335. package/esm2020/query-builder/common/model/filter.mjs +1 -1
  336. package/esm2020/query-builder/common/model/legacy.mjs +1 -1
  337. package/esm2020/query-builder/common/model/operator-unit.mjs +41 -41
  338. package/esm2020/query-builder/common/model/operator.mjs +265 -265
  339. package/esm2020/query-builder/common/model/structure.mjs +1 -1
  340. package/esm2020/query-builder/common/model/type-map.mjs +27 -27
  341. package/esm2020/query-builder/common/model/type.mjs +5 -5
  342. package/esm2020/query-builder/common/services/output-query.service.mjs +113 -113
  343. package/esm2020/query-builder/common/services/query-structure.service.mjs +225 -225
  344. package/esm2020/query-builder/common/services/type-convertor.service.mjs +41 -41
  345. package/esm2020/query-builder/pepperi-addons-ngx-lib-query-builder.mjs +4 -4
  346. package/esm2020/query-builder/public-api.mjs +8 -8
  347. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +124 -124
  348. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +70 -70
  349. package/esm2020/query-builder/query-builder.component.mjs +109 -109
  350. package/esm2020/query-builder/query-builder.module.mjs +58 -58
  351. package/esm2020/query-builder/query-builder.service.mjs +101 -101
  352. package/esm2020/remote-loader/addon-block-loader.component.mjs +101 -101
  353. package/esm2020/remote-loader/addon-block-loader.service.mjs +61 -61
  354. package/esm2020/remote-loader/pepperi-addons-ngx-lib-remote-loader.mjs +4 -4
  355. package/esm2020/remote-loader/public-api.mjs +10 -10
  356. package/esm2020/remote-loader/remote-loader-element.component.mjs +112 -105
  357. package/esm2020/remote-loader/remote-loader.component.mjs +108 -108
  358. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  359. package/esm2020/remote-loader/remote-loader.module.mjs +68 -68
  360. package/esm2020/remote-loader/remote-loader.service.mjs +80 -80
  361. package/esm2020/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.mjs +4 -4
  362. package/esm2020/rich-html-textarea/public-api.mjs +5 -5
  363. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +247 -247
  364. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +94 -94
  365. package/esm2020/search/pepperi-addons-ngx-lib-search.mjs +4 -4
  366. package/esm2020/search/public-api.mjs +6 -6
  367. package/esm2020/search/search.component.mjs +316 -316
  368. package/esm2020/search/search.model.mjs +1 -1
  369. package/esm2020/search/search.module.mjs +69 -69
  370. package/esm2020/select/pepperi-addons-ngx-lib-select.mjs +4 -4
  371. package/esm2020/select/public-api.mjs +5 -5
  372. package/esm2020/select/select.component.mjs +263 -263
  373. package/esm2020/select/select.module.mjs +69 -69
  374. package/esm2020/select-panel/pepperi-addons-ngx-lib-select-panel.mjs +4 -4
  375. package/esm2020/select-panel/public-api.mjs +6 -6
  376. package/esm2020/select-panel/select-panel.component.mjs +158 -158
  377. package/esm2020/select-panel/select-panel.model.mjs +1 -1
  378. package/esm2020/select-panel/select-panel.module.mjs +69 -69
  379. package/esm2020/separator/pepperi-addons-ngx-lib-separator.mjs +4 -4
  380. package/esm2020/separator/public-api.mjs +5 -5
  381. package/esm2020/separator/separator.component.mjs +62 -62
  382. package/esm2020/separator/separator.module.mjs +17 -17
  383. package/esm2020/side-bar/pepperi-addons-ngx-lib-side-bar.mjs +4 -4
  384. package/esm2020/side-bar/public-api.mjs +6 -6
  385. package/esm2020/side-bar/side-bar.component.mjs +121 -121
  386. package/esm2020/side-bar/side-bar.model.mjs +1 -1
  387. package/esm2020/side-bar/side-bar.module.mjs +54 -54
  388. package/esm2020/signature/pepperi-addons-ngx-lib-signature.mjs +4 -4
  389. package/esm2020/signature/public-api.mjs +5 -5
  390. package/esm2020/signature/signature.component.mjs +253 -253
  391. package/esm2020/signature/signature.module.mjs +89 -89
  392. package/esm2020/size-detector/pepperi-addons-ngx-lib-size-detector.mjs +4 -4
  393. package/esm2020/size-detector/public-api.mjs +5 -5
  394. package/esm2020/size-detector/size-detector.component.mjs +91 -91
  395. package/esm2020/size-detector/size-detector.module.mjs +34 -34
  396. package/esm2020/slider/pepperi-addons-ngx-lib-slider.mjs +4 -4
  397. package/esm2020/slider/public-api.mjs +5 -5
  398. package/esm2020/slider/slider.component.mjs +100 -100
  399. package/esm2020/slider/slider.module.mjs +41 -41
  400. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +75 -75
  401. package/esm2020/smart-filters/common/filter-actions.component.mjs +28 -28
  402. package/esm2020/smart-filters/common/model/base-filter-component.mjs +295 -295
  403. package/esm2020/smart-filters/common/model/creator.mjs +75 -75
  404. package/esm2020/smart-filters/common/model/field.mjs +116 -116
  405. package/esm2020/smart-filters/common/model/filter.mjs +1 -1
  406. package/esm2020/smart-filters/common/model/operator.mjs +270 -270
  407. package/esm2020/smart-filters/common/model/type.mjs +1 -1
  408. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +181 -181
  409. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +199 -199
  410. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +135 -135
  411. package/esm2020/smart-filters/pepperi-addons-ngx-lib-smart-filters.mjs +4 -4
  412. package/esm2020/smart-filters/public-api.mjs +18 -18
  413. package/esm2020/smart-filters/smart-filters.component.mjs +140 -140
  414. package/esm2020/smart-filters/smart-filters.module.mjs +157 -157
  415. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +92 -92
  416. package/esm2020/snack-bar/default-snack-bar.component.mjs +28 -28
  417. package/esm2020/snack-bar/pepperi-addons-ngx-lib-snack-bar.mjs +4 -4
  418. package/esm2020/snack-bar/public-api.mjs +7 -7
  419. package/esm2020/snack-bar/snack-bar.component.mjs +25 -25
  420. package/esm2020/snack-bar/snack-bar.model.mjs +6 -6
  421. package/esm2020/snack-bar/snack-bar.module.mjs +62 -62
  422. package/esm2020/snack-bar/snack-bar.service.mjs +59 -59
  423. package/esm2020/textarea/pepperi-addons-ngx-lib-textarea.mjs +4 -4
  424. package/esm2020/textarea/public-api.mjs +5 -5
  425. package/esm2020/textarea/textarea.component.mjs +187 -187
  426. package/esm2020/textarea/textarea.module.mjs +81 -81
  427. package/esm2020/textbox/pepperi-addons-ngx-lib-textbox.mjs +4 -4
  428. package/esm2020/textbox/public-api.mjs +5 -5
  429. package/esm2020/textbox/textbox-validation.directive.mjs +92 -92
  430. package/esm2020/textbox/textbox.component.mjs +576 -551
  431. package/esm2020/textbox/textbox.module.mjs +71 -71
  432. package/esm2020/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.mjs +4 -4
  433. package/esm2020/textbox-icon/public-api.mjs +5 -5
  434. package/esm2020/textbox-icon/textbox-icon.component.mjs +47 -47
  435. package/esm2020/textbox-icon/textbox-icon.module.mjs +63 -63
  436. package/esm2020/top-bar/pepperi-addons-ngx-lib-top-bar.mjs +4 -4
  437. package/esm2020/top-bar/public-api.mjs +6 -6
  438. package/esm2020/top-bar/top-bar.component.mjs +111 -111
  439. package/esm2020/top-bar/top-bar.model.mjs +1 -1
  440. package/esm2020/top-bar/top-bar.module.mjs +61 -61
  441. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +143 -143
  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 +289 -258
  448. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  449. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +336 -336
  450. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +414 -409
  451. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  452. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +207 -207
  453. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +163 -163
  454. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +76 -76
  455. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +291 -291
  456. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +4129 -4119
  457. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  458. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +109 -109
  459. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +718 -703
  460. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  461. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +340 -340
  462. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +390 -390
  463. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +388 -388
  464. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  465. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +2866 -2859
  466. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  467. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +368 -368
  468. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +59 -59
  469. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +254 -254
  470. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +686 -686
  471. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +1119 -1119
  472. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  473. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +511 -504
  474. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  475. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +303 -303
  476. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  477. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +356 -356
  478. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +206 -206
  479. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +305 -305
  480. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +73 -73
  481. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +158 -158
  482. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +311 -311
  483. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +114 -114
  484. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +130 -130
  485. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +1634 -1634
  486. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  487. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +152 -152
  488. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +238 -238
  489. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  490. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +95 -95
  491. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +703 -678
  492. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  493. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +155 -155
  494. package/fesm2015/pepperi-addons-ngx-lib.mjs +4632 -4616
  495. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  496. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +143 -143
  497. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +253 -253
  498. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +122 -122
  499. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +171 -171
  500. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +776 -776
  501. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +206 -206
  502. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +288 -257
  503. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  504. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +333 -333
  505. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +410 -405
  506. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  507. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +203 -203
  508. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +162 -162
  509. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +76 -76
  510. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +288 -288
  511. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +4128 -4118
  512. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  513. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +109 -109
  514. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +716 -701
  515. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  516. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +338 -338
  517. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +387 -387
  518. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +388 -388
  519. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  520. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +2853 -2846
  521. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  522. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +368 -368
  523. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +59 -59
  524. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +253 -253
  525. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +685 -685
  526. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +1108 -1108
  527. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  528. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +489 -482
  529. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  530. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +303 -303
  531. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  532. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +355 -355
  533. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +205 -205
  534. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +305 -305
  535. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +73 -73
  536. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +158 -158
  537. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +311 -311
  538. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +114 -114
  539. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +129 -129
  540. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +1627 -1627
  541. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  542. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +149 -149
  543. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +237 -237
  544. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  545. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +95 -95
  546. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +703 -678
  547. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  548. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +154 -154
  549. package/fesm2020/pepperi-addons-ngx-lib.mjs +4602 -4586
  550. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  551. package/field-title/field-title.component.d.ts +15 -15
  552. package/field-title/field-title.module.d.ts +15 -15
  553. package/field-title/index.d.ts +5 -5
  554. package/field-title/public-api.d.ts +2 -2
  555. package/files-uploader/files-uploader.component.d.ts +57 -57
  556. package/files-uploader/files-uploader.module.d.ts +21 -21
  557. package/files-uploader/index.d.ts +5 -5
  558. package/files-uploader/public-api.d.ts +2 -2
  559. package/form/field-generator.component.d.ts +37 -37
  560. package/form/form.component.d.ts +93 -93
  561. package/form/form.model.d.ts +20 -20
  562. package/form/form.module.d.ts +50 -50
  563. package/form/index.d.ts +5 -5
  564. package/form/indicators.component.d.ts +10 -10
  565. package/form/internal-button.component.d.ts +42 -42
  566. package/form/internal-carusel.component.d.ts +39 -39
  567. package/form/internal-carusel.service.d.ts +10 -10
  568. package/form/internal-field-generator.component.d.ts +33 -33
  569. package/form/internal-form.component.d.ts +89 -89
  570. package/form/internal-list.component.d.ts +95 -95
  571. package/form/internal-menu.component.d.ts +19 -19
  572. package/form/internal-page.component.d.ts +73 -73
  573. package/form/internal-page.service.d.ts +22 -22
  574. package/form/public-api.d.ts +3 -3
  575. package/group-buttons/group-buttons.component.d.ts +24 -24
  576. package/group-buttons/group-buttons.module.d.ts +18 -18
  577. package/group-buttons/index.d.ts +5 -5
  578. package/group-buttons/public-api.d.ts +2 -2
  579. package/icon/icon-generated-all.model.d.ts +115 -112
  580. package/icon/icon-generated.model.d.ts +458 -446
  581. package/icon/icon-registry.service.d.ts +9 -9
  582. package/icon/icon.component.d.ts +49 -49
  583. package/icon/icon.module.d.ts +7 -7
  584. package/icon/icon.service.d.ts +13 -13
  585. package/icon/index.d.ts +5 -5
  586. package/icon/public-api.d.ts +6 -6
  587. package/image/image.component.d.ts +66 -66
  588. package/image/image.module.d.ts +20 -20
  589. package/image/image.service.d.ts +14 -14
  590. package/image/index.d.ts +5 -5
  591. package/image/public-api.d.ts +3 -3
  592. package/images-filmstrip/images-filmstrip.component.d.ts +87 -87
  593. package/images-filmstrip/images-filmstrip.module.d.ts +22 -22
  594. package/images-filmstrip/index.d.ts +5 -5
  595. package/images-filmstrip/public-api.d.ts +2 -2
  596. package/index.d.ts +5 -5
  597. package/link/index.d.ts +5 -5
  598. package/link/link.component.d.ts +125 -125
  599. package/link/link.module.d.ts +22 -22
  600. package/link/link.pipes.d.ts +7 -7
  601. package/link/public-api.d.ts +3 -2
  602. package/list/index.d.ts +5 -5
  603. package/list/list-actions.component.d.ts +18 -18
  604. package/list/list-carousel.component.d.ts +40 -40
  605. package/list/list-chooser.component.d.ts +29 -29
  606. package/list/list-pager.component.d.ts +39 -39
  607. package/list/list-sorting.component.d.ts +30 -30
  608. package/list/list-total.component.d.ts +11 -11
  609. package/list/list-views.component.d.ts +35 -35
  610. package/list/list.component.d.ts +167 -165
  611. package/list/list.model.d.ts +31 -31
  612. package/list/list.module.d.ts +34 -34
  613. package/list/list.pipes.d.ts +16 -16
  614. package/list/public-api.d.ts +10 -10
  615. package/list/virtual-scroller.d.ts +183 -183
  616. package/menu/index.d.ts +5 -5
  617. package/menu/menu-item.component.d.ts +28 -28
  618. package/menu/menu.component.d.ts +48 -48
  619. package/menu/menu.model.d.ts +25 -25
  620. package/menu/menu.module.d.ts +18 -18
  621. package/menu/public-api.d.ts +3 -3
  622. package/ngx-lib.module.d.ts +24 -24
  623. package/package.json +1 -1
  624. package/page-layout/index.d.ts +5 -5
  625. package/page-layout/page-layout.component.d.ts +19 -19
  626. package/page-layout/page-layout.module.d.ts +10 -10
  627. package/page-layout/public-api.d.ts +2 -2
  628. package/profile-data-views-list/index.d.ts +5 -5
  629. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +18 -18
  630. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +24 -24
  631. package/profile-data-views-list/profile-data-views-list.component.d.ts +35 -35
  632. package/profile-data-views-list/profile-data-views-list.model.d.ts +18 -18
  633. package/profile-data-views-list/profile-data-views-list.module.d.ts +23 -23
  634. package/profile-data-views-list/public-api.d.ts +5 -5
  635. package/public-api.d.ts +2 -2
  636. package/quantity-selector/index.d.ts +5 -5
  637. package/quantity-selector/public-api.d.ts +2 -2
  638. package/quantity-selector/quantity-selector-validation.directive.d.ts +17 -17
  639. package/quantity-selector/quantity-selector.component.d.ts +112 -112
  640. package/quantity-selector/quantity-selector.module.d.ts +23 -23
  641. package/quantity-selector/quantity-selector.pipes.d.ts +7 -7
  642. package/query-builder/common/model/field.d.ts +8 -8
  643. package/query-builder/common/model/filter.d.ts +6 -6
  644. package/query-builder/common/model/legacy.d.ts +29 -29
  645. package/query-builder/common/model/operator-unit.d.ts +13 -13
  646. package/query-builder/common/model/operator.d.ts +21 -21
  647. package/query-builder/common/model/structure.d.ts +4 -4
  648. package/query-builder/common/model/type-map.d.ts +12 -12
  649. package/query-builder/common/model/type.d.ts +4 -4
  650. package/query-builder/common/services/output-query.service.d.ts +47 -47
  651. package/query-builder/common/services/query-structure.service.d.ts +82 -82
  652. package/query-builder/common/services/type-convertor.service.d.ts +13 -13
  653. package/query-builder/index.d.ts +5 -5
  654. package/query-builder/public-api.d.ts +5 -5
  655. package/query-builder/query-builder-item/query-builder-item.component.d.ts +41 -41
  656. package/query-builder/query-builder-section/query-builder-section.component.d.ts +30 -30
  657. package/query-builder/query-builder.component.d.ts +39 -39
  658. package/query-builder/query-builder.module.d.ts +16 -16
  659. package/query-builder/query-builder.service.d.ts +30 -30
  660. package/remote-loader/addon-block-loader.component.d.ts +36 -36
  661. package/remote-loader/addon-block-loader.service.d.ts +15 -15
  662. package/remote-loader/index.d.ts +5 -5
  663. package/remote-loader/public-api.d.ts +7 -7
  664. package/remote-loader/remote-loader-element.component.d.ts +32 -30
  665. package/remote-loader/remote-loader.component.d.ts +25 -25
  666. package/remote-loader/remote-loader.model.d.ts +41 -41
  667. package/remote-loader/remote-loader.module.d.ts +15 -15
  668. package/remote-loader/remote-loader.service.d.ts +15 -15
  669. package/rich-html-textarea/index.d.ts +5 -5
  670. package/rich-html-textarea/public-api.d.ts +2 -2
  671. package/rich-html-textarea/rich-html-textarea.component.d.ts +79 -79
  672. package/rich-html-textarea/rich-html-textarea.module.d.ts +25 -25
  673. package/search/index.d.ts +5 -5
  674. package/search/public-api.d.ts +3 -3
  675. package/search/search.component.d.ts +65 -65
  676. package/search/search.model.d.ts +14 -14
  677. package/search/search.module.d.ts +20 -20
  678. package/select/index.d.ts +5 -5
  679. package/select/public-api.d.ts +2 -2
  680. package/select/select.component.d.ts +59 -59
  681. package/select/select.module.d.ts +20 -20
  682. package/select-panel/index.d.ts +5 -5
  683. package/select-panel/public-api.d.ts +3 -3
  684. package/select-panel/select-panel.component.d.ts +51 -51
  685. package/select-panel/select-panel.model.d.ts +5 -5
  686. package/select-panel/select-panel.module.d.ts +19 -19
  687. package/separator/index.d.ts +5 -5
  688. package/separator/public-api.d.ts +2 -2
  689. package/separator/separator.component.d.ts +22 -22
  690. package/separator/separator.module.d.ts +8 -8
  691. package/side-bar/index.d.ts +5 -5
  692. package/side-bar/public-api.d.ts +3 -3
  693. package/side-bar/side-bar.component.d.ts +42 -42
  694. package/side-bar/side-bar.model.d.ts +4 -4
  695. package/side-bar/side-bar.module.d.ts +16 -16
  696. package/signature/index.d.ts +5 -5
  697. package/signature/public-api.d.ts +2 -2
  698. package/signature/signature.component.d.ts +68 -68
  699. package/signature/signature.module.d.ts +24 -24
  700. package/size-detector/index.d.ts +5 -5
  701. package/size-detector/public-api.d.ts +2 -2
  702. package/size-detector/size-detector.component.d.ts +29 -29
  703. package/size-detector/size-detector.module.d.ts +11 -11
  704. package/slider/index.d.ts +5 -5
  705. package/slider/public-api.d.ts +2 -2
  706. package/slider/slider.component.d.ts +39 -39
  707. package/slider/slider.module.d.ts +12 -12
  708. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +28 -28
  709. package/smart-filters/common/filter-actions.component.d.ts +12 -12
  710. package/smart-filters/common/model/base-filter-component.d.ts +74 -74
  711. package/smart-filters/common/model/creator.d.ts +6 -6
  712. package/smart-filters/common/model/field.d.ts +69 -69
  713. package/smart-filters/common/model/filter.d.ts +11 -11
  714. package/smart-filters/common/model/operator.d.ts +51 -51
  715. package/smart-filters/common/model/type.d.ts +4 -4
  716. package/smart-filters/date-filter/date-filter.component.d.ts +60 -60
  717. package/smart-filters/index.d.ts +5 -5
  718. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +56 -56
  719. package/smart-filters/number-filter/number-filter.component.d.ts +52 -52
  720. package/smart-filters/public-api.d.ts +14 -14
  721. package/smart-filters/smart-filters.component.d.ts +35 -35
  722. package/smart-filters/smart-filters.module.d.ts +37 -37
  723. package/smart-filters/text-filter/text-filter.component.d.ts +28 -28
  724. package/snack-bar/default-snack-bar.component.d.ts +13 -13
  725. package/snack-bar/index.d.ts +5 -5
  726. package/snack-bar/public-api.d.ts +4 -4
  727. package/snack-bar/snack-bar.component.d.ts +12 -12
  728. package/snack-bar/snack-bar.model.d.ts +8 -8
  729. package/snack-bar/snack-bar.module.d.ts +19 -19
  730. package/snack-bar/snack-bar.service.d.ts +24 -24
  731. package/src/core/style/base/typography.scss +1 -1
  732. package/src/core/style/components/textarea.scss +4 -2
  733. package/textarea/index.d.ts +5 -5
  734. package/textarea/public-api.d.ts +2 -2
  735. package/textarea/textarea.component.d.ts +56 -56
  736. package/textarea/textarea.module.d.ts +23 -23
  737. package/textbox/index.d.ts +5 -5
  738. package/textbox/public-api.d.ts +2 -2
  739. package/textbox/textbox-validation.directive.d.ts +22 -22
  740. package/textbox/textbox.component.d.ts +157 -154
  741. package/textbox/textbox.module.d.ts +22 -22
  742. package/textbox-icon/index.d.ts +5 -5
  743. package/textbox-icon/public-api.d.ts +2 -2
  744. package/textbox-icon/textbox-icon.component.d.ts +13 -13
  745. package/textbox-icon/textbox-icon.module.d.ts +16 -16
  746. package/theming-offline.scss +79 -0
  747. package/theming.scss +4 -31
  748. package/top-bar/index.d.ts +5 -5
  749. package/top-bar/public-api.d.ts +3 -3
  750. package/top-bar/top-bar.component.d.ts +39 -39
  751. package/top-bar/top-bar.model.d.ts +4 -4
  752. 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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SSx5QkFBeUIsSUFBSSxjQUFjLElBQUksQ0FBQyxFQUFFO1lBQ2pFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCxvQ0FBb0M7UUFDcEMsSUFDSSxJQUFJLENBQUMsaUNBQWlDLENBQ2xDLFdBQVcsRUFDWCxHQUFHLEVBQ0gsZ0JBQWdCLENBQ25CLEVBQ0g7WUFDRSxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsK0JBQStCO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzs7Z0hBOVNRLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBV2dCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgVmFsaWRhdG9yRm4sXG4gICAgRm9ybUNvbnRyb2wsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBWYWxpZGF0b3JTZXJ2aWNlIHtcbiAgICAvLyAgUmVndWxhciBleHByZXNzaW9uc1xuICAgIHJlYWRvbmx5IGludGVnZXJVbnNpZ25lZCA9ICdeWzAtOV0qJCc7XG4gICAgcmVhZG9ubHkgaW50ZWdlclNpZ25lZCA9ICdeLT9bMC05XSskJztcbiAgICBkZWNpbWFsVW5zaWduZWQgPSAnXlswLTldKyguWzAtOV0rKT8kJztcbiAgICBkZWNpbWFsU2lnbmVkID0gJ14tP1swLTldKyguWzAtOV0rKT8kJztcbiAgICByZWFkb25seSBwaG9uZSA9ICdeWytdKlsoXXswLDF9WzAtOV17MSw0fVspXXswLDF9Wy1zLi8wLTldKiQnO1xuXG4gICAgZGVjaW1hbFNlcGFyYXRvciA9ICcuJztcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlID0gbnVsbCkge1xuICAgICAgICBjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMudHJhbnNsYXRlPy5jdXJyZW50TGFuZyB8fCBuYXZpZ2F0b3IubGFuZ3VhZ2U7XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIG51bWJlciB3aXRoIHRob3VzYW5kcyBzZXBhcmF0b3IgYW5kIGlmID09PSAnLCcgdGhlbiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJy4nIGVsc2UgJywnXG4gICAgICAgIGNvbnN0IHRtcCA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChjdXJyZW50TGFuZywge1xuICAgICAgICAgICAgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzOiAyLFxuICAgICAgICB9KS5mb3JtYXQoMTAwMCk7XG4gICAgICAgIHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9IHRtcC5pbmRleE9mKCcsJykgPT09IDEgPyAnLicgOiAnLCc7XG5cbiAgICAgICAgdGhpcy5kZWNpbWFsVW5zaWduZWQgPSBgXlswLTldKygke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn1bMC05XSspPyRgO1xuICAgICAgICB0aGlzLmRlY2ltYWxTaWduZWQgPSBgXi0/WzAtOV0rKCR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfVswLTldKyk/JGA7XG4gICAgfVxuXG4gICAgLypcbiAgICAgICAgVmFsaWRhdG9yRm4gZnVuY3Rpb25zXG4gICAgKi9cbiAgICBpc0VxdWFsKHRhcmdldDogRm9ybUNvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlICE9PSBjb250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8geyBlcXVhbDogeyB2YWx1ZTogdHJ1ZSB9IH1cbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpc0dyZWF0ZXJUaGFuKHRhcmdldDogRm9ybUNvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlID4gY29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHsgZ3JlYXRlcjogeyB2YWx1ZTogdHJ1ZSB9IH1cbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sLnZhbHVlICYmIHR5cGVvZiB0YXJnZXQudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbFZhbHVlTnVtZXIgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eShjb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRWYWx1ZU51bWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkodGFyZ2V0LnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRWYWx1ZU51bWVyID4gY29udHJvbFZhbHVlTnVtZXJcbiAgICAgICAgICAgICAgICAgICAgPyB7IGdyZWF0ZXI6IHsgdmFsdWU6IHRydWUgfSB9XG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaXNMZXNzVGhhbih0YXJnZXQ6IEZvcm1Db250cm9sIHwgQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLnZhbHVlICYmIHR5cGVvZiB0YXJnZXQudmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldC52YWx1ZSA8IGNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgPyB7IGxlc3M6IHsgdmFsdWU6IHRydWUgfSB9XG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbC52YWx1ZSAmJiB0eXBlb2YgdGFyZ2V0LnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZU51bWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkoY29udHJvbC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0VmFsdWVOdW1lciA9IGNvZXJjZU51bWJlclByb3BlcnR5KHRhcmdldC52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0VmFsdWVOdW1lciA8IGNvbnRyb2xWYWx1ZU51bWVyXG4gICAgICAgICAgICAgICAgICAgID8geyBsZXNzOiB7IHZhbHVlOiB0cnVlIH0gfVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNoZWNrRW1haWxzKHNlcGFyYXRvcj86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVtYWlscyA9IGNvbnRyb2wudmFsdWUuc3BsaXQoc2VwYXJhdG9yID8gc2VwYXJhdG9yIDogJywnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjdHJsID0gbmV3IEZvcm1Db250cm9sKCcnLCBbXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMuZW1haWwsXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZW1haWxzLmV2ZXJ5KCh2YWw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjdHJsLnNldFZhbHVlKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdHJsLnZhbGlkO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICFyZXN1bHQgPyB7IGVtYWlsczogeyB2YWx1ZTogdHJ1ZSB9IH0gOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB6aXBDb2RlVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybigvXihcXGR7NX0oLVxcZHs0fSk/fFtBLVpdXFxkW0EtWl0gKlxcZFtBLVpdXFxkKSQvKTtcbiAgICB9XG5cbiAgICBhbGxvd2FibGVDaGFyYWN0ZXJzVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybihcbiAgICAgICAgICAgIC9eW2EtekEtWjAtOWB+IUAjJCVeJiooKV8rfXt8XCI6Pz48LC4vOydcXFxcXFxdXFxbPVxcLSBdKyQvXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWxsb3dhYmxlQ2hhcmFjdGVyc1dpdGhvdXROdW1iZXJWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFxuICAgICAgICAgICAgL15bYS16QS1aYH4hQCMkJV4mKigpXyt9e3xcIjo/PjwsLi87J1xcXFxcXF1cXFs9XFwtIF0rJC9cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhbGxvd2FibGVDaGFyYWN0ZXJzV2l0aG91dFNwZWNpYWxWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKC9eW2EtekEtWjAtOSBdKyQvKTtcbiAgICB9XG5cbiAgICBkYXRlVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybihcbiAgICAgICAgICAgIC9eKD86KDBbMS05XXwxWzAxMl0pW1xcLy5dKDBbMS05XXxbMTJdWzAtOV18M1swMV0pW1xcLy5dKDE5fDIwKVswLTldezJ9KSQvXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbnVtYmVyVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTldKiQvKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAgICBSZWdFeHAgZnVuY3Rpb25zXG4gICAgKi9cbiAgICB2YWxpZGF0ZU51bWJlcih2YWx1ZTogc3RyaW5nLCBhbGxvd0RlY2ltYWw6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICAvLyBjaG9vc2UgdGhlIGFwcHJvcGlhdGUgcmVndWxhciBleHByZXNzaW9uXG4gICAgICAgIGxldCByZWdleDogc3RyaW5nO1xuXG4gICAgICAgIGlmIChhbGxvd0RlY2ltYWwpIHtcbiAgICAgICAgICAgIHJlZ2V4ID0gdGhpcy5kZWNpbWFsU2lnbmVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVnZXggPSB0aGlzLmludGVnZXJTaWduZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3aGVuIGEgbnVtYmVycyBiZWdpbnMgd2l0aCBhIGRlY2ltYWwgc2VwYXJhdG9yLFxuICAgICAgICAvLyBmaXggaXQgYWRkaW5nIGEgemVybyBpbiB0aGUgYmVnaW5uaW5nXG4gICAgICAgIGNvbnN0IGZpcnN0Q2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KDApO1xuICAgICAgICBpZiAoZmlyc3RDaGFyYWN0ZXIgPT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB2YWx1ZSA9IDAgKyB2YWx1ZTtcblxuICAgICAgICAvLyB3aGVuIGEgbnVtYmVycyBlbmRzIHdpdGggYSBkZWNpbWFsIHNlcGFyYXRvcixcbiAgICAgICAgLy8gZml4IGl0IGFkZGluZyBhIHplcm8gaW4gdGhlIGVuZFxuICAgICAgICBjb25zdCBsYXN0Q2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KHZhbHVlLmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAobGFzdENoYXJhY3RlciA9PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHZhbHVlID0gdmFsdWUgKyAwO1xuXG4gICAgICAgIC8vIHRlc3QgbnVtYmVyIHdpdGggcmVndWxhciBleHByZXNzaW9uLCB3aGVuXG4gICAgICAgIC8vIG51bWJlciBpcyBpbnZhbGlkLCByZXBsYWNlIGl0IHdpdGggYSB6ZXJvXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZWdleCBpcyAke3JlZ2V4fSBhbmQgdmFsdWUgaXMgJHt2YWx1ZX1gKTtcbiAgICAgICAgY29uc3QgdmFsaWQ6IGJvb2xlYW4gPSBuZXcgUmVnRXhwKHJlZ2V4KS50ZXN0KHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gdmFsaWQgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuXG4gICAgdmFsaWRhdGVQaG9uZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIHRlc3QgcGhvbmUgd2l0aCByZWd1bGFyIGV4cHJlc3Npb25cbiAgICAgICAgY29uc3QgdmFsaWQ6IGJvb2xlYW4gPSBuZXcgUmVnRXhwKHRoaXMucGhvbmUpLnRlc3QodmFsdWUpO1xuICAgICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROYW1lKGUpOiBzdHJpbmcge1xuICAgICAgICBpZiAoZS5rZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBlLmtleTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGZvciBvbGQgYnJvd3NlcnNcbiAgICAgICAgICAgIGlmIChlLmtleUNvZGUgJiYgU3RyaW5nLmZyb21DaGFyQ29kZSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZS5rZXlDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnQmFja3NwYWNlJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA5OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdUYWInO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdFc2NhcGUnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM3OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdBcnJvd0xlZnQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdBcnJvd1JpZ2h0JztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxODg6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJywnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE5MDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnLic7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTA5OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICctJzsgLy8gbWludXMgaW4gbnVtYnBhZFxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE3MzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnLSc7IC8vIG1pbnVzIGluIGFscGhhYmV0IGtleWJvYXJkIGluIGZpcmVmb3hcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxODk6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJy0nOyAvLyBtaW51cyBpbiBhbHBoYWJldCBrZXlib2FyZCBpbiBjaHJvbWVcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGUua2V5Q29kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhbGxvd0tleWJvYXJkTm9uTnVtZXJpY0NoYXJhY3RlcnMoXG4gICAgICAgIGFsbG93ZWRLZXlzOiBBcnJheTxzdHJpbmc+LFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgY29udHJvbE9yQ29tbWFuZDogYm9vbGVhblxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkZWZhdWx0QWxsb3dlZEtleXMgPSBbXG4gICAgICAgICAgICAnQmFja3NwYWNlJyxcbiAgICAgICAgICAgICdBcnJvd0xlZnQnLFxuICAgICAgICAgICAgJ0Fycm93UmlnaHQnLFxuICAgICAgICAgICAgJ0VzY2FwZScsXG4gICAgICAgICAgICAnVGFiJyxcbiAgICAgICAgICAgICdIb21lJyxcbiAgICAgICAgICAgICdFbmQnLFxuICAgICAgICAgICAgJ0RlbGV0ZScsXG4gICAgICAgIF07XG5cbiAgICAgICAgLy8gYWxsb3cgc29tZSBub24tbnVtZXJpYyBjaGFyYWN0ZXJzXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRlZmF1bHRBbGxvd2VkS2V5cy5pbmRleE9mKGtleSkgIT0gLTEgfHxcbiAgICAgICAgICAgIGFsbG93ZWRLZXlzLmluZGV4T2Yoa2V5KSAhPSAtMSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrQSBhbmQgQ29tbWFuZCtBXG4gICAgICAgICAgICAoa2V5ID09ICdhJyAmJiBjb250cm9sT3JDb21tYW5kKSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrQyBhbmQgQ29tbWFuZCtDXG4gICAgICAgICAgICAoa2V5ID09ICdjJyAmJiBjb250cm9sT3JDb21tYW5kKSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrViBhbmQgQ29tbWFuZCtWXG4gICAgICAgICAgICAoa2V5ID09ICd2JyAmJiBjb250cm9sT3JDb21tYW5kKSB8fFxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrWCBhbmQgQ29tbWFuZCtYXG4gICAgICAgICAgICAoa2V5ID09ICd4JyAmJiBjb250cm9sT3JDb21tYW5kKSB8fFxuICAgICAgICAgICAga2V5LnN0YXJ0c1dpdGgoJ0YnKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIGxldCBpdCBoYXBwZW4sIGRvbid0IGRvIGFueXRoaW5nXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzUGhvbmUoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IHRoaXMuZ2V0TmFtZShlKTtcbiAgICAgICAgY29uc3QgY29udHJvbE9yQ29tbWFuZCA9IGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWU7XG5cbiAgICAgICAgLy8gYWxsb3dlZCBrZXlzIGFwYXJ0IGZyb20gbnVtZXJpYyBjaGFyYWN0ZXJzXG4gICAgICAgIGNvbnN0IGFsbG93ZWRLZXlzID0gWycuJywgJy0nLCAnKycsICcoJywgJyknLCAnKicsICcjJ107XG5cbiAgICAgICAgLy8gYWxsb3cgc29tZSBub24tbnVtZXJpYyBjaGFyYWN0ZXJzXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuYWxsb3dLZXlib2FyZE5vbk51bWVyaWNDaGFyYWN0ZXJzKFxuICAgICAgICAgICAgICAgIGFsbG93ZWRLZXlzLFxuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBjb250cm9sT3JDb21tYW5kXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhbGxvdyBwaG9uZSBjaGFyYWN0ZXJzIG9ubHlcbiAgICAgICAgY29uc3QgaXNQaG9uZSA9IG5ldyBSZWdFeHAodGhpcy5waG9uZSkudGVzdChrZXkpO1xuICAgICAgICByZXR1cm4gaXNQaG9uZTtcbiAgICB9XG5cbiAgICBpc051bWJlcihlOiBLZXlib2FyZEV2ZW50LCBhbGxvd0RlY2ltYWw6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3Vyc29yUG9zaXRpb246IG51bWJlciA9IGUudGFyZ2V0WydzZWxlY3Rpb25TdGFydCddO1xuICAgICAgICBjb25zdCBvcmlnaW5hbFZhbHVlOiBzdHJpbmcgPSBlLnRhcmdldFsndmFsdWUnXTtcbiAgICAgICAgY29uc3Qga2V5OiBzdHJpbmcgPSB0aGlzLmdldE5hbWUoZSk7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xPckNvbW1hbmQgPSBlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlO1xuICAgICAgICBjb25zdCBzaWduRXhpc3RzID0gb3JpZ2luYWxWYWx1ZS5pbmNsdWRlcygnLScpO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3JFeGlzdHMgPSBvcmlnaW5hbFZhbHVlLmluY2x1ZGVzKHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XG5cbiAgICAgICAgLy8gYWxsb3dlZCBrZXlzIGFwYXJ0IGZyb20gbnVtZXJpYyBjaGFyYWN0ZXJzXG4gICAgICAgIGNvbnN0IGFsbG93ZWRLZXlzID0gW107XG5cbiAgICAgICAgLy8gd2hlbiBkZWNpbWFscyBhcmUgYWxsb3dlZCwgYWRkXG4gICAgICAgIC8vIGRlY2ltYWwgc2VwYXJhdG9yIHRvIGFsbG93ZWQgY29kZXMgd2hlblxuICAgICAgICAvLyBpdHMgcG9zaXRpb24gaXMgbm90IGNsb3NlIHRvIHRoZSB0aGUgc2lnbiAoLS4gYW5kIC4tKVxuICAgICAgICBjb25zdCBzZXBhcmF0b3JJc0Nsb3NlVG9TaWduID0gc2lnbkV4aXN0cyAmJiBjdXJzb3JQb3NpdGlvbiA8PSAxO1xuICAgICAgICBpZiAoYWxsb3dEZWNpbWFsICYmICFzZXBhcmF0b3JJc0Nsb3NlVG9TaWduICYmICFzZXBhcmF0b3JFeGlzdHMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPT0gJy4nKSBhbGxvd2VkS2V5cy5wdXNoKCcuJyk7XG4gICAgICAgICAgICBlbHNlIGFsbG93ZWRLZXlzLnB1c2goJywnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdoZW4gbWludXMgc2lnbiBpcyBhbGxvd2VkLCBhZGQgaXRzXG4gICAgICAgIC8vIGtleSB0byBhbGxvd2VkIGtleSBvbmx5IHdoZW4gdGhlXG4gICAgICAgIC8vIGN1cnNvciBpcyBpbiB0aGUgZmlyc3QgcG9zaXRpb24sIGFuZFxuICAgICAgICAvLyBmaXJzdCBjaGFyYWN0ZXIgaXMgZGlmZmVyZW50IGZyb21cbiAgICAgICAgLy8gZGVjaW1hbCBzZXBhcmF0b3JcbiAgICAgICAgY29uc3QgZmlyc3RDaGFyYWN0ZXJJc1NlcGFyYXRvciA9XG4gICAgICAgICAgICBvcmlnaW5hbFZhbHVlLmNoYXJBdCgwKSAhPSB0aGlzLmRlY2ltYWxTZXBhcmF0b3I7XG4gICAgICAgIGlmICghc2lnbkV4aXN0cyAmJiBmaXJzdENoYXJhY3RlcklzU2VwYXJhdG9yICYmIGN1cnNvclBvc2l0aW9uID09IDApIHtcbiAgICAgICAgICAgIGFsbG93ZWRLZXlzLnB1c2goJy0nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsbG93IHNvbWUgbm9uLW51bWVyaWMgY2hhcmFjdGVyc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmFsbG93S2V5Ym9hcmROb25OdW1lcmljQ2hhcmFjdGVycyhcbiAgICAgICAgICAgICAgICBhbGxvd2VkS2V5cyxcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgY29udHJvbE9yQ29tbWFuZFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWxsb3cgbnVtYmVyIGNoYXJhY3RlcnMgb25seVxuICAgICAgICBjb25zdCBpc051bWJlciA9IG5ldyBSZWdFeHAodGhpcy5pbnRlZ2VyVW5zaWduZWQpLnRlc3Qoa2V5KTtcbiAgICAgICAgcmV0dXJuIGlzTnVtYmVyO1xuICAgIH1cbn1cbiJdfQ==