primeng 11.3.1 → 11.4.2

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 (375) hide show
  1. package/README.md +3 -2
  2. package/api/primeng-api.metadata.json +1 -1
  3. package/api/translation.d.ts +2 -0
  4. package/api/translationkeys.d.ts +2 -0
  5. package/autocomplete/autocomplete.d.ts +15 -2
  6. package/autocomplete/primeng-autocomplete.metadata.json +1 -1
  7. package/bundles/primeng-api.umd.js +19 -12
  8. package/bundles/primeng-api.umd.js.map +1 -1
  9. package/bundles/primeng-api.umd.min.js +1 -1
  10. package/bundles/primeng-api.umd.min.js.map +1 -1
  11. package/bundles/primeng-autocomplete.umd.js +65 -30
  12. package/bundles/primeng-autocomplete.umd.js.map +1 -1
  13. package/bundles/primeng-autocomplete.umd.min.js +2 -2
  14. package/bundles/primeng-autocomplete.umd.min.js.map +1 -1
  15. package/bundles/primeng-button.umd.js +71 -15
  16. package/bundles/primeng-button.umd.js.map +1 -1
  17. package/bundles/primeng-button.umd.min.js +1 -1
  18. package/bundles/primeng-button.umd.min.js.map +1 -1
  19. package/bundles/primeng-calendar.umd.js +25 -14
  20. package/bundles/primeng-calendar.umd.js.map +1 -1
  21. package/bundles/primeng-calendar.umd.min.js +2 -2
  22. package/bundles/primeng-calendar.umd.min.js.map +1 -1
  23. package/bundles/primeng-carousel.umd.js +24 -13
  24. package/bundles/primeng-carousel.umd.js.map +1 -1
  25. package/bundles/primeng-carousel.umd.min.js +1 -1
  26. package/bundles/primeng-carousel.umd.min.js.map +1 -1
  27. package/bundles/primeng-cascadeselect.umd.js +14 -12
  28. package/bundles/primeng-cascadeselect.umd.js.map +1 -1
  29. package/bundles/primeng-cascadeselect.umd.min.js +1 -1
  30. package/bundles/primeng-cascadeselect.umd.min.js.map +1 -1
  31. package/bundles/primeng-checkbox.umd.js +14 -11
  32. package/bundles/primeng-checkbox.umd.js.map +1 -1
  33. package/bundles/primeng-checkbox.umd.min.js.map +1 -1
  34. package/bundles/primeng-chips.umd.js +14 -11
  35. package/bundles/primeng-chips.umd.js.map +1 -1
  36. package/bundles/primeng-chips.umd.min.js.map +1 -1
  37. package/bundles/primeng-confirmdialog.umd.js +19 -7
  38. package/bundles/primeng-confirmdialog.umd.js.map +1 -1
  39. package/bundles/primeng-confirmdialog.umd.min.js +1 -1
  40. package/bundles/primeng-confirmdialog.umd.min.js.map +1 -1
  41. package/bundles/primeng-contextmenu.umd.js +15 -12
  42. package/bundles/primeng-contextmenu.umd.js.map +1 -1
  43. package/bundles/primeng-contextmenu.umd.min.js +1 -1
  44. package/bundles/primeng-contextmenu.umd.min.js.map +1 -1
  45. package/bundles/primeng-dataview.umd.js +25 -4
  46. package/bundles/primeng-dataview.umd.js.map +1 -1
  47. package/bundles/primeng-dataview.umd.min.js +1 -1
  48. package/bundles/primeng-dataview.umd.min.js.map +1 -1
  49. package/bundles/primeng-dom.umd.js +14 -11
  50. package/bundles/primeng-dom.umd.js.map +1 -1
  51. package/bundles/primeng-dom.umd.min.js.map +1 -1
  52. package/bundles/primeng-dropdown.umd.js +78 -46
  53. package/bundles/primeng-dropdown.umd.js.map +1 -1
  54. package/bundles/primeng-dropdown.umd.min.js +1 -1
  55. package/bundles/primeng-dropdown.umd.min.js.map +1 -1
  56. package/bundles/primeng-editor.umd.js +1 -1
  57. package/bundles/primeng-editor.umd.js.map +1 -1
  58. package/bundles/primeng-editor.umd.min.js +1 -1
  59. package/bundles/primeng-editor.umd.min.js.map +1 -1
  60. package/bundles/primeng-fileupload.umd.js +23 -11
  61. package/bundles/primeng-fileupload.umd.js.map +1 -1
  62. package/bundles/primeng-fileupload.umd.min.js +1 -1
  63. package/bundles/primeng-fileupload.umd.min.js.map +1 -1
  64. package/bundles/primeng-galleria.umd.js +17 -12
  65. package/bundles/primeng-galleria.umd.js.map +1 -1
  66. package/bundles/primeng-galleria.umd.min.js +1 -1
  67. package/bundles/primeng-galleria.umd.min.js.map +1 -1
  68. package/bundles/primeng-gmap.umd.js +14 -11
  69. package/bundles/primeng-gmap.umd.js.map +1 -1
  70. package/bundles/primeng-gmap.umd.min.js.map +1 -1
  71. package/bundles/primeng-inputnumber.umd.js +15 -12
  72. package/bundles/primeng-inputnumber.umd.js.map +1 -1
  73. package/bundles/primeng-inputnumber.umd.min.js +1 -1
  74. package/bundles/primeng-inputnumber.umd.min.js.map +1 -1
  75. package/bundles/primeng-keyfilter.umd.js +14 -11
  76. package/bundles/primeng-keyfilter.umd.js.map +1 -1
  77. package/bundles/primeng-keyfilter.umd.min.js.map +1 -1
  78. package/bundles/primeng-listbox.umd.js +69 -28
  79. package/bundles/primeng-listbox.umd.js.map +1 -1
  80. package/bundles/primeng-listbox.umd.min.js +1 -1
  81. package/bundles/primeng-listbox.umd.min.js.map +1 -1
  82. package/bundles/primeng-menu.umd.js +14 -11
  83. package/bundles/primeng-menu.umd.js.map +1 -1
  84. package/bundles/primeng-menu.umd.min.js.map +1 -1
  85. package/bundles/primeng-menubar.umd.js +1 -1
  86. package/bundles/primeng-menubar.umd.js.map +1 -1
  87. package/bundles/primeng-menubar.umd.min.js +1 -1
  88. package/bundles/primeng-menubar.umd.min.js.map +1 -1
  89. package/bundles/primeng-messages.umd.js +14 -11
  90. package/bundles/primeng-messages.umd.js.map +1 -1
  91. package/bundles/primeng-messages.umd.min.js.map +1 -1
  92. package/bundles/primeng-multiselect.umd.js +62 -32
  93. package/bundles/primeng-multiselect.umd.js.map +1 -1
  94. package/bundles/primeng-multiselect.umd.min.js +1 -1
  95. package/bundles/primeng-multiselect.umd.min.js.map +1 -1
  96. package/bundles/primeng-orderlist.umd.js +49 -16
  97. package/bundles/primeng-orderlist.umd.js.map +1 -1
  98. package/bundles/primeng-orderlist.umd.min.js +2 -2
  99. package/bundles/primeng-orderlist.umd.min.js.map +1 -1
  100. package/bundles/primeng-organizationchart.umd.js +14 -11
  101. package/bundles/primeng-organizationchart.umd.js.map +1 -1
  102. package/bundles/primeng-organizationchart.umd.min.js.map +1 -1
  103. package/bundles/primeng-paginator.umd.js +14 -11
  104. package/bundles/primeng-paginator.umd.js.map +1 -1
  105. package/bundles/primeng-paginator.umd.min.js.map +1 -1
  106. package/bundles/primeng-panelmenu.umd.js +14 -11
  107. package/bundles/primeng-panelmenu.umd.js.map +1 -1
  108. package/bundles/primeng-panelmenu.umd.min.js.map +1 -1
  109. package/bundles/primeng-password.umd.js +48 -38
  110. package/bundles/primeng-password.umd.js.map +1 -1
  111. package/bundles/primeng-password.umd.min.js +1 -1
  112. package/bundles/primeng-password.umd.min.js.map +1 -1
  113. package/bundles/primeng-picklist.umd.js +109 -48
  114. package/bundles/primeng-picklist.umd.js.map +1 -1
  115. package/bundles/primeng-picklist.umd.min.js +1 -1
  116. package/bundles/primeng-picklist.umd.min.js.map +1 -1
  117. package/bundles/primeng-radiobutton.umd.js +5 -11
  118. package/bundles/primeng-radiobutton.umd.js.map +1 -1
  119. package/bundles/primeng-radiobutton.umd.min.js +1 -1
  120. package/bundles/primeng-radiobutton.umd.min.js.map +1 -1
  121. package/bundles/primeng-scrollpanel.umd.js +1 -0
  122. package/bundles/primeng-scrollpanel.umd.js.map +1 -1
  123. package/bundles/primeng-scrollpanel.umd.min.js +1 -1
  124. package/bundles/primeng-scrollpanel.umd.min.js.map +1 -1
  125. package/bundles/primeng-selectbutton.umd.js +16 -13
  126. package/bundles/primeng-selectbutton.umd.js.map +1 -1
  127. package/bundles/primeng-selectbutton.umd.min.js +1 -1
  128. package/bundles/primeng-selectbutton.umd.min.js.map +1 -1
  129. package/bundles/primeng-sidebar.umd.js +77 -46
  130. package/bundles/primeng-sidebar.umd.js.map +1 -1
  131. package/bundles/primeng-sidebar.umd.min.js +1 -1
  132. package/bundles/primeng-sidebar.umd.min.js.map +1 -1
  133. package/bundles/primeng-skeleton.umd.js +1 -1
  134. package/bundles/primeng-skeleton.umd.js.map +1 -1
  135. package/bundles/primeng-skeleton.umd.min.js +1 -1
  136. package/bundles/primeng-skeleton.umd.min.js.map +1 -1
  137. package/bundles/primeng-splitter.umd.js +53 -22
  138. package/bundles/primeng-splitter.umd.js.map +1 -1
  139. package/bundles/primeng-splitter.umd.min.js +1 -1
  140. package/bundles/primeng-splitter.umd.min.js.map +1 -1
  141. package/bundles/primeng-table.umd.js +30 -17
  142. package/bundles/primeng-table.umd.js.map +1 -1
  143. package/bundles/primeng-table.umd.min.js +2 -2
  144. package/bundles/primeng-table.umd.min.js.map +1 -1
  145. package/bundles/primeng-tabmenu.umd.js +1 -1
  146. package/bundles/primeng-tabmenu.umd.js.map +1 -1
  147. package/bundles/primeng-tabmenu.umd.min.js +1 -1
  148. package/bundles/primeng-tabmenu.umd.min.js.map +1 -1
  149. package/bundles/primeng-tabview.umd.js +1 -0
  150. package/bundles/primeng-tabview.umd.js.map +1 -1
  151. package/bundles/primeng-tabview.umd.min.js +1 -1
  152. package/bundles/primeng-tabview.umd.min.js.map +1 -1
  153. package/bundles/primeng-tieredmenu.umd.js +1 -1
  154. package/bundles/primeng-tieredmenu.umd.js.map +1 -1
  155. package/bundles/primeng-tieredmenu.umd.min.js +1 -1
  156. package/bundles/primeng-tieredmenu.umd.min.js.map +1 -1
  157. package/bundles/primeng-timeline.umd.js +1 -1
  158. package/bundles/primeng-timeline.umd.js.map +1 -1
  159. package/bundles/primeng-timeline.umd.min.js +1 -1
  160. package/bundles/primeng-timeline.umd.min.js.map +1 -1
  161. package/bundles/primeng-toast.umd.js +14 -11
  162. package/bundles/primeng-toast.umd.js.map +1 -1
  163. package/bundles/primeng-toast.umd.min.js.map +1 -1
  164. package/bundles/primeng-togglebutton.umd.js +1 -1
  165. package/bundles/primeng-togglebutton.umd.min.js +1 -1
  166. package/bundles/primeng-togglebutton.umd.min.js.map +1 -1
  167. package/bundles/primeng-tree.umd.js +85 -30
  168. package/bundles/primeng-tree.umd.js.map +1 -1
  169. package/bundles/primeng-tree.umd.min.js +1 -1
  170. package/bundles/primeng-tree.umd.min.js.map +1 -1
  171. package/bundles/primeng-treetable.umd.js +18 -11
  172. package/bundles/primeng-treetable.umd.js.map +1 -1
  173. package/bundles/primeng-treetable.umd.min.js +1 -1
  174. package/bundles/primeng-treetable.umd.min.js.map +1 -1
  175. package/bundles/primeng-tristatecheckbox.umd.js +5 -1
  176. package/bundles/primeng-tristatecheckbox.umd.js.map +1 -1
  177. package/bundles/primeng-tristatecheckbox.umd.min.js +1 -1
  178. package/bundles/primeng-tristatecheckbox.umd.min.js.map +1 -1
  179. package/button/button.d.ts +10 -0
  180. package/button/primeng-button.metadata.json +1 -1
  181. package/calendar/calendar.d.ts +3 -1
  182. package/calendar/primeng-calendar.metadata.json +1 -1
  183. package/carousel/carousel.d.ts +7 -2
  184. package/carousel/primeng-carousel.metadata.json +1 -1
  185. package/cascadeselect/primeng-cascadeselect.metadata.json +1 -1
  186. package/confirmdialog/confirmdialog.d.ts +2 -0
  187. package/confirmdialog/primeng-confirmdialog.metadata.json +1 -1
  188. package/contextmenu/primeng-contextmenu.metadata.json +1 -1
  189. package/dataview/dataview.d.ts +10 -4
  190. package/dataview/primeng-dataview.metadata.json +1 -1
  191. package/dropdown/dropdown.d.ts +15 -7
  192. package/dropdown/primeng-dropdown.metadata.json +1 -1
  193. package/esm2015/api/primengconfig.js +4 -2
  194. package/esm2015/api/translation.js +1 -1
  195. package/esm2015/api/translationkeys.js +3 -1
  196. package/esm2015/autocomplete/autocomplete.js +70 -22
  197. package/esm2015/button/button.js +75 -20
  198. package/esm2015/calendar/calendar.js +18 -11
  199. package/esm2015/carousel/carousel.js +14 -6
  200. package/esm2015/cascadeselect/cascadeselect.js +1 -2
  201. package/esm2015/confirmdialog/confirmdialog.js +22 -7
  202. package/esm2015/contextmenu/contextmenu.js +5 -6
  203. package/esm2015/dataview/dataview.js +27 -6
  204. package/esm2015/dropdown/dropdown.js +69 -34
  205. package/esm2015/editor/editor.js +2 -2
  206. package/esm2015/fileupload/fileupload.js +9 -1
  207. package/esm2015/galleria/galleria.js +4 -2
  208. package/esm2015/inputnumber/inputnumber.js +2 -2
  209. package/esm2015/listbox/listbox.js +55 -14
  210. package/esm2015/menubar/menubar.js +4 -5
  211. package/esm2015/multiselect/multiselect.js +51 -21
  212. package/esm2015/orderlist/orderlist.js +48 -9
  213. package/esm2015/password/password.js +50 -40
  214. package/esm2015/picklist/picklist.js +140 -70
  215. package/esm2015/radiobutton/radiobutton.js +6 -12
  216. package/esm2015/scrollpanel/scrollpanel.js +2 -1
  217. package/esm2015/selectbutton/selectbutton.js +3 -3
  218. package/esm2015/sidebar/sidebar.js +77 -53
  219. package/esm2015/skeleton/skeleton.js +2 -2
  220. package/esm2015/splitter/splitter.js +40 -13
  221. package/esm2015/table/table.js +18 -8
  222. package/esm2015/tabmenu/tabmenu.js +2 -2
  223. package/esm2015/tabview/tabview.js +2 -1
  224. package/esm2015/tieredmenu/tieredmenu.js +4 -4
  225. package/esm2015/timeline/timeline.js +3 -3
  226. package/esm2015/togglebutton/togglebutton.js +1 -1
  227. package/esm2015/tree/tree.js +82 -20
  228. package/esm2015/treetable/treetable.js +5 -1
  229. package/esm2015/tristatecheckbox/tristatecheckbox.js +6 -2
  230. package/fesm2015/primeng-api.js +5 -1
  231. package/fesm2015/primeng-api.js.map +1 -1
  232. package/fesm2015/primeng-autocomplete.js +69 -21
  233. package/fesm2015/primeng-autocomplete.js.map +1 -1
  234. package/fesm2015/primeng-button.js +74 -19
  235. package/fesm2015/primeng-button.js.map +1 -1
  236. package/fesm2015/primeng-calendar.js +17 -10
  237. package/fesm2015/primeng-calendar.js.map +1 -1
  238. package/fesm2015/primeng-carousel.js +13 -5
  239. package/fesm2015/primeng-carousel.js.map +1 -1
  240. package/fesm2015/primeng-cascadeselect.js +0 -1
  241. package/fesm2015/primeng-cascadeselect.js.map +1 -1
  242. package/fesm2015/primeng-confirmdialog.js +21 -6
  243. package/fesm2015/primeng-confirmdialog.js.map +1 -1
  244. package/fesm2015/primeng-contextmenu.js +4 -5
  245. package/fesm2015/primeng-contextmenu.js.map +1 -1
  246. package/fesm2015/primeng-dataview.js +26 -5
  247. package/fesm2015/primeng-dataview.js.map +1 -1
  248. package/fesm2015/primeng-dropdown.js +68 -34
  249. package/fesm2015/primeng-dropdown.js.map +1 -1
  250. package/fesm2015/primeng-editor.js +1 -1
  251. package/fesm2015/primeng-editor.js.map +1 -1
  252. package/fesm2015/primeng-fileupload.js +8 -0
  253. package/fesm2015/primeng-fileupload.js.map +1 -1
  254. package/fesm2015/primeng-galleria.js +3 -1
  255. package/fesm2015/primeng-galleria.js.map +1 -1
  256. package/fesm2015/primeng-inputnumber.js +1 -1
  257. package/fesm2015/primeng-inputnumber.js.map +1 -1
  258. package/fesm2015/primeng-listbox.js +54 -13
  259. package/fesm2015/primeng-listbox.js.map +1 -1
  260. package/fesm2015/primeng-menubar.js +3 -4
  261. package/fesm2015/primeng-menubar.js.map +1 -1
  262. package/fesm2015/primeng-multiselect.js +50 -20
  263. package/fesm2015/primeng-multiselect.js.map +1 -1
  264. package/fesm2015/primeng-orderlist.js +47 -8
  265. package/fesm2015/primeng-orderlist.js.map +1 -1
  266. package/fesm2015/primeng-password.js +49 -39
  267. package/fesm2015/primeng-password.js.map +1 -1
  268. package/fesm2015/primeng-picklist.js +140 -70
  269. package/fesm2015/primeng-picklist.js.map +1 -1
  270. package/fesm2015/primeng-radiobutton.js +5 -11
  271. package/fesm2015/primeng-radiobutton.js.map +1 -1
  272. package/fesm2015/primeng-scrollpanel.js +1 -0
  273. package/fesm2015/primeng-scrollpanel.js.map +1 -1
  274. package/fesm2015/primeng-selectbutton.js +2 -2
  275. package/fesm2015/primeng-selectbutton.js.map +1 -1
  276. package/fesm2015/primeng-sidebar.js +76 -52
  277. package/fesm2015/primeng-sidebar.js.map +1 -1
  278. package/fesm2015/primeng-skeleton.js +1 -1
  279. package/fesm2015/primeng-skeleton.js.map +1 -1
  280. package/fesm2015/primeng-splitter.js +39 -12
  281. package/fesm2015/primeng-splitter.js.map +1 -1
  282. package/fesm2015/primeng-table.js +17 -7
  283. package/fesm2015/primeng-table.js.map +1 -1
  284. package/fesm2015/primeng-tabmenu.js +1 -1
  285. package/fesm2015/primeng-tabmenu.js.map +1 -1
  286. package/fesm2015/primeng-tabview.js +1 -0
  287. package/fesm2015/primeng-tabview.js.map +1 -1
  288. package/fesm2015/primeng-tieredmenu.js +3 -3
  289. package/fesm2015/primeng-tieredmenu.js.map +1 -1
  290. package/fesm2015/primeng-timeline.js +2 -2
  291. package/fesm2015/primeng-timeline.js.map +1 -1
  292. package/fesm2015/primeng-togglebutton.js +1 -1
  293. package/fesm2015/primeng-tree.js +81 -20
  294. package/fesm2015/primeng-tree.js.map +1 -1
  295. package/fesm2015/primeng-treetable.js +4 -0
  296. package/fesm2015/primeng-treetable.js.map +1 -1
  297. package/fesm2015/primeng-tristatecheckbox.js +5 -1
  298. package/fesm2015/primeng-tristatecheckbox.js.map +1 -1
  299. package/fileupload/fileupload.d.ts +5 -2
  300. package/fileupload/primeng-fileupload.metadata.json +1 -1
  301. package/galleria/galleria.d.ts +3 -2
  302. package/galleria/primeng-galleria.metadata.json +1 -1
  303. package/inputnumber/primeng-inputnumber.metadata.json +1 -1
  304. package/listbox/listbox.d.ts +16 -4
  305. package/listbox/primeng-listbox.metadata.json +1 -1
  306. package/menubar/primeng-menubar.metadata.json +1 -1
  307. package/multiselect/multiselect.d.ts +10 -3
  308. package/multiselect/primeng-multiselect.metadata.json +1 -1
  309. package/orderlist/orderlist.d.ts +5 -1
  310. package/orderlist/primeng-orderlist.metadata.json +1 -1
  311. package/package.json +1 -1
  312. package/password/password.d.ts +5 -4
  313. package/password/primeng-password.metadata.json +1 -1
  314. package/picklist/picklist.d.ts +16 -7
  315. package/picklist/primeng-picklist.metadata.json +1 -1
  316. package/radiobutton/primeng-radiobutton.metadata.json +1 -1
  317. package/resources/components/button/button.css +4 -0
  318. package/resources/components/calendar/calendar.css +0 -1
  319. package/resources/components/orderlist/orderlist.css +1 -0
  320. package/resources/components/picklist/picklist.css +1 -0
  321. package/resources/components/sidebar/sidebar.css +12 -26
  322. package/resources/primeng.css +4 -0
  323. package/resources/primeng.min.css +1 -1
  324. package/resources/themes/arya-blue/theme.css +49 -9
  325. package/resources/themes/arya-green/theme.css +49 -9
  326. package/resources/themes/arya-orange/theme.css +49 -9
  327. package/resources/themes/arya-purple/theme.css +49 -9
  328. package/resources/themes/bootstrap4-dark-blue/theme.css +49 -9
  329. package/resources/themes/bootstrap4-dark-purple/theme.css +49 -9
  330. package/resources/themes/bootstrap4-light-blue/theme.css +49 -9
  331. package/resources/themes/bootstrap4-light-purple/theme.css +49 -9
  332. package/resources/themes/fluent-light/theme.css +47 -7
  333. package/resources/themes/luna-amber/theme.css +49 -9
  334. package/resources/themes/luna-blue/theme.css +49 -9
  335. package/resources/themes/luna-green/theme.css +49 -9
  336. package/resources/themes/luna-pink/theme.css +49 -9
  337. package/resources/themes/md-dark-deeppurple/theme.css +60 -14
  338. package/resources/themes/md-dark-indigo/theme.css +60 -14
  339. package/resources/themes/md-light-deeppurple/theme.css +60 -14
  340. package/resources/themes/md-light-indigo/theme.css +60 -14
  341. package/resources/themes/mdc-dark-deeppurple/theme.css +60 -14
  342. package/resources/themes/mdc-dark-indigo/theme.css +60 -14
  343. package/resources/themes/mdc-light-deeppurple/theme.css +60 -14
  344. package/resources/themes/mdc-light-indigo/theme.css +60 -14
  345. package/resources/themes/nova/theme.css +49 -9
  346. package/resources/themes/nova-accent/theme.css +49 -9
  347. package/resources/themes/nova-alt/theme.css +49 -9
  348. package/resources/themes/rhea/theme.css +49 -9
  349. package/resources/themes/saga-blue/theme.css +49 -9
  350. package/resources/themes/saga-green/theme.css +49 -9
  351. package/resources/themes/saga-orange/theme.css +49 -9
  352. package/resources/themes/saga-purple/theme.css +49 -9
  353. package/resources/themes/vela-blue/theme.css +49 -9
  354. package/resources/themes/vela-green/theme.css +49 -9
  355. package/resources/themes/vela-orange/theme.css +49 -9
  356. package/resources/themes/vela-purple/theme.css +49 -9
  357. package/scrollpanel/primeng-scrollpanel.metadata.json +1 -1
  358. package/selectbutton/primeng-selectbutton.metadata.json +1 -1
  359. package/sidebar/primeng-sidebar.metadata.json +1 -1
  360. package/sidebar/sidebar.d.ts +12 -8
  361. package/skeleton/skeleton.d.ts +1 -1
  362. package/splitter/primeng-splitter.metadata.json +1 -1
  363. package/splitter/splitter.d.ts +5 -1
  364. package/table/primeng-table.metadata.json +1 -1
  365. package/table/table.d.ts +3 -0
  366. package/tabmenu/primeng-tabmenu.metadata.json +1 -1
  367. package/tabview/primeng-tabview.metadata.json +1 -1
  368. package/tieredmenu/primeng-tieredmenu.metadata.json +1 -1
  369. package/timeline/primeng-timeline.metadata.json +1 -1
  370. package/togglebutton/primeng-togglebutton.metadata.json +1 -1
  371. package/tree/primeng-tree.metadata.json +1 -1
  372. package/tree/tree.d.ts +12 -4
  373. package/treetable/primeng-treetable.metadata.json +1 -1
  374. package/tristatecheckbox/primeng-tristatecheckbox.metadata.json +1 -1
  375. package/tristatecheckbox/tristatecheckbox.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-password.umd.js","sources":["../../src/app/components/password/password.ts","../../src/app/components/password/primeng-password.ts"],"sourcesContent":["import {NgModule,Directive,ElementRef,HostListener,Input,OnDestroy,DoCheck,NgZone, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, QueryList, TemplateRef, Component, AfterContentInit, ViewChild, ChangeDetectorRef, forwardRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DomHandler, ConnectedOverlayScrollHandler} from 'primeng/dom';\nimport {PrimeNGConfig, PrimeTemplate, TranslationKeys} from 'primeng/api';\nimport {InputTextModule} from 'primeng/inputtext';\n\n@Directive({\n selector: '[pPassword]',\n host: {\n '[class.p-inputtext]': 'true',\n '[class.p-component]': 'true',\n '[class.p-filled]': 'filled'\n }\n})\nexport class PasswordDirective implements OnDestroy,DoCheck {\n\n @Input() promptLabel: string = 'Enter a password';\n\n @Input() weakLabel: string = 'Weak';\n\n @Input() mediumLabel: string = 'Medium';\n\n @Input() strongLabel: string = 'Strong';\n\n @Input() feedback: boolean = true;\n\n @Input() set showPassword(show: boolean) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n\n panel: HTMLDivElement;\n\n meter: any;\n\n info: any;\n\n filled: boolean;\n\n scrollHandler: any;\n\n documentResizeListener: any;\n\n constructor(public el: ElementRef, public zone: NgZone) {}\n\n ngDoCheck() {\n this.updateFilledState();\n }\n\n @HostListener('input', ['$event'])\n onInput(e) {\n this.updateFilledState();\n }\n\n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;\n }\n\n createPanel() {\n this.panel = document.createElement('div');\n this.panel.className = 'p-password-panel p-component p-password-panel-overlay p-connected-overlay';\n this.meter = document.createElement('div');\n this.meter.className = 'p-password-meter';\n this.info = document.createElement('div');\n this.info.className = 'p-password-info';\n this.info.textContent = this.promptLabel;\n this.panel.appendChild(this.meter);\n this.panel.appendChild(this.info);\n this.panel.style.minWidth = DomHandler.getOuterWidth(this.el.nativeElement) + 'px';\n document.body.appendChild(this.panel);\n }\n\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\n\n this.panel.style.zIndex = String(++DomHandler.zindex);\n this.panel.style.display = 'block';\n this.zone.runOutsideAngular(() => {\n\n setTimeout(() => {\n DomHandler.addClass(this.panel, 'p-connected-overlay-visible');\n this.bindScrollListener();\n this.bindDocumentResizeListener();\n }, 1);\n });\n DomHandler.absolutePosition(this.panel, this.el.nativeElement);\n }\n }\n\n hideOverlay() {\n if (this.feedback && this.panel) {\n DomHandler.addClass(this.panel, 'p-connected-overlay-hidden');\n DomHandler.removeClass(this.panel, 'p-connected-overlay-visible');\n this.unbindScrollListener();\n this.unbindDocumentResizeListener();\n\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n\n @HostListener('focus')\n onFocus() {\n this.showOverlay();\n }\n\n @HostListener('blur')\n onBlur() {\n this.hideOverlay();\n }\n\n @HostListener('keyup', ['$event'])\n onKeyup(e) {\n if (this.feedback) {\n let value = e.target.value,\n label = null,\n meterPos = null;\n\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n }\n else {\n var score = this.testStrength(value);\n\n if (score < 30) {\n label = this.weakLabel;\n meterPos = '0px -10px';\n }\n else if (score >= 30 && score < 80) {\n label = this.mediumLabel;\n meterPos = '0px -20px';\n }\n else if (score >= 80) {\n label = this.strongLabel;\n meterPos = '0px -30px';\n }\n }\n\n if (!this.panel || !DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n\n this.meter.style.backgroundPosition = meterPos;\n this.info.textContent = label;\n }\n }\n\n testStrength(str: string) {\n let grade: number = 0;\n let val: RegExpMatchArray;\n\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1/4, 1) * 25;\n\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1/2, 3) * 10;\n\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 35;\n\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 30;\n\n grade *= str.length / 8;\n\n return grade > 100 ? 100 : grade;\n }\n\n normalize(x, y) {\n let diff = x - y;\n\n if (diff <= 0)\n return x / y;\n else\n return 1 + 0.5 * (x / (x + y/4));\n }\n\n get disabled(): boolean {\n return this.el.nativeElement.disabled;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n this.hideOverlay();\n }\n\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.unbindDocumentResizeListener();\n\n document.body.removeChild(this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n }\n}\n\n\nexport const Password_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Password),\n multi: true\n};\n@Component({\n selector: 'p-password',\n template: `\n <div [ngClass]=\"containerClass()\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <input #input pInputText [ngClass]=\"inputFieldClass()\" [ngStyle]=\"inputStyle\" [class]=\"inputStyleClass\" [attr.type]=\"inputType()\" [value]=\"value\" (input)=\"onInput($event)\" (focus)=\"onFocus($event)\" \n (blur)=\"onBlur($event)\" (keyup)=\"onKeyUp($event)\" />\n <i *ngIf=\"toggleMask\" [ngClass]=\"toggleIconClass()\" (click)=\"onMaskToggle()\"></i>\n <div #overlay *ngIf=\"overlayVisible\" [ngClass]=\"'p-password-panel p-component'\" \n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onAnimationStart($event)\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <ng-container *ngIf=\"contentTemplate; else content\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n <ng-template #content>\n <div class=\"p-password-meter\">\n <div [ngClass]=\"strengthClass()\" [ngStyle]=\"{'width': meter ? meter.width : ''}\"></div>\n </div>\n <div className=\"p-password-info\">{{infoText}}</div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ opacity: 0 }))\n ])\n ])\n ],\n providers: [Password_VALUE_ACCESSOR],\n styleUrls: ['./password.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class Password implements AfterContentInit,OnInit {\n \n @Input() disabled: boolean;\n\n @Input() promptLabel: string;\n\n @Input() mediumRegex: string = '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})';\n\n @Input() strongRegex: string = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})';\n\n @Input() weakLabel: string;\n\n @Input() mediumLabel: string;\n\n @Input() strongLabel: string;\n\n @Input() feedback: boolean = true;\n\n @Input() appendTo: any;\n\n @Input() toggleMask: boolean;\n\n @Input() inputStyleClass: string;\n\n @Input() styleClass: string;\n\n @Input() style: any;\n\n @Input() inputStyle: any;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @ViewChild('input') input: ElementRef;\n\n contentTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n \n overlayVisible: boolean = false;\n\n meter: any;\n \n infoText: string;\n \n focused: boolean = false;\n \n unmasked: boolean = false;\n\n mediumCheckRegExp: any;\n\n strongCheckRegExp: any;\n\n resizeListener: any;\n\n outsideClickListener: any;\n\n scrollHandler: any;\n\n overlay: any;\n\n value: string = null;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n\n constructor(private cd: ChangeDetectorRef, private config: PrimeNGConfig) {}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n \n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.infoText = this.promptText();\n this.mediumCheckRegExp = new RegExp(this.mediumRegex);\n this.strongCheckRegExp = new RegExp(this.strongRegex);\n }\n\n onAnimationStart(event) {\n switch(event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.overlay.style.zIndex = String(DomHandler.generateZIndex());\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n\n case 'hidden':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.overlay);\n else\n document.getElementById(this.appendTo).appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.appendTo) {\n this.overlay.style.minWidth = DomHandler.getOuterWidth(this.input.nativeElement) + 'px';\n DomHandler.absolutePosition(this.overlay, this.input.nativeElement);\n }\n else {\n DomHandler.relativePosition(this.overlay, this.input.nativeElement);\n }\n }\n\n onInput(event) {\n this.onModelChange(event.target.value);\n this.onModelTouched();\n }\n\n onFocus(event) {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n }\n\n onBlur(event) {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n }\n\n onKeyUp(event) {\n if (this.feedback) {\n let value = event.target.value;\n let label = null;\n let meter = null;\n\n switch (this.testStrength(value)) {\n case 1:\n label = this.weakText();\n meter = {\n strength: 'weak',\n width: '33.33%'\n };\n break;\n\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n\n this.meter = meter;\n this.infoText = label;\n\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n } \n\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n\n testStrength(str) {\n let level = 0;\n\n if (this.strongCheckRegExp.test(str))\n level = 3;\n else if (this.mediumCheckRegExp.test(str))\n level = 2;\n else if (str.length)\n level = 1;\n\n return level;\n }\n\n writeValue(value: any) : void {\n if (value === undefined)\n this.value = null;\n else \n this.value = value;\n \n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.input.nativeElement, () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n }\n\n containerClass() {\n return {'p-password p-component p-inputwrapper': true,\n 'p-inputwrapper-filled': this.filled(),\n 'p-inputwrapper-focus': this.focused,\n 'p-input-icon-right': this.toggleMask\n };\n }\n\n inputFieldClass() {\n return {'p-password-input' : true, \n 'p-disabled': this.disabled\n };\n }\n\n toggleIconClass() {\n return this.unmasked ? 'pi pi-eye-slash' : 'pi pi-eye';\n }\n\n strengthClass() {\n return `p-password-strength ${this.meter ? this.meter.strength : ''}`;\n }\n\n filled() {\n return (this.value != null && this.value.toString().length > 0)\n }\n\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n\n restoreAppend() {\n if (this.overlay && this.appendTo) {\n if (this.appendTo === 'body')\n document.body.removeChild(this.overlay);\n else\n document.getElementById(this.appendTo).removeChild(this.overlay);\n }\n }\n\n inputType() {\n return this.unmasked ? 'text' : 'password';\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n ngOnDestroy() {\n this.restoreAppend();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule],\n exports: [PasswordDirective, Password],\n declarations: [PasswordDirective, Password]\n})\nexport class PasswordModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DomHandler","ConnectedOverlayScrollHandler","Directive","ElementRef","NgZone","Input","HostListener","NG_VALUE_ACCESSOR","forwardRef","TranslationKeys","Component","trigger","transition","style","animate","ChangeDetectionStrategy","ViewEncapsulation","ChangeDetectorRef","PrimeNGConfig","ViewChild","ContentChildren","PrimeTemplate","NgModule","CommonModule","InputTextModule"],"mappings":"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"}
1
+ {"version":3,"file":"primeng-password.umd.js","sources":["../../src/app/components/password/password.ts","../../src/app/components/password/primeng-password.ts"],"sourcesContent":["import {NgModule,Directive,ElementRef,HostListener,Input,OnDestroy,DoCheck,NgZone, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, QueryList, TemplateRef, Component, AfterContentInit, ViewChild, ChangeDetectorRef, forwardRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DomHandler, ConnectedOverlayScrollHandler} from 'primeng/dom';\nimport {PrimeNGConfig, PrimeTemplate, TranslationKeys} from 'primeng/api';\nimport {InputTextModule} from 'primeng/inputtext';\n\n@Directive({\n selector: '[pPassword]',\n host: {\n '[class.p-inputtext]': 'true',\n '[class.p-component]': 'true',\n '[class.p-filled]': 'filled'\n }\n})\nexport class PasswordDirective implements OnDestroy,DoCheck {\n\n @Input() promptLabel: string = 'Enter a password';\n\n @Input() weakLabel: string = 'Weak';\n\n @Input() mediumLabel: string = 'Medium';\n\n @Input() strongLabel: string = 'Strong';\n\n @Input() feedback: boolean = true;\n\n @Input() set showPassword(show: boolean) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n\n panel: HTMLDivElement;\n\n meter: any;\n\n info: any;\n\n filled: boolean;\n\n scrollHandler: any;\n\n documentResizeListener: any;\n\n constructor(public el: ElementRef, public zone: NgZone) {}\n\n ngDoCheck() {\n this.updateFilledState();\n }\n\n @HostListener('input', ['$event'])\n onInput(e) {\n this.updateFilledState();\n }\n\n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;\n }\n\n createPanel() {\n this.panel = document.createElement('div');\n this.panel.className = 'p-password-panel p-component p-password-panel-overlay p-connected-overlay';\n this.meter = document.createElement('div');\n this.meter.className = 'p-password-meter';\n this.info = document.createElement('div');\n this.info.className = 'p-password-info';\n this.info.textContent = this.promptLabel;\n this.panel.appendChild(this.meter);\n this.panel.appendChild(this.info);\n this.panel.style.minWidth = DomHandler.getOuterWidth(this.el.nativeElement) + 'px';\n document.body.appendChild(this.panel);\n }\n\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\n\n this.panel.style.zIndex = String(++DomHandler.zindex);\n this.panel.style.display = 'block';\n this.zone.runOutsideAngular(() => {\n\n setTimeout(() => {\n DomHandler.addClass(this.panel, 'p-connected-overlay-visible');\n this.bindScrollListener();\n this.bindDocumentResizeListener();\n }, 1);\n });\n DomHandler.absolutePosition(this.panel, this.el.nativeElement);\n }\n }\n\n hideOverlay() {\n if (this.feedback && this.panel) {\n DomHandler.addClass(this.panel, 'p-connected-overlay-hidden');\n DomHandler.removeClass(this.panel, 'p-connected-overlay-visible');\n this.unbindScrollListener();\n this.unbindDocumentResizeListener();\n\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n\n @HostListener('focus')\n onFocus() {\n this.showOverlay();\n }\n\n @HostListener('blur')\n onBlur() {\n this.hideOverlay();\n }\n\n @HostListener('keyup', ['$event'])\n onKeyup(e) {\n if (this.feedback) {\n let value = e.target.value,\n label = null,\n meterPos = null;\n\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n }\n else {\n var score = this.testStrength(value);\n\n if (score < 30) {\n label = this.weakLabel;\n meterPos = '0px -10px';\n }\n else if (score >= 30 && score < 80) {\n label = this.mediumLabel;\n meterPos = '0px -20px';\n }\n else if (score >= 80) {\n label = this.strongLabel;\n meterPos = '0px -30px';\n }\n }\n\n if (!this.panel || !DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n\n this.meter.style.backgroundPosition = meterPos;\n this.info.textContent = label;\n }\n }\n\n testStrength(str: string) {\n let grade: number = 0;\n let val: RegExpMatchArray;\n\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1/4, 1) * 25;\n\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1/2, 3) * 10;\n\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 35;\n\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 30;\n\n grade *= str.length / 8;\n\n return grade > 100 ? 100 : grade;\n }\n\n normalize(x, y) {\n let diff = x - y;\n\n if (diff <= 0)\n return x / y;\n else\n return 1 + 0.5 * (x / (x + y/4));\n }\n\n get disabled(): boolean {\n return this.el.nativeElement.disabled;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n this.hideOverlay();\n }\n\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.unbindDocumentResizeListener();\n\n document.body.removeChild(this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n }\n}\n\n\nexport const Password_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Password),\n multi: true\n};\n@Component({\n selector: 'p-password',\n template: `\n <div [ngClass]=\"containerClass()\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <input #input [attr.id]=\"inputId\" pInputText [ngClass]=\"inputFieldClass()\" [ngStyle]=\"inputStyle\" [class]=\"inputStyleClass\" [attr.type]=\"inputType()\" [attr.placeholder]=\"placeholder\" [value]=\"value\" (input)=\"onInput($event)\" (focus)=\"onFocus()\" \n (blur)=\"onBlur()\" (keyup)=\"onKeyUp($event)\" />\n <i *ngIf=\"toggleMask\" [ngClass]=\"toggleIconClass()\" (click)=\"onMaskToggle()\"></i>\n <div #overlay *ngIf=\"overlayVisible\" [ngClass]=\"'p-password-panel p-component'\" \n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onAnimationStart($event)\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <ng-container *ngIf=\"contentTemplate; else content\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n <ng-template #content>\n <div class=\"p-password-meter\">\n <div [ngClass]=\"strengthClass()\" [ngStyle]=\"{'width': meter ? meter.width : ''}\"></div>\n </div>\n <div className=\"p-password-info\">{{infoText}}</div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ opacity: 0 }))\n ])\n ])\n ],\n host: {\n '[class.p-inputwrapper-filled]': 'filled()',\n '[class.p-inputwrapper-focus]': 'focused'\n },\n providers: [Password_VALUE_ACCESSOR],\n styleUrls: ['./password.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class Password implements AfterContentInit,OnInit {\n \n @Input() disabled: boolean;\n\n @Input() promptLabel: string;\n\n @Input() mediumRegex: string = '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})';\n\n @Input() strongRegex: string = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})';\n\n @Input() weakLabel: string;\n\n @Input() mediumLabel: string;\n\n @Input() strongLabel: string;\n\n @Input() inputId: string;\n\n @Input() feedback: boolean = true;\n\n @Input() appendTo: any;\n\n @Input() toggleMask: boolean;\n\n @Input() inputStyleClass: string;\n\n @Input() styleClass: string;\n\n @Input() style: any;\n\n @Input() inputStyle: any;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @Input() placeholder: string;\n\n @ViewChild('input') input: ElementRef;\n\n contentTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n \n overlayVisible: boolean = false;\n\n meter: any;\n \n infoText: string;\n \n focused: boolean = false;\n \n unmasked: boolean = false;\n\n mediumCheckRegExp: any;\n\n strongCheckRegExp: any;\n\n resizeListener: any;\n\n outsideClickListener: any;\n\n scrollHandler: any;\n\n overlay: any;\n\n value: string = null;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n\n constructor(private cd: ChangeDetectorRef, private config: PrimeNGConfig) {}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n \n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.infoText = this.promptText();\n this.mediumCheckRegExp = new RegExp(this.mediumRegex);\n this.strongCheckRegExp = new RegExp(this.strongRegex);\n }\n\n onAnimationStart(event) {\n switch(event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.overlay.style.zIndex = String(DomHandler.generateZIndex());\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n\n case 'void':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.overlay);\n else\n document.getElementById(this.appendTo).appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.appendTo) {\n this.overlay.style.minWidth = DomHandler.getOuterWidth(this.input.nativeElement) + 'px';\n DomHandler.absolutePosition(this.overlay, this.input.nativeElement);\n }\n else {\n DomHandler.relativePosition(this.overlay, this.input.nativeElement);\n }\n }\n\n onInput(event) {\n this.value = event.target.value;\n this.onModelChange(this.value);\n this.onModelTouched();\n }\n\n onFocus() {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n }\n\n onBlur() {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n }\n\n onKeyUp(event) {\n if (this.feedback) {\n let value = event.target.value;\n this.updateUI(value);\n\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n }\n \n updateUI(value) {\n let label = null;\n let meter = null;\n\n switch (this.testStrength(value)) {\n case 1:\n label = this.weakText();\n meter = {\n strength: 'weak',\n width: '33.33%'\n };\n break;\n\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n\n this.meter = meter;\n this.infoText = label;\n }\n\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n\n testStrength(str) {\n let level = 0;\n\n if (this.strongCheckRegExp.test(str))\n level = 3;\n else if (this.mediumCheckRegExp.test(str))\n level = 2;\n else if (str.length)\n level = 1;\n\n return level;\n }\n\n writeValue(value: any) : void {\n if (value === undefined)\n this.value = null;\n else \n this.value = value;\n\n if (this.feedback)\n this.updateUI(this.value || \"\");\n \n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.input.nativeElement, () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n }\n\n containerClass() {\n return {'p-password p-component p-inputwrapper': true,\n 'p-input-icon-right': this.toggleMask\n };\n }\n\n inputFieldClass() {\n return {'p-password-input' : true, \n 'p-disabled': this.disabled\n };\n }\n\n toggleIconClass() {\n return this.unmasked ? 'pi pi-eye-slash' : 'pi pi-eye';\n }\n\n strengthClass() {\n return `p-password-strength ${this.meter ? this.meter.strength : ''}`;\n }\n\n filled() {\n return (this.value != null && this.value.toString().length > 0)\n }\n\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n\n restoreAppend() {\n if (this.overlay && this.appendTo) {\n if (this.appendTo === 'body')\n document.body.removeChild(this.overlay);\n else\n document.getElementById(this.appendTo).removeChild(this.overlay);\n }\n }\n\n inputType() {\n return this.unmasked ? 'text' : 'password';\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n ngOnDestroy() {\n this.restoreAppend();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule],\n exports: [PasswordDirective, Password],\n declarations: [PasswordDirective, Password]\n})\nexport class PasswordModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DomHandler","ConnectedOverlayScrollHandler","Directive","ElementRef","NgZone","Input","HostListener","NG_VALUE_ACCESSOR","forwardRef","TranslationKeys","Component","trigger","transition","style","animate","ChangeDetectionStrategy","ViewEncapsulation","ChangeDetectorRef","PrimeNGConfig","ViewChild","ContentChildren","PrimeTemplate","NgModule","CommonModule","InputTextModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/animations"),require("@angular/forms"),require("primeng/dom"),require("primeng/api"),require("primeng/inputtext")):"function"==typeof define&&define.amd?define("primeng/password",["exports","@angular/core","@angular/common","@angular/animations","@angular/forms","primeng/dom","primeng/api","primeng/inputtext"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).primeng=e.primeng||{},e.primeng.password={}),e.ng.core,e.ng.common,e.ng.animations,e.ng.forms,e.primeng.dom,e.primeng.api,e.primeng.inputtext)}(this,(function(e,t,n,i,s,o,r,a){"use strict";var l=function(){function e(e,t){this.el=e,this.zone=t,this.promptLabel="Enter a password",this.weakLabel="Weak",this.mediumLabel="Medium",this.strongLabel="Strong",this.feedback=!0}return Object.defineProperty(e.prototype,"showPassword",{set:function(e){this.el.nativeElement.type=e?"text":"password"},enumerable:!1,configurable:!0}),e.prototype.ngDoCheck=function(){this.updateFilledState()},e.prototype.onInput=function(e){this.updateFilledState()},e.prototype.updateFilledState=function(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length},e.prototype.createPanel=function(){this.panel=document.createElement("div"),this.panel.className="p-password-panel p-component p-password-panel-overlay p-connected-overlay",this.meter=document.createElement("div"),this.meter.className="p-password-meter",this.info=document.createElement("div"),this.info.className="p-password-info",this.info.textContent=this.promptLabel,this.panel.appendChild(this.meter),this.panel.appendChild(this.info),this.panel.style.minWidth=o.DomHandler.getOuterWidth(this.el.nativeElement)+"px",document.body.appendChild(this.panel)},e.prototype.showOverlay=function(){var e=this;this.feedback&&(this.panel||this.createPanel(),this.panel.style.zIndex=String(++o.DomHandler.zindex),this.panel.style.display="block",this.zone.runOutsideAngular((function(){setTimeout((function(){o.DomHandler.addClass(e.panel,"p-connected-overlay-visible"),e.bindScrollListener(),e.bindDocumentResizeListener()}),1)})),o.DomHandler.absolutePosition(this.panel,this.el.nativeElement))},e.prototype.hideOverlay=function(){var e=this;this.feedback&&this.panel&&(o.DomHandler.addClass(this.panel,"p-connected-overlay-hidden"),o.DomHandler.removeClass(this.panel,"p-connected-overlay-visible"),this.unbindScrollListener(),this.unbindDocumentResizeListener(),this.zone.runOutsideAngular((function(){setTimeout((function(){e.ngOnDestroy()}),150)})))},e.prototype.onFocus=function(){this.showOverlay()},e.prototype.onBlur=function(){this.hideOverlay()},e.prototype.onKeyup=function(e){if(this.feedback){var t=e.target.value,n=null,i=null;if(0===t.length)n=this.promptLabel,i="0px 0px";else{var s=this.testStrength(t);s<30?(n=this.weakLabel,i="0px -10px"):s>=30&&s<80?(n=this.mediumLabel,i="0px -20px"):s>=80&&(n=this.strongLabel,i="0px -30px")}this.panel&&o.DomHandler.hasClass(this.panel,"p-connected-overlay-visible")||this.showOverlay(),this.meter.style.backgroundPosition=i,this.info.textContent=n}},e.prototype.testStrength=function(e){var t,n=0;return t=e.match("[0-9]"),n+=25*this.normalize(t?t.length:1/4,1),t=e.match("[a-zA-Z]"),n+=10*this.normalize(t?t.length:.5,3),t=e.match("[!@#$%^&*?_~.,;=]"),n+=35*this.normalize(t?t.length:1/6,1),t=e.match("[A-Z]"),n+=30*this.normalize(t?t.length:1/6,1),(n*=e.length/8)>100?100:n},e.prototype.normalize=function(e,t){return e-t<=0?e/t:1+e/(e+t/4)*.5},Object.defineProperty(e.prototype,"disabled",{get:function(){return this.el.nativeElement.disabled},enumerable:!1,configurable:!0}),e.prototype.bindScrollListener=function(){var e=this;this.scrollHandler||(this.scrollHandler=new o.ConnectedOverlayScrollHandler(this.el.nativeElement,(function(){o.DomHandler.hasClass(e.panel,"p-connected-overlay-visible")&&e.hideOverlay()}))),this.scrollHandler.bindScrollListener()},e.prototype.unbindScrollListener=function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},e.prototype.bindDocumentResizeListener=function(){this.documentResizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.documentResizeListener)},e.prototype.unbindDocumentResizeListener=function(){this.documentResizeListener&&(window.removeEventListener("resize",this.documentResizeListener),this.documentResizeListener=null)},e.prototype.onWindowResize=function(){this.hideOverlay()},e.prototype.ngOnDestroy=function(){this.panel&&(this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindDocumentResizeListener(),document.body.removeChild(this.panel),this.panel=null,this.meter=null,this.info=null)},e}();l.decorators=[{type:t.Directive,args:[{selector:"[pPassword]",host:{"[class.p-inputtext]":"true","[class.p-component]":"true","[class.p-filled]":"filled"}}]}],l.ctorParameters=function(){return[{type:t.ElementRef},{type:t.NgZone}]},l.propDecorators={promptLabel:[{type:t.Input}],weakLabel:[{type:t.Input}],mediumLabel:[{type:t.Input}],strongLabel:[{type:t.Input}],feedback:[{type:t.Input}],showPassword:[{type:t.Input}],onInput:[{type:t.HostListener,args:["input",["$event"]]}],onFocus:[{type:t.HostListener,args:["focus"]}],onBlur:[{type:t.HostListener,args:["blur"]}],onKeyup:[{type:t.HostListener,args:["keyup",["$event"]]}]};var p={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return u})),multi:!0},u=function(){function e(e,t){this.cd=e,this.config=t,this.mediumRegex="^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})",this.strongRegex="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})",this.feedback=!0,this.showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)",this.hideTransitionOptions=".1s linear",this.overlayVisible=!1,this.focused=!1,this.unmasked=!1,this.value=null,this.onModelChange=function(){},this.onModelTouched=function(){}}return e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"content":e.contentTemplate=t.template;break;case"header":e.headerTemplate=t.template;break;case"footer":e.footerTemplate=t.template;break;default:e.contentTemplate=t.template}}))},e.prototype.ngOnInit=function(){this.infoText=this.promptText(),this.mediumCheckRegExp=new RegExp(this.mediumRegex),this.strongCheckRegExp=new RegExp(this.strongRegex)},e.prototype.onAnimationStart=function(e){switch(e.toState){case"visible":this.overlay=e.element,this.overlay.style.zIndex=String(o.DomHandler.generateZIndex()),this.appendContainer(),this.alignOverlay(),this.bindScrollListener(),this.bindResizeListener();break;case"hidden":this.unbindScrollListener(),this.unbindResizeListener(),this.overlay=null}},e.prototype.appendContainer=function(){this.appendTo&&("body"===this.appendTo?document.body.appendChild(this.overlay):document.getElementById(this.appendTo).appendChild(this.overlay))},e.prototype.alignOverlay=function(){this.appendTo?(this.overlay.style.minWidth=o.DomHandler.getOuterWidth(this.input.nativeElement)+"px",o.DomHandler.absolutePosition(this.overlay,this.input.nativeElement)):o.DomHandler.relativePosition(this.overlay,this.input.nativeElement)},e.prototype.onInput=function(e){this.onModelChange(e.target.value),this.onModelTouched()},e.prototype.onFocus=function(e){this.focused=!0,this.feedback&&(this.overlayVisible=!0)},e.prototype.onBlur=function(e){this.focused=!1,this.feedback&&(this.overlayVisible=!1)},e.prototype.onKeyUp=function(e){if(this.feedback){var t=e.target.value,n=null,i=null;switch(this.testStrength(t)){case 1:n=this.weakText(),i={strength:"weak",width:"33.33%"};break;case 2:n=this.mediumText(),i={strength:"medium",width:"66.66%"};break;case 3:n=this.strongText(),i={strength:"strong",width:"100%"};break;default:n=this.promptText(),i=null}this.meter=i,this.infoText=n,this.overlayVisible||(this.overlayVisible=!0)}},e.prototype.onMaskToggle=function(){this.unmasked=!this.unmasked},e.prototype.testStrength=function(e){var t=0;return this.strongCheckRegExp.test(e)?t=3:this.mediumCheckRegExp.test(e)?t=2:e.length&&(t=1),t},e.prototype.writeValue=function(e){this.value=void 0===e?null:e,this.cd.markForCheck()},e.prototype.registerOnChange=function(e){this.onModelChange=e},e.prototype.registerOnTouched=function(e){this.onModelTouched=e},e.prototype.setDisabledState=function(e){this.disabled=e},e.prototype.bindScrollListener=function(){var e=this;this.scrollHandler||(this.scrollHandler=new o.ConnectedOverlayScrollHandler(this.input.nativeElement,(function(){e.overlayVisible&&(e.overlayVisible=!1)}))),this.scrollHandler.bindScrollListener()},e.prototype.bindResizeListener=function(){var e=this;this.resizeListener||(this.resizeListener=function(){e.overlayVisible&&(e.overlayVisible=!1)},window.addEventListener("resize",this.resizeListener))},e.prototype.unbindScrollListener=function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},e.prototype.unbindResizeListener=function(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},e.prototype.unbindOutsideClickListener=function(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},e.prototype.containerClass=function(){return{"p-password p-component p-inputwrapper":!0,"p-inputwrapper-filled":this.filled(),"p-inputwrapper-focus":this.focused,"p-input-icon-right":this.toggleMask}},e.prototype.inputFieldClass=function(){return{"p-password-input":!0,"p-disabled":this.disabled}},e.prototype.toggleIconClass=function(){return this.unmasked?"pi pi-eye-slash":"pi pi-eye"},e.prototype.strengthClass=function(){return"p-password-strength "+(this.meter?this.meter.strength:"")},e.prototype.filled=function(){return null!=this.value&&this.value.toString().length>0},e.prototype.promptText=function(){return this.promptLabel||this.getTranslation(r.TranslationKeys.PASSWORD_PROMPT)},e.prototype.weakText=function(){return this.weakLabel||this.getTranslation(r.TranslationKeys.WEAK)},e.prototype.mediumText=function(){return this.mediumLabel||this.getTranslation(r.TranslationKeys.MEDIUM)},e.prototype.strongText=function(){return this.strongLabel||this.getTranslation(r.TranslationKeys.STRONG)},e.prototype.restoreAppend=function(){this.overlay&&this.appendTo&&("body"===this.appendTo?document.body.removeChild(this.overlay):document.getElementById(this.appendTo).removeChild(this.overlay))},e.prototype.inputType=function(){return this.unmasked?"text":"password"},e.prototype.getTranslation=function(e){return this.config.getTranslation(e)},e.prototype.ngOnDestroy=function(){this.restoreAppend(),this.unbindResizeListener(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)},e}();u.decorators=[{type:t.Component,args:[{selector:"p-password",template:'\n <div [ngClass]="containerClass()" [ngStyle]="style" [class]="styleClass">\n <input #input pInputText [ngClass]="inputFieldClass()" [ngStyle]="inputStyle" [class]="inputStyleClass" [attr.type]="inputType()" [value]="value" (input)="onInput($event)" (focus)="onFocus($event)" \n (blur)="onBlur($event)" (keyup)="onKeyUp($event)" />\n <i *ngIf="toggleMask" [ngClass]="toggleIconClass()" (click)="onMaskToggle()"></i>\n <div #overlay *ngIf="overlayVisible" [ngClass]="\'p-password-panel p-component\'" \n [@overlayAnimation]="{value: \'visible\', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}" (@overlayAnimation.start)="onAnimationStart($event)">\n <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>\n <ng-container *ngIf="contentTemplate; else content">\n <ng-container *ngTemplateOutlet="contentTemplate"></ng-container>\n </ng-container>\n <ng-template #content>\n <div class="p-password-meter">\n <div [ngClass]="strengthClass()" [ngStyle]="{\'width\': meter ? meter.width : \'\'}"></div>\n </div>\n <div className="p-password-info">{{infoText}}</div>\n </ng-template>\n <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>\n </div>\n </div>\n ',animations:[i.trigger("overlayAnimation",[i.transition(":enter",[i.style({opacity:0,transform:"scaleY(0.8)"}),i.animate("{{showTransitionParams}}")]),i.transition(":leave",[i.animate("{{hideTransitionParams}}",i.style({opacity:0}))])])],providers:[p],changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,styles:[".p-password{display:inline-flex;position:relative}.p-password-panel{position:absolute}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;transition:width 1s ease-in-out;width:0}.p-fluid .p-password{display:flex}"]}]}],u.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:r.PrimeNGConfig}]},u.propDecorators={disabled:[{type:t.Input}],promptLabel:[{type:t.Input}],mediumRegex:[{type:t.Input}],strongRegex:[{type:t.Input}],weakLabel:[{type:t.Input}],mediumLabel:[{type:t.Input}],strongLabel:[{type:t.Input}],feedback:[{type:t.Input}],appendTo:[{type:t.Input}],toggleMask:[{type:t.Input}],inputStyleClass:[{type:t.Input}],styleClass:[{type:t.Input}],style:[{type:t.Input}],inputStyle:[{type:t.Input}],showTransitionOptions:[{type:t.Input}],hideTransitionOptions:[{type:t.Input}],input:[{type:t.ViewChild,args:["input"]}],templates:[{type:t.ContentChildren,args:[r.PrimeTemplate]}]};var d=function(){};d.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule,a.InputTextModule],exports:[l,u],declarations:[l,u]}]}],e.Password=u,e.PasswordDirective=l,e.PasswordModule=d,e.Password_VALUE_ACCESSOR=p,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/animations"),require("@angular/forms"),require("primeng/dom"),require("primeng/api"),require("primeng/inputtext")):"function"==typeof define&&define.amd?define("primeng/password",["exports","@angular/core","@angular/common","@angular/animations","@angular/forms","primeng/dom","primeng/api","primeng/inputtext"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).primeng=e.primeng||{},e.primeng.password={}),e.ng.core,e.ng.common,e.ng.animations,e.ng.forms,e.primeng.dom,e.primeng.api,e.primeng.inputtext)}(this,(function(e,t,n,i,s,o,r,a){"use strict";var l=function(){function e(e,t){this.el=e,this.zone=t,this.promptLabel="Enter a password",this.weakLabel="Weak",this.mediumLabel="Medium",this.strongLabel="Strong",this.feedback=!0}return Object.defineProperty(e.prototype,"showPassword",{set:function(e){this.el.nativeElement.type=e?"text":"password"},enumerable:!1,configurable:!0}),e.prototype.ngDoCheck=function(){this.updateFilledState()},e.prototype.onInput=function(e){this.updateFilledState()},e.prototype.updateFilledState=function(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length},e.prototype.createPanel=function(){this.panel=document.createElement("div"),this.panel.className="p-password-panel p-component p-password-panel-overlay p-connected-overlay",this.meter=document.createElement("div"),this.meter.className="p-password-meter",this.info=document.createElement("div"),this.info.className="p-password-info",this.info.textContent=this.promptLabel,this.panel.appendChild(this.meter),this.panel.appendChild(this.info),this.panel.style.minWidth=o.DomHandler.getOuterWidth(this.el.nativeElement)+"px",document.body.appendChild(this.panel)},e.prototype.showOverlay=function(){var e=this;this.feedback&&(this.panel||this.createPanel(),this.panel.style.zIndex=String(++o.DomHandler.zindex),this.panel.style.display="block",this.zone.runOutsideAngular((function(){setTimeout((function(){o.DomHandler.addClass(e.panel,"p-connected-overlay-visible"),e.bindScrollListener(),e.bindDocumentResizeListener()}),1)})),o.DomHandler.absolutePosition(this.panel,this.el.nativeElement))},e.prototype.hideOverlay=function(){var e=this;this.feedback&&this.panel&&(o.DomHandler.addClass(this.panel,"p-connected-overlay-hidden"),o.DomHandler.removeClass(this.panel,"p-connected-overlay-visible"),this.unbindScrollListener(),this.unbindDocumentResizeListener(),this.zone.runOutsideAngular((function(){setTimeout((function(){e.ngOnDestroy()}),150)})))},e.prototype.onFocus=function(){this.showOverlay()},e.prototype.onBlur=function(){this.hideOverlay()},e.prototype.onKeyup=function(e){if(this.feedback){var t=e.target.value,n=null,i=null;if(0===t.length)n=this.promptLabel,i="0px 0px";else{var s=this.testStrength(t);s<30?(n=this.weakLabel,i="0px -10px"):s>=30&&s<80?(n=this.mediumLabel,i="0px -20px"):s>=80&&(n=this.strongLabel,i="0px -30px")}this.panel&&o.DomHandler.hasClass(this.panel,"p-connected-overlay-visible")||this.showOverlay(),this.meter.style.backgroundPosition=i,this.info.textContent=n}},e.prototype.testStrength=function(e){var t,n=0;return t=e.match("[0-9]"),n+=25*this.normalize(t?t.length:1/4,1),t=e.match("[a-zA-Z]"),n+=10*this.normalize(t?t.length:.5,3),t=e.match("[!@#$%^&*?_~.,;=]"),n+=35*this.normalize(t?t.length:1/6,1),t=e.match("[A-Z]"),n+=30*this.normalize(t?t.length:1/6,1),(n*=e.length/8)>100?100:n},e.prototype.normalize=function(e,t){return e-t<=0?e/t:1+e/(e+t/4)*.5},Object.defineProperty(e.prototype,"disabled",{get:function(){return this.el.nativeElement.disabled},enumerable:!1,configurable:!0}),e.prototype.bindScrollListener=function(){var e=this;this.scrollHandler||(this.scrollHandler=new o.ConnectedOverlayScrollHandler(this.el.nativeElement,(function(){o.DomHandler.hasClass(e.panel,"p-connected-overlay-visible")&&e.hideOverlay()}))),this.scrollHandler.bindScrollListener()},e.prototype.unbindScrollListener=function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},e.prototype.bindDocumentResizeListener=function(){this.documentResizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.documentResizeListener)},e.prototype.unbindDocumentResizeListener=function(){this.documentResizeListener&&(window.removeEventListener("resize",this.documentResizeListener),this.documentResizeListener=null)},e.prototype.onWindowResize=function(){this.hideOverlay()},e.prototype.ngOnDestroy=function(){this.panel&&(this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindDocumentResizeListener(),document.body.removeChild(this.panel),this.panel=null,this.meter=null,this.info=null)},e}();l.decorators=[{type:t.Directive,args:[{selector:"[pPassword]",host:{"[class.p-inputtext]":"true","[class.p-component]":"true","[class.p-filled]":"filled"}}]}],l.ctorParameters=function(){return[{type:t.ElementRef},{type:t.NgZone}]},l.propDecorators={promptLabel:[{type:t.Input}],weakLabel:[{type:t.Input}],mediumLabel:[{type:t.Input}],strongLabel:[{type:t.Input}],feedback:[{type:t.Input}],showPassword:[{type:t.Input}],onInput:[{type:t.HostListener,args:["input",["$event"]]}],onFocus:[{type:t.HostListener,args:["focus"]}],onBlur:[{type:t.HostListener,args:["blur"]}],onKeyup:[{type:t.HostListener,args:["keyup",["$event"]]}]};var p={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return u})),multi:!0},u=function(){function e(e,t){this.cd=e,this.config=t,this.mediumRegex="^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})",this.strongRegex="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})",this.feedback=!0,this.showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)",this.hideTransitionOptions=".1s linear",this.overlayVisible=!1,this.focused=!1,this.unmasked=!1,this.value=null,this.onModelChange=function(){},this.onModelTouched=function(){}}return e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"content":e.contentTemplate=t.template;break;case"header":e.headerTemplate=t.template;break;case"footer":e.footerTemplate=t.template;break;default:e.contentTemplate=t.template}}))},e.prototype.ngOnInit=function(){this.infoText=this.promptText(),this.mediumCheckRegExp=new RegExp(this.mediumRegex),this.strongCheckRegExp=new RegExp(this.strongRegex)},e.prototype.onAnimationStart=function(e){switch(e.toState){case"visible":this.overlay=e.element,this.overlay.style.zIndex=String(o.DomHandler.generateZIndex()),this.appendContainer(),this.alignOverlay(),this.bindScrollListener(),this.bindResizeListener();break;case"void":this.unbindScrollListener(),this.unbindResizeListener(),this.overlay=null}},e.prototype.appendContainer=function(){this.appendTo&&("body"===this.appendTo?document.body.appendChild(this.overlay):document.getElementById(this.appendTo).appendChild(this.overlay))},e.prototype.alignOverlay=function(){this.appendTo?(this.overlay.style.minWidth=o.DomHandler.getOuterWidth(this.input.nativeElement)+"px",o.DomHandler.absolutePosition(this.overlay,this.input.nativeElement)):o.DomHandler.relativePosition(this.overlay,this.input.nativeElement)},e.prototype.onInput=function(e){this.value=e.target.value,this.onModelChange(this.value),this.onModelTouched()},e.prototype.onFocus=function(){this.focused=!0,this.feedback&&(this.overlayVisible=!0)},e.prototype.onBlur=function(){this.focused=!1,this.feedback&&(this.overlayVisible=!1)},e.prototype.onKeyUp=function(e){if(this.feedback){var t=e.target.value;this.updateUI(t),this.overlayVisible||(this.overlayVisible=!0)}},e.prototype.updateUI=function(e){var t=null,n=null;switch(this.testStrength(e)){case 1:t=this.weakText(),n={strength:"weak",width:"33.33%"};break;case 2:t=this.mediumText(),n={strength:"medium",width:"66.66%"};break;case 3:t=this.strongText(),n={strength:"strong",width:"100%"};break;default:t=this.promptText(),n=null}this.meter=n,this.infoText=t},e.prototype.onMaskToggle=function(){this.unmasked=!this.unmasked},e.prototype.testStrength=function(e){var t=0;return this.strongCheckRegExp.test(e)?t=3:this.mediumCheckRegExp.test(e)?t=2:e.length&&(t=1),t},e.prototype.writeValue=function(e){this.value=void 0===e?null:e,this.feedback&&this.updateUI(this.value||""),this.cd.markForCheck()},e.prototype.registerOnChange=function(e){this.onModelChange=e},e.prototype.registerOnTouched=function(e){this.onModelTouched=e},e.prototype.setDisabledState=function(e){this.disabled=e},e.prototype.bindScrollListener=function(){var e=this;this.scrollHandler||(this.scrollHandler=new o.ConnectedOverlayScrollHandler(this.input.nativeElement,(function(){e.overlayVisible&&(e.overlayVisible=!1)}))),this.scrollHandler.bindScrollListener()},e.prototype.bindResizeListener=function(){var e=this;this.resizeListener||(this.resizeListener=function(){e.overlayVisible&&(e.overlayVisible=!1)},window.addEventListener("resize",this.resizeListener))},e.prototype.unbindScrollListener=function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},e.prototype.unbindResizeListener=function(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},e.prototype.unbindOutsideClickListener=function(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},e.prototype.containerClass=function(){return{"p-password p-component p-inputwrapper":!0,"p-input-icon-right":this.toggleMask}},e.prototype.inputFieldClass=function(){return{"p-password-input":!0,"p-disabled":this.disabled}},e.prototype.toggleIconClass=function(){return this.unmasked?"pi pi-eye-slash":"pi pi-eye"},e.prototype.strengthClass=function(){return"p-password-strength "+(this.meter?this.meter.strength:"")},e.prototype.filled=function(){return null!=this.value&&this.value.toString().length>0},e.prototype.promptText=function(){return this.promptLabel||this.getTranslation(r.TranslationKeys.PASSWORD_PROMPT)},e.prototype.weakText=function(){return this.weakLabel||this.getTranslation(r.TranslationKeys.WEAK)},e.prototype.mediumText=function(){return this.mediumLabel||this.getTranslation(r.TranslationKeys.MEDIUM)},e.prototype.strongText=function(){return this.strongLabel||this.getTranslation(r.TranslationKeys.STRONG)},e.prototype.restoreAppend=function(){this.overlay&&this.appendTo&&("body"===this.appendTo?document.body.removeChild(this.overlay):document.getElementById(this.appendTo).removeChild(this.overlay))},e.prototype.inputType=function(){return this.unmasked?"text":"password"},e.prototype.getTranslation=function(e){return this.config.getTranslation(e)},e.prototype.ngOnDestroy=function(){this.restoreAppend(),this.unbindResizeListener(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)},e}();u.decorators=[{type:t.Component,args:[{selector:"p-password",template:'\n <div [ngClass]="containerClass()" [ngStyle]="style" [class]="styleClass">\n <input #input [attr.id]="inputId" pInputText [ngClass]="inputFieldClass()" [ngStyle]="inputStyle" [class]="inputStyleClass" [attr.type]="inputType()" [attr.placeholder]="placeholder" [value]="value" (input)="onInput($event)" (focus)="onFocus()" \n (blur)="onBlur()" (keyup)="onKeyUp($event)" />\n <i *ngIf="toggleMask" [ngClass]="toggleIconClass()" (click)="onMaskToggle()"></i>\n <div #overlay *ngIf="overlayVisible" [ngClass]="\'p-password-panel p-component\'" \n [@overlayAnimation]="{value: \'visible\', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}" (@overlayAnimation.start)="onAnimationStart($event)">\n <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>\n <ng-container *ngIf="contentTemplate; else content">\n <ng-container *ngTemplateOutlet="contentTemplate"></ng-container>\n </ng-container>\n <ng-template #content>\n <div class="p-password-meter">\n <div [ngClass]="strengthClass()" [ngStyle]="{\'width\': meter ? meter.width : \'\'}"></div>\n </div>\n <div className="p-password-info">{{infoText}}</div>\n </ng-template>\n <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>\n </div>\n </div>\n ',animations:[i.trigger("overlayAnimation",[i.transition(":enter",[i.style({opacity:0,transform:"scaleY(0.8)"}),i.animate("{{showTransitionParams}}")]),i.transition(":leave",[i.animate("{{hideTransitionParams}}",i.style({opacity:0}))])])],host:{"[class.p-inputwrapper-filled]":"filled()","[class.p-inputwrapper-focus]":"focused"},providers:[p],changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,styles:[".p-password{display:inline-flex;position:relative}.p-password-panel{position:absolute}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;transition:width 1s ease-in-out;width:0}.p-fluid .p-password{display:flex}"]}]}],u.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:r.PrimeNGConfig}]},u.propDecorators={disabled:[{type:t.Input}],promptLabel:[{type:t.Input}],mediumRegex:[{type:t.Input}],strongRegex:[{type:t.Input}],weakLabel:[{type:t.Input}],mediumLabel:[{type:t.Input}],strongLabel:[{type:t.Input}],inputId:[{type:t.Input}],feedback:[{type:t.Input}],appendTo:[{type:t.Input}],toggleMask:[{type:t.Input}],inputStyleClass:[{type:t.Input}],styleClass:[{type:t.Input}],style:[{type:t.Input}],inputStyle:[{type:t.Input}],showTransitionOptions:[{type:t.Input}],hideTransitionOptions:[{type:t.Input}],placeholder:[{type:t.Input}],input:[{type:t.ViewChild,args:["input"]}],templates:[{type:t.ContentChildren,args:[r.PrimeTemplate]}]};var d=function(){};d.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule,a.InputTextModule],exports:[l,u],declarations:[l,u]}]}],e.Password=u,e.PasswordDirective=l,e.PasswordModule=d,e.Password_VALUE_ACCESSOR=p,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=primeng-password.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/app/components/password/password.ts"],"names":["PasswordDirective","el","zone","this","promptLabel","weakLabel","mediumLabel","strongLabel","feedback","Object","defineProperty","prototype","show","nativeElement","type","ngDoCheck","updateFilledState","onInput","e","filled","value","length","createPanel","panel","document","createElement","className","meter","info","textContent","appendChild","style","minWidth","DomHandler","getOuterWidth","body","showOverlay","_this","zIndex","String","zindex","display","runOutsideAngular","setTimeout","addClass","bindScrollListener","bindDocumentResizeListener","absolutePosition","hideOverlay","removeClass","unbindScrollListener","unbindDocumentResizeListener","ngOnDestroy","onFocus","onBlur","onKeyup","target","label","meterPos","score","testStrength","hasClass","backgroundPosition","str","val","grade","match","normalize","x","y","disabled","scrollHandler","ConnectedOverlayScrollHandler","documentResizeListener","onWindowResize","bind","window","addEventListener","removeEventListener","destroy","removeChild","Directive","args","selector","host","[class.p-inputtext]","[class.p-component]","[class.p-filled]","ElementRef","NgZone","Input","HostListener","Password_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","Password","multi","cd","config","mediumRegex","strongRegex","showTransitionOptions","hideTransitionOptions","overlayVisible","focused","unmasked","onModelChange","onModelTouched","ngAfterContentInit","templates","forEach","item","getType","contentTemplate","template","headerTemplate","footerTemplate","ngOnInit","infoText","promptText","mediumCheckRegExp","RegExp","strongCheckRegExp","onAnimationStart","event","toState","overlay","element","generateZIndex","appendContainer","alignOverlay","bindResizeListener","unbindResizeListener","appendTo","getElementById","input","relativePosition","onKeyUp","weakText","strength","width","mediumText","strongText","onMaskToggle","level","test","writeValue","undefined","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","resizeListener","unbindOutsideClickListener","outsideClickListener","containerClass","p-password p-component p-inputwrapper","p-inputwrapper-filled","p-inputwrapper-focus","p-input-icon-right","toggleMask","inputFieldClass","p-password-input","p-disabled","toggleIconClass","strengthClass","toString","getTranslation","TranslationKeys","PASSWORD_PROMPT","WEAK","MEDIUM","STRONG","restoreAppend","inputType","option","Component","animations","trigger","transition","opacity","transform","animate","providers","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ChangeDetectorRef","PrimeNGConfig","ViewChild","ContentChildren","PrimeTemplate","NgModule","imports","CommonModule","InputTextModule","exports","declarations"],"mappings":"stBA4CI,SAAAA,EAAmBC,EAAuBC,GAAvBC,KAAAF,GAAAA,EAAuBE,KAAAD,KAAAA,EA1BjCC,KAAAC,YAAsB,mBAEtBD,KAAAE,UAAoB,OAEpBF,KAAAG,YAAsB,SAEtBH,KAAAI,YAAsB,SAEtBJ,KAAAK,UAAoB,SAE7BC,OAAAC,eAAaV,EAAAW,UAAA,eAAY,KAAzB,SAA0BC,GACtBT,KAAKF,GAAGY,cAAcC,KAAOF,EAAO,OAAS,4CAiBjDZ,EAAAW,UAAAI,UAAA,WACIZ,KAAKa,qBAIThB,EAAAW,UAAAM,QAAA,SAAQC,GACJf,KAAKa,qBAGThB,EAAAW,UAAAK,kBAAA,WACIb,KAAKgB,OAAShB,KAAKF,GAAGY,cAAcO,OAASjB,KAAKF,GAAGY,cAAcO,MAAMC,QAG7ErB,EAAAW,UAAAW,YAAA,WACInB,KAAKoB,MAAQC,SAASC,cAAc,OACpCtB,KAAKoB,MAAMG,UAAY,4EACvBvB,KAAKwB,MAAQH,SAASC,cAAc,OACpCtB,KAAKwB,MAAMD,UAAY,mBACvBvB,KAAKyB,KAAOJ,SAASC,cAAc,OACnCtB,KAAKyB,KAAKF,UAAY,kBACtBvB,KAAKyB,KAAKC,YAAc1B,KAAKC,YAC7BD,KAAKoB,MAAMO,YAAY3B,KAAKwB,OAC5BxB,KAAKoB,MAAMO,YAAY3B,KAAKyB,MAC5BzB,KAAKoB,MAAMQ,MAAMC,SAAWC,EAAAA,WAAWC,cAAc/B,KAAKF,GAAGY,eAAiB,KAC9EW,SAASW,KAAKL,YAAY3B,KAAKoB,QAGnCvB,EAAAW,UAAAyB,YAAA,WAAA,IAAAC,EAAAlC,KACQA,KAAKK,WACAL,KAAKoB,OACNpB,KAAKmB,cAGTnB,KAAKoB,MAAMQ,MAAMO,OAASC,SAASN,EAAAA,WAAWO,QAC9CrC,KAAKoB,MAAMQ,MAAMU,QAAU,QAC3BtC,KAAKD,KAAKwC,mBAAkB,WAExBC,YAAW,WACPV,EAAAA,WAAWW,SAASP,EAAKd,MAAO,+BAChCc,EAAKQ,qBACLR,EAAKS,+BACN,MAEPb,EAAAA,WAAWc,iBAAiB5C,KAAKoB,MAAOpB,KAAKF,GAAGY,iBAIxDb,EAAAW,UAAAqC,YAAA,WAAA,IAAAX,EAAAlC,KACQA,KAAKK,UAAYL,KAAKoB,QACtBU,EAAAA,WAAWW,SAASzC,KAAKoB,MAAO,8BAChCU,EAAAA,WAAWgB,YAAY9C,KAAKoB,MAAO,+BACnCpB,KAAK+C,uBACL/C,KAAKgD,+BAELhD,KAAKD,KAAKwC,mBAAkB,WACxBC,YAAW,WACPN,EAAKe,gBACN,UAMfpD,EAAAW,UAAA0C,QAAA,WACIlD,KAAKiC,eAITpC,EAAAW,UAAA2C,OAAA,WACInD,KAAK6C,eAIThD,EAAAW,UAAA4C,QAAA,SAAQrC,GACJ,GAAIf,KAAKK,SAAU,CACf,IAAIY,EAAQF,EAAEsC,OAAOpC,MACrBqC,EAAQ,KACRC,EAAW,KAEX,GAAqB,IAAjBtC,EAAMC,OACNoC,EAAQtD,KAAKC,YACbsD,EAAW,cAEV,CACD,IAAIC,EAAQxD,KAAKyD,aAAaxC,GAE1BuC,EAAQ,IACRF,EAAQtD,KAAKE,UACbqD,EAAW,aAENC,GAAS,IAAMA,EAAQ,IAC5BF,EAAQtD,KAAKG,YACboD,EAAW,aAENC,GAAS,KACdF,EAAQtD,KAAKI,YACbmD,EAAW,aAIdvD,KAAKoB,OAAUU,EAAAA,WAAW4B,SAAS1D,KAAKoB,MAAO,gCAChDpB,KAAKiC,cAGTjC,KAAKwB,MAAMI,MAAM+B,mBAAqBJ,EACtCvD,KAAKyB,KAAKC,YAAc4B,IAIhCzD,EAAAW,UAAAiD,aAAA,SAAaG,GACT,IACIC,EADAC,EAAgB,EAiBpB,OAdAD,EAAMD,EAAIG,MAAM,SAChBD,GAAqD,GAA5C9D,KAAKgE,UAAUH,EAAMA,EAAI3C,OAAS,EAAE,EAAG,GAEhD2C,EAAMD,EAAIG,MAAM,YAChBD,GAAqD,GAA5C9D,KAAKgE,UAAUH,EAAMA,EAAI3C,OAAS,GAAK,GAEhD2C,EAAMD,EAAIG,MAAM,qBAChBD,GAAqD,GAA5C9D,KAAKgE,UAAUH,EAAMA,EAAI3C,OAAS,EAAE,EAAG,GAEhD2C,EAAMD,EAAIG,MAAM,SAChBD,GAAqD,GAA5C9D,KAAKgE,UAAUH,EAAMA,EAAI3C,OAAS,EAAE,EAAG,IAEhD4C,GAASF,EAAI1C,OAAS,GAEP,IAAM,IAAM4C,GAG/BjE,EAAAW,UAAAwD,UAAA,SAAUC,EAAGC,GAGT,OAFWD,EAAIC,GAEH,EACDD,EAAIC,EAEJ,EAAWD,GAAKA,EAAIC,EAAE,GAAlB,IAGnB5D,OAAAC,eAAIV,EAAAW,UAAA,WAAQ,KAAZ,WACI,OAAOR,KAAKF,GAAGY,cAAcyD,0CAGjCtE,EAAAW,UAAAkC,mBAAA,WAAA,IAAAR,EAAAlC,KACSA,KAAKoE,gBACNpE,KAAKoE,cAAgB,IAAIC,EAAAA,8BAA8BrE,KAAKF,GAAGY,eAAe,WACtEoB,EAAAA,WAAW4B,SAASxB,EAAKd,MAAO,gCAChCc,EAAKW,kBAKjB7C,KAAKoE,cAAc1B,sBAGvB7C,EAAAW,UAAAuC,qBAAA,WACQ/C,KAAKoE,eACLpE,KAAKoE,cAAcrB,wBAI3BlD,EAAAW,UAAAmC,2BAAA,WACI3C,KAAKsE,uBAAyBtE,KAAKuE,eAAeC,KAAKxE,MACvDyE,OAAOC,iBAAiB,SAAU1E,KAAKsE,yBAG3CzE,EAAAW,UAAAwC,6BAAA,WACQhD,KAAKsE,yBACLG,OAAOE,oBAAoB,SAAU3E,KAAKsE,wBAC1CtE,KAAKsE,uBAAyB,OAItCzE,EAAAW,UAAA+D,eAAA,WACIvE,KAAK6C,eAGThD,EAAAW,UAAAyC,YAAA,WACQjD,KAAKoB,QACDpB,KAAKoE,gBACLpE,KAAKoE,cAAcQ,UACnB5E,KAAKoE,cAAgB,MAGzBpE,KAAKgD,+BAEL3B,SAASW,KAAK6C,YAAY7E,KAAKoB,OAC/BpB,KAAKoB,MAAQ,KACbpB,KAAKwB,MAAQ,KACbxB,KAAKyB,KAAO,gCAnOvBqD,EAAAA,UAASC,KAAA,CAAC,CACPC,SAAU,cACVC,KAAM,CACFC,sBAAuB,OACvBC,sBAAuB,OACvBC,mBAAoB,uDAbDC,EAAAA,kBAAgDC,EAAAA,+CAkBtEC,EAAAA,yBAEAA,EAAAA,2BAEAA,EAAAA,2BAEAA,EAAAA,wBAEAA,EAAAA,4BAEAA,EAAAA,uBAsBAC,EAAAA,aAAYT,KAAA,CAAC,QAAS,CAAC,4BA0DvBS,EAAAA,aAAYT,KAAA,CAAC,yBAKbS,EAAAA,aAAYT,KAAA,CAAC,yBAKbS,EAAAA,aAAYT,KAAA,CAAC,QAAS,CAAC,kBA2HfU,EAA+B,CACxCC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAW,WAAM,OAAAC,KAC9BC,OAAO,gBAkHP,SAAAD,EAAoBE,EAA+BC,GAA/BjG,KAAAgG,GAAAA,EAA+BhG,KAAAiG,OAAAA,EAnE1CjG,KAAAkG,YAAsB,yFAEtBlG,KAAAmG,YAAsB,8CAQtBnG,KAAAK,UAAoB,EAcpBL,KAAAoG,sBAAgC,kCAEhCpG,KAAAqG,sBAAgC,aAYzCrG,KAAAsG,gBAA0B,EAM1BtG,KAAAuG,SAAmB,EAEnBvG,KAAAwG,UAAoB,EAcpBxG,KAAAiB,MAAgB,KAEhBjB,KAAAyG,cAA0B,aAE1BzG,KAAA0G,eAA2B,oBAK3BZ,EAAAtF,UAAAmG,mBAAA,WAAA,IAAAzE,EAAAlC,KACIA,KAAK4G,UAAUC,SAAQ,SAACC,GACpB,OAAOA,EAAKC,WACR,IAAK,UACD7E,EAAK8E,gBAAkBF,EAAKG,SAChC,MAEA,IAAK,SACD/E,EAAKgF,eAAiBJ,EAAKG,SAC/B,MAEA,IAAK,SACD/E,EAAKiF,eAAiBL,EAAKG,SAC/B,MAEA,QACI/E,EAAK8E,gBAAkBF,EAAKG,cAM5CnB,EAAAtF,UAAA4G,SAAA,WACIpH,KAAKqH,SAAWrH,KAAKsH,aACrBtH,KAAKuH,kBAAoB,IAAIC,OAAOxH,KAAKkG,aACzClG,KAAKyH,kBAAoB,IAAID,OAAOxH,KAAKmG,cAG7CL,EAAAtF,UAAAkH,iBAAA,SAAiBC,GACb,OAAOA,EAAMC,SACT,IAAK,UACD5H,KAAK6H,QAAUF,EAAMG,QACrB9H,KAAK6H,QAAQjG,MAAMO,OAASC,OAAON,EAAAA,WAAWiG,kBAC9C/H,KAAKgI,kBACLhI,KAAKiI,eACLjI,KAAK0C,qBACL1C,KAAKkI,qBACT,MAEA,IAAK,SACDlI,KAAK+C,uBACL/C,KAAKmI,uBACLnI,KAAK6H,QAAU,OAK3B/B,EAAAtF,UAAAwH,gBAAA,WACQhI,KAAKoI,WACiB,SAAlBpI,KAAKoI,SACL/G,SAASW,KAAKL,YAAY3B,KAAK6H,SAE/BxG,SAASgH,eAAerI,KAAKoI,UAAUzG,YAAY3B,KAAK6H,WAIpE/B,EAAAtF,UAAAyH,aAAA,WACQjI,KAAKoI,UACLpI,KAAK6H,QAAQjG,MAAMC,SAAWC,EAAAA,WAAWC,cAAc/B,KAAKsI,MAAM5H,eAAiB,KACnFoB,EAAAA,WAAWc,iBAAiB5C,KAAK6H,QAAS7H,KAAKsI,MAAM5H,gBAGrDoB,EAAAA,WAAWyG,iBAAiBvI,KAAK6H,QAAS7H,KAAKsI,MAAM5H,gBAI7DoF,EAAAtF,UAAAM,QAAA,SAAQ6G,GACJ3H,KAAKyG,cAAckB,EAAMtE,OAAOpC,OAChCjB,KAAK0G,kBAGTZ,EAAAtF,UAAA0C,QAAA,SAAQyE,GACJ3H,KAAKuG,SAAU,EACXvG,KAAKK,WACLL,KAAKsG,gBAAiB,IAI9BR,EAAAtF,UAAA2C,OAAA,SAAOwE,GACH3H,KAAKuG,SAAU,EACXvG,KAAKK,WACLL,KAAKsG,gBAAiB,IAI9BR,EAAAtF,UAAAgI,QAAA,SAAQb,GACJ,GAAI3H,KAAKK,SAAU,CACf,IAAIY,EAAQ0G,EAAMtE,OAAOpC,MACrBqC,EAAQ,KACR9B,EAAQ,KAEZ,OAAQxB,KAAKyD,aAAaxC,IACtB,KAAK,EACDqC,EAAQtD,KAAKyI,WACbjH,EAAQ,CACJkH,SAAU,OACVC,MAAO,UAEX,MAEJ,KAAK,EACDrF,EAAQtD,KAAK4I,aACbpH,EAAQ,CACJkH,SAAU,SACVC,MAAO,UAEX,MAEJ,KAAK,EACDrF,EAAQtD,KAAK6I,aACbrH,EAAQ,CACJkH,SAAU,SACVC,MAAO,QAEX,MAEJ,QACIrF,EAAQtD,KAAKsH,aACb9F,EAAQ,KAIhBxB,KAAKwB,MAAQA,EACbxB,KAAKqH,SAAW/D,EAEXtD,KAAKsG,iBACNtG,KAAKsG,gBAAiB,KAKlCR,EAAAtF,UAAAsI,aAAA,WACI9I,KAAKwG,UAAYxG,KAAKwG,UAG1BV,EAAAtF,UAAAiD,aAAA,SAAaG,GACT,IAAImF,EAAQ,EASZ,OAPI/I,KAAKyH,kBAAkBuB,KAAKpF,GAC5BmF,EAAQ,EACH/I,KAAKuH,kBAAkByB,KAAKpF,GACjCmF,EAAQ,EACHnF,EAAI1C,SACT6H,EAAQ,GAELA,GAGXjD,EAAAtF,UAAAyI,WAAA,SAAWhI,GAEHjB,KAAKiB,WADKiI,IAAVjI,EACa,KAEAA,EAEjBjB,KAAKgG,GAAGmD,gBAGZrD,EAAAtF,UAAA4I,iBAAA,SAAiBC,GACbrJ,KAAKyG,cAAgB4C,GAGzBvD,EAAAtF,UAAA8I,kBAAA,SAAkBD,GACdrJ,KAAK0G,eAAiB2C,GAG1BvD,EAAAtF,UAAA+I,iBAAA,SAAiB1F,GACb7D,KAAKmE,SAAWN,GAGpBiC,EAAAtF,UAAAkC,mBAAA,WAAA,IAAAR,EAAAlC,KACSA,KAAKoE,gBACNpE,KAAKoE,cAAgB,IAAIC,EAAAA,8BAA8BrE,KAAKsI,MAAM5H,eAAe,WACzEwB,EAAKoE,iBACLpE,EAAKoE,gBAAiB,OAKlCtG,KAAKoE,cAAc1B,sBAGvBoD,EAAAtF,UAAA0H,mBAAA,WAAA,IAAAhG,EAAAlC,KACSA,KAAKwJ,iBACNxJ,KAAKwJ,eAAiB,WACdtH,EAAKoE,iBACLpE,EAAKoE,gBAAiB,IAG9B7B,OAAOC,iBAAiB,SAAU1E,KAAKwJ,kBAI/C1D,EAAAtF,UAAAuC,qBAAA,WACQ/C,KAAKoE,eACLpE,KAAKoE,cAAcrB,wBAI3B+C,EAAAtF,UAAA2H,qBAAA,WACQnI,KAAKwJ,iBACL/E,OAAOE,oBAAoB,SAAU3E,KAAKwJ,gBAC1CxJ,KAAKwJ,eAAiB,OAI9B1D,EAAAtF,UAAAiJ,2BAAA,WACQzJ,KAAK0J,uBACLrI,SAASsD,oBAAoB,QAAS3E,KAAK0J,sBAC3C1J,KAAK0J,qBAAuB,OAIpC5D,EAAAtF,UAAAmJ,eAAA,WACI,MAAO,CAACC,yCAAyC,EAC7CC,wBAAyB7J,KAAKgB,SAC9B8I,uBAAwB9J,KAAKuG,QAC7BwD,qBAAsB/J,KAAKgK,aAInClE,EAAAtF,UAAAyJ,gBAAA,WACI,MAAO,CAACC,oBAAqB,EACrBC,aAAcnK,KAAKmE,WAI/B2B,EAAAtF,UAAA4J,gBAAA,WACI,OAAOpK,KAAKwG,SAAW,kBAAoB,aAG/CV,EAAAtF,UAAA6J,cAAA,WACI,MAAO,wBAAuBrK,KAAKwB,MAAQxB,KAAKwB,MAAMkH,SAAW,KAGrE5C,EAAAtF,UAAAQ,OAAA,WACI,OAAsB,MAAdhB,KAAKiB,OAAiBjB,KAAKiB,MAAMqJ,WAAWpJ,OAAS,GAGjE4E,EAAAtF,UAAA8G,WAAA,WACI,OAAOtH,KAAKC,aAAeD,KAAKuK,eAAeC,EAAAA,gBAAgBC,kBAGnE3E,EAAAtF,UAAAiI,SAAA,WACI,OAAOzI,KAAKE,WAAaF,KAAKuK,eAAeC,EAAAA,gBAAgBE,OAGjE5E,EAAAtF,UAAAoI,WAAA,WACI,OAAO5I,KAAKG,aAAeH,KAAKuK,eAAeC,EAAAA,gBAAgBG,SAGnE7E,EAAAtF,UAAAqI,WAAA,WACI,OAAO7I,KAAKI,aAAeJ,KAAKuK,eAAeC,EAAAA,gBAAgBI,SAGnE9E,EAAAtF,UAAAqK,cAAA,WACQ7K,KAAK6H,SAAW7H,KAAKoI,WACC,SAAlBpI,KAAKoI,SACL/G,SAASW,KAAK6C,YAAY7E,KAAK6H,SAE/BxG,SAASgH,eAAerI,KAAKoI,UAAUvD,YAAY7E,KAAK6H,WAIpE/B,EAAAtF,UAAAsK,UAAA,WACI,OAAO9K,KAAKwG,SAAW,OAAS,YAGpCV,EAAAtF,UAAA+J,eAAA,SAAeQ,GACX,OAAO/K,KAAKiG,OAAOsE,eAAeQ,IAGtCjF,EAAAtF,UAAAyC,YAAA,WACIjD,KAAK6K,gBACL7K,KAAKmI,uBACDnI,KAAKoE,gBACLpE,KAAKoE,cAAcQ,UACnB5E,KAAKoE,cAAgB,gCAtYhC4G,EAAAA,UAASjG,KAAA,CAAC,CACPC,SAAU,aACViC,SAAU,u+CAqBVgE,WAAY,CACRC,EAAAA,QAAQ,mBAAoB,CACxBC,EAAAA,WAAW,SAAU,CACjBvJ,EAAAA,MAAM,CAACwJ,QAAS,EAAGC,UAAW,gBAC9BC,EAAAA,QAAQ,8BAEVH,EAAAA,WAAW,SAAU,CACnBG,EAAAA,QAAQ,2BAA4B1J,EAAAA,MAAM,CAAEwJ,QAAS,UAIjEG,UAAW,CAAC9F,GAEZ+F,gBAAiBC,EAAAA,wBAAwBC,OACzCC,cAAeC,EAAAA,kBAAkBC,0UA3RmLC,EAAAA,yBAKhNC,EAAAA,mDA0RHxG,EAAAA,2BAEAA,EAAAA,2BAEAA,EAAAA,2BAEAA,EAAAA,yBAEAA,EAAAA,2BAEAA,EAAAA,2BAEAA,EAAAA,wBAEAA,EAAAA,wBAEAA,EAAAA,0BAEAA,EAAAA,+BAEAA,EAAAA,0BAEAA,EAAAA,qBAEAA,EAAAA,0BAEAA,EAAAA,qCAEAA,EAAAA,qCAEAA,EAAAA,qBAEAyG,EAAAA,UAASjH,KAAA,CAAC,4BAQVkH,EAAAA,gBAAelH,KAAA,CAACmH,EAAAA,wBA+TrB,iCALCC,EAAAA,SAAQpH,KAAA,CAAC,CACNqH,QAAS,CAACC,EAAAA,aAAcC,EAAAA,iBACxBC,QAAS,CAAC1M,EAAmBiG,GAC7B0G,aAAc,CAAC3M,EAAmBiG","sourcesContent":["import {NgModule,Directive,ElementRef,HostListener,Input,OnDestroy,DoCheck,NgZone, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, QueryList, TemplateRef, Component, AfterContentInit, ViewChild, ChangeDetectorRef, forwardRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DomHandler, ConnectedOverlayScrollHandler} from 'primeng/dom';\nimport {PrimeNGConfig, PrimeTemplate, TranslationKeys} from 'primeng/api';\nimport {InputTextModule} from 'primeng/inputtext';\n\n@Directive({\n selector: '[pPassword]',\n host: {\n '[class.p-inputtext]': 'true',\n '[class.p-component]': 'true',\n '[class.p-filled]': 'filled'\n }\n})\nexport class PasswordDirective implements OnDestroy,DoCheck {\n\n @Input() promptLabel: string = 'Enter a password';\n\n @Input() weakLabel: string = 'Weak';\n\n @Input() mediumLabel: string = 'Medium';\n\n @Input() strongLabel: string = 'Strong';\n\n @Input() feedback: boolean = true;\n\n @Input() set showPassword(show: boolean) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n\n panel: HTMLDivElement;\n\n meter: any;\n\n info: any;\n\n filled: boolean;\n\n scrollHandler: any;\n\n documentResizeListener: any;\n\n constructor(public el: ElementRef, public zone: NgZone) {}\n\n ngDoCheck() {\n this.updateFilledState();\n }\n\n @HostListener('input', ['$event'])\n onInput(e) {\n this.updateFilledState();\n }\n\n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;\n }\n\n createPanel() {\n this.panel = document.createElement('div');\n this.panel.className = 'p-password-panel p-component p-password-panel-overlay p-connected-overlay';\n this.meter = document.createElement('div');\n this.meter.className = 'p-password-meter';\n this.info = document.createElement('div');\n this.info.className = 'p-password-info';\n this.info.textContent = this.promptLabel;\n this.panel.appendChild(this.meter);\n this.panel.appendChild(this.info);\n this.panel.style.minWidth = DomHandler.getOuterWidth(this.el.nativeElement) + 'px';\n document.body.appendChild(this.panel);\n }\n\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\n\n this.panel.style.zIndex = String(++DomHandler.zindex);\n this.panel.style.display = 'block';\n this.zone.runOutsideAngular(() => {\n\n setTimeout(() => {\n DomHandler.addClass(this.panel, 'p-connected-overlay-visible');\n this.bindScrollListener();\n this.bindDocumentResizeListener();\n }, 1);\n });\n DomHandler.absolutePosition(this.panel, this.el.nativeElement);\n }\n }\n\n hideOverlay() {\n if (this.feedback && this.panel) {\n DomHandler.addClass(this.panel, 'p-connected-overlay-hidden');\n DomHandler.removeClass(this.panel, 'p-connected-overlay-visible');\n this.unbindScrollListener();\n this.unbindDocumentResizeListener();\n\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n\n @HostListener('focus')\n onFocus() {\n this.showOverlay();\n }\n\n @HostListener('blur')\n onBlur() {\n this.hideOverlay();\n }\n\n @HostListener('keyup', ['$event'])\n onKeyup(e) {\n if (this.feedback) {\n let value = e.target.value,\n label = null,\n meterPos = null;\n\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n }\n else {\n var score = this.testStrength(value);\n\n if (score < 30) {\n label = this.weakLabel;\n meterPos = '0px -10px';\n }\n else if (score >= 30 && score < 80) {\n label = this.mediumLabel;\n meterPos = '0px -20px';\n }\n else if (score >= 80) {\n label = this.strongLabel;\n meterPos = '0px -30px';\n }\n }\n\n if (!this.panel || !DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n\n this.meter.style.backgroundPosition = meterPos;\n this.info.textContent = label;\n }\n }\n\n testStrength(str: string) {\n let grade: number = 0;\n let val: RegExpMatchArray;\n\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1/4, 1) * 25;\n\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1/2, 3) * 10;\n\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 35;\n\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 30;\n\n grade *= str.length / 8;\n\n return grade > 100 ? 100 : grade;\n }\n\n normalize(x, y) {\n let diff = x - y;\n\n if (diff <= 0)\n return x / y;\n else\n return 1 + 0.5 * (x / (x + y/4));\n }\n\n get disabled(): boolean {\n return this.el.nativeElement.disabled;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n this.hideOverlay();\n }\n\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.unbindDocumentResizeListener();\n\n document.body.removeChild(this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n }\n}\n\n\nexport const Password_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Password),\n multi: true\n};\n@Component({\n selector: 'p-password',\n template: `\n <div [ngClass]=\"containerClass()\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <input #input pInputText [ngClass]=\"inputFieldClass()\" [ngStyle]=\"inputStyle\" [class]=\"inputStyleClass\" [attr.type]=\"inputType()\" [value]=\"value\" (input)=\"onInput($event)\" (focus)=\"onFocus($event)\" \n (blur)=\"onBlur($event)\" (keyup)=\"onKeyUp($event)\" />\n <i *ngIf=\"toggleMask\" [ngClass]=\"toggleIconClass()\" (click)=\"onMaskToggle()\"></i>\n <div #overlay *ngIf=\"overlayVisible\" [ngClass]=\"'p-password-panel p-component'\" \n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onAnimationStart($event)\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <ng-container *ngIf=\"contentTemplate; else content\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n <ng-template #content>\n <div class=\"p-password-meter\">\n <div [ngClass]=\"strengthClass()\" [ngStyle]=\"{'width': meter ? meter.width : ''}\"></div>\n </div>\n <div className=\"p-password-info\">{{infoText}}</div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ opacity: 0 }))\n ])\n ])\n ],\n providers: [Password_VALUE_ACCESSOR],\n styleUrls: ['./password.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class Password implements AfterContentInit,OnInit {\n \n @Input() disabled: boolean;\n\n @Input() promptLabel: string;\n\n @Input() mediumRegex: string = '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})';\n\n @Input() strongRegex: string = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})';\n\n @Input() weakLabel: string;\n\n @Input() mediumLabel: string;\n\n @Input() strongLabel: string;\n\n @Input() feedback: boolean = true;\n\n @Input() appendTo: any;\n\n @Input() toggleMask: boolean;\n\n @Input() inputStyleClass: string;\n\n @Input() styleClass: string;\n\n @Input() style: any;\n\n @Input() inputStyle: any;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @ViewChild('input') input: ElementRef;\n\n contentTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n \n overlayVisible: boolean = false;\n\n meter: any;\n \n infoText: string;\n \n focused: boolean = false;\n \n unmasked: boolean = false;\n\n mediumCheckRegExp: any;\n\n strongCheckRegExp: any;\n\n resizeListener: any;\n\n outsideClickListener: any;\n\n scrollHandler: any;\n\n overlay: any;\n\n value: string = null;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n\n constructor(private cd: ChangeDetectorRef, private config: PrimeNGConfig) {}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n \n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.infoText = this.promptText();\n this.mediumCheckRegExp = new RegExp(this.mediumRegex);\n this.strongCheckRegExp = new RegExp(this.strongRegex);\n }\n\n onAnimationStart(event) {\n switch(event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.overlay.style.zIndex = String(DomHandler.generateZIndex());\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n\n case 'hidden':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.overlay);\n else\n document.getElementById(this.appendTo).appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.appendTo) {\n this.overlay.style.minWidth = DomHandler.getOuterWidth(this.input.nativeElement) + 'px';\n DomHandler.absolutePosition(this.overlay, this.input.nativeElement);\n }\n else {\n DomHandler.relativePosition(this.overlay, this.input.nativeElement);\n }\n }\n\n onInput(event) {\n this.onModelChange(event.target.value);\n this.onModelTouched();\n }\n\n onFocus(event) {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n }\n\n onBlur(event) {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n }\n\n onKeyUp(event) {\n if (this.feedback) {\n let value = event.target.value;\n let label = null;\n let meter = null;\n\n switch (this.testStrength(value)) {\n case 1:\n label = this.weakText();\n meter = {\n strength: 'weak',\n width: '33.33%'\n };\n break;\n\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n\n this.meter = meter;\n this.infoText = label;\n\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n } \n\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n\n testStrength(str) {\n let level = 0;\n\n if (this.strongCheckRegExp.test(str))\n level = 3;\n else if (this.mediumCheckRegExp.test(str))\n level = 2;\n else if (str.length)\n level = 1;\n\n return level;\n }\n\n writeValue(value: any) : void {\n if (value === undefined)\n this.value = null;\n else \n this.value = value;\n \n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.input.nativeElement, () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n }\n\n containerClass() {\n return {'p-password p-component p-inputwrapper': true,\n 'p-inputwrapper-filled': this.filled(),\n 'p-inputwrapper-focus': this.focused,\n 'p-input-icon-right': this.toggleMask\n };\n }\n\n inputFieldClass() {\n return {'p-password-input' : true, \n 'p-disabled': this.disabled\n };\n }\n\n toggleIconClass() {\n return this.unmasked ? 'pi pi-eye-slash' : 'pi pi-eye';\n }\n\n strengthClass() {\n return `p-password-strength ${this.meter ? this.meter.strength : ''}`;\n }\n\n filled() {\n return (this.value != null && this.value.toString().length > 0)\n }\n\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n\n restoreAppend() {\n if (this.overlay && this.appendTo) {\n if (this.appendTo === 'body')\n document.body.removeChild(this.overlay);\n else\n document.getElementById(this.appendTo).removeChild(this.overlay);\n }\n }\n\n inputType() {\n return this.unmasked ? 'text' : 'password';\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n ngOnDestroy() {\n this.restoreAppend();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule],\n exports: [PasswordDirective, Password],\n declarations: [PasswordDirective, Password]\n})\nexport class PasswordModule { }\n"]}
1
+ {"version":3,"sources":["../../src/app/components/password/password.ts"],"names":["PasswordDirective","el","zone","this","promptLabel","weakLabel","mediumLabel","strongLabel","feedback","Object","defineProperty","prototype","show","nativeElement","type","ngDoCheck","updateFilledState","onInput","e","filled","value","length","createPanel","panel","document","createElement","className","meter","info","textContent","appendChild","style","minWidth","DomHandler","getOuterWidth","body","showOverlay","_this","zIndex","String","zindex","display","runOutsideAngular","setTimeout","addClass","bindScrollListener","bindDocumentResizeListener","absolutePosition","hideOverlay","removeClass","unbindScrollListener","unbindDocumentResizeListener","ngOnDestroy","onFocus","onBlur","onKeyup","target","label","meterPos","score","testStrength","hasClass","backgroundPosition","str","val","grade","match","normalize","x","y","disabled","scrollHandler","ConnectedOverlayScrollHandler","documentResizeListener","onWindowResize","bind","window","addEventListener","removeEventListener","destroy","removeChild","Directive","args","selector","host","[class.p-inputtext]","[class.p-component]","[class.p-filled]","ElementRef","NgZone","Input","HostListener","Password_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","Password","multi","cd","config","mediumRegex","strongRegex","showTransitionOptions","hideTransitionOptions","overlayVisible","focused","unmasked","onModelChange","onModelTouched","ngAfterContentInit","templates","forEach","item","getType","contentTemplate","template","headerTemplate","footerTemplate","ngOnInit","infoText","promptText","mediumCheckRegExp","RegExp","strongCheckRegExp","onAnimationStart","event","toState","overlay","element","generateZIndex","appendContainer","alignOverlay","bindResizeListener","unbindResizeListener","appendTo","getElementById","input","relativePosition","onKeyUp","updateUI","weakText","strength","width","mediumText","strongText","onMaskToggle","level","test","writeValue","undefined","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","resizeListener","unbindOutsideClickListener","outsideClickListener","containerClass","p-password p-component p-inputwrapper","p-input-icon-right","toggleMask","inputFieldClass","p-password-input","p-disabled","toggleIconClass","strengthClass","toString","getTranslation","TranslationKeys","PASSWORD_PROMPT","WEAK","MEDIUM","STRONG","restoreAppend","inputType","option","Component","animations","trigger","transition","opacity","transform","animate","[class.p-inputwrapper-filled]","[class.p-inputwrapper-focus]","providers","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ChangeDetectorRef","PrimeNGConfig","ViewChild","ContentChildren","PrimeTemplate","NgModule","imports","CommonModule","InputTextModule","exports","declarations"],"mappings":"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","sourcesContent":["import {NgModule,Directive,ElementRef,HostListener,Input,OnDestroy,DoCheck,NgZone, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, QueryList, TemplateRef, Component, AfterContentInit, ViewChild, ChangeDetectorRef, forwardRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DomHandler, ConnectedOverlayScrollHandler} from 'primeng/dom';\nimport {PrimeNGConfig, PrimeTemplate, TranslationKeys} from 'primeng/api';\nimport {InputTextModule} from 'primeng/inputtext';\n\n@Directive({\n selector: '[pPassword]',\n host: {\n '[class.p-inputtext]': 'true',\n '[class.p-component]': 'true',\n '[class.p-filled]': 'filled'\n }\n})\nexport class PasswordDirective implements OnDestroy,DoCheck {\n\n @Input() promptLabel: string = 'Enter a password';\n\n @Input() weakLabel: string = 'Weak';\n\n @Input() mediumLabel: string = 'Medium';\n\n @Input() strongLabel: string = 'Strong';\n\n @Input() feedback: boolean = true;\n\n @Input() set showPassword(show: boolean) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n\n panel: HTMLDivElement;\n\n meter: any;\n\n info: any;\n\n filled: boolean;\n\n scrollHandler: any;\n\n documentResizeListener: any;\n\n constructor(public el: ElementRef, public zone: NgZone) {}\n\n ngDoCheck() {\n this.updateFilledState();\n }\n\n @HostListener('input', ['$event'])\n onInput(e) {\n this.updateFilledState();\n }\n\n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;\n }\n\n createPanel() {\n this.panel = document.createElement('div');\n this.panel.className = 'p-password-panel p-component p-password-panel-overlay p-connected-overlay';\n this.meter = document.createElement('div');\n this.meter.className = 'p-password-meter';\n this.info = document.createElement('div');\n this.info.className = 'p-password-info';\n this.info.textContent = this.promptLabel;\n this.panel.appendChild(this.meter);\n this.panel.appendChild(this.info);\n this.panel.style.minWidth = DomHandler.getOuterWidth(this.el.nativeElement) + 'px';\n document.body.appendChild(this.panel);\n }\n\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\n\n this.panel.style.zIndex = String(++DomHandler.zindex);\n this.panel.style.display = 'block';\n this.zone.runOutsideAngular(() => {\n\n setTimeout(() => {\n DomHandler.addClass(this.panel, 'p-connected-overlay-visible');\n this.bindScrollListener();\n this.bindDocumentResizeListener();\n }, 1);\n });\n DomHandler.absolutePosition(this.panel, this.el.nativeElement);\n }\n }\n\n hideOverlay() {\n if (this.feedback && this.panel) {\n DomHandler.addClass(this.panel, 'p-connected-overlay-hidden');\n DomHandler.removeClass(this.panel, 'p-connected-overlay-visible');\n this.unbindScrollListener();\n this.unbindDocumentResizeListener();\n\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n\n @HostListener('focus')\n onFocus() {\n this.showOverlay();\n }\n\n @HostListener('blur')\n onBlur() {\n this.hideOverlay();\n }\n\n @HostListener('keyup', ['$event'])\n onKeyup(e) {\n if (this.feedback) {\n let value = e.target.value,\n label = null,\n meterPos = null;\n\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n }\n else {\n var score = this.testStrength(value);\n\n if (score < 30) {\n label = this.weakLabel;\n meterPos = '0px -10px';\n }\n else if (score >= 30 && score < 80) {\n label = this.mediumLabel;\n meterPos = '0px -20px';\n }\n else if (score >= 80) {\n label = this.strongLabel;\n meterPos = '0px -30px';\n }\n }\n\n if (!this.panel || !DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n\n this.meter.style.backgroundPosition = meterPos;\n this.info.textContent = label;\n }\n }\n\n testStrength(str: string) {\n let grade: number = 0;\n let val: RegExpMatchArray;\n\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1/4, 1) * 25;\n\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1/2, 3) * 10;\n\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 35;\n\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 30;\n\n grade *= str.length / 8;\n\n return grade > 100 ? 100 : grade;\n }\n\n normalize(x, y) {\n let diff = x - y;\n\n if (diff <= 0)\n return x / y;\n else\n return 1 + 0.5 * (x / (x + y/4));\n }\n\n get disabled(): boolean {\n return this.el.nativeElement.disabled;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n this.hideOverlay();\n }\n\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.unbindDocumentResizeListener();\n\n document.body.removeChild(this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n }\n}\n\n\nexport const Password_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Password),\n multi: true\n};\n@Component({\n selector: 'p-password',\n template: `\n <div [ngClass]=\"containerClass()\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <input #input [attr.id]=\"inputId\" pInputText [ngClass]=\"inputFieldClass()\" [ngStyle]=\"inputStyle\" [class]=\"inputStyleClass\" [attr.type]=\"inputType()\" [attr.placeholder]=\"placeholder\" [value]=\"value\" (input)=\"onInput($event)\" (focus)=\"onFocus()\" \n (blur)=\"onBlur()\" (keyup)=\"onKeyUp($event)\" />\n <i *ngIf=\"toggleMask\" [ngClass]=\"toggleIconClass()\" (click)=\"onMaskToggle()\"></i>\n <div #overlay *ngIf=\"overlayVisible\" [ngClass]=\"'p-password-panel p-component'\" \n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onAnimationStart($event)\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <ng-container *ngIf=\"contentTemplate; else content\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n <ng-template #content>\n <div class=\"p-password-meter\">\n <div [ngClass]=\"strengthClass()\" [ngStyle]=\"{'width': meter ? meter.width : ''}\"></div>\n </div>\n <div className=\"p-password-info\">{{infoText}}</div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ opacity: 0 }))\n ])\n ])\n ],\n host: {\n '[class.p-inputwrapper-filled]': 'filled()',\n '[class.p-inputwrapper-focus]': 'focused'\n },\n providers: [Password_VALUE_ACCESSOR],\n styleUrls: ['./password.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class Password implements AfterContentInit,OnInit {\n \n @Input() disabled: boolean;\n\n @Input() promptLabel: string;\n\n @Input() mediumRegex: string = '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})';\n\n @Input() strongRegex: string = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})';\n\n @Input() weakLabel: string;\n\n @Input() mediumLabel: string;\n\n @Input() strongLabel: string;\n\n @Input() inputId: string;\n\n @Input() feedback: boolean = true;\n\n @Input() appendTo: any;\n\n @Input() toggleMask: boolean;\n\n @Input() inputStyleClass: string;\n\n @Input() styleClass: string;\n\n @Input() style: any;\n\n @Input() inputStyle: any;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @Input() placeholder: string;\n\n @ViewChild('input') input: ElementRef;\n\n contentTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n \n overlayVisible: boolean = false;\n\n meter: any;\n \n infoText: string;\n \n focused: boolean = false;\n \n unmasked: boolean = false;\n\n mediumCheckRegExp: any;\n\n strongCheckRegExp: any;\n\n resizeListener: any;\n\n outsideClickListener: any;\n\n scrollHandler: any;\n\n overlay: any;\n\n value: string = null;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n\n constructor(private cd: ChangeDetectorRef, private config: PrimeNGConfig) {}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n \n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.infoText = this.promptText();\n this.mediumCheckRegExp = new RegExp(this.mediumRegex);\n this.strongCheckRegExp = new RegExp(this.strongRegex);\n }\n\n onAnimationStart(event) {\n switch(event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.overlay.style.zIndex = String(DomHandler.generateZIndex());\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n\n case 'void':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.overlay);\n else\n document.getElementById(this.appendTo).appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.appendTo) {\n this.overlay.style.minWidth = DomHandler.getOuterWidth(this.input.nativeElement) + 'px';\n DomHandler.absolutePosition(this.overlay, this.input.nativeElement);\n }\n else {\n DomHandler.relativePosition(this.overlay, this.input.nativeElement);\n }\n }\n\n onInput(event) {\n this.value = event.target.value;\n this.onModelChange(this.value);\n this.onModelTouched();\n }\n\n onFocus() {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n }\n\n onBlur() {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n }\n\n onKeyUp(event) {\n if (this.feedback) {\n let value = event.target.value;\n this.updateUI(value);\n\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n }\n \n updateUI(value) {\n let label = null;\n let meter = null;\n\n switch (this.testStrength(value)) {\n case 1:\n label = this.weakText();\n meter = {\n strength: 'weak',\n width: '33.33%'\n };\n break;\n\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n\n this.meter = meter;\n this.infoText = label;\n }\n\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n\n testStrength(str) {\n let level = 0;\n\n if (this.strongCheckRegExp.test(str))\n level = 3;\n else if (this.mediumCheckRegExp.test(str))\n level = 2;\n else if (str.length)\n level = 1;\n\n return level;\n }\n\n writeValue(value: any) : void {\n if (value === undefined)\n this.value = null;\n else \n this.value = value;\n\n if (this.feedback)\n this.updateUI(this.value || \"\");\n \n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.input.nativeElement, () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n }\n\n containerClass() {\n return {'p-password p-component p-inputwrapper': true,\n 'p-input-icon-right': this.toggleMask\n };\n }\n\n inputFieldClass() {\n return {'p-password-input' : true, \n 'p-disabled': this.disabled\n };\n }\n\n toggleIconClass() {\n return this.unmasked ? 'pi pi-eye-slash' : 'pi pi-eye';\n }\n\n strengthClass() {\n return `p-password-strength ${this.meter ? this.meter.strength : ''}`;\n }\n\n filled() {\n return (this.value != null && this.value.toString().length > 0)\n }\n\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n\n restoreAppend() {\n if (this.overlay && this.appendTo) {\n if (this.appendTo === 'body')\n document.body.removeChild(this.overlay);\n else\n document.getElementById(this.appendTo).removeChild(this.overlay);\n }\n }\n\n inputType() {\n return this.unmasked ? 'text' : 'password';\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n ngOnDestroy() {\n this.restoreAppend();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule],\n exports: [PasswordDirective, Password],\n declarations: [PasswordDirective, Password]\n})\nexport class PasswordModule { }\n"]}