{"version":3,"sources":["node_modules/file-saver/dist/FileSaver.min.js","node_modules/primeng/fesm2022/primeng-tooltip.mjs","node_modules/primeng/fesm2022/primeng-autofocus.mjs","node_modules/@angular/animations/fesm2022/animations.mjs","node_modules/primeng/fesm2022/primeng-overlay.mjs","node_modules/primeng/fesm2022/primeng-icons-spinner.mjs","node_modules/primeng/fesm2022/primeng-scroller.mjs","node_modules/primeng/fesm2022/primeng-icons-times.mjs","node_modules/primeng/fesm2022/primeng-icons-search.mjs","node_modules/primeng/fesm2022/primeng-dropdown.mjs","node_modules/primeng/fesm2022/primeng-inputtext.mjs","node_modules/primeng/fesm2022/primeng-inputmask.mjs","node_modules/primeng/fesm2022/primeng-tabview.mjs","node_modules/primeng/fesm2022/primeng-icons-check.mjs","node_modules/primeng/fesm2022/primeng-icons-exclamationtriangle.mjs","node_modules/primeng/fesm2022/primeng-icons-infocircle.mjs","node_modules/primeng/fesm2022/primeng-icons-timescircle.mjs","node_modules/primeng/fesm2022/primeng-message.mjs","node_modules/primeng/fesm2022/primeng-focustrap.mjs","node_modules/primeng/fesm2022/primeng-icons-windowmaximize.mjs","node_modules/primeng/fesm2022/primeng-icons-windowminimize.mjs","node_modules/primeng/fesm2022/primeng-button.mjs","node_modules/primeng/fesm2022/primeng-dialog.mjs","node_modules/primeng/fesm2022/primeng-checkbox.mjs","node_modules/primeng/fesm2022/primeng-icons-calendar.mjs","node_modules/primeng/fesm2022/primeng-calendar.mjs","node_modules/primeng/fesm2022/primeng-icons-arrowdown.mjs","node_modules/primeng/fesm2022/primeng-icons-arrowup.mjs","node_modules/primeng/fesm2022/primeng-icons-filter.mjs","node_modules/primeng/fesm2022/primeng-icons-filterslash.mjs","node_modules/primeng/fesm2022/primeng-icons-plus.mjs","node_modules/primeng/fesm2022/primeng-icons-sortalt.mjs","node_modules/primeng/fesm2022/primeng-icons-sortamountdown.mjs","node_modules/primeng/fesm2022/primeng-icons-sortamountupalt.mjs","node_modules/primeng/fesm2022/primeng-icons-trash.mjs","node_modules/primeng/fesm2022/primeng-icons-angledown.mjs","node_modules/primeng/fesm2022/primeng-icons-angleup.mjs","node_modules/primeng/fesm2022/primeng-inputnumber.mjs","node_modules/primeng/fesm2022/primeng-icons-angledoubleleft.mjs","node_modules/primeng/fesm2022/primeng-icons-angledoubleright.mjs","node_modules/primeng/fesm2022/primeng-icons-angleleft.mjs","node_modules/primeng/fesm2022/primeng-icons-angleright.mjs","node_modules/primeng/fesm2022/primeng-paginator.mjs","node_modules/primeng/fesm2022/primeng-selectbutton.mjs","node_modules/primeng/fesm2022/primeng-tristatecheckbox.mjs","node_modules/primeng/fesm2022/primeng-table.mjs","node_modules/primeng/fesm2022/primeng-radiobutton.mjs","node_modules/primeng/fesm2022/primeng-messages.mjs","node_modules/primeng/fesm2022/primeng-progressbar.mjs","node_modules/primeng/fesm2022/primeng-icons-upload.mjs","node_modules/primeng/fesm2022/primeng-fileupload.mjs","node_modules/primeng/fesm2022/primeng-multiselect.mjs","node_modules/primeng/fesm2022/primeng-sidebar.mjs","node_modules/primeng/fesm2022/primeng-confirmdialog.mjs","node_modules/primeng/fesm2022/primeng-toast.mjs","node_modules/primeng/fesm2022/primeng-icons-thlarge.mjs","node_modules/primeng/fesm2022/primeng-icons-bars.mjs","node_modules/primeng/fesm2022/primeng-dataview.mjs","node_modules/primeng/fesm2022/primeng-autocomplete.mjs","src/app/services/models/collection-list-item.ts","src/app/services/models/collection-type.ts","src/app/services/models/requests/collection-detail-request.ts","src/app/services/models/requests/collection-search-request.ts","src/app/services/models/requests/find-collection-providers-request.ts","src/app/services/models/provider-detail-info.ts","src/app/services/models/requests/provider-detail-request.ts","src/app/services/models/requests/collection-users-request.ts","src/app/services/models/requests/user-collection-request.ts","src/app/services/models/requests/update-permissions-request.ts","src/app/services/models/requests/removal-collection-request.ts","src/app/services/models/requests/user-external-request.ts","src/app/services/models/requests/user-provider-collection.ts","src/app/services/models/requests/find-multiple-collection-providers-request.ts","src/app/services/models/requests/find-provider-taxdetails-request.ts","src/app/services/models/requests/find-provider-groupdetails-request.ts","src/app/services/collection.service.ts","src/app/app-components/alerts/alert-danger/alert-danger.component.ts","src/app/app-components/alerts/alert-danger/alert-danger.component.html","src/app/app-components/dialogs/add-collection-dialog/add-collection-dialog.component.ts","src/app/app-components/dialogs/add-collection-dialog/add-collection-dialog.component.html","src/app/services/models/pager-classes.ts","src/app/app.messages.ts","src/app/app-components/dialogs/add-provider-dialog/add-provider-dialog.component.ts","src/app/app-components/dialogs/add-provider-dialog/add-provider-dialog.component.html","src/app/services/models/requests/code-request.ts","src/app/services/models/requests/provider-setting-request.ts","src/app/services/models/requests/referring-provider-request.ts","src/app/services/code.service.ts","src/app/app-components/dialogs/add-diagnosis-dialog/add-diagnosis-dialog.component.ts","src/app/app-components/dialogs/add-diagnosis-dialog/add-diagnosis-dialog.component.html","src/app/app-components/dialogs/add-user-dialog/add-user-dialog.component.ts","src/app/app-components/dialogs/add-user-dialog/add-user-dialog.component.html","src/app/app-components/dialogs/provider-information-dialog/provider-information-dialog.component.ts","src/app/app-components/dialogs/provider-information-dialog/provider-information-dialog.component.html","src/app/app-components/directives/future-date-check.directive.ts","src/app/app-components/dialogs/remove-user-dialog/remove-user-dialog.component.ts","src/app/app-components/dialogs/remove-user-dialog/remove-user-dialog.component.html","src/app/app-components/dialogs/rename-collection-dialog/rename-collection-dialog.component.ts","src/app/app-components/dialogs/rename-collection-dialog/rename-collection-dialog.component.html","src/app/app-components/paginator/paginator.component.ts","src/app/app-components/paginator/paginator.component.html","src/app/app-components/dialogs/idle-timeout-dialog/idle-timeout-dialog.component.ts","src/app/app-components/dialogs/idle-timeout-dialog/idle-timeout-dialog.component.html","src/app/app-components/dialogs/please-wait-dialog/please-wait-dialog.component.ts","src/app/app-components/dialogs/please-wait-dialog/please-wait-dialog.component.html","src/app/services/models/requests/lookup-request.ts","src/app/app-components/lookup-date/lookup-date.component.ts","src/app/app-components/lookup-date/lookup-date.component.html","src/app/app-components/button-toggle/button-toggle.component.ts","src/app/app-components/button-toggle/button-toggle.component.html","src/app/app-components/lookup-number/lookup-number.component.ts","src/app/app-components/lookup-number/lookup-number.component.html","src/app/app-components/directives/active-ellipsis.directive.ts","src/app/app-components/directives/autofocus.directive.ts","node_modules/@angular/cdk/fesm2022/coercion.mjs","node_modules/@angular/cdk/fesm2022/platform.mjs","node_modules/@angular/cdk/fesm2022/layout.mjs","src/app/services/router-history.service.ts","src/app/app-components/small-screen-viewer/small-screen-viewer.component.ts","src/app/app-components/small-screen-viewer/small-screen-viewer.component.html","src/app/app-components/dialogs/session-timeout-dialog/session-timeout-dialog.component.ts","src/app/app-components/dialogs/session-timeout-dialog/session-timeout-dialog.component.html","src/app/app-components/alerts/alert-info/alert-info.component.ts","src/app/app-components/alerts/alert-info/alert-info.component.html","src/app/app-components/alerts/alert-warning/alert-warning.component.ts","src/app/app-components/alerts/alert-warning/alert-warning.component.html","src/app/app-components/alerts/alert-success/alert-success.component.ts","src/app/app-components/alerts/alert-success/alert-success.component.html","src/app/app-components/dialogs/user-verification-dialog/user-verification-dialog.component.ts","src/app/app-components/dialogs/user-verification-dialog/user-verification-dialog.component.html","src/app/app-components/dialogs/ref-submission-cancel-dialog/ref-submission-cancel-dialog.component.ts","src/app/app-components/dialogs/ref-submission-cancel-dialog/ref-submission-cancel-dialog.component.html","src/app/services/city.service.ts","src/app/app-components/city-lookup/city-lookup.component.ts","src/app/app-components/city-lookup/city-lookup.component.html","src/app/app-components/dialogs/training-alert-dialog/training-alert-dialog.component.ts","src/app/app-components/dialogs/training-alert-dialog/training-alert-dialog.component.html","src/app/app-components/dialogs/referral-attachment-dialog/referral-attachment-dialog.component.ts","src/app/app-components/dialogs/referral-attachment-dialog/referral-attachment-dialog.component.html","src/app/app-components/dialogs/save-changes-alert-dialog/save-changes-alert-dialog.component.ts","src/app/app-components/dialogs/save-changes-alert-dialog/save-changes-alert-dialog.component.html","src/app/services/models/user-collection-role.ts","src/app/services/models/user-info.ts","src/app/services/models/user-permission-type-map.ts","src/app/app-components/dialogs/user-permission-dialog/user-pcp-agreement/user-pcp-agreement.component.ts","src/app/app-components/dialogs/user-permission-dialog/user-pcp-agreement/user-pcp-agreement.component.html","src/app/app-components/dialogs/user-permission-dialog/user-permission-prompt/user-permission-prompt.component.ts","src/app/app-components/dialogs/user-permission-dialog/user-permission-prompt/user-permission-prompt.component.html","src/app/app-components/dialogs/user-permission-dialog/user-position-and-authorized-dialog/user-position-and-authorized-dialog.component.ts","src/app/app-components/dialogs/user-permission-dialog/user-position-and-authorized-dialog/user-position-and-authorized-dialog.component.html","src/app/app-components/dialogs/user-permission-dialog/user-permission-dialog.component.ts","src/app/app-components/dialogs/user-permission-dialog/user-permission-dialog.component.html","src/app/app-components/dialogs/user-approve-decline-dialog/user-approve-decline-dialog.component.ts","src/app/app-components/dialogs/user-approve-decline-dialog/user-approve-decline-dialog.component.html","src/app/app-components/dialogs/user-decline-dialog/user-decline-dialog.component.ts","src/app/app-components/dialogs/user-decline-dialog/user-decline-dialog.component.html","src/app/app-components/dialogs/confirm-dialog/confirm-dialog.component.ts","src/app/app-components/dialogs/confirm-dialog/confirm-dialog.component.html","src/app/app-components/dialogs/user-organization-dialog/user-organization-dialog.component.ts","src/app/app-components/dialogs/user-organization-dialog/user-organization-dialog.component.html","src/app/app-components/create-password/create-password.component.ts","src/app/app-components/create-password/create-password.component.html","src/app/services/models/login.model.ts","src/app/services/models/verify-identity.model.ts","src/app/services/models/authentication-factor-choice.model.ts","src/app/services/service-utility.ts","src/app/services/models/email-request.ts","src/app/services/models/verification-request.ts","src/app/services/models/requests/provider-search-request.ts","src/app/services/models/register-provider-request.ts","src/app/services/registration-service.ts","src/app/services/user.service.ts","src/app/app-components/login-errrors/login-errrors.component.ts","src/app/app-components/login-errrors/login-errrors.component.html","src/app/app-components/verify-identity-passcode/verify-identity-passcode.component.ts","src/app/app-components/verify-identity-passcode/verify-identity-passcode.component.html","src/app/app-components/verify-identity/verify-identity.component.ts","src/app/app-components/verify-identity/verify-identity.component.html","src/app/app-components/change-password/change-password.component.ts","src/app/app-components/change-password/change-password.component.html","src/app/app-components/dialogs/password-reset-dialog/password-reset-dialog.component.ts","src/app/app-components/dialogs/password-reset-dialog/password-reset-dialog.component.html","src/app/app-components/dialogs/user-edit-dialog/user-edit-dialog.component.ts","src/app/app-components/dialogs/user-edit-dialog/user-edit-dialog.component.html","src/app/services/models/email-verification-parameters.ts","src/app/app-components/dialogs/user-change-password-dialog/user-change-password-dialog.component.ts","src/app/app-components/dialogs/user-change-password-dialog/user-change-password-dialog.component.html","src/app/app-components/create-security-questions/create-security-questions.component.ts","src/app/app-components/create-security-questions/create-security-questions.component.html","src/app/app-components/dialogs/user-change-security-dialog/user-change-security-dialog.component.ts","src/app/app-components/dialogs/user-change-security-dialog/user-change-security-dialog.component.html","src/app/services/models/provider-type.ts","src/app/app-components/provider-search/provider-search.component.ts","src/app/app-components/provider-search/provider-search.component.html","src/app/app-components/disclaimer-links/disclaimer-links.component.ts","src/app/app-components/disclaimer-links/disclaimer-links.component.html","src/app/app-components/dialogs/browser-refresh-dialog/browser-refresh-dialog.component.ts","src/app/app-components/dialogs/browser-refresh-dialog/browser-refresh-dialog.component.html","src/app/app-components/dialogs/continue-dialog/continue-dialog.component.ts","src/app/app-components/dialogs/continue-dialog/continue-dialog.component.html","src/app/services/file.service.ts","src/app/app-components/hif-member-data/hif-member-data.component.ts","src/app/app-components/hif-member-data/hif-member-data.component.html","src/app/services/models/reportype.ts","src/app/services/models/requests/member-pcproster-download-request.ts","src/app/services/models/requests/reportfiles-forprovider-request.ts","src/app/services/models/requests/tax-search-report-request.ts","src/app/services/models/requests/reportfile-download-request.ts","src/app/services/models/requests/provider-search-memberroster-request.ts","src/app/services/models/requests/reportfiles-formember-request.ts","src/app/services/models/requests/member-search-report-request.ts","src/app/services/models/requests/attestation-request.ts","src/app/services/models/requests/member-with-hif-download-request.ts","src/app/services/models/requests/wellnessSurveyQuestionAnswer.ts","src/app/services/models/requests/wellnessSurveyAnswerRequest.ts","src/app/services/models/requests/awp-download-request.ts","src/app/services/models/requests/bh-aba-referral-attestation-search-request.ts","src/app/services/models/training-attestation-status.ts","src/app/services/models/requests/training-attestation-detail-request.ts","src/app/services/models/requests/network-report-request.ts","src/app/services/models/requests/report-pdc-download-request.ts","src/app/services/models/requests/report-pdc-provider-request.ts","src/app/services/reports.service.ts","src/app/app-components/dialogs/hif-member-data-dialog/hif-member-data-dialog.component.ts","src/app/app-components/dialogs/hif-member-data-dialog/hif-member-data-dialog.component.html","src/app/services/models/provider-detail.ts","src/app/services/models/requests/provider-member-roster-request.ts","src/app/services/member.roster.service.ts","src/app/app-components/reports-provider-search/reports-provider-search.component.ts","src/app/app-components/reports-provider-search/reports-provider-search.component.html","src/app/app-components/member-roster/member-roster.component.ts","src/app/app-components/member-roster/member-roster.component.html","src/app/app-components/dialogs/member-roster-dialog/member-roster-dialog.component.ts","src/app/app-components/dialogs/member-roster-dialog/member-roster-dialog.component.html","src/app/services/models/member-eligibility.ts","src/app/services/member-info.service.ts","src/app/services/models/requests/member-info-request.ts","src/app/services/models/member-request.ts","src/app/app-components/member-detail/member-detail-tabs/member-claims/member-claims.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-claims/member-claims.component.html","src/app/app-components/member-detail/member-detail-tabs/member-custom-messages/member-custom-messages-nonpcp/member-custom-messages-nonpcp.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-custom-messages/member-custom-messages-nonpcp/member-custom-messages-nonpcp.component.html","src/app/app-components/member-detail/member-detail-tabs/member-conditions/member-conditions.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-conditions/member-conditions.component.html","src/app/services/models/member-eligibility-status.ts","src/app/services/models/member-status-map.ts","src/app/app-components/member-detail/member-detail-tabs/member-details-eligibility/member-details-eligibility.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-details-eligibility/member-details-eligibility.component.html","src/app/app-components/member-detail/member-detail-tabs/member-details-eligibility/member-eligibility-history/member-eligibility-history.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-details-eligibility/member-eligibility-history/member-eligibility-history.component.html","src/app/app-components/member-detail/member-detail-tabs/member-hif/member-hif.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-hif/member-hif.component.html","src/app/app-components/member-detail/member-detail-tabs/member-labs/member-labs.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-labs/member-labs.component.html","src/app/app-components/member-detail/member-detail-tabs/member-medications/member-medications.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-medications/member-medications.component.html","src/app/app-components/member-detail/member-detail-tabs/member-referrals/member-referrals.component.ts","src/app/app-components/member-detail/member-detail-tabs/member-referrals/member-referrals.component.html","src/app/app-components/member-detail/member-details.component.ts","src/app/app-components/member-detail/member-details.component.html","src/app/app-components/dialogs/choose-date-dialog/choose-date-dialog.component.ts","src/app/app-components/dialogs/choose-date-dialog/choose-date-dialog.component.html","src/app/app-components/app-components.module.ts"],"sourcesContent":["(function (a, b) {\n if (\"function\" == typeof define && define.amd) define([], b);else if (\"undefined\" != typeof exports) b();else {\n b(), a.FileSaver = {\n exports: {}\n }.exports;\n }\n})(this, function () {\n \"use strict\";\n\n function b(a, b) {\n return \"undefined\" == typeof b ? b = {\n autoBom: !1\n } : \"object\" != typeof b && (console.warn(\"Deprecated: Expected third argument to be a object\"), b = {\n autoBom: !b\n }), b.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type) ? new Blob([\"\\uFEFF\", a], {\n type: a.type\n }) : a;\n }\n function c(a, b, c) {\n var d = new XMLHttpRequest();\n d.open(\"GET\", a), d.responseType = \"blob\", d.onload = function () {\n g(d.response, b, c);\n }, d.onerror = function () {\n console.error(\"could not download file\");\n }, d.send();\n }\n function d(a) {\n var b = new XMLHttpRequest();\n b.open(\"HEAD\", a, !1);\n try {\n b.send();\n } catch (a) {}\n return 200 <= b.status && 299 >= b.status;\n }\n function e(a) {\n try {\n a.dispatchEvent(new MouseEvent(\"click\"));\n } catch (c) {\n var b = document.createEvent(\"MouseEvents\");\n b.initMouseEvent(\"click\", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), a.dispatchEvent(b);\n }\n }\n var f = \"object\" == typeof window && window.window === window ? window : \"object\" == typeof self && self.self === self ? self : \"object\" == typeof global && global.global === global ? global : void 0,\n a = f.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent),\n g = f.saveAs || (\"object\" != typeof window || window !== f ? function () {} : \"download\" in HTMLAnchorElement.prototype && !a ? function (b, g, h) {\n var i = f.URL || f.webkitURL,\n j = document.createElement(\"a\");\n g = g || b.name || \"download\", j.download = g, j.rel = \"noopener\", \"string\" == typeof b ? (j.href = b, j.origin === location.origin ? e(j) : d(j.href) ? c(b, g, h) : e(j, j.target = \"_blank\")) : (j.href = i.createObjectURL(b), setTimeout(function () {\n i.revokeObjectURL(j.href);\n }, 4E4), setTimeout(function () {\n e(j);\n }, 0));\n } : \"msSaveOrOpenBlob\" in navigator ? function (f, g, h) {\n if (g = g || f.name || \"download\", \"string\" != typeof f) navigator.msSaveOrOpenBlob(b(f, h), g);else if (d(f)) c(f, g, h);else {\n var i = document.createElement(\"a\");\n i.href = f, i.target = \"_blank\", setTimeout(function () {\n e(i);\n });\n }\n } : function (b, d, e, g) {\n if (g = g || open(\"\", \"_blank\"), g && (g.document.title = g.document.body.innerText = \"downloading...\"), \"string\" == typeof b) return c(b, d, e);\n var h = \"application/octet-stream\" === b.type,\n i = /constructor/i.test(f.HTMLElement) || f.safari,\n j = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((j || h && i || a) && \"undefined\" != typeof FileReader) {\n var k = new FileReader();\n k.onloadend = function () {\n var a = k.result;\n a = j ? a : a.replace(/^data:[^;]*;/, \"data:attachment/file;\"), g ? g.location.href = a : location = a, g = null;\n }, k.readAsDataURL(b);\n } else {\n var l = f.URL || f.webkitURL,\n m = l.createObjectURL(b);\n g ? g.location = m : location.href = m, g = null, setTimeout(function () {\n l.revokeObjectURL(m);\n }, 4E4);\n }\n });\n f.saveAs = g.saveAs = g, \"undefined\" != typeof module && (module.exports = g);\n});\n\n","import { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { TemplateRef, PLATFORM_ID, Directive, Inject, Input, HostListener, NgModule } from '@angular/core';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { UniqueComponentId, ZIndexUtils } from 'primeng/utils';\nimport * as i1 from 'primeng/api';\n\n/**\n * Tooltip directive provides advisory information for a component.\n * @group Components\n */\nlet Tooltip = /*#__PURE__*/(() => {\n class Tooltip {\n platformId;\n el;\n zone;\n config;\n renderer;\n viewContainer;\n /**\n * Position of the tooltip.\n * @group Props\n */\n tooltipPosition;\n /**\n * Event to show the tooltip.\n * @group Props\n */\n tooltipEvent = 'hover';\n /**\n * Target element to attach the overlay, valid values are \"body\", \"target\" or a local ng-F variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * Type of CSS position.\n * @group Props\n */\n positionStyle;\n /**\n * Style class of the tooltip.\n * @group Props\n */\n tooltipStyleClass;\n /**\n * Whether the z-index should be managed automatically to always go on top or have a fixed value.\n * @group Props\n */\n tooltipZIndex;\n /**\n * By default the tooltip contents are rendered as text. Set to false to support html tags in the content.\n * @group Props\n */\n escape = true;\n /**\n * Delay to show the tooltip in milliseconds.\n * @group Props\n */\n showDelay;\n /**\n * Delay to hide the tooltip in milliseconds.\n * @group Props\n */\n hideDelay;\n /**\n * Time to wait in milliseconds to hide the tooltip even it is active.\n * @group Props\n */\n life;\n /**\n * Specifies the additional vertical offset of the tooltip from its default position.\n * @group Props\n */\n positionTop;\n /**\n * Specifies the additional horizontal offset of the tooltip from its default position.\n * @group Props\n */\n positionLeft;\n /**\n * Whether to hide tooltip when hovering over tooltip content.\n * @group Props\n */\n autoHide = true;\n /**\n * Automatically adjusts the element position when there is not enough space on the selected position.\n * @group Props\n */\n fitContent = true;\n /**\n * Whether to hide tooltip on escape key press.\n * @group Props\n */\n hideOnEscape = true;\n /**\n * Content of the tooltip.\n * @group Props\n */\n content;\n /**\n * When present, it specifies that the component should be disabled.\n * @defaultValue false\n * @group Props\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(val) {\n this._disabled = val;\n this.deactivate();\n }\n /**\n * Specifies the tooltip configuration options for the component.\n * @group Props\n */\n tooltipOptions;\n _tooltipOptions = {\n tooltipLabel: null,\n tooltipPosition: 'right',\n tooltipEvent: 'hover',\n appendTo: 'body',\n positionStyle: null,\n tooltipStyleClass: null,\n tooltipZIndex: 'auto',\n escape: true,\n disabled: null,\n showDelay: null,\n hideDelay: null,\n positionTop: null,\n positionLeft: null,\n life: null,\n autoHide: true,\n hideOnEscape: true,\n id: UniqueComponentId() + '_tooltip'\n };\n _disabled;\n container;\n styleClass;\n tooltipText;\n showTimeout;\n hideTimeout;\n active;\n mouseEnterListener;\n mouseLeaveListener;\n containerMouseleaveListener;\n clickListener;\n focusListener;\n blurListener;\n scrollHandler;\n resizeListener;\n constructor(platformId, el, zone, config, renderer, viewContainer) {\n this.platformId = platformId;\n this.el = el;\n this.zone = zone;\n this.config = config;\n this.renderer = renderer;\n this.viewContainer = viewContainer;\n }\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n if (this.getOption('tooltipEvent') === 'hover') {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.clickListener = this.onInputClick.bind(this);\n this.el.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.addEventListener('click', this.clickListener);\n this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n } else if (this.getOption('tooltipEvent') === 'focus') {\n this.focusListener = this.onFocus.bind(this);\n this.blurListener = this.onBlur.bind(this);\n let target = this.getTarget(this.el.nativeElement);\n target.addEventListener('focus', this.focusListener);\n target.addEventListener('blur', this.blurListener);\n }\n });\n }\n }\n ngOnChanges(simpleChange) {\n if (simpleChange.tooltipPosition) {\n this.setOption({\n tooltipPosition: simpleChange.tooltipPosition.currentValue\n });\n }\n if (simpleChange.tooltipEvent) {\n this.setOption({\n tooltipEvent: simpleChange.tooltipEvent.currentValue\n });\n }\n if (simpleChange.appendTo) {\n this.setOption({\n appendTo: simpleChange.appendTo.currentValue\n });\n }\n if (simpleChange.positionStyle) {\n this.setOption({\n positionStyle: simpleChange.positionStyle.currentValue\n });\n }\n if (simpleChange.tooltipStyleClass) {\n this.setOption({\n tooltipStyleClass: simpleChange.tooltipStyleClass.currentValue\n });\n }\n if (simpleChange.tooltipZIndex) {\n this.setOption({\n tooltipZIndex: simpleChange.tooltipZIndex.currentValue\n });\n }\n if (simpleChange.escape) {\n this.setOption({\n escape: simpleChange.escape.currentValue\n });\n }\n if (simpleChange.showDelay) {\n this.setOption({\n showDelay: simpleChange.showDelay.currentValue\n });\n }\n if (simpleChange.hideDelay) {\n this.setOption({\n hideDelay: simpleChange.hideDelay.currentValue\n });\n }\n if (simpleChange.life) {\n this.setOption({\n life: simpleChange.life.currentValue\n });\n }\n if (simpleChange.positionTop) {\n this.setOption({\n positionTop: simpleChange.positionTop.currentValue\n });\n }\n if (simpleChange.positionLeft) {\n this.setOption({\n positionLeft: simpleChange.positionLeft.currentValue\n });\n }\n if (simpleChange.disabled) {\n this.setOption({\n disabled: simpleChange.disabled.currentValue\n });\n }\n if (simpleChange.content) {\n this.setOption({\n tooltipLabel: simpleChange.content.currentValue\n });\n if (this.active) {\n if (simpleChange.content.currentValue) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n this.align();\n } else {\n this.show();\n }\n } else {\n this.hide();\n }\n }\n }\n if (simpleChange.autoHide) {\n this.setOption({\n autoHide: simpleChange.autoHide.currentValue\n });\n }\n if (simpleChange.id) {\n this.setOption({\n id: simpleChange.id.currentValue\n });\n }\n if (simpleChange.tooltipOptions) {\n this._tooltipOptions = {\n ...this._tooltipOptions,\n ...simpleChange.tooltipOptions.currentValue\n };\n this.deactivate();\n if (this.active) {\n if (this.getOption('tooltipLabel')) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n this.align();\n } else {\n this.show();\n }\n } else {\n this.hide();\n }\n }\n }\n }\n isAutoHide() {\n return this.getOption('autoHide');\n }\n onMouseEnter(e) {\n if (!this.container && !this.showTimeout) {\n this.activate();\n }\n }\n onMouseLeave(e) {\n if (!this.isAutoHide()) {\n const valid = DomHandler.hasClass(e.relatedTarget, 'p-tooltip') || DomHandler.hasClass(e.relatedTarget, 'p-tooltip-text') || DomHandler.hasClass(e.relatedTarget, 'p-tooltip-arrow');\n !valid && this.deactivate();\n } else {\n this.deactivate();\n }\n }\n onFocus(e) {\n this.activate();\n }\n onBlur(e) {\n this.deactivate();\n }\n onInputClick(e) {\n this.deactivate();\n }\n onPressEscape() {\n if (this.hideOnEscape) {\n this.deactivate();\n }\n }\n activate() {\n this.active = true;\n this.clearHideTimeout();\n if (this.getOption('showDelay')) this.showTimeout = setTimeout(() => {\n this.show();\n }, this.getOption('showDelay'));else this.show();\n if (this.getOption('life')) {\n let duration = this.getOption('showDelay') ? this.getOption('life') + this.getOption('showDelay') : this.getOption('life');\n this.hideTimeout = setTimeout(() => {\n this.hide();\n }, duration);\n }\n }\n deactivate() {\n this.active = false;\n this.clearShowTimeout();\n if (this.getOption('hideDelay')) {\n this.clearHideTimeout(); //life timeout\n this.hideTimeout = setTimeout(() => {\n this.hide();\n }, this.getOption('hideDelay'));\n } else {\n this.hide();\n }\n }\n create() {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n this.container = document.createElement('div');\n this.container.setAttribute('id', this.getOption('id'));\n this.container.setAttribute('role', 'tooltip');\n let tooltipArrow = document.createElement('div');\n tooltipArrow.className = 'p-tooltip-arrow';\n this.container.appendChild(tooltipArrow);\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'p-tooltip-text';\n this.updateText();\n if (this.getOption('positionStyle')) {\n this.container.style.position = this.getOption('positionStyle');\n }\n this.container.appendChild(this.tooltipText);\n if (this.getOption('appendTo') === 'body') document.body.appendChild(this.container);else if (this.getOption('appendTo') === 'target') DomHandler.appendChild(this.container, this.el.nativeElement);else DomHandler.appendChild(this.container, this.getOption('appendTo'));\n this.container.style.display = 'inline-block';\n if (this.fitContent) {\n this.container.style.width = 'fit-content';\n }\n if (this.isAutoHide()) {\n this.container.style.pointerEvents = 'none';\n } else {\n this.container.style.pointerEvents = 'unset';\n this.bindContainerMouseleaveListener();\n }\n }\n bindContainerMouseleaveListener() {\n if (!this.containerMouseleaveListener) {\n const targetEl = this.container ?? this.container.nativeElement;\n this.containerMouseleaveListener = this.renderer.listen(targetEl, 'mouseleave', e => {\n this.deactivate();\n });\n }\n }\n unbindContainerMouseleaveListener() {\n if (this.containerMouseleaveListener) {\n this.bindContainerMouseleaveListener();\n this.containerMouseleaveListener = null;\n }\n }\n show() {\n if (!this.getOption('tooltipLabel') || this.getOption('disabled')) {\n return;\n }\n this.create();\n this.align();\n DomHandler.fadeIn(this.container, 250);\n if (this.getOption('tooltipZIndex') === 'auto') ZIndexUtils.set('tooltip', this.container, this.config.zIndex.tooltip);else this.container.style.zIndex = this.getOption('tooltipZIndex');\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n hide() {\n if (this.getOption('tooltipZIndex') === 'auto') {\n ZIndexUtils.clear(this.container);\n }\n this.remove();\n }\n updateText() {\n const content = this.getOption('tooltipLabel');\n if (content instanceof TemplateRef) {\n const embeddedViewRef = this.viewContainer.createEmbeddedView(content);\n embeddedViewRef.detectChanges();\n embeddedViewRef.rootNodes.forEach(node => this.tooltipText.appendChild(node));\n } else if (this.getOption('escape')) {\n this.tooltipText.innerHTML = '';\n this.tooltipText.appendChild(document.createTextNode(content));\n } else {\n this.tooltipText.innerHTML = content;\n }\n }\n align() {\n let position = this.getOption('tooltipPosition');\n switch (position) {\n case 'top':\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'bottom':\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'left':\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n case 'right':\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n }\n }\n getHostOffset() {\n if (this.getOption('appendTo') === 'body' || this.getOption('appendTo') === 'target') {\n let offset = this.el.nativeElement.getBoundingClientRect();\n let targetLeft = offset.left + DomHandler.getWindowScrollLeft();\n let targetTop = offset.top + DomHandler.getWindowScrollTop();\n return {\n left: targetLeft,\n top: targetTop\n };\n } else {\n return {\n left: 0,\n top: 0\n };\n }\n }\n alignRight() {\n this.preAlign('right');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + DomHandler.getOuterWidth(this.el.nativeElement);\n let top = hostOffset.top + (DomHandler.getOuterHeight(this.el.nativeElement) - DomHandler.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + this.getOption('positionLeft') + 'px';\n this.container.style.top = top + this.getOption('positionTop') + 'px';\n }\n alignLeft() {\n this.preAlign('left');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left - DomHandler.getOuterWidth(this.container);\n let top = hostOffset.top + (DomHandler.getOuterHeight(this.el.nativeElement) - DomHandler.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + this.getOption('positionLeft') + 'px';\n this.container.style.top = top + this.getOption('positionTop') + 'px';\n }\n alignTop() {\n this.preAlign('top');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + (DomHandler.getOuterWidth(this.el.nativeElement) - DomHandler.getOuterWidth(this.container)) / 2;\n let top = hostOffset.top - DomHandler.getOuterHeight(this.container);\n this.container.style.left = left + this.getOption('positionLeft') + 'px';\n this.container.style.top = top + this.getOption('positionTop') + 'px';\n }\n alignBottom() {\n this.preAlign('bottom');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + (DomHandler.getOuterWidth(this.el.nativeElement) - DomHandler.getOuterWidth(this.container)) / 2;\n let top = hostOffset.top + DomHandler.getOuterHeight(this.el.nativeElement);\n this.container.style.left = left + this.getOption('positionLeft') + 'px';\n this.container.style.top = top + this.getOption('positionTop') + 'px';\n }\n setOption(option) {\n this._tooltipOptions = {\n ...this._tooltipOptions,\n ...option\n };\n }\n getOption(option) {\n return this._tooltipOptions[option];\n }\n getTarget(el) {\n return DomHandler.hasClass(el, 'p-inputwrapper') ? DomHandler.findSingle(el, 'input') : el;\n }\n preAlign(position) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n let defaultClassName = 'p-tooltip p-component p-tooltip-' + position;\n this.container.className = this.getOption('tooltipStyleClass') ? defaultClassName + ' ' + this.getOption('tooltipStyleClass') : defaultClassName;\n }\n isOutOfBounds() {\n let offset = this.container.getBoundingClientRect();\n let targetTop = offset.top;\n let targetLeft = offset.left;\n let width = DomHandler.getOuterWidth(this.container);\n let height = DomHandler.getOuterHeight(this.container);\n let viewport = DomHandler.getViewport();\n return targetLeft + width > viewport.width || targetLeft < 0 || targetTop < 0 || targetTop + height > viewport.height;\n }\n onWindowResize(e) {\n this.hide();\n }\n bindDocumentResizeListener() {\n this.zone.runOutsideAngular(() => {\n this.resizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.resizeListener);\n });\n }\n unbindDocumentResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (this.container) {\n this.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n unbindEvents() {\n if (this.getOption('tooltipEvent') === 'hover') {\n this.el.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n this.el.nativeElement.removeEventListener('click', this.clickListener);\n } else if (this.getOption('tooltipEvent') === 'focus') {\n let target = this.getTarget(this.el.nativeElement);\n target.removeEventListener('focus', this.focusListener);\n target.removeEventListener('blur', this.blurListener);\n }\n this.unbindDocumentResizeListener();\n }\n remove() {\n if (this.container && this.container.parentElement) {\n if (this.getOption('appendTo') === 'body') document.body.removeChild(this.container);else if (this.getOption('appendTo') === 'target') this.el.nativeElement.removeChild(this.container);else DomHandler.removeChild(this.container, this.getOption('appendTo'));\n }\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.unbindContainerMouseleaveListener();\n this.clearTimeouts();\n this.container = null;\n this.scrollHandler = null;\n }\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n }\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n ngOnDestroy() {\n this.unbindEvents();\n if (this.container) {\n ZIndexUtils.clear(this.container);\n }\n this.remove();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n static ɵfac = function Tooltip_Factory(t) {\n return new (t || Tooltip)(i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.PrimeNGConfig), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: Tooltip,\n selectors: [[\"\", \"pTooltip\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function Tooltip_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.escape\", function Tooltip_keydown_escape_HostBindingHandler($event) {\n return ctx.onPressEscape($event);\n }, false, i0.ɵɵresolveDocument);\n }\n },\n inputs: {\n tooltipPosition: \"tooltipPosition\",\n tooltipEvent: \"tooltipEvent\",\n appendTo: \"appendTo\",\n positionStyle: \"positionStyle\",\n tooltipStyleClass: \"tooltipStyleClass\",\n tooltipZIndex: \"tooltipZIndex\",\n escape: \"escape\",\n showDelay: \"showDelay\",\n hideDelay: \"hideDelay\",\n life: \"life\",\n positionTop: \"positionTop\",\n positionLeft: \"positionLeft\",\n autoHide: \"autoHide\",\n fitContent: \"fitContent\",\n hideOnEscape: \"hideOnEscape\",\n content: [i0.ɵɵInputFlags.None, \"pTooltip\", \"content\"],\n disabled: [i0.ɵɵInputFlags.None, \"tooltipDisabled\", \"disabled\"],\n tooltipOptions: \"tooltipOptions\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n return Tooltip;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TooltipModule = /*#__PURE__*/(() => {\n class TooltipModule {\n static ɵfac = function TooltipModule_Factory(t) {\n return new (t || TooltipModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TooltipModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n return TooltipModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Tooltip, TooltipModule };\n","import { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Directive, Input, NgModule } from '@angular/core';\nimport { DomHandler } from 'primeng/dom';\n\n/**\n * AutoFocus manages focus on focusable element on load.\n * @group Components\n */\nlet AutoFocus = /*#__PURE__*/(() => {\n class AutoFocus {\n host;\n constructor(host) {\n this.host = host;\n }\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n focused = false;\n ngAfterContentChecked() {\n if (!this.focused) {\n if (this.autofocus) {\n setTimeout(() => {\n const focusableElements = DomHandler.getFocusableElements(this.host.nativeElement);\n if (focusableElements.length === 0) {\n this.host.nativeElement.focus();\n }\n if (focusableElements.length > 0) {\n focusableElements[0].focus();\n }\n this.focused = true;\n });\n }\n }\n }\n static ɵfac = function AutoFocus_Factory(t) {\n return new (t || AutoFocus)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: AutoFocus,\n selectors: [[\"\", \"pAutoFocus\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n autofocus: \"autofocus\"\n }\n });\n }\n return AutoFocus;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AutoFocusModule = /*#__PURE__*/(() => {\n class AutoFocusModule {\n static ɵfac = function AutoFocusModule_Factory(t) {\n return new (t || AutoFocusModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: AutoFocusModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n return AutoFocusModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AutoFocus, AutoFocusModule };\n","/**\n * @license Angular v17.2.3\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, Injectable, ANIMATION_MODULE_TYPE, ViewEncapsulation, ɵRuntimeError, Inject } from '@angular/core';\n\n/**\n * @description Constants for the categories of parameters that can be defined for animations.\n *\n * A corresponding function defines a set of parameters for each category, and\n * collects them into a corresponding `AnimationMetadata` object.\n *\n * @publicApi\n */\nvar AnimationMetadataType = /*#__PURE__*/function (AnimationMetadataType) {\n /**\n * Associates a named animation state with a set of CSS styles.\n * See [`state()`](api/animations/state)\n */\n AnimationMetadataType[AnimationMetadataType[\"State\"] = 0] = \"State\";\n /**\n * Data for a transition from one animation state to another.\n * See `transition()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Transition\"] = 1] = \"Transition\";\n /**\n * Contains a set of animation steps.\n * See `sequence()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Sequence\"] = 2] = \"Sequence\";\n /**\n * Contains a set of animation steps.\n * See `{@link animations/group group()}`\n */\n AnimationMetadataType[AnimationMetadataType[\"Group\"] = 3] = \"Group\";\n /**\n * Contains an animation step.\n * See `animate()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Animate\"] = 4] = \"Animate\";\n /**\n * Contains a set of animation steps.\n * See `keyframes()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Keyframes\"] = 5] = \"Keyframes\";\n /**\n * Contains a set of CSS property-value pairs into a named style.\n * See `style()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Style\"] = 6] = \"Style\";\n /**\n * Associates an animation with an entry trigger that can be attached to an element.\n * See `trigger()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Trigger\"] = 7] = \"Trigger\";\n /**\n * Contains a re-usable animation.\n * See `animation()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Reference\"] = 8] = \"Reference\";\n /**\n * Contains data to use in executing child animations returned by a query.\n * See `animateChild()`\n */\n AnimationMetadataType[AnimationMetadataType[\"AnimateChild\"] = 9] = \"AnimateChild\";\n /**\n * Contains animation parameters for a re-usable animation.\n * See `useAnimation()`\n */\n AnimationMetadataType[AnimationMetadataType[\"AnimateRef\"] = 10] = \"AnimateRef\";\n /**\n * Contains child-animation query data.\n * See `query()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Query\"] = 11] = \"Query\";\n /**\n * Contains data for staggering an animation sequence.\n * See `stagger()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Stagger\"] = 12] = \"Stagger\";\n return AnimationMetadataType;\n}(AnimationMetadataType || {});\n/**\n * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
[AnimationBuilder.build](api/animations/AnimationBuilder#build)()
method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nlet AnimationBuilder = /*#__PURE__*/(() => {\n class AnimationBuilder {\n static {\n this.ɵfac = function AnimationBuilder_Factory(t) {\n return new (t || AnimationBuilder)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AnimationBuilder,\n factory: () => (() => inject(BrowserAnimationBuilder))(),\n providedIn: 'root'\n });\n }\n }\n return AnimationBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()
\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {}\nlet BrowserAnimationBuilder = /*#__PURE__*/(() => {\n class BrowserAnimationBuilder extends AnimationBuilder {\n constructor(rootRenderer, doc) {\n super();\n this.animationModuleType = inject(ANIMATION_MODULE_TYPE, {\n optional: true\n });\n this._nextAnimationId = 0;\n const typeData = {\n id: '0',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {\n animation: []\n }\n };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) {\n // We only support AnimationRenderer & DynamicDelegationRenderer for this AnimationBuilder\n throw new ɵRuntimeError(3600 /* RuntimeErrorCode.BROWSER_ANIMATION_BUILDER_INJECTED_WITHOUT_ANIMATIONS */, (typeof ngDevMode === 'undefined' || ngDevMode) && 'Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. ' + 'Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function.');\n }\n }\n build(animation) {\n const id = this._nextAnimationId;\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n static {\n this.ɵfac = function BrowserAnimationBuilder_Factory(t) {\n return new (t || BrowserAnimationBuilder)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BrowserAnimationBuilder,\n factory: BrowserAnimationBuilder.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return BrowserAnimationBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0;\n }\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n/**\n * The following 2 methods cannot reference their correct types (AnimationRenderer &\n * DynamicDelegationRenderer) since this would introduce a import cycle.\n */\nfunction unwrapAnimationRenderer(renderer) {\n const type = renderer.ɵtype;\n if (type === 0 /* AnimationRendererType.Regular */) {\n return renderer;\n } else if (type === 1 /* AnimationRendererType.Delegated */) {\n return renderer.animationRenderer;\n }\n return null;\n}\nfunction isAnimationRenderer(renderer) {\n const type = renderer.ɵtype;\n return type === 0 /* AnimationRendererType.Regular */ || type === 1 /* AnimationRendererType.Delegated */;\n}\n\n/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see {@link animate}\n * @see {@link AnimationPlayer}\n * @see {@link ɵAnimationGroupPlayer AnimationGroupPlayer}\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n constructor(duration = 0, delay = 0) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this._position = 0;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() {}\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n queueMicrotask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() {}\n restart() {}\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see {@link AnimationPlayer}\n * @see {@link animations/group group}\n *\n */\nclass AnimationGroupPlayer {\n constructor(_players) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n queueMicrotask(() => this._onFinish());\n } else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\nconst ɵPRE_STYLE = '!';\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, AnimationMetadataType, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, ɵPRE_STYLE };\n","import { animation, style, animate, trigger, transition, useAnimation } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, Output, ContentChildren, ViewChild, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'primeng/api';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ObjectUtils, ZIndexUtils } from 'primeng/utils';\nconst _c0 = [\"overlay\"];\nconst _c1 = [\"content\"];\nfunction Overlay_div_0_div_2_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c2 = (a0, a1, a2) => ({\n showTransitionParams: a0,\n hideTransitionParams: a1,\n transform: a2\n});\nconst _c3 = a1 => ({\n value: \"visible\",\n params: a1\n});\nconst _c4 = a0 => ({\n mode: a0\n});\nconst _c5 = a0 => ({\n $implicit: a0\n});\nfunction Overlay_div_0_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 3);\n i0.ɵɵlistener(\"click\", function Overlay_div_0_div_2_Template_div_click_0_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r5 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r5.onOverlayContentClick($event));\n })(\"@overlayContentAnimation.start\", function Overlay_div_0_div_2_Template_div_animation_overlayContentAnimation_start_0_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r7 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r7.onOverlayContentAnimationStart($event));\n })(\"@overlayContentAnimation.done\", function Overlay_div_0_div_2_Template_div_animation_overlayContentAnimation_done_0_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r8 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r8.onOverlayContentAnimationDone($event));\n });\n i0.ɵɵprojection(2);\n i0.ɵɵtemplate(3, Overlay_div_0_div_2_ng_container_3_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(ctx_r2.contentStyleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r2.contentStyle)(\"ngClass\", \"p-overlay-content\")(\"@overlayContentAnimation\", i0.ɵɵpureFunction1(11, _c3, i0.ɵɵpureFunction3(7, _c2, ctx_r2.showTransitionOptions, ctx_r2.hideTransitionOptions, ctx_r2.transformOptions[ctx_r2.modal ? ctx_r2.overlayResponsiveDirection : \"default\"])));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(15, _c5, i0.ɵɵpureFunction1(13, _c4, ctx_r2.overlayMode)));\n }\n}\nconst _c6 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) => ({\n \"p-overlay p-component\": true,\n \"p-overlay-modal p-component-overlay p-component-overlay-enter\": a1,\n \"p-overlay-center\": a2,\n \"p-overlay-top\": a3,\n \"p-overlay-top-start\": a4,\n \"p-overlay-top-end\": a5,\n \"p-overlay-bottom\": a6,\n \"p-overlay-bottom-start\": a7,\n \"p-overlay-bottom-end\": a8,\n \"p-overlay-left\": a9,\n \"p-overlay-left-start\": a10,\n \"p-overlay-left-end\": a11,\n \"p-overlay-right\": a12,\n \"p-overlay-right-start\": a13,\n \"p-overlay-right-end\": a14\n});\nfunction Overlay_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 2);\n i0.ɵɵlistener(\"click\", function Overlay_div_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r9 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r9.onOverlayClick());\n });\n i0.ɵɵtemplate(2, Overlay_div_0_div_2_Template, 4, 17, \"div\", 0);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r0.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r0.style)(\"ngClass\", i0.ɵɵpureFunctionV(5, _c6, [ctx_r0.modal, ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"center\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"top\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"top-start\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"top-end\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"bottom\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"bottom-start\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"bottom-end\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"left\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"left-start\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"left-end\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"right\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"right-start\", ctx_r0.modal && ctx_r0.overlayResponsiveDirection === \"right-end\"]));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.visible);\n }\n}\nconst _c7 = [\"*\"];\nconst OVERLAY_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Overlay),\n multi: true\n};\nconst showOverlayContentAnimation = animation([style({\n transform: '{{transform}}',\n opacity: 0\n}), animate('{{showTransitionParams}}')]);\nconst hideOverlayContentAnimation = animation([animate('{{hideTransitionParams}}', style({\n transform: '{{transform}}',\n opacity: 0\n}))]);\n/**\n * This API allows overlay components to be controlled from the PrimeNGConfig. In this way, all overlay components in the application can have the same behavior.\n * @group Components\n */\nlet Overlay = /*#__PURE__*/(() => {\n class Overlay {\n document;\n platformId;\n el;\n renderer;\n config;\n overlayService;\n cd;\n zone;\n /**\n * The visible property is an input that determines the visibility of the component.\n * @defaultValue false\n * @group Props\n */\n get visible() {\n return this._visible;\n }\n set visible(value) {\n this._visible = value;\n if (this._visible && !this.modalVisible) {\n this.modalVisible = true;\n }\n }\n /**\n * The mode property is an input that determines the overlay mode type or string.\n * @defaultValue null\n * @group Props\n */\n get mode() {\n return this._mode || this.overlayOptions?.mode;\n }\n set mode(value) {\n this._mode = value;\n }\n /**\n * The style property is an input that determines the style object for the component.\n * @defaultValue null\n * @group Props\n */\n get style() {\n return ObjectUtils.merge(this._style, this.modal ? this.overlayResponsiveOptions?.style : this.overlayOptions?.style);\n }\n set style(value) {\n this._style = value;\n }\n /**\n * The styleClass property is an input that determines the CSS class(es) for the component.\n * @defaultValue null\n * @group Props\n */\n get styleClass() {\n return ObjectUtils.merge(this._styleClass, this.modal ? this.overlayResponsiveOptions?.styleClass : this.overlayOptions?.styleClass);\n }\n set styleClass(value) {\n this._styleClass = value;\n }\n /**\n * The contentStyle property is an input that determines the style object for the content of the component.\n * @defaultValue null\n * @group Props\n */\n get contentStyle() {\n return ObjectUtils.merge(this._contentStyle, this.modal ? this.overlayResponsiveOptions?.contentStyle : this.overlayOptions?.contentStyle);\n }\n set contentStyle(value) {\n this._contentStyle = value;\n }\n /**\n * The contentStyleClass property is an input that determines the CSS class(es) for the content of the component.\n * @defaultValue null\n * @group Props\n */\n get contentStyleClass() {\n return ObjectUtils.merge(this._contentStyleClass, this.modal ? this.overlayResponsiveOptions?.contentStyleClass : this.overlayOptions?.contentStyleClass);\n }\n set contentStyleClass(value) {\n this._contentStyleClass = value;\n }\n /**\n * The target property is an input that specifies the target element or selector for the component.\n * @defaultValue null\n * @group Props\n */\n get target() {\n const value = this._target || this.overlayOptions?.target;\n return value === undefined ? '@prev' : value;\n }\n set target(value) {\n this._target = value;\n }\n /**\n * Overlay can be mounted into its location, body or DOM element instance using this option.\n * @defaultValue null\n * @group Props\n */\n get appendTo() {\n return this._appendTo || this.overlayOptions?.appendTo;\n }\n set appendTo(value) {\n this._appendTo = value;\n }\n /**\n * The autoZIndex determines whether to automatically manage layering. Its default value is 'false'.\n * @defaultValue false\n * @group Props\n */\n get autoZIndex() {\n const value = this._autoZIndex || this.overlayOptions?.autoZIndex;\n return value === undefined ? true : value;\n }\n set autoZIndex(value) {\n this._autoZIndex = value;\n }\n /**\n * The baseZIndex is base zIndex value to use in layering.\n * @defaultValue null\n * @group Props\n */\n get baseZIndex() {\n const value = this._baseZIndex || this.overlayOptions?.baseZIndex;\n return value === undefined ? 0 : value;\n }\n set baseZIndex(value) {\n this._baseZIndex = value;\n }\n /**\n * Transition options of the show or hide animation.\n * @defaultValue .12s cubic-bezier(0, 0, 0.2, 1)\n * @group Props\n */\n get showTransitionOptions() {\n const value = this._showTransitionOptions || this.overlayOptions?.showTransitionOptions;\n return value === undefined ? '.12s cubic-bezier(0, 0, 0.2, 1)' : value;\n }\n set showTransitionOptions(value) {\n this._showTransitionOptions = value;\n }\n /**\n * The hideTransitionOptions property is an input that determines the CSS transition options for hiding the component.\n * @defaultValue .1s linear\n * @group Props\n */\n get hideTransitionOptions() {\n const value = this._hideTransitionOptions || this.overlayOptions?.hideTransitionOptions;\n return value === undefined ? '.1s linear' : value;\n }\n set hideTransitionOptions(value) {\n this._hideTransitionOptions = value;\n }\n /**\n * The listener property is an input that specifies the listener object for the component.\n * @defaultValue null\n * @group Props\n */\n get listener() {\n return this._listener || this.overlayOptions?.listener;\n }\n set listener(value) {\n this._listener = value;\n }\n /**\n * It is the option used to determine in which mode it should appear according to the given media or breakpoint.\n * @defaultValue null\n * @group Props\n */\n get responsive() {\n return this._responsive || this.overlayOptions?.responsive;\n }\n set responsive(val) {\n this._responsive = val;\n }\n /**\n * The options property is an input that specifies the overlay options for the component.\n * @defaultValue null\n * @group Props\n */\n get options() {\n return this._options;\n }\n set options(val) {\n this._options = val;\n }\n /**\n * This EventEmitter is used to notify changes in the visibility state of a component.\n * @param {Boolean} boolean - Value of visibility as boolean.\n * @group Emits\n */\n visibleChange = new EventEmitter();\n /**\n * Callback to invoke before the overlay is shown.\n * @param {OverlayOnBeforeShowEvent} event - Custom overlay before show event.\n * @group Emits\n */\n onBeforeShow = new EventEmitter();\n /**\n * Callback to invoke when the overlay is shown.\n * @param {OverlayOnShowEvent} event - Custom overlay show event.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Callback to invoke before the overlay is hidden.\n * @param {OverlayOnBeforeHideEvent} event - Custom overlay before hide event.\n * @group Emits\n */\n onBeforeHide = new EventEmitter();\n /**\n * Callback to invoke when the overlay is hidden\n * @param {OverlayOnHideEvent} event - Custom hide event.\n * @group Emits\n */\n onHide = new EventEmitter();\n /**\n * Callback to invoke when the animation is started.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n */\n onAnimationStart = new EventEmitter();\n /**\n * Callback to invoke when the animation is done.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n */\n onAnimationDone = new EventEmitter();\n templates;\n overlayViewChild;\n contentViewChild;\n contentTemplate;\n _visible = false;\n _mode;\n _style;\n _styleClass;\n _contentStyle;\n _contentStyleClass;\n _target;\n _appendTo;\n _autoZIndex;\n _baseZIndex;\n _showTransitionOptions;\n _hideTransitionOptions;\n _listener;\n _responsive;\n _options;\n modalVisible = false;\n isOverlayClicked = false;\n isOverlayContentClicked = false;\n scrollHandler;\n documentClickListener;\n documentResizeListener;\n documentKeyboardListener;\n window;\n transformOptions = {\n default: 'scaleY(0.8)',\n center: 'scale(0.7)',\n top: 'translate3d(0px, -100%, 0px)',\n 'top-start': 'translate3d(0px, -100%, 0px)',\n 'top-end': 'translate3d(0px, -100%, 0px)',\n bottom: 'translate3d(0px, 100%, 0px)',\n 'bottom-start': 'translate3d(0px, 100%, 0px)',\n 'bottom-end': 'translate3d(0px, 100%, 0px)',\n left: 'translate3d(-100%, 0px, 0px)',\n 'left-start': 'translate3d(-100%, 0px, 0px)',\n 'left-end': 'translate3d(-100%, 0px, 0px)',\n right: 'translate3d(100%, 0px, 0px)',\n 'right-start': 'translate3d(100%, 0px, 0px)',\n 'right-end': 'translate3d(100%, 0px, 0px)'\n };\n get modal() {\n if (isPlatformBrowser(this.platformId)) {\n return this.mode === 'modal' || this.overlayResponsiveOptions && this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace('@media', '') || `(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches;\n }\n }\n get overlayMode() {\n return this.mode || (this.modal ? 'modal' : 'overlay');\n }\n get overlayOptions() {\n return {\n ...this.config?.overlayOptions,\n ...this.options\n }; // TODO: Improve performance\n }\n get overlayResponsiveOptions() {\n return {\n ...this.overlayOptions?.responsive,\n ...this.responsive\n }; // TODO: Improve performance\n }\n get overlayResponsiveDirection() {\n return this.overlayResponsiveOptions?.direction || 'center';\n }\n get overlayEl() {\n return this.overlayViewChild?.nativeElement;\n }\n get contentEl() {\n return this.contentViewChild?.nativeElement;\n }\n get targetEl() {\n return DomHandler.getTargetElement(this.target, this.el?.nativeElement);\n }\n constructor(document, platformId, el, renderer, config, overlayService, cd, zone) {\n this.document = document;\n this.platformId = platformId;\n this.el = el;\n this.renderer = renderer;\n this.config = config;\n this.overlayService = overlayService;\n this.cd = cd;\n this.zone = zone;\n this.window = this.document.defaultView;\n }\n ngAfterContentInit() {\n this.templates?.forEach(item => {\n switch (item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n // TODO: new template types may be added.\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n show(overlay, isFocus = false) {\n this.onVisibleChange(true);\n this.handleEvents('onShow', {\n overlay: overlay || this.overlayEl,\n target: this.targetEl,\n mode: this.overlayMode\n });\n isFocus && DomHandler.focus(this.targetEl);\n this.modal && DomHandler.addClass(this.document?.body, 'p-overflow-hidden');\n }\n hide(overlay, isFocus = false) {\n if (!this.visible) {\n return;\n } else {\n this.onVisibleChange(false);\n this.handleEvents('onHide', {\n overlay: overlay || this.overlayEl,\n target: this.targetEl,\n mode: this.overlayMode\n });\n isFocus && DomHandler.focus(this.targetEl);\n this.modal && DomHandler.removeClass(this.document?.body, 'p-overflow-hidden');\n }\n }\n alignOverlay() {\n !this.modal && DomHandler.alignOverlay(this.overlayEl, this.targetEl, this.appendTo);\n }\n onVisibleChange(visible) {\n this._visible = visible;\n this.visibleChange.emit(visible);\n }\n onOverlayClick() {\n this.isOverlayClicked = true;\n }\n onOverlayContentClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.targetEl\n });\n this.isOverlayContentClicked = true;\n }\n onOverlayContentAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.handleEvents('onBeforeShow', {\n overlay: this.overlayEl,\n target: this.targetEl,\n mode: this.overlayMode\n });\n if (this.autoZIndex) {\n ZIndexUtils.set(this.overlayMode, this.overlayEl, this.baseZIndex + this.config?.zIndex[this.overlayMode]);\n }\n DomHandler.appendOverlay(this.overlayEl, this.appendTo === 'body' ? this.document.body : this.appendTo, this.appendTo);\n this.alignOverlay();\n break;\n case 'void':\n this.handleEvents('onBeforeHide', {\n overlay: this.overlayEl,\n target: this.targetEl,\n mode: this.overlayMode\n });\n this.modal && DomHandler.addClass(this.overlayEl, 'p-component-overlay-leave');\n break;\n }\n this.handleEvents('onAnimationStart', event);\n }\n onOverlayContentAnimationDone(event) {\n const container = this.overlayEl || event.element.parentElement;\n switch (event.toState) {\n case 'visible':\n this.show(container, true);\n this.bindListeners();\n break;\n case 'void':\n this.hide(container, true);\n this.unbindListeners();\n DomHandler.appendOverlay(this.overlayEl, this.targetEl, this.appendTo);\n ZIndexUtils.clear(container);\n this.modalVisible = false;\n this.cd.markForCheck();\n break;\n }\n this.handleEvents('onAnimationDone', event);\n }\n handleEvents(name, params) {\n this[name].emit(params);\n this.options && this.options[name] && this.options[name](params);\n this.config?.overlayOptions && (this.config?.overlayOptions)[name] && (this.config?.overlayOptions)[name](params);\n }\n bindListeners() {\n this.bindScrollListener();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindDocumentKeyboardListener();\n }\n unbindListeners() {\n this.unbindScrollListener();\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindDocumentKeyboardListener();\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.targetEl, event => {\n const valid = this.listener ? this.listener(event, {\n type: 'scroll',\n mode: this.overlayMode,\n valid: true\n }) : true;\n valid && this.hide(event, true);\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = this.renderer.listen(this.document, 'click', event => {\n const isTargetClicked = this.targetEl && (this.targetEl.isSameNode(event.target) || !this.isOverlayClicked && this.targetEl.contains(event.target));\n const isOutsideClicked = !isTargetClicked && !this.isOverlayContentClicked;\n const valid = this.listener ? this.listener(event, {\n type: 'outside',\n mode: this.overlayMode,\n valid: event.which !== 3 && isOutsideClicked\n }) : isOutsideClicked;\n valid && this.hide(event);\n this.isOverlayClicked = this.isOverlayContentClicked = false;\n });\n }\n }\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n bindDocumentResizeListener() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.window, 'resize', event => {\n const valid = this.listener ? this.listener(event, {\n type: 'resize',\n mode: this.overlayMode,\n valid: !DomHandler.isTouchDevice()\n }) : !DomHandler.isTouchDevice();\n valid && this.hide(event, true);\n });\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n bindDocumentKeyboardListener() {\n if (this.documentKeyboardListener) {\n return;\n }\n this.zone.runOutsideAngular(() => {\n this.documentKeyboardListener = this.renderer.listen(this.window, 'keydown', event => {\n if (this.overlayOptions.hideOnEscape === false || event.code !== 'Escape') {\n return;\n }\n const valid = this.listener ? this.listener(event, {\n type: 'keydown',\n mode: this.overlayMode,\n valid: !DomHandler.isTouchDevice()\n }) : !DomHandler.isTouchDevice();\n if (valid) {\n this.zone.run(() => {\n this.hide(event, true);\n });\n }\n });\n });\n }\n unbindDocumentKeyboardListener() {\n if (this.documentKeyboardListener) {\n this.documentKeyboardListener();\n this.documentKeyboardListener = null;\n }\n }\n ngOnDestroy() {\n this.hide(this.overlayEl, true);\n if (this.overlayEl) {\n DomHandler.appendOverlay(this.overlayEl, this.targetEl, this.appendTo);\n ZIndexUtils.clear(this.overlayEl);\n }\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n this.unbindListeners();\n }\n static ɵfac = function Overlay_Factory(t) {\n return new (t || Overlay)(i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.PrimeNGConfig), i0.ɵɵdirectiveInject(i1.OverlayService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Overlay,\n selectors: [[\"p-overlay\"]],\n contentQueries: function Overlay_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function Overlay_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overlayViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentViewChild = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n visible: \"visible\",\n mode: \"mode\",\n style: \"style\",\n styleClass: \"styleClass\",\n contentStyle: \"contentStyle\",\n contentStyleClass: \"contentStyleClass\",\n target: \"target\",\n appendTo: \"appendTo\",\n autoZIndex: \"autoZIndex\",\n baseZIndex: \"baseZIndex\",\n showTransitionOptions: \"showTransitionOptions\",\n hideTransitionOptions: \"hideTransitionOptions\",\n listener: \"listener\",\n responsive: \"responsive\",\n options: \"options\"\n },\n outputs: {\n visibleChange: \"visibleChange\",\n onBeforeShow: \"onBeforeShow\",\n onShow: \"onShow\",\n onBeforeHide: \"onBeforeHide\",\n onHide: \"onHide\",\n onAnimationStart: \"onAnimationStart\",\n onAnimationDone: \"onAnimationDone\"\n },\n features: [i0.ɵɵProvidersFeature([OVERLAY_VALUE_ACCESSOR])],\n ngContentSelectors: _c7,\n decls: 1,\n vars: 1,\n consts: [[3, \"ngStyle\", \"class\", \"ngClass\", \"click\", 4, \"ngIf\"], [3, \"ngStyle\", \"ngClass\", \"click\"], [\"overlay\", \"\"], [\"content\", \"\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function Overlay_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, Overlay_div_0_Template, 3, 20, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.modalVisible);\n }\n },\n dependencies: [i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle],\n styles: [\"@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\\n\"],\n encapsulation: 2,\n data: {\n animation: [trigger('overlayContentAnimation', [transition(':enter', [useAnimation(showOverlayContentAnimation)]), transition(':leave', [useAnimation(hideOverlayContentAnimation)])])]\n },\n changeDetection: 0\n });\n }\n return Overlay;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet OverlayModule = /*#__PURE__*/(() => {\n class OverlayModule {\n static ɵfac = function OverlayModule_Factory(t) {\n return new (t || OverlayModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: OverlayModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, SharedModule, SharedModule]\n });\n }\n return OverlayModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { OVERLAY_VALUE_ACCESSOR, Overlay, OverlayModule };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nimport { UniqueComponentId } from 'primeng/utils';\nlet SpinnerIcon = /*#__PURE__*/(() => {\n class SpinnerIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + UniqueComponentId() + ')';\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵSpinnerIcon_BaseFactory;\n return function SpinnerIcon_Factory(t) {\n return (ɵSpinnerIcon_BaseFactory || (ɵSpinnerIcon_BaseFactory = i0.ɵɵgetInheritedFactory(SpinnerIcon)))(t || SpinnerIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SpinnerIcon,\n selectors: [[\"SpinnerIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 7,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]],\n template: function SpinnerIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n }\n },\n encapsulation: 2\n });\n }\n return SpinnerIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SpinnerIcon };\n","import * as i1 from '@angular/common';\nimport { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, Output, ViewChild, ContentChildren, NgModule } from '@angular/core';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\n\n/**\n * Scroller is a performance-approach to handle huge data efficiently.\n * @group Components\n */\nconst _c0 = [\"element\"];\nconst _c1 = [\"content\"];\nfunction Scroller_ng_container_0_ng_container_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c2 = (a0, a1) => ({\n $implicit: a0,\n options: a1\n});\nfunction Scroller_ng_container_0_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c2, ctx_r4.loadedItems, ctx_r4.getContentOptions()));\n }\n}\nfunction Scroller_ng_container_0_ng_template_4_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Scroller_ng_container_0_ng_template_4_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_ng_template_4_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const item_r12 = ctx.$implicit;\n const index_r13 = ctx.index;\n const ctx_r11 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r11.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c2, item_r12, ctx_r11.getOptions(index_r13)));\n }\n}\nconst _c3 = a0 => ({\n \"p-scroller-loading\": a0\n});\nfunction Scroller_ng_container_0_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8, 9);\n i0.ɵɵtemplate(2, Scroller_ng_container_0_ng_template_4_ng_container_2_Template, 2, 5, \"ng-container\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(5, _c3, ctx_r5.d_loading))(\"ngStyle\", ctx_r5.contentStyle);\n i0.ɵɵattribute(\"data-pc-section\", \"content\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r5.loadedItems)(\"ngForTrackBy\", ctx_r5._trackBy || ctx_r5.index);\n }\n}\nfunction Scroller_ng_container_0_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 11);\n }\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", ctx_r7.spacerStyle);\n i0.ɵɵattribute(\"data-pc-section\", \"spacer\");\n }\n}\nfunction Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c4 = a0 => ({\n numCols: a0\n});\nconst _c5 = a0 => ({\n options: a0\n});\nfunction Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const index_r20 = ctx.index;\n const ctx_r18 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r18.loaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(4, _c5, ctx_r18.getLoaderOptions(index_r20, ctx_r18.both && i0.ɵɵpureFunction1(2, _c4, ctx_r18._numItemsInViewport.cols))));\n }\n}\nfunction Scroller_ng_container_0_div_7_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_Template, 2, 6, \"ng-container\", 14);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r15 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r15.loaderArr);\n }\n}\nfunction Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c6 = () => ({\n styleClass: \"p-scroller-loading-icon\"\n});\nfunction Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r22 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r22.loaderIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c5, i0.ɵɵpureFunction0(2, _c6)));\n }\n}\nfunction Scroller_ng_container_0_div_7_ng_template_2_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"SpinnerIcon\", 16);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-scroller-loading-icon pi-spin\");\n i0.ɵɵattribute(\"data-pc-section\", \"loadingIcon\");\n }\n}\nfunction Scroller_ng_container_0_div_7_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_Template, 2, 5, \"ng-container\", 0)(1, Scroller_ng_container_0_div_7_ng_template_2_ng_template_1_Template, 1, 2, \"ng-template\", null, 15, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const _r24 = i0.ɵɵreference(2);\n const ctx_r16 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r16.loaderIconTemplate)(\"ngIfElse\", _r24);\n }\n}\nconst _c7 = a0 => ({\n \"p-component-overlay\": a0\n});\nfunction Scroller_ng_container_0_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 12);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_div_7_ng_container_1_Template, 2, 1, \"ng-container\", 0)(2, Scroller_ng_container_0_div_7_ng_template_2_Template, 3, 2, \"ng-template\", null, 13, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r17 = i0.ɵɵreference(3);\n const ctx_r8 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(4, _c7, !ctx_r8.loaderTemplate));\n i0.ɵɵattribute(\"data-pc-section\", \"loader\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r8.loaderTemplate)(\"ngIfElse\", _r17);\n }\n}\nconst _c8 = (a1, a2, a3) => ({\n \"p-scroller\": true,\n \"p-scroller-inline\": a1,\n \"p-both-scroll\": a2,\n \"p-horizontal-scroll\": a3\n});\nfunction Scroller_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r27 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 2, 3);\n i0.ɵɵlistener(\"scroll\", function Scroller_ng_container_0_Template_div_scroll_1_listener($event) {\n i0.ɵɵrestoreView(_r27);\n const ctx_r26 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r26.onContainerScroll($event));\n });\n i0.ɵɵtemplate(3, Scroller_ng_container_0_ng_container_3_Template, 2, 5, \"ng-container\", 0)(4, Scroller_ng_container_0_ng_template_4_Template, 3, 7, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor)(6, Scroller_ng_container_0_div_6_Template, 1, 2, \"div\", 5)(7, Scroller_ng_container_0_div_7_Template, 4, 6, \"div\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const _r6 = i0.ɵɵreference(5);\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx_r0._styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r0._style)(\"ngClass\", i0.ɵɵpureFunction3(12, _c8, ctx_r0.inline, ctx_r0.both, ctx_r0.horizontal));\n i0.ɵɵattribute(\"id\", ctx_r0._id)(\"tabindex\", ctx_r0.tabindex)(\"data-pc-name\", \"scroller\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.contentTemplate)(\"ngIfElse\", _r6);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r0._showSpacer);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.loaderDisabled && ctx_r0._showLoader && ctx_r0.d_loading);\n }\n}\nfunction Scroller_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c9 = (a0, a1) => ({\n rows: a0,\n columns: a1\n});\nfunction Scroller_ng_template_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_template_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r28 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r28.contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(5, _c2, ctx_r28.items, i0.ɵɵpureFunction2(2, _c9, ctx_r28._items, ctx_r28.loadedColumns)));\n }\n}\nfunction Scroller_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, Scroller_ng_template_1_ng_container_1_Template, 2, 8, \"ng-container\", 17);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.contentTemplate);\n }\n}\nconst _c10 = [\"*\"];\nlet Scroller = /*#__PURE__*/(() => {\n class Scroller {\n document;\n platformId;\n renderer;\n cd;\n zone;\n /**\n * Unique identifier of the element.\n * @group Props\n */\n get id() {\n return this._id;\n }\n set id(val) {\n this._id = val;\n }\n /**\n * Inline style of the component.\n * @group Props\n */\n get style() {\n return this._style;\n }\n set style(val) {\n this._style = val;\n }\n /**\n * Style class of the element.\n * @group Props\n */\n get styleClass() {\n return this._styleClass;\n }\n set styleClass(val) {\n this._styleClass = val;\n }\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n get tabindex() {\n return this._tabindex;\n }\n set tabindex(val) {\n this._tabindex = val;\n }\n /**\n * An array of objects to display.\n * @group Props\n */\n get items() {\n return this._items;\n }\n set items(val) {\n this._items = val;\n }\n /**\n * The height/width of item according to orientation.\n * @group Props\n */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(val) {\n this._itemSize = val;\n }\n /**\n * Height of the scroll viewport.\n * @group Props\n */\n get scrollHeight() {\n return this._scrollHeight;\n }\n set scrollHeight(val) {\n this._scrollHeight = val;\n }\n /**\n * Width of the scroll viewport.\n * @group Props\n */\n get scrollWidth() {\n return this._scrollWidth;\n }\n set scrollWidth(val) {\n this._scrollWidth = val;\n }\n /**\n * The orientation of scrollbar.\n * @group Props\n */\n get orientation() {\n return this._orientation;\n }\n set orientation(val) {\n this._orientation = val;\n }\n /**\n * Used to specify how many items to load in each load method in lazy mode.\n * @group Props\n */\n get step() {\n return this._step;\n }\n set step(val) {\n this._step = val;\n }\n /**\n * Delay in scroll before new data is loaded.\n * @group Props\n */\n get delay() {\n return this._delay;\n }\n set delay(val) {\n this._delay = val;\n }\n /**\n * Delay after window's resize finishes.\n * @group Props\n */\n get resizeDelay() {\n return this._resizeDelay;\n }\n set resizeDelay(val) {\n this._resizeDelay = val;\n }\n /**\n * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.\n * @group Props\n */\n get appendOnly() {\n return this._appendOnly;\n }\n set appendOnly(val) {\n this._appendOnly = val;\n }\n /**\n * Specifies whether the scroller should be displayed inline or not.\n * @group Props\n */\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = val;\n }\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n get lazy() {\n return this._lazy;\n }\n set lazy(val) {\n this._lazy = val;\n }\n /**\n * If disabled, the scroller feature is eliminated and the content is displayed directly.\n * @group Props\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(val) {\n this._disabled = val;\n }\n /**\n * Used to implement a custom loader instead of using the loader feature in the scroller.\n * @group Props\n */\n get loaderDisabled() {\n return this._loaderDisabled;\n }\n set loaderDisabled(val) {\n this._loaderDisabled = val;\n }\n /**\n * Columns to display.\n * @group Props\n */\n get columns() {\n return this._columns;\n }\n set columns(val) {\n this._columns = val;\n }\n /**\n * Used to implement a custom spacer instead of using the spacer feature in the scroller.\n * @group Props\n */\n get showSpacer() {\n return this._showSpacer;\n }\n set showSpacer(val) {\n this._showSpacer = val;\n }\n /**\n * Defines whether to show loader.\n * @group Props\n */\n get showLoader() {\n return this._showLoader;\n }\n set showLoader(val) {\n this._showLoader = val;\n }\n /**\n * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.\n * @group Props\n */\n get numToleratedItems() {\n return this._numToleratedItems;\n }\n set numToleratedItems(val) {\n this._numToleratedItems = val;\n }\n /**\n * Defines whether the data is loaded.\n * @group Props\n */\n get loading() {\n return this._loading;\n }\n set loading(val) {\n this._loading = val;\n }\n /**\n * Defines whether to dynamically change the height or width of scrollable container.\n * @group Props\n */\n get autoSize() {\n return this._autoSize;\n }\n set autoSize(val) {\n this._autoSize = val;\n }\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity.\n * @group Props\n */\n get trackBy() {\n return this._trackBy;\n }\n set trackBy(val) {\n this._trackBy = val;\n }\n /**\n * Defines whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n get options() {\n return this._options;\n }\n set options(val) {\n this._options = val;\n if (val && typeof val === 'object') {\n //@ts-ignore\n Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n }\n }\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {ScrollerLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n onLazyLoad = new EventEmitter();\n /**\n * Callback to invoke when scroll position changes.\n * @param {ScrollerScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n onScroll = new EventEmitter();\n /**\n * Callback to invoke when scroll position and item's range in view changes.\n * @param {ScrollerScrollEvent} event - Custom scroll index change event.\n * @group Emits\n */\n onScrollIndexChange = new EventEmitter();\n elementViewChild;\n contentViewChild;\n templates;\n _id;\n _style;\n _styleClass;\n _tabindex = 0;\n _items;\n _itemSize = 0;\n _scrollHeight;\n _scrollWidth;\n _orientation = 'vertical';\n _step = 0;\n _delay = 0;\n _resizeDelay = 10;\n _appendOnly = false;\n _inline = false;\n _lazy = false;\n _disabled = false;\n _loaderDisabled = false;\n _columns;\n _showSpacer = true;\n _showLoader = false;\n _numToleratedItems;\n _loading;\n _autoSize = false;\n _trackBy;\n _options;\n d_loading = false;\n d_numToleratedItems;\n contentEl;\n contentTemplate;\n itemTemplate;\n loaderTemplate;\n loaderIconTemplate;\n first = 0;\n last = 0;\n page = 0;\n isRangeChanged = false;\n numItemsInViewport = 0;\n lastScrollPos = 0;\n lazyLoadState = {};\n loaderArr = [];\n spacerStyle = {};\n contentStyle = {};\n scrollTimeout;\n resizeTimeout;\n initialized = false;\n windowResizeListener;\n defaultWidth;\n defaultHeight;\n defaultContentWidth;\n defaultContentHeight;\n get vertical() {\n return this._orientation === 'vertical';\n }\n get horizontal() {\n return this._orientation === 'horizontal';\n }\n get both() {\n return this._orientation === 'both';\n }\n get loadedItems() {\n if (this._items && !this.d_loading) {\n if (this.both) return this._items.slice(this._appendOnly ? 0 : this.first.rows, this.last.rows).map(item => this._columns ? item : item.slice(this._appendOnly ? 0 : this.first.cols, this.last.cols));else if (this.horizontal && this._columns) return this._items;else return this._items.slice(this._appendOnly ? 0 : this.first, this.last);\n }\n return [];\n }\n get loadedRows() {\n return this.d_loading ? this._loaderDisabled ? this.loaderArr : [] : this.loadedItems;\n }\n get loadedColumns() {\n if (this._columns && (this.both || this.horizontal)) {\n return this.d_loading && this._loaderDisabled ? this.both ? this.loaderArr[0] : this.loaderArr : this._columns.slice(this.both ? this.first.cols : this.first, this.both ? this.last.cols : this.last);\n }\n return this._columns;\n }\n constructor(document, platformId, renderer, cd, zone) {\n this.document = document;\n this.platformId = platformId;\n this.renderer = renderer;\n this.cd = cd;\n this.zone = zone;\n }\n ngOnInit() {\n this.setInitialState();\n }\n ngOnChanges(simpleChanges) {\n let isLoadingChanged = false;\n if (simpleChanges.loading) {\n const {\n previousValue,\n currentValue\n } = simpleChanges.loading;\n if (this.lazy && previousValue !== currentValue && currentValue !== this.d_loading) {\n this.d_loading = currentValue;\n isLoadingChanged = true;\n }\n }\n if (simpleChanges.orientation) {\n this.lastScrollPos = this.both ? {\n top: 0,\n left: 0\n } : 0;\n }\n if (simpleChanges.numToleratedItems) {\n const {\n previousValue,\n currentValue\n } = simpleChanges.numToleratedItems;\n if (previousValue !== currentValue && currentValue !== this.d_numToleratedItems) {\n this.d_numToleratedItems = currentValue;\n }\n }\n if (simpleChanges.options) {\n const {\n previousValue,\n currentValue\n } = simpleChanges.options;\n if (this.lazy && previousValue?.loading !== currentValue?.loading && currentValue?.loading !== this.d_loading) {\n this.d_loading = currentValue.loading;\n isLoadingChanged = true;\n }\n if (previousValue?.numToleratedItems !== currentValue?.numToleratedItems && currentValue?.numToleratedItems !== this.d_numToleratedItems) {\n this.d_numToleratedItems = currentValue.numToleratedItems;\n }\n }\n if (this.initialized) {\n const isChanged = !isLoadingChanged && (simpleChanges.items?.previousValue?.length !== simpleChanges.items?.currentValue?.length || simpleChanges.itemSize || simpleChanges.scrollHeight || simpleChanges.scrollWidth);\n if (isChanged) {\n this.init();\n this.calculateAutoSize();\n }\n }\n }\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n case 'item':\n this.itemTemplate = item.template;\n break;\n case 'loader':\n this.loaderTemplate = item.template;\n break;\n case 'loadericon':\n this.loaderIconTemplate = item.template;\n break;\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n ngAfterViewInit() {\n Promise.resolve().then(() => {\n this.viewInit();\n });\n }\n ngAfterViewChecked() {\n if (!this.initialized) {\n this.viewInit();\n }\n }\n ngOnDestroy() {\n this.unbindResizeListener();\n this.contentEl = null;\n this.initialized = false;\n }\n viewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {\n this.setInitialState();\n this.setContentEl(this.contentEl);\n this.init();\n this.defaultWidth = DomHandler.getWidth(this.elementViewChild?.nativeElement);\n this.defaultHeight = DomHandler.getHeight(this.elementViewChild?.nativeElement);\n this.defaultContentWidth = DomHandler.getWidth(this.contentEl);\n this.defaultContentHeight = DomHandler.getHeight(this.contentEl);\n this.initialized = true;\n }\n }\n }\n init() {\n if (!this._disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n this.bindResizeListener();\n this.cd.detectChanges();\n }\n }\n setContentEl(el) {\n this.contentEl = el || this.contentViewChild?.nativeElement || DomHandler.findSingle(this.elementViewChild?.nativeElement, '.p-scroller-content');\n }\n setInitialState() {\n this.first = this.both ? {\n rows: 0,\n cols: 0\n } : 0;\n this.last = this.both ? {\n rows: 0,\n cols: 0\n } : 0;\n this.numItemsInViewport = this.both ? {\n rows: 0,\n cols: 0\n } : 0;\n this.lastScrollPos = this.both ? {\n top: 0,\n left: 0\n } : 0;\n this.d_loading = this._loading || false;\n this.d_numToleratedItems = this._numToleratedItems;\n this.loaderArr = [];\n this.spacerStyle = {};\n this.contentStyle = {};\n }\n getElementRef() {\n return this.elementViewChild;\n }\n getPageByFirst(first) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this._step || 1));\n }\n isPageChanged(first) {\n return this._step ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n }\n scrollTo(options) {\n // this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.elementViewChild?.nativeElement?.scrollTo(options);\n }\n scrollToIndex(index, behavior = 'auto') {\n const valid = this.both ? index.every(i => i > -1) : index > -1;\n if (valid) {\n const first = this.first;\n const {\n scrollTop = 0,\n scrollLeft = 0\n } = this.elementViewChild?.nativeElement;\n const {\n numToleratedItems\n } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this.itemSize;\n const calculateFirst = (_index = 0, _numT) => _index <= _numT ? 0 : _index;\n const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({\n left,\n top,\n behavior\n });\n let newFirst = this.both ? {\n rows: 0,\n cols: 0\n } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n if (this.both) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1])\n };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index, numToleratedItems);\n this.horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (this.horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n }\n scrollInView(index, to, behavior = 'auto') {\n if (to) {\n const {\n first,\n viewport\n } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({\n left,\n top,\n behavior\n });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n if (isToStart) {\n if (this.both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows - 1) * this._itemSize[0]);\n } else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * this._itemSize;\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (this.both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows + 1) * this._itemSize[0]);\n } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * this._itemSize;\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n }\n getRenderedRange() {\n const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n let firstInViewport = this.first;\n let lastInViewport = 0;\n if (this.elementViewChild?.nativeElement) {\n const {\n scrollTop,\n scrollLeft\n } = this.elementViewChild.nativeElement;\n if (this.both) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, this._itemSize[0]),\n cols: calculateFirstInViewport(scrollLeft, this._itemSize[1])\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols\n };\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, this._itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n }\n calculateNumItems() {\n const contentPos = this.getContentPosition();\n const contentWidth = (this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetWidth - contentPos.left : 0) || 0;\n const contentHeight = (this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetHeight - contentPos.top : 0) || 0;\n const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));\n const calculateNumToleratedItems = _numItems => Math.ceil(_numItems / 2);\n const numItemsInViewport = this.both ? {\n rows: calculateNumItemsInViewport(contentHeight, this._itemSize[0]),\n cols: calculateNumItemsInViewport(contentWidth, this._itemSize[1])\n } : calculateNumItemsInViewport(this.horizontal ? contentWidth : contentHeight, this._itemSize);\n const numToleratedItems = this.d_numToleratedItems || (this.both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n return {\n numItemsInViewport,\n numToleratedItems\n };\n }\n calculateOptions() {\n const {\n numItemsInViewport,\n numToleratedItems\n } = this.calculateNumItems();\n const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const first = this.first;\n const last = this.both ? {\n rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n } : calculateLast(this.first, numItemsInViewport, numToleratedItems);\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n if (this.showLoader) {\n this.loaderArr = this.both ? Array.from({\n length: numItemsInViewport.rows\n }).map(() => Array.from({\n length: numItemsInViewport.cols\n })) : Array.from({\n length: numItemsInViewport\n });\n }\n if (this._lazy) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this._step ? this.both ? {\n rows: 0,\n cols: first.cols\n } : 0 : first,\n last: Math.min(this._step ? this._step : this.last, this.items.length)\n };\n this.handleEvents('onLazyLoad', this.lazyLoadState);\n });\n }\n }\n calculateAutoSize() {\n if (this._autoSize && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.contentEl) {\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';\n this.contentEl.style.position = 'relative';\n this.elementViewChild.nativeElement.style.contain = 'none';\n const [contentWidth, contentHeight] = [DomHandler.getWidth(this.contentEl), DomHandler.getHeight(this.contentEl)];\n contentWidth !== this.defaultContentWidth && (this.elementViewChild.nativeElement.style.width = '');\n contentHeight !== this.defaultContentHeight && (this.elementViewChild.nativeElement.style.height = '');\n const [width, height] = [DomHandler.getWidth(this.elementViewChild.nativeElement), DomHandler.getHeight(this.elementViewChild.nativeElement)];\n (this.both || this.horizontal) && (this.elementViewChild.nativeElement.style.width = width < this.defaultWidth ? width + 'px' : this._scrollWidth || this.defaultWidth + 'px');\n (this.both || this.vertical) && (this.elementViewChild.nativeElement.style.height = height < this.defaultHeight ? height + 'px' : this._scrollHeight || this.defaultHeight + 'px');\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';\n this.contentEl.style.position = '';\n this.elementViewChild.nativeElement.style.contain = '';\n }\n });\n }\n }\n getLast(last = 0, isCols = false) {\n return this._items ? Math.min(isCols ? (this._columns || this._items[0]).length : this._items.length, last) : 0;\n }\n getContentPosition() {\n if (this.contentEl) {\n const style = getComputedStyle(this.contentEl);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n return {\n left,\n right,\n top,\n bottom,\n x: left + right,\n y: top + bottom\n };\n }\n return {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n x: 0,\n y: 0\n };\n }\n setSize() {\n if (this.elementViewChild?.nativeElement) {\n const parentElement = this.elementViewChild.nativeElement.parentElement.parentElement;\n const width = this._scrollWidth || `${this.elementViewChild.nativeElement.offsetWidth || parentElement.offsetWidth}px`;\n const height = this._scrollHeight || `${this.elementViewChild.nativeElement.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name, _value) => this.elementViewChild.nativeElement.style[_name] = _value;\n if (this.both || this.horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n }\n setSpacerSize() {\n if (this._items) {\n const contentPos = this.getContentPosition();\n const setProp = (_name, _value, _size, _cpos = 0) => this.spacerStyle = {\n ...this.spacerStyle,\n ...{\n [`${_name}`]: (_value || []).length * _size + _cpos + 'px'\n }\n };\n if (this.both) {\n setProp('height', this._items, this._itemSize[0], contentPos.y);\n setProp('width', this._columns || this._items[1], this._itemSize[1], contentPos.x);\n } else {\n this.horizontal ? setProp('width', this._columns || this._items, this._itemSize, contentPos.x) : setProp('height', this._items, this._itemSize, contentPos.y);\n }\n }\n }\n setContentPosition(pos) {\n if (this.contentEl && !this._appendOnly) {\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first, _size) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => this.contentStyle = {\n ...this.contentStyle,\n ...{\n transform: `translate3d(${_x}px, ${_y}px, 0)`\n }\n };\n if (this.both) {\n setTransform(calculateTranslateVal(first.cols, this._itemSize[1]), calculateTranslateVal(first.rows, this._itemSize[0]));\n } else {\n const translateVal = calculateTranslateVal(first, this._itemSize);\n this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n }\n onScrollPositionChange(event) {\n const target = event.target;\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos, _cpos) => _pos ? _pos > _cpos ? _pos - _cpos : _pos : 0;\n const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n if (_currentIndex <= _numT) return 0;else return Math.max(0, _isScrollDownOrRight ? _currentIndex < _triggerIndex ? _first : _currentIndex - _numT : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols = false) => {\n let lastValue = _first + _num + 2 * _numT;\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n return this.getLast(lastValue, _isCols);\n };\n const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n let newFirst = this.both ? {\n rows: 0,\n cols: 0\n } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n if (this.both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n if (!this._appendOnly || this._appendOnly && (isScrollDown || isScrollRight)) {\n const currentIndex = {\n rows: calculateCurrentIndex(scrollTop, this._itemSize[0]),\n cols: calculateCurrentIndex(scrollLeft, this._itemSize[1])\n };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = {\n top: scrollTop,\n left: scrollLeft\n };\n }\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n if (!this._appendOnly || this._appendOnly && isScrollDownOrRight) {\n const currentIndex = calculateCurrentIndex(scrollPos, this._itemSize);\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n }\n onScrollChange(event) {\n const {\n first,\n last,\n isRangeChanged,\n scrollPos\n } = this.onScrollPositionChange(event);\n if (isRangeChanged) {\n const newState = {\n first,\n last\n };\n this.setContentPosition(newState);\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n this.handleEvents('onScrollIndexChange', newState);\n if (this._lazy && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this._step ? Math.min(this.getPageByFirst(first) * this._step, this.items.length - this._step) : first,\n last: Math.min(this._step ? (this.getPageByFirst(first) + 1) * this._step : last, this.items.length)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n }\n onContainerScroll(event) {\n this.handleEvents('onScroll', {\n originalEvent: event\n });\n if (this._delay && this.isPageChanged()) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n if (!this.d_loading && this.showLoader) {\n const {\n isRangeChanged\n } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this._step ? this.isPageChanged() : false);\n if (changed) {\n this.d_loading = true;\n this.cd.detectChanges();\n }\n }\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n if (this.d_loading && this.showLoader && (!this._lazy || this._loading === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n this.cd.detectChanges();\n }\n }, this._delay);\n } else {\n !this.d_loading && this.onScrollChange(event);\n }\n }\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.windowResizeListener) {\n this.zone.runOutsideAngular(() => {\n const window = this.document.defaultView;\n const event = DomHandler.isTouchDevice() ? 'orientationchange' : 'resize';\n this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));\n });\n }\n }\n }\n unbindResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n onWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {\n const [width, height] = [DomHandler.getWidth(this.elementViewChild?.nativeElement), DomHandler.getHeight(this.elementViewChild?.nativeElement)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = this.both ? isDiffWidth || isDiffHeight : this.horizontal ? isDiffWidth : this.vertical ? isDiffHeight : false;\n reinit && this.zone.run(() => {\n this.d_numToleratedItems = this._numToleratedItems;\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = DomHandler.getWidth(this.contentEl);\n this.defaultContentHeight = DomHandler.getHeight(this.contentEl);\n this.init();\n });\n }\n }, this._resizeDelay);\n }\n handleEvents(name, params) {\n //@ts-ignore\n return this.options && this.options[name] ? this.options[name](params) : this[name].emit(params);\n }\n getContentOptions() {\n return {\n contentStyleClass: `p-scroller-content ${this.d_loading ? 'p-scroller-loading' : ''}`,\n items: this.loadedItems,\n getItemOptions: index => this.getOptions(index),\n loading: this.d_loading,\n getLoaderOptions: (index, options) => this.getLoaderOptions(index, options),\n itemSize: this._itemSize,\n rows: this.loadedRows,\n columns: this.loadedColumns,\n spacerStyle: this.spacerStyle,\n contentStyle: this.contentStyle,\n vertical: this.vertical,\n horizontal: this.horizontal,\n both: this.both\n };\n }\n getOptions(renderedIndex) {\n const count = (this._items || []).length;\n const index = this.both ? this.first.rows + renderedIndex : this.first + renderedIndex;\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n }\n getLoaderOptions(index, extOptions) {\n const count = this.loaderArr.length;\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n ...extOptions\n };\n }\n static ɵfac = function Scroller_Factory(t) {\n return new (t || Scroller)(i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Scroller,\n selectors: [[\"p-scroller\"]],\n contentQueries: function Scroller_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function Scroller_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.elementViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentViewChild = _t.first);\n }\n },\n hostAttrs: [1, \"p-scroller-viewport\", \"p-element\"],\n inputs: {\n id: \"id\",\n style: \"style\",\n styleClass: \"styleClass\",\n tabindex: \"tabindex\",\n items: \"items\",\n itemSize: \"itemSize\",\n scrollHeight: \"scrollHeight\",\n scrollWidth: \"scrollWidth\",\n orientation: \"orientation\",\n step: \"step\",\n delay: \"delay\",\n resizeDelay: \"resizeDelay\",\n appendOnly: \"appendOnly\",\n inline: \"inline\",\n lazy: \"lazy\",\n disabled: \"disabled\",\n loaderDisabled: \"loaderDisabled\",\n columns: \"columns\",\n showSpacer: \"showSpacer\",\n showLoader: \"showLoader\",\n numToleratedItems: \"numToleratedItems\",\n loading: \"loading\",\n autoSize: \"autoSize\",\n trackBy: \"trackBy\",\n options: \"options\"\n },\n outputs: {\n onLazyLoad: \"onLazyLoad\",\n onScroll: \"onScroll\",\n onScrollIndexChange: \"onScrollIndexChange\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c10,\n decls: 3,\n vars: 2,\n consts: [[4, \"ngIf\", \"ngIfElse\"], [\"disabledContainer\", \"\"], [3, \"ngStyle\", \"ngClass\", \"scroll\"], [\"element\", \"\"], [\"buildInContent\", \"\"], [\"class\", \"p-scroller-spacer\", 3, \"ngStyle\", 4, \"ngIf\"], [\"class\", \"p-scroller-loader\", 3, \"ngClass\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-scroller-content\", 3, \"ngClass\", \"ngStyle\"], [\"content\", \"\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"p-scroller-spacer\", 3, \"ngStyle\"], [1, \"p-scroller-loader\", 3, \"ngClass\"], [\"buildInLoader\", \"\"], [4, \"ngFor\", \"ngForOf\"], [\"buildInLoaderIcon\", \"\"], [3, \"styleClass\"], [4, \"ngIf\"]],\n template: function Scroller_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, Scroller_ng_container_0_Template, 8, 16, \"ng-container\", 0)(1, Scroller_ng_template_1_Template, 2, 1, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const _r2 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", !ctx._disabled)(\"ngIfElse\", _r2);\n }\n },\n dependencies: () => [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, SpinnerIcon],\n styles: [\"@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\\n\"],\n encapsulation: 2\n });\n }\n return Scroller;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ScrollerModule = /*#__PURE__*/(() => {\n class ScrollerModule {\n static ɵfac = function ScrollerModule_Factory(t) {\n return new (t || ScrollerModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ScrollerModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, SharedModule, SpinnerIcon, SharedModule]\n });\n }\n return ScrollerModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Scroller, ScrollerModule };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nlet TimesIcon = /*#__PURE__*/(() => {\n class TimesIcon extends BaseIcon {\n static ɵfac = /* @__PURE__ */(() => {\n let ɵTimesIcon_BaseFactory;\n return function TimesIcon_Factory(t) {\n return (ɵTimesIcon_BaseFactory || (ɵTimesIcon_BaseFactory = i0.ɵɵgetInheritedFactory(TimesIcon)))(t || TimesIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TimesIcon,\n selectors: [[\"TimesIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 5,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z\", \"fill\", \"currentColor\"]],\n template: function TimesIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n }\n },\n encapsulation: 2\n });\n }\n return TimesIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TimesIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nimport { UniqueComponentId } from 'primeng/utils';\nlet SearchIcon = /*#__PURE__*/(() => {\n class SearchIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + UniqueComponentId() + ')';\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵSearchIcon_BaseFactory;\n return function SearchIcon_Factory(t) {\n return (ɵSearchIcon_BaseFactory || (ɵSearchIcon_BaseFactory = i0.ɵɵgetInheritedFactory(SearchIcon)))(t || SearchIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SearchIcon,\n selectors: [[\"SearchIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 7,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]],\n template: function SearchIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n }\n },\n encapsulation: 2\n });\n }\n return SearchIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SearchIcon };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, EventEmitter, Component, Input, Output, signal, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i3 from 'primeng/api';\nimport { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i7 from 'primeng/autofocus';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { DomHandler } from 'primeng/dom';\nimport * as i4 from 'primeng/overlay';\nimport { OverlayModule } from 'primeng/overlay';\nimport * as i2 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport * as i6 from 'primeng/scroller';\nimport { ScrollerModule } from 'primeng/scroller';\nimport * as i5 from 'primeng/tooltip';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { ObjectUtils, UniqueComponentId } from 'primeng/utils';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { ChevronDownIcon } from 'primeng/icons/chevrondown';\nimport { SearchIcon } from 'primeng/icons/search';\nfunction DropdownItem_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n let tmp_0_0;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate((tmp_0_0 = ctx_r0.label) !== null && tmp_0_0 !== undefined ? tmp_0_0 : \"empty\");\n }\n}\nfunction DropdownItem_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c0 = a0 => ({\n height: a0\n});\nconst _c1 = (a1, a2, a3) => ({\n \"p-dropdown-item\": true,\n \"p-highlight\": a1,\n \"p-disabled\": a2,\n \"p-focus\": a3\n});\nconst _c2 = a0 => ({\n $implicit: a0\n});\nconst _c3 = [\"container\"];\nconst _c4 = [\"filter\"];\nconst _c5 = [\"focusInput\"];\nconst _c6 = [\"editableInput\"];\nconst _c7 = [\"items\"];\nconst _c8 = [\"scroller\"];\nconst _c9 = [\"overlay\"];\nconst _c10 = [\"firstHiddenFocusableEl\"];\nconst _c11 = [\"lastHiddenFocusableEl\"];\nfunction Dropdown_span_2_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r9 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r9.label() === \"p-emptylabel\" ? \"\\xA0\" : ctx_r9.label());\n }\n}\nfunction Dropdown_span_2_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 15);\n }\n if (rf & 2) {\n const ctx_r10 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r10.selectedItemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c2, ctx_r10.selectedOption));\n }\n}\nfunction Dropdown_span_2_ng_template_4_span_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r13 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r13.label() === \"p-emptylabel\" ? \"\\xA0\" : ctx_r13.placeholder());\n }\n}\nfunction Dropdown_span_2_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Dropdown_span_2_ng_template_4_span_0_Template, 2, 1, \"span\", 4);\n }\n if (rf & 2) {\n const ctx_r11 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r11.displayPlaceholder());\n }\n}\nfunction Dropdown_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 10, 11);\n i0.ɵɵlistener(\"focus\", function Dropdown_span_2_Template_span_focus_0_listener($event) {\n i0.ɵɵrestoreView(_r15);\n const ctx_r14 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r14.onInputFocus($event));\n })(\"blur\", function Dropdown_span_2_Template_span_blur_0_listener($event) {\n i0.ɵɵrestoreView(_r15);\n const ctx_r16 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r16.onInputBlur($event));\n })(\"keydown\", function Dropdown_span_2_Template_span_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r15);\n const ctx_r17 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r17.onKeyDown($event));\n });\n i0.ɵɵtemplate(2, Dropdown_span_2_ng_container_2_Template, 2, 1, \"ng-container\", 12)(3, Dropdown_span_2_ng_container_3_Template, 1, 4, \"ng-container\", 13)(4, Dropdown_span_2_ng_template_4_Template, 1, 1, \"ng-template\", null, 14, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r12 = i0.ɵɵreference(5);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r1.inputClass)(\"pTooltip\", ctx_r1.tooltip)(\"tooltipPosition\", ctx_r1.tooltipPosition)(\"positionStyle\", ctx_r1.tooltipPositionStyle)(\"tooltipStyleClass\", ctx_r1.tooltipStyleClass)(\"autofocus\", ctx_r1.autofocus);\n i0.ɵɵattribute(\"aria-disabled\", ctx_r1.disabled)(\"id\", ctx_r1.inputId)(\"aria-label\", ctx_r1.ariaLabel || (ctx_r1.label() === \"p-emptylabel\" ? undefined : ctx_r1.label()))(\"aria-labelledby\", ctx_r1.ariaLabelledBy)(\"aria-haspopup\", \"listbox\")(\"aria-expanded\", ctx_r1.overlayVisible)(\"aria-controls\", ctx_r1.id + \"_list\")(\"tabindex\", !ctx_r1.disabled ? ctx_r1.tabindex : -1)(\"aria-activedescendant\", ctx_r1.focused ? ctx_r1.focusedOptionId : undefined)(\"aria-required\", ctx_r1.required)(\"required\", ctx_r1.required);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.selectedItemTemplate)(\"ngIfElse\", _r12);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.selectedItemTemplate && ctx_r1.selectedOption);\n }\n}\nfunction Dropdown_input_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r20 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 16, 17);\n i0.ɵɵlistener(\"input\", function Dropdown_input_3_Template_input_input_0_listener($event) {\n i0.ɵɵrestoreView(_r20);\n const ctx_r19 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r19.onEditableInput($event));\n })(\"keydown\", function Dropdown_input_3_Template_input_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r20);\n const ctx_r21 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r21.onKeyDown($event));\n })(\"focus\", function Dropdown_input_3_Template_input_focus_0_listener($event) {\n i0.ɵɵrestoreView(_r20);\n const ctx_r22 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r22.onInputFocus($event));\n })(\"blur\", function Dropdown_input_3_Template_input_blur_0_listener($event) {\n i0.ɵɵrestoreView(_r20);\n const ctx_r23 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r23.onInputBlur($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r2.inputClass)(\"disabled\", ctx_r2.disabled);\n i0.ɵɵattribute(\"maxlength\", ctx_r2.maxlength)(\"placeholder\", ctx_r2.modelValue() === undefined || ctx_r2.modelValue() === null ? ctx_r2.placeholder() : undefined)(\"aria-expanded\", ctx_r2.overlayVisible);\n }\n}\nfunction Dropdown_ng_container_4_TimesIcon_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r27 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 20);\n i0.ɵɵlistener(\"click\", function Dropdown_ng_container_4_TimesIcon_1_Template_TimesIcon_click_0_listener($event) {\n i0.ɵɵrestoreView(_r27);\n const ctx_r26 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r26.clear($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-dropdown-clear-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"clearicon\");\n }\n}\nfunction Dropdown_ng_container_4_span_2_1_ng_template_0_Template(rf, ctx) {}\nfunction Dropdown_ng_container_4_span_2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Dropdown_ng_container_4_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Dropdown_ng_container_4_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r31 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 21);\n i0.ɵɵlistener(\"click\", function Dropdown_ng_container_4_span_2_Template_span_click_0_listener($event) {\n i0.ɵɵrestoreView(_r31);\n const ctx_r30 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r30.clear($event));\n });\n i0.ɵɵtemplate(1, Dropdown_ng_container_4_span_2_1_Template, 1, 0, null, 22);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r25 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"clearicon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r25.clearIconTemplate);\n }\n}\nfunction Dropdown_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Dropdown_ng_container_4_TimesIcon_1_Template, 1, 2, \"TimesIcon\", 18)(2, Dropdown_ng_container_4_span_2_Template, 2, 2, \"span\", 19);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.clearIconTemplate);\n }\n}\nfunction Dropdown_ng_container_6_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 25);\n }\n if (rf & 2) {\n const ctx_r32 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r32.dropdownIcon);\n }\n}\nfunction Dropdown_ng_container_6_ChevronDownIcon_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\", 26);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-dropdown-trigger-icon\");\n }\n}\nfunction Dropdown_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Dropdown_ng_container_6_span_1_Template, 1, 1, \"span\", 23)(2, Dropdown_ng_container_6_ChevronDownIcon_2_Template, 1, 1, \"ChevronDownIcon\", 24);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.dropdownIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r4.dropdownIcon);\n }\n}\nfunction Dropdown_span_7_1_ng_template_0_Template(rf, ctx) {}\nfunction Dropdown_span_7_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Dropdown_span_7_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Dropdown_span_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 27);\n i0.ɵɵtemplate(1, Dropdown_span_7_1_Template, 1, 0, null, 22);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.dropdownIconTemplate);\n }\n}\nfunction Dropdown_ng_template_10_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Dropdown_ng_template_10_div_4_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c12 = a0 => ({\n options: a0\n});\nfunction Dropdown_ng_template_10_div_4_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Dropdown_ng_template_10_div_4_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 38);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r45 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r45.filterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c12, ctx_r45.filterOptions));\n }\n}\nfunction Dropdown_ng_template_10_div_4_ng_template_2_SearchIcon_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"SearchIcon\", 26);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-dropdown-filter-icon\");\n }\n}\nfunction Dropdown_ng_template_10_div_4_ng_template_2_span_4_1_ng_template_0_Template(rf, ctx) {}\nfunction Dropdown_ng_template_10_div_4_ng_template_2_span_4_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Dropdown_ng_template_10_div_4_ng_template_2_span_4_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Dropdown_ng_template_10_div_4_ng_template_2_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 43);\n i0.ɵɵtemplate(1, Dropdown_ng_template_10_div_4_ng_template_2_span_4_1_Template, 1, 0, null, 22);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r51 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r51.filterIconTemplate);\n }\n}\nfunction Dropdown_ng_template_10_div_4_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r55 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 39)(1, \"input\", 40, 41);\n i0.ɵɵlistener(\"input\", function Dropdown_ng_template_10_div_4_ng_template_2_Template_input_input_1_listener($event) {\n i0.ɵɵrestoreView(_r55);\n const ctx_r54 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r54.onFilterInputChange($event));\n })(\"keydown\", function Dropdown_ng_template_10_div_4_ng_template_2_Template_input_keydown_1_listener($event) {\n i0.ɵɵrestoreView(_r55);\n const ctx_r56 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r56.onFilterKeyDown($event));\n })(\"blur\", function Dropdown_ng_template_10_div_4_ng_template_2_Template_input_blur_1_listener($event) {\n i0.ɵɵrestoreView(_r55);\n const ctx_r57 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r57.onFilterBlur($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, Dropdown_ng_template_10_div_4_ng_template_2_SearchIcon_3_Template, 1, 1, \"SearchIcon\", 24)(4, Dropdown_ng_template_10_div_4_ng_template_2_span_4_Template, 2, 1, \"span\", 42);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r46 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"value\", ctx_r46._filterValue() || \"\");\n i0.ɵɵattribute(\"placeholder\", ctx_r46.filterPlaceholder)(\"aria-owns\", ctx_r46.id + \"_list\")(\"aria-label\", ctx_r46.ariaFilterLabel)(\"aria-activedescendant\", ctx_r46.focusedOptionId);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r46.filterIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r46.filterIconTemplate);\n }\n}\nfunction Dropdown_ng_template_10_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 36);\n i0.ɵɵlistener(\"click\", function Dropdown_ng_template_10_div_4_Template_div_click_0_listener($event) {\n return $event.stopPropagation();\n });\n i0.ɵɵtemplate(1, Dropdown_ng_template_10_div_4_ng_container_1_Template, 2, 4, \"ng-container\", 12)(2, Dropdown_ng_template_10_div_4_ng_template_2_Template, 5, 7, \"ng-template\", null, 37, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r47 = i0.ɵɵreference(3);\n const ctx_r38 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r38.filterTemplate)(\"ngIfElse\", _r47);\n }\n}\nfunction Dropdown_ng_template_10_p_scroller_6_ng_template_2_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c13 = (a0, a1) => ({\n $implicit: a0,\n options: a1\n});\nfunction Dropdown_ng_template_10_p_scroller_6_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Dropdown_ng_template_10_p_scroller_6_ng_template_2_ng_container_0_Template, 1, 0, \"ng-container\", 38);\n }\n if (rf & 2) {\n const items_r62 = ctx.$implicit;\n const scrollerOptions_r63 = ctx.options;\n i0.ɵɵnextContext(2);\n const _r42 = i0.ɵɵreference(9);\n i0.ɵɵproperty(\"ngTemplateOutlet\", _r42)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c13, items_r62, scrollerOptions_r63));\n }\n}\nfunction Dropdown_ng_template_10_p_scroller_6_ng_container_3_ng_template_1_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Dropdown_ng_template_10_p_scroller_6_ng_container_3_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Dropdown_ng_template_10_p_scroller_6_ng_container_3_ng_template_1_ng_container_0_Template, 1, 0, \"ng-container\", 38);\n }\n if (rf & 2) {\n const scrollerOptions_r66 = ctx.options;\n const ctx_r65 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r65.loaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c12, scrollerOptions_r66));\n }\n}\nfunction Dropdown_ng_template_10_p_scroller_6_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Dropdown_ng_template_10_p_scroller_6_ng_container_3_ng_template_1_Template, 1, 4, \"ng-template\", 46);\n i0.ɵɵelementContainerEnd();\n }\n}\nfunction Dropdown_ng_template_10_p_scroller_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r69 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-scroller\", 44, 45);\n i0.ɵɵlistener(\"onLazyLoad\", function Dropdown_ng_template_10_p_scroller_6_Template_p_scroller_onLazyLoad_0_listener($event) {\n i0.ɵɵrestoreView(_r69);\n const ctx_r68 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r68.onLazyLoad.emit($event));\n });\n i0.ɵɵtemplate(2, Dropdown_ng_template_10_p_scroller_6_ng_template_2_Template, 1, 5, \"ng-template\", 9)(3, Dropdown_ng_template_10_p_scroller_6_ng_container_3_Template, 2, 0, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r39 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleMap(i0.ɵɵpureFunction1(8, _c0, ctx_r39.scrollHeight));\n i0.ɵɵproperty(\"items\", ctx_r39.visibleOptions())(\"itemSize\", ctx_r39.virtualScrollItemSize || ctx_r39._itemSize)(\"autoSize\", true)(\"lazy\", ctx_r39.lazy)(\"options\", ctx_r39.virtualScrollOptions);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r39.loaderTemplate);\n }\n}\nfunction Dropdown_ng_template_10_ng_container_7_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c14 = () => ({});\nfunction Dropdown_ng_template_10_ng_container_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Dropdown_ng_template_10_ng_container_7_ng_container_1_Template, 1, 0, \"ng-container\", 38);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const _r42 = i0.ɵɵreference(9);\n const ctx_r40 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", _r42)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(3, _c13, ctx_r40.visibleOptions(), i0.ɵɵpureFunction0(2, _c14)));\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_0_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const option_r77 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r81 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r81.getOptionGroupLabel(option_r77.optionGroup));\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_0_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"li\", 51);\n i0.ɵɵtemplate(2, Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_0_span_2_Template, 2, 1, \"span\", 4)(3, Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_0_ng_container_3_Template, 1, 0, \"ng-container\", 38);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r85 = i0.ɵɵnextContext();\n const i_r78 = ctx_r85.index;\n const option_r77 = ctx_r85.$implicit;\n const scrollerOptions_r72 = i0.ɵɵnextContext().options;\n const ctx_r79 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(5, _c0, scrollerOptions_r72.itemSize + \"px\"));\n i0.ɵɵattribute(\"id\", ctx_r79.id + \"_\" + ctx_r79.getOptionIndex(i_r78, scrollerOptions_r72));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r79.groupTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r79.groupTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c2, option_r77.optionGroup));\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r88 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"p-dropdownItem\", 52);\n i0.ɵɵlistener(\"onClick\", function Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_1_Template_p_dropdownItem_onClick_1_listener($event) {\n i0.ɵɵrestoreView(_r88);\n const option_r77 = i0.ɵɵnextContext().$implicit;\n const ctx_r86 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r86.onOptionSelect($event, option_r77));\n })(\"onMouseEnter\", function Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_1_Template_p_dropdownItem_onMouseEnter_1_listener($event) {\n i0.ɵɵrestoreView(_r88);\n const i_r78 = i0.ɵɵnextContext().index;\n const scrollerOptions_r72 = i0.ɵɵnextContext().options;\n const ctx_r89 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r89.onOptionMouseEnter($event, ctx_r89.getOptionIndex(i_r78, scrollerOptions_r72)));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r92 = i0.ɵɵnextContext();\n const i_r78 = ctx_r92.index;\n const option_r77 = ctx_r92.$implicit;\n const scrollerOptions_r72 = i0.ɵɵnextContext().options;\n const ctx_r80 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"id\", ctx_r80.id + \"_\" + ctx_r80.getOptionIndex(i_r78, scrollerOptions_r72))(\"option\", option_r77)(\"selected\", ctx_r80.isSelected(option_r77))(\"label\", ctx_r80.getOptionLabel(option_r77))(\"disabled\", ctx_r80.isOptionDisabled(option_r77))(\"template\", ctx_r80.itemTemplate)(\"focused\", ctx_r80.focusedOptionIndex() === ctx_r80.getOptionIndex(i_r78, scrollerOptions_r72))(\"ariaPosInset\", ctx_r80.getAriaPosInset(ctx_r80.getOptionIndex(i_r78, scrollerOptions_r72)))(\"ariaSetSize\", ctx_r80.ariaSetSize);\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_0_Template, 4, 9, \"ng-container\", 4)(1, Dropdown_ng_template_10_ng_template_8_ng_template_2_ng_container_1_Template, 2, 9, \"ng-container\", 4);\n }\n if (rf & 2) {\n const option_r77 = ctx.$implicit;\n const ctx_r74 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r74.isOptionGroup(option_r77));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r74.isOptionGroup(option_r77));\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_li_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r94 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r94.emptyFilterMessageLabel, \" \");\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_li_3_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, null, 54);\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_li_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 53);\n i0.ɵɵtemplate(1, Dropdown_ng_template_10_ng_template_8_li_3_ng_container_1_Template, 2, 1, \"ng-container\", 12)(2, Dropdown_ng_template_10_ng_template_8_li_3_ng_container_2_Template, 2, 0, \"ng-container\", 22);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const scrollerOptions_r72 = i0.ɵɵnextContext().options;\n const ctx_r75 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(4, _c0, scrollerOptions_r72.itemSize + \"px\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r75.emptyFilterTemplate && !ctx_r75.emptyTemplate)(\"ngIfElse\", ctx_r75.emptyFilter);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r75.emptyFilterTemplate || ctx_r75.emptyTemplate);\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_li_4_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r98 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r98.emptyMessageLabel, \" \");\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_li_4_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, null, 55);\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_li_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 53);\n i0.ɵɵtemplate(1, Dropdown_ng_template_10_ng_template_8_li_4_ng_container_1_Template, 2, 1, \"ng-container\", 12)(2, Dropdown_ng_template_10_ng_template_8_li_4_ng_container_2_Template, 2, 0, \"ng-container\", 22);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const scrollerOptions_r72 = i0.ɵɵnextContext().options;\n const ctx_r76 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(4, _c0, scrollerOptions_r72.itemSize + \"px\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r76.emptyTemplate)(\"ngIfElse\", ctx_r76.empty);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r76.emptyTemplate);\n }\n}\nfunction Dropdown_ng_template_10_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ul\", 47, 48);\n i0.ɵɵtemplate(2, Dropdown_ng_template_10_ng_template_8_ng_template_2_Template, 2, 2, \"ng-template\", 49)(3, Dropdown_ng_template_10_ng_template_8_li_3_Template, 3, 6, \"li\", 50)(4, Dropdown_ng_template_10_ng_template_8_li_4_Template, 3, 6, \"li\", 50);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const items_r71 = ctx.$implicit;\n const scrollerOptions_r72 = ctx.options;\n const ctx_r41 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleMap(scrollerOptions_r72.contentStyle);\n i0.ɵɵproperty(\"ngClass\", scrollerOptions_r72.contentStyleClass);\n i0.ɵɵattribute(\"id\", ctx_r41.id + \"_list\")(\"aria-label\", ctx_r41.listLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", items_r71);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r41.filterValue && ctx_r41.isEmpty());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r41.filterValue && ctx_r41.isEmpty());\n }\n}\nfunction Dropdown_ng_template_10_ng_container_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Dropdown_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r103 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 28)(1, \"span\", 29, 30);\n i0.ɵɵlistener(\"focus\", function Dropdown_ng_template_10_Template_span_focus_1_listener($event) {\n i0.ɵɵrestoreView(_r103);\n const ctx_r102 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r102.onFirstHiddenFocus($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, Dropdown_ng_template_10_ng_container_3_Template, 1, 0, \"ng-container\", 22)(4, Dropdown_ng_template_10_div_4_Template, 4, 2, \"div\", 31);\n i0.ɵɵelementStart(5, \"div\", 32);\n i0.ɵɵtemplate(6, Dropdown_ng_template_10_p_scroller_6_Template, 4, 10, \"p-scroller\", 33)(7, Dropdown_ng_template_10_ng_container_7_Template, 2, 6, \"ng-container\", 4)(8, Dropdown_ng_template_10_ng_template_8_Template, 5, 8, \"ng-template\", null, 34, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(10, Dropdown_ng_template_10_ng_container_10_Template, 1, 0, \"ng-container\", 22);\n i0.ɵɵelementStart(11, \"span\", 29, 35);\n i0.ɵɵlistener(\"focus\", function Dropdown_ng_template_10_Template_span_focus_11_listener($event) {\n i0.ɵɵrestoreView(_r103);\n const ctx_r104 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r104.onLastHiddenFocus($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r7.panelStyleClass);\n i0.ɵɵproperty(\"ngClass\", \"p-dropdown-panel p-component\")(\"ngStyle\", ctx_r7.panelStyle);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-hidden\", true)(\"tabindex\", 0)(\"data-p-hidden-accessible\", true)(\"data-p-hidden-focusable\", true);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r7.headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r7.filter);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"max-height\", ctx_r7.virtualScroll ? \"auto\" : ctx_r7.scrollHeight || \"auto\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r7.virtualScroll);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r7.virtualScroll);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r7.footerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-hidden\", true)(\"tabindex\", 0)(\"data-p-hidden-accessible\", true)(\"data-p-hidden-focusable\", true);\n }\n}\nconst DROPDOWN_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Dropdown),\n multi: true\n};\nlet DropdownItem = /*#__PURE__*/(() => {\n class DropdownItem {\n id;\n option;\n selected;\n focused;\n label;\n disabled;\n visible;\n itemSize;\n ariaPosInset;\n ariaSetSize;\n template;\n onClick = new EventEmitter();\n onMouseEnter = new EventEmitter();\n ngOnInit() {}\n onOptionClick(event) {\n this.onClick.emit(event);\n }\n onOptionMouseEnter(event) {\n this.onMouseEnter.emit(event);\n }\n static ɵfac = function DropdownItem_Factory(t) {\n return new (t || DropdownItem)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DropdownItem,\n selectors: [[\"p-dropdownItem\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n id: \"id\",\n option: \"option\",\n selected: \"selected\",\n focused: \"focused\",\n label: \"label\",\n disabled: \"disabled\",\n visible: \"visible\",\n itemSize: \"itemSize\",\n ariaPosInset: \"ariaPosInset\",\n ariaSetSize: \"ariaSetSize\",\n template: \"template\"\n },\n outputs: {\n onClick: \"onClick\",\n onMouseEnter: \"onMouseEnter\"\n },\n decls: 3,\n vars: 21,\n consts: [[\"role\", \"option\", \"pRipple\", \"\", 3, \"id\", \"ngStyle\", \"ngClass\", \"click\", \"mouseenter\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function DropdownItem_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 0);\n i0.ɵɵlistener(\"click\", function DropdownItem_Template_li_click_0_listener($event) {\n return ctx.onOptionClick($event);\n })(\"mouseenter\", function DropdownItem_Template_li_mouseenter_0_listener($event) {\n return ctx.onOptionMouseEnter($event);\n });\n i0.ɵɵtemplate(1, DropdownItem_span_1_Template, 2, 1, \"span\", 1)(2, DropdownItem_ng_container_2_Template, 1, 0, \"ng-container\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"id\", ctx.id)(\"ngStyle\", i0.ɵɵpureFunction1(13, _c0, ctx.itemSize + \"px\"))(\"ngClass\", i0.ɵɵpureFunction3(15, _c1, ctx.selected, ctx.disabled, ctx.focused));\n i0.ɵɵattribute(\"aria-label\", ctx.label)(\"aria-setsize\", ctx.ariaSetSize)(\"aria-posinset\", ctx.ariaPosInset)(\"aria-selected\", ctx.selected)(\"data-p-focused\", ctx.focused)(\"data-p-highlight\", ctx.selected)(\"data-p-disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.template);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(19, _c2, ctx.option));\n }\n },\n dependencies: [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.Ripple],\n encapsulation: 2\n });\n }\n return DropdownItem;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Dropdown also known as Select, is used to choose an item from a collection of options.\n * @group Components\n */\nlet Dropdown = /*#__PURE__*/(() => {\n class Dropdown {\n el;\n renderer;\n cd;\n zone;\n filterService;\n config;\n /**\n * Unique identifier of the component\n * @group Props\n */\n id;\n /**\n * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n scrollHeight = '200px';\n /**\n * When specified, displays an input field to filter the items on keyup.\n * @group Props\n */\n filter;\n /**\n * Name of the input element.\n * @group Props\n */\n name;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Inline style of the overlay panel element.\n * @group Props\n */\n panelStyle;\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Style class of the overlay panel element.\n * @group Props\n */\n panelStyleClass;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n readonly;\n /**\n * When present, it specifies that an input field must be filled out before submitting the form.\n * @group Props\n */\n required;\n /**\n * When present, custom value instead of predefined options can be entered using the editable input field.\n * @group Props\n */\n editable;\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = 0;\n /**\n * Default text to display when no option is selected.\n * @group Props\n */\n set placeholder(val) {\n this._placeholder.set(val);\n }\n get placeholder() {\n return this._placeholder.asReadonly();\n }\n /**\n * Placeholder text to show when filter input is empty.\n * @group Props\n */\n filterPlaceholder;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n filterLocale;\n /**\n * Identifier of the accessible input element.\n * @group Props\n */\n inputId;\n /**\n * A property to uniquely identify a value in options.\n * @group Props\n */\n dataKey;\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n filterBy;\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n filterFields;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Clears the filter value when hiding the dropdown.\n * @group Props\n */\n resetFilterOnHide = false;\n /**\n * Icon class of the dropdown icon.\n * @group Props\n */\n dropdownIcon;\n /**\n * Name of the label field of an option.\n * @group Props\n */\n optionLabel;\n /**\n * Name of the value field of an option.\n * @group Props\n */\n optionValue;\n /**\n * Name of the disabled field of an option.\n * @group Props\n */\n optionDisabled;\n /**\n * Name of the label field of an option group.\n * @group Props\n */\n optionGroupLabel = 'label';\n /**\n * Name of the options field of an option group.\n * @group Props\n */\n optionGroupChildren = 'items';\n /**\n * Whether to display the first item as the label if no placeholder is defined and value is null.\n * @deprecated since v17.3.0, set initial value by model instead.\n * @group Props\n */\n autoDisplayFirst = true;\n /**\n * Whether to display options as grouped when nested options are provided.\n * @group Props\n */\n group;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear;\n /**\n * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n emptyFilterMessage = '';\n /**\n * Text to display when there is no data. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n emptyMessage = '';\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = false;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n virtualScroll;\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n virtualScrollItemSize;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n virtualScrollOptions;\n /**\n * Whether to use overlay API feature. The properties of overlay API can be used like an object in it.\n * @group Props\n */\n overlayOptions;\n /**\n * Defines a string that labels the filter input.\n * @group Props\n */\n ariaFilterLabel;\n /**\n * Used to define a aria label attribute the current element.\n * @group Props\n */\n ariaLabel;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Defines how the items are filtered.\n * @group Props\n */\n filterMatchMode = 'contains';\n /**\n * Maximum number of character allows in the editable input field.\n * @group Props\n */\n maxlength;\n /**\n * Advisory information to display in a tooltip on hover.\n * @group Props\n */\n tooltip = '';\n /**\n * Position of the tooltip.\n * @group Props\n */\n tooltipPosition = 'right';\n /**\n * Type of CSS position.\n * @group Props\n */\n tooltipPositionStyle = 'absolute';\n /**\n * Style class of the tooltip.\n * @group Props\n */\n tooltipStyleClass;\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n focusOnHover = false;\n /**\n * Determines if the option will be selected on focus.\n * @group Props\n */\n selectOnFocus = false;\n /**\n * Whether to focus on the first visible or selected element when the overlay panel is shown.\n * @group Props\n */\n autoOptionFocus = true;\n /**\n * Applies focus to the filter element when the overlay is shown.\n * @group Props\n */\n autofocusFilter = true;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(_disabled) {\n if (_disabled) {\n this.focused = false;\n if (this.overlayVisible) this.hide();\n }\n this._disabled = _disabled;\n if (!this.cd.destroyed) {\n this.cd.detectChanges();\n }\n }\n /**\n * Item size of item to be virtual scrolled.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(val) {\n this._itemSize = val;\n console.warn('The itemSize property is deprecated, use virtualScrollItemSize property instead.');\n }\n _itemSize;\n /**\n * Whether to automatically manage layering.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get autoZIndex() {\n return this._autoZIndex;\n }\n set autoZIndex(val) {\n this._autoZIndex = val;\n console.warn('The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n _autoZIndex;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get baseZIndex() {\n return this._baseZIndex;\n }\n set baseZIndex(val) {\n this._baseZIndex = val;\n console.warn('The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n _baseZIndex;\n /**\n * Transition options of the show animation.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get showTransitionOptions() {\n return this._showTransitionOptions;\n }\n set showTransitionOptions(val) {\n this._showTransitionOptions = val;\n console.warn('The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n _showTransitionOptions;\n /**\n * Transition options of the hide animation.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get hideTransitionOptions() {\n return this._hideTransitionOptions;\n }\n set hideTransitionOptions(val) {\n this._hideTransitionOptions = val;\n console.warn('The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n _hideTransitionOptions;\n /**\n * When specified, filter displays with this value.\n * @group Props\n */\n get filterValue() {\n return this._filterValue();\n }\n set filterValue(val) {\n setTimeout(() => {\n this._filterValue.set(val);\n });\n }\n /**\n * An array of objects to display as the available options.\n * @group Props\n */\n get options() {\n const options = this._options();\n return options;\n }\n set options(val) {\n if (!ObjectUtils.deepEquals(val, this._options())) {\n this._options.set(val);\n }\n }\n /**\n * Callback to invoke when value of dropdown changes.\n * @param {DropdownChangeEvent} event - custom change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n /**\n * Callback to invoke when data is filtered.\n * @param {DropdownFilterEvent} event - custom filter event.\n * @group Emits\n */\n onFilter = new EventEmitter();\n /**\n * Callback to invoke when dropdown gets focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when dropdown loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke when component is clicked.\n * @param {MouseEvent} event - Mouse event.\n * @group Emits\n */\n onClick = new EventEmitter();\n /**\n * Callback to invoke when dropdown overlay gets visible.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Callback to invoke when dropdown overlay gets hidden.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n */\n onHide = new EventEmitter();\n /**\n * Callback to invoke when dropdown clears the value.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onClear = new EventEmitter();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {DropdownLazyLoadEvent} event - Lazy load event.\n * @group Emits\n */\n onLazyLoad = new EventEmitter();\n containerViewChild;\n filterViewChild;\n focusInputViewChild;\n editableInputViewChild;\n itemsViewChild;\n scroller;\n overlayViewChild;\n firstHiddenFocusableElementOnOverlay;\n lastHiddenFocusableElementOnOverlay;\n templates;\n _disabled;\n itemsWrapper;\n itemTemplate;\n groupTemplate;\n loaderTemplate;\n selectedItemTemplate;\n headerTemplate;\n filterTemplate;\n footerTemplate;\n emptyFilterTemplate;\n emptyTemplate;\n dropdownIconTemplate;\n clearIconTemplate;\n filterIconTemplate;\n filterOptions;\n _options = signal(null);\n _placeholder = signal(undefined);\n modelValue = signal(null);\n value;\n onModelChange = () => {};\n onModelTouched = () => {};\n hover;\n focused;\n overlayVisible;\n optionsChanged;\n panel;\n dimensionsUpdated;\n hoveredItem;\n selectedOptionUpdated;\n _filterValue = signal(null);\n searchValue;\n searchIndex;\n searchTimeout;\n previousSearchChar;\n currentSearchChar;\n preventModelTouched;\n focusedOptionIndex = signal(-1);\n labelId;\n listId;\n clicked = signal(false);\n get emptyMessageLabel() {\n return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n get emptyFilterMessageLabel() {\n return this.emptyFilterMessage || this.config.getTranslation(TranslationKeys.EMPTY_FILTER_MESSAGE);\n }\n get isVisibleClearIcon() {\n return this.modelValue() != null && this.hasSelectedOption() && this.showClear && !this.disabled;\n }\n get listLabel() {\n return this.config.getTranslation(TranslationKeys.ARIA)['listLabel'];\n }\n get containerClass() {\n return {\n 'p-dropdown p-component p-inputwrapper': true,\n 'p-disabled': this.disabled,\n 'p-dropdown-clearable': this.showClear && !this.disabled,\n 'p-focus': this.focused,\n 'p-inputwrapper-filled': this.modelValue() !== undefined && this.modelValue() !== null && !this.modelValue().length,\n 'p-inputwrapper-focus': this.focused || this.overlayVisible\n };\n }\n get inputClass() {\n const label = this.label();\n return {\n 'p-dropdown-label p-inputtext': true,\n 'p-placeholder': this.placeholder() && label === this.placeholder(),\n 'p-dropdown-label-empty': !this.editable && !this.selectedItemTemplate && (label === undefined || label === null || label === 'p-emptylabel' || label.length === 0)\n };\n }\n get panelClass() {\n return {\n 'p-dropdown-panel p-component': true,\n 'p-input-filled': this.config.inputStyle === 'filled',\n 'p-ripple-disabled': this.config.ripple === false\n };\n }\n get focusedOptionId() {\n return this.focusedOptionIndex() !== -1 ? `${this.id}_${this.focusedOptionIndex()}` : null;\n }\n visibleOptions = computed(() => {\n const options = this.getAllVisibleAndNonVisibleOptions();\n if (this._filterValue()) {\n const _filterBy = this.filterBy || this.optionLabel;\n const filteredOptions = !_filterBy && !this.filterFields && !this.optionValue ? this.options.filter(option => {\n if (option.label) {\n return option.label.toLowerCase().indexOf(this._filterValue().toLowerCase().trim()) !== -1;\n }\n return option.toLowerCase().indexOf(this._filterValue().toLowerCase().trim()) !== -1;\n }) : this.filterService.filter(options, this.searchFields(), this._filterValue().trim(), this.filterMatchMode, this.filterLocale);\n if (this.group) {\n const optionGroups = this.options || [];\n const filtered = [];\n optionGroups.forEach(group => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter(item => filteredOptions.includes(item));\n if (filteredItems.length > 0) filtered.push({\n ...group,\n [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems]\n });\n });\n return this.flatOptions(filtered);\n }\n return filteredOptions;\n }\n return options;\n });\n label = computed(() => {\n // use getAllVisibleAndNonVisibleOptions verses just visible options\n // this will find the selected option whether or not the user is currently filtering because the filtered (i.e. visible) options, are a subset of all the options\n const options = this.getAllVisibleAndNonVisibleOptions();\n // use isOptionEqualsModelValue for the use case where the dropdown is initalized with a disabled option\n const selectedOptionIndex = options.findIndex(option => this.isOptionValueEqualsModelValue(option));\n return selectedOptionIndex !== -1 ? this.getOptionLabel(options[selectedOptionIndex]) : this.placeholder() || 'p-emptylabel';\n });\n filled = computed(() => {\n if (typeof this.modelValue() === 'string') return !!this.modelValue();\n return this.label() !== 'p-emptylabel' && this.modelValue() !== undefined && this.modelValue() !== null;\n });\n selectedOption;\n editableInputValue = computed(() => this.getOptionLabel(this.selectedOption) || this.modelValue() || '');\n constructor(el, renderer, cd, zone, filterService, config) {\n this.el = el;\n this.renderer = renderer;\n this.cd = cd;\n this.zone = zone;\n this.filterService = filterService;\n this.config = config;\n effect(() => {\n const modelValue = this.modelValue();\n const visibleOptions = this.visibleOptions();\n if (visibleOptions && ObjectUtils.isNotEmpty(visibleOptions)) {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n if (selectedOptionIndex !== -1 || modelValue === undefined || typeof modelValue === 'string' && modelValue.length === 0 || this.isModelValueNotSet() || this.editable) {\n this.selectedOption = visibleOptions[selectedOptionIndex];\n }\n }\n if (ObjectUtils.isEmpty(visibleOptions) && (modelValue === undefined || this.isModelValueNotSet()) && ObjectUtils.isNotEmpty(this.selectedOption)) {\n this.selectedOption = null;\n }\n if (modelValue !== undefined && this.editable) {\n this.updateEditableLabel();\n }\n this.cd.markForCheck();\n });\n }\n isModelValueNotSet() {\n return this.modelValue() === null && !this.isOptionValueEqualsModelValue(this.selectedOption);\n }\n displayPlaceholder() {\n return ObjectUtils.isEmpty(this.selectedOption) && this.label() === this.placeholder();\n }\n getAllVisibleAndNonVisibleOptions() {\n return this.group ? this.flatOptions(this.options) : this.options || [];\n }\n ngOnInit() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n if (this.filterBy) {\n this.filterOptions = {\n filter: value => this.onFilterInputChange(value),\n reset: () => this.resetFilter()\n };\n }\n }\n ngAfterViewChecked() {\n if (this.optionsChanged && this.overlayVisible) {\n this.optionsChanged = false;\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n if (this.overlayViewChild) {\n this.overlayViewChild.alignOverlay();\n }\n }, 1);\n });\n }\n if (this.selectedOptionUpdated && this.itemsWrapper) {\n let selectedItem = DomHandler.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, 'li.p-highlight');\n if (selectedItem) {\n DomHandler.scrollInView(this.itemsWrapper, selectedItem);\n }\n this.selectedOptionUpdated = false;\n }\n }\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n case 'selectedItem':\n this.selectedItemTemplate = item.template;\n break;\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'filter':\n this.filterTemplate = item.template;\n break;\n case 'footer':\n this.footerTemplate = item.template;\n break;\n case 'emptyfilter':\n this.emptyFilterTemplate = item.template;\n break;\n case 'empty':\n this.emptyTemplate = item.template;\n break;\n case 'group':\n this.groupTemplate = item.template;\n break;\n case 'loader':\n this.loaderTemplate = item.template;\n break;\n case 'dropdownicon':\n this.dropdownIconTemplate = item.template;\n break;\n case 'clearicon':\n this.clearIconTemplate = item.template;\n break;\n case 'filtericon':\n this.filterIconTemplate = item.template;\n break;\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({\n optionGroup: option,\n group: true,\n index\n });\n const optionGroupChildren = this.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(o => result.push(o));\n return result;\n }, []);\n }\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption()) {\n this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex());\n this.onOptionSelect(null, this.visibleOptions()[this.focusedOptionIndex()], false);\n }\n if (this.autoDisplayFirst && (this.modelValue() === null || this.modelValue() === undefined)) {\n if (!this.placeholder()) {\n const ind = this.findFirstOptionIndex();\n this.onOptionSelect(null, this.visibleOptions()[ind], false, true);\n }\n }\n }\n onOptionSelect(event, option, isHide = true, preventChange = false) {\n if (!this.isSelected(option)) {\n const value = this.getOptionValue(option);\n this.updateModel(value, event);\n this.focusedOptionIndex.set(this.findSelectedOptionIndex());\n isHide && setTimeout(() => this.hide(true), 1);\n preventChange === false && this.onChange.emit({\n originalEvent: event,\n value: value\n });\n }\n }\n onOptionMouseEnter(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n }\n updateModel(value, event) {\n this.value = value;\n this.onModelChange(value);\n this.modelValue.set(value);\n this.selectedOptionUpdated = true;\n }\n writeValue(value) {\n if (this.filter) {\n this.resetFilter();\n }\n this.value = value;\n this.allowModelChange() && this.onModelChange(value);\n this.modelValue.set(this.value);\n this.updateEditableLabel();\n this.cd.markForCheck();\n }\n allowModelChange() {\n return this.autoDisplayFirst && !this.placeholder() && (this.modelValue() === undefined || this.modelValue() === null) && !this.editable && this.options && this.options.length;\n }\n isSelected(option) {\n return this.isValidOption(option) && this.isOptionValueEqualsModelValue(option);\n }\n isOptionValueEqualsModelValue(option) {\n return ObjectUtils.equals(this.modelValue(), this.getOptionValue(option), this.equalityKey());\n }\n ngAfterViewInit() {\n if (this.editable) {\n this.updateEditableLabel();\n }\n }\n updateEditableLabel() {\n if (this.editableInputViewChild) {\n this.editableInputViewChild.nativeElement.value = this.getOptionLabel(this.selectedOption) || this.modelValue() || '';\n }\n }\n clearEditableLabel() {\n if (this.editableInputViewChild) {\n this.editableInputViewChild.nativeElement.value = '';\n }\n }\n getOptionIndex(index, scrollerOptions) {\n return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];\n }\n getOptionLabel(option) {\n return this.optionLabel !== undefined && this.optionLabel !== null ? ObjectUtils.resolveFieldData(option, this.optionLabel) : option && option.label !== undefined ? option.label : option;\n }\n getOptionValue(option) {\n return this.optionValue && this.optionValue !== null ? ObjectUtils.resolveFieldData(option, this.optionValue) : !this.optionLabel && option && option.value !== undefined ? option.value : option;\n }\n isOptionDisabled(option) {\n if (this.getOptionValue(this.modelValue()) === this.getOptionValue(option) || this.getOptionLabel(this.modelValue() === this.getOptionLabel(option)) && option.disabled === false) {\n return false;\n } else {\n return this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false;\n }\n }\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel !== undefined && this.optionGroupLabel !== null ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupLabel) : optionGroup && optionGroup.label !== undefined ? optionGroup.label : optionGroup;\n }\n getOptionGroupChildren(optionGroup) {\n return this.optionGroupChildren !== undefined && this.optionGroupChildren !== null ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items;\n }\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions().slice(0, index).filter(option => this.isOptionGroup(option)).length : index) + 1;\n }\n get ariaSetSize() {\n return this.visibleOptions().filter(option => !this.isOptionGroup(option)).length;\n }\n /**\n * Callback to invoke on filter reset.\n * @group Method\n */\n resetFilter() {\n this._filterValue.set(null);\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.filterViewChild.nativeElement.value = '';\n }\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n onContainerClick(event) {\n if (this.disabled || this.readonly) {\n return;\n }\n this.focusInputViewChild?.nativeElement.focus({\n preventScroll: true\n });\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlayViewChild || !this.overlayViewChild.el.nativeElement.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n this.onClick.emit(event);\n this.clicked.set(true);\n this.cd.detectChanges();\n }\n isEmpty() {\n return !this._options() || this.visibleOptions() && this.visibleOptions().length === 0;\n }\n onEditableInput(event) {\n const value = event.target.value;\n this.searchValue = '';\n const matched = this.searchOptions(event, value);\n !matched && this.focusedOptionIndex.set(-1);\n this.onModelChange(value);\n this.updateModel(value, event);\n setTimeout(() => {\n this.onChange.emit({\n originalEvent: event,\n value: value\n });\n }, 1);\n !this.overlayVisible && ObjectUtils.isNotEmpty(value) && this.show();\n }\n /**\n * Displays the panel.\n * @group Method\n */\n show(isFocus) {\n this.overlayVisible = true;\n const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n this.focusedOptionIndex.set(focusedOptionIndex);\n if (isFocus) {\n DomHandler.focus(this.focusInputViewChild?.nativeElement);\n }\n this.cd.markForCheck();\n }\n onOverlayAnimationStart(event) {\n if (event.toState === 'visible') {\n this.itemsWrapper = DomHandler.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, this.virtualScroll ? '.p-scroller' : '.p-dropdown-items-wrapper');\n this.virtualScroll && this.scroller?.setContentEl(this.itemsViewChild?.nativeElement);\n if (this.options && this.options.length) {\n if (this.virtualScroll) {\n const selectedIndex = this.modelValue() ? this.focusedOptionIndex() : -1;\n if (selectedIndex !== -1) {\n this.scroller?.scrollToIndex(selectedIndex);\n }\n } else {\n let selectedListItem = DomHandler.findSingle(this.itemsWrapper, '.p-dropdown-item.p-highlight');\n if (selectedListItem) {\n selectedListItem.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n }\n }\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.preventModelTouched = true;\n if (this.autofocusFilter && !this.editable) {\n this.filterViewChild.nativeElement.focus();\n }\n }\n this.onShow.emit(event);\n }\n if (event.toState === 'void') {\n this.itemsWrapper = null;\n this.onModelTouched();\n this.onHide.emit(event);\n }\n }\n /**\n * Hides the panel.\n * @group Method\n */\n hide(isFocus) {\n this.overlayVisible = false;\n this.focusedOptionIndex.set(-1);\n this.clicked.set(false);\n this.searchValue = '';\n if (this.filter && this.resetFilterOnHide) {\n this.resetFilter();\n }\n if (isFocus) {\n if (this.focusInputViewChild) {\n DomHandler.focus(this.focusInputViewChild?.nativeElement);\n }\n if (this.editable && this.editableInputViewChild) {\n DomHandler.focus(this.editableInputViewChild?.nativeElement);\n }\n }\n this.cd.markForCheck();\n }\n onInputFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.focusedOptionIndex.set(focusedOptionIndex);\n this.overlayVisible && this.scrollInView(this.focusedOptionIndex());\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n this.overlayVisible === false && this.onBlur.emit(event);\n if (!this.preventModelTouched) {\n this.onModelTouched();\n }\n this.preventModelTouched = false;\n }\n onKeyDown(event, search) {\n if (this.disabled || this.readonly) {\n return;\n }\n switch (event.code) {\n //down\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n //up\n case 'ArrowUp':\n this.onArrowUpKey(event, this.editable);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n case 'Delete':\n this.onDeleteKey(event);\n break;\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n case 'End':\n this.onEndKey(event, this.editable);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n //space\n case 'Space':\n this.onSpaceKey(event, search);\n break;\n //enter\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n //escape and tab\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!event.metaKey && ObjectUtils.isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n break;\n }\n this.clicked.set(false);\n }\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n case 'Home':\n this.onHomeKey(event, true);\n break;\n case 'End':\n this.onEndKey(event, true);\n break;\n case 'Enter':\n this.onEnterKey(event, true);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event, true);\n break;\n default:\n break;\n }\n }\n onFilterBlur(event) {\n this.focusedOptionIndex.set(-1);\n }\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n } else {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.clicked() ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n // const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();\n // this.changeFocusedOptionIndex(event, optionIndex);\n // !this.overlayVisible && this.show();\n event.preventDefault();\n }\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex() !== index) {\n this.focusedOptionIndex.set(index);\n this.scrollInView();\n if (this.selectOnFocus) {\n const option = this.visibleOptions()[index];\n this.onOptionSelect(event, option, false);\n }\n }\n }\n get virtualScrollerDisabled() {\n return !this.virtualScroll;\n }\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n if (this.itemsViewChild && this.itemsViewChild.nativeElement) {\n const element = DomHandler.findSingle(this.itemsViewChild.nativeElement, `li[id=\"${id}\"]`);\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n } else if (!this.virtualScrollerDisabled) {\n setTimeout(() => {\n this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());\n }, 0);\n }\n }\n }\n hasSelectedOption() {\n return this.modelValue() !== undefined;\n }\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n }\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n }\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n }\n findFirstOptionIndex() {\n return this.visibleOptions().findIndex(option => this.isValidOption(option));\n }\n findSelectedOptionIndex() {\n return this.hasSelectedOption() ? this.visibleOptions().findIndex(option => this.isValidSelectedOption(option)) : -1;\n }\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions().length - 1 ? this.visibleOptions().slice(index + 1).findIndex(option => this.isValidOption(option)) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n }\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? ObjectUtils.findLastIndex(this.visibleOptions().slice(0, index), option => this.isValidOption(option)) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n findLastOptionIndex() {\n return ObjectUtils.findLastIndex(this.visibleOptions(), option => this.isValidOption(option));\n }\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n }\n isValidOption(option) {\n return option !== undefined && option !== null && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n }\n isOptionGroup(option) {\n return this.optionGroupLabel !== undefined && this.optionGroupLabel !== null && option.optionGroup !== undefined && option.optionGroup !== null && option.group;\n }\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex() !== -1) {\n const option = this.visibleOptions()[this.focusedOptionIndex()];\n this.onOptionSelect(event, option);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.clicked() ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n }\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && this.focusedOptionIndex.set(-1);\n }\n onDeleteKey(event) {\n if (this.showClear) {\n this.clear(event);\n event.preventDefault();\n }\n }\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(0, target.value.length);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex.set(-1);\n }\n } else {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n }\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(0, target.value.length);\n } else {\n const len = target.value.length;\n target.setSelectionRange(len, len);\n this.focusedOptionIndex.set(-1);\n }\n } else {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n }\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions().length - 1);\n event.preventDefault();\n }\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n }\n onSpaceKey(event, pressedInInputText = false) {\n !this.editable && !pressedInInputText && this.onEnterKey(event);\n }\n onEnterKey(event, pressedInInput = false) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex.set(-1);\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex() !== -1) {\n const option = this.visibleOptions()[this.focusedOptionIndex()];\n this.onOptionSelect(event, option);\n }\n !pressedInInput && this.hide();\n }\n event.preventDefault();\n }\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n }\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n DomHandler.focus(event.shiftKey ? this.lastHiddenFocusableElementOnOverlay.nativeElement : this.firstHiddenFocusableElementOnOverlay.nativeElement);\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex() !== -1 && this.overlayVisible) {\n const option = this.visibleOptions()[this.focusedOptionIndex()];\n this.onOptionSelect(event, option);\n }\n this.overlayVisible && this.hide(this.filter);\n }\n }\n }\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? DomHandler.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement, ':not(.p-hidden-focusable)') : this.focusInputViewChild?.nativeElement;\n DomHandler.focus(focusableEl);\n }\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? DomHandler.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])') : this.focusInputViewChild?.nativeElement;\n DomHandler.focus(focusableEl);\n }\n hasFocusableElements() {\n return DomHandler.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n }\n onBackspaceKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n }\n searchFields() {\n return this.filterBy?.split(',') || this.filterFields || [this.optionLabel];\n }\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n let optionIndex = -1;\n let matched = false;\n if (this.focusedOptionIndex() !== -1) {\n optionIndex = this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(option => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions().slice(0, this.focusedOptionIndex()).findIndex(option => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex();\n } else {\n optionIndex = this.visibleOptions().findIndex(option => this.isOptionMatched(option));\n }\n if (optionIndex !== -1) {\n matched = true;\n }\n if (optionIndex === -1 && this.focusedOptionIndex() === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n return matched;\n }\n isOptionMatched(option) {\n return this.isValidOption(option) && this.getOptionLabel(option).toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n }\n onFilterInputChange(event) {\n let value = event.target.value;\n this._filterValue.set(value);\n this.focusedOptionIndex.set(-1);\n this.onFilter.emit({\n originalEvent: event,\n filter: this._filterValue()\n });\n !this.virtualScrollerDisabled && this.scroller.scrollToIndex(0);\n setTimeout(() => {\n this.overlayViewChild.alignOverlay();\n });\n this.cd.markForCheck();\n }\n applyFocus() {\n if (this.editable) DomHandler.findSingle(this.el.nativeElement, '.p-dropdown-label.p-inputtext').focus();else DomHandler.focus(this.focusInputViewChild?.nativeElement);\n }\n /**\n * Applies focus.\n * @group Method\n */\n focus() {\n this.applyFocus();\n }\n /**\n * Clears the model.\n * @group Method\n */\n clear(event) {\n this.updateModel(null, event);\n this.clearEditableLabel();\n this.onModelTouched();\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n this.onClear.emit(event);\n this.resetFilter();\n }\n static ɵfac = function Dropdown_Factory(t) {\n return new (t || Dropdown)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.FilterService), i0.ɵɵdirectiveInject(i3.PrimeNGConfig));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Dropdown,\n selectors: [[\"p-dropdown\"]],\n contentQueries: function Dropdown_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function Dropdown_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n i0.ɵɵviewQuery(_c8, 5);\n i0.ɵɵviewQuery(_c9, 5);\n i0.ɵɵviewQuery(_c10, 5);\n i0.ɵɵviewQuery(_c11, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusInputViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editableInputViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scroller = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overlayViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.firstHiddenFocusableElementOnOverlay = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lastHiddenFocusableElementOnOverlay = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\", \"p-inputwrapper\"],\n hostVars: 4,\n hostBindings: function Dropdown_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"p-inputwrapper-filled\", ctx.filled())(\"p-inputwrapper-focus\", ctx.focused || ctx.overlayVisible);\n }\n },\n inputs: {\n id: \"id\",\n scrollHeight: \"scrollHeight\",\n filter: \"filter\",\n name: \"name\",\n style: \"style\",\n panelStyle: \"panelStyle\",\n styleClass: \"styleClass\",\n panelStyleClass: \"panelStyleClass\",\n readonly: \"readonly\",\n required: \"required\",\n editable: \"editable\",\n appendTo: \"appendTo\",\n tabindex: \"tabindex\",\n placeholder: \"placeholder\",\n filterPlaceholder: \"filterPlaceholder\",\n filterLocale: \"filterLocale\",\n inputId: \"inputId\",\n dataKey: \"dataKey\",\n filterBy: \"filterBy\",\n filterFields: \"filterFields\",\n autofocus: \"autofocus\",\n resetFilterOnHide: \"resetFilterOnHide\",\n dropdownIcon: \"dropdownIcon\",\n optionLabel: \"optionLabel\",\n optionValue: \"optionValue\",\n optionDisabled: \"optionDisabled\",\n optionGroupLabel: \"optionGroupLabel\",\n optionGroupChildren: \"optionGroupChildren\",\n autoDisplayFirst: \"autoDisplayFirst\",\n group: \"group\",\n showClear: \"showClear\",\n emptyFilterMessage: \"emptyFilterMessage\",\n emptyMessage: \"emptyMessage\",\n lazy: \"lazy\",\n virtualScroll: \"virtualScroll\",\n virtualScrollItemSize: \"virtualScrollItemSize\",\n virtualScrollOptions: \"virtualScrollOptions\",\n overlayOptions: \"overlayOptions\",\n ariaFilterLabel: \"ariaFilterLabel\",\n ariaLabel: \"ariaLabel\",\n ariaLabelledBy: \"ariaLabelledBy\",\n filterMatchMode: \"filterMatchMode\",\n maxlength: \"maxlength\",\n tooltip: \"tooltip\",\n tooltipPosition: \"tooltipPosition\",\n tooltipPositionStyle: \"tooltipPositionStyle\",\n tooltipStyleClass: \"tooltipStyleClass\",\n focusOnHover: \"focusOnHover\",\n selectOnFocus: \"selectOnFocus\",\n autoOptionFocus: \"autoOptionFocus\",\n autofocusFilter: \"autofocusFilter\",\n disabled: \"disabled\",\n itemSize: \"itemSize\",\n autoZIndex: \"autoZIndex\",\n baseZIndex: \"baseZIndex\",\n showTransitionOptions: \"showTransitionOptions\",\n hideTransitionOptions: \"hideTransitionOptions\",\n filterValue: \"filterValue\",\n options: \"options\"\n },\n outputs: {\n onChange: \"onChange\",\n onFilter: \"onFilter\",\n onFocus: \"onFocus\",\n onBlur: \"onBlur\",\n onClick: \"onClick\",\n onShow: \"onShow\",\n onHide: \"onHide\",\n onClear: \"onClear\",\n onLazyLoad: \"onLazyLoad\"\n },\n features: [i0.ɵɵProvidersFeature([DROPDOWN_VALUE_ACCESSOR])],\n decls: 11,\n vars: 20,\n consts: [[3, \"ngClass\", \"ngStyle\", \"click\"], [\"container\", \"\"], [\"role\", \"combobox\", \"pAutoFocus\", \"\", 3, \"ngClass\", \"pTooltip\", \"tooltipPosition\", \"positionStyle\", \"tooltipStyleClass\", \"autofocus\", \"focus\", \"blur\", \"keydown\", 4, \"ngIf\"], [\"type\", \"text\", \"aria-haspopup\", \"listbox\", 3, \"ngClass\", \"disabled\", \"input\", \"keydown\", \"focus\", \"blur\", 4, \"ngIf\"], [4, \"ngIf\"], [\"role\", \"button\", \"aria-label\", \"dropdown trigger\", \"aria-haspopup\", \"listbox\", 1, \"p-dropdown-trigger\"], [\"class\", \"p-dropdown-trigger-icon\", 4, \"ngIf\"], [3, \"visible\", \"options\", \"target\", \"appendTo\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"visibleChange\", \"onAnimationStart\", \"onHide\"], [\"overlay\", \"\"], [\"pTemplate\", \"content\"], [\"role\", \"combobox\", \"pAutoFocus\", \"\", 3, \"ngClass\", \"pTooltip\", \"tooltipPosition\", \"positionStyle\", \"tooltipStyleClass\", \"autofocus\", \"focus\", \"blur\", \"keydown\"], [\"focusInput\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [\"defaultPlaceholder\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"type\", \"text\", \"aria-haspopup\", \"listbox\", 3, \"ngClass\", \"disabled\", \"input\", \"keydown\", \"focus\", \"blur\"], [\"editableInput\", \"\"], [3, \"styleClass\", \"click\", 4, \"ngIf\"], [\"class\", \"p-dropdown-clear-icon\", 3, \"click\", 4, \"ngIf\"], [3, \"styleClass\", \"click\"], [1, \"p-dropdown-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\"], [\"class\", \"p-dropdown-trigger-icon\", 3, \"ngClass\", 4, \"ngIf\"], [3, \"styleClass\", 4, \"ngIf\"], [1, \"p-dropdown-trigger-icon\", 3, \"ngClass\"], [3, \"styleClass\"], [1, \"p-dropdown-trigger-icon\"], [3, \"ngClass\", \"ngStyle\"], [\"role\", \"presentation\", 1, \"p-hidden-accessible\", \"p-hidden-focusable\", 3, \"focus\"], [\"firstHiddenFocusableEl\", \"\"], [\"class\", \"p-dropdown-header\", 3, \"click\", 4, \"ngIf\"], [1, \"p-dropdown-items-wrapper\"], [3, \"items\", \"style\", \"itemSize\", \"autoSize\", \"lazy\", \"options\", \"onLazyLoad\", 4, \"ngIf\"], [\"buildInItems\", \"\"], [\"lastHiddenFocusableEl\", \"\"], [1, \"p-dropdown-header\", 3, \"click\"], [\"builtInFilterElement\", \"\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-dropdown-filter-container\"], [\"type\", \"text\", \"autocomplete\", \"off\", 1, \"p-dropdown-filter\", \"p-inputtext\", \"p-component\", 3, \"value\", \"input\", \"keydown\", \"blur\"], [\"filter\", \"\"], [\"class\", \"p-dropdown-filter-icon\", 4, \"ngIf\"], [1, \"p-dropdown-filter-icon\"], [3, \"items\", \"itemSize\", \"autoSize\", \"lazy\", \"options\", \"onLazyLoad\"], [\"scroller\", \"\"], [\"pTemplate\", \"loader\"], [\"role\", \"listbox\", 1, \"p-dropdown-items\", 3, \"ngClass\"], [\"items\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"class\", \"p-dropdown-empty-message\", 3, \"ngStyle\", 4, \"ngIf\"], [\"role\", \"option\", 1, \"p-dropdown-item-group\", 3, \"ngStyle\"], [3, \"id\", \"option\", \"selected\", \"label\", \"disabled\", \"template\", \"focused\", \"ariaPosInset\", \"ariaSetSize\", \"onClick\", \"onMouseEnter\"], [1, \"p-dropdown-empty-message\", 3, \"ngStyle\"], [\"emptyFilter\", \"\"], [\"empty\", \"\"]],\n template: function Dropdown_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵlistener(\"click\", function Dropdown_Template_div_click_0_listener($event) {\n return ctx.onContainerClick($event);\n });\n i0.ɵɵtemplate(2, Dropdown_span_2_Template, 6, 20, \"span\", 2)(3, Dropdown_input_3_Template, 2, 5, \"input\", 3)(4, Dropdown_ng_container_4_Template, 3, 2, \"ng-container\", 4);\n i0.ɵɵelementStart(5, \"div\", 5);\n i0.ɵɵtemplate(6, Dropdown_ng_container_6_Template, 3, 2, \"ng-container\", 4)(7, Dropdown_span_7_Template, 2, 1, \"span\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"p-overlay\", 7, 8);\n i0.ɵɵtwoWayListener(\"visibleChange\", function Dropdown_Template_p_overlay_visibleChange_8_listener($event) {\n i0.ɵɵtwoWayBindingSet(ctx.overlayVisible, $event) || (ctx.overlayVisible = $event);\n return $event;\n });\n i0.ɵɵlistener(\"onAnimationStart\", function Dropdown_Template_p_overlay_onAnimationStart_8_listener($event) {\n return ctx.onOverlayAnimationStart($event);\n })(\"onHide\", function Dropdown_Template_p_overlay_onHide_8_listener() {\n return ctx.hide();\n });\n i0.ɵɵtemplate(10, Dropdown_ng_template_10_Template, 13, 19, \"ng-template\", 9);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.containerClass)(\"ngStyle\", ctx.style);\n i0.ɵɵattribute(\"id\", ctx.id);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.editable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.editable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isVisibleClearIcon);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-expanded\", ctx.overlayVisible)(\"data-pc-section\", \"trigger\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.dropdownIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.dropdownIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵtwoWayProperty(\"visible\", ctx.overlayVisible);\n i0.ɵɵproperty(\"options\", ctx.overlayOptions)(\"target\", \"@parent\")(\"appendTo\", ctx.appendTo)(\"autoZIndex\", ctx.autoZIndex)(\"baseZIndex\", ctx.baseZIndex)(\"showTransitionOptions\", ctx.showTransitionOptions)(\"hideTransitionOptions\", ctx.hideTransitionOptions);\n }\n },\n dependencies: () => [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i4.Overlay, i3.PrimeTemplate, i5.Tooltip, i6.Scroller, i7.AutoFocus, TimesIcon, ChevronDownIcon, SearchIcon, DropdownItem],\n styles: [\"@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return Dropdown;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DropdownModule = /*#__PURE__*/(() => {\n class DropdownModule {\n static ɵfac = function DropdownModule_Factory(t) {\n return new (t || DropdownModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: DropdownModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, OverlayModule, SharedModule, TooltipModule, RippleModule, ScrollerModule, AutoFocusModule, TimesIcon, ChevronDownIcon, SearchIcon, OverlayModule, SharedModule, ScrollerModule]\n });\n }\n return DropdownModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DROPDOWN_VALUE_ACCESSOR, Dropdown, DropdownItem, DropdownModule };\n","import * as i0 from '@angular/core';\nimport { Directive, Optional, HostListener, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i1 from '@angular/forms';\nlet InputText = /*#__PURE__*/(() => {\n class InputText {\n el;\n ngModel;\n cd;\n filled;\n constructor(el, ngModel, cd) {\n this.el = el;\n this.ngModel = ngModel;\n this.cd = cd;\n }\n ngAfterViewInit() {\n this.updateFilledState();\n this.cd.detectChanges();\n }\n ngDoCheck() {\n this.updateFilledState();\n }\n onInput() {\n this.updateFilledState();\n }\n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length || this.ngModel && this.ngModel.model;\n }\n static ɵfac = function InputText_Factory(t) {\n return new (t || InputText)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.NgModel, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InputText,\n selectors: [[\"\", \"pInputText\", \"\"]],\n hostAttrs: [1, \"p-inputtext\", \"p-component\", \"p-element\"],\n hostVars: 2,\n hostBindings: function InputText_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function InputText_input_HostBindingHandler($event) {\n return ctx.onInput($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"p-filled\", ctx.filled);\n }\n }\n });\n }\n return InputText;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet InputTextModule = /*#__PURE__*/(() => {\n class InputTextModule {\n static ɵfac = function InputTextModule_Factory(t) {\n return new (t || InputTextModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: InputTextModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n return InputTextModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { InputText, InputTextModule };\n","import * as i1 from '@angular/common';\nimport { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, Output, ViewChild, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i3 from 'primeng/autofocus';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { DomHandler } from 'primeng/dom';\nimport { TimesIcon } from 'primeng/icons/times';\nimport * as i2 from 'primeng/inputtext';\nimport { InputTextModule } from 'primeng/inputtext';\n\n/*\n Port of jQuery MaskedInput by DigitalBush as a Native Angular2 Component in Typescript without jQuery\n https://github.com/digitalBush/jquery.maskedinput/\n\n Copyright (c) 2007-2014 Josh Bush (digitalbush.com)\n\n Permission is hereby granted, free of charge, to any person\n obtaining a copy of this software and associated documentation\n files (the \"Software\"), to deal in the Software without\n restriction, including without limitation the rights to use,\n copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the\n Software is furnished to do so, subject to the following\n conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n OTHER DEALINGS IN THE SOFTWARE.\n*/\nconst _c0 = [\"input\"];\nfunction InputMask_ng_container_2_TimesIcon_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 5);\n i0.ɵɵlistener(\"click\", function InputMask_ng_container_2_TimesIcon_1_Template_TimesIcon_click_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r4 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r4.clear());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-inputmask-clear-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"clearIcon\");\n }\n}\nfunction InputMask_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) {}\nfunction InputMask_ng_container_2_span_2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, InputMask_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction InputMask_ng_container_2_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 6);\n i0.ɵɵlistener(\"click\", function InputMask_ng_container_2_span_2_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r8 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r8.clear());\n });\n i0.ɵɵtemplate(1, InputMask_ng_container_2_span_2_1_Template, 1, 0, null, 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"clearIcon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.clearIconTemplate);\n }\n}\nfunction InputMask_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, InputMask_ng_container_2_TimesIcon_1_Template, 1, 2, \"TimesIcon\", 3)(2, InputMask_ng_container_2_span_2_Template, 2, 2, \"span\", 4);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.clearIconTemplate);\n }\n}\nconst INPUTMASK_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputMask),\n multi: true\n};\n/**\n * InputMask component is used to enter input in a certain format such as numeric, date, currency, email and phone.\n * @group Components\n */\nlet InputMask = /*#__PURE__*/(() => {\n class InputMask {\n document;\n platformId;\n el;\n cd;\n /**\n * HTML5 input type.\n * @group Props\n */\n type = 'text';\n /**\n * Placeholder character in mask, default is underscore.\n * @group Props\n */\n slotChar = '_';\n /**\n * Clears the incomplete value on blur.\n * @group Props\n */\n autoClear = true;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear = false;\n /**\n * Inline style of the input field.\n * @group Props\n */\n style;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Style class of the input field.\n * @group Props\n */\n styleClass;\n /**\n * Advisory information to display on input.\n * @group Props\n */\n placeholder;\n /**\n * Size of the input field.\n * @group Props\n */\n size;\n /**\n * Maximum number of character allows in the input field.\n * @group Props\n */\n maxlength;\n /**\n * Specifies tab order of the element.\n * @group Props\n */\n tabindex;\n /**\n * Title text of the input text.\n * @group Props\n */\n title;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n ariaLabel;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Used to indicate that user input is required on an element before a form can be submitted.\n * @group Props\n */\n ariaRequired;\n /**\n * When present, it specifies that the element value cannot be altered.\n * @group Props\n */\n disabled;\n /**\n * When present, it specifies that an input field is read-only.\n * @group Props\n */\n readonly;\n /**\n * Defines if ngModel sets the raw unmasked value to bound value or the formatted mask value.\n * @group Props\n */\n unmask;\n /**\n * Name of the input field.\n * @group Props\n */\n name;\n /**\n * When present, it specifies that an input field must be filled out before submitting the form.\n * @group Props\n */\n required;\n /**\n * Regex pattern for alpha characters\n * @group Props\n */\n characterPattern = '[A-Za-z]';\n /**\n * When present, the input gets a focus automatically on load.\n * @group Props\n */\n autoFocus;\n /**\n * Used to define a string that autocomplete attribute the current element.\n * @group Props\n */\n autocomplete;\n /**\n * When present, it specifies that whether to clean buffer value from model.\n * @group Props\n */\n keepBuffer = false;\n /**\n * Mask pattern.\n * @group Props\n */\n get mask() {\n return this._mask;\n }\n set mask(val) {\n this._mask = val;\n this.initMask();\n this.writeValue('');\n this.onModelChange(this.value);\n }\n /**\n * Callback to invoke when the mask is completed.\n * @group Emits\n */\n onComplete = new EventEmitter();\n /**\n * Callback to invoke when the component receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when the component loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke on input.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onInput = new EventEmitter();\n /**\n * Callback to invoke on input key press.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onKeydown = new EventEmitter();\n /**\n * Callback to invoke when input field is cleared.\n * @group Emits\n */\n onClear = new EventEmitter();\n inputViewChild;\n templates;\n clearIconTemplate;\n value;\n _mask;\n onModelChange = () => {};\n onModelTouched = () => {};\n input;\n filled;\n defs;\n tests;\n partialPosition;\n firstNonMaskPos;\n lastRequiredNonMaskPos;\n len;\n oldVal;\n buffer;\n defaultBuffer;\n focusText;\n caretTimeoutId;\n androidChrome = true;\n focused;\n constructor(document, platformId, el, cd) {\n this.document = document;\n this.platformId = platformId;\n this.el = el;\n this.cd = cd;\n }\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n let ua = navigator.userAgent;\n this.androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n }\n this.initMask();\n }\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'clearicon':\n this.clearIconTemplate = item.template;\n break;\n }\n });\n }\n initMask() {\n this.tests = [];\n this.partialPosition = this.mask.length;\n this.len = this.mask.length;\n this.firstNonMaskPos = null;\n this.defs = {\n '9': '[0-9]',\n a: this.characterPattern,\n '*': `${this.characterPattern}|[0-9]`\n };\n let maskTokens = this.mask.split('');\n for (let i = 0; i < maskTokens.length; i++) {\n let c = maskTokens[i];\n if (c == '?') {\n this.len--;\n this.partialPosition = i;\n } else if (this.defs[c]) {\n this.tests.push(new RegExp(this.defs[c]));\n if (this.firstNonMaskPos === null) {\n this.firstNonMaskPos = this.tests.length - 1;\n }\n if (i < this.partialPosition) {\n this.lastRequiredNonMaskPos = this.tests.length - 1;\n }\n } else {\n this.tests.push(null);\n }\n }\n this.buffer = [];\n for (let i = 0; i < maskTokens.length; i++) {\n let c = maskTokens[i];\n if (c != '?') {\n if (this.defs[c]) this.buffer.push(this.getPlaceholder(i));else this.buffer.push(c);\n }\n }\n this.defaultBuffer = this.buffer.join('');\n }\n writeValue(value) {\n this.value = value;\n if (this.inputViewChild && this.inputViewChild.nativeElement) {\n if (this.value == undefined || this.value == null) this.inputViewChild.nativeElement.value = '';else this.inputViewChild.nativeElement.value = this.value;\n this.checkVal();\n this.focusText = this.inputViewChild.nativeElement.value;\n this.updateFilledState();\n }\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n caret(first, last) {\n let range, begin, end;\n if (!this.inputViewChild?.nativeElement.offsetParent || this.inputViewChild.nativeElement !== this.inputViewChild.nativeElement.ownerDocument.activeElement) {\n return;\n }\n if (typeof first == 'number') {\n begin = first;\n end = typeof last === 'number' ? last : begin;\n if (this.inputViewChild.nativeElement.setSelectionRange) {\n this.inputViewChild.nativeElement.setSelectionRange(begin, end);\n } else if (this.inputViewChild.nativeElement['createTextRange']) {\n range = this.inputViewChild.nativeElement['createTextRange']();\n range.collapse(true);\n range.moveEnd('character', end);\n range.moveStart('character', begin);\n range.select();\n }\n } else {\n if (this.inputViewChild.nativeElement.setSelectionRange) {\n begin = this.inputViewChild.nativeElement.selectionStart;\n end = this.inputViewChild.nativeElement.selectionEnd;\n } else if (this.document && this.document['selection'].createRange) {\n range = this.document.createRange();\n begin = 0 - range.duplicate().moveStart('character', -100000);\n end = begin + range.text.length;\n }\n return {\n begin: begin,\n end: end\n };\n }\n }\n isCompleted() {\n let completed;\n for (let i = this.firstNonMaskPos; i <= this.lastRequiredNonMaskPos; i++) {\n if (this.tests[i] && this.buffer[i] === this.getPlaceholder(i)) {\n return false;\n }\n }\n return true;\n }\n getPlaceholder(i) {\n if (i < this.slotChar.length) {\n return this.slotChar.charAt(i);\n }\n return this.slotChar.charAt(0);\n }\n seekNext(pos) {\n while (++pos < this.len && !this.tests[pos]);\n return pos;\n }\n seekPrev(pos) {\n while (--pos >= 0 && !this.tests[pos]);\n return pos;\n }\n shiftL(begin, end) {\n let i, j;\n if (begin < 0) {\n return;\n }\n for (i = begin, j = this.seekNext(end); i < this.len; i++) {\n if (this.tests[i]) {\n if (j < this.len && this.tests[i].test(this.buffer[j])) {\n this.buffer[i] = this.buffer[j];\n this.buffer[j] = this.getPlaceholder(j);\n } else {\n break;\n }\n j = this.seekNext(j);\n }\n }\n this.writeBuffer();\n this.caret(Math.max(this.firstNonMaskPos, begin));\n }\n shiftR(pos) {\n let i, c, j, t;\n for (i = pos, c = this.getPlaceholder(pos); i < this.len; i++) {\n if (this.tests[i]) {\n j = this.seekNext(i);\n t = this.buffer[i];\n this.buffer[i] = c;\n if (j < this.len && this.tests[j].test(t)) {\n c = t;\n } else {\n break;\n }\n }\n }\n }\n handleAndroidInput(e) {\n var curVal = this.inputViewChild?.nativeElement.value;\n var pos = this.caret();\n if (this.oldVal && this.oldVal.length && this.oldVal.length > curVal.length) {\n // a deletion or backspace happened\n this.checkVal(true);\n while (pos.begin > 0 && !this.tests[pos.begin - 1]) pos.begin--;\n if (pos.begin === 0) {\n while (pos.begin < this.firstNonMaskPos && !this.tests[pos.begin]) pos.begin++;\n }\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n this.updateModel(e);\n if (this.isCompleted()) {\n this.onComplete.emit();\n }\n }, 0);\n } else {\n this.checkVal(true);\n while (pos.begin < this.len && !this.tests[pos.begin]) pos.begin++;\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n this.updateModel(e);\n if (this.isCompleted()) {\n this.onComplete.emit();\n }\n }, 0);\n }\n }\n onInputBlur(e) {\n this.focused = false;\n this.onModelTouched();\n if (!this.keepBuffer) {\n this.checkVal();\n }\n this.updateFilledState();\n this.onBlur.emit(e);\n if (this.inputViewChild?.nativeElement.value != this.focusText || this.inputViewChild?.nativeElement.value != this.value) {\n this.updateModel(e);\n let event = this.document.createEvent('HTMLEvents');\n event.initEvent('change', true, false);\n this.inputViewChild?.nativeElement.dispatchEvent(event);\n }\n }\n onInputKeydown(e) {\n if (this.readonly) {\n return;\n }\n let k = e.which || e.keyCode,\n pos,\n begin,\n end;\n let iPhone;\n if (isPlatformBrowser(this.platformId)) {\n iPhone = /iphone/i.test(DomHandler.getUserAgent());\n }\n this.oldVal = this.inputViewChild?.nativeElement.value;\n this.onKeydown.emit(e);\n //backspace, delete, and escape get special treatment\n if (k === 8 || k === 46 || iPhone && k === 127) {\n pos = this.caret();\n begin = pos.begin;\n end = pos.end;\n if (end - begin === 0) {\n begin = k !== 46 ? this.seekPrev(begin) : end = this.seekNext(begin - 1);\n end = k === 46 ? this.seekNext(end) : end;\n }\n this.clearBuffer(begin, end);\n if (this.keepBuffer) {\n this.shiftL(begin, end - 2);\n } else {\n this.shiftL(begin, end - 1);\n }\n this.updateModel(e);\n this.onInput.emit(e);\n e.preventDefault();\n } else if (k === 13) {\n // enter\n this.onInputBlur(e);\n this.updateModel(e);\n } else if (k === 27) {\n // escape\n this.inputViewChild.nativeElement.value = this.focusText;\n this.caret(0, this.checkVal());\n this.updateModel(e);\n e.preventDefault();\n }\n }\n onKeyPress(e) {\n if (this.readonly) {\n return;\n }\n var k = e.which || e.keyCode,\n pos = this.caret(),\n p,\n c,\n next,\n completed;\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32 || k > 34 && k < 41) {\n //Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n this.clearBuffer(pos.begin, pos.end);\n this.shiftL(pos.begin, pos.end - 1);\n }\n p = this.seekNext(pos.begin - 1);\n if (p < this.len) {\n c = String.fromCharCode(k);\n if (this.tests[p].test(c)) {\n this.shiftR(p);\n this.buffer[p] = c;\n this.writeBuffer();\n next = this.seekNext(p);\n if (DomHandler.isClient() && /android/i.test(DomHandler.getUserAgent())) {\n let proxy = () => {\n this.caret(next);\n };\n setTimeout(proxy, 0);\n } else {\n this.caret(next);\n }\n if (pos.begin <= this.lastRequiredNonMaskPos) {\n completed = this.isCompleted();\n }\n this.onInput.emit(e);\n }\n }\n e.preventDefault();\n }\n this.updateModel(e);\n this.updateFilledState();\n if (completed) {\n this.onComplete.emit();\n }\n }\n clearBuffer(start, end) {\n if (!this.keepBuffer) {\n let i;\n for (i = start; i < end && i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n }\n }\n }\n }\n writeBuffer() {\n this.inputViewChild.nativeElement.value = this.buffer.join('');\n }\n checkVal(allow) {\n //try to place characters where they belong\n let test = this.inputViewChild?.nativeElement.value,\n lastMatch = -1,\n i,\n c,\n pos;\n for (i = 0, pos = 0; i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n if (this.tests[i].test(c)) {\n if (!this.keepBuffer) {\n this.buffer[i] = c;\n }\n lastMatch = i;\n break;\n }\n }\n if (pos > test.length) {\n this.clearBuffer(i + 1, this.len);\n break;\n }\n } else {\n if (this.buffer[i] === test.charAt(pos)) {\n pos++;\n }\n if (i < this.partialPosition) {\n lastMatch = i;\n }\n }\n }\n if (allow) {\n this.writeBuffer();\n } else if (lastMatch + 1 < this.partialPosition) {\n if (this.autoClear || this.buffer.join('') === this.defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (this.inputViewChild?.nativeElement.value) this.inputViewChild.nativeElement.value = '';\n this.clearBuffer(0, this.len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n this.writeBuffer();\n }\n } else {\n this.writeBuffer();\n this.inputViewChild.nativeElement.value = this.inputViewChild?.nativeElement.value.substring(0, lastMatch + 1);\n }\n return this.partialPosition ? i : this.firstNonMaskPos;\n }\n onInputFocus(event) {\n if (this.readonly) {\n return;\n }\n this.focused = true;\n clearTimeout(this.caretTimeoutId);\n let pos;\n this.focusText = this.inputViewChild?.nativeElement.value;\n pos = this.keepBuffer ? this.inputViewChild?.nativeElement.value.length : this.checkVal();\n this.caretTimeoutId = setTimeout(() => {\n if (this.inputViewChild?.nativeElement !== this.inputViewChild?.nativeElement.ownerDocument.activeElement) {\n return;\n }\n this.writeBuffer();\n if (pos == this.mask?.replace('?', '').length) {\n this.caret(0, pos);\n } else {\n this.caret(pos);\n }\n }, 10);\n this.onFocus.emit(event);\n }\n onInputChange(event) {\n if (this.androidChrome) this.handleAndroidInput(event);else this.handleInputChange(event);\n this.onInput.emit(event);\n }\n handleInputChange(event) {\n if (this.readonly) {\n return;\n }\n setTimeout(() => {\n var pos = this.checkVal(true);\n this.caret(pos);\n this.updateModel(event);\n if (this.isCompleted()) {\n this.onComplete.emit();\n }\n }, 0);\n }\n getUnmaskedValue() {\n let unmaskedBuffer = [];\n for (let i = 0; i < this.buffer.length; i++) {\n let c = this.buffer[i];\n if (this.tests[i] && c != this.getPlaceholder(i)) {\n unmaskedBuffer.push(c);\n }\n }\n return unmaskedBuffer.join('');\n }\n updateModel(e) {\n const updatedValue = this.unmask ? this.getUnmaskedValue() : e.target.value;\n if (updatedValue !== null || updatedValue !== undefined) {\n this.value = updatedValue;\n this.onModelChange(this.value);\n }\n }\n updateFilledState() {\n this.filled = this.inputViewChild?.nativeElement && this.inputViewChild.nativeElement.value != '';\n }\n focus() {\n this.inputViewChild?.nativeElement.focus();\n }\n clear() {\n this.inputViewChild.nativeElement.value = '';\n this.value = null;\n this.onModelChange(this.value);\n this.onClear.emit();\n }\n static ɵfac = function InputMask_Factory(t) {\n return new (t || InputMask)(i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: InputMask,\n selectors: [[\"p-inputMask\"]],\n contentQueries: function InputMask_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function InputMask_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputViewChild = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n hostVars: 6,\n hostBindings: function InputMask_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"p-inputwrapper-filled\", ctx.filled)(\"p-inputwrapper-focus\", ctx.focused)(\"p-inputmask-clearable\", ctx.showClear && !ctx.disabled);\n }\n },\n inputs: {\n type: \"type\",\n slotChar: \"slotChar\",\n autoClear: \"autoClear\",\n showClear: \"showClear\",\n style: \"style\",\n inputId: \"inputId\",\n styleClass: \"styleClass\",\n placeholder: \"placeholder\",\n size: \"size\",\n maxlength: \"maxlength\",\n tabindex: \"tabindex\",\n title: \"title\",\n ariaLabel: \"ariaLabel\",\n ariaLabelledBy: \"ariaLabelledBy\",\n ariaRequired: \"ariaRequired\",\n disabled: \"disabled\",\n readonly: \"readonly\",\n unmask: \"unmask\",\n name: \"name\",\n required: \"required\",\n characterPattern: \"characterPattern\",\n autoFocus: \"autoFocus\",\n autocomplete: \"autocomplete\",\n keepBuffer: \"keepBuffer\",\n mask: \"mask\"\n },\n outputs: {\n onComplete: \"onComplete\",\n onFocus: \"onFocus\",\n onBlur: \"onBlur\",\n onInput: \"onInput\",\n onKeydown: \"onKeydown\",\n onClear: \"onClear\"\n },\n features: [i0.ɵɵProvidersFeature([INPUTMASK_VALUE_ACCESSOR])],\n decls: 3,\n vars: 21,\n consts: [[\"pInputText\", \"\", \"pAutoFocus\", \"\", 1, \"p-inputmask\", 3, \"ngStyle\", \"ngClass\", \"disabled\", \"readonly\", \"autofocus\", \"focus\", \"blur\", \"keydown\", \"keypress\", \"input\", \"paste\"], [\"input\", \"\"], [4, \"ngIf\"], [3, \"styleClass\", \"click\", 4, \"ngIf\"], [\"class\", \"p-inputmask-clear-icon\", 3, \"click\", 4, \"ngIf\"], [3, \"styleClass\", \"click\"], [1, \"p-inputmask-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\"]],\n template: function InputMask_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"input\", 0, 1);\n i0.ɵɵlistener(\"focus\", function InputMask_Template_input_focus_0_listener($event) {\n return ctx.onInputFocus($event);\n })(\"blur\", function InputMask_Template_input_blur_0_listener($event) {\n return ctx.onInputBlur($event);\n })(\"keydown\", function InputMask_Template_input_keydown_0_listener($event) {\n return ctx.onInputKeydown($event);\n })(\"keypress\", function InputMask_Template_input_keypress_0_listener($event) {\n return ctx.onKeyPress($event);\n })(\"input\", function InputMask_Template_input_input_0_listener($event) {\n return ctx.onInputChange($event);\n })(\"paste\", function InputMask_Template_input_paste_0_listener($event) {\n return ctx.handleInputChange($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, InputMask_ng_container_2_Template, 3, 2, \"ng-container\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", ctx.styleClass)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"autofocus\", ctx.autoFocus);\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"type\", ctx.type)(\"name\", ctx.name)(\"placeholder\", ctx.placeholder)(\"title\", ctx.title)(\"size\", ctx.size)(\"autocomplete\", ctx.autocomplete)(\"maxlength\", ctx.maxlength)(\"tabindex\", ctx.tabindex)(\"aria-label\", ctx.ariaLabel)(\"aria-labelledBy\", ctx.ariaLabelledBy)(\"aria-required\", ctx.ariaRequired)(\"required\", ctx.required)(\"data-pc-name\", \"inputmask\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.value != null && ctx.filled && ctx.showClear && !ctx.disabled);\n }\n },\n dependencies: () => [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.InputText, i3.AutoFocus, TimesIcon],\n styles: [\"@layer primeng{.p-inputmask-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputmask-clearable{position:relative}}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return InputMask;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet InputMaskModule = /*#__PURE__*/(() => {\n class InputMaskModule {\n static ɵfac = function InputMaskModule_Factory(t) {\n return new (t || InputMaskModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: InputMaskModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, InputTextModule, AutoFocusModule, TimesIcon, SharedModule]\n });\n }\n return InputMaskModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INPUTMASK_VALUE_ACCESSOR, InputMask, InputMaskModule };\n","import * as i1 from '@angular/common';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, Component, Inject, Input, ContentChildren, EventEmitter, PLATFORM_ID, ChangeDetectionStrategy, ViewEncapsulation, Output, ViewChild, NgModule } from '@angular/core';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { ChevronLeftIcon } from 'primeng/icons/chevronleft';\nimport { ChevronRightIcon } from 'primeng/icons/chevronright';\nimport { TimesIcon } from 'primeng/icons/times';\nimport * as i3 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport * as i2 from 'primeng/tooltip';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { UniqueComponentId } from 'primeng/utils';\n\n/**\n * TabPanel is a helper component for TabView component.\n * @group Components\n */\nfunction TabPanel_div_0_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction TabPanel_div_0_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TabPanel_div_0_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 3);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.contentTemplate);\n }\n}\nfunction TabPanel_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵprojection(1);\n i0.ɵɵtemplate(2, TabPanel_div_0_ng_container_2_Template, 2, 1, \"ng-container\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"hidden\", !ctx_r0.selected);\n i0.ɵɵattribute(\"id\", ctx_r0.tabView.getTabContentId(ctx_r0.id))(\"aria-hidden\", !ctx_r0.selected)(\"aria-labelledby\", ctx_r0.tabView.getTabHeaderActionId(ctx_r0.id))(\"data-pc-name\", \"tabpanel\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.contentTemplate && (ctx_r0.cache ? ctx_r0.loaded : ctx_r0.selected));\n }\n}\nconst _c0 = [\"*\"];\nconst _c1 = [\"content\"];\nconst _c2 = [\"navbar\"];\nconst _c3 = [\"prevBtn\"];\nconst _c4 = [\"nextBtn\"];\nconst _c5 = [\"inkbar\"];\nconst _c6 = [\"elementToObserve\"];\nfunction TabView_button_3_ChevronLeftIcon_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronLeftIcon\");\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-hidden\", true);\n }\n}\nfunction TabView_button_3_3_ng_template_0_Template(rf, ctx) {}\nfunction TabView_button_3_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TabView_button_3_3_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction TabView_button_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 13, 14);\n i0.ɵɵlistener(\"click\", function TabView_button_3_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r12);\n const ctx_r11 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r11.navBackward());\n });\n i0.ɵɵtemplate(2, TabView_button_3_ChevronLeftIcon_2_Template, 1, 1, \"ChevronLeftIcon\", 15)(3, TabView_button_3_3_Template, 1, 0, null, 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"tabindex\", ctx_r1.tabindex)(\"aria-label\", ctx_r1.prevButtonAriaLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.previousIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.previousIconTemplate);\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_2_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 25);\n }\n if (rf & 2) {\n const tab_r13 = i0.ɵɵnextContext(3).$implicit;\n i0.ɵɵproperty(\"ngClass\", tab_r13.leftIcon);\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) {}\nfunction TabView_ng_template_8_li_0_ng_container_2_span_2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TabView_ng_template_8_li_0_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_2_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 26);\n i0.ɵɵtemplate(1, TabView_ng_template_8_li_0_ng_container_2_span_2_1_Template, 1, 0, null, 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tab_r13 = i0.ɵɵnextContext(3).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", tab_r13.leftIconTemplate);\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_2_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 27);\n }\n if (rf & 2) {\n const tab_r13 = i0.ɵɵnextContext(3).$implicit;\n i0.ɵɵproperty(\"ngClass\", tab_r13.rightIcon);\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_2_span_6_1_ng_template_0_Template(rf, ctx) {}\nfunction TabView_ng_template_8_li_0_ng_container_2_span_6_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TabView_ng_template_8_li_0_ng_container_2_span_6_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_2_span_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 28);\n i0.ɵɵtemplate(1, TabView_ng_template_8_li_0_ng_container_2_span_6_1_Template, 1, 0, null, 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tab_r13 = i0.ɵɵnextContext(3).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", tab_r13.rightIconTemplate);\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TabView_ng_template_8_li_0_ng_container_2_span_1_Template, 1, 1, \"span\", 20)(2, TabView_ng_template_8_li_0_ng_container_2_span_2_Template, 2, 1, \"span\", 21);\n i0.ɵɵelementStart(3, \"span\", 22);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, TabView_ng_template_8_li_0_ng_container_2_span_5_Template, 1, 1, \"span\", 23)(6, TabView_ng_template_8_li_0_ng_container_2_span_6_Template, 2, 1, \"span\", 24);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const tab_r13 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", tab_r13.leftIcon && !tab_r13.leftIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", tab_r13.leftIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(tab_r13.header);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", tab_r13.rightIcon && !tab_r13.rightIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", tab_r13.rightIconTemplate);\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_4_TimesIcon_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r37 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 31);\n i0.ɵɵlistener(\"click\", function TabView_ng_template_8_li_0_ng_container_4_TimesIcon_1_Template_TimesIcon_click_0_listener($event) {\n i0.ɵɵrestoreView(_r37);\n const tab_r13 = i0.ɵɵnextContext(3).$implicit;\n const ctx_r35 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r35.close($event, tab_r13));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-tabview-close\");\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_4_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 32);\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_4_3_ng_template_0_Template(rf, ctx) {}\nfunction TabView_ng_template_8_li_0_ng_container_4_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TabView_ng_template_8_li_0_ng_container_4_3_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction TabView_ng_template_8_li_0_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TabView_ng_template_8_li_0_ng_container_4_TimesIcon_1_Template, 1, 1, \"TimesIcon\", 29)(2, TabView_ng_template_8_li_0_ng_container_4_span_2_Template, 1, 0, \"span\", 30)(3, TabView_ng_template_8_li_0_ng_container_4_3_Template, 1, 0, null, 16);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const tab_r13 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !tab_r13.closeIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", tab_r13.closeIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", tab_r13.closeIconTemplate);\n }\n}\nconst _c7 = (a0, a1) => ({\n \"p-highlight\": a0,\n \"p-disabled\": a1\n});\nfunction TabView_ng_template_8_li_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r42 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 18)(1, \"a\", 19);\n i0.ɵɵlistener(\"click\", function TabView_ng_template_8_li_0_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r42);\n const tab_r13 = i0.ɵɵnextContext().$implicit;\n const ctx_r40 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r40.open($event, tab_r13));\n })(\"keydown\", function TabView_ng_template_8_li_0_Template_a_keydown_1_listener($event) {\n i0.ɵɵrestoreView(_r42);\n const tab_r13 = i0.ɵɵnextContext().$implicit;\n const ctx_r43 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r43.onTabKeyDown($event, tab_r13));\n });\n i0.ɵɵtemplate(2, TabView_ng_template_8_li_0_ng_container_2_Template, 7, 5, \"ng-container\", 15)(3, TabView_ng_template_8_li_0_ng_container_3_Template, 1, 0, \"ng-container\", 16)(4, TabView_ng_template_8_li_0_ng_container_4_Template, 4, 3, \"ng-container\", 15);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r45 = i0.ɵɵnextContext();\n const tab_r13 = ctx_r45.$implicit;\n const i_r14 = ctx_r45.index;\n const ctx_r15 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(tab_r13.headerStyleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(19, _c7, tab_r13.selected, tab_r13.disabled))(\"ngStyle\", tab_r13.headerStyle);\n i0.ɵɵattribute(\"data-p-disabled\", tab_r13.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"pTooltip\", tab_r13.tooltip)(\"tooltipPosition\", tab_r13.tooltipPosition)(\"positionStyle\", tab_r13.tooltipPositionStyle)(\"tooltipStyleClass\", tab_r13.tooltipStyleClass);\n i0.ɵɵattribute(\"id\", ctx_r15.getTabHeaderActionId(tab_r13.id))(\"aria-controls\", ctx_r15.getTabContentId(tab_r13.id))(\"aria-selected\", tab_r13.selected)(\"tabindex\", tab_r13.disabled || !tab_r13.selected ? \"-1\" : ctx_r15.tabindex)(\"aria-disabled\", tab_r13.disabled)(\"data-pc-index\", i_r14)(\"data-pc-section\", \"headeraction\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !tab_r13.headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", tab_r13.headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", tab_r13.closable);\n }\n}\nfunction TabView_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TabView_ng_template_8_li_0_Template, 5, 22, \"li\", 17);\n }\n if (rf & 2) {\n const tab_r13 = ctx.$implicit;\n i0.ɵɵproperty(\"ngIf\", !tab_r13.closed);\n }\n}\nfunction TabView_button_11_ChevronRightIcon_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronRightIcon\");\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-hidden\", true);\n }\n}\nfunction TabView_button_11_3_ng_template_0_Template(rf, ctx) {}\nfunction TabView_button_11_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TabView_button_11_3_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction TabView_button_11_Template(rf, ctx) {\n if (rf & 1) {\n const _r51 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 33, 34);\n i0.ɵɵlistener(\"click\", function TabView_button_11_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r51);\n const ctx_r50 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r50.navForward());\n });\n i0.ɵɵtemplate(2, TabView_button_11_ChevronRightIcon_2_Template, 1, 1, \"ChevronRightIcon\", 15)(3, TabView_button_11_3_Template, 1, 0, null, 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"tabindex\", ctx_r6.tabindex)(\"aria-label\", ctx_r6.nextButtonAriaLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r6.nextIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.nextIconTemplate);\n }\n}\nconst _c8 = a1 => ({\n \"p-tabview p-component\": true,\n \"p-tabview-scrollable\": a1\n});\nlet TabPanel = /*#__PURE__*/(() => {\n class TabPanel {\n el;\n viewContainer;\n cd;\n /**\n * Defines if tab can be removed.\n * @group Props\n */\n closable = false;\n /**\n * Inline style of the tab header.\n * @group Props\n */\n get headerStyle() {\n return this._headerStyle;\n }\n set headerStyle(headerStyle) {\n this._headerStyle = headerStyle;\n this.tabView.cd.markForCheck();\n }\n /**\n * Style class of the tab header.\n * @group Props\n */\n get headerStyleClass() {\n return this._headerStyleClass;\n }\n set headerStyleClass(headerStyleClass) {\n this._headerStyleClass = headerStyleClass;\n this.tabView.cd.markForCheck();\n }\n /**\n * Whether a lazy loaded panel should avoid getting loaded again on reselection.\n * @group Props\n */\n cache = true;\n /**\n * Advisory information to display in a tooltip on hover.\n * @group Props\n */\n tooltip;\n /**\n * Position of the tooltip.\n * @group Props\n */\n tooltipPosition = 'top';\n /**\n * Type of CSS position.\n * @group Props\n */\n tooltipPositionStyle = 'absolute';\n /**\n * Style class of the tooltip.\n * @group Props\n */\n tooltipStyleClass;\n /**\n * Defines if tab is active.\n * @defaultValue false\n * @group Props\n */\n get selected() {\n return !!this._selected;\n }\n set selected(val) {\n this._selected = val;\n if (!this.loaded) {\n this.cd.detectChanges();\n }\n if (val) this.loaded = true;\n }\n /**\n * When true, tab cannot be activated.\n * @defaultValue false\n * @group Props\n */\n get disabled() {\n return !!this._disabled;\n }\n set disabled(disabled) {\n this._disabled = disabled;\n this.tabView.cd.markForCheck();\n }\n /**\n * Title of the tabPanel.\n * @group Props\n */\n get header() {\n return this._header;\n }\n set header(header) {\n this._header = header;\n // We have to wait for the rendering and then retrieve the actual size element from the DOM.\n // in future `Promise.resolve` can be changed to `queueMicrotask` (if ie11 support will be dropped)\n Promise.resolve().then(() => {\n this.tabView.updateInkBar();\n this.tabView.cd.markForCheck();\n });\n }\n /**\n * Left icon of the tabPanel.\n * @group Props\n * @deprecated since v15.4.2, use `lefticon` template instead.\n */\n get leftIcon() {\n return this._leftIcon;\n }\n set leftIcon(leftIcon) {\n this._leftIcon = leftIcon;\n this.tabView.cd.markForCheck();\n }\n /**\n * Left icon of the tabPanel.\n * @group Props\n * @deprecated since v15.4.2, use `righticon` template instead.\n */\n get rightIcon() {\n return this._rightIcon;\n }\n set rightIcon(rightIcon) {\n this._rightIcon = rightIcon;\n this.tabView.cd.markForCheck();\n }\n templates;\n closed = false;\n view = null;\n _headerStyle;\n _headerStyleClass;\n _selected;\n _disabled;\n _header;\n _leftIcon;\n _rightIcon = undefined;\n loaded = false;\n id;\n contentTemplate;\n headerTemplate;\n leftIconTemplate;\n rightIconTemplate;\n closeIconTemplate;\n tabView;\n constructor(tabView, el, viewContainer, cd) {\n this.el = el;\n this.viewContainer = viewContainer;\n this.cd = cd;\n this.tabView = tabView;\n this.id = UniqueComponentId();\n }\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'content':\n this.contentTemplate = item.template;\n break;\n case 'righticon':\n this.rightIconTemplate = item.template;\n break;\n case 'lefticon':\n this.leftIconTemplate = item.template;\n break;\n case 'closeicon':\n this.closeIconTemplate = item.template;\n break;\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n ngOnDestroy() {\n this.view = null;\n }\n static ɵfac = function TabPanel_Factory(t) {\n return new (t || TabPanel)(i0.ɵɵdirectiveInject(forwardRef(() => TabView)), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TabPanel,\n selectors: [[\"p-tabPanel\"]],\n contentQueries: function TabPanel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n closable: \"closable\",\n headerStyle: \"headerStyle\",\n headerStyleClass: \"headerStyleClass\",\n cache: \"cache\",\n tooltip: \"tooltip\",\n tooltipPosition: \"tooltipPosition\",\n tooltipPositionStyle: \"tooltipPositionStyle\",\n tooltipStyleClass: \"tooltipStyleClass\",\n selected: \"selected\",\n disabled: \"disabled\",\n header: \"header\",\n leftIcon: \"leftIcon\",\n rightIcon: \"rightIcon\"\n },\n ngContentSelectors: _c0,\n decls: 1,\n vars: 1,\n consts: [[\"class\", \"p-tabview-panel\", \"role\", \"tabpanel\", 3, \"hidden\", 4, \"ngIf\"], [\"role\", \"tabpanel\", 1, \"p-tabview-panel\", 3, \"hidden\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\"]],\n template: function TabPanel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, TabPanel_div_0_Template, 3, 6, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.closed);\n }\n },\n dependencies: [i1.NgIf, i1.NgTemplateOutlet],\n encapsulation: 2\n });\n }\n return TabPanel;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * TabView is a container component to group content with tabs.\n * @group Components\n */\nlet TabView = /*#__PURE__*/(() => {\n class TabView {\n platformId;\n el;\n cd;\n renderer;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Whether tab close is controlled at onClose event or not.\n * @defaultValue false\n * @group Props\n */\n controlClose;\n /**\n * When enabled displays buttons at each side of the tab headers to scroll the tab list.\n * @defaultValue false\n * @group Props\n */\n scrollable;\n /**\n * Index of the active tab to change selected tab programmatically.\n * @group Props\n */\n get activeIndex() {\n return this._activeIndex;\n }\n set activeIndex(val) {\n this._activeIndex = val;\n if (this.preventActiveIndexPropagation) {\n this.preventActiveIndexPropagation = false;\n return;\n }\n if (this.tabs && this.tabs.length && this._activeIndex != null && this.tabs.length > this._activeIndex) {\n this.findSelectedTab().selected = false;\n this.tabs[this._activeIndex].selected = true;\n this.tabChanged = true;\n this.updateScrollBar(val);\n }\n }\n /**\n * When enabled, the focused tab is activated.\n * @group Props\n */\n selectOnFocus = false;\n /**\n * Used to define a string aria label attribute the forward navigation button.\n * @group Props\n */\n nextButtonAriaLabel;\n /**\n * Used to define a string aria label attribute the backward navigation button.\n * @group Props\n */\n prevButtonAriaLabel;\n /**\n * When activated, navigation buttons will automatically hide or show based on the available space within the container.\n * @group Props\n */\n autoHideButtons = true;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = 0;\n /**\n * Callback to invoke on tab change.\n * @param {TabViewChangeEvent} event - Custom tab change event\n * @group Emits\n */\n onChange = new EventEmitter();\n /**\n * Callback to invoke on tab close.\n * @param {TabViewCloseEvent} event - Custom tab close event\n * @group Emits\n */\n onClose = new EventEmitter();\n /**\n * Callback to invoke on the active tab change.\n * @param {number} index - New active index\n * @group Emits\n */\n activeIndexChange = new EventEmitter();\n content;\n navbar;\n prevBtn;\n nextBtn;\n inkbar;\n tabPanels;\n templates;\n initialized;\n tabs;\n _activeIndex;\n preventActiveIndexPropagation;\n tabChanged;\n backwardIsDisabled = true;\n forwardIsDisabled = false;\n tabChangesSubscription;\n nextIconTemplate;\n previousIconTemplate;\n resizeObserver;\n container;\n list;\n buttonVisible;\n elementToObserve;\n constructor(platformId, el, cd, renderer) {\n this.platformId = platformId;\n this.el = el;\n this.cd = cd;\n this.renderer = renderer;\n }\n ngAfterContentInit() {\n this.initTabs();\n this.tabChangesSubscription = this.tabPanels.changes.subscribe(_ => {\n this.initTabs();\n this.refreshButtonState();\n });\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'previousicon':\n this.previousIconTemplate = item.template;\n break;\n case 'nexticon':\n this.nextIconTemplate = item.template;\n break;\n }\n });\n }\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.autoHideButtons) {\n this.bindResizeObserver();\n }\n }\n }\n bindResizeObserver() {\n this.container = DomHandler.findSingle(this.el.nativeElement, '[data-pc-section=\"navcontent\"]');\n this.list = DomHandler.findSingle(this.el.nativeElement, '[data-pc-section=\"nav\"]');\n this.resizeObserver = new ResizeObserver(() => {\n if (this.list.offsetWidth >= this.container.offsetWidth) {\n this.buttonVisible = true;\n } else {\n this.buttonVisible = false;\n }\n this.updateButtonState();\n this.cd.detectChanges();\n });\n this.resizeObserver.observe(this.container);\n }\n unbindResizeObserver() {\n this.resizeObserver.unobserve(this.elementToObserve.nativeElement);\n this.resizeObserver = null;\n }\n ngAfterViewChecked() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.tabChanged) {\n this.updateInkBar();\n this.tabChanged = false;\n }\n }\n }\n ngOnDestroy() {\n if (this.tabChangesSubscription) {\n this.tabChangesSubscription.unsubscribe();\n }\n if (this.resizeObserver) {\n this.unbindResizeObserver();\n }\n }\n getTabHeaderActionId(tabId) {\n return `${tabId}_header_action`;\n }\n getTabContentId(tabId) {\n return `${tabId}_content`;\n }\n initTabs() {\n this.tabs = this.tabPanels.toArray();\n let selectedTab = this.findSelectedTab();\n if (!selectedTab && this.tabs.length) {\n if (this.activeIndex != null && this.tabs.length > this.activeIndex) this.tabs[this.activeIndex].selected = true;else this.tabs[0].selected = true;\n this.tabChanged = true;\n }\n this.cd.markForCheck();\n }\n onTabKeyDown(event, tab) {\n switch (event.code) {\n case 'ArrowLeft':\n this.onTabArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onTabArrowRightKey(event);\n break;\n case 'Home':\n this.onTabHomeKey(event);\n break;\n case 'End':\n this.onTabEndKey(event);\n break;\n case 'PageDown':\n this.onTabEndKey(event);\n break;\n case 'PageUp':\n this.onTabHomeKey(event);\n break;\n case 'Enter':\n case 'Space':\n this.open(event, tab);\n break;\n default:\n break;\n }\n }\n onTabArrowLeftKey(event) {\n const prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);\n const index = DomHandler.getAttribute(prevHeaderAction, 'data-pc-index');\n prevHeaderAction ? this.changeFocusedTab(event, prevHeaderAction, index) : this.onTabEndKey(event);\n event.preventDefault();\n }\n onTabArrowRightKey(event) {\n const nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);\n const index = DomHandler.getAttribute(nextHeaderAction, 'data-pc-index');\n nextHeaderAction ? this.changeFocusedTab(event, nextHeaderAction, index) : this.onTabHomeKey(event);\n event.preventDefault();\n }\n onTabHomeKey(event) {\n const firstHeaderAction = this.findFirstHeaderAction();\n const index = DomHandler.getAttribute(firstHeaderAction, 'data-pc-index');\n this.changeFocusedTab(event, firstHeaderAction, index);\n event.preventDefault();\n }\n onTabEndKey(event) {\n const lastHeaderAction = this.findLastHeaderAction();\n const index = DomHandler.getAttribute(lastHeaderAction, 'data-pc-index');\n this.changeFocusedTab(event, lastHeaderAction, index);\n event.preventDefault();\n }\n changeFocusedTab(event, element, index) {\n if (element) {\n DomHandler.focus(element);\n element.scrollIntoView({\n block: 'nearest'\n });\n if (this.selectOnFocus) {\n const tab = this.tabs[index];\n this.open(event, tab);\n }\n }\n }\n findNextHeaderAction(tabElement, selfCheck = false) {\n const headerElement = selfCheck ? tabElement : tabElement.nextElementSibling;\n return headerElement ? DomHandler.getAttribute(headerElement, 'data-p-disabled') || DomHandler.getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findNextHeaderAction(headerElement) : DomHandler.findSingle(headerElement, '[data-pc-section=\"headeraction\"]') : null;\n }\n findPrevHeaderAction(tabElement, selfCheck = false) {\n const headerElement = selfCheck ? tabElement : tabElement.previousElementSibling;\n return headerElement ? DomHandler.getAttribute(headerElement, 'data-p-disabled') || DomHandler.getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findPrevHeaderAction(headerElement) : DomHandler.findSingle(headerElement, '[data-pc-section=\"headeraction\"]') : null;\n }\n findFirstHeaderAction() {\n const firstEl = this.navbar.nativeElement.firstElementChild;\n return this.findNextHeaderAction(firstEl, true);\n }\n findLastHeaderAction() {\n const lastEl = this.navbar.nativeElement.lastElementChild;\n const lastHeaderAction = DomHandler.getAttribute(lastEl, 'data-pc-section') === 'inkbar' ? lastEl.previousElementSibling : lastEl;\n return this.findPrevHeaderAction(lastHeaderAction, true);\n }\n open(event, tab) {\n if (tab.disabled) {\n if (event) {\n event.preventDefault();\n }\n return;\n }\n if (!tab.selected) {\n let selectedTab = this.findSelectedTab();\n if (selectedTab) {\n selectedTab.selected = false;\n }\n this.tabChanged = true;\n tab.selected = true;\n let selectedTabIndex = this.findTabIndex(tab);\n this.preventActiveIndexPropagation = true;\n this.activeIndexChange.emit(selectedTabIndex);\n this.onChange.emit({\n originalEvent: event,\n index: selectedTabIndex\n });\n this.updateScrollBar(selectedTabIndex);\n }\n if (event) {\n event.preventDefault();\n }\n }\n close(event, tab) {\n if (this.controlClose) {\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab),\n close: () => {\n this.closeTab(tab);\n }\n });\n } else {\n this.closeTab(tab);\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab)\n });\n }\n }\n closeTab(tab) {\n if (tab.disabled) {\n return;\n }\n if (tab.selected) {\n this.tabChanged = true;\n tab.selected = false;\n for (let i = 0; i < this.tabs.length; i++) {\n let tabPanel = this.tabs[i];\n if (!tabPanel.closed && !tab.disabled) {\n tabPanel.selected = true;\n break;\n }\n }\n }\n tab.closed = true;\n }\n findSelectedTab() {\n for (let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].selected) {\n return this.tabs[i];\n }\n }\n return null;\n }\n findTabIndex(tab) {\n let index = -1;\n for (let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i] == tab) {\n index = i;\n break;\n }\n }\n return index;\n }\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n updateInkBar() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.navbar) {\n const tabHeader = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight');\n if (!tabHeader) {\n return;\n }\n this.inkbar.nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px';\n this.inkbar.nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';\n }\n }\n }\n updateScrollBar(index) {\n let tabHeader = this.navbar.nativeElement.children[index];\n if (tabHeader) {\n tabHeader.scrollIntoView({\n block: 'nearest'\n });\n }\n }\n updateButtonState() {\n const content = this.content.nativeElement;\n const {\n scrollLeft,\n scrollWidth\n } = content;\n const width = DomHandler.getWidth(content);\n this.backwardIsDisabled = scrollLeft === 0;\n this.forwardIsDisabled = Math.round(scrollLeft) === scrollWidth - width;\n }\n refreshButtonState() {\n this.container = DomHandler.findSingle(this.el.nativeElement, '[data-pc-section=\"navcontent\"]');\n this.list = DomHandler.findSingle(this.el.nativeElement, '[data-pc-section=\"nav\"]');\n if (this.list.offsetWidth >= this.container.offsetWidth) {\n if (this.list.offsetWidth >= this.container.offsetWidth) {\n this.buttonVisible = true;\n } else {\n this.buttonVisible = false;\n }\n this.updateButtonState();\n this.cd.markForCheck();\n }\n }\n onScroll(event) {\n this.scrollable && this.updateButtonState();\n event.preventDefault();\n }\n getVisibleButtonWidths() {\n return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => el ? acc + DomHandler.getWidth(el) : acc, 0);\n }\n navBackward() {\n const content = this.content.nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n }\n navForward() {\n const content = this.content.nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n }\n static ɵfac = function TabView_Factory(t) {\n return new (t || TabView)(i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TabView,\n selectors: [[\"p-tabView\"]],\n contentQueries: function TabView_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TabPanel, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabPanels = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function TabView_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(_c2, 5);\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(_c6, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.navbar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.prevBtn = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextBtn = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inkbar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.elementToObserve = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n style: \"style\",\n styleClass: \"styleClass\",\n controlClose: \"controlClose\",\n scrollable: \"scrollable\",\n activeIndex: \"activeIndex\",\n selectOnFocus: \"selectOnFocus\",\n nextButtonAriaLabel: \"nextButtonAriaLabel\",\n prevButtonAriaLabel: \"prevButtonAriaLabel\",\n autoHideButtons: \"autoHideButtons\",\n tabindex: \"tabindex\"\n },\n outputs: {\n onChange: \"onChange\",\n onClose: \"onClose\",\n activeIndexChange: \"activeIndexChange\"\n },\n ngContentSelectors: _c0,\n decls: 14,\n vars: 13,\n consts: [[3, \"ngClass\", \"ngStyle\"], [1, \"p-tabview-nav-container\"], [\"elementToObserve\", \"\"], [\"class\", \"p-tabview-nav-prev p-tabview-nav-btn p-link\", \"type\", \"button\", \"pRipple\", \"\", 3, \"click\", 4, \"ngIf\"], [1, \"p-tabview-nav-content\", 3, \"scroll\"], [\"content\", \"\"], [\"role\", \"tablist\", 1, \"p-tabview-nav\"], [\"navbar\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"role\", \"presentation\", \"aria-hidden\", \"true\", 1, \"p-tabview-ink-bar\"], [\"inkbar\", \"\"], [\"class\", \"p-tabview-nav-next p-tabview-nav-btn p-link\", \"type\", \"button\", \"pRipple\", \"\", 3, \"click\", 4, \"ngIf\"], [1, \"p-tabview-panels\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-tabview-nav-prev\", \"p-tabview-nav-btn\", \"p-link\", 3, \"click\"], [\"prevBtn\", \"\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\"], [\"role\", \"presentation\", 3, \"ngClass\", \"ngStyle\", \"class\", 4, \"ngIf\"], [\"role\", \"presentation\", 3, \"ngClass\", \"ngStyle\"], [\"role\", \"tab\", \"pRipple\", \"\", 1, \"p-tabview-nav-link\", 3, \"pTooltip\", \"tooltipPosition\", \"positionStyle\", \"tooltipStyleClass\", \"click\", \"keydown\"], [\"class\", \"p-tabview-left-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"p-tabview-left-icon\", 4, \"ngIf\"], [1, \"p-tabview-title\"], [\"class\", \"p-tabview-right-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"p-tabview-right-icon\", 4, \"ngIf\"], [1, \"p-tabview-left-icon\", 3, \"ngClass\"], [1, \"p-tabview-left-icon\"], [1, \"p-tabview-right-icon\", 3, \"ngClass\"], [1, \"p-tabview-right-icon\"], [3, \"styleClass\", \"click\", 4, \"ngIf\"], [\"class\", \"tab.closeIconTemplate\", 4, \"ngIf\"], [3, \"styleClass\", \"click\"], [1, \"tab.closeIconTemplate\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-tabview-nav-next\", \"p-tabview-nav-btn\", \"p-link\", 3, \"click\"], [\"nextBtn\", \"\"]],\n template: function TabView_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1, 2);\n i0.ɵɵtemplate(3, TabView_button_3_Template, 4, 4, \"button\", 3);\n i0.ɵɵelementStart(4, \"div\", 4, 5);\n i0.ɵɵlistener(\"scroll\", function TabView_Template_div_scroll_4_listener($event) {\n return ctx.onScroll($event);\n });\n i0.ɵɵelementStart(6, \"ul\", 6, 7);\n i0.ɵɵtemplate(8, TabView_ng_template_8_Template, 1, 1, \"ng-template\", 8);\n i0.ɵɵelement(9, \"li\", 9, 10);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(11, TabView_button_11_Template, 4, 4, \"button\", 11);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"div\", 12);\n i0.ɵɵprojection(13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(11, _c8, ctx.scrollable))(\"ngStyle\", ctx.style);\n i0.ɵɵattribute(\"data-pc-name\", \"tabview\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.scrollable && !ctx.backwardIsDisabled && ctx.autoHideButtons);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"navcontent\");\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-pc-section\", \"nav\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.tabs);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"inkbar\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.scrollable && !ctx.forwardIsDisabled && ctx.buttonVisible);\n }\n },\n dependencies: () => [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.Tooltip, i3.Ripple, TimesIcon, ChevronLeftIcon, ChevronRightIcon],\n styles: [\"@layer primeng{.p-tabview-nav-container{position:relative}.p-tabview-scrollable .p-tabview-nav-container{overflow:hidden}.p-tabview-nav-content{overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior:contain auto}.p-tabview-nav{display:inline-flex;min-width:100%;margin:0;padding:0;list-style-type:none;flex:1 1 auto}.p-tabview-nav-link{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;position:relative;text-decoration:none;overflow:hidden}.p-tabview-ink-bar{display:none;z-index:1}.p-tabview-nav-link:focus{z-index:1}.p-tabview-title{line-height:1;white-space:nowrap}.p-tabview-nav-btn{position:absolute;top:0;z-index:2;height:100%;display:flex;align-items:center;justify-content:center}.p-tabview-nav-prev{left:0}.p-tabview-nav-next{right:0}.p-tabview-nav-content::-webkit-scrollbar{display:none}.p-tabview-close{z-index:1}}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return TabView;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TabViewModule = /*#__PURE__*/(() => {\n class TabViewModule {\n static ɵfac = function TabViewModule_Factory(t) {\n return new (t || TabViewModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TabViewModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, SharedModule, TooltipModule, RippleModule, TimesIcon, ChevronLeftIcon, ChevronRightIcon, SharedModule]\n });\n }\n return TabViewModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TabPanel, TabView, TabViewModule };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nlet CheckIcon = /*#__PURE__*/(() => {\n class CheckIcon extends BaseIcon {\n static ɵfac = /* @__PURE__ */(() => {\n let ɵCheckIcon_BaseFactory;\n return function CheckIcon_Factory(t) {\n return (ɵCheckIcon_BaseFactory || (ɵCheckIcon_BaseFactory = i0.ɵɵgetInheritedFactory(CheckIcon)))(t || CheckIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CheckIcon,\n selectors: [[\"CheckIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 5,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z\", \"fill\", \"currentColor\"]],\n template: function CheckIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n }\n },\n encapsulation: 2\n });\n }\n return CheckIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CheckIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nimport { UniqueComponentId } from 'primeng/utils';\nlet ExclamationTriangleIcon = /*#__PURE__*/(() => {\n class ExclamationTriangleIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + UniqueComponentId() + ')';\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵExclamationTriangleIcon_BaseFactory;\n return function ExclamationTriangleIcon_Factory(t) {\n return (ɵExclamationTriangleIcon_BaseFactory || (ɵExclamationTriangleIcon_BaseFactory = i0.ɵɵgetInheritedFactory(ExclamationTriangleIcon)))(t || ExclamationTriangleIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ExclamationTriangleIcon,\n selectors: [[\"ExclamationTriangleIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 8,\n vars: 7,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M13.4018 13.1893H0.598161C0.49329 13.189 0.390283 13.1615 0.299143 13.1097C0.208003 13.0578 0.131826 12.9832 0.0780112 12.8932C0.0268539 12.8015 0 12.6982 0 12.5931C0 12.4881 0.0268539 12.3848 0.0780112 12.293L6.47985 1.08982C6.53679 1.00399 6.61408 0.933574 6.70484 0.884867C6.7956 0.836159 6.897 0.810669 7 0.810669C7.103 0.810669 7.2044 0.836159 7.29516 0.884867C7.38592 0.933574 7.46321 1.00399 7.52015 1.08982L13.922 12.293C13.9731 12.3848 14 12.4881 14 12.5931C14 12.6982 13.9731 12.8015 13.922 12.8932C13.8682 12.9832 13.792 13.0578 13.7009 13.1097C13.6097 13.1615 13.5067 13.189 13.4018 13.1893ZM1.63046 11.989H12.3695L7 2.59425L1.63046 11.989Z\", \"fill\", \"currentColor\"], [\"d\", \"M6.99996 8.78801C6.84143 8.78594 6.68997 8.72204 6.57787 8.60993C6.46576 8.49782 6.40186 8.34637 6.39979 8.18784V5.38703C6.39979 5.22786 6.46302 5.0752 6.57557 4.96265C6.68813 4.85009 6.84078 4.78686 6.99996 4.78686C7.15914 4.78686 7.31179 4.85009 7.42435 4.96265C7.5369 5.0752 7.60013 5.22786 7.60013 5.38703V8.18784C7.59806 8.34637 7.53416 8.49782 7.42205 8.60993C7.30995 8.72204 7.15849 8.78594 6.99996 8.78801Z\", \"fill\", \"currentColor\"], [\"d\", \"M6.99996 11.1887C6.84143 11.1866 6.68997 11.1227 6.57787 11.0106C6.46576 10.8985 6.40186 10.7471 6.39979 10.5885V10.1884C6.39979 10.0292 6.46302 9.87658 6.57557 9.76403C6.68813 9.65147 6.84078 9.58824 6.99996 9.58824C7.15914 9.58824 7.31179 9.65147 7.42435 9.76403C7.5369 9.87658 7.60013 10.0292 7.60013 10.1884V10.5885C7.59806 10.7471 7.53416 10.8985 7.42205 11.0106C7.30995 11.1227 7.15849 11.1866 6.99996 11.1887Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]],\n template: function ExclamationTriangleIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1)(3, \"path\", 2)(4, \"path\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"defs\")(6, \"clipPath\", 4);\n i0.ɵɵelement(7, \"rect\", 5);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n }\n },\n encapsulation: 2\n });\n }\n return ExclamationTriangleIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ExclamationTriangleIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nimport { UniqueComponentId } from 'primeng/utils';\nlet InfoCircleIcon = /*#__PURE__*/(() => {\n class InfoCircleIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + UniqueComponentId() + ')';\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵInfoCircleIcon_BaseFactory;\n return function InfoCircleIcon_Factory(t) {\n return (ɵInfoCircleIcon_BaseFactory || (ɵInfoCircleIcon_BaseFactory = i0.ɵɵgetInheritedFactory(InfoCircleIcon)))(t || InfoCircleIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: InfoCircleIcon,\n selectors: [[\"InfoCircleIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 7,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M3.11101 12.8203C4.26215 13.5895 5.61553 14 7 14C8.85652 14 10.637 13.2625 11.9497 11.9497C13.2625 10.637 14 8.85652 14 7C14 5.61553 13.5895 4.26215 12.8203 3.11101C12.0511 1.95987 10.9579 1.06266 9.67879 0.532846C8.3997 0.00303296 6.99224 -0.13559 5.63437 0.134506C4.2765 0.404603 3.02922 1.07129 2.05026 2.05026C1.07129 3.02922 0.404603 4.2765 0.134506 5.63437C-0.13559 6.99224 0.00303296 8.3997 0.532846 9.67879C1.06266 10.9579 1.95987 12.0511 3.11101 12.8203ZM3.75918 2.14976C4.71846 1.50879 5.84628 1.16667 7 1.16667C8.5471 1.16667 10.0308 1.78125 11.1248 2.87521C12.2188 3.96918 12.8333 5.45291 12.8333 7C12.8333 8.15373 12.4912 9.28154 11.8502 10.2408C11.2093 11.2001 10.2982 11.9478 9.23232 12.3893C8.16642 12.8308 6.99353 12.9463 5.86198 12.7212C4.73042 12.4962 3.69102 11.9406 2.87521 11.1248C2.05941 10.309 1.50384 9.26958 1.27876 8.13803C1.05367 7.00647 1.16919 5.83358 1.61071 4.76768C2.05222 3.70178 2.79989 2.79074 3.75918 2.14976ZM7.00002 4.8611C6.84594 4.85908 6.69873 4.79698 6.58977 4.68801C6.48081 4.57905 6.4187 4.43185 6.41669 4.27776V3.88888C6.41669 3.73417 6.47815 3.58579 6.58754 3.4764C6.69694 3.367 6.84531 3.30554 7.00002 3.30554C7.15473 3.30554 7.3031 3.367 7.4125 3.4764C7.52189 3.58579 7.58335 3.73417 7.58335 3.88888V4.27776C7.58134 4.43185 7.51923 4.57905 7.41027 4.68801C7.30131 4.79698 7.1541 4.85908 7.00002 4.8611ZM7.00002 10.6945C6.84594 10.6925 6.69873 10.6304 6.58977 10.5214C6.48081 10.4124 6.4187 10.2652 6.41669 10.1111V6.22225C6.41669 6.06754 6.47815 5.91917 6.58754 5.80977C6.69694 5.70037 6.84531 5.63892 7.00002 5.63892C7.15473 5.63892 7.3031 5.70037 7.4125 5.80977C7.52189 5.91917 7.58335 6.06754 7.58335 6.22225V10.1111C7.58134 10.2652 7.51923 10.4124 7.41027 10.5214C7.30131 10.6304 7.1541 10.6925 7.00002 10.6945Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]],\n template: function InfoCircleIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n }\n },\n encapsulation: 2\n });\n }\n return InfoCircleIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { InfoCircleIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nimport { UniqueComponentId } from 'primeng/utils';\nlet TimesCircleIcon = /*#__PURE__*/(() => {\n class TimesCircleIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + UniqueComponentId() + ')';\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵTimesCircleIcon_BaseFactory;\n return function TimesCircleIcon_Factory(t) {\n return (ɵTimesCircleIcon_BaseFactory || (ɵTimesCircleIcon_BaseFactory = i0.ɵɵgetInheritedFactory(TimesCircleIcon)))(t || TimesCircleIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TimesCircleIcon,\n selectors: [[\"TimesCircleIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 7,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M7 14C5.61553 14 4.26215 13.5895 3.11101 12.8203C1.95987 12.0511 1.06266 10.9579 0.532846 9.67879C0.00303296 8.3997 -0.13559 6.99224 0.134506 5.63437C0.404603 4.2765 1.07129 3.02922 2.05026 2.05026C3.02922 1.07129 4.2765 0.404603 5.63437 0.134506C6.99224 -0.13559 8.3997 0.00303296 9.67879 0.532846C10.9579 1.06266 12.0511 1.95987 12.8203 3.11101C13.5895 4.26215 14 5.61553 14 7C14 8.85652 13.2625 10.637 11.9497 11.9497C10.637 13.2625 8.85652 14 7 14ZM7 1.16667C5.84628 1.16667 4.71846 1.50879 3.75918 2.14976C2.79989 2.79074 2.05222 3.70178 1.61071 4.76768C1.16919 5.83358 1.05367 7.00647 1.27876 8.13803C1.50384 9.26958 2.05941 10.309 2.87521 11.1248C3.69102 11.9406 4.73042 12.4962 5.86198 12.7212C6.99353 12.9463 8.16642 12.8308 9.23232 12.3893C10.2982 11.9478 11.2093 11.2001 11.8502 10.2408C12.4912 9.28154 12.8333 8.15373 12.8333 7C12.8333 5.45291 12.2188 3.96918 11.1248 2.87521C10.0308 1.78125 8.5471 1.16667 7 1.16667ZM4.66662 9.91668C4.58998 9.91704 4.51404 9.90209 4.44325 9.87271C4.37246 9.84333 4.30826 9.8001 4.2544 9.74557C4.14516 9.6362 4.0838 9.48793 4.0838 9.33335C4.0838 9.17876 4.14516 9.0305 4.2544 8.92113L6.17553 7L4.25443 5.07891C4.15139 4.96832 4.09529 4.82207 4.09796 4.67094C4.10063 4.51982 4.16185 4.37563 4.26872 4.26876C4.3756 4.16188 4.51979 4.10066 4.67091 4.09799C4.82204 4.09532 4.96829 4.15142 5.07887 4.25446L6.99997 6.17556L8.92106 4.25446C9.03164 4.15142 9.1779 4.09532 9.32903 4.09799C9.48015 4.10066 9.62434 4.16188 9.73121 4.26876C9.83809 4.37563 9.89931 4.51982 9.90198 4.67094C9.90464 4.82207 9.84855 4.96832 9.74551 5.07891L7.82441 7L9.74554 8.92113C9.85478 9.0305 9.91614 9.17876 9.91614 9.33335C9.91614 9.48793 9.85478 9.6362 9.74554 9.74557C9.69168 9.8001 9.62748 9.84333 9.55669 9.87271C9.4859 9.90209 9.40996 9.91704 9.33332 9.91668C9.25668 9.91704 9.18073 9.90209 9.10995 9.87271C9.03916 9.84333 8.97495 9.8001 8.9211 9.74557L6.99997 7.82444L5.07884 9.74557C5.02499 9.8001 4.96078 9.84333 4.88999 9.87271C4.81921 9.90209 4.74326 9.91704 4.66662 9.91668Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]],\n template: function TimesCircleIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n }\n },\n encapsulation: 2\n });\n }\n return TimesCircleIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TimesCircleIcon };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport { CheckIcon } from 'primeng/icons/check';\nimport { ExclamationTriangleIcon } from 'primeng/icons/exclamationtriangle';\nimport { InfoCircleIcon } from 'primeng/icons/infocircle';\nimport { TimesCircleIcon } from 'primeng/icons/timescircle';\n\n/**\n * Message groups a collection of contents in tabs.\n * @group Components\n */\nfunction UIMessage_CheckIcon_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"CheckIcon\", 4);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-inline-message-icon\");\n }\n}\nfunction UIMessage_InfoCircleIcon_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"InfoCircleIcon\", 4);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-inline-message-icon\");\n }\n}\nfunction UIMessage_TimesCircleIcon_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"TimesCircleIcon\", 4);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-inline-message-icon\");\n }\n}\nfunction UIMessage_ExclamationTriangleIcon_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"ExclamationTriangleIcon\", 4);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-inline-message-icon\");\n }\n}\nfunction UIMessage_div_5_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 6);\n }\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"innerHTML\", ctx_r7.text, i0.ɵɵsanitizeHtml);\n }\n}\nfunction UIMessage_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, UIMessage_div_5_span_1_Template, 1, 1, \"span\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r4.escape);\n }\n}\nfunction UIMessage_ng_template_6_span_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r8 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r8.text);\n }\n}\nfunction UIMessage_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, UIMessage_ng_template_6_span_0_Template, 2, 1, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r5.escape);\n }\n}\nconst _c0 = (a0, a1, a2, a3, a4) => ({\n \"p-inline-message-info\": a0,\n \"p-inline-message-warn\": a1,\n \"p-inline-message-error\": a2,\n \"p-inline-message-success\": a3,\n \"p-inline-message-icon-only\": a4\n});\nlet UIMessage = /*#__PURE__*/(() => {\n class UIMessage {\n /**\n * Severity level of the message.\n * @group Props\n */\n severity;\n /**\n * Text content.\n * @group Props\n */\n text;\n /**\n * Whether displaying messages would be escaped or not.\n * @group Props\n */\n escape = true;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n get icon() {\n if (this.severity && this.severity.trim()) {\n return this.severity;\n } else {\n return 'info';\n }\n }\n static ɵfac = function UIMessage_Factory(t) {\n return new (t || UIMessage)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: UIMessage,\n selectors: [[\"p-message\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n severity: \"severity\",\n text: \"text\",\n escape: \"escape\",\n style: \"style\",\n styleClass: \"styleClass\"\n },\n decls: 8,\n vars: 16,\n consts: [[\"aria-live\", \"polite\", 1, \"p-inline-message\", \"p-component\", \"p-inline-message\", 3, \"ngStyle\", \"ngClass\"], [3, \"styleClass\", 4, \"ngIf\"], [4, \"ngIf\", \"ngIfElse\"], [\"escapeOut\", \"\"], [3, \"styleClass\"], [\"class\", \"p-inline-message-text\", 3, \"innerHTML\", 4, \"ngIf\"], [1, \"p-inline-message-text\", 3, \"innerHTML\"], [\"class\", \"p-inline-message-text\", 4, \"ngIf\"], [1, \"p-inline-message-text\"]],\n template: function UIMessage_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, UIMessage_CheckIcon_1_Template, 1, 1, \"CheckIcon\", 1)(2, UIMessage_InfoCircleIcon_2_Template, 1, 1, \"InfoCircleIcon\", 1)(3, UIMessage_TimesCircleIcon_3_Template, 1, 1, \"TimesCircleIcon\", 1)(4, UIMessage_ExclamationTriangleIcon_4_Template, 1, 1, \"ExclamationTriangleIcon\", 1)(5, UIMessage_div_5_Template, 2, 1, \"div\", 2)(6, UIMessage_ng_template_6_Template, 1, 1, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r6 = i0.ɵɵreference(7);\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", i0.ɵɵpureFunction5(10, _c0, ctx.severity === \"info\", ctx.severity === \"warn\", ctx.severity === \"error\", ctx.severity === \"success\", ctx.text == null));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.icon === \"success\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.icon === \"info\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.icon === \"error\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.icon === \"warn\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.escape)(\"ngIfElse\", _r6);\n }\n },\n dependencies: () => [i1.NgClass, i1.NgIf, i1.NgStyle, CheckIcon, InfoCircleIcon, TimesCircleIcon, ExclamationTriangleIcon],\n styles: [\"@layer primeng{.p-inline-message{display:inline-flex;align-items:center;justify-content:center;vertical-align:top}.p-inline-message-icon-only .p-inline-message-text{visibility:hidden;width:0}.p-fluid .p-inline-message{display:flex}}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return UIMessage;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MessageModule = /*#__PURE__*/(() => {\n class MessageModule {\n static ɵfac = function MessageModule_Factory(t) {\n return new (t || MessageModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MessageModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, CheckIcon, InfoCircleIcon, TimesCircleIcon, ExclamationTriangleIcon]\n });\n }\n return MessageModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MessageModule, UIMessage };\n","import { DomHandler } from 'primeng/dom';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, ElementRef, Directive, Input, HostListener, NgModule } from '@angular/core';\n\n/**\n * Focus Trap keeps focus within a certain DOM element while tabbing.\n * @group Components\n */\nlet FocusTrap = /*#__PURE__*/(() => {\n class FocusTrap {\n /**\n * When set as true, focus wouldn't be managed.\n * @group Props\n */\n pFocusTrapDisabled = false;\n host = inject(ElementRef);\n onkeydown(e) {\n if (this.pFocusTrapDisabled !== true) {\n e.preventDefault();\n const focusableElement = DomHandler.getNextFocusableElement(this.host.nativeElement, e.shiftKey);\n if (focusableElement) {\n focusableElement.focus();\n focusableElement.select?.();\n }\n }\n }\n static ɵfac = function FocusTrap_Factory(t) {\n return new (t || FocusTrap)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FocusTrap,\n selectors: [[\"\", \"pFocusTrap\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function FocusTrap_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.tab\", function FocusTrap_keydown_tab_HostBindingHandler($event) {\n return ctx.onkeydown($event);\n })(\"keydown.shift.tab\", function FocusTrap_keydown_shift_tab_HostBindingHandler($event) {\n return ctx.onkeydown($event);\n });\n }\n },\n inputs: {\n pFocusTrapDisabled: \"pFocusTrapDisabled\"\n }\n });\n }\n return FocusTrap;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FocusTrapModule = /*#__PURE__*/(() => {\n class FocusTrapModule {\n static ɵfac = function FocusTrapModule_Factory(t) {\n return new (t || FocusTrapModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FocusTrapModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n return FocusTrapModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FocusTrap, FocusTrapModule };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nimport { UniqueComponentId } from 'primeng/utils';\nlet WindowMaximizeIcon = /*#__PURE__*/(() => {\n class WindowMaximizeIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + UniqueComponentId() + ')';\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵWindowMaximizeIcon_BaseFactory;\n return function WindowMaximizeIcon_Factory(t) {\n return (ɵWindowMaximizeIcon_BaseFactory || (ɵWindowMaximizeIcon_BaseFactory = i0.ɵɵgetInheritedFactory(WindowMaximizeIcon)))(t || WindowMaximizeIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: WindowMaximizeIcon,\n selectors: [[\"WindowMaximizeIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 7,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]],\n template: function WindowMaximizeIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n }\n },\n encapsulation: 2\n });\n }\n return WindowMaximizeIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { WindowMaximizeIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nimport { UniqueComponentId } from 'primeng/utils';\nlet WindowMinimizeIcon = /*#__PURE__*/(() => {\n class WindowMinimizeIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + UniqueComponentId() + ')';\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵWindowMinimizeIcon_BaseFactory;\n return function WindowMinimizeIcon_Factory(t) {\n return (ɵWindowMinimizeIcon_BaseFactory || (ɵWindowMinimizeIcon_BaseFactory = i0.ɵɵgetInheritedFactory(WindowMinimizeIcon)))(t || WindowMinimizeIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: WindowMinimizeIcon,\n selectors: [[\"WindowMinimizeIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 7,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]],\n template: function WindowMinimizeIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n }\n },\n encapsulation: 2\n });\n }\n return WindowMinimizeIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { WindowMinimizeIcon };\n","import * as i1 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Directive, Inject, Input, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Output, ContentChildren, NgModule } from '@angular/core';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\nimport * as i2 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport { ObjectUtils } from 'primeng/utils';\nfunction Button_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Button_ng_container_3_ng_container_1_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 8);\n }\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(\"p-button-loading-icon pi-spin \" + ctx_r7.loadingIcon);\n i0.ɵɵproperty(\"ngClass\", ctx_r7.iconClass());\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"loadingicon\");\n }\n}\nfunction Button_ng_container_3_ng_container_1_SpinnerIcon_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"SpinnerIcon\", 9);\n }\n if (rf & 2) {\n const ctx_r8 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"styleClass\", ctx_r8.spinnerIconClass())(\"spin\", true);\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"loadingicon\");\n }\n}\nfunction Button_ng_container_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Button_ng_container_3_ng_container_1_span_1_Template, 1, 5, \"span\", 6)(2, Button_ng_container_3_ng_container_1_SpinnerIcon_2_Template, 1, 4, \"SpinnerIcon\", 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r5.loadingIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r5.loadingIcon);\n }\n}\nfunction Button_ng_container_3_span_2_1_ng_template_0_Template(rf, ctx) {}\nfunction Button_ng_container_3_span_2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Button_ng_container_3_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Button_ng_container_3_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵtemplate(1, Button_ng_container_3_span_2_1_Template, 1, 0, null, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r6.iconClass());\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"loadingicon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.loadingIconTemplate);\n }\n}\nfunction Button_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Button_ng_container_3_ng_container_1_Template, 3, 2, \"ng-container\", 2)(2, Button_ng_container_3_span_2_Template, 2, 4, \"span\", 5);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.loadingIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.loadingIconTemplate);\n }\n}\nfunction Button_ng_container_4_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 8);\n }\n if (rf & 2) {\n const ctx_r11 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(ctx_r11.icon);\n i0.ɵɵproperty(\"ngClass\", ctx_r11.iconClass());\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n }\n}\nfunction Button_ng_container_4_span_2_1_ng_template_0_Template(rf, ctx) {}\nfunction Button_ng_container_4_span_2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Button_ng_container_4_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n }\n if (rf & 2) {\n const ctx_r13 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngIf\", !ctx_r13.icon);\n }\n}\nfunction Button_ng_container_4_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 8);\n i0.ɵɵtemplate(1, Button_ng_container_4_span_2_1_Template, 1, 1, null, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r12 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r12.iconClass());\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r12.iconTemplate);\n }\n}\nfunction Button_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Button_ng_container_4_span_1_Template, 1, 4, \"span\", 6)(2, Button_ng_container_4_span_2_Template, 2, 3, \"span\", 11);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.icon && !ctx_r2.iconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.icon && ctx_r2.iconTemplate);\n }\n}\nfunction Button_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"aria-hidden\", ctx_r3.icon && !ctx_r3.label)(\"data-pc-section\", \"label\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r3.label);\n }\n}\nfunction Button_span_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r4.badgeClass);\n i0.ɵɵproperty(\"ngClass\", ctx_r4.badgeStyleClass());\n i0.ɵɵattribute(\"data-pc-section\", \"badge\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r4.badge);\n }\n}\nconst _c0 = [\"*\"];\nconst INTERNAL_BUTTON_CLASSES = {\n button: 'p-button',\n component: 'p-component',\n iconOnly: 'p-button-icon-only',\n disabled: 'p-disabled',\n loading: 'p-button-loading',\n labelOnly: 'p-button-loading-label-only'\n};\n/**\n * Button directive is an extension to button component.\n * @group Components\n */\nlet ButtonDirective = /*#__PURE__*/(() => {\n class ButtonDirective {\n el;\n document;\n /**\n * Position of the icon.\n * @group Props\n */\n iconPos = 'left';\n /**\n * Uses to pass attributes to the loading icon's DOM element.\n * @group Props\n */\n loadingIcon;\n /**\n * Text of the button.\n * @group Props\n */\n get label() {\n return this._label;\n }\n set label(val) {\n this._label = val;\n if (this.initialized) {\n this.updateLabel();\n this.updateIcon();\n this.setStyleClass();\n }\n }\n /**\n * Name of the icon.\n * @group Props\n */\n get icon() {\n return this._icon;\n }\n set icon(val) {\n this._icon = val;\n if (this.initialized) {\n this.updateIcon();\n this.setStyleClass();\n }\n }\n /**\n * Whether the button is in loading state.\n * @group Props\n */\n get loading() {\n return this._loading;\n }\n set loading(val) {\n this._loading = val;\n if (this.initialized) {\n this.updateIcon();\n this.setStyleClass();\n }\n }\n _label;\n _icon;\n _loading = false;\n initialized;\n get htmlElement() {\n return this.el.nativeElement;\n }\n _internalClasses = Object.values(INTERNAL_BUTTON_CLASSES);\n spinnerIcon = ``;\n constructor(el, document) {\n this.el = el;\n this.document = document;\n }\n ngAfterViewInit() {\n DomHandler.addMultipleClasses(this.htmlElement, this.getStyleClass().join(' '));\n this.createIcon();\n this.createLabel();\n this.initialized = true;\n }\n getStyleClass() {\n const styleClass = [INTERNAL_BUTTON_CLASSES.button, INTERNAL_BUTTON_CLASSES.component];\n if (this.icon && !this.label && ObjectUtils.isEmpty(this.htmlElement.textContent)) {\n styleClass.push(INTERNAL_BUTTON_CLASSES.iconOnly);\n }\n if (this.loading) {\n styleClass.push(INTERNAL_BUTTON_CLASSES.disabled, INTERNAL_BUTTON_CLASSES.loading);\n if (!this.icon && this.label) {\n styleClass.push(INTERNAL_BUTTON_CLASSES.labelOnly);\n }\n if (this.icon && !this.label && !ObjectUtils.isEmpty(this.htmlElement.textContent)) {\n styleClass.push(INTERNAL_BUTTON_CLASSES.iconOnly);\n }\n }\n return styleClass;\n }\n setStyleClass() {\n const styleClass = this.getStyleClass();\n this.htmlElement.classList.remove(...this._internalClasses);\n this.htmlElement.classList.add(...styleClass);\n }\n createLabel() {\n const created = DomHandler.findSingle(this.htmlElement, '.p-button-label');\n if (!created && this.label) {\n let labelElement = this.document.createElement('span');\n if (this.icon && !this.label) {\n labelElement.setAttribute('aria-hidden', 'true');\n }\n labelElement.className = 'p-button-label';\n labelElement.appendChild(this.document.createTextNode(this.label));\n this.htmlElement.appendChild(labelElement);\n }\n }\n createIcon() {\n const created = DomHandler.findSingle(this.htmlElement, '.p-button-icon');\n if (!created && (this.icon || this.loading)) {\n let iconElement = this.document.createElement('span');\n iconElement.className = 'p-button-icon';\n iconElement.setAttribute('aria-hidden', 'true');\n let iconPosClass = this.label ? 'p-button-icon-' + this.iconPos : null;\n if (iconPosClass) {\n DomHandler.addClass(iconElement, iconPosClass);\n }\n let iconClass = this.getIconClass();\n if (iconClass) {\n DomHandler.addMultipleClasses(iconElement, iconClass);\n }\n if (!this.loadingIcon && this.loading) {\n iconElement.innerHTML = this.spinnerIcon;\n }\n this.htmlElement.insertBefore(iconElement, this.htmlElement.firstChild);\n }\n }\n updateLabel() {\n let labelElement = DomHandler.findSingle(this.htmlElement, '.p-button-label');\n if (!this.label) {\n labelElement && this.htmlElement.removeChild(labelElement);\n return;\n }\n labelElement ? labelElement.textContent = this.label : this.createLabel();\n }\n updateIcon() {\n let iconElement = DomHandler.findSingle(this.htmlElement, '.p-button-icon');\n let labelElement = DomHandler.findSingle(this.htmlElement, '.p-button-label');\n if (this.loading && !this.loadingIcon && iconElement) {\n iconElement.innerHTML = this.spinnerIcon;\n } else if (iconElement?.innerHTML) {\n iconElement.innerHTML = '';\n }\n if (iconElement) {\n if (this.iconPos) {\n iconElement.className = 'p-button-icon ' + (labelElement ? 'p-button-icon-' + this.iconPos : '') + ' ' + this.getIconClass();\n } else {\n iconElement.className = 'p-button-icon ' + this.getIconClass();\n }\n } else {\n this.createIcon();\n }\n }\n getIconClass() {\n return this.loading ? 'p-button-loading-icon ' + (this.loadingIcon ? this.loadingIcon : 'p-icon') : this.icon || 'p-hidden';\n }\n ngOnDestroy() {\n this.initialized = false;\n }\n static ɵfac = function ButtonDirective_Factory(t) {\n return new (t || ButtonDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ButtonDirective,\n selectors: [[\"\", \"pButton\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n iconPos: \"iconPos\",\n loadingIcon: \"loadingIcon\",\n label: \"label\",\n icon: \"icon\",\n loading: \"loading\"\n }\n });\n }\n return ButtonDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Button is an extension to standard button element with icons and theming.\n * @group Components\n */\nlet Button = /*#__PURE__*/(() => {\n class Button {\n el;\n /**\n * Type of the button.\n * @group Props\n */\n type = 'button';\n /**\n * Position of the icon.\n * @group Props\n */\n iconPos = 'left';\n /**\n * Name of the icon.\n * @group Props\n */\n icon;\n /**\n * Value of the badge.\n * @group Props\n */\n badge;\n /**\n * Uses to pass attributes to the label's DOM element.\n * @group Props\n */\n label;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Whether the button is in loading state.\n * @group Props\n */\n loading = false;\n /**\n * Icon to display in loading state.\n * @group Props\n */\n loadingIcon;\n /**\n * Add a shadow to indicate elevation.\n * @group Props\n */\n raised = false;\n /**\n * Add a circular border radius to the button.\n * @group Props\n */\n rounded = false;\n /**\n * Add a textual class to the button without a background initially.\n * @group Props\n */\n text = false;\n /**\n * Add a plain textual class to the button without a background initially.\n * @group Props\n */\n plain = false;\n /**\n * Defines the style of the button.\n * @group Props\n */\n severity;\n /**\n * Add a border class without a background initially.\n * @group Props\n */\n outlined = false;\n /**\n * Add a link style to the button.\n * @group Props\n */\n link = false;\n /**\n * Defines the size of the button.\n * @group Props\n */\n size;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Style class of the badge.\n * @group Props\n */\n badgeClass;\n /**\n * Used to define a string that autocomplete attribute the current element.\n * @group Props\n */\n ariaLabel;\n /**\n * Callback to execute when button is clicked.\n * This event is intended to be used with the