primeng 12.2.0-rc.1 → 12.2.3
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/blockui/blockui.d.ts +3 -0
- package/bundles/primeng-accordion.umd.js +4 -6
- package/bundles/primeng-accordion.umd.js.map +1 -1
- package/bundles/primeng-api.umd.js +6 -8
- package/bundles/primeng-api.umd.js.map +1 -1
- package/bundles/primeng-autocomplete.umd.js +5 -7
- package/bundles/primeng-autocomplete.umd.js.map +1 -1
- package/bundles/primeng-avatar.umd.js +4 -6
- package/bundles/primeng-avatar.umd.js.map +1 -1
- package/bundles/primeng-avatargroup.umd.js +4 -6
- package/bundles/primeng-avatargroup.umd.js.map +1 -1
- package/bundles/primeng-badge.umd.js +4 -6
- package/bundles/primeng-badge.umd.js.map +1 -1
- package/bundles/primeng-blockui.umd.js +30 -13
- package/bundles/primeng-blockui.umd.js.map +1 -1
- package/bundles/primeng-breadcrumb.umd.js +5 -7
- package/bundles/primeng-breadcrumb.umd.js.map +1 -1
- package/bundles/primeng-button.umd.js +12 -9
- package/bundles/primeng-button.umd.js.map +1 -1
- package/bundles/primeng-calendar.umd.js +5 -7
- package/bundles/primeng-calendar.umd.js.map +1 -1
- package/bundles/primeng-captcha.umd.js +4 -6
- package/bundles/primeng-captcha.umd.js.map +1 -1
- package/bundles/primeng-card.umd.js +4 -6
- package/bundles/primeng-card.umd.js.map +1 -1
- package/bundles/primeng-carousel.umd.js +5 -7
- package/bundles/primeng-carousel.umd.js.map +1 -1
- package/bundles/primeng-cascadeselect.umd.js +34 -15
- package/bundles/primeng-cascadeselect.umd.js.map +1 -1
- package/bundles/primeng-chart.umd.js +7 -8
- package/bundles/primeng-chart.umd.js.map +1 -1
- package/bundles/primeng-checkbox.umd.js +5 -7
- package/bundles/primeng-checkbox.umd.js.map +1 -1
- package/bundles/primeng-chip.umd.js +4 -6
- package/bundles/primeng-chip.umd.js.map +1 -1
- package/bundles/primeng-chips.umd.js +7 -8
- package/bundles/primeng-chips.umd.js.map +1 -1
- package/bundles/primeng-codehighlighter.umd.js +4 -6
- package/bundles/primeng-codehighlighter.umd.js.map +1 -1
- package/bundles/primeng-colorpicker.umd.js +4 -6
- package/bundles/primeng-colorpicker.umd.js.map +1 -1
- package/bundles/primeng-confirmdialog.umd.js +14 -13
- package/bundles/primeng-confirmdialog.umd.js.map +1 -1
- package/bundles/primeng-confirmpopup.umd.js +22 -7
- package/bundles/primeng-confirmpopup.umd.js.map +1 -1
- package/bundles/primeng-contextmenu.umd.js +5 -7
- package/bundles/primeng-contextmenu.umd.js.map +1 -1
- package/bundles/primeng-dataview.umd.js +4 -6
- package/bundles/primeng-dataview.umd.js.map +1 -1
- package/bundles/primeng-defer.umd.js +4 -6
- package/bundles/primeng-defer.umd.js.map +1 -1
- package/bundles/primeng-dialog.umd.js +4 -6
- package/bundles/primeng-dialog.umd.js.map +1 -1
- package/bundles/primeng-divider.umd.js +4 -6
- package/bundles/primeng-divider.umd.js.map +1 -1
- package/bundles/primeng-dock.umd.js +4 -6
- package/bundles/primeng-dock.umd.js.map +1 -1
- package/bundles/primeng-dom.umd.js +4 -4
- package/bundles/primeng-dom.umd.js.map +1 -1
- package/bundles/primeng-dragdrop.umd.js +4 -6
- package/bundles/primeng-dragdrop.umd.js.map +1 -1
- package/bundles/primeng-dropdown.umd.js +24 -19
- package/bundles/primeng-dropdown.umd.js.map +1 -1
- package/bundles/primeng-dynamicdialog.umd.js +12 -11
- package/bundles/primeng-dynamicdialog.umd.js.map +1 -1
- package/bundles/primeng-editor.umd.js +6 -8
- package/bundles/primeng-editor.umd.js.map +1 -1
- package/bundles/primeng-fieldset.umd.js +4 -6
- package/bundles/primeng-fieldset.umd.js.map +1 -1
- package/bundles/primeng-fileupload.umd.js +5 -7
- package/bundles/primeng-fileupload.umd.js.map +1 -1
- package/bundles/primeng-focustrap.umd.js +4 -6
- package/bundles/primeng-focustrap.umd.js.map +1 -1
- package/bundles/primeng-fullcalendar.umd.js +4 -6
- package/bundles/primeng-fullcalendar.umd.js.map +1 -1
- package/bundles/primeng-galleria.umd.js +5 -7
- package/bundles/primeng-galleria.umd.js.map +1 -1
- package/bundles/primeng-gmap.umd.js +5 -7
- package/bundles/primeng-gmap.umd.js.map +1 -1
- package/bundles/primeng-image.umd.js +4 -6
- package/bundles/primeng-image.umd.js.map +1 -1
- package/bundles/primeng-inplace.umd.js +4 -6
- package/bundles/primeng-inplace.umd.js.map +1 -1
- package/bundles/primeng-inputmask.umd.js +4 -6
- package/bundles/primeng-inputmask.umd.js.map +1 -1
- package/bundles/primeng-inputnumber.umd.js +5 -7
- package/bundles/primeng-inputnumber.umd.js.map +1 -1
- package/bundles/primeng-inputswitch.umd.js +4 -6
- package/bundles/primeng-inputswitch.umd.js.map +1 -1
- package/bundles/primeng-inputtext.umd.js +12 -9
- package/bundles/primeng-inputtext.umd.js.map +1 -1
- package/bundles/primeng-inputtextarea.umd.js +4 -6
- package/bundles/primeng-inputtextarea.umd.js.map +1 -1
- package/bundles/primeng-keyfilter.umd.js +5 -7
- package/bundles/primeng-keyfilter.umd.js.map +1 -1
- package/bundles/primeng-knob.umd.js +4 -6
- package/bundles/primeng-knob.umd.js.map +1 -1
- package/bundles/primeng-lightbox.umd.js +4 -6
- package/bundles/primeng-lightbox.umd.js.map +1 -1
- package/bundles/primeng-listbox.umd.js +7 -9
- package/bundles/primeng-listbox.umd.js.map +1 -1
- package/bundles/primeng-megamenu.umd.js +4 -6
- package/bundles/primeng-megamenu.umd.js.map +1 -1
- package/bundles/primeng-menu.umd.js +49 -9
- package/bundles/primeng-menu.umd.js.map +1 -1
- package/bundles/primeng-menubar.umd.js +4 -6
- package/bundles/primeng-menubar.umd.js.map +1 -1
- package/bundles/primeng-message.umd.js +4 -6
- package/bundles/primeng-message.umd.js.map +1 -1
- package/bundles/primeng-messages.umd.js +5 -7
- package/bundles/primeng-messages.umd.js.map +1 -1
- package/bundles/primeng-multiselect.umd.js +9 -10
- package/bundles/primeng-multiselect.umd.js.map +1 -1
- package/bundles/primeng-orderlist.umd.js +5 -7
- package/bundles/primeng-orderlist.umd.js.map +1 -1
- package/bundles/primeng-organizationchart.umd.js +7 -9
- package/bundles/primeng-organizationchart.umd.js.map +1 -1
- package/bundles/primeng-overlaypanel.umd.js +4 -6
- package/bundles/primeng-overlaypanel.umd.js.map +1 -1
- package/bundles/primeng-paginator.umd.js +6 -8
- package/bundles/primeng-paginator.umd.js.map +1 -1
- package/bundles/primeng-panel.umd.js +4 -6
- package/bundles/primeng-panel.umd.js.map +1 -1
- package/bundles/primeng-panelmenu.umd.js +42 -14
- package/bundles/primeng-panelmenu.umd.js.map +1 -1
- package/bundles/primeng-password.umd.js +16 -10
- package/bundles/primeng-password.umd.js.map +1 -1
- package/bundles/primeng-picklist.umd.js +4 -6
- package/bundles/primeng-picklist.umd.js.map +1 -1
- package/bundles/primeng-progressbar.umd.js +4 -6
- package/bundles/primeng-progressbar.umd.js.map +1 -1
- package/bundles/primeng-progressspinner.umd.js +4 -6
- package/bundles/primeng-progressspinner.umd.js.map +1 -1
- package/bundles/primeng-radiobutton.umd.js +4 -6
- package/bundles/primeng-radiobutton.umd.js.map +1 -1
- package/bundles/primeng-rating.umd.js +4 -6
- package/bundles/primeng-rating.umd.js.map +1 -1
- package/bundles/primeng-ripple.umd.js +4 -6
- package/bundles/primeng-ripple.umd.js.map +1 -1
- package/bundles/primeng-scrollpanel.umd.js +4 -6
- package/bundles/primeng-scrollpanel.umd.js.map +1 -1
- package/bundles/primeng-scrolltop.umd.js +4 -6
- package/bundles/primeng-scrolltop.umd.js.map +1 -1
- package/bundles/primeng-selectbutton.umd.js +5 -7
- package/bundles/primeng-selectbutton.umd.js.map +1 -1
- package/bundles/primeng-sidebar.umd.js +10 -10
- package/bundles/primeng-sidebar.umd.js.map +1 -1
- package/bundles/primeng-skeleton.umd.js +4 -6
- package/bundles/primeng-skeleton.umd.js.map +1 -1
- package/bundles/primeng-slidemenu.umd.js +63 -10
- package/bundles/primeng-slidemenu.umd.js.map +1 -1
- package/bundles/primeng-slider.umd.js +4 -6
- package/bundles/primeng-slider.umd.js.map +1 -1
- package/bundles/primeng-speeddial.umd.js +4 -6
- package/bundles/primeng-speeddial.umd.js.map +1 -1
- package/bundles/primeng-spinner.umd.js +4 -6
- package/bundles/primeng-spinner.umd.js.map +1 -1
- package/bundles/primeng-splitbutton.umd.js +4 -6
- package/bundles/primeng-splitbutton.umd.js.map +1 -1
- package/bundles/primeng-splitter.umd.js +5 -7
- package/bundles/primeng-splitter.umd.js.map +1 -1
- package/bundles/primeng-steps.umd.js +4 -6
- package/bundles/primeng-steps.umd.js.map +1 -1
- package/bundles/primeng-styleclass.umd.js +4 -6
- package/bundles/primeng-styleclass.umd.js.map +1 -1
- package/bundles/primeng-table.umd.js +28 -32
- package/bundles/primeng-table.umd.js.map +1 -1
- package/bundles/primeng-tabmenu.umd.js +5 -7
- package/bundles/primeng-tabmenu.umd.js.map +1 -1
- package/bundles/primeng-tabview.umd.js +4 -6
- package/bundles/primeng-tabview.umd.js.map +1 -1
- package/bundles/primeng-tag.umd.js +4 -6
- package/bundles/primeng-tag.umd.js.map +1 -1
- package/bundles/primeng-terminal.umd.js +4 -6
- package/bundles/primeng-terminal.umd.js.map +1 -1
- package/bundles/primeng-tieredmenu.umd.js +4 -6
- package/bundles/primeng-tieredmenu.umd.js.map +1 -1
- package/bundles/primeng-timeline.umd.js +4 -6
- package/bundles/primeng-timeline.umd.js.map +1 -1
- package/bundles/primeng-toast.umd.js +21 -17
- package/bundles/primeng-toast.umd.js.map +1 -1
- package/bundles/primeng-togglebutton.umd.js +4 -6
- package/bundles/primeng-togglebutton.umd.js.map +1 -1
- package/bundles/primeng-toolbar.umd.js +4 -6
- package/bundles/primeng-toolbar.umd.js.map +1 -1
- package/bundles/primeng-tooltip.umd.js +5 -7
- package/bundles/primeng-tooltip.umd.js.map +1 -1
- package/bundles/primeng-tree.umd.js +5 -7
- package/bundles/primeng-tree.umd.js.map +1 -1
- package/bundles/primeng-treeselect.umd.js +12 -7
- package/bundles/primeng-treeselect.umd.js.map +1 -1
- package/bundles/primeng-treetable.umd.js +6 -8
- package/bundles/primeng-treetable.umd.js.map +1 -1
- package/bundles/primeng-tristatecheckbox.umd.js +4 -6
- package/bundles/primeng-tristatecheckbox.umd.js.map +1 -1
- package/bundles/primeng-utils.umd.js +3 -3
- package/bundles/primeng-utils.umd.js.map +1 -1
- package/bundles/primeng-virtualscroller.umd.js +4 -6
- package/bundles/primeng-virtualscroller.umd.js.map +1 -1
- package/bundles/primeng.umd.js +2 -2
- package/cascadeselect/cascadeselect.d.ts +2 -1
- package/confirmpopup/confirmpopup.d.ts +3 -1
- package/dropdown/dropdown.d.ts +3 -1
- package/esm2015/api/confirmationservice.js +2 -2
- package/esm2015/blockui/blockui.js +25 -5
- package/esm2015/breadcrumb/breadcrumb.js +1 -1
- package/esm2015/button/button.js +9 -4
- package/esm2015/cascadeselect/cascadeselect.js +29 -10
- package/esm2015/chart/chart.js +3 -2
- package/esm2015/chips/chips.js +3 -2
- package/esm2015/confirmdialog/confirmdialog.js +12 -9
- package/esm2015/confirmpopup/confirmpopup.js +19 -2
- package/esm2015/dom/domhandler.js +2 -2
- package/esm2015/dropdown/dropdown.js +21 -14
- package/esm2015/dynamicdialog/dynamicdialog-ref.js +2 -2
- package/esm2015/dynamicdialog/dynamicdialog.js +8 -5
- package/esm2015/editor/editor.js +7 -7
- package/esm2015/inputtext/inputtext.js +9 -4
- package/esm2015/listbox/listbox.js +3 -3
- package/esm2015/menu/menu.js +47 -5
- package/esm2015/multiselect/multiselect.js +5 -4
- package/esm2015/organizationchart/organizationchart.js +3 -3
- package/esm2015/paginator/paginator.js +1 -1
- package/esm2015/panelmenu/panelmenu.js +49 -18
- package/esm2015/password/password.js +17 -9
- package/esm2015/sidebar/sidebar.js +7 -5
- package/esm2015/slidemenu/slidemenu.js +76 -22
- package/esm2015/table/table.js +28 -30
- package/esm2015/tabmenu/tabmenu.js +1 -1
- package/esm2015/toast/toast.js +14 -9
- package/esm2015/tooltip/tooltip.js +2 -2
- package/esm2015/treeselect/treeselect.js +8 -1
- package/esm2015/treetable/treetable.js +2 -2
- package/fesm2015/primeng-api.js +1 -1
- package/fesm2015/primeng-api.js.map +1 -1
- package/fesm2015/primeng-blockui.js +24 -4
- package/fesm2015/primeng-blockui.js.map +1 -1
- package/fesm2015/primeng-breadcrumb.js +1 -1
- package/fesm2015/primeng-button.js +8 -3
- package/fesm2015/primeng-button.js.map +1 -1
- package/fesm2015/primeng-cascadeselect.js +28 -9
- package/fesm2015/primeng-cascadeselect.js.map +1 -1
- package/fesm2015/primeng-chart.js +2 -1
- package/fesm2015/primeng-chart.js.map +1 -1
- package/fesm2015/primeng-chips.js +2 -1
- package/fesm2015/primeng-chips.js.map +1 -1
- package/fesm2015/primeng-confirmdialog.js +11 -8
- package/fesm2015/primeng-confirmdialog.js.map +1 -1
- package/fesm2015/primeng-confirmpopup.js +18 -1
- package/fesm2015/primeng-confirmpopup.js.map +1 -1
- package/fesm2015/primeng-dom.js +1 -1
- package/fesm2015/primeng-dom.js.map +1 -1
- package/fesm2015/primeng-dropdown.js +20 -13
- package/fesm2015/primeng-dropdown.js.map +1 -1
- package/fesm2015/primeng-dynamicdialog.js +8 -5
- package/fesm2015/primeng-dynamicdialog.js.map +1 -1
- package/fesm2015/primeng-editor.js +6 -6
- package/fesm2015/primeng-editor.js.map +1 -1
- package/fesm2015/primeng-inputtext.js +8 -3
- package/fesm2015/primeng-inputtext.js.map +1 -1
- package/fesm2015/primeng-listbox.js +2 -2
- package/fesm2015/primeng-listbox.js.map +1 -1
- package/fesm2015/primeng-menu.js +46 -4
- package/fesm2015/primeng-menu.js.map +1 -1
- package/fesm2015/primeng-multiselect.js +4 -3
- package/fesm2015/primeng-multiselect.js.map +1 -1
- package/fesm2015/primeng-organizationchart.js +2 -2
- package/fesm2015/primeng-organizationchart.js.map +1 -1
- package/fesm2015/primeng-paginator.js +1 -1
- package/fesm2015/primeng-panelmenu.js +48 -17
- package/fesm2015/primeng-panelmenu.js.map +1 -1
- package/fesm2015/primeng-password.js +16 -8
- package/fesm2015/primeng-password.js.map +1 -1
- package/fesm2015/primeng-sidebar.js +6 -4
- package/fesm2015/primeng-sidebar.js.map +1 -1
- package/fesm2015/primeng-slidemenu.js +76 -22
- package/fesm2015/primeng-slidemenu.js.map +1 -1
- package/fesm2015/primeng-table.js +27 -29
- package/fesm2015/primeng-table.js.map +1 -1
- package/fesm2015/primeng-tabmenu.js +1 -1
- package/fesm2015/primeng-toast.js +13 -8
- package/fesm2015/primeng-toast.js.map +1 -1
- package/fesm2015/primeng-tooltip.js +1 -1
- package/fesm2015/primeng-tooltip.js.map +1 -1
- package/fesm2015/primeng-treeselect.js +7 -0
- package/fesm2015/primeng-treeselect.js.map +1 -1
- package/fesm2015/primeng-treetable.js +1 -1
- package/fesm2015/primeng-treetable.js.map +1 -1
- package/inputtext/inputtext.d.ts +6 -4
- package/menu/menu.d.ts +3 -0
- package/package.json +2 -2
- package/panelmenu/panelmenu.d.ts +4 -1
- package/password/password.d.ts +6 -4
- package/resources/components/breadcrumb/breadcrumb.css +4 -0
- package/resources/components/radiobutton/radiobutton.css +2 -1
- package/resources/components/tabmenu/tabmenu.css +4 -0
- package/resources/primeng.css +2 -0
- package/resources/primeng.min.css +1 -1
- package/resources/themes/arya-blue/theme.css +4 -2
- package/resources/themes/arya-green/theme.css +4 -2
- package/resources/themes/arya-orange/theme.css +4 -2
- package/resources/themes/arya-purple/theme.css +4 -2
- package/resources/themes/bootstrap4-dark-blue/theme.css +4 -2
- package/resources/themes/bootstrap4-dark-purple/theme.css +4 -2
- package/resources/themes/bootstrap4-light-blue/theme.css +4 -2
- package/resources/themes/bootstrap4-light-purple/theme.css +4 -2
- package/resources/themes/fluent-light/theme.css +4 -2
- package/resources/themes/luna-amber/theme.css +4 -2
- package/resources/themes/luna-blue/theme.css +4 -2
- package/resources/themes/luna-green/theme.css +4 -2
- package/resources/themes/luna-pink/theme.css +4 -2
- package/resources/themes/md-dark-deeppurple/theme.css +191 -30
- package/resources/themes/md-dark-indigo/theme.css +191 -30
- package/resources/themes/md-light-deeppurple/theme.css +191 -30
- package/resources/themes/md-light-indigo/theme.css +191 -30
- package/resources/themes/mdc-dark-deeppurple/theme.css +191 -30
- package/resources/themes/mdc-dark-indigo/theme.css +191 -30
- package/resources/themes/mdc-light-deeppurple/theme.css +191 -30
- package/resources/themes/mdc-light-indigo/theme.css +191 -30
- package/resources/themes/nova/theme.css +4 -2
- package/resources/themes/nova-accent/theme.css +4 -2
- package/resources/themes/nova-alt/theme.css +4 -2
- package/resources/themes/rhea/theme.css +4 -2
- package/resources/themes/saga-blue/theme.css +4 -2
- package/resources/themes/saga-green/theme.css +4 -2
- package/resources/themes/saga-orange/theme.css +4 -2
- package/resources/themes/saga-purple/theme.css +4 -2
- package/resources/themes/tailwind-light/theme.css +3 -2
- package/resources/themes/vela-blue/theme.css +4 -2
- package/resources/themes/vela-green/theme.css +4 -2
- package/resources/themes/vela-orange/theme.css +4 -2
- package/resources/themes/vela-purple/theme.css +4 -2
- package/slidemenu/slidemenu.d.ts +7 -0
- package/toast/toast.d.ts +1 -0
@@ -225,7 +225,7 @@ Paginator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12
|
|
225
225
|
<ng-container *ngTemplateOutlet="templateRight; context: {$implicit: paginatorState}"></ng-container>
|
226
226
|
</div>
|
227
227
|
</div>
|
228
|
-
`, isInline: true, styles: [".p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-current,.p-paginator-first,.p-paginator-last,.p-paginator-next,.p-paginator-page,.p-paginator-prev{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}"], components: [{ type: i1.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide"] }, { type: i2.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.Ripple, selector: "[pRipple]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
228
|
+
`, isInline: true, styles: [".p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-current,.p-paginator-first,.p-paginator-last,.p-paginator-next,.p-paginator-page,.p-paginator-prev{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}"], components: [{ type: i1.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i2.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.Ripple, selector: "[pRipple]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
229
229
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: Paginator, decorators: [{
|
230
230
|
type: Component,
|
231
231
|
args: [{
|
@@ -7,6 +7,7 @@ import * as i3 from '@angular/router';
|
|
7
7
|
import { RouterModule } from '@angular/router';
|
8
8
|
import * as i2 from 'primeng/tooltip';
|
9
9
|
import { TooltipModule } from 'primeng/tooltip';
|
10
|
+
import { DomHandler } from 'primeng/dom';
|
10
11
|
|
11
12
|
class BasePanelMenuItem {
|
12
13
|
constructor(ref) {
|
@@ -34,14 +35,28 @@ class PanelMenuSub extends BasePanelMenuItem {
|
|
34
35
|
constructor(ref) {
|
35
36
|
super(ref);
|
36
37
|
}
|
38
|
+
onItemKeyDown(event) {
|
39
|
+
let listItem = event.currentTarget;
|
40
|
+
switch (event.code) {
|
41
|
+
case 'Space':
|
42
|
+
case 'Enter':
|
43
|
+
if (listItem && !DomHandler.hasClass(listItem, 'p-disabled')) {
|
44
|
+
listItem.click();
|
45
|
+
}
|
46
|
+
event.preventDefault();
|
47
|
+
break;
|
48
|
+
default:
|
49
|
+
break;
|
50
|
+
}
|
51
|
+
}
|
37
52
|
}
|
38
53
|
PanelMenuSub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PanelMenuSub, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
39
|
-
PanelMenuSub.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: PanelMenuSub, selector: "p-panelMenuSub", inputs: { item: "item", expanded: "expanded", transitionOptions: "transitionOptions", root: "root" }, host: { classAttribute: "p-element" }, usesInheritance: true, ngImport: i0, template: `
|
54
|
+
PanelMenuSub.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: PanelMenuSub, selector: "p-panelMenuSub", inputs: { item: "item", expanded: "expanded", parentExpanded: "parentExpanded", transitionOptions: "transitionOptions", root: "root" }, host: { classAttribute: "p-element" }, usesInheritance: true, ngImport: i0, template: `
|
40
55
|
<ul [ngClass]="{'p-submenu-list': true, 'p-panelmenu-root-submenu': root}" [@submenu]="expanded ? {value: 'visible', params: {transitionParams: transitionOptions, height: '*'}} : {value: 'hidden', params: {transitionParams: transitionOptions, height: '0'}}" role="tree">
|
41
56
|
<ng-template ngFor let-child [ngForOf]="item.items">
|
42
57
|
<li *ngIf="child.separator" class="p-menu-separator" role="separator">
|
43
58
|
<li *ngIf="!child.separator" class="p-menuitem" [ngClass]="child.styleClass" [class.p-hidden]="child.visible === false" [ngStyle]="child.style" pTooltip [tooltipOptions]="child.tooltipOptions">
|
44
|
-
<a *ngIf="!child.routerLink" [attr.href]="child.url" class="p-menuitem-link" [attr.tabindex]="!item.expanded ? null : child.disabled ? null : '0'" [attr.id]="child.id"
|
59
|
+
<a *ngIf="!child.routerLink" (keydown)="onItemKeyDown($event)" [attr.href]="child.url" class="p-menuitem-link" [attr.tabindex]="!item.expanded || !parentExpanded ? null : child.disabled ? null : '0'" [attr.id]="child.id"
|
45
60
|
[ngClass]="{'p-disabled':child.disabled}" role="treeitem" [attr.aria-expanded]="child.expanded"
|
46
61
|
(click)="handleClick($event,child)" [attr.target]="child.target" [attr.title]="child.title">
|
47
62
|
<span class="p-panelmenu-icon pi pi-fw" [ngClass]="{'pi-angle-right':!child.expanded,'pi-angle-down':child.expanded}" *ngIf="child.items"></span>
|
@@ -49,8 +64,8 @@ PanelMenuSub.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
49
64
|
<span class="p-menuitem-text" *ngIf="child.escape !== false; else htmlLabel">{{child.label}}</span>
|
50
65
|
<ng-template #htmlLabel><span class="p-menuitem-text" [innerHTML]="child.label"></span></ng-template>
|
51
66
|
</a>
|
52
|
-
<a *ngIf="child.routerLink" [routerLink]="child.routerLink" [queryParams]="child.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="child.routerLinkActiveOptions||{exact:false}" class="p-menuitem-link"
|
53
|
-
[ngClass]="{'p-disabled':child.disabled}" [attr.tabindex]="!item.expanded ? null : child.disabled ? null : '0'" [attr.id]="child.id" role="treeitem" [attr.aria-expanded]="child.expanded"
|
67
|
+
<a *ngIf="child.routerLink" (keydown)="onItemKeyDown($event)" [routerLink]="child.routerLink" [queryParams]="child.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="child.routerLinkActiveOptions||{exact:false}" class="p-menuitem-link"
|
68
|
+
[ngClass]="{'p-disabled':child.disabled}" [attr.tabindex]="!item.expanded || !parentExpanded ? null : child.disabled ? null : '0'" [attr.id]="child.id" role="treeitem" [attr.aria-expanded]="child.expanded"
|
54
69
|
(click)="handleClick($event,child)" [attr.target]="child.target" [attr.title]="child.title"
|
55
70
|
[fragment]="child.fragment" [queryParamsHandling]="child.queryParamsHandling" [preserveFragment]="child.preserveFragment" [skipLocationChange]="child.skipLocationChange" [replaceUrl]="child.replaceUrl" [state]="child.state">
|
56
71
|
<span class="p-panelmenu-icon pi pi-fw" [ngClass]="{'pi-angle-right':!child.expanded,'pi-angle-down':child.expanded}" *ngIf="child.items"></span>
|
@@ -58,11 +73,11 @@ PanelMenuSub.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
58
73
|
<span class="p-menuitem-text" *ngIf="child.escape !== false; else htmlRouteLabel">{{child.label}}</span>
|
59
74
|
<ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="child.label"></span></ng-template>
|
60
75
|
</a>
|
61
|
-
<p-panelMenuSub [item]="child" [expanded]="child.expanded" [transitionOptions]="transitionOptions" *ngIf="child.items"></p-panelMenuSub>
|
76
|
+
<p-panelMenuSub [item]="child" [parentExpanded]="expanded && parentExpanded" [expanded]="child.expanded" [transitionOptions]="transitionOptions" *ngIf="child.items"></p-panelMenuSub>
|
62
77
|
</li>
|
63
78
|
</ng-template>
|
64
79
|
</ul>
|
65
|
-
`, isInline: true, components: [{ type: PanelMenuSub, selector: "p-panelMenuSub", inputs: ["item", "expanded", "transitionOptions", "root"] }], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }], animations: [
|
80
|
+
`, isInline: true, components: [{ type: PanelMenuSub, selector: "p-panelMenuSub", inputs: ["item", "expanded", "parentExpanded", "transitionOptions", "root"] }], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }], animations: [
|
66
81
|
trigger('submenu', [
|
67
82
|
state('hidden', style({
|
68
83
|
height: '0',
|
@@ -84,7 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
84
99
|
<ng-template ngFor let-child [ngForOf]="item.items">
|
85
100
|
<li *ngIf="child.separator" class="p-menu-separator" role="separator">
|
86
101
|
<li *ngIf="!child.separator" class="p-menuitem" [ngClass]="child.styleClass" [class.p-hidden]="child.visible === false" [ngStyle]="child.style" pTooltip [tooltipOptions]="child.tooltipOptions">
|
87
|
-
<a *ngIf="!child.routerLink" [attr.href]="child.url" class="p-menuitem-link" [attr.tabindex]="!item.expanded ? null : child.disabled ? null : '0'" [attr.id]="child.id"
|
102
|
+
<a *ngIf="!child.routerLink" (keydown)="onItemKeyDown($event)" [attr.href]="child.url" class="p-menuitem-link" [attr.tabindex]="!item.expanded || !parentExpanded ? null : child.disabled ? null : '0'" [attr.id]="child.id"
|
88
103
|
[ngClass]="{'p-disabled':child.disabled}" role="treeitem" [attr.aria-expanded]="child.expanded"
|
89
104
|
(click)="handleClick($event,child)" [attr.target]="child.target" [attr.title]="child.title">
|
90
105
|
<span class="p-panelmenu-icon pi pi-fw" [ngClass]="{'pi-angle-right':!child.expanded,'pi-angle-down':child.expanded}" *ngIf="child.items"></span>
|
@@ -92,8 +107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
92
107
|
<span class="p-menuitem-text" *ngIf="child.escape !== false; else htmlLabel">{{child.label}}</span>
|
93
108
|
<ng-template #htmlLabel><span class="p-menuitem-text" [innerHTML]="child.label"></span></ng-template>
|
94
109
|
</a>
|
95
|
-
<a *ngIf="child.routerLink" [routerLink]="child.routerLink" [queryParams]="child.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="child.routerLinkActiveOptions||{exact:false}" class="p-menuitem-link"
|
96
|
-
[ngClass]="{'p-disabled':child.disabled}" [attr.tabindex]="!item.expanded ? null : child.disabled ? null : '0'" [attr.id]="child.id" role="treeitem" [attr.aria-expanded]="child.expanded"
|
110
|
+
<a *ngIf="child.routerLink" (keydown)="onItemKeyDown($event)" [routerLink]="child.routerLink" [queryParams]="child.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="child.routerLinkActiveOptions||{exact:false}" class="p-menuitem-link"
|
111
|
+
[ngClass]="{'p-disabled':child.disabled}" [attr.tabindex]="!item.expanded || !parentExpanded ? null : child.disabled ? null : '0'" [attr.id]="child.id" role="treeitem" [attr.aria-expanded]="child.expanded"
|
97
112
|
(click)="handleClick($event,child)" [attr.target]="child.target" [attr.title]="child.title"
|
98
113
|
[fragment]="child.fragment" [queryParamsHandling]="child.queryParamsHandling" [preserveFragment]="child.preserveFragment" [skipLocationChange]="child.skipLocationChange" [replaceUrl]="child.replaceUrl" [state]="child.state">
|
99
114
|
<span class="p-panelmenu-icon pi pi-fw" [ngClass]="{'pi-angle-right':!child.expanded,'pi-angle-down':child.expanded}" *ngIf="child.items"></span>
|
@@ -101,7 +116,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
101
116
|
<span class="p-menuitem-text" *ngIf="child.escape !== false; else htmlRouteLabel">{{child.label}}</span>
|
102
117
|
<ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="child.label"></span></ng-template>
|
103
118
|
</a>
|
104
|
-
<p-panelMenuSub [item]="child" [expanded]="child.expanded" [transitionOptions]="transitionOptions" *ngIf="child.items"></p-panelMenuSub>
|
119
|
+
<p-panelMenuSub [item]="child" [parentExpanded]="expanded && parentExpanded" [expanded]="child.expanded" [transitionOptions]="transitionOptions" *ngIf="child.items"></p-panelMenuSub>
|
105
120
|
</li>
|
106
121
|
</ng-template>
|
107
122
|
</ul>
|
@@ -128,6 +143,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
128
143
|
type: Input
|
129
144
|
}], expanded: [{
|
130
145
|
type: Input
|
146
|
+
}], parentExpanded: [{
|
147
|
+
type: Input
|
131
148
|
}], transitionOptions: [{
|
132
149
|
type: Input
|
133
150
|
}], root: [{
|
@@ -160,6 +177,20 @@ class PanelMenu extends BasePanelMenuItem {
|
|
160
177
|
onToggleDone() {
|
161
178
|
this.animating = false;
|
162
179
|
}
|
180
|
+
onItemKeyDown(event) {
|
181
|
+
let listItem = event.currentTarget;
|
182
|
+
switch (event.code) {
|
183
|
+
case 'Space':
|
184
|
+
case 'Enter':
|
185
|
+
if (listItem && !DomHandler.hasClass(listItem, 'p-disabled')) {
|
186
|
+
listItem.click();
|
187
|
+
}
|
188
|
+
event.preventDefault();
|
189
|
+
break;
|
190
|
+
default:
|
191
|
+
break;
|
192
|
+
}
|
193
|
+
}
|
163
194
|
}
|
164
195
|
PanelMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PanelMenu, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
165
196
|
PanelMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: PanelMenu, selector: "p-panelMenu", inputs: { model: "model", style: "style", styleClass: "styleClass", multiple: "multiple", transitionOptions: "transitionOptions" }, host: { classAttribute: "p-element" }, usesInheritance: true, ngImport: i0, template: `
|
@@ -167,7 +198,7 @@ PanelMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12
|
|
167
198
|
<ng-container *ngFor="let item of model;let f=first;let l=last;">
|
168
199
|
<div class="p-panelmenu-panel" [ngClass]="{'p-hidden': item.visible === false}">
|
169
200
|
<div [ngClass]="{'p-component p-panelmenu-header':true, 'p-highlight':item.expanded,'p-disabled':item.disabled}" [class]="item.styleClass" [ngStyle]="item.style" pTooltip [tooltipOptions]="item.tooltipOptions">
|
170
|
-
<a *ngIf="!item.routerLink" [attr.href]="item.url" (click)="handleClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'" [attr.id]="item.id"
|
201
|
+
<a *ngIf="!item.routerLink" [attr.href]="item.url" (click)="handleClick($event,item)" (keydown)="onItemKeyDown($event)" [attr.tabindex]="item.disabled ? null : '0'" [attr.id]="item.id"
|
171
202
|
[attr.target]="item.target" [attr.title]="item.title" class="p-panelmenu-header-link" [attr.aria-expanded]="item.expanded" [attr.id]="item.id + '_header'" [attr.aria-controls]="item.id +'_content'">
|
172
203
|
<span *ngIf="item.items" class="p-panelmenu-icon pi" [ngClass]="{'pi-chevron-right':!item.expanded,'pi-chevron-down':item.expanded}"></span>
|
173
204
|
<span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
|
@@ -175,7 +206,7 @@ PanelMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12
|
|
175
206
|
<ng-template #htmlLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
|
176
207
|
</a>
|
177
208
|
<a *ngIf="item.routerLink" [routerLink]="item.routerLink" [queryParams]="item.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{exact:false}"
|
178
|
-
(click)="handleClick($event,item)" [attr.target]="item.target" [attr.title]="item.title" class="p-panelmenu-header-link" [attr.id]="item.id" [attr.tabindex]="item.disabled ? null : '0'"
|
209
|
+
(click)="handleClick($event,item)" (keydown)="onItemKeyDown($event)" [attr.target]="item.target" [attr.title]="item.title" class="p-panelmenu-header-link" [attr.id]="item.id" [attr.tabindex]="item.disabled ? null : '0'"
|
179
210
|
[fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment" [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state">
|
180
211
|
<span *ngIf="item.items" class="p-panelmenu-icon pi" [ngClass]="{'pi-chevron-right':!item.expanded,'pi-chevron-down':item.expanded}"></span>
|
181
212
|
<span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
|
@@ -185,13 +216,13 @@ PanelMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12
|
|
185
216
|
</div>
|
186
217
|
<div *ngIf="item.items" class="p-toggleable-content" [@rootItem]="item.expanded ? {value: 'visible', params: {transitionParams: animating ? transitionOptions : '0ms', height: '*'}} : {value: 'hidden', params: {transitionParams: transitionOptions, height: '0'}}" (@rootItem.done)="onToggleDone()">
|
187
218
|
<div class="p-panelmenu-content" role="region" [attr.id]="item.id +'_content' " [attr.aria-labelledby]="item.id +'_header'">
|
188
|
-
<p-panelMenuSub [item]="item" [expanded]="true" [transitionOptions]="transitionOptions" [root]="true"></p-panelMenuSub>
|
219
|
+
<p-panelMenuSub [item]="item" [parentExpanded]="item.expanded" [expanded]="true" [transitionOptions]="transitionOptions" [root]="true"></p-panelMenuSub>
|
189
220
|
</div>
|
190
221
|
</div>
|
191
222
|
</div>
|
192
223
|
</ng-container>
|
193
224
|
</div>
|
194
|
-
`, isInline: true, styles: [".p-panelmenu .p-panelmenu-header-link{display:flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;position:relative;text-decoration:none}.p-panelmenu .p-panelmenu-header-link:focus{z-index:1}.p-panelmenu .p-submenu-list{margin:0;padding:0;list-style:none}.p-panelmenu .p-menuitem-link{display:flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;text-decoration:none}.p-panelmenu .p-menuitem-text{line-height:1}"], components: [{ type: PanelMenuSub, selector: "p-panelMenuSub", inputs: ["item", "expanded", "transitionOptions", "root"] }], directives: [{ type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }], animations: [
|
225
|
+
`, isInline: true, styles: [".p-panelmenu .p-panelmenu-header-link{display:flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;position:relative;text-decoration:none}.p-panelmenu .p-panelmenu-header-link:focus{z-index:1}.p-panelmenu .p-submenu-list{margin:0;padding:0;list-style:none}.p-panelmenu .p-menuitem-link{display:flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;text-decoration:none}.p-panelmenu .p-menuitem-text{line-height:1}"], components: [{ type: PanelMenuSub, selector: "p-panelMenuSub", inputs: ["item", "expanded", "parentExpanded", "transitionOptions", "root"] }], directives: [{ type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }], animations: [
|
195
226
|
trigger('rootItem', [
|
196
227
|
state('hidden', style({
|
197
228
|
height: '0',
|
@@ -213,7 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
213
244
|
<ng-container *ngFor="let item of model;let f=first;let l=last;">
|
214
245
|
<div class="p-panelmenu-panel" [ngClass]="{'p-hidden': item.visible === false}">
|
215
246
|
<div [ngClass]="{'p-component p-panelmenu-header':true, 'p-highlight':item.expanded,'p-disabled':item.disabled}" [class]="item.styleClass" [ngStyle]="item.style" pTooltip [tooltipOptions]="item.tooltipOptions">
|
216
|
-
<a *ngIf="!item.routerLink" [attr.href]="item.url" (click)="handleClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'" [attr.id]="item.id"
|
247
|
+
<a *ngIf="!item.routerLink" [attr.href]="item.url" (click)="handleClick($event,item)" (keydown)="onItemKeyDown($event)" [attr.tabindex]="item.disabled ? null : '0'" [attr.id]="item.id"
|
217
248
|
[attr.target]="item.target" [attr.title]="item.title" class="p-panelmenu-header-link" [attr.aria-expanded]="item.expanded" [attr.id]="item.id + '_header'" [attr.aria-controls]="item.id +'_content'">
|
218
249
|
<span *ngIf="item.items" class="p-panelmenu-icon pi" [ngClass]="{'pi-chevron-right':!item.expanded,'pi-chevron-down':item.expanded}"></span>
|
219
250
|
<span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
|
@@ -221,7 +252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
221
252
|
<ng-template #htmlLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
|
222
253
|
</a>
|
223
254
|
<a *ngIf="item.routerLink" [routerLink]="item.routerLink" [queryParams]="item.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{exact:false}"
|
224
|
-
(click)="handleClick($event,item)" [attr.target]="item.target" [attr.title]="item.title" class="p-panelmenu-header-link" [attr.id]="item.id" [attr.tabindex]="item.disabled ? null : '0'"
|
255
|
+
(click)="handleClick($event,item)" (keydown)="onItemKeyDown($event)" [attr.target]="item.target" [attr.title]="item.title" class="p-panelmenu-header-link" [attr.id]="item.id" [attr.tabindex]="item.disabled ? null : '0'"
|
225
256
|
[fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment" [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state">
|
226
257
|
<span *ngIf="item.items" class="p-panelmenu-icon pi" [ngClass]="{'pi-chevron-right':!item.expanded,'pi-chevron-down':item.expanded}"></span>
|
227
258
|
<span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
|
@@ -231,7 +262,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
231
262
|
</div>
|
232
263
|
<div *ngIf="item.items" class="p-toggleable-content" [@rootItem]="item.expanded ? {value: 'visible', params: {transitionParams: animating ? transitionOptions : '0ms', height: '*'}} : {value: 'hidden', params: {transitionParams: transitionOptions, height: '0'}}" (@rootItem.done)="onToggleDone()">
|
233
264
|
<div class="p-panelmenu-content" role="region" [attr.id]="item.id +'_content' " [attr.aria-labelledby]="item.id +'_header'">
|
234
|
-
<p-panelMenuSub [item]="item" [expanded]="true" [transitionOptions]="transitionOptions" [root]="true"></p-panelMenuSub>
|
265
|
+
<p-panelMenuSub [item]="item" [parentExpanded]="item.expanded" [expanded]="true" [transitionOptions]="transitionOptions" [root]="true"></p-panelMenuSub>
|
235
266
|
</div>
|
236
267
|
</div>
|
237
268
|
</div>
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-panelmenu.js","sources":["../../src/app/components/panelmenu/panelmenu.ts","../../src/app/components/panelmenu/primeng-panelmenu.ts"],"sourcesContent":["import {NgModule,Component,Input,ChangeDetectorRef,ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\nimport {trigger,state,style,transition,animate} from '@angular/animations';\nimport {CommonModule} from '@angular/common';\nimport {MenuItem} from 'primeng/api';\nimport {RouterModule} from '@angular/router';\nimport {TooltipModule} from 'primeng/tooltip';\n\nexport class BasePanelMenuItem {\n\n constructor(private ref: ChangeDetectorRef) {}\n\n handleClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n item.expanded = !item.expanded;\n this.ref.detectChanges();\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n }\n}\n\n@Component({\n selector: 'p-panelMenuSub',\n template: `\n <ul [ngClass]=\"{'p-submenu-list': true, 'p-panelmenu-root-submenu': root}\" [@submenu]=\"expanded ? {value: 'visible', params: {transitionParams: transitionOptions, height: '*'}} : {value: 'hidden', params: {transitionParams: transitionOptions, height: '0'}}\" role=\"tree\">\n <ng-template ngFor let-child [ngForOf]=\"item.items\">\n <li *ngIf=\"child.separator\" class=\"p-menu-separator\" role=\"separator\">\n <li *ngIf=\"!child.separator\" class=\"p-menuitem\" [ngClass]=\"child.styleClass\" [class.p-hidden]=\"child.visible === false\" [ngStyle]=\"child.style\" pTooltip [tooltipOptions]=\"child.tooltipOptions\">\n <a *ngIf=\"!child.routerLink\" [attr.href]=\"child.url\" class=\"p-menuitem-link\" [attr.tabindex]=\"!item.expanded ? null : child.disabled ? null : '0'\" [attr.id]=\"child.id\"\n [ngClass]=\"{'p-disabled':child.disabled}\" role=\"treeitem\" [attr.aria-expanded]=\"child.expanded\"\n (click)=\"handleClick($event,child)\" [attr.target]=\"child.target\" [attr.title]=\"child.title\">\n <span class=\"p-panelmenu-icon pi pi-fw\" [ngClass]=\"{'pi-angle-right':!child.expanded,'pi-angle-down':child.expanded}\" *ngIf=\"child.items\"></span>\n <span class=\"p-menuitem-icon\" [ngClass]=\"child.icon\" *ngIf=\"child.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"child.escape !== false; else htmlLabel\">{{child.label}}</span>\n <ng-template #htmlLabel><span class=\"p-menuitem-text\" [innerHTML]=\"child.label\"></span></ng-template>\n </a>\n <a *ngIf=\"child.routerLink\" [routerLink]=\"child.routerLink\" [queryParams]=\"child.queryParams\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"child.routerLinkActiveOptions||{exact:false}\" class=\"p-menuitem-link\"\n [ngClass]=\"{'p-disabled':child.disabled}\" [attr.tabindex]=\"!item.expanded ? null : child.disabled ? null : '0'\" [attr.id]=\"child.id\" role=\"treeitem\" [attr.aria-expanded]=\"child.expanded\"\n (click)=\"handleClick($event,child)\" [attr.target]=\"child.target\" [attr.title]=\"child.title\"\n [fragment]=\"child.fragment\" [queryParamsHandling]=\"child.queryParamsHandling\" [preserveFragment]=\"child.preserveFragment\" [skipLocationChange]=\"child.skipLocationChange\" [replaceUrl]=\"child.replaceUrl\" [state]=\"child.state\">\n <span class=\"p-panelmenu-icon pi pi-fw\" [ngClass]=\"{'pi-angle-right':!child.expanded,'pi-angle-down':child.expanded}\" *ngIf=\"child.items\"></span>\n <span class=\"p-menuitem-icon\" [ngClass]=\"child.icon\" *ngIf=\"child.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"child.escape !== false; else htmlRouteLabel\">{{child.label}}</span>\n <ng-template #htmlRouteLabel><span class=\"p-menuitem-text\" [innerHTML]=\"child.label\"></span></ng-template>\n </a>\n <p-panelMenuSub [item]=\"child\" [expanded]=\"child.expanded\" [transitionOptions]=\"transitionOptions\" *ngIf=\"child.items\"></p-panelMenuSub>\n </li>\n </ng-template>\n </ul>\n `,\n animations: [\n trigger('submenu', [\n state('hidden', style({\n height: '0',\n overflow: 'hidden'\n })),\n state('visible', style({\n height: '*'\n })),\n transition('visible <=> hidden', [style({overflow: 'hidden'}), animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n})\nexport class PanelMenuSub extends BasePanelMenuItem {\n\n @Input() item: MenuItem;\n\n @Input() expanded: boolean;\n\n @Input() transitionOptions: string;\n\n @Input() root: boolean;\n\n constructor(ref: ChangeDetectorRef) {\n super(ref);\n }\n}\n\n@Component({\n selector: 'p-panelMenu',\n template: `\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-panelmenu p-component'\">\n <ng-container *ngFor=\"let item of model;let f=first;let l=last;\">\n <div class=\"p-panelmenu-panel\" [ngClass]=\"{'p-hidden': item.visible === false}\">\n <div [ngClass]=\"{'p-component p-panelmenu-header':true, 'p-highlight':item.expanded,'p-disabled':item.disabled}\" [class]=\"item.styleClass\" [ngStyle]=\"item.style\" pTooltip [tooltipOptions]=\"item.tooltipOptions\">\n <a *ngIf=\"!item.routerLink\" [attr.href]=\"item.url\" (click)=\"handleClick($event,item)\" [attr.tabindex]=\"item.disabled ? null : '0'\" [attr.id]=\"item.id\"\n [attr.target]=\"item.target\" [attr.title]=\"item.title\" class=\"p-panelmenu-header-link\" [attr.aria-expanded]=\"item.expanded\" [attr.id]=\"item.id + '_header'\" [attr.aria-controls]=\"item.id +'_content'\">\n <span *ngIf=\"item.items\" class=\"p-panelmenu-icon pi\" [ngClass]=\"{'pi-chevron-right':!item.expanded,'pi-chevron-down':item.expanded}\"></span>\n <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlLabel\">{{item.label}}</span>\n <ng-template #htmlLabel><span class=\"p-menuitem-text\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n <a *ngIf=\"item.routerLink\" [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{exact:false}\"\n (click)=\"handleClick($event,item)\" [attr.target]=\"item.target\" [attr.title]=\"item.title\" class=\"p-panelmenu-header-link\" [attr.id]=\"item.id\" [attr.tabindex]=\"item.disabled ? null : '0'\"\n [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\" [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\">\n <span *ngIf=\"item.items\" class=\"p-panelmenu-icon pi\" [ngClass]=\"{'pi-chevron-right':!item.expanded,'pi-chevron-down':item.expanded}\"></span>\n <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{item.label}}</span>\n <ng-template #htmlRouteLabel><span class=\"p-menuitem-text\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n </div>\n <div *ngIf=\"item.items\" class=\"p-toggleable-content\" [@rootItem]=\"item.expanded ? {value: 'visible', params: {transitionParams: animating ? transitionOptions : '0ms', height: '*'}} : {value: 'hidden', params: {transitionParams: transitionOptions, height: '0'}}\" (@rootItem.done)=\"onToggleDone()\">\n <div class=\"p-panelmenu-content\" role=\"region\" [attr.id]=\"item.id +'_content' \" [attr.aria-labelledby]=\"item.id +'_header'\">\n <p-panelMenuSub [item]=\"item\" [expanded]=\"true\" [transitionOptions]=\"transitionOptions\" [root]=\"true\"></p-panelMenuSub>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n `,\n animations: [\n trigger('rootItem', [\n state('hidden', style({\n height: '0',\n overflow: 'hidden'\n })),\n state('visible', style({\n height: '*'\n })),\n transition('visible <=> hidden', [style({overflow: 'hidden'}), animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./panelmenu.css'],\n host: {\n 'class': 'p-element'\n }\n})\nexport class PanelMenu extends BasePanelMenuItem {\n\n @Input() model: MenuItem[];\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() multiple: boolean = true;\n\n @Input() transitionOptions: string = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n public animating: boolean;\n\n constructor(ref: ChangeDetectorRef) {\n super(ref);\n }\n\n collapseAll() {\n \tfor(let item of this.model) {\n \t\tif (item.expanded) {\n \t\t\titem.expanded = false;\n \t\t}\n \t}\n }\n\n handleClick(event, item) {\n \tif (!this.multiple) {\n for(let modelItem of this.model) {\n \t\tif (item !== modelItem && modelItem.expanded) {\n \t\t\tmodelItem.expanded = false;\n \t\t}\n \t}\n \t}\n\n this.animating = true;\n super.handleClick(event, item);\n }\n\n onToggleDone() {\n this.animating = false;\n }\n\n}\n\n@NgModule({\n imports: [CommonModule,RouterModule,TooltipModule],\n exports: [PanelMenu,RouterModule,TooltipModule],\n declarations: [PanelMenu,PanelMenuSub]\n})\nexport class PanelMenuModule { }\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-panelmenu.js","sources":["../../src/app/components/panelmenu/panelmenu.ts","../../src/app/components/panelmenu/primeng-panelmenu.ts"],"sourcesContent":["import {NgModule,Component,Input,ChangeDetectorRef,ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\nimport {trigger,state,style,transition,animate} from '@angular/animations';\nimport {CommonModule} from '@angular/common';\nimport {MenuItem} from 'primeng/api';\nimport {RouterModule} from '@angular/router';\nimport {TooltipModule} from 'primeng/tooltip';\nimport {DomHandler} from 'primeng/dom';\n\nexport class BasePanelMenuItem {\n\n constructor(private ref: ChangeDetectorRef) {}\n\n handleClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n item.expanded = !item.expanded;\n this.ref.detectChanges();\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n }\n}\n\n@Component({\n selector: 'p-panelMenuSub',\n template: `\n <ul [ngClass]=\"{'p-submenu-list': true, 'p-panelmenu-root-submenu': root}\" [@submenu]=\"expanded ? {value: 'visible', params: {transitionParams: transitionOptions, height: '*'}} : {value: 'hidden', params: {transitionParams: transitionOptions, height: '0'}}\" role=\"tree\">\n <ng-template ngFor let-child [ngForOf]=\"item.items\">\n <li *ngIf=\"child.separator\" class=\"p-menu-separator\" role=\"separator\">\n <li *ngIf=\"!child.separator\" class=\"p-menuitem\" [ngClass]=\"child.styleClass\" [class.p-hidden]=\"child.visible === false\" [ngStyle]=\"child.style\" pTooltip [tooltipOptions]=\"child.tooltipOptions\">\n <a *ngIf=\"!child.routerLink\" (keydown)=\"onItemKeyDown($event)\" [attr.href]=\"child.url\" class=\"p-menuitem-link\" [attr.tabindex]=\"!item.expanded || !parentExpanded ? null : child.disabled ? null : '0'\" [attr.id]=\"child.id\"\n [ngClass]=\"{'p-disabled':child.disabled}\" role=\"treeitem\" [attr.aria-expanded]=\"child.expanded\"\n (click)=\"handleClick($event,child)\" [attr.target]=\"child.target\" [attr.title]=\"child.title\">\n <span class=\"p-panelmenu-icon pi pi-fw\" [ngClass]=\"{'pi-angle-right':!child.expanded,'pi-angle-down':child.expanded}\" *ngIf=\"child.items\"></span>\n <span class=\"p-menuitem-icon\" [ngClass]=\"child.icon\" *ngIf=\"child.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"child.escape !== false; else htmlLabel\">{{child.label}}</span>\n <ng-template #htmlLabel><span class=\"p-menuitem-text\" [innerHTML]=\"child.label\"></span></ng-template>\n </a>\n <a *ngIf=\"child.routerLink\" (keydown)=\"onItemKeyDown($event)\" [routerLink]=\"child.routerLink\" [queryParams]=\"child.queryParams\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"child.routerLinkActiveOptions||{exact:false}\" class=\"p-menuitem-link\"\n [ngClass]=\"{'p-disabled':child.disabled}\" [attr.tabindex]=\"!item.expanded || !parentExpanded ? null : child.disabled ? null : '0'\" [attr.id]=\"child.id\" role=\"treeitem\" [attr.aria-expanded]=\"child.expanded\"\n (click)=\"handleClick($event,child)\" [attr.target]=\"child.target\" [attr.title]=\"child.title\"\n [fragment]=\"child.fragment\" [queryParamsHandling]=\"child.queryParamsHandling\" [preserveFragment]=\"child.preserveFragment\" [skipLocationChange]=\"child.skipLocationChange\" [replaceUrl]=\"child.replaceUrl\" [state]=\"child.state\">\n <span class=\"p-panelmenu-icon pi pi-fw\" [ngClass]=\"{'pi-angle-right':!child.expanded,'pi-angle-down':child.expanded}\" *ngIf=\"child.items\"></span>\n <span class=\"p-menuitem-icon\" [ngClass]=\"child.icon\" *ngIf=\"child.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"child.escape !== false; else htmlRouteLabel\">{{child.label}}</span>\n <ng-template #htmlRouteLabel><span class=\"p-menuitem-text\" [innerHTML]=\"child.label\"></span></ng-template>\n </a>\n <p-panelMenuSub [item]=\"child\" [parentExpanded]=\"expanded && parentExpanded\" [expanded]=\"child.expanded\" [transitionOptions]=\"transitionOptions\" *ngIf=\"child.items\"></p-panelMenuSub>\n </li>\n </ng-template>\n </ul>\n `,\n animations: [\n trigger('submenu', [\n state('hidden', style({\n height: '0',\n overflow: 'hidden'\n })),\n state('visible', style({\n height: '*'\n })),\n transition('visible <=> hidden', [style({overflow: 'hidden'}), animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n})\nexport class PanelMenuSub extends BasePanelMenuItem {\n\n @Input() item: MenuItem;\n\n @Input() expanded: boolean;\n\n @Input() parentExpanded: boolean;\n\n @Input() transitionOptions: string;\n\n @Input() root: boolean;\n\n constructor(ref: ChangeDetectorRef) {\n super(ref);\n }\n\n\n\n onItemKeyDown(event) {\n let listItem = event.currentTarget;\n\n switch (event.code) {\n case 'Space':\n case 'Enter':\n if (listItem && !DomHandler.hasClass(listItem, 'p-disabled')) {\n listItem.click();\n }\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n}\n\n@Component({\n selector: 'p-panelMenu',\n template: `\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-panelmenu p-component'\">\n <ng-container *ngFor=\"let item of model;let f=first;let l=last;\">\n <div class=\"p-panelmenu-panel\" [ngClass]=\"{'p-hidden': item.visible === false}\">\n <div [ngClass]=\"{'p-component p-panelmenu-header':true, 'p-highlight':item.expanded,'p-disabled':item.disabled}\" [class]=\"item.styleClass\" [ngStyle]=\"item.style\" pTooltip [tooltipOptions]=\"item.tooltipOptions\">\n <a *ngIf=\"!item.routerLink\" [attr.href]=\"item.url\" (click)=\"handleClick($event,item)\" (keydown)=\"onItemKeyDown($event)\" [attr.tabindex]=\"item.disabled ? null : '0'\" [attr.id]=\"item.id\"\n [attr.target]=\"item.target\" [attr.title]=\"item.title\" class=\"p-panelmenu-header-link\" [attr.aria-expanded]=\"item.expanded\" [attr.id]=\"item.id + '_header'\" [attr.aria-controls]=\"item.id +'_content'\">\n <span *ngIf=\"item.items\" class=\"p-panelmenu-icon pi\" [ngClass]=\"{'pi-chevron-right':!item.expanded,'pi-chevron-down':item.expanded}\"></span>\n <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlLabel\">{{item.label}}</span>\n <ng-template #htmlLabel><span class=\"p-menuitem-text\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n <a *ngIf=\"item.routerLink\" [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{exact:false}\"\n (click)=\"handleClick($event,item)\" (keydown)=\"onItemKeyDown($event)\" [attr.target]=\"item.target\" [attr.title]=\"item.title\" class=\"p-panelmenu-header-link\" [attr.id]=\"item.id\" [attr.tabindex]=\"item.disabled ? null : '0'\"\n [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\" [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\">\n <span *ngIf=\"item.items\" class=\"p-panelmenu-icon pi\" [ngClass]=\"{'pi-chevron-right':!item.expanded,'pi-chevron-down':item.expanded}\"></span>\n <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{item.label}}</span>\n <ng-template #htmlRouteLabel><span class=\"p-menuitem-text\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n </div>\n <div *ngIf=\"item.items\" class=\"p-toggleable-content\" [@rootItem]=\"item.expanded ? {value: 'visible', params: {transitionParams: animating ? transitionOptions : '0ms', height: '*'}} : {value: 'hidden', params: {transitionParams: transitionOptions, height: '0'}}\" (@rootItem.done)=\"onToggleDone()\">\n <div class=\"p-panelmenu-content\" role=\"region\" [attr.id]=\"item.id +'_content' \" [attr.aria-labelledby]=\"item.id +'_header'\">\n <p-panelMenuSub [item]=\"item\" [parentExpanded]=\"item.expanded\" [expanded]=\"true\" [transitionOptions]=\"transitionOptions\" [root]=\"true\"></p-panelMenuSub>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n `,\n animations: [\n trigger('rootItem', [\n state('hidden', style({\n height: '0',\n overflow: 'hidden'\n })),\n state('visible', style({\n height: '*'\n })),\n transition('visible <=> hidden', [style({overflow: 'hidden'}), animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./panelmenu.css'],\n host: {\n 'class': 'p-element'\n }\n})\nexport class PanelMenu extends BasePanelMenuItem {\n\n @Input() model: MenuItem[];\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() multiple: boolean = true;\n\n @Input() transitionOptions: string = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n public animating: boolean;\n\n constructor(ref: ChangeDetectorRef) {\n super(ref);\n }\n\n collapseAll() {\n \tfor(let item of this.model) {\n \t\tif (item.expanded) {\n \t\t\titem.expanded = false;\n \t\t}\n \t}\n }\n\n handleClick(event, item) {\n \tif (!this.multiple) {\n for(let modelItem of this.model) {\n \t\tif (item !== modelItem && modelItem.expanded) {\n \t\t\tmodelItem.expanded = false;\n \t\t}\n \t}\n \t}\n\n this.animating = true;\n super.handleClick(event, item);\n }\n\n onToggleDone() {\n this.animating = false;\n }\n\n onItemKeyDown(event) {\n let listItem = event.currentTarget;\n\n switch (event.code) {\n case 'Space':\n case 'Enter':\n if (listItem && !DomHandler.hasClass(listItem, 'p-disabled')) {\n listItem.click();\n }\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n}\n\n@NgModule({\n imports: [CommonModule,RouterModule,TooltipModule],\n exports: [PanelMenu,RouterModule,TooltipModule],\n declarations: [PanelMenu,PanelMenuSub]\n})\nexport class PanelMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { Directive, Input, HostListener, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, ContentChildren, NgModule } from '@angular/core';
|
2
|
+
import { Directive, Input, HostListener, forwardRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Output, ContentChildren, NgModule } from '@angular/core';
|
3
3
|
import * as i2 from '@angular/common';
|
4
4
|
import { CommonModule } from '@angular/common';
|
5
5
|
import { trigger, transition, style, animate } from '@angular/animations';
|
@@ -229,6 +229,8 @@ class Password {
|
|
229
229
|
this.feedback = true;
|
230
230
|
this.showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';
|
231
231
|
this.hideTransitionOptions = '.1s linear';
|
232
|
+
this.onFocus = new EventEmitter();
|
233
|
+
this.onBlur = new EventEmitter();
|
232
234
|
this.overlayVisible = false;
|
233
235
|
this.focused = false;
|
234
236
|
this.unmasked = false;
|
@@ -308,17 +310,19 @@ class Password {
|
|
308
310
|
this.onModelChange(this.value);
|
309
311
|
this.onModelTouched();
|
310
312
|
}
|
311
|
-
|
313
|
+
onInputFocus(event) {
|
312
314
|
this.focused = true;
|
313
315
|
if (this.feedback) {
|
314
316
|
this.overlayVisible = true;
|
315
317
|
}
|
318
|
+
this.onFocus.emit(event);
|
316
319
|
}
|
317
|
-
|
320
|
+
onInputBlur(event) {
|
318
321
|
this.focused = false;
|
319
322
|
if (this.feedback) {
|
320
323
|
this.overlayVisible = false;
|
321
324
|
}
|
325
|
+
this.onBlur.emit(event);
|
322
326
|
}
|
323
327
|
onKeyUp(event) {
|
324
328
|
if (this.feedback) {
|
@@ -498,10 +502,10 @@ class Password {
|
|
498
502
|
}
|
499
503
|
}
|
500
504
|
Password.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: Password, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PrimeNGConfig }, { token: i0.ElementRef }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
|
501
|
-
Password.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: Password, selector: "p-password", inputs: { disabled: "disabled", promptLabel: "promptLabel", mediumRegex: "mediumRegex", strongRegex: "strongRegex", weakLabel: "weakLabel", mediumLabel: "mediumLabel", strongLabel: "strongLabel", inputId: "inputId", feedback: "feedback", appendTo: "appendTo", toggleMask: "toggleMask", inputStyleClass: "inputStyleClass", styleClass: "styleClass", style: "style", inputStyle: "inputStyle", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", placeholder: "placeholder" }, host: { properties: { "class.p-inputwrapper-filled": "filled()", "class.p-inputwrapper-focus": "focused" }, classAttribute: "p-element p-inputwrapper" }, providers: [Password_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: `
|
505
|
+
Password.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: Password, selector: "p-password", inputs: { disabled: "disabled", promptLabel: "promptLabel", mediumRegex: "mediumRegex", strongRegex: "strongRegex", weakLabel: "weakLabel", mediumLabel: "mediumLabel", strongLabel: "strongLabel", inputId: "inputId", feedback: "feedback", appendTo: "appendTo", toggleMask: "toggleMask", inputStyleClass: "inputStyleClass", styleClass: "styleClass", style: "style", inputStyle: "inputStyle", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", placeholder: "placeholder" }, outputs: { onFocus: "onFocus", onBlur: "onBlur" }, host: { properties: { "class.p-inputwrapper-filled": "filled()", "class.p-inputwrapper-focus": "focused" }, classAttribute: "p-element p-inputwrapper" }, providers: [Password_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: `
|
502
506
|
<div [ngClass]="containerClass()" [ngStyle]="style" [class]="styleClass">
|
503
|
-
<input #input [attr.id]="inputId" pInputText [ngClass]="inputFieldClass()" [ngStyle]="inputStyle" [class]="inputStyleClass" [attr.type]="inputType()" [attr.placeholder]="placeholder" [value]="value" (input)="onInput($event)" (focus)="
|
504
|
-
(blur)="
|
507
|
+
<input #input [attr.id]="inputId" pInputText [ngClass]="inputFieldClass()" [ngStyle]="inputStyle" [class]="inputStyleClass" [attr.type]="inputType()" [attr.placeholder]="placeholder" [value]="value" (input)="onInput($event)" (focus)="onInputFocus($event)"
|
508
|
+
(blur)="onInputBlur($event)" (keyup)="onKeyUp($event)" />
|
505
509
|
<i *ngIf="toggleMask" [ngClass]="toggleIconClass()" (click)="onMaskToggle()"></i>
|
506
510
|
<div #overlay *ngIf="overlayVisible" [ngClass]="'p-password-panel p-component'" (click)="onOverlayClick($event)"
|
507
511
|
[@overlayAnimation]="{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}" (@overlayAnimation.start)="onAnimationStart($event)" (@overlayAnimation.done)="onAnimationEnd($event)">
|
@@ -535,8 +539,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
535
539
|
selector: 'p-password',
|
536
540
|
template: `
|
537
541
|
<div [ngClass]="containerClass()" [ngStyle]="style" [class]="styleClass">
|
538
|
-
<input #input [attr.id]="inputId" pInputText [ngClass]="inputFieldClass()" [ngStyle]="inputStyle" [class]="inputStyleClass" [attr.type]="inputType()" [attr.placeholder]="placeholder" [value]="value" (input)="onInput($event)" (focus)="
|
539
|
-
(blur)="
|
542
|
+
<input #input [attr.id]="inputId" pInputText [ngClass]="inputFieldClass()" [ngStyle]="inputStyle" [class]="inputStyleClass" [attr.type]="inputType()" [attr.placeholder]="placeholder" [value]="value" (input)="onInput($event)" (focus)="onInputFocus($event)"
|
543
|
+
(blur)="onInputBlur($event)" (keyup)="onKeyUp($event)" />
|
540
544
|
<i *ngIf="toggleMask" [ngClass]="toggleIconClass()" (click)="onMaskToggle()"></i>
|
541
545
|
<div #overlay *ngIf="overlayVisible" [ngClass]="'p-password-panel p-component'" (click)="onOverlayClick($event)"
|
542
546
|
[@overlayAnimation]="{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}" (@overlayAnimation.start)="onAnimationStart($event)" (@overlayAnimation.done)="onAnimationEnd($event)">
|
@@ -614,6 +618,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
614
618
|
}], input: [{
|
615
619
|
type: ViewChild,
|
616
620
|
args: ['input']
|
621
|
+
}], onFocus: [{
|
622
|
+
type: Output
|
623
|
+
}], onBlur: [{
|
624
|
+
type: Output
|
617
625
|
}], templates: [{
|
618
626
|
type: ContentChildren,
|
619
627
|
args: [PrimeTemplate]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-password.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 {OverlayService, PrimeNGConfig, PrimeTemplate, TranslationKeys, SharedModule} from 'primeng/api';\nimport {ZIndexUtils} from 'primeng/utils';\nimport {InputTextModule} from 'primeng/inputtext';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[pPassword]',\n host: {\n 'class': 'p-inputtext p-component p-element',\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'\" (click)=\"onOverlayClick($event)\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onAnimationStart($event)\" (@overlayAnimation.done)=\"onAnimationEnd($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-element p-inputwrapper',\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 translationSubscription: Subscription;\n\n constructor(private cd: ChangeDetectorRef, private config: PrimeNGConfig, public el: ElementRef, public overlayService: OverlayService) {}\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 this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.updateUI(this.value || \"\");\n });\n }\n\n onAnimationStart(event) {\n switch(event.toState) {\n case 'visible':\n this.overlay = event.element;\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\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 onAnimationEnd(event) {\n switch(event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\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 onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\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 if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n\n this.restoreAppend();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule],\n exports: [PasswordDirective, Password, SharedModule],\n declarations: [PasswordDirective, Password]\n})\nexport class PasswordModule { }\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-password.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, Output, EventEmitter} 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 {OverlayService, PrimeNGConfig, PrimeTemplate, TranslationKeys, SharedModule} from 'primeng/api';\nimport {ZIndexUtils} from 'primeng/utils';\nimport {InputTextModule} from 'primeng/inputtext';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[pPassword]',\n host: {\n 'class': 'p-inputtext p-component p-element',\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)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\" (keyup)=\"onKeyUp($event)\" />\n <i *ngIf=\"toggleMask\" [ngClass]=\"toggleIconClass()\" (click)=\"onMaskToggle()\"></i>\n <div #overlay *ngIf=\"overlayVisible\" [ngClass]=\"'p-password-panel p-component'\" (click)=\"onOverlayClick($event)\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onAnimationStart($event)\" (@overlayAnimation.done)=\"onAnimationEnd($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-element p-inputwrapper',\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 @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\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 translationSubscription: Subscription;\n\n constructor(private cd: ChangeDetectorRef, private config: PrimeNGConfig, public el: ElementRef, public overlayService: OverlayService) {}\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 this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.updateUI(this.value || \"\");\n });\n }\n\n onAnimationStart(event) {\n switch(event.toState) {\n case 'visible':\n this.overlay = event.element;\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\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 onAnimationEnd(event) {\n switch(event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\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 onInputFocus(event: Event) {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n\n this.onBlur.emit(event);\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 onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\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 if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n\n this.restoreAppend();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule],\n exports: [PasswordDirective, Password, SharedModule],\n declarations: [PasswordDirective, Password]\n})\nexport class PasswordModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|