primeng 21.0.4 → 21.1.0
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.
- package/fesm2022/primeng-accordion.mjs +4 -0
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +8 -3
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +1 -0
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +1 -0
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +1 -0
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +22 -14
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +1 -0
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +2 -1
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +1 -0
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +1 -0
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +2 -1
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +1 -0
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +1 -0
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +1 -0
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +1 -0
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +1 -0
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +1 -0
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +1 -0
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +1 -0
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +2 -1
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +1 -0
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +3 -0
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +4 -3
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +1 -0
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +2 -1
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +1 -0
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +1 -5
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +1 -0
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +1 -0
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +1 -0
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +1 -0
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +1 -0
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +1 -0
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +1 -0
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-iftalabel.mjs +1 -0
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +1 -0
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +1 -0
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +1 -0
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +1 -0
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +1 -0
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +1 -0
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +569 -6
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +1 -0
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +1 -0
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +1 -0
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +1 -0
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +1 -0
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +2 -1
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +6 -9
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +2 -1
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +1 -0
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +1 -0
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +2 -1
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +1 -0
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +1 -0
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +1 -0
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +1 -0
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +1 -0
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +1 -0
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +3 -2
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +1 -0
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +1 -0
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +1 -0
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +1 -0
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +1 -0
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +1 -0
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +1 -0
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +1 -0
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +1 -1
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +1 -0
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +1 -0
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +2 -1
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +1 -0
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +1 -0
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +1 -0
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +2 -1
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +2 -1
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +1 -0
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +7 -0
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +2 -1
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +1 -0
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +5 -0
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +1 -0
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +1 -0
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +1 -0
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +2 -1
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +1 -0
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +1 -0
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +1 -0
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +1 -0
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +1 -0
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +63 -1
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +3 -5
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +7 -0
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +1 -0
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/package.json +2 -2
- package/types/primeng-accordion.d.ts +4 -0
- package/types/primeng-api.d.ts +1 -1
- package/types/primeng-autocomplete.d.ts +1 -0
- package/types/primeng-avatar.d.ts +1 -0
- package/types/primeng-avatargroup.d.ts +1 -0
- package/types/primeng-badge.d.ts +1 -0
- package/types/primeng-basecomponent.d.ts +2 -0
- package/types/primeng-blockui.d.ts +1 -0
- package/types/primeng-breadcrumb.d.ts +1 -0
- package/types/primeng-button.d.ts +1 -0
- package/types/primeng-buttongroup.d.ts +1 -0
- package/types/primeng-card.d.ts +1 -0
- package/types/primeng-carousel.d.ts +1 -0
- package/types/primeng-cascadeselect.d.ts +1 -0
- package/types/primeng-chart.d.ts +1 -0
- package/types/primeng-checkbox.d.ts +1 -0
- package/types/primeng-chip.d.ts +1 -0
- package/types/primeng-colorpicker.d.ts +1 -0
- package/types/primeng-config.d.ts +5 -1
- package/types/primeng-confirmdialog.d.ts +1 -0
- package/types/primeng-confirmpopup.d.ts +1 -0
- package/types/primeng-contextmenu.d.ts +1 -0
- package/types/primeng-dataview.d.ts +1 -0
- package/types/primeng-datepicker.d.ts +1 -0
- package/types/primeng-dialog.d.ts +1 -0
- package/types/primeng-divider.d.ts +1 -0
- package/types/primeng-dock.d.ts +1 -0
- package/types/primeng-drawer.d.ts +1 -0
- package/types/primeng-dynamicdialog.d.ts +1 -1
- package/types/primeng-editor.d.ts +1 -0
- package/types/primeng-fieldset.d.ts +1 -0
- package/types/primeng-fileupload.d.ts +1 -0
- package/types/primeng-floatlabel.d.ts +1 -0
- package/types/primeng-fluid.d.ts +1 -0
- package/types/primeng-galleria.d.ts +1 -0
- package/types/primeng-iconfield.d.ts +1 -0
- package/types/primeng-iftalabel.d.ts +1 -0
- package/types/primeng-image.d.ts +1 -0
- package/types/primeng-imagecompare.d.ts +1 -0
- package/types/primeng-inplace.d.ts +1 -0
- package/types/primeng-inputgroup.d.ts +1 -0
- package/types/primeng-inputgroupaddon.d.ts +1 -0
- package/types/primeng-inputicon.d.ts +1 -0
- package/types/primeng-inputmask.d.ts +118 -10
- package/types/primeng-inputnumber.d.ts +1 -0
- package/types/primeng-inputotp.d.ts +1 -0
- package/types/primeng-inputtext.d.ts +1 -0
- package/types/primeng-knob.d.ts +1 -0
- package/types/primeng-listbox.d.ts +1 -0
- package/types/primeng-megamenu.d.ts +1 -0
- package/types/primeng-menu.d.ts +1 -0
- package/types/primeng-menubar.d.ts +1 -0
- package/types/primeng-message.d.ts +1 -0
- package/types/primeng-metergroup.d.ts +1 -0
- package/types/primeng-multiselect.d.ts +1 -0
- package/types/primeng-orderlist.d.ts +1 -0
- package/types/primeng-organizationchart.d.ts +1 -0
- package/types/primeng-overlay.d.ts +1 -0
- package/types/primeng-overlaybadge.d.ts +1 -0
- package/types/primeng-paginator.d.ts +1 -0
- package/types/primeng-panel.d.ts +1 -0
- package/types/primeng-panelmenu.d.ts +1 -0
- package/types/primeng-password.d.ts +1 -0
- package/types/primeng-picklist.d.ts +1 -0
- package/types/primeng-popover.d.ts +1 -0
- package/types/primeng-progressbar.d.ts +1 -0
- package/types/primeng-progressspinner.d.ts +1 -0
- package/types/primeng-radiobutton.d.ts +1 -0
- package/types/primeng-rating.d.ts +1 -0
- package/types/primeng-ripple.d.ts +1 -0
- package/types/primeng-scrollpanel.d.ts +1 -0
- package/types/primeng-scrolltop.d.ts +1 -0
- package/types/primeng-select.d.ts +1 -0
- package/types/primeng-selectbutton.d.ts +1 -0
- package/types/primeng-skeleton.d.ts +1 -0
- package/types/primeng-slider.d.ts +1 -0
- package/types/primeng-speeddial.d.ts +2 -1
- package/types/primeng-splitbutton.d.ts +1 -0
- package/types/primeng-splitter.d.ts +1 -0
- package/types/primeng-stepper.d.ts +7 -0
- package/types/primeng-steps.d.ts +1 -0
- package/types/primeng-table.d.ts +1 -0
- package/types/primeng-tabs.d.ts +5 -0
- package/types/primeng-tag.d.ts +1 -0
- package/types/primeng-terminal.d.ts +1 -0
- package/types/primeng-textarea.d.ts +1 -0
- package/types/primeng-tieredmenu.d.ts +1 -0
- package/types/primeng-timeline.d.ts +1 -0
- package/types/primeng-toast.d.ts +1 -0
- package/types/primeng-togglebutton.d.ts +1 -0
- package/types/primeng-toggleswitch.d.ts +1 -0
- package/types/primeng-toolbar.d.ts +1 -0
- package/types/primeng-tooltip.d.ts +18 -2
- package/types/primeng-tree.d.ts +1 -0
- package/types/primeng-treeselect.d.ts +1 -0
- 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":";;;;;;;;;AAGA,MAAM,OAAO,GAAG;AACZ,IAAA,IAAI,EAAE;CACT;AAGK,MAAO,cAAe,SAAQ,SAAS,CAAA;IACzC,IAAI,GAAG,WAAW;IAElB,OAAO,GAAG,OAAO;uGAHR,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAd,cAAc,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;ACCD,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAY,oBAAoB,CAAC;AAE9E;;;AAGG;AAcG,MAAO,SAAU,SAAQ,aAAmC,CAAA;
|
|
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,
|
|
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),
|
|
@@ -130,8 +691,10 @@ const INPUTMASK_VALUE_ACCESSOR = {
|
|
|
130
691
|
/**
|
|
131
692
|
* InputMask component is used to enter input in a certain format such as numeric, date, currency, email and phone.
|
|
132
693
|
* @group Components
|
|
694
|
+
* @deprecated Use pInputMask instead.
|
|
133
695
|
*/
|
|
134
696
|
class InputMask extends BaseInput {
|
|
697
|
+
componentName = 'InputMask';
|
|
135
698
|
_componentStyle = inject(InputMaskStyle);
|
|
136
699
|
$pcInputMask = inject(INPUTMASK_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
|
|
137
700
|
bindDirectiveInstance = inject(Bind, { self: true });
|
|
@@ -928,14 +1491,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
928
1491
|
}] } });
|
|
929
1492
|
class InputMaskModule {
|
|
930
1493
|
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] });
|
|
1494
|
+
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
1495
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InputMaskModule, imports: [InputMask, SharedModule, SharedModule] });
|
|
933
1496
|
}
|
|
934
1497
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InputMaskModule, decorators: [{
|
|
935
1498
|
type: NgModule,
|
|
936
1499
|
args: [{
|
|
937
|
-
imports: [InputMask, SharedModule],
|
|
938
|
-
exports: [InputMask, SharedModule]
|
|
1500
|
+
imports: [InputMask, InputMaskDirective, SharedModule],
|
|
1501
|
+
exports: [InputMask, InputMaskDirective, SharedModule]
|
|
939
1502
|
}]
|
|
940
1503
|
}] });
|
|
941
1504
|
|
|
@@ -943,5 +1506,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
943
1506
|
* Generated bundle index. Do not edit.
|
|
944
1507
|
*/
|
|
945
1508
|
|
|
946
|
-
export { INPUTMASK_VALUE_ACCESSOR, InputMask, InputMaskClasses, InputMaskModule, InputMaskStyle };
|
|
1509
|
+
export { INPUTMASK_VALUE_ACCESSOR, InputMask, InputMaskClasses, InputMaskDirective, InputMaskModule, InputMaskStyle };
|
|
947
1510
|
//# sourceMappingURL=primeng-inputmask.mjs.map
|