primeng 21.0.4 → 21.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/fesm2022/primeng-accordion.mjs +4 -0
  2. package/fesm2022/primeng-accordion.mjs.map +1 -1
  3. package/fesm2022/primeng-autocomplete.mjs +8 -3
  4. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  5. package/fesm2022/primeng-avatar.mjs +1 -0
  6. package/fesm2022/primeng-avatar.mjs.map +1 -1
  7. package/fesm2022/primeng-avatargroup.mjs +1 -0
  8. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  9. package/fesm2022/primeng-badge.mjs +1 -0
  10. package/fesm2022/primeng-badge.mjs.map +1 -1
  11. package/fesm2022/primeng-basecomponent.mjs +22 -14
  12. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  13. package/fesm2022/primeng-blockui.mjs +1 -0
  14. package/fesm2022/primeng-blockui.mjs.map +1 -1
  15. package/fesm2022/primeng-breadcrumb.mjs +2 -1
  16. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  17. package/fesm2022/primeng-button.mjs +1 -0
  18. package/fesm2022/primeng-button.mjs.map +1 -1
  19. package/fesm2022/primeng-buttongroup.mjs +1 -0
  20. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  21. package/fesm2022/primeng-card.mjs +2 -1
  22. package/fesm2022/primeng-card.mjs.map +1 -1
  23. package/fesm2022/primeng-carousel.mjs +1 -0
  24. package/fesm2022/primeng-carousel.mjs.map +1 -1
  25. package/fesm2022/primeng-cascadeselect.mjs +1 -0
  26. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  27. package/fesm2022/primeng-chart.mjs +1 -0
  28. package/fesm2022/primeng-chart.mjs.map +1 -1
  29. package/fesm2022/primeng-checkbox.mjs +1 -0
  30. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  31. package/fesm2022/primeng-chip.mjs +1 -0
  32. package/fesm2022/primeng-chip.mjs.map +1 -1
  33. package/fesm2022/primeng-colorpicker.mjs +1 -0
  34. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  35. package/fesm2022/primeng-confirmdialog.mjs +1 -0
  36. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  37. package/fesm2022/primeng-confirmpopup.mjs +1 -0
  38. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  39. package/fesm2022/primeng-contextmenu.mjs +2 -1
  40. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  41. package/fesm2022/primeng-dataview.mjs +1 -0
  42. package/fesm2022/primeng-dataview.mjs.map +1 -1
  43. package/fesm2022/primeng-datepicker.mjs +3 -0
  44. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  45. package/fesm2022/primeng-dialog.mjs +4 -3
  46. package/fesm2022/primeng-dialog.mjs.map +1 -1
  47. package/fesm2022/primeng-divider.mjs +1 -0
  48. package/fesm2022/primeng-divider.mjs.map +1 -1
  49. package/fesm2022/primeng-dock.mjs +2 -1
  50. package/fesm2022/primeng-dock.mjs.map +1 -1
  51. package/fesm2022/primeng-drawer.mjs +1 -0
  52. package/fesm2022/primeng-drawer.mjs.map +1 -1
  53. package/fesm2022/primeng-dynamicdialog.mjs +1 -5
  54. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  55. package/fesm2022/primeng-editor.mjs +1 -0
  56. package/fesm2022/primeng-editor.mjs.map +1 -1
  57. package/fesm2022/primeng-fieldset.mjs +1 -0
  58. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  59. package/fesm2022/primeng-fileupload.mjs +1 -0
  60. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  61. package/fesm2022/primeng-floatlabel.mjs +1 -0
  62. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  63. package/fesm2022/primeng-fluid.mjs +1 -0
  64. package/fesm2022/primeng-fluid.mjs.map +1 -1
  65. package/fesm2022/primeng-galleria.mjs +1 -0
  66. package/fesm2022/primeng-galleria.mjs.map +1 -1
  67. package/fesm2022/primeng-iconfield.mjs +1 -0
  68. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  69. package/fesm2022/primeng-iftalabel.mjs +1 -0
  70. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  71. package/fesm2022/primeng-image.mjs +1 -0
  72. package/fesm2022/primeng-image.mjs.map +1 -1
  73. package/fesm2022/primeng-imagecompare.mjs +1 -0
  74. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  75. package/fesm2022/primeng-inplace.mjs +1 -0
  76. package/fesm2022/primeng-inplace.mjs.map +1 -1
  77. package/fesm2022/primeng-inputgroup.mjs +1 -0
  78. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  79. package/fesm2022/primeng-inputgroupaddon.mjs +1 -0
  80. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  81. package/fesm2022/primeng-inputicon.mjs +1 -0
  82. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  83. package/fesm2022/primeng-inputmask.mjs +568 -6
  84. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  85. package/fesm2022/primeng-inputnumber.mjs +1 -0
  86. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  87. package/fesm2022/primeng-inputotp.mjs +1 -0
  88. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  89. package/fesm2022/primeng-inputtext.mjs +1 -0
  90. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  91. package/fesm2022/primeng-knob.mjs +1 -0
  92. package/fesm2022/primeng-knob.mjs.map +1 -1
  93. package/fesm2022/primeng-listbox.mjs +1 -0
  94. package/fesm2022/primeng-listbox.mjs.map +1 -1
  95. package/fesm2022/primeng-megamenu.mjs +2 -1
  96. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  97. package/fesm2022/primeng-menu.mjs +6 -9
  98. package/fesm2022/primeng-menu.mjs.map +1 -1
  99. package/fesm2022/primeng-menubar.mjs +2 -1
  100. package/fesm2022/primeng-menubar.mjs.map +1 -1
  101. package/fesm2022/primeng-message.mjs +1 -0
  102. package/fesm2022/primeng-message.mjs.map +1 -1
  103. package/fesm2022/primeng-metergroup.mjs +1 -0
  104. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  105. package/fesm2022/primeng-multiselect.mjs +2 -1
  106. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  107. package/fesm2022/primeng-orderlist.mjs +1 -0
  108. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  109. package/fesm2022/primeng-organizationchart.mjs +1 -0
  110. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  111. package/fesm2022/primeng-overlay.mjs +1 -0
  112. package/fesm2022/primeng-overlay.mjs.map +1 -1
  113. package/fesm2022/primeng-overlaybadge.mjs +1 -0
  114. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  115. package/fesm2022/primeng-paginator.mjs +1 -0
  116. package/fesm2022/primeng-paginator.mjs.map +1 -1
  117. package/fesm2022/primeng-panel.mjs +1 -0
  118. package/fesm2022/primeng-panel.mjs.map +1 -1
  119. package/fesm2022/primeng-panelmenu.mjs +3 -2
  120. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  121. package/fesm2022/primeng-password.mjs +1 -0
  122. package/fesm2022/primeng-password.mjs.map +1 -1
  123. package/fesm2022/primeng-picklist.mjs +1 -0
  124. package/fesm2022/primeng-picklist.mjs.map +1 -1
  125. package/fesm2022/primeng-popover.mjs +1 -0
  126. package/fesm2022/primeng-popover.mjs.map +1 -1
  127. package/fesm2022/primeng-progressbar.mjs +1 -0
  128. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  129. package/fesm2022/primeng-progressspinner.mjs +1 -0
  130. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  131. package/fesm2022/primeng-radiobutton.mjs +1 -0
  132. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  133. package/fesm2022/primeng-rating.mjs +1 -0
  134. package/fesm2022/primeng-rating.mjs.map +1 -1
  135. package/fesm2022/primeng-ripple.mjs +1 -0
  136. package/fesm2022/primeng-ripple.mjs.map +1 -1
  137. package/fesm2022/primeng-scroller.mjs +1 -1
  138. package/fesm2022/primeng-scroller.mjs.map +1 -1
  139. package/fesm2022/primeng-scrollpanel.mjs +1 -0
  140. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  141. package/fesm2022/primeng-scrolltop.mjs +1 -0
  142. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  143. package/fesm2022/primeng-select.mjs +2 -1
  144. package/fesm2022/primeng-select.mjs.map +1 -1
  145. package/fesm2022/primeng-selectbutton.mjs +1 -0
  146. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  147. package/fesm2022/primeng-skeleton.mjs +1 -0
  148. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  149. package/fesm2022/primeng-slider.mjs +1 -0
  150. package/fesm2022/primeng-slider.mjs.map +1 -1
  151. package/fesm2022/primeng-speeddial.mjs +2 -1
  152. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  153. package/fesm2022/primeng-splitbutton.mjs +2 -1
  154. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  155. package/fesm2022/primeng-splitter.mjs +1 -0
  156. package/fesm2022/primeng-splitter.mjs.map +1 -1
  157. package/fesm2022/primeng-stepper.mjs +7 -0
  158. package/fesm2022/primeng-stepper.mjs.map +1 -1
  159. package/fesm2022/primeng-steps.mjs +2 -1
  160. package/fesm2022/primeng-steps.mjs.map +1 -1
  161. package/fesm2022/primeng-table.mjs +1 -0
  162. package/fesm2022/primeng-table.mjs.map +1 -1
  163. package/fesm2022/primeng-tabs.mjs +5 -0
  164. package/fesm2022/primeng-tabs.mjs.map +1 -1
  165. package/fesm2022/primeng-tag.mjs +1 -0
  166. package/fesm2022/primeng-tag.mjs.map +1 -1
  167. package/fesm2022/primeng-terminal.mjs +1 -0
  168. package/fesm2022/primeng-terminal.mjs.map +1 -1
  169. package/fesm2022/primeng-textarea.mjs +1 -0
  170. package/fesm2022/primeng-textarea.mjs.map +1 -1
  171. package/fesm2022/primeng-tieredmenu.mjs +2 -1
  172. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  173. package/fesm2022/primeng-timeline.mjs +1 -0
  174. package/fesm2022/primeng-timeline.mjs.map +1 -1
  175. package/fesm2022/primeng-toast.mjs +1 -0
  176. package/fesm2022/primeng-toast.mjs.map +1 -1
  177. package/fesm2022/primeng-togglebutton.mjs +1 -0
  178. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  179. package/fesm2022/primeng-toggleswitch.mjs +1 -0
  180. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  181. package/fesm2022/primeng-toolbar.mjs +1 -0
  182. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  183. package/fesm2022/primeng-tooltip.mjs +63 -1
  184. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  185. package/fesm2022/primeng-tree.mjs +3 -5
  186. package/fesm2022/primeng-tree.mjs.map +1 -1
  187. package/fesm2022/primeng-treeselect.mjs +7 -0
  188. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  189. package/fesm2022/primeng-treetable.mjs +1 -0
  190. package/fesm2022/primeng-treetable.mjs.map +1 -1
  191. package/package.json +2 -2
  192. package/types/primeng-accordion.d.ts +4 -0
  193. package/types/primeng-api.d.ts +1 -1
  194. package/types/primeng-autocomplete.d.ts +1 -0
  195. package/types/primeng-avatar.d.ts +1 -0
  196. package/types/primeng-avatargroup.d.ts +1 -0
  197. package/types/primeng-badge.d.ts +1 -0
  198. package/types/primeng-basecomponent.d.ts +2 -0
  199. package/types/primeng-blockui.d.ts +1 -0
  200. package/types/primeng-breadcrumb.d.ts +1 -0
  201. package/types/primeng-button.d.ts +1 -0
  202. package/types/primeng-buttongroup.d.ts +1 -0
  203. package/types/primeng-card.d.ts +1 -0
  204. package/types/primeng-carousel.d.ts +1 -0
  205. package/types/primeng-cascadeselect.d.ts +1 -0
  206. package/types/primeng-chart.d.ts +1 -0
  207. package/types/primeng-checkbox.d.ts +1 -0
  208. package/types/primeng-chip.d.ts +1 -0
  209. package/types/primeng-colorpicker.d.ts +1 -0
  210. package/types/primeng-config.d.ts +5 -1
  211. package/types/primeng-confirmdialog.d.ts +1 -0
  212. package/types/primeng-confirmpopup.d.ts +1 -0
  213. package/types/primeng-contextmenu.d.ts +1 -0
  214. package/types/primeng-dataview.d.ts +1 -0
  215. package/types/primeng-datepicker.d.ts +1 -0
  216. package/types/primeng-dialog.d.ts +1 -0
  217. package/types/primeng-divider.d.ts +1 -0
  218. package/types/primeng-dock.d.ts +1 -0
  219. package/types/primeng-drawer.d.ts +1 -0
  220. package/types/primeng-dynamicdialog.d.ts +1 -1
  221. package/types/primeng-editor.d.ts +1 -0
  222. package/types/primeng-fieldset.d.ts +1 -0
  223. package/types/primeng-fileupload.d.ts +1 -0
  224. package/types/primeng-floatlabel.d.ts +1 -0
  225. package/types/primeng-fluid.d.ts +1 -0
  226. package/types/primeng-galleria.d.ts +1 -0
  227. package/types/primeng-iconfield.d.ts +1 -0
  228. package/types/primeng-iftalabel.d.ts +1 -0
  229. package/types/primeng-image.d.ts +1 -0
  230. package/types/primeng-imagecompare.d.ts +1 -0
  231. package/types/primeng-inplace.d.ts +1 -0
  232. package/types/primeng-inputgroup.d.ts +1 -0
  233. package/types/primeng-inputgroupaddon.d.ts +1 -0
  234. package/types/primeng-inputicon.d.ts +1 -0
  235. package/types/primeng-inputmask.d.ts +117 -10
  236. package/types/primeng-inputnumber.d.ts +1 -0
  237. package/types/primeng-inputotp.d.ts +1 -0
  238. package/types/primeng-inputtext.d.ts +1 -0
  239. package/types/primeng-knob.d.ts +1 -0
  240. package/types/primeng-listbox.d.ts +1 -0
  241. package/types/primeng-megamenu.d.ts +1 -0
  242. package/types/primeng-menu.d.ts +1 -0
  243. package/types/primeng-menubar.d.ts +1 -0
  244. package/types/primeng-message.d.ts +1 -0
  245. package/types/primeng-metergroup.d.ts +1 -0
  246. package/types/primeng-multiselect.d.ts +1 -0
  247. package/types/primeng-orderlist.d.ts +1 -0
  248. package/types/primeng-organizationchart.d.ts +1 -0
  249. package/types/primeng-overlay.d.ts +1 -0
  250. package/types/primeng-overlaybadge.d.ts +1 -0
  251. package/types/primeng-paginator.d.ts +1 -0
  252. package/types/primeng-panel.d.ts +1 -0
  253. package/types/primeng-panelmenu.d.ts +1 -0
  254. package/types/primeng-password.d.ts +1 -0
  255. package/types/primeng-picklist.d.ts +1 -0
  256. package/types/primeng-popover.d.ts +1 -0
  257. package/types/primeng-progressbar.d.ts +1 -0
  258. package/types/primeng-progressspinner.d.ts +1 -0
  259. package/types/primeng-radiobutton.d.ts +1 -0
  260. package/types/primeng-rating.d.ts +1 -0
  261. package/types/primeng-ripple.d.ts +1 -0
  262. package/types/primeng-scrollpanel.d.ts +1 -0
  263. package/types/primeng-scrolltop.d.ts +1 -0
  264. package/types/primeng-select.d.ts +1 -0
  265. package/types/primeng-selectbutton.d.ts +1 -0
  266. package/types/primeng-skeleton.d.ts +1 -0
  267. package/types/primeng-slider.d.ts +1 -0
  268. package/types/primeng-speeddial.d.ts +2 -1
  269. package/types/primeng-splitbutton.d.ts +1 -0
  270. package/types/primeng-splitter.d.ts +1 -0
  271. package/types/primeng-stepper.d.ts +7 -0
  272. package/types/primeng-steps.d.ts +1 -0
  273. package/types/primeng-table.d.ts +1 -0
  274. package/types/primeng-tabs.d.ts +5 -0
  275. package/types/primeng-tag.d.ts +1 -0
  276. package/types/primeng-terminal.d.ts +1 -0
  277. package/types/primeng-textarea.d.ts +1 -0
  278. package/types/primeng-tieredmenu.d.ts +1 -0
  279. package/types/primeng-timeline.d.ts +1 -0
  280. package/types/primeng-toast.d.ts +1 -0
  281. package/types/primeng-togglebutton.d.ts +1 -0
  282. package/types/primeng-toggleswitch.d.ts +1 -0
  283. package/types/primeng-toolbar.d.ts +1 -0
  284. package/types/primeng-tooltip.d.ts +18 -2
  285. package/types/primeng-tree.d.ts +1 -0
  286. package/types/primeng-treeselect.d.ts +1 -0
  287. package/types/primeng-treetable.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-inputicon.mjs","sources":["../../src/inputicon/style/inputiconstyle.ts","../../src/inputicon/inputicon.ts","../../src/inputicon/primeng-inputicon.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-inputicon'\n};\n\n@Injectable()\nexport class InputIconStyle extends BaseStyle {\n name = 'inputicon';\n\n classes = classes;\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, InjectionToken, Input, NgModule, ViewEncapsulation } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { InputIconPassThrough } from 'primeng/types/inputicon';\nimport { InputIconStyle } from './style/inputiconstyle';\n\nconst INPUTICON_INSTANCE = new InjectionToken<InputIcon>('INPUTICON_INSTANCE');\n\n/**\n * InputIcon displays an icon.\n * @group Components\n */\n@Component({\n selector: 'p-inputicon, p-inputIcon',\n standalone: true,\n imports: [CommonModule, SharedModule, BindModule],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [InputIconStyle, { provide: INPUTICON_INSTANCE, useExisting: InputIcon }, { provide: PARENT_INSTANCE, useExisting: InputIcon }],\n hostDirectives: [Bind],\n host: {\n '[class]': \"cn(cx('root'), styleClass)\"\n }\n})\nexport class InputIcon extends BaseComponent<InputIconPassThrough> {\n @Input() hostName: any = '';\n /**\n * Style class of the element.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n\n _componentStyle = inject(InputIconStyle);\n\n $pcInputIcon: InputIcon | undefined = inject(INPUTICON_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n\n@NgModule({\n imports: [InputIcon, SharedModule],\n exports: [InputIcon, SharedModule]\n})\nexport class InputIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-inputicon.mjs","sources":["../../src/inputicon/style/inputiconstyle.ts","../../src/inputicon/inputicon.ts","../../src/inputicon/primeng-inputicon.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-inputicon'\n};\n\n@Injectable()\nexport class InputIconStyle extends BaseStyle {\n name = 'inputicon';\n\n classes = classes;\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, InjectionToken, Input, NgModule, ViewEncapsulation } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { InputIconPassThrough } from 'primeng/types/inputicon';\nimport { InputIconStyle } from './style/inputiconstyle';\n\nconst INPUTICON_INSTANCE = new InjectionToken<InputIcon>('INPUTICON_INSTANCE');\n\n/**\n * InputIcon displays an icon.\n * @group Components\n */\n@Component({\n selector: 'p-inputicon, p-inputIcon',\n standalone: true,\n imports: [CommonModule, SharedModule, BindModule],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [InputIconStyle, { provide: INPUTICON_INSTANCE, useExisting: InputIcon }, { provide: PARENT_INSTANCE, useExisting: InputIcon }],\n hostDirectives: [Bind],\n host: {\n '[class]': \"cn(cx('root'), styleClass)\"\n }\n})\nexport class InputIcon extends BaseComponent<InputIconPassThrough> {\n componentName = 'InputIcon';\n\n @Input() hostName: any = '';\n /**\n * Style class of the element.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n\n _componentStyle = inject(InputIconStyle);\n\n $pcInputIcon: InputIcon | undefined = inject(INPUTICON_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n\n@NgModule({\n imports: [InputIcon, SharedModule],\n exports: [InputIcon, SharedModule]\n})\nexport class InputIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@ export * from 'primeng/types/inputmask';
2
2
  import * as i2 from '@angular/common';
3
3
  import { isPlatformBrowser, CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { Injectable, InjectionToken, forwardRef, inject, computed, EventEmitter, booleanAttribute, ViewChild, ContentChildren, ContentChild, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
5
+ import { Injectable, InjectionToken, inject, input, booleanAttribute, output, effect, Directive, forwardRef, computed, EventEmitter, ViewChild, ContentChildren, ContentChild, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
6
6
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
7
  import { getUserAgent, isClient } from '@primeuix/utils';
8
8
  import { SharedModule, PrimeTemplate } from 'primeng/api';
9
9
  import { AutoFocus } from 'primeng/autofocus';
10
- import { PARENT_INSTANCE } from 'primeng/basecomponent';
10
+ import { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';
11
11
  import { BaseInput } from 'primeng/baseinput';
12
12
  import * as i1 from 'primeng/bind';
13
13
  import { Bind, BindModule } from 'primeng/bind';
@@ -122,6 +122,567 @@ var InputMaskClasses;
122
122
  OTHER DEALINGS IN THE SOFTWARE.
123
123
  */
124
124
  const INPUTMASK_INSTANCE = new InjectionToken('INPUTMASK_INSTANCE');
125
+ const INPUTMASK_DIRECTIVE_INSTANCE = new InjectionToken('INPUTMASK_DIRECTIVE_INSTANCE');
126
+ /**
127
+ * InputMask directive is applied directly to input elements to enable masked input.
128
+ * @group Components
129
+ */
130
+ class InputMaskDirective extends BaseComponent {
131
+ $pcInputMaskDirective = inject(INPUTMASK_DIRECTIVE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
132
+ _componentStyle = inject(InputMaskStyle);
133
+ /**
134
+ * Used to pass attributes to DOM elements inside the InputMask directive.
135
+ * @defaultValue undefined
136
+ * @group Props
137
+ */
138
+ pInputMaskPT = input(...(ngDevMode ? [undefined, { debugName: "pInputMaskPT" }] : []));
139
+ /**
140
+ * Indicates whether the component should be rendered without styles.
141
+ * @defaultValue undefined
142
+ * @group Props
143
+ */
144
+ pInputMaskUnstyled = input(...(ngDevMode ? [undefined, { debugName: "pInputMaskUnstyled" }] : []));
145
+ /**
146
+ * Mask pattern.
147
+ * @group Props
148
+ */
149
+ pInputMask = input(...(ngDevMode ? [undefined, { debugName: "pInputMask" }] : []));
150
+ /**
151
+ * Placeholder character in mask, default is underscore.
152
+ * @group Props
153
+ */
154
+ slotChar = input('_', ...(ngDevMode ? [{ debugName: "slotChar" }] : []));
155
+ /**
156
+ * Clears the incomplete value on blur.
157
+ * @group Props
158
+ */
159
+ autoClear = input(true, { ...(ngDevMode ? { debugName: "autoClear" } : {}), transform: booleanAttribute });
160
+ /**
161
+ * Regex pattern for alpha characters.
162
+ * @group Props
163
+ */
164
+ characterPattern = input('[A-Za-z]', ...(ngDevMode ? [{ debugName: "characterPattern" }] : []));
165
+ /**
166
+ * When present, it specifies that whether to clean buffer value from model.
167
+ * @group Props
168
+ */
169
+ keepBuffer = input(false, { ...(ngDevMode ? { debugName: "keepBuffer" } : {}), transform: booleanAttribute });
170
+ /**
171
+ * Callback to invoke when the mask is completed.
172
+ * @group Emits
173
+ */
174
+ onCompleteEvent = output({ alias: 'onComplete' });
175
+ /**
176
+ * Callback to invoke when value changes, emits unmasked value.
177
+ * @group Emits
178
+ */
179
+ onUnmaskedChange = output();
180
+ defs;
181
+ tests;
182
+ partialPosition;
183
+ firstNonMaskPos;
184
+ lastRequiredNonMaskPos;
185
+ len;
186
+ oldVal;
187
+ buffer;
188
+ defaultBuffer;
189
+ focusText;
190
+ caretTimeoutId;
191
+ androidChrome = true;
192
+ focused;
193
+ _inputElement = null;
194
+ _listeners = [];
195
+ isInputVisible(input) {
196
+ const style = getComputedStyle(input);
197
+ return style.display !== 'none' && style.visibility !== 'hidden';
198
+ }
199
+ get inputElement() {
200
+ if (!this._inputElement) {
201
+ const host = this.el.nativeElement;
202
+ this._inputElement = host.querySelector('[data-p-maskable]') || Array.from(host.querySelectorAll('input')).find((input) => this.isInputVisible(input)) || host;
203
+ }
204
+ return this._inputElement;
205
+ }
206
+ constructor() {
207
+ super();
208
+ effect(() => {
209
+ const pt = this.pInputMaskPT();
210
+ pt && this.directivePT.set(pt);
211
+ });
212
+ effect(() => {
213
+ this.pInputMaskUnstyled() && this.directiveUnstyled.set(this.pInputMaskUnstyled());
214
+ });
215
+ effect(() => {
216
+ const maskValue = this.pInputMask();
217
+ if (maskValue) {
218
+ this.initMask();
219
+ }
220
+ });
221
+ if (isPlatformBrowser(this.platformId)) {
222
+ const ua = navigator.userAgent;
223
+ this.androidChrome = /chrome/i.test(ua) && /android/i.test(ua);
224
+ }
225
+ }
226
+ onAfterViewInit() {
227
+ if (isPlatformBrowser(this.platformId) && this.inputElement) {
228
+ const events = [
229
+ ['focus', (e) => this.onInputFocus(e)],
230
+ ['blur', (e) => this.onInputBlur(e)],
231
+ ['keydown', (e) => this.onInputKeydown(e)],
232
+ ['keypress', (e) => this.onKeyPress(e)],
233
+ ['input', (e) => this.onInputChange(e)],
234
+ ['paste', (e) => this.onPaste(e)]
235
+ ];
236
+ events.forEach(([event, handler]) => {
237
+ this.inputElement.addEventListener(event, handler);
238
+ this._listeners.push(() => this.inputElement.removeEventListener(event, handler));
239
+ });
240
+ }
241
+ }
242
+ onDestroy() {
243
+ this._listeners.forEach((unlisten) => unlisten());
244
+ }
245
+ initMask() {
246
+ const maskValue = this.pInputMask();
247
+ if (!maskValue) {
248
+ return;
249
+ }
250
+ this.tests = [];
251
+ this.partialPosition = maskValue.length;
252
+ this.len = maskValue.length;
253
+ this.firstNonMaskPos = null;
254
+ this.defs = {
255
+ '9': '[0-9]',
256
+ a: this.characterPattern(),
257
+ '*': `${this.characterPattern()}|[0-9]`
258
+ };
259
+ const maskTokens = maskValue.split('');
260
+ for (let i = 0; i < maskTokens.length; i++) {
261
+ const c = maskTokens[i];
262
+ if (c == '?') {
263
+ this.len--;
264
+ this.partialPosition = i;
265
+ }
266
+ else if (this.defs[c]) {
267
+ this.tests.push(new RegExp(this.defs[c]));
268
+ if (this.firstNonMaskPos === null) {
269
+ this.firstNonMaskPos = this.tests.length - 1;
270
+ }
271
+ if (i < this.partialPosition) {
272
+ this.lastRequiredNonMaskPos = this.tests.length - 1;
273
+ }
274
+ }
275
+ else {
276
+ this.tests.push(null);
277
+ }
278
+ }
279
+ this.buffer = [];
280
+ for (let i = 0; i < maskTokens.length; i++) {
281
+ const c = maskTokens[i];
282
+ if (c != '?') {
283
+ if (this.defs[c])
284
+ this.buffer.push(this.getPlaceholder(i));
285
+ else
286
+ this.buffer.push(c);
287
+ }
288
+ }
289
+ this.defaultBuffer = this.buffer.join('');
290
+ }
291
+ onInputFocus(event) {
292
+ if (this.inputElement.readOnly || !this.pInputMask()) {
293
+ return;
294
+ }
295
+ this.focused = true;
296
+ this.focusText = this.inputElement.value;
297
+ clearTimeout(this.caretTimeoutId);
298
+ const pos = this.checkVal();
299
+ this.caretTimeoutId = setTimeout(() => {
300
+ if (this.inputElement !== this.inputElement.ownerDocument.activeElement) {
301
+ return;
302
+ }
303
+ this.writeBuffer();
304
+ if (pos == this.pInputMask()?.replace('?', '').length) {
305
+ this.caret(0, pos);
306
+ }
307
+ else {
308
+ this.caret(pos);
309
+ }
310
+ }, 10);
311
+ }
312
+ onInputBlur(e) {
313
+ if (!this.pInputMask()) {
314
+ return;
315
+ }
316
+ this.focused = false;
317
+ // Validate/finalize value on blur (clear incomplete if autoClear)
318
+ if (!this.keepBuffer()) {
319
+ const valueBefore = this.inputElement.value;
320
+ this.checkVal();
321
+ // If value changed, dispatch input event so ngModel gets updated
322
+ if (this.inputElement.value !== valueBefore) {
323
+ this.dispatchInputEvent();
324
+ }
325
+ }
326
+ }
327
+ onInputKeydown(e) {
328
+ if (this.inputElement.readOnly || !this.pInputMask()) {
329
+ return;
330
+ }
331
+ const k = e.which || e.keyCode;
332
+ let pos;
333
+ let begin;
334
+ let end;
335
+ let iPhone = false;
336
+ if (isPlatformBrowser(this.platformId)) {
337
+ iPhone = /iphone/i.test(getUserAgent());
338
+ }
339
+ this.oldVal = this.inputElement.value;
340
+ // backspace, delete, and escape get special treatment
341
+ if (k === 8 || k === 46 || (iPhone && k === 127)) {
342
+ pos = this.caret();
343
+ begin = pos.begin;
344
+ end = pos.end;
345
+ if (end - begin === 0) {
346
+ begin = k !== 46 ? this.seekPrev(begin) : (end = this.seekNext(begin - 1));
347
+ end = k === 46 ? this.seekNext(end) : end;
348
+ }
349
+ this.clearBuffer(begin, end);
350
+ if (this.keepBuffer()) {
351
+ this.shiftL(begin, end - 2);
352
+ }
353
+ else {
354
+ this.shiftL(begin, end - 1);
355
+ }
356
+ // Dispatch input event to notify parent components (like DatePicker)
357
+ this.dispatchInputEvent();
358
+ e.preventDefault();
359
+ }
360
+ else if (k === 13) {
361
+ // enter
362
+ this.onInputBlur(e);
363
+ }
364
+ else if (k === 27) {
365
+ // escape
366
+ this.inputElement.value = this.focusText;
367
+ this.caret(0, this.checkVal());
368
+ e.preventDefault();
369
+ }
370
+ }
371
+ onKeyPress(e) {
372
+ if (this.inputElement.readOnly || !this.pInputMask()) {
373
+ return;
374
+ }
375
+ const k = e.which || e.keyCode;
376
+ const pos = this.caret();
377
+ let p;
378
+ let c;
379
+ let next;
380
+ let completed;
381
+ if (e.ctrlKey || e.altKey || e.metaKey || k < 32 || (k > 34 && k < 41)) {
382
+ return;
383
+ }
384
+ else if (k && k !== 13) {
385
+ if (pos.end - pos.begin !== 0) {
386
+ this.clearBuffer(pos.begin, pos.end);
387
+ this.shiftL(pos.begin, pos.end - 1);
388
+ }
389
+ p = this.seekNext(pos.begin - 1);
390
+ if (p < this.len) {
391
+ c = String.fromCharCode(k);
392
+ if (this.tests[p].test(c)) {
393
+ this.shiftR(p);
394
+ this.buffer[p] = c;
395
+ this.writeBuffer();
396
+ // Dispatch input event to notify parent components (like DatePicker)
397
+ this.dispatchInputEvent();
398
+ next = this.seekNext(p);
399
+ if (isClient() && /android/i.test(getUserAgent())) {
400
+ const proxy = () => {
401
+ this.caret(next);
402
+ };
403
+ setTimeout(proxy, 0);
404
+ }
405
+ else {
406
+ this.caret(next);
407
+ }
408
+ if (pos.begin <= this.lastRequiredNonMaskPos) {
409
+ completed = this.isCompleted();
410
+ }
411
+ }
412
+ }
413
+ e.preventDefault();
414
+ }
415
+ if (completed) {
416
+ this.onCompleteEvent.emit();
417
+ }
418
+ }
419
+ onInputChange(event) {
420
+ if (!this.pInputMask()) {
421
+ return;
422
+ }
423
+ // Skip synthetic events dispatched by dispatchInputEvent() to avoid re-processing
424
+ if (!event.isTrusted) {
425
+ return;
426
+ }
427
+ if (this.androidChrome)
428
+ this.handleAndroidInput(event);
429
+ else
430
+ this.handleInputChange(event);
431
+ }
432
+ onPaste(event) {
433
+ if (!this.pInputMask()) {
434
+ return;
435
+ }
436
+ this.handleInputChange(event);
437
+ }
438
+ // Helper methods
439
+ caret(first, last) {
440
+ let range;
441
+ let begin;
442
+ let end;
443
+ if (!this.inputElement.offsetParent || this.inputElement !== this.inputElement.ownerDocument.activeElement) {
444
+ return;
445
+ }
446
+ if (typeof first == 'number') {
447
+ begin = first;
448
+ end = typeof last === 'number' ? last : begin;
449
+ if (typeof this.inputElement.setSelectionRange === 'function') {
450
+ this.inputElement.setSelectionRange(begin, end);
451
+ }
452
+ else if (this.inputElement['createTextRange']) {
453
+ range = this.inputElement['createTextRange']();
454
+ range.collapse(true);
455
+ range.moveEnd('character', end);
456
+ range.moveStart('character', begin);
457
+ range.select();
458
+ }
459
+ }
460
+ else {
461
+ if (typeof this.inputElement.setSelectionRange === 'function') {
462
+ begin = this.inputElement.selectionStart;
463
+ end = this.inputElement.selectionEnd;
464
+ }
465
+ else if (this.document['selection'] && this.document['selection'].createRange) {
466
+ range = this.document['selection'].createRange();
467
+ begin = 0 - range.duplicate().moveStart('character', -100000);
468
+ end = begin + range.text.length;
469
+ }
470
+ return { begin: begin, end: end };
471
+ }
472
+ }
473
+ isCompleted() {
474
+ for (let i = this.firstNonMaskPos; i <= this.lastRequiredNonMaskPos; i++) {
475
+ if (this.tests[i] && this.buffer[i] === this.getPlaceholder(i)) {
476
+ return false;
477
+ }
478
+ }
479
+ return true;
480
+ }
481
+ getPlaceholder(i) {
482
+ const slotCharValue = this.slotChar();
483
+ if (i < slotCharValue.length) {
484
+ return slotCharValue.charAt(i);
485
+ }
486
+ return slotCharValue.charAt(0);
487
+ }
488
+ seekNext(pos) {
489
+ while (++pos < this.len && !this.tests[pos])
490
+ ;
491
+ return pos;
492
+ }
493
+ seekPrev(pos) {
494
+ while (--pos >= 0 && !this.tests[pos])
495
+ ;
496
+ return pos;
497
+ }
498
+ shiftL(begin, end) {
499
+ let i, j;
500
+ if (begin < 0) {
501
+ return;
502
+ }
503
+ for (i = begin, j = this.seekNext(end); i < this.len; i++) {
504
+ if (this.tests[i]) {
505
+ if (j < this.len && this.tests[i].test(this.buffer[j])) {
506
+ this.buffer[i] = this.buffer[j];
507
+ this.buffer[j] = this.getPlaceholder(j);
508
+ }
509
+ else {
510
+ break;
511
+ }
512
+ j = this.seekNext(j);
513
+ }
514
+ }
515
+ this.writeBuffer();
516
+ this.caret(Math.max(this.firstNonMaskPos, begin));
517
+ }
518
+ shiftR(pos) {
519
+ let i, c, j, t;
520
+ for (i = pos, c = this.getPlaceholder(pos); i < this.len; i++) {
521
+ if (this.tests[i]) {
522
+ j = this.seekNext(i);
523
+ t = this.buffer[i];
524
+ this.buffer[i] = c;
525
+ if (j < this.len && this.tests[j].test(t)) {
526
+ c = t;
527
+ }
528
+ else {
529
+ break;
530
+ }
531
+ }
532
+ }
533
+ }
534
+ handleAndroidInput(e) {
535
+ const curVal = this.inputElement.value;
536
+ const pos = this.caret();
537
+ if (this.oldVal && this.oldVal.length && this.oldVal.length > curVal.length) {
538
+ // a deletion or backspace happened
539
+ this.checkVal(true);
540
+ while (pos.begin > 0 && !this.tests[pos.begin - 1])
541
+ pos.begin--;
542
+ if (pos.begin === 0) {
543
+ while (pos.begin < this.firstNonMaskPos && !this.tests[pos.begin])
544
+ pos.begin++;
545
+ }
546
+ setTimeout(() => {
547
+ this.caret(pos.begin, pos.begin);
548
+ this.onUnmaskedChange.emit(this.getUnmaskedValue());
549
+ if (this.isCompleted()) {
550
+ this.onCompleteEvent.emit();
551
+ }
552
+ }, 0);
553
+ }
554
+ else {
555
+ this.checkVal(true);
556
+ while (pos.begin < this.len && !this.tests[pos.begin])
557
+ pos.begin++;
558
+ setTimeout(() => {
559
+ this.caret(pos.begin, pos.begin);
560
+ this.onUnmaskedChange.emit(this.getUnmaskedValue());
561
+ if (this.isCompleted()) {
562
+ this.onCompleteEvent.emit();
563
+ }
564
+ }, 0);
565
+ }
566
+ }
567
+ handleInputChange(event) {
568
+ if (this.inputElement.readOnly) {
569
+ return;
570
+ }
571
+ setTimeout(() => {
572
+ const pos = this.checkVal(true);
573
+ this.caret(pos);
574
+ this.onUnmaskedChange.emit(this.getUnmaskedValue());
575
+ if (this.isCompleted()) {
576
+ this.onCompleteEvent.emit();
577
+ }
578
+ }, 0);
579
+ }
580
+ clearBuffer(start, end) {
581
+ if (!this.keepBuffer()) {
582
+ let i;
583
+ for (i = start; i < end && i < this.len; i++) {
584
+ if (this.tests[i]) {
585
+ this.buffer[i] = this.getPlaceholder(i);
586
+ }
587
+ }
588
+ }
589
+ }
590
+ writeBuffer() {
591
+ if (this.buffer && this.inputElement) {
592
+ this.inputElement.value = this.buffer.join('');
593
+ }
594
+ }
595
+ /**
596
+ * Dispatches an input event on the host element.
597
+ * This is needed to notify parent components of value changes
598
+ * since programmatic value changes don't trigger native input events.
599
+ */
600
+ dispatchInputEvent() {
601
+ const event = new Event('input', { bubbles: true, cancelable: true });
602
+ this.inputElement.dispatchEvent(event);
603
+ this.onUnmaskedChange.emit(this.getUnmaskedValue());
604
+ }
605
+ checkVal(allow) {
606
+ // try to place characters where they belong
607
+ const test = this.inputElement.value;
608
+ let lastMatch = -1;
609
+ let i;
610
+ let c;
611
+ let pos;
612
+ for (i = 0, pos = 0; i < this.len; i++) {
613
+ if (this.tests[i]) {
614
+ this.buffer[i] = this.getPlaceholder(i);
615
+ while (pos++ < test.length) {
616
+ c = test.charAt(pos - 1);
617
+ if (this.tests[i].test(c)) {
618
+ if (!this.keepBuffer()) {
619
+ this.buffer[i] = c;
620
+ }
621
+ lastMatch = i;
622
+ break;
623
+ }
624
+ }
625
+ if (pos > test.length) {
626
+ this.clearBuffer(i + 1, this.len);
627
+ break;
628
+ }
629
+ }
630
+ else {
631
+ if (this.buffer[i] === test.charAt(pos)) {
632
+ pos++;
633
+ }
634
+ if (i < this.partialPosition) {
635
+ lastMatch = i;
636
+ }
637
+ }
638
+ }
639
+ if (allow) {
640
+ this.writeBuffer();
641
+ }
642
+ else if (lastMatch + 1 < this.partialPosition) {
643
+ if (this.autoClear() || this.buffer.join('') === this.defaultBuffer) {
644
+ // Invalid value. Remove it and replace it with the
645
+ // mask, which is the default behavior.
646
+ if (this.inputElement.value)
647
+ this.inputElement.value = '';
648
+ this.clearBuffer(0, this.len);
649
+ }
650
+ else {
651
+ // Invalid value, but we opt to show the value to the
652
+ // user and allow them to correct their mistake.
653
+ this.writeBuffer();
654
+ }
655
+ }
656
+ else {
657
+ this.writeBuffer();
658
+ this.inputElement.value = this.inputElement.value.substring(0, lastMatch + 1);
659
+ }
660
+ return (this.partialPosition ? i : this.firstNonMaskPos);
661
+ }
662
+ getUnmaskedValue() {
663
+ const unmaskedBuffer = [];
664
+ for (let i = 0; i < this.buffer.length; i++) {
665
+ const c = this.buffer[i];
666
+ if (this.tests[i] && c != this.getPlaceholder(i)) {
667
+ unmaskedBuffer.push(c);
668
+ }
669
+ }
670
+ return unmaskedBuffer.join('');
671
+ }
672
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
673
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: InputMaskDirective, isStandalone: true, selector: "[pInputMask]", inputs: { pInputMaskPT: { classPropertyName: "pInputMaskPT", publicName: "pInputMaskPT", isSignal: true, isRequired: false, transformFunction: null }, pInputMaskUnstyled: { classPropertyName: "pInputMaskUnstyled", publicName: "pInputMaskUnstyled", isSignal: true, isRequired: false, transformFunction: null }, pInputMask: { classPropertyName: "pInputMask", publicName: "pInputMask", isSignal: true, isRequired: false, transformFunction: null }, slotChar: { classPropertyName: "slotChar", publicName: "slotChar", isSignal: true, isRequired: false, transformFunction: null }, autoClear: { classPropertyName: "autoClear", publicName: "autoClear", isSignal: true, isRequired: false, transformFunction: null }, characterPattern: { classPropertyName: "characterPattern", publicName: "characterPattern", isSignal: true, isRequired: false, transformFunction: null }, keepBuffer: { classPropertyName: "keepBuffer", publicName: "keepBuffer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCompleteEvent: "onComplete", onUnmaskedChange: "onUnmaskedChange" }, host: { properties: { "class.p-inputmask": "!$unstyled()" } }, providers: [InputMaskStyle, { provide: INPUTMASK_DIRECTIVE_INSTANCE, useExisting: InputMaskDirective }, { provide: PARENT_INSTANCE, useExisting: InputMaskDirective }], usesInheritance: true, ngImport: i0 });
674
+ }
675
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InputMaskDirective, decorators: [{
676
+ type: Directive,
677
+ args: [{
678
+ selector: '[pInputMask]',
679
+ standalone: true,
680
+ providers: [InputMaskStyle, { provide: INPUTMASK_DIRECTIVE_INSTANCE, useExisting: InputMaskDirective }, { provide: PARENT_INSTANCE, useExisting: InputMaskDirective }],
681
+ host: {
682
+ '[class.p-inputmask]': '!$unstyled()'
683
+ }
684
+ }]
685
+ }], ctorParameters: () => [], propDecorators: { pInputMaskPT: [{ type: i0.Input, args: [{ isSignal: true, alias: "pInputMaskPT", required: false }] }], pInputMaskUnstyled: [{ type: i0.Input, args: [{ isSignal: true, alias: "pInputMaskUnstyled", required: false }] }], pInputMask: [{ type: i0.Input, args: [{ isSignal: true, alias: "pInputMask", required: false }] }], slotChar: [{ type: i0.Input, args: [{ isSignal: true, alias: "slotChar", required: false }] }], autoClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoClear", required: false }] }], characterPattern: [{ type: i0.Input, args: [{ isSignal: true, alias: "characterPattern", required: false }] }], keepBuffer: [{ type: i0.Input, args: [{ isSignal: true, alias: "keepBuffer", required: false }] }], onCompleteEvent: [{ type: i0.Output, args: ["onComplete"] }], onUnmaskedChange: [{ type: i0.Output, args: ["onUnmaskedChange"] }] } });
125
686
  const INPUTMASK_VALUE_ACCESSOR = {
126
687
  provide: NG_VALUE_ACCESSOR,
127
688
  useExisting: forwardRef(() => InputMask),
@@ -132,6 +693,7 @@ const INPUTMASK_VALUE_ACCESSOR = {
132
693
  * @group Components
133
694
  */
134
695
  class InputMask extends BaseInput {
696
+ componentName = 'InputMask';
135
697
  _componentStyle = inject(InputMaskStyle);
136
698
  $pcInputMask = inject(INPUTMASK_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
137
699
  bindDirectiveInstance = inject(Bind, { self: true });
@@ -928,14 +1490,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
928
1490
  }] } });
929
1491
  class InputMaskModule {
930
1492
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InputMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
931
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: InputMaskModule, imports: [InputMask, SharedModule], exports: [InputMask, SharedModule] });
1493
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: InputMaskModule, imports: [InputMask, InputMaskDirective, SharedModule], exports: [InputMask, InputMaskDirective, SharedModule] });
932
1494
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InputMaskModule, imports: [InputMask, SharedModule, SharedModule] });
933
1495
  }
934
1496
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InputMaskModule, decorators: [{
935
1497
  type: NgModule,
936
1498
  args: [{
937
- imports: [InputMask, SharedModule],
938
- exports: [InputMask, SharedModule]
1499
+ imports: [InputMask, InputMaskDirective, SharedModule],
1500
+ exports: [InputMask, InputMaskDirective, SharedModule]
939
1501
  }]
940
1502
  }] });
941
1503
 
@@ -943,5 +1505,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
943
1505
  * Generated bundle index. Do not edit.
944
1506
  */
945
1507
 
946
- export { INPUTMASK_VALUE_ACCESSOR, InputMask, InputMaskClasses, InputMaskModule, InputMaskStyle };
1508
+ export { INPUTMASK_VALUE_ACCESSOR, InputMask, InputMaskClasses, InputMaskDirective, InputMaskModule, InputMaskStyle };
947
1509
  //# sourceMappingURL=primeng-inputmask.mjs.map