import {
    d as at,
    e as ot,
    h as lt
} from "./chunk-2F2DP6Z5.js";
import {
    B as R,
    C as ve,
    Ca as Je,
    D as Ue,
    F as ze,
    Ha as Xe,
    J as Ke,
    K as We,
    Ka as et,
    L as le,
    La as me,
    M as Qe,
    Ma as N,
    N as qe,
    Qa as tt,
    R as Q,
    S as E,
    Ta as it,
    V as ye,
    Va as nt,
    Wa as rt,
    Ya as ie,
    _ as ce,
    _a as st,
    bb as pe,
    c as Ne,
    db as ct,
    ib as dt,
    ka as je,
    na as Ze,
    ra as Ge,
    za as de
} from "./chunk-XPOKHL3M.js";
import {
    c as Ae,
    d as oe,
    f as X,
    g as Re,
    h as se
} from "./chunk-Z33DM23Z.js";
import {
    k as Oe,
    m as $e,
    n as Ye,
    r as He,
    s as Le,
    y as Be
} from "./chunk-OYJWBUYU.js";
import {
    $b as ge,
    Ab as c,
    Eb as B,
    Jb as m,
    Kb as _,
    Lb as M,
    Mb as O,
    Nb as $,
    Ob as G,
    Pb as S,
    Pc as D,
    Qc as J,
    X as Ce,
    Y as De,
    Ya as l,
    Yb as x,
    Z as Te,
    Zb as o,
    _b as Ve,
    ca as Ie,
    cb as ke,
    cc as Y,
    dc as he,
    ec as V,
    fc as P,
    ic as Pe,
    jc as C,
    ka as d,
    kc as A,
    la as p,
    lb as j,
    lc as K,
    ma as te,
    mb as Se,
    mc as Ee,
    na as q,
    pb as Z,
    rb as h,
    sc as Fe,
    ta as H,
    ua as Me,
    uc as W,
    vc as ae,
    zb as T
} from "./chunk-SSI6PFOR.js";
var pt = (() => {
    class n extends ie {
        static\ u0275fac = (() => {
            let e;
            return function(i) {
                return (e || (e = q(n)))(i || n)
            }
        })();
        static\ u0275cmp = j({
            type: n,
            selectors: [
                ["CalendarIcon"]
            ],
            features: [Z],
            decls: 2,
            vars: 5,
            consts: [
                ["width", "14", "height", "14", "viewBox", "0 0 14 14", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"],
                ["d", "M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z", "fill", "currentColor"]
            ],
            template: function(t, i) {
                t & 1 && (te(), m(0, "svg", 0), M(1, "path", 1), _()), t & 2 && (B(i.getClassNames()), T("aria-label", i.ariaLabel)("aria-hidden", i.ariaHidden)("role", i.role))
            },
            encapsulation: 2
        })
    }
    return n
})();
var ut = (() => {
    class n extends ie {
        static\ u0275fac = (() => {
            let e;
            return function(i) {
                return (e || (e = q(n)))(i || n)
            }
        })();
        static\ u0275cmp = j({
            type: n,
            selectors: [
                ["ChevronLeftIcon"]
            ],
            features: [Z],
            decls: 2,
            vars: 5,
            consts: [
                ["width", "14", "height", "14", "viewBox", "0 0 14 14", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"],
                ["d", "M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z", "fill", "currentColor"]
            ],
            template: function(t, i) {
                t & 1 && (te(), m(0, "svg", 0), M(1, "path", 1), _()), t & 2 && (B(i.getClassNames()), T("aria-label", i.ariaLabel)("aria-hidden", i.ariaHidden)("role", i.role))
            },
            encapsulation: 2
        })
    }
    return n
})();
var _t = (() => {
    class n extends ie {
        static\ u0275fac = (() => {
            let e;
            return function(i) {
                return (e || (e = q(n)))(i || n)
            }
        })();
        static\ u0275cmp = j({
            type: n,
            selectors: [
                ["ChevronUpIcon"]
            ],
            features: [Z],
            decls: 2,
            vars: 5,
            consts: [
                ["width", "14", "height", "14", "viewBox", "0 0 14 14", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"],
                ["d", "M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z", "fill", "currentColor"]
            ],
            template: function(t, i) {
                t & 1 && (te(), m(0, "svg", 0), M(1, "path", 1), _()), t & 2 && (B(i.getClassNames()), T("aria-label", i.ariaLabel)("aria-hidden", i.ariaHidden)("role", i.role))
            },
            encapsulation: 2
        })
    }
    return n
})();
var kt = ["date"],
    gt = ["header"],
    vt = ["footer"],
    yt = ["disabledDate"],
    wt = ["decade"],
    bt = ["previousicon"],
    xt = ["nexticon"],
    Ct = ["triggericon"],
    Dt = ["clearicon"],
    Tt = ["decrementicon"],
    It = ["incrementicon"],
    Mt = ["inputicon"],
    St = ["container"],
    Vt = ["inputfield"],
    Pt = ["contentWrapper"],
    Et = [
        [
            ["p-header"]
        ],
        [
            ["p-footer"]
        ]
    ],
    Ft = ["p-header", "p-footer"],
    Ot = n => ({
        clickCallBack: n
    }),
    $t = n => ({
        "p-datepicker-input-icon": n
    }),
    Yt = (n, s) => ({
        showTransitionParams: n,
        hideTransitionParams: s
    }),
    Ht = n => ({
        value: "visible",
        params: n
    }),
    ht = n => ({
        visibility: n
    }),
    be = n => ({
        $implicit: n
    }),
    Lt = (n, s) => ({
        "p-datepicker-day-cell": !0,
        "p-datepicker-other-month": n,
        "p-datepicker-today": s
    }),
    Bt = (n, s) => ({
        "p-datepicker-month": !0,
        "p-datepicker-month-selected": n,
        "p-disabled": s
    }),
    At = (n, s) => ({
        "p-datepicker-year": !0,
        "p-datepicker-year-selected": n,
        "p-disabled": s
    });

function Rt(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "TimesIcon", 11), x("click", function() {
            d(e);
            let i = o(3);
            return p(i.clear())
        }), _()
    }
    n & 2 && B("p-datepicker-clear-icon")
}

function Nt(n, s) {}

function Ut(n, s) {
    n & 1 && h(0, Nt, 0, 0, "ng-template")
}

function zt(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "span", 12), x("click", function() {
            d(e);
            let i = o(3);
            return p(i.clear())
        }), h(1, Ut, 1, 0, null, 13), _()
    }
    if (n & 2) {
        let e = o(3);
        l(), c("ngTemplateOutlet", e.clearIconTemplate || e._clearIconTemplate)
    }
}

function Kt(n, s) {
    if (n & 1 && (O(0), h(1, Rt, 1, 2, "TimesIcon", 9)(2, zt, 2, 1, "span", 10), $()), n & 2) {
        let e = o(2);
        l(), c("ngIf", !e.clearIconTemplate && !e._clearIconTemplate), l(), c("ngIf", e.clearIconTemplate || e._clearIconTemplate)
    }
}

function Wt(n, s) {
    if (n & 1 && M(0, "span", 16), n & 2) {
        let e = o(3);
        c("ngClass", e.icon)
    }
}

function Qt(n, s) {
    n & 1 && M(0, "CalendarIcon")
}

function qt(n, s) {}

function jt(n, s) {
    n & 1 && h(0, qt, 0, 0, "ng-template")
}

function Zt(n, s) {
    if (n & 1 && (O(0), h(1, Qt, 1, 0, "CalendarIcon", 7)(2, jt, 1, 0, null, 13), $()), n & 2) {
        let e = o(3);
        l(), c("ngIf", !e.triggerIconTemplate && !e._triggerIconTemplate), l(), c("ngTemplateOutlet", e.triggerIconTemplate || e._triggerIconTemplate)
    }
}

function Gt(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "button", 14), x("click", function(i) {
            d(e), o();
            let r = Pe(1),
                a = o();
            return p(a.onButtonClick(i, r))
        }), h(1, Wt, 1, 1, "span", 15)(2, Zt, 3, 2, "ng-container", 7), _()
    }
    if (n & 2) {
        let e, t = o(2);
        c("disabled", t.disabled), T("aria-label", t.iconButtonAriaLabel)("aria-expanded", (e = t.overlayVisible) !== null && e !== void 0 ? e : !1)("aria-controls", t.overlayVisible ? t.panelId : null), l(), c("ngIf", t.icon), l(), c("ngIf", !t.icon)
    }
}

function Jt(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "CalendarIcon", 20), x("click", function(i) {
            d(e);
            let r = o(3);
            return p(r.onButtonClick(i))
        }), _()
    }
    if (n & 2) {
        let e = o(3);
        c("ngClass", W(1, $t, e.showOnFocus))
    }
}

function Xt(n, s) {
    n & 1 && G(0)
}

function ei(n, s) {
    if (n & 1 && (O(0), m(1, "span", 17), h(2, Jt, 1, 3, "CalendarIcon", 18)(3, Xt, 1, 0, "ng-container", 19), _(), $()), n & 2) {
        let e = o(2);
        l(2), c("ngIf", !e.inputIconTemplate && !e._inputIconTemplate), l(), c("ngTemplateOutlet", e.inputIconTemplate || e._inputIconTemplate)("ngTemplateOutletContext", W(3, Ot, e.onButtonClick.bind(e)))
    }
}

function ti(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "input", 6, 1), x("focus", function(i) {
            d(e);
            let r = o();
            return p(r.onInputFocus(i))
        })("keydown", function(i) {
            d(e);
            let r = o();
            return p(r.onInputKeydown(i))
        })("click", function() {
            d(e);
            let i = o();
            return p(i.onInputClick())
        })("blur", function(i) {
            d(e);
            let r = o();
            return p(r.onInputBlur(i))
        })("input", function(i) {
            d(e);
            let r = o();
            return p(r.onUserInput(i))
        }), _(), h(2, Kt, 3, 2, "ng-container", 7)(3, Gt, 3, 6, "button", 8)(4, ei, 4, 5, "ng-container", 7)
    }
    if (n & 2) {
        let e, t = o();
        B(t.inputStyleClass), c("pSize", t.size)("value", t.inputFieldValue)("readonly", t.readonlyInput)("ngStyle", t.inputStyle)("ngClass", "p-datepicker-input")("placeholder", t.placeholder || "")("disabled", t.disabled)("pAutoFocus", t.autofocus)("variant", t.variant)("fluid", t.hasFluid), T("id", t.inputId)("name", t.name)("required", t.required)("aria-required", t.required)("aria-expanded", (e = t.overlayVisible) !== null && e !== void 0 ? e : !1)("aria-controls", t.overlayVisible ? t.panelId : null)("aria-labelledby", t.ariaLabelledBy)("aria-label", t.ariaLabel)("tabindex", t.tabindex)("inputmode", t.touchUI ? "off" : null), l(2), c("ngIf", t.showClear && !t.disabled && t.value != null), l(), c("ngIf", t.showIcon && t.iconDisplay === "button"), l(), c("ngIf", t.iconDisplay === "input" && t.showIcon)
    }
}

function ii(n, s) {
    n & 1 && G(0)
}

function ni(n, s) {
    n & 1 && M(0, "ChevronLeftIcon")
}

function ri(n, s) {}

function ai(n, s) {
    n & 1 && h(0, ri, 0, 0, "ng-template")
}

function oi(n, s) {
    if (n & 1 && (m(0, "span"), h(1, ai, 1, 0, null, 13), _()), n & 2) {
        let e = o(4);
        l(), c("ngTemplateOutlet", e.previousIconTemplate || e._previousIconTemplate)
    }
}

function si(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "button", 37), x("click", function(i) {
            d(e);
            let r = o(4);
            return p(r.switchToMonthView(i))
        })("keydown", function(i) {
            d(e);
            let r = o(4);
            return p(r.onContainerButtonKeydown(i))
        }), C(1), _()
    }
    if (n & 2) {
        let e = o().$implicit,
            t = o(3);
        c("disabled", t.switchViewButtonDisabled()), T("aria-label", t.getTranslation("chooseMonth")), l(), K(" ", t.getMonthName(e.month), " ")
    }
}

function li(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "button", 38), x("click", function(i) {
            d(e);
            let r = o(4);
            return p(r.switchToYearView(i))
        })("keydown", function(i) {
            d(e);
            let r = o(4);
            return p(r.onContainerButtonKeydown(i))
        }), C(1), _()
    }
    if (n & 2) {
        let e = o().$implicit,
            t = o(3);
        c("disabled", t.switchViewButtonDisabled()), T("aria-label", t.getTranslation("chooseYear")), l(), K(" ", t.getYear(e), " ")
    }
}

function ci(n, s) {
    if (n & 1 && (O(0), C(1), $()), n & 2) {
        let e = o(5);
        l(), Ee("", e.yearPickerValues()[0], " - ", e.yearPickerValues()[e.yearPickerValues().length - 1], "")
    }
}

function di(n, s) {
    n & 1 && G(0)
}

function pi(n, s) {
    if (n & 1 && (m(0, "span", 39), h(1, ci, 2, 2, "ng-container", 7)(2, di, 1, 0, "ng-container", 19), _()), n & 2) {
        let e = o(4);
        l(), c("ngIf", !e.decadeTemplate && !e._decadeTemplate), l(), c("ngTemplateOutlet", e.decadeTemplate || e._decadeTemplate)("ngTemplateOutletContext", W(3, be, e.yearPickerValues))
    }
}

function ui(n, s) {
    n & 1 && M(0, "ChevronRightIcon")
}

function _i(n, s) {}

function hi(n, s) {
    n & 1 && h(0, _i, 0, 0, "ng-template")
}

function mi(n, s) {
    if (n & 1 && (m(0, "span"), h(1, hi, 1, 0, null, 13), _()), n & 2) {
        let e = o(4);
        l(), c("ngTemplateOutlet", e.nextIconTemplate || e._nextIconTemplate)
    }
}

function fi(n, s) {
    if (n & 1 && (m(0, "th", 44)(1, "span"), C(2), _()()), n & 2) {
        let e = o(5);
        l(2), A(e.getTranslation("weekHeader"))
    }
}

function ki(n, s) {
    if (n & 1 && (m(0, "th", 45)(1, "span", 46), C(2), _()()), n & 2) {
        let e = s.$implicit;
        l(2), A(e)
    }
}

function gi(n, s) {
    if (n & 1 && (m(0, "td", 49)(1, "span", 50), C(2), _()()), n & 2) {
        let e = o().index,
            t = o(2).$implicit;
        l(2), K(" ", t.weekNumbers[e], " ")
    }
}

function vi(n, s) {
    if (n & 1 && (O(0), C(1), $()), n & 2) {
        let e = o(2).$implicit;
        l(), A(e.day)
    }
}

function yi(n, s) {
    n & 1 && G(0)
}

function wi(n, s) {
    if (n & 1 && (O(0), h(1, yi, 1, 0, "ng-container", 19), $()), n & 2) {
        let e = o(2).$implicit,
            t = o(6);
        l(), c("ngTemplateOutlet", t.dateTemplate || t._dateTemplate)("ngTemplateOutletContext", W(2, be, e))
    }
}

function bi(n, s) {
    n & 1 && G(0)
}

function xi(n, s) {
    if (n & 1 && (O(0), h(1, bi, 1, 0, "ng-container", 19), $()), n & 2) {
        let e = o(2).$implicit,
            t = o(6);
        l(), c("ngTemplateOutlet", t.disabledDateTemplate || t._disabledDateTemplate)("ngTemplateOutletContext", W(2, be, e))
    }
}

function Ci(n, s) {
    if (n & 1 && (m(0, "div", 53), C(1), _()), n & 2) {
        let e = o(2).$implicit;
        l(), K(" ", e.day, " ")
    }
}

function Di(n, s) {
    if (n & 1) {
        let e = S();
        O(0), m(1, "span", 51), x("click", function(i) {
            d(e);
            let r = o().$implicit,
                a = o(6);
            return p(a.onDateSelect(i, r))
        })("keydown", function(i) {
            d(e);
            let r = o().$implicit,
                a = o(3).index,
                u = o(3);
            return p(u.onDateCellKeydown(i, r, a))
        }), h(2, vi, 2, 1, "ng-container", 7)(3, wi, 2, 4, "ng-container", 7)(4, xi, 2, 4, "ng-container", 7), _(), h(5, Ci, 2, 1, "div", 52), $()
    }
    if (n & 2) {
        let e = o().$implicit,
            t = o(6);
        l(), c("ngClass", t.dayClass(e)), T("data-date", t.formatDateKey(t.formatDateMetaToDate(e))), l(), c("ngIf", !t.dateTemplate && !t._dateTemplate && (e.selectable || !t.disabledDateTemplate && !t._disabledDateTemplate)), l(), c("ngIf", e.selectable || !t.disabledDateTemplate && !t._disabledDateTemplate), l(), c("ngIf", !e.selectable), l(), c("ngIf", t.isSelected(e))
    }
}

function Ti(n, s) {
    if (n & 1 && (m(0, "td", 16), h(1, Di, 6, 6, "ng-container", 7), _()), n & 2) {
        let e = s.$implicit,
            t = o(6);
        c("ngClass", ae(3, Lt, e.otherMonth, e.today)), T("aria-label", e.day), l(), c("ngIf", e.otherMonth ? t.showOtherMonths : !0)
    }
}

function Ii(n, s) {
    if (n & 1 && (m(0, "tr"), h(1, gi, 3, 1, "td", 47)(2, Ti, 2, 6, "td", 48), _()), n & 2) {
        let e = s.$implicit,
            t = o(5);
        l(), c("ngIf", t.showWeek), l(), c("ngForOf", e)
    }
}

function Mi(n, s) {
    if (n & 1 && (m(0, "table", 40)(1, "thead")(2, "tr"), h(3, fi, 3, 1, "th", 41)(4, ki, 3, 1, "th", 42), _()(), m(5, "tbody"), h(6, Ii, 3, 2, "tr", 43), _()()), n & 2) {
        let e = o().$implicit,
            t = o(3);
        l(3), c("ngIf", t.showWeek), l(), c("ngForOf", t.weekDays), l(2), c("ngForOf", e.dates)
    }
}

function Si(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "div", 28)(1, "div", 29)(2, "p-button", 30), x("keydown", function(i) {
            d(e);
            let r = o(3);
            return p(r.onContainerButtonKeydown(i))
        })("onClick", function(i) {
            d(e);
            let r = o(3);
            return p(r.onPrevButtonClick(i))
        }), h(3, ni, 1, 0, "ChevronLeftIcon", 7)(4, oi, 2, 1, "span", 7), _(), m(5, "div", 31), h(6, si, 2, 3, "button", 32)(7, li, 2, 3, "button", 33)(8, pi, 3, 5, "span", 34), _(), m(9, "p-button", 35), x("keydown", function(i) {
            d(e);
            let r = o(3);
            return p(r.onContainerButtonKeydown(i))
        })("onClick", function(i) {
            d(e);
            let r = o(3);
            return p(r.onNextButtonClick(i))
        }), h(10, ui, 1, 0, "ChevronRightIcon", 7)(11, mi, 2, 1, "span", 7), _()(), h(12, Mi, 7, 3, "table", 36), _()
    }
    if (n & 2) {
        let e = s.index,
            t = o(3);
        l(2), c("ngStyle", W(12, ht, e === 0 ? "visible" : "hidden"))("ariaLabel", t.prevIconAriaLabel), l(), c("ngIf", !t.previousIconTemplate && !t._previousIconTemplate), l(), c("ngIf", t.previousIconTemplate || t._previousIconTemplate), l(2), c("ngIf", t.currentView === "date"), l(), c("ngIf", t.currentView !== "year"), l(), c("ngIf", t.currentView === "year"), l(), c("ngStyle", W(14, ht, e === t.months.length - 1 ? "visible" : "hidden"))("ariaLabel", t.nextIconAriaLabel), l(), c("ngIf", !t.nextIconTemplate && !t._nextIconTemplate), l(), c("ngIf", t.nextIconTemplate || t._nextIconTemplate), l(), c("ngIf", t.currentView === "date")
    }
}

function Vi(n, s) {
    if (n & 1 && (m(0, "div", 53), C(1), _()), n & 2) {
        let e = o().$implicit;
        l(), K(" ", e, " ")
    }
}

function Pi(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "span", 56), x("click", function(i) {
            let r = d(e).index,
                a = o(4);
            return p(a.onMonthSelect(i, r))
        })("keydown", function(i) {
            let r = d(e).index,
                a = o(4);
            return p(a.onMonthCellKeydown(i, r))
        }), C(1), h(2, Vi, 2, 1, "div", 52), _()
    }
    if (n & 2) {
        let e = s.$implicit,
            t = s.index,
            i = o(4);
        c("ngClass", ae(3, Bt, i.isMonthSelected(t), i.isMonthDisabled(t))), l(), K(" ", e, " "), l(), c("ngIf", i.isMonthSelected(t))
    }
}

function Ei(n, s) {
    if (n & 1 && (m(0, "div", 54), h(1, Pi, 3, 6, "span", 55), _()), n & 2) {
        let e = o(3);
        l(), c("ngForOf", e.monthPickerValues())
    }
}

function Fi(n, s) {
    if (n & 1 && (m(0, "div", 53), C(1), _()), n & 2) {
        let e = o().$implicit;
        l(), K(" ", e, " ")
    }
}

function Oi(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "span", 56), x("click", function(i) {
            let r = d(e).$implicit,
                a = o(4);
            return p(a.onYearSelect(i, r))
        })("keydown", function(i) {
            let r = d(e).$implicit,
                a = o(4);
            return p(a.onYearCellKeydown(i, r))
        }), C(1), h(2, Fi, 2, 1, "div", 52), _()
    }
    if (n & 2) {
        let e = s.$implicit,
            t = o(4);
        c("ngClass", ae(3, At, t.isYearSelected(e), t.isYearDisabled(e))), l(), K(" ", e, " "), l(), c("ngIf", t.isYearSelected(e))
    }
}

function $i(n, s) {
    if (n & 1 && (m(0, "div", 57), h(1, Oi, 3, 6, "span", 55), _()), n & 2) {
        let e = o(3);
        l(), c("ngForOf", e.yearPickerValues())
    }
}

function Yi(n, s) {
    if (n & 1 && (O(0), m(1, "div", 24), h(2, Si, 13, 16, "div", 25), _(), h(3, Ei, 2, 1, "div", 26)(4, $i, 2, 1, "div", 27), $()), n & 2) {
        let e = o(2);
        l(2), c("ngForOf", e.months), l(), c("ngIf", e.currentView === "month"), l(), c("ngIf", e.currentView === "year")
    }
}

function Hi(n, s) {
    n & 1 && M(0, "ChevronUpIcon")
}

function Li(n, s) {}

function Bi(n, s) {
    n & 1 && h(0, Li, 0, 0, "ng-template")
}

function Ai(n, s) {
    n & 1 && (O(0), C(1, "0"), $())
}

function Ri(n, s) {
    n & 1 && M(0, "ChevronDownIcon")
}

function Ni(n, s) {}

function Ui(n, s) {
    n & 1 && h(0, Ni, 0, 0, "ng-template")
}

function zi(n, s) {
    n & 1 && M(0, "ChevronUpIcon")
}

function Ki(n, s) {}

function Wi(n, s) {
    n & 1 && h(0, Ki, 0, 0, "ng-template")
}

function Qi(n, s) {
    n & 1 && (O(0), C(1, "0"), $())
}

function qi(n, s) {
    n & 1 && M(0, "ChevronDownIcon")
}

function ji(n, s) {}

function Zi(n, s) {
    n & 1 && h(0, ji, 0, 0, "ng-template")
}

function Gi(n, s) {
    if (n & 1 && (O(0), h(1, Zi, 1, 0, null, 13), $()), n & 2) {
        let e = o(3);
        l(), c("ngTemplateOutlet", e.decrementIconTemplate || e._decrementIconTemplate)
    }
}

function Ji(n, s) {
    if (n & 1 && (m(0, "div", 61)(1, "span"), C(2), _()()), n & 2) {
        let e = o(3);
        l(2), A(e.timeSeparator)
    }
}

function Xi(n, s) {
    n & 1 && M(0, "ChevronUpIcon")
}

function en(n, s) {}

function tn(n, s) {
    n & 1 && h(0, en, 0, 0, "ng-template")
}

function nn(n, s) {
    n & 1 && (O(0), C(1, "0"), $())
}

function rn(n, s) {
    n & 1 && M(0, "ChevronDownIcon")
}

function an(n, s) {}

function on(n, s) {
    n & 1 && h(0, an, 0, 0, "ng-template")
}

function sn(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "div", 66)(1, "p-button", 60), x("keydown", function(i) {
            d(e);
            let r = o(3);
            return p(r.onContainerButtonKeydown(i))
        })("keydown.enter", function(i) {
            d(e);
            let r = o(3);
            return p(r.incrementSecond(i))
        })("keydown.space", function(i) {
            d(e);
            let r = o(3);
            return p(r.incrementSecond(i))
        })("mousedown", function(i) {
            d(e);
            let r = o(3);
            return p(r.onTimePickerElementMouseDown(i, 2, 1))
        })("mouseup", function(i) {
            d(e);
            let r = o(3);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.enter", function(i) {
            d(e);
            let r = o(3);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.space", function(i) {
            d(e);
            let r = o(3);
            return p(r.onTimePickerElementMouseUp(i))
        })("mouseleave", function() {
            d(e);
            let i = o(3);
            return p(i.onTimePickerElementMouseLeave())
        }), h(2, Xi, 1, 0, "ChevronUpIcon", 7)(3, tn, 1, 0, null, 13), _(), m(4, "span"), h(5, nn, 2, 0, "ng-container", 7), C(6), _(), m(7, "p-button", 60), x("keydown", function(i) {
            d(e);
            let r = o(3);
            return p(r.onContainerButtonKeydown(i))
        })("keydown.enter", function(i) {
            d(e);
            let r = o(3);
            return p(r.decrementSecond(i))
        })("keydown.space", function(i) {
            d(e);
            let r = o(3);
            return p(r.decrementSecond(i))
        })("mousedown", function(i) {
            d(e);
            let r = o(3);
            return p(r.onTimePickerElementMouseDown(i, 2, -1))
        })("mouseup", function(i) {
            d(e);
            let r = o(3);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.enter", function(i) {
            d(e);
            let r = o(3);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.space", function(i) {
            d(e);
            let r = o(3);
            return p(r.onTimePickerElementMouseUp(i))
        })("mouseleave", function() {
            d(e);
            let i = o(3);
            return p(i.onTimePickerElementMouseLeave())
        }), h(8, rn, 1, 0, "ChevronDownIcon", 7)(9, on, 1, 0, null, 13), _()()
    }
    if (n & 2) {
        let e = o(3);
        l(), T("aria-label", e.getTranslation("nextSecond")), l(), c("ngIf", !e.incrementIconTemplate && !e._incrementIconTemplate), l(), c("ngTemplateOutlet", e.incrementIconTemplate || e._incrementIconTemplate), l(2), c("ngIf", e.currentSecond < 10), l(), A(e.currentSecond), l(), T("aria-label", e.getTranslation("prevSecond")), l(), c("ngIf", !e.decrementIconTemplate && !e._decrementIconTemplate), l(), c("ngTemplateOutlet", e.decrementIconTemplate || e._decrementIconTemplate)
    }
}

function ln(n, s) {
    if (n & 1 && (m(0, "div", 61)(1, "span"), C(2), _()()), n & 2) {
        let e = o(3);
        l(2), A(e.timeSeparator)
    }
}

function cn(n, s) {
    n & 1 && M(0, "ChevronUpIcon")
}

function dn(n, s) {}

function pn(n, s) {
    n & 1 && h(0, dn, 0, 0, "ng-template")
}

function un(n, s) {
    n & 1 && M(0, "ChevronDownIcon")
}

function _n(n, s) {}

function hn(n, s) {
    n & 1 && h(0, _n, 0, 0, "ng-template")
}

function mn(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "div", 67)(1, "p-button", 68), x("keydown", function(i) {
            d(e);
            let r = o(3);
            return p(r.onContainerButtonKeydown(i))
        })("onClick", function(i) {
            d(e);
            let r = o(3);
            return p(r.toggleAMPM(i))
        })("keydown.enter", function(i) {
            d(e);
            let r = o(3);
            return p(r.toggleAMPM(i))
        }), h(2, cn, 1, 0, "ChevronUpIcon", 7)(3, pn, 1, 0, null, 13), _(), m(4, "span"), C(5), _(), m(6, "p-button", 69), x("keydown", function(i) {
            d(e);
            let r = o(3);
            return p(r.onContainerButtonKeydown(i))
        })("click", function(i) {
            d(e);
            let r = o(3);
            return p(r.toggleAMPM(i))
        })("keydown.enter", function(i) {
            d(e);
            let r = o(3);
            return p(r.toggleAMPM(i))
        }), h(7, un, 1, 0, "ChevronDownIcon", 7)(8, hn, 1, 0, null, 13), _()()
    }
    if (n & 2) {
        let e = o(3);
        l(), T("aria-label", e.getTranslation("am")), l(), c("ngIf", !e.incrementIconTemplate && !e._incrementIconTemplate), l(), c("ngTemplateOutlet", e.incrementIconTemplate || e._incrementIconTemplate), l(2), A(e.pm ? "PM" : "AM"), l(), T("aria-label", e.getTranslation("pm")), l(), c("ngIf", !e.decrementIconTemplate && !e._decrementIconTemplate), l(), c("ngTemplateOutlet", e.decrementIconTemplate || e._decrementIconTemplate)
    }
}

function fn(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "div", 58)(1, "div", 59)(2, "p-button", 60), x("keydown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onContainerButtonKeydown(i))
        })("keydown.enter", function(i) {
            d(e);
            let r = o(2);
            return p(r.incrementHour(i))
        })("keydown.space", function(i) {
            d(e);
            let r = o(2);
            return p(r.incrementHour(i))
        })("mousedown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseDown(i, 0, 1))
        })("mouseup", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.enter", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.space", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("mouseleave", function() {
            d(e);
            let i = o(2);
            return p(i.onTimePickerElementMouseLeave())
        }), h(3, Hi, 1, 0, "ChevronUpIcon", 7)(4, Bi, 1, 0, null, 13), _(), m(5, "span"), h(6, Ai, 2, 0, "ng-container", 7), C(7), _(), m(8, "p-button", 60), x("keydown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onContainerButtonKeydown(i))
        })("keydown.enter", function(i) {
            d(e);
            let r = o(2);
            return p(r.decrementHour(i))
        })("keydown.space", function(i) {
            d(e);
            let r = o(2);
            return p(r.decrementHour(i))
        })("mousedown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseDown(i, 0, -1))
        })("mouseup", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.enter", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.space", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("mouseleave", function() {
            d(e);
            let i = o(2);
            return p(i.onTimePickerElementMouseLeave())
        }), h(9, Ri, 1, 0, "ChevronDownIcon", 7)(10, Ui, 1, 0, null, 13), _()(), m(11, "div", 61)(12, "span"), C(13), _()(), m(14, "div", 62)(15, "p-button", 60), x("keydown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onContainerButtonKeydown(i))
        })("keydown.enter", function(i) {
            d(e);
            let r = o(2);
            return p(r.incrementMinute(i))
        })("keydown.space", function(i) {
            d(e);
            let r = o(2);
            return p(r.incrementMinute(i))
        })("mousedown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseDown(i, 1, 1))
        })("mouseup", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.enter", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.space", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("mouseleave", function() {
            d(e);
            let i = o(2);
            return p(i.onTimePickerElementMouseLeave())
        }), h(16, zi, 1, 0, "ChevronUpIcon", 7)(17, Wi, 1, 0, null, 13), _(), m(18, "span"), h(19, Qi, 2, 0, "ng-container", 7), C(20), _(), m(21, "p-button", 60), x("keydown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onContainerButtonKeydown(i))
        })("keydown.enter", function(i) {
            d(e);
            let r = o(2);
            return p(r.decrementMinute(i))
        })("keydown.space", function(i) {
            d(e);
            let r = o(2);
            return p(r.decrementMinute(i))
        })("mousedown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseDown(i, 1, -1))
        })("mouseup", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.enter", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("keyup.space", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTimePickerElementMouseUp(i))
        })("mouseleave", function() {
            d(e);
            let i = o(2);
            return p(i.onTimePickerElementMouseLeave())
        }), h(22, qi, 1, 0, "ChevronDownIcon", 7)(23, Gi, 2, 1, "ng-container", 7), _()(), h(24, Ji, 3, 1, "div", 63)(25, sn, 10, 8, "div", 64)(26, ln, 3, 1, "div", 63)(27, mn, 9, 7, "div", 65), _()
    }
    if (n & 2) {
        let e = o(2);
        l(2), T("aria-label", e.getTranslation("nextHour")), l(), c("ngIf", !e.incrementIconTemplate && !e._incrementIconTemplate), l(), c("ngTemplateOutlet", e.incrementIconTemplate || e._incrementIconTemplate), l(2), c("ngIf", e.currentHour < 10), l(), A(e.currentHour), l(), T("aria-label", e.getTranslation("prevHour")), l(), c("ngIf", !e.decrementIconTemplate && !e._decrementIconTemplate), l(), c("ngTemplateOutlet", e.decrementIconTemplate || e._decrementIconTemplate), l(3), A(e.timeSeparator), l(2), T("aria-label", e.getTranslation("nextMinute")), l(), c("ngIf", !e.incrementIconTemplate && !e._incrementIconTemplate), l(), c("ngTemplateOutlet", e.incrementIconTemplate || e._incrementIconTemplate), l(2), c("ngIf", e.currentMinute < 10), l(), A(e.currentMinute), l(), T("aria-label", e.getTranslation("prevMinute")), l(), c("ngIf", !e.decrementIconTemplate && !e._decrementIconTemplate), l(), c("ngIf", e.decrementIconTemplate || e._decrementIconTemplate), l(), c("ngIf", e.showSeconds), l(), c("ngIf", e.showSeconds), l(), c("ngIf", e.hourFormat == "12"), l(), c("ngIf", e.hourFormat == "12")
    }
}

function kn(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "div", 70)(1, "p-button", 71), x("keydown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onContainerButtonKeydown(i))
        })("onClick", function(i) {
            d(e);
            let r = o(2);
            return p(r.onTodayButtonClick(i))
        }), _(), m(2, "p-button", 72), x("keydown", function(i) {
            d(e);
            let r = o(2);
            return p(r.onContainerButtonKeydown(i))
        })("onClick", function(i) {
            d(e);
            let r = o(2);
            return p(r.onClearButtonClick(i))
        }), _()()
    }
    if (n & 2) {
        let e = o(2);
        l(), c("label", e.getTranslation("today"))("ngClass", e.todayButtonStyleClass), l(), c("label", e.getTranslation("clear"))("ngClass", e.clearButtonStyleClass)
    }
}

function gn(n, s) {
    n & 1 && G(0)
}

function vn(n, s) {
    if (n & 1) {
        let e = S();
        m(0, "div", 21, 2), x("@overlayAnimation.start", function(i) {
            d(e);
            let r = o();
            return p(r.onOverlayAnimationStart(i))
        })("@overlayAnimation.done", function(i) {
            d(e);
            let r = o();
            return p(r.onOverlayAnimationDone(i))
        })("click", function(i) {
            d(e);
            let r = o();
            return p(r.onOverlayClick(i))
        }), ge(2), h(3, ii, 1, 0, "ng-container", 13)(4, Yi, 5, 3, "ng-container", 7)(5, fn, 28, 21, "div", 22)(6, kn, 3, 4, "div", 23), ge(7, 1), h(8, gn, 1, 0, "ng-container", 13), _()
    }
    if (n & 2) {
        let e = o();
        B(e.panelStyleClass), c("ngStyle", e.panelStyle)("ngClass", e.panelClass)("@overlayAnimation", W(18, Ht, ae(15, Yt, e.showTransitionOptions, e.hideTransitionOptions)))("@.disabled", e.inline === !0), T("id", e.panelId)("aria-label", e.getTranslation("chooseDate"))("role", e.inline ? null : "dialog")("aria-modal", e.inline ? null : "true"), l(3), c("ngTemplateOutlet", e.headerTemplate || e._headerTemplate), l(), c("ngIf", !e.timeOnly), l(), c("ngIf", (e.showTime || e.timeOnly) && e.currentView === "date"), l(), c("ngIf", e.showButtonBar), l(2), c("ngTemplateOutlet", e.footerTemplate || e._footerTemplate)
    }
}
var yn = ({
        dt: n
    }) => `
.p-datepicker {
    position: relative;
    display: inline-flex;
    max-width: 100%;
}

.p-datepicker-input {
    flex: 1 1 auto;
    width: 1%;
}

.p-datepicker:has(.p-datepicker-dropdown) .p-datepicker-input {
    border-start-end-radius: 0;
    border-end-end-radius: 0;
}

.p-datepicker-dropdown {
    cursor: pointer;
    display: inline-flex;
    user-select: none;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    width: ${n("datepicker.dropdown.width")};
    border-start-end-radius: ${n("datepicker.dropdown.border.radius")};
    border-end-end-radius: ${n("datepicker.dropdown.border.radius")};
    background: ${n("datepicker.dropdown.background")};
    border: 1px solid ${n("datepicker.dropdown.border.color")};
    border-inline-start: 0 none;
    color: ${n("datepicker.dropdown.color")};
    transition: background ${n("datepicker.transition.duration")}, color ${n("datepicker.transition.duration")}, border-color ${n("datepicker.transition.duration")}, outline-color ${n("datepicker.transition.duration")};
    outline-color: transparent;
}

.p-datepicker-dropdown:not(:disabled):hover {
    background: ${n("datepicker.dropdown.hover.background")};
    border-color: ${n("datepicker.dropdown.hover.border.color")};
    color: ${n("datepicker.dropdown.hover.color")};
}

.p-datepicker-dropdown:not(:disabled):active {
    background: ${n("datepicker.dropdown.active.background")};
    border-color: ${n("datepicker.dropdown.active.border.color")};
    color: ${n("datepicker.dropdown.active.color")};
}

.p-datepicker-dropdown:focus-visible {
    box-shadow: ${n("datepicker.dropdown.focus.ring.shadow")};
    outline: ${n("datepicker.dropdown.focus.ring.width")} ${n("datepicker.dropdown.focus.ring.style")} ${n("datepicker.dropdown.focus.ring.color")};
    outline-offset: ${n("datepicker.dropdown.focus.ring.offset")};
}

.p-datepicker:has(.p-datepicker-input-icon-container) {
    position: relative;
}

.p-datepicker:has(.p-datepicker-input-icon-container) .p-datepicker-input {
    padding-inline-end: calc((${n("form.field.padding.x")} * 2) + ${n("icon.size")});
}

.p-datepicker-input-icon-container {
    cursor: pointer;
    position: absolute;
    top: 50%;
    inset-inline-end: ${n("form.field.padding.x")};
    margin-top: calc(-1 * (${n("icon.size")} / 2));
    color: ${n("datepicker.input.icon.color")};
    line-height: 1;
}

.p-datepicker:has(.p-datepicker-dropdown) .p-datepicker-clear-icon,
.p-datepicker:has(.p-datepicker-input-icon-container) .p-datepicker-clear-icon {
    inset-inline-end: calc(${n("datepicker.dropdown.width")} + ${n("form.field.padding.x")});
}

.p-datepicker-clear-icon {
    position: absolute;
    top: 50%;
    margin-top: -0.5rem;
    cursor: pointer;
    color: ${n("form.field.icon.color")};
    inset-inline-end: ${n("form.field.padding.x")};
}

.p-datepicker-fluid {
    display: flex;
}

.p-datepicker-fluid .p-datepicker-input {
    width: 1%;
}

.p-datepicker .p-datepicker-panel {
    min-width: 100%;
}

.p-datepicker-panel {
    width: auto;
    padding: ${n("datepicker.panel.padding")};
    background: ${n("datepicker.panel.background")};
    color: ${n("datepicker.panel.color")};
    border: 1px solid ${n("datepicker.panel.border.color")};
    border-radius: ${n("datepicker.panel.border.radius")};
    box-shadow: ${n("datepicker.panel.shadow")};
}

.p-datepicker-panel-inline {
    display: inline-block;
    overflow-x: auto;
    box-shadow: none;
}

.p-datepicker-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: ${n("datepicker.header.padding")};
    background: ${n("datepicker.header.background")};
    color: ${n("datepicker.header.color")};
    border-bottom: 1px solid ${n("datepicker.header.border.color")};
}

.p-datepicker-next-button:dir(rtl) {
    transform: rotate(180deg);
}

.p-datepicker-prev-button:dir(rtl) {
    transform: rotate(180deg);
}

.p-datepicker-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: ${n("datepicker.title.gap")};
    font-weight: ${n("datepicker.title.font.weight")};
}

.p-datepicker-select-year,
.p-datepicker-select-month {
    border: none;
    background: transparent;
    margin: 0;
    cursor: pointer;
    font-weight: inherit;
    transition: background ${n("datepicker.transition.duration")}, color ${n("datepicker.transition.duration")}, border-color ${n("datepicker.transition.duration")}, outline-color ${n("datepicker.transition.duration")}, box-shadow ${n("datepicker.transition.duration")};
}

.p-datepicker-select-month {
    padding: ${n("datepicker.select.month.padding")};
    color: ${n("datepicker.select.month.color")};
    border-radius: ${n("datepicker.select.month.border.radius")};
}

.p-datepicker-select-year {
    padding: ${n("datepicker.select.year.padding")};
    color: ${n("datepicker.select.year.color")};
    border-radius: ${n("datepicker.select.year.border.radius")};
}

.p-datepicker-select-month:enabled:hover {
    background: ${n("datepicker.select.month.hover.background")};
    color: ${n("datepicker.select.month.hover.color")};
}

.p-datepicker-select-year:enabled:hover {
    background: ${n("datepicker.select.year.hover.background")};
    color: ${n("datepicker.select.year.hover.color")};
}

.p-datepicker-calendar-container {
    display: flex;
}

.p-datepicker-calendar-container .p-datepicker-calendar {
    flex: 1 1 auto;
    border-inline-start: 1px solid ${n("datepicker.group.border.color")};
    padding-inline: ${n("datepicker.group.gap")};
}

.p-datepicker-calendar-container .p-datepicker-calendar:first-child {
    padding-inline-start: 0;
    border-inline-start: 0 none;
}

.p-datepicker-calendar-container .p-datepicker-calendar:last-child {
    padding-inline-end: 0;
}

.p-datepicker-day-view {
    width: 100%;
    border-collapse: collapse;
    font-size: 1rem;
    margin: ${n("datepicker.day.view.margin")};
}

.p-datepicker-weekday-cell {
    padding: ${n("datepicker.week.day.padding")};
}

.p-datepicker-weekday {
    font-weight: ${n("datepicker.week.day.font.weight")};
    color: ${n("datepicker.week.day.color")};
}

.p-datepicker-day-cell {
    padding: ${n("datepicker.date.padding")};
}

.p-datepicker-day {
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
    width: ${n("datepicker.date.width")};
    height: ${n("datepicker.date.height")};
    border-radius: ${n("datepicker.date.border.radius")};
    transition: background ${n("datepicker.transition.duration")}, color ${n("datepicker.transition.duration")}, border-color ${n("datepicker.transition.duration")},
        box-shadow ${n("datepicker.transition.duration")}, outline-color ${n("datepicker.transition.duration")};
    border: 1px solid transparent;
    outline-color: transparent;
    color: ${n("datepicker.date.color")};
}

.p-datepicker-day:not(.p-datepicker-day-selected):not(.p-disabled):hover {
    background: ${n("datepicker.date.hover.background")};
    color: ${n("datepicker.date.hover.color")};
}

.p-datepicker-day:focus-visible {
    box-shadow: ${n("datepicker.date.focus.ring.shadow")};
    outline: ${n("datepicker.date.focus.ring.width")} ${n("datepicker.date.focus.ring.style")} ${n("datepicker.date.focus.ring.color")};
    outline-offset: ${n("datepicker.date.focus.ring.offset")};
}

.p-datepicker-day-selected {
    background: ${n("datepicker.date.selected.background")};
    color: ${n("datepicker.date.selected.color")};
}

.p-datepicker-day-selected-range {
    background: ${n("datepicker.date.range.selected.background")};
    color: ${n("datepicker.date.range.selected.color")};
}

.p-datepicker-today > .p-datepicker-day {
    background: ${n("datepicker.today.background")};
    color: ${n("datepicker.today.color")};
}

.p-datepicker-today > .p-datepicker-day-selected {
    background: ${n("datepicker.date.selected.background")};
    color: ${n("datepicker.date.selected.color")};
}

.p-datepicker-today > .p-datepicker-day-selected-range {
    background: ${n("datepicker.date.range.selected.background")};
    color: ${n("datepicker.date.range.selected.color")};
}

.p-datepicker-weeknumber {
    text-align: center
}

.p-datepicker-month-view {
    margin: ${n("datepicker.month.view.margin")};
}

.p-datepicker-month {
    width: 33.3%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    overflow: hidden;
    position: relative;
    padding: ${n("datepicker.month.padding")};
    transition: background ${n("datepicker.transition.duration")}, color ${n("datepicker.transition.duration")}, border-color ${n("datepicker.transition.duration")}, box-shadow ${n("datepicker.transition.duration")}, outline-color ${n("datepicker.transition.duration")};
    border-radius: ${n("datepicker.month.border.radius")};
    outline-color: transparent;
    color: ${n("datepicker.date.color")};
}

.p-datepicker-month:not(.p-disabled):not(.p-datepicker-month-selected):hover {
    color:  ${n("datepicker.date.hover.color")};
    background: ${n("datepicker.date.hover.background")};
}

.p-datepicker-month-selected {
    color: ${n("datepicker.date.selected.color")};
    background: ${n("datepicker.date.selected.background")};
}

.p-datepicker-month:not(.p-disabled):focus-visible {
    box-shadow: ${n("datepicker.date.focus.ring.shadow")};
    outline: ${n("datepicker.date.focus.ring.width")} ${n("datepicker.date.focus.ring.style")} ${n("datepicker.date.focus.ring.color")};
    outline-offset: ${n("datepicker.date.focus.ring.offset")};
}

.p-datepicker-year-view {
    margin: ${n("datepicker.year.view.margin")};
}

.p-datepicker-year {
    width: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    overflow: hidden;
    position: relative;
    padding: ${n("datepicker.year.padding")};
    transition: background ${n("datepicker.transition.duration")}, color ${n("datepicker.transition.duration")}, border-color ${n("datepicker.transition.duration")}, box-shadow ${n("datepicker.transition.duration")}, outline-color ${n("datepicker.transition.duration")};
    border-radius: ${n("datepicker.year.border.radius")};
    outline-color: transparent;
    color: ${n("datepicker.date.color")};
}

.p-datepicker-year:not(.p-disabled):not(.p-datepicker-year-selected):hover {
    color: ${n("datepicker.date.hover.color")};
    background: ${n("datepicker.date.hover.background")};
}

.p-datepicker-year-selected {
    color: ${n("datepicker.date.selected.color")};
    background: ${n("datepicker.date.selected.background")};
}

.p-datepicker-year:not(.p-disabled):focus-visible {
    box-shadow: ${n("datepicker.date.focus.ring.shadow")};
    outline: ${n("datepicker.date.focus.ring.width")} ${n("datepicker.date.focus.ring.style")} ${n("datepicker.date.focus.ring.color")};
    outline-offset: ${n("datepicker.date.focus.ring.offset")};
}

.p-datepicker-buttonbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding:  ${n("datepicker.buttonbar.padding")};
    border-top: 1px solid ${n("datepicker.buttonbar.border.color")};
}

.p-datepicker-buttonbar .p-button {
    width: auto;
}

.p-datepicker-time-picker {
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid ${n("datepicker.time.picker.border.color")};
    padding: 0;
    gap: ${n("datepicker.time.picker.gap")};
}

.p-datepicker-calendar-container + .p-datepicker-time-picker {
    padding: ${n("datepicker.time.picker.padding")};
}

.p-datepicker-time-picker > div {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: ${n("datepicker.time.picker.button.gap")};
}

.p-datepicker-time-picker span {
    font-size: 1rem;
}

.p-datepicker-timeonly .p-datepicker-time-picker {
    border-top: 0 none;
}

.p-datepicker-calendar:not(:first-child):not(:last-child) .p-datepicker-header {
    justify-content: center;
}

.p-datepicker:has(.p-inputtext-sm) .p-datepicker-dropdown {
    width: ${n("datepicker.dropdown.sm.width")};
}

.p-datepicker:has(.p-inputtext-sm) .p-datepicker-dropdown .p-icon,
.p-datepicker:has(.p-inputtext-sm) .p-datepicker-input-icon {
    font-size: ${n("form.field.sm.font.size")};
    width: ${n("form.field.sm.font.size")};
    height: ${n("form.field.sm.font.size")};
}

.p-datepicker:has(.p-inputtext-lg) .p-datepicker-dropdown {
    width: ${n("datepicker.dropdown.lg.width")};
}

.p-datepicker:has(.p-inputtext-lg) .p-datepicker-dropdown .p-icon,
.p-datepicker:has(.p-inputtext-lg) .p-datepicker-input-icon {
    font-size: ${n("form.field.lg.font.size")};
    width: ${n("form.field.lg.font.size")};
    height: ${n("form.field.lg.font.size")};
}

/* For PrimeNG */

p-calendar.ng-invalid.ng-dirty .p-datepicker.p-inputwrapper .p-inputtext{
    border-color: ${n("inputtext.invalid.border.color")};
}

p-datePicker.ng-invalid.ng-dirty .p-datepicker.p-inputwrapper .p-inputtext,
p-date-picker.ng-invalid.ng-dirty .p-datepicker.p-inputwrapper .p-inputtext,
p-datepicker.ng-invalid.ng-dirty .p-datepicker.p-inputwrapper .p-inputtext {
    border-color: ${n("inputtext.invalid.border.color")};
}

`,
    wn = {
        root: ({
            props: n
        }) => ({
            position: n.appendTo === "self" ? "relative" : void 0
        })
    },
    bn = {
        root: ({
            instance: n
        }) => ({
            "p-datepicker p-component p-inputwrapper": !0,
            "p-datepicker-fluid": n.hasFluid,
            "p-inputwrapper-filled": n.filled,
            "p-variant-filled": n.variant === "filled" || n.config.inputVariant() === "filled" || n.config.inputStyle() === "filled",
            "p-inputwrapper-focus": n.focus,
            "p-focus": n.focus || n.overlayVisible
        }),
        pcInput: "p-datepicker-input",
        dropdown: "p-datepicker-dropdown",
        inputIconContainer: "p-datepicker-input-icon-container",
        inputIcon: "p-datepicker-input-icon",
        panel: ({
            instance: n
        }) => ({
            "p-datepicker-panel p-component": !0,
            "p-datepicker-panel-inline": n.inline,
            "p-disabled": n.disabled,
            "p-datepicker-timeonly": n.timeOnly
        }),
        calendarContainer: "p-datepicker-calendar-container",
        calendar: "p-datepicker-calendar",
        header: "p-datepicker-header",
        pcPrevButton: "p-datepicker-prev-button",
        title: "p-datepicker-title",
        selectMonth: "p-datepicker-select-month",
        selectYear: "p-datepicker-select-year",
        decade: "p-datepicker-decade",
        pcNextButton: "p-datepicker-next-button",
        dayView: "p-datepicker-day-view",
        weekHeader: "p-datepicker-weekheader p-disabled",
        weekNumber: "p-datepicker-weeknumber",
        weekLabelContainer: "p-datepicker-weeklabel-container p-disabled",
        weekDayCell: "p-datepicker-weekday-cell",
        weekDay: "p-datepicker-weekday",
        dayCell: ({
            date: n
        }) => ["p-datepicker-day-cell", {
            "p-datepicker-other-month": n.otherMonth,
            "p-datepicker-today": n.today
        }],
        day: ({
            instance: n,
            date: s
        }) => {
            let e = "";
            if (n.isRangeSelection() && n.isSelected(s) && s.selectable) {
                let t = n.value[0],
                    i = n.value[1],
                    r = t && s.year === t.getFullYear() && s.month === t.getMonth() && s.day === t.getDate(),
                    a = i && s.year === i.getFullYear() && s.month === i.getMonth() && s.day === i.getDate();
                e = r || a ? "p-datepicker-day-selected" : "p-datepicker-day-selected-range"
            }
            return {
                "p-datepicker-day": !0,
                "p-datepicker-day-selected": !n.isRangeSelection() && n.isSelected(s) && s.selectable,
                "p-disabled": n.disabled || !s.selectable,
                [e]: !0
            }
        },
        monthView: "p-datepicker-month-view",
        month: ({
            instance: n,
            props: s,
            month: e,
            index: t
        }) => ["p-datepicker-month", {
            "p-datepicker-month-selected": n.isMonthSelected(t),
            "p-disabled": s.disabled || !e.selectable
        }],
        yearView: "p-datepicker-year-view",
        year: ({
            instance: n,
            props: s,
            year: e
        }) => ["p-datepicker-year", {
            "p-datepicker-year-selected": n.isYearSelected(e.value),
            "p-disabled": s.disabled || !e.selectable
        }],
        timePicker: "p-datepicker-time-picker",
        hourPicker: "p-datepicker-hour-picker",
        pcIncrementButton: "p-datepicker-increment-button",
        pcDecrementButton: "p-datepicker-decrement-button",
        separator: "p-datepicker-separator",
        minutePicker: "p-datepicker-minute-picker",
        secondPicker: "p-datepicker-second-picker",
        ampmPicker: "p-datepicker-ampm-picker",
        buttonbar: "p-datepicker-buttonbar",
        pcTodayButton: "p-datepicker-today-button",
        pcClearButton: "p-datepicker-clear-button"
    },
    mt = (() => {
        class n extends tt {
            name = "datepicker";
            theme = yn;
            classes = bn;
            inlineStyles = wn;
            static\ u0275fac = (() => {
                let e;
                return function(i) {
                    return (e || (e = q(n)))(i || n)
                }
            })();
            static\ u0275prov = De({
                token: n,
                factory: n.\u0275fac
            })
        }
        return n
    })();
var xn = {
        provide: Ne,
        useExisting: Ce(() => ft),
        multi: !0
    },
    ft = (() => {
        class n extends it {
            zone;
            overlayService;
            iconDisplay = "button";
            style;
            styleClass;
            inputStyle;
            inputId;
            name;
            inputStyleClass;
            placeholder;
            ariaLabelledBy;
            ariaLabel;
            iconAriaLabel;
            disabled;
            get dateFormat() {
                return this._dateFormat
            }
            set dateFormat(e) {
                this._dateFormat = e, this.initialized && this.updateInputfield()
            }
            multipleSeparator = ",";
            rangeSeparator = "-";
            inline = !1;
            showOtherMonths = !0;
            selectOtherMonths;
            showIcon;
            fluid;
            icon;
            appendTo;
            readonlyInput;
            shortYearCutoff = "+10";
            monthNavigator;
            yearNavigator;
            get hourFormat() {
                return this._hourFormat
            }
            set hourFormat(e) {
                this._hourFormat = e, this.initialized && this.updateInputfield()
            }
            timeOnly;
            stepHour = 1;
            stepMinute = 1;
            stepSecond = 1;
            showSeconds = !1;
            required;
            showOnFocus = !0;
            showWeek = !1;
            startWeekFromFirstDayOfYear = !1;
            showClear = !1;
            dataType = "date";
            selectionMode = "single";
            maxDateCount;
            showButtonBar;
            todayButtonStyleClass;
            clearButtonStyleClass;
            autofocus;
            autoZIndex = !0;
            baseZIndex = 0;
            panelStyleClass;
            panelStyle;
            keepInvalid = !1;
            hideOnDateTimeSelect = !0;
            touchUI;
            timeSeparator = ":";
            focusTrap = !0;
            showTransitionOptions = ".12s cubic-bezier(0, 0, 0.2, 1)";
            hideTransitionOptions = ".1s linear";
            tabindex;
            variant;
            size;
            get minDate() {
                return this._minDate
            }
            set minDate(e) {
                this._minDate = e, this.currentMonth != null && this.currentMonth != null && this.currentYear && this.createMonths(this.currentMonth, this.currentYear)
            }
            get maxDate() {
                return this._maxDate
            }
            set maxDate(e) {
                this._maxDate = e, this.currentMonth != null && this.currentMonth != null && this.currentYear && this.createMonths(this.currentMonth, this.currentYear)
            }
            get disabledDates() {
                return this._disabledDates
            }
            set disabledDates(e) {
                this._disabledDates = e, this.currentMonth != null && this.currentMonth != null && this.currentYear && this.createMonths(this.currentMonth, this.currentYear)
            }
            get disabledDays() {
                return this._disabledDays
            }
            set disabledDays(e) {
                this._disabledDays = e, this.currentMonth != null && this.currentMonth != null && this.currentYear && this.createMonths(this.currentMonth, this.currentYear)
            }
            get yearRange() {
                return this._yearRange
            }
            set yearRange(e) {
                if (this._yearRange = e, e) {
                    let t = e.split(":"),
                        i = parseInt(t[0]),
                        r = parseInt(t[1]);
                    this.populateYearOptions(i, r)
                }
            }
            get showTime() {
                return this._showTime
            }
            set showTime(e) {
                this._showTime = e, this.currentHour === void 0 && this.initTime(this.value || new Date), this.updateInputfield()
            }
            get responsiveOptions() {
                return this._responsiveOptions
            }
            set responsiveOptions(e) {
                this._responsiveOptions = e, this.destroyResponsiveStyleElement(), this.createResponsiveStyle()
            }
            get numberOfMonths() {
                return this._numberOfMonths
            }
            set numberOfMonths(e) {
                this._numberOfMonths = e, this.destroyResponsiveStyleElement(), this.createResponsiveStyle()
            }
            get firstDayOfWeek() {
                return this._firstDayOfWeek
            }
            set firstDayOfWeek(e) {
                this._firstDayOfWeek = e, this.createWeekDays()
            }
            set locale(e) {
                console.log("Locale property has no effect, use new i18n API instead.")
            }
            get view() {
                return this._view
            }
            set view(e) {
                this._view = e, this.currentView = this._view
            }
            get defaultDate() {
                return this._defaultDate
            }
            set defaultDate(e) {
                if (this._defaultDate = e, this.initialized) {
                    let t = e || new Date;
                    this.currentMonth = t.getMonth(), this.currentYear = t.getFullYear(), this.initTime(t), this.createMonths(this.currentMonth, this.currentYear)
                }
            }
            onFocus = new H;
            onBlur = new H;
            onClose = new H;
            onSelect = new H;
            onClear = new H;
            onInput = new H;
            onTodayClick = new H;
            onClearClick = new H;
            onMonthChange = new H;
            onYearChange = new H;
            onClickOutside = new H;
            onShow = new H;
            containerViewChild;
            inputfieldViewChild;
            set content(e) {
                this.contentViewChild = e, this.contentViewChild && (this.isMonthNavigate ? (Promise.resolve(null).then(() => this.updateFocus()), this.isMonthNavigate = !1) : !this.focus && !this.inline && this.initFocusableCell())
            }
            _componentStyle = Ie(mt);
            contentViewChild;
            value;
            dates;
            months;
            weekDays;
            currentMonth;
            currentYear;
            currentHour;
            currentMinute;
            currentSecond;
            pm;
            mask;
            maskClickListener;
            overlay;
            responsiveStyleElement;
            overlayVisible;
            onModelChange = () => {};
            onModelTouched = () => {};
            calendarElement;
            timePickerTimer;
            documentClickListener;
            animationEndListener;
            ticksTo1970;
            yearOptions;
            focus;
            isKeydown;
            filled;
            inputFieldValue = null;
            _minDate;
            _maxDate;
            _dateFormat;
            _hourFormat = "24";
            _showTime;
            _yearRange;
            preventDocumentListener;
            dayClass(e) {
                return this._componentStyle.classes.day({
                    instance: this,
                    date: e
                })
            }
            dateTemplate;
            headerTemplate;
            footerTemplate;
            disabledDateTemplate;
            decadeTemplate;
            previousIconTemplate;
            nextIconTemplate;
            triggerIconTemplate;
            clearIconTemplate;
            decrementIconTemplate;
            incrementIconTemplate;
            inputIconTemplate;
            _dateTemplate;
            _headerTemplate;
            _footerTemplate;
            _disabledDateTemplate;
            _decadeTemplate;
            _previousIconTemplate;
            _nextIconTemplate;
            _triggerIconTemplate;
            _clearIconTemplate;
            _decrementIconTemplate;
            _incrementIconTemplate;
            _inputIconTemplate;
            _disabledDates;
            _disabledDays;
            selectElement;
            todayElement;
            focusElement;
            scrollHandler;
            documentResizeListener;
            navigationState = null;
            isMonthNavigate;
            initialized;
            translationSubscription;
            _locale;
            _responsiveOptions;
            currentView;
            attributeSelector;
            panelId;
            _numberOfMonths = 1;
            _firstDayOfWeek;
            _view = "date";
            preventFocus;
            _defaultDate;
            _focusKey = null;
            window;
            get locale() {
                return this._locale
            }
            get iconButtonAriaLabel() {
                return this.iconAriaLabel ? this.iconAriaLabel : this.getTranslation("chooseDate")
            }
            get prevIconAriaLabel() {
                return this.currentView === "year" ? this.getTranslation("prevDecade") : this.currentView === "month" ? this.getTranslation("prevYear") : this.getTranslation("prevMonth")
            }
            get nextIconAriaLabel() {
                return this.currentView === "year" ? this.getTranslation("nextDecade") : this.currentView === "month" ? this.getTranslation("nextYear") : this.getTranslation("nextMonth")
            }
            get rootClass() {
                return this._componentStyle.classes.root({
                    instance: this
                })
            }
            get panelClass() {
                return this._componentStyle.classes.panel({
                    instance: this
                })
            }
            get hasFluid() {
                let t = this.el.nativeElement.closest("p-fluid");
                return this.fluid || !!t
            }
            constructor(e, t) {
                super(), this.zone = e, this.overlayService = t, this.window = this.document.defaultView
            }
            ngOnInit() {
                super.ngOnInit(), this.attributeSelector = Je("pn_id_"), this.panelId = this.attributeSelector + "_panel";
                let e = this.defaultDate || new Date;
                this.createResponsiveStyle(), this.currentMonth = e.getMonth(), this.currentYear = e.getFullYear(), this.yearOptions = [], this.currentView = this.view, this.view === "date" && (this.createWeekDays(), this.initTime(e), this.createMonths(this.currentMonth, this.currentYear), this.ticksTo1970 = (1969 * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 1e7), this.translationSubscription = this.config.translationObserver.subscribe(() => {
                    this.createWeekDays(), this.cd.markForCheck()
                }), this.initialized = !0
            }
            ngAfterViewInit() {
                super.ngAfterViewInit(), this.inline && (this.contentViewChild && this.contentViewChild.nativeElement.setAttribute(this.attributeSelector, ""), !this.disabled && !this.inline && (this.initFocusableCell(), this.numberOfMonths === 1 && this.contentViewChild && this.contentViewChild.nativeElement && (this.contentViewChild.nativeElement.style.width = le(this.containerViewChild ? .nativeElement) + "px")))
            }
            templates;
            ngAfterContentInit() {
                this.templates.forEach(e => {
                    switch (e.getType()) {
                        case "date":
                            this._dateTemplate = e.template;
                            break;
                        case "decade":
                            this._decadeTemplate = e.template;
                            break;
                        case "disabledDate":
                            this._disabledDateTemplate = e.template;
                            break;
                        case "header":
                            this._headerTemplate = e.template;
                            break;
                        case "inputicon":
                            this._inputIconTemplate = e.template;
                            break;
                        case "previousicon":
                            this._previousIconTemplate = e.template;
                            break;
                        case "nexticon":
                            this._nextIconTemplate = e.template;
                            break;
                        case "triggericon":
                            this._triggerIconTemplate = e.template;
                            break;
                        case "clearicon":
                            this._clearIconTemplate = e.template;
                            break;
                        case "decrementicon":
                            this._decrementIconTemplate = e.template;
                            break;
                        case "incrementicon":
                            this._incrementIconTemplate = e.template;
                            break;
                        case "footer":
                            this._footerTemplate = e.template;
                            break;
                        default:
                            this._dateTemplate = e.template;
                            break
                    }
                })
            }
            getTranslation(e) {
                return this.config.getTranslation(e)
            }
            populateYearOptions(e, t) {
                this.yearOptions = [];
                for (let i = e; i <= t; i++) this.yearOptions.push(i)
            }
            createWeekDays() {
                this.weekDays = [];
                let e = this.getFirstDateOfWeek(),
                    t = this.getTranslation(N.DAY_NAMES_MIN);
                for (let i = 0; i < 7; i++) this.weekDays.push(t[e]), e = e == 6 ? 0 : ++e
            }
            monthPickerValues() {
                let e = [];
                for (let t = 0; t <= 11; t++) e.push(this.config.getTranslation("monthNamesShort")[t]);
                return e
            }
            yearPickerValues() {
                let e = [],
                    t = this.currentYear - this.currentYear % 10;
                for (let i = 0; i < 10; i++) e.push(t + i);
                return e
            }
            createMonths(e, t) {
                this.months = this.months = [];
                for (let i = 0; i < this.numberOfMonths; i++) {
                    let r = e + i,
                        a = t;
                    r > 11 && (r = r % 12, a = t + Math.floor((e + i) / 12)), this.months.push(this.createMonth(r, a))
                }
            }
            getWeekNumber(e) {
                let t = new Date(e.getTime());
                if (this.startWeekFromFirstDayOfYear) {
                    let r = +this.getFirstDateOfWeek();
                    t.setDate(t.getDate() + 6 + r - t.getDay())
                } else t.setDate(t.getDate() + 4 - (t.getDay() || 7));
                let i = t.getTime();
                return t.setMonth(0), t.setDate(1), Math.floor(Math.round((i - t.getTime()) / 864e5) / 7) + 1
            }
            createMonth(e, t) {
                let i = [],
                    r = this.getFirstDayOfMonthIndex(e, t),
                    a = this.getDaysCountInMonth(e, t),
                    u = this.getDaysCountInPrevMonth(e, t),
                    v = 1,
                    g = new Date,
                    y = [],
                    w = Math.ceil((a + r) / 7);
                for (let F = 0; F < w; F++) {
                    let b = [];
                    if (F == 0) {
                        for (let k = u - r + 1; k <= u; k++) {
                            let I = this.getPreviousMonthAndYear(e, t);
                            b.push({
                                day: k,
                                month: I.month,
                                year: I.year,
                                otherMonth: !0,
                                today: this.isToday(g, k, I.month, I.year),
                                selectable: this.isSelectable(k, I.month, I.year, !0)
                            })
                        }
                        let f = 7 - b.length;
                        for (let k = 0; k < f; k++) b.push({
                            day: v,
                            month: e,
                            year: t,
                            today: this.isToday(g, v, e, t),
                            selectable: this.isSelectable(v, e, t, !1)
                        }), v++
                    } else
                        for (let f = 0; f < 7; f++) {
                            if (v > a) {
                                let k = this.getNextMonthAndYear(e, t);
                                b.push({
                                    day: v - a,
                                    month: k.month,
                                    year: k.year,
                                    otherMonth: !0,
                                    today: this.isToday(g, v - a, k.month, k.year),
                                    selectable: this.isSelectable(v - a, k.month, k.year, !0)
                                })
                            } else b.push({
                                day: v,
                                month: e,
                                year: t,
                                today: this.isToday(g, v, e, t),
                                selectable: this.isSelectable(v, e, t, !1)
                            });
                            v++
                        }
                    this.showWeek && y.push(this.getWeekNumber(new Date(b[0].year, b[0].month, b[0].day))), i.push(b)
                }
                return {
                    month: e,
                    year: t,
                    dates: i,
                    weekNumbers: y
                }
            }
            initTime(e) {
                this.pm = e.getHours() > 11, this.showTime ? (this.currentMinute = e.getMinutes(), this.currentSecond = e.getSeconds(), this.setCurrentHourPM(e.getHours())) : this.timeOnly && (this.currentMinute = 0, this.currentHour = 0, this.currentSecond = 0)
            }
            navBackward(e) {
                if (this.disabled) {
                    e.preventDefault();
                    return
                }
                this.isMonthNavigate = !0, this.currentView === "month" ? (this.decrementYear(), setTimeout(() => {
                    this.updateFocus()
                }, 1)) : this.currentView === "year" ? (this.decrementDecade(), setTimeout(() => {
                    this.updateFocus()
                }, 1)) : (this.currentMonth === 0 ? (this.currentMonth = 11, this.decrementYear()) : this.currentMonth--, this.onMonthChange.emit({
                    month: this.currentMonth + 1,
                    year: this.currentYear
                }), this.createMonths(this.currentMonth, this.currentYear))
            }
            navForward(e) {
                if (this.disabled) {
                    e.preventDefault();
                    return
                }
                this.isMonthNavigate = !0, this.currentView === "month" ? (this.incrementYear(), setTimeout(() => {
                    this.updateFocus()
                }, 1)) : this.currentView === "year" ? (this.incrementDecade(), setTimeout(() => {
                    this.updateFocus()
                }, 1)) : (this.currentMonth === 11 ? (this.currentMonth = 0, this.incrementYear()) : this.currentMonth++, this.onMonthChange.emit({
                    month: this.currentMonth + 1,
                    year: this.currentYear
                }), this.createMonths(this.currentMonth, this.currentYear))
            }
            decrementYear() {
                this.currentYear--;
                let e = this.yearOptions;
                if (this.yearNavigator && this.currentYear < e[0]) {
                    let t = e[e.length - 1] - e[0];
                    this.populateYearOptions(e[0] - t, e[e.length - 1] - t)
                }
            }
            decrementDecade() {
                this.currentYear = this.currentYear - 10
            }
            incrementDecade() {
                this.currentYear = this.currentYear + 10
            }
            incrementYear() {
                this.currentYear++;
                let e = this.yearOptions;
                if (this.yearNavigator && this.currentYear > e[e.length - 1]) {
                    let t = e[e.length - 1] - e[0];
                    this.populateYearOptions(e[0] + t, e[e.length - 1] + t)
                }
            }
            switchToMonthView(e) {
                this.setCurrentView("month"), e.preventDefault()
            }
            switchToYearView(e) {
                this.setCurrentView("year"), e.preventDefault()
            }
            onDateSelect(e, t) {
                if (this.disabled || !t.selectable) {
                    e.preventDefault();
                    return
                }
                this.isMultipleSelection() && this.isSelected(t) ? (this.value = this.value.filter((i, r) => !this.isDateEquals(i, t)), this.value.length === 0 && (this.value = null), this.updateModel(this.value)) : this.shouldSelectDate(t) && this.selectDate(t), this.hideOnDateTimeSelect && (this.isSingleSelection() || this.isRangeSelection() && this.value[1]) && setTimeout(() => {
                    e.preventDefault(), this.hideOverlay(), this.mask && this.disableModality(), this.cd.markForCheck()
                }, 150), this.updateInputfield(), e.preventDefault()
            }
            shouldSelectDate(e) {
                return this.isMultipleSelection() && this.maxDateCount != null ? this.maxDateCount > (this.value ? this.value.length : 0) : !0
            }
            onMonthSelect(e, t) {
                this.view === "month" ? this.onDateSelect(e, {
                    year: this.currentYear,
                    month: t,
                    day: 1,
                    selectable: !0
                }) : (this.currentMonth = t, this.createMonths(this.currentMonth, this.currentYear), this.setCurrentView("date"), this.onMonthChange.emit({
                    month: this.currentMonth + 1,
                    year: this.currentYear
                }))
            }
            onYearSelect(e, t) {
                this.view === "year" ? this.onDateSelect(e, {
                    year: t,
                    month: 0,
                    day: 1,
                    selectable: !0
                }) : (this.currentYear = t, this.setCurrentView("month"), this.onYearChange.emit({
                    month: this.currentMonth + 1,
                    year: this.currentYear
                }))
            }
            updateInputfield() {
                let e = "";
                if (this.value) {
                    if (this.isSingleSelection()) e = this.formatDateTime(this.value);
                    else if (this.isMultipleSelection())
                        for (let t = 0; t < this.value.length; t++) {
                            let i = this.formatDateTime(this.value[t]);
                            e += i, t !== this.value.length - 1 && (e += this.multipleSeparator + " ")
                        } else if (this.isRangeSelection() && this.value && this.value.length) {
                            let t = this.value[0],
                                i = this.value[1];
                            e = this.formatDateTime(t), i && (e += " " + this.rangeSeparator + " " + this.formatDateTime(i))
                        }
                }
                this.inputFieldValue = e, this.updateFilledState(), this.inputfieldViewChild && this.inputfieldViewChild.nativeElement && (this.inputfieldViewChild.nativeElement.value = this.inputFieldValue)
            }
            formatDateTime(e) {
                let t = this.keepInvalid ? e : null,
                    i = this.isValidDateForTimeConstraints(e);
                return this.isValidDate(e) ? this.timeOnly ? t = this.formatTime(e) : (t = this.formatDate(e, this.getDateFormat()), this.showTime && (t += " " + this.formatTime(e))) : this.dataType === "string" && (t = e), t = i ? t : "", t
            }
            formatDateMetaToDate(e) {
                return new Date(e.year, e.month, e.day)
            }
            formatDateKey(e) {
                return `${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`
            }
            setCurrentHourPM(e) {
                this.hourFormat == "12" ? (this.pm = e > 11, e >= 12 ? this.currentHour = e == 12 ? 12 : e - 12 : this.currentHour = e == 0 ? 12 : e) : this.currentHour = e
            }
            setCurrentView(e) {
                this.currentView = e, this.cd.detectChanges(), this.alignOverlay()
            }
            selectDate(e) {
                let t = this.formatDateMetaToDate(e);
                if (this.showTime && (this.hourFormat == "12" ? this.currentHour === 12 ? t.setHours(this.pm ? 12 : 0) : t.setHours(this.pm ? this.currentHour + 12 : this.currentHour) : t.setHours(this.currentHour), t.setMinutes(this.currentMinute), t.setSeconds(this.currentSecond)), this.minDate && this.minDate > t && (t = this.minDate, this.setCurrentHourPM(t.getHours()), this.currentMinute = t.getMinutes(), this.currentSecond = t.getSeconds()), this.maxDate && this.maxDate < t && (t = this.maxDate, this.setCurrentHourPM(t.getHours()), this.currentMinute = t.getMinutes(), this.currentSecond = t.getSeconds()), this.isSingleSelection()) this.updateModel(t);
                else if (this.isMultipleSelection()) this.updateModel(this.value ? [...this.value, t] : [t]);
                else if (this.isRangeSelection())
                    if (this.value && this.value.length) {
                        let i = this.value[0],
                            r = this.value[1];
                        !r && t.getTime() >= i.getTime() ? r = t : (i = t, r = null), this.updateModel([i, r])
                    } else this.updateModel([t, null]);
                this.onSelect.emit(t)
            }
            updateModel(e) {
                if (this.value = e, this.dataType == "date") this.onModelChange(this.value);
                else if (this.dataType == "string")
                    if (this.isSingleSelection()) this.onModelChange(this.formatDateTime(this.value));
                    else {
                        let t = null;
                        Array.isArray(this.value) && (t = this.value.map(i => this.formatDateTime(i))), this.onModelChange(t)
                    }
            }
            getFirstDayOfMonthIndex(e, t) {
                let i = new Date;
                i.setDate(1), i.setMonth(e), i.setFullYear(t);
                let r = i.getDay() + this.getSundayIndex();
                return r >= 7 ? r - 7 : r
            }
            getDaysCountInMonth(e, t) {
                return 32 - this.daylightSavingAdjust(new Date(t, e, 32)).getDate()
            }
            getDaysCountInPrevMonth(e, t) {
                let i = this.getPreviousMonthAndYear(e, t);
                return this.getDaysCountInMonth(i.month, i.year)
            }
            getPreviousMonthAndYear(e, t) {
                let i, r;
                return e === 0 ? (i = 11, r = t - 1) : (i = e - 1, r = t), {
                    month: i,
                    year: r
                }
            }
            getNextMonthAndYear(e, t) {
                let i, r;
                return e === 11 ? (i = 0, r = t + 1) : (i = e + 1, r = t), {
                    month: i,
                    year: r
                }
            }
            getSundayIndex() {
                let e = this.getFirstDateOfWeek();
                return e > 0 ? 7 - e : 0
            }
            isSelected(e) {
                if (this.value) {
                    if (this.isSingleSelection()) return this.isDateEquals(this.value, e);
                    if (this.isMultipleSelection()) {
                        let t = !1;
                        for (let i of this.value)
                            if (t = this.isDateEquals(i, e), t) break;
                        return t
                    } else if (this.isRangeSelection()) return this.value[1] ? this.isDateEquals(this.value[0], e) || this.isDateEquals(this.value[1], e) || this.isDateBetween(this.value[0], this.value[1], e) : this.isDateEquals(this.value[0], e)
                } else return !1
            }
            isComparable() {
                return this.value != null && typeof this.value != "string"
            }
            isMonthSelected(e) {
                if (!this.isComparable()) return !1;
                if (this.isMultipleSelection()) return this.value.some(t => t.getMonth() === e && t.getFullYear() === this.currentYear);
                if (this.isRangeSelection())
                    if (this.value[1]) {
                        let t = new Date(this.currentYear, e, 1),
                            i = new Date(this.value[0].getFullYear(), this.value[0].getMonth(), 1),
                            r = new Date(this.value[1].getFullYear(), this.value[1].getMonth(), 1);
                        return t >= i && t <= r
                    } else return this.value[0] ? .getFullYear() === this.currentYear && this.value[0] ? .getMonth() === e;
                else return this.value.getMonth() === e && this.value.getFullYear() === this.currentYear
            }
            isMonthDisabled(e, t) {
                let i = t ? ? this.currentYear;
                for (let r = 1; r < this.getDaysCountInMonth(e, i) + 1; r++)
                    if (this.isSelectable(r, e, i, !1)) return !1;
                return !0
            }
            isYearDisabled(e) {
                return Array(12).fill(0).every((t, i) => this.isMonthDisabled(i, e))
            }
            isYearSelected(e) {
                if (this.isComparable()) {
                    let t = this.isRangeSelection() ? this.value[0] : this.value;
                    return this.isMultipleSelection() ? !1 : t.getFullYear() === e
                }
                return !1
            }
            isDateEquals(e, t) {
                return e && de(e) ? e.getDate() === t.day && e.getMonth() === t.month && e.getFullYear() === t.year : !1
            }
            isDateBetween(e, t, i) {
                let r = !1;
                if (de(e) && de(t)) {
                    let a = this.formatDateMetaToDate(i);
                    return e.getTime() <= a.getTime() && t.getTime() >= a.getTime()
                }
                return r
            }
            isSingleSelection() {
                return this.selectionMode === "single"
            }
            isRangeSelection() {
                return this.selectionMode === "range"
            }
            isMultipleSelection() {
                return this.selectionMode === "multiple"
            }
            isToday(e, t, i, r) {
                return e.getDate() === t && e.getMonth() === i && e.getFullYear() === r
            }
            isSelectable(e, t, i, r) {
                let a = !0,
                    u = !0,
                    v = !0,
                    g = !0;
                return r && !this.selectOtherMonths ? !1 : (this.minDate && (this.minDate.getFullYear() > i || this.minDate.getFullYear() === i && this.currentView != "year" && (this.minDate.getMonth() > t || this.minDate.getMonth() === t && this.minDate.getDate() > e)) && (a = !1), this.maxDate && (this.maxDate.getFullYear() < i || this.maxDate.getFullYear() === i && (this.maxDate.getMonth() < t || this.maxDate.getMonth() === t && this.maxDate.getDate() < e)) && (u = !1), this.disabledDates && (v = !this.isDateDisabled(e, t, i)), this.disabledDays && (g = !this.isDayDisabled(e, t, i)), a && u && v && g)
            }
            isDateDisabled(e, t, i) {
                if (this.disabledDates) {
                    for (let r of this.disabledDates)
                        if (r.getFullYear() === i && r.getMonth() === t && r.getDate() === e) return !0
                }
                return !1
            }
            isDayDisabled(e, t, i) {
                if (this.disabledDays) {
                    let a = new Date(i, t, e).getDay();
                    return this.disabledDays.indexOf(a) !== -1
                }
                return !1
            }
            onInputFocus(e) {
                this.focus = !0, this.showOnFocus && this.showOverlay(), this.onFocus.emit(e)
            }
            onInputClick() {
                this.showOnFocus && !this.overlayVisible && this.showOverlay()
            }
            onInputBlur(e) {
                this.focus = !1, this.onBlur.emit(e), this.keepInvalid || this.updateInputfield(), this.onModelTouched()
            }
            onButtonClick(e, t = this.inputfieldViewChild ? .nativeElement) {
                this.disabled || (this.overlayVisible ? this.hideOverlay() : (t.focus(), this.showOverlay()))
            }
            clear() {
                this.value = null, this.onModelChange(this.value), this.updateInputfield(), this.onClear.emit()
            }
            onOverlayClick(e) {
                this.overlayService.add({
                    originalEvent: e,
                    target: this.el.nativeElement
                })
            }
            getMonthName(e) {
                return this.config.getTranslation("monthNames")[e]
            }
            getYear(e) {
                return this.currentView === "month" ? this.currentYear : e.year
            }
            switchViewButtonDisabled() {
                return this.numberOfMonths > 1 || this.disabled
            }
            onPrevButtonClick(e) {
                this.navigationState = {
                    backward: !0,
                    button: !0
                }, this.navBackward(e)
            }
            onNextButtonClick(e) {
                this.navigationState = {
                    backward: !1,
                    button: !0
                }, this.navForward(e)
            }
            onContainerButtonKeydown(e) {
                switch (e.which) {
                    case 9:
                        if (this.inline || this.trapFocus(e), this.inline) {
                            let t = E(this.containerViewChild ? .nativeElement, ".p-datepicker-header"),
                                i = e.target;
                            if (this.timeOnly) return;
                            i == t.children[t ? .children ? .length - 1] && this.initFocusableCell()
                        }
                        break;
                    case 27:
                        this.inputfieldViewChild ? .nativeElement.focus(), this.overlayVisible = !1, e.preventDefault();
                        break;
                    default:
                        break
                }
            }
            onInputKeydown(e) {
                this.isKeydown = !0, e.keyCode === 40 && this.contentViewChild ? this.trapFocus(e) : e.keyCode === 27 ? this.overlayVisible && (this.inputfieldViewChild ? .nativeElement.focus(), this.overlayVisible = !1, e.preventDefault()) : e.keyCode === 13 ? this.overlayVisible && (this.overlayVisible = !1, e.preventDefault()) : e.keyCode === 9 && this.contentViewChild && (ye(this.contentViewChild.nativeElement).forEach(t => t.tabIndex = "-1"), this.overlayVisible && (this.overlayVisible = !1))
            }
            onDateCellKeydown(e, t, i) {
                let r = e.currentTarget,
                    a = r.parentElement,
                    u = this.formatDateMetaToDate(t);
                switch (e.which) {
                    case 40:
                        {
                            r.tabIndex = "-1";
                            let f = ce(a),
                                k = a.parentElement.nextElementSibling;
                            if (k) {
                                let I = k.children[f].children[0];
                                R(I, "p-disabled") ? (this.navigationState = {
                                    backward: !1
                                }, this.navForward(e)) : (k.children[f].children[0].tabIndex = "0", k.children[f].children[0].focus())
                            } else this.navigationState = {
                                backward: !1
                            },
                            this.navForward(e);e.preventDefault();
                            break
                        }
                    case 38:
                        {
                            r.tabIndex = "-1";
                            let f = ce(a),
                                k = a.parentElement.previousElementSibling;
                            if (k) {
                                let I = k.children[f].children[0];
                                R(I, "p-disabled") ? (this.navigationState = {
                                    backward: !0
                                }, this.navBackward(e)) : (I.tabIndex = "0", I.focus())
                            } else this.navigationState = {
                                backward: !0
                            },
                            this.navBackward(e);e.preventDefault();
                            break
                        }
                    case 37:
                        {
                            r.tabIndex = "-1";
                            let f = a.previousElementSibling;
                            if (f) {
                                let k = f.children[0];
                                R(k, "p-disabled") || R(k.parentElement, "p-datepicker-weeknumber") ? this.navigateToMonth(!0, i) : (k.tabIndex = "0", k.focus())
                            } else this.navigateToMonth(!0, i);e.preventDefault();
                            break
                        }
                    case 39:
                        {
                            r.tabIndex = "-1";
                            let f = a.nextElementSibling;
                            if (f) {
                                let k = f.children[0];
                                R(k, "p-disabled") ? this.navigateToMonth(!1, i) : (k.tabIndex = "0", k.focus())
                            } else this.navigateToMonth(!1, i);e.preventDefault();
                            break
                        }
                    case 13:
                    case 32:
                        {
                            this.onDateSelect(e, t),
                            e.preventDefault();
                            break
                        }
                    case 27:
                        {
                            this.inputfieldViewChild ? .nativeElement.focus(),
                            this.overlayVisible = !1,
                            e.preventDefault();
                            break
                        }
                    case 9:
                        {
                            this.inline || this.trapFocus(e);
                            break
                        }
                    case 33:
                        {
                            r.tabIndex = "-1";
                            let f = new Date(u.getFullYear(), u.getMonth() - 1, u.getDate()),
                                k = this.formatDateKey(f);this.navigateToMonth(!0, i, `span[data-date='${k}']:not(.p-disabled):not(.p-ink)`),
                            e.preventDefault();
                            break
                        }
                    case 34:
                        {
                            r.tabIndex = "-1";
                            let f = new Date(u.getFullYear(), u.getMonth() + 1, u.getDate()),
                                k = this.formatDateKey(f);this.navigateToMonth(!1, i, `span[data-date='${k}']:not(.p-disabled):not(.p-ink)`),
                            e.preventDefault();
                            break
                        }
                    case 36:
                        r.tabIndex = "-1";
                        let v = new Date(u.getFullYear(), u.getMonth(), 1),
                            g = this.formatDateKey(v),
                            y = E(r.offsetParent, `span[data-date='${g}']:not(.p-disabled):not(.p-ink)`);
                        y && (y.tabIndex = "0", y.focus()), e.preventDefault();
                        break;
                    case 35:
                        r.tabIndex = "-1";
                        let w = new Date(u.getFullYear(), u.getMonth() + 1, 0),
                            F = this.formatDateKey(w),
                            b = E(r.offsetParent, `span[data-date='${F}']:not(.p-disabled):not(.p-ink)`);
                        w && (b.tabIndex = "0", b.focus()), e.preventDefault();
                        break;
                    default:
                        break
                }
            }
            onMonthCellKeydown(e, t) {
                let i = e.currentTarget;
                switch (e.which) {
                    case 38:
                    case 40:
                        {
                            i.tabIndex = "-1";
                            var r = i.parentElement.children,
                                a = ce(i);
                            let u = r[e.which === 40 ? a + 3 : a - 3];u && (u.tabIndex = "0", u.focus()),
                            e.preventDefault();
                            break
                        }
                    case 37:
                        {
                            i.tabIndex = "-1";
                            let u = i.previousElementSibling;u ? (u.tabIndex = "0", u.focus()) : (this.navigationState = {
                                backward: !0
                            }, this.navBackward(e)),
                            e.preventDefault();
                            break
                        }
                    case 39:
                        {
                            i.tabIndex = "-1";
                            let u = i.nextElementSibling;u ? (u.tabIndex = "0", u.focus()) : (this.navigationState = {
                                backward: !1
                            }, this.navForward(e)),
                            e.preventDefault();
                            break
                        }
                    case 13:
                    case 32:
                        {
                            this.onMonthSelect(e, t),
                            e.preventDefault();
                            break
                        }
                    case 27:
                        {
                            this.inputfieldViewChild ? .nativeElement.focus(),
                            this.overlayVisible = !1,
                            e.preventDefault();
                            break
                        }
                    case 9:
                        {
                            this.inline || this.trapFocus(e);
                            break
                        }
                    default:
                        break
                }
            }
            onYearCellKeydown(e, t) {
                let i = e.currentTarget;
                switch (e.which) {
                    case 38:
                    case 40:
                        {
                            i.tabIndex = "-1";
                            var r = i.parentElement.children,
                                a = ce(i);
                            let u = r[e.which === 40 ? a + 2 : a - 2];u && (u.tabIndex = "0", u.focus()),
                            e.preventDefault();
                            break
                        }
                    case 37:
                        {
                            i.tabIndex = "-1";
                            let u = i.previousElementSibling;u ? (u.tabIndex = "0", u.focus()) : (this.navigationState = {
                                backward: !0
                            }, this.navBackward(e)),
                            e.preventDefault();
                            break
                        }
                    case 39:
                        {
                            i.tabIndex = "-1";
                            let u = i.nextElementSibling;u ? (u.tabIndex = "0", u.focus()) : (this.navigationState = {
                                backward: !1
                            }, this.navForward(e)),
                            e.preventDefault();
                            break
                        }
                    case 13:
                    case 32:
                        {
                            this.onYearSelect(e, t),
                            e.preventDefault();
                            break
                        }
                    case 27:
                        {
                            this.inputfieldViewChild ? .nativeElement.focus(),
                            this.overlayVisible = !1,
                            e.preventDefault();
                            break
                        }
                    case 9:
                        {
                            this.trapFocus(e);
                            break
                        }
                    default:
                        break
                }
            }
            navigateToMonth(e, t, i) {
                if (e)
                    if (this.numberOfMonths === 1 || t === 0) this.navigationState = {
                        backward: !0
                    }, this._focusKey = i, this.navBackward(event);
                    else {
                        let r = this.contentViewChild.nativeElement.children[t - 1];
                        if (i) {
                            let a = E(r, i);
                            a.tabIndex = "0", a.focus()
                        } else {
                            let a = Q(r, ".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),
                                u = a[a.length - 1];
                            u.tabIndex = "0", u.focus()
                        }
                    }
                else if (this.numberOfMonths === 1 || t === this.numberOfMonths - 1) this.navigationState = {
                    backward: !1
                }, this._focusKey = i, this.navForward(event);
                else {
                    let r = this.contentViewChild.nativeElement.children[t + 1];
                    if (i) {
                        let a = E(r, i);
                        a.tabIndex = "0", a.focus()
                    } else {
                        let a = E(r, ".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");
                        a.tabIndex = "0", a.focus()
                    }
                }
            }
            updateFocus() {
                let e;
                if (this.navigationState) {
                    if (this.navigationState.button) this.initFocusableCell(), this.navigationState.backward ? E(this.contentViewChild.nativeElement, ".p-datepicker-prev-button").focus() : E(this.contentViewChild.nativeElement, ".p-datepicker-next-button").focus();
                    else {
                        if (this.navigationState.backward) {
                            let t;
                            this.currentView === "month" ? t = Q(this.contentViewChild.nativeElement, ".p-datepicker-month-view .p-datepicker-month:not(.p-disabled)") : this.currentView === "year" ? t = Q(this.contentViewChild.nativeElement, ".p-datepicker-year-view .p-datepicker-year:not(.p-disabled)") : t = Q(this.contentViewChild.nativeElement, this._focusKey || ".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"), t && t.length > 0 && (e = t[t.length - 1])
                        } else this.currentView === "month" ? e = E(this.contentViewChild.nativeElement, ".p-datepicker-month-view .p-datepicker-month:not(.p-disabled)") : this.currentView === "year" ? e = E(this.contentViewChild.nativeElement, ".p-datepicker-year-view .p-datepicker-year:not(.p-disabled)") : e = E(this.contentViewChild.nativeElement, this._focusKey || ".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");
                        e && (e.tabIndex = "0", e.focus())
                    }
                    this.navigationState = null, this._focusKey = null
                } else this.initFocusableCell()
            }
            initFocusableCell() {
                let e = this.contentViewChild ? .nativeElement,
                    t;
                if (this.currentView === "month") {
                    let i = Q(e, ".p-datepicker-month-view .p-datepicker-month:not(.p-disabled)"),
                        r = E(e, ".p-datepicker-month-view .p-datepicker-month.p-highlight");
                    i.forEach(a => a.tabIndex = -1), t = r || i[0], i.length === 0 && Q(e, '.p-datepicker-month-view .p-datepicker-month.p-disabled[tabindex = "0"]').forEach(u => u.tabIndex = -1)
                } else if (this.currentView === "year") {
                    let i = Q(e, ".p-datepicker-year-view .p-datepicker-year:not(.p-disabled)"),
                        r = E(e, ".p-datepicker-year-view .p-datepicker-year.p-highlight");
                    i.forEach(a => a.tabIndex = -1), t = r || i[0], i.length === 0 && Q(e, '.p-datepicker-year-view .p-datepicker-year.p-disabled[tabindex = "0"]').forEach(u => u.tabIndex = -1)
                } else if (t = E(e, "span.p-highlight"), !t) {
                    let i = E(e, "td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");
                    i ? t = i : t = E(e, ".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")
                }
                t && (t.tabIndex = "0", !this.preventFocus && (!this.navigationState || !this.navigationState.button) && setTimeout(() => {
                    this.disabled || t.focus()
                }, 1), this.preventFocus = !1)
            }
            trapFocus(e) {
                let t = ye(this.contentViewChild.nativeElement);
                if (t && t.length > 0)
                    if (!t[0].ownerDocument.activeElement) t[0].focus();
                    else {
                        let i = t.indexOf(t[0].ownerDocument.activeElement);
                        if (e.shiftKey)
                            if (i == -1 || i === 0)
                                if (this.focusTrap) t[t.length - 1].focus();
                                else {
                                    if (i === -1) return this.hideOverlay();
                                    if (i === 0) return
                                }
                        else t[i - 1].focus();
                        else if (i == -1)
                            if (this.timeOnly) t[0].focus();
                            else {
                                let r = 0;
                                for (let a = 0; a < t.length; a++) t[a].tagName === "SPAN" && (r = a);
                                t[r].focus()
                            }
                        else if (i === t.length - 1) {
                            if (!this.focusTrap && i != -1) return this.hideOverlay();
                            t[0].focus()
                        } else t[i + 1].focus()
                    }
                e.preventDefault()
            }
            onMonthDropdownChange(e) {
                this.currentMonth = parseInt(e), this.onMonthChange.emit({
                    month: this.currentMonth + 1,
                    year: this.currentYear
                }), this.createMonths(this.currentMonth, this.currentYear)
            }
            onYearDropdownChange(e) {
                this.currentYear = parseInt(e), this.onYearChange.emit({
                    month: this.currentMonth + 1,
                    year: this.currentYear
                }), this.createMonths(this.currentMonth, this.currentYear)
            }
            convertTo24Hour(e, t) {
                return this.hourFormat == "12" ? e === 12 ? t ? 12 : 0 : t ? e + 12 : e : e
            }
            constrainTime(e, t, i, r) {
                let a = [e, t, i],
                    u, v = this.value,
                    g = this.convertTo24Hour(e, r),
                    y = this.isRangeSelection(),
                    w = this.isMultipleSelection();
                (y || w) && (this.value || (this.value = [new Date, new Date]), y && (v = this.value[1] || this.value[0]), w && (v = this.value[this.value.length - 1]));
                let b = v ? v.toDateString() : null,
                    f = this.minDate && b && this.minDate.toDateString() === b,
                    k = this.maxDate && b && this.maxDate.toDateString() === b;
                switch (f && (u = this.minDate.getHours() >= 12), !0) {
                    case (f && u && this.minDate.getHours() === 12 && this.minDate.getHours() > g):
                        a[0] = 11;
                    case (f && this.minDate.getHours() === g && this.minDate.getMinutes() > t):
                        a[1] = this.minDate.getMinutes();
                    case (f && this.minDate.getHours() === g && this.minDate.getMinutes() === t && this.minDate.getSeconds() > i):
                        a[2] = this.minDate.getSeconds();
                        break;
                    case (f && !u && this.minDate.getHours() - 1 === g && this.minDate.getHours() > g):
                        a[0] = 11, this.pm = !0;
                    case (f && this.minDate.getHours() === g && this.minDate.getMinutes() > t):
                        a[1] = this.minDate.getMinutes();
                    case (f && this.minDate.getHours() === g && this.minDate.getMinutes() === t && this.minDate.getSeconds() > i):
                        a[2] = this.minDate.getSeconds();
                        break;
                    case (f && u && this.minDate.getHours() > g && g !== 12):
                        this.setCurrentHourPM(this.minDate.getHours()), a[0] = this.currentHour;
                    case (f && this.minDate.getHours() === g && this.minDate.getMinutes() > t):
                        a[1] = this.minDate.getMinutes();
                    case (f && this.minDate.getHours() === g && this.minDate.getMinutes() === t && this.minDate.getSeconds() > i):
                        a[2] = this.minDate.getSeconds();
                        break;
                    case (f && this.minDate.getHours() > g):
                        a[0] = this.minDate.getHours();
                    case (f && this.minDate.getHours() === g && this.minDate.getMinutes() > t):
                        a[1] = this.minDate.getMinutes();
                    case (f && this.minDate.getHours() === g && this.minDate.getMinutes() === t && this.minDate.getSeconds() > i):
                        a[2] = this.minDate.getSeconds();
                        break;
                    case (k && this.maxDate.getHours() < g):
                        a[0] = this.maxDate.getHours();
                    case (k && this.maxDate.getHours() === g && this.maxDate.getMinutes() < t):
                        a[1] = this.maxDate.getMinutes();
                    case (k && this.maxDate.getHours() === g && this.maxDate.getMinutes() === t && this.maxDate.getSeconds() < i):
                        a[2] = this.maxDate.getSeconds();
                        break
                }
                return a
            }
            incrementHour(e) {
                let t = this.currentHour ? ? 0,
                    i = (this.currentHour ? ? 0) + this.stepHour,
                    r = this.pm;
                this.hourFormat == "24" ? i = i >= 24 ? i - 24 : i : this.hourFormat == "12" && (t < 12 && i > 11 && (r = !this.pm), i = i >= 13 ? i - 12 : i), this.toggleAMPMIfNotMinDate(r), [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(i, this.currentMinute, this.currentSecond, r), e.preventDefault()
            }
            toggleAMPMIfNotMinDate(e) {
                let t = this.value,
                    i = t ? t.toDateString() : null;
                this.minDate && i && this.minDate.toDateString() === i && this.minDate.getHours() >= 12 ? this.pm = !0 : this.pm = e
            }
            onTimePickerElementMouseDown(e, t, i) {
                this.disabled || (this.repeat(e, null, t, i), e.preventDefault())
            }
            onTimePickerElementMouseUp(e) {
                this.disabled || (this.clearTimePickerTimer(), this.updateTime())
            }
            onTimePickerElementMouseLeave() {
                !this.disabled && this.timePickerTimer && (this.clearTimePickerTimer(), this.updateTime())
            }
            repeat(e, t, i, r) {
                let a = t || 500;
                switch (this.clearTimePickerTimer(), this.timePickerTimer = setTimeout(() => {
                    this.repeat(e, 100, i, r), this.cd.markForCheck()
                }, a), i) {
                    case 0:
                        r === 1 ? this.incrementHour(e) : this.decrementHour(e);
                        break;
                    case 1:
                        r === 1 ? this.incrementMinute(e) : this.decrementMinute(e);
                        break;
                    case 2:
                        r === 1 ? this.incrementSecond(e) : this.decrementSecond(e);
                        break
                }
                this.updateInputfield()
            }
            clearTimePickerTimer() {
                this.timePickerTimer && (clearTimeout(this.timePickerTimer), this.timePickerTimer = null)
            }
            decrementHour(e) {
                let t = (this.currentHour ? ? 0) - this.stepHour,
                    i = this.pm;
                this.hourFormat == "24" ? t = t < 0 ? 24 + t : t : this.hourFormat == "12" && (this.currentHour === 12 && (i = !this.pm), t = t <= 0 ? 12 + t : t), this.toggleAMPMIfNotMinDate(i), [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(t, this.currentMinute, this.currentSecond, i), e.preventDefault()
            }
            incrementMinute(e) {
                let t = (this.currentMinute ? ? 0) + this.stepMinute;
                t = t > 59 ? t - 60 : t, [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, t, this.currentSecond, this.pm), e.preventDefault()
            }
            decrementMinute(e) {
                let t = (this.currentMinute ? ? 0) - this.stepMinute;
                t = t < 0 ? 60 + t : t, [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, t, this.currentSecond, this.pm), e.preventDefault()
            }
            incrementSecond(e) {
                let t = this.currentSecond + this.stepSecond;
                t = t > 59 ? t - 60 : t, [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, t, this.pm), e.preventDefault()
            }
            decrementSecond(e) {
                let t = this.currentSecond - this.stepSecond;
                t = t < 0 ? 60 + t : t, [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, t, this.pm), e.preventDefault()
            }
            updateTime() {
                let e = this.value;
                this.isRangeSelection() && (e = this.value[1] || this.value[0]), this.isMultipleSelection() && (e = this.value[this.value.length - 1]), e = e ? new Date(e.getTime()) : new Date, this.hourFormat == "12" ? this.currentHour === 12 ? e.setHours(this.pm ? 12 : 0) : e.setHours(this.pm ? this.currentHour + 12 : this.currentHour) : e.setHours(this.currentHour), e.setMinutes(this.currentMinute), e.setSeconds(this.currentSecond), this.isRangeSelection() && (this.value[1] ? e = [this.value[0], e] : e = [e, null]), this.isMultipleSelection() && (e = [...this.value.slice(0, -1), e]), this.updateModel(e), this.onSelect.emit(e), this.updateInputfield()
            }
            toggleAMPM(e) {
                let t = !this.pm;
                this.pm = t, [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, this.currentSecond, t), this.updateTime(), e.preventDefault()
            }
            onUserInput(e) {
                if (!this.isKeydown) return;
                this.isKeydown = !1;
                let t = e.target.value;
                try {
                    let i = this.parseValueFromString(t);
                    this.isValidSelection(i) ? (this.updateModel(i), this.updateUI()) : this.keepInvalid && this.updateModel(i)
                } catch {
                    let r = this.keepInvalid ? t : null;
                    this.updateModel(r)
                }
                this.filled = t != null && t.length, this.onInput.emit(e)
            }
            isValidSelection(e) {
                if (this.isSingleSelection()) return this.isSelectable(e.getDate(), e.getMonth(), e.getFullYear(), !1);
                let t = e.every(i => this.isSelectable(i.getDate(), i.getMonth(), i.getFullYear(), !1));
                return t && this.isRangeSelection() && (t = e.length === 1 || e.length > 1 && e[1] >= e[0]), t
            }
            parseValueFromString(e) {
                if (!e || e.trim().length === 0) return null;
                let t;
                if (this.isSingleSelection()) t = this.parseDateTime(e);
                else if (this.isMultipleSelection()) {
                    let i = e.split(this.multipleSeparator);
                    t = [];
                    for (let r of i) t.push(this.parseDateTime(r.trim()))
                } else if (this.isRangeSelection()) {
                    let i = e.split(" " + this.rangeSeparator + " ");
                    t = [];
                    for (let r = 0; r < i.length; r++) t[r] = this.parseDateTime(i[r].trim())
                }
                return t
            }
            parseDateTime(e) {
                let t, i = e.split(" ");
                if (this.timeOnly) t = new Date, this.populateTime(t, i[0], i[1]);
                else {
                    let r = this.getDateFormat();
                    if (this.showTime) {
                        let a = this.hourFormat == "12" ? i.pop() : null,
                            u = i.pop();
                        t = this.parseDate(i.join(" "), r), this.populateTime(t, u, a)
                    } else t = this.parseDate(e, r)
                }
                return t
            }
            populateTime(e, t, i) {
                if (this.hourFormat == "12" && !i) throw "Invalid Time";
                this.pm = i === "PM" || i === "pm";
                let r = this.parseTime(t);
                e.setHours(r.hour), e.setMinutes(r.minute), e.setSeconds(r.second)
            }
            isValidDate(e) {
                return de(e) && Ge(e)
            }
            updateUI() {
                let e = this.value;
                Array.isArray(e) && (e = e.length === 2 ? e[1] : e[0]);
                let t = this.defaultDate && this.isValidDate(this.defaultDate) && !this.value ? this.defaultDate : e && this.isValidDate(e) ? e : new Date;
                this.currentMonth = t.getMonth(), this.currentYear = t.getFullYear(), this.createMonths(this.currentMonth, this.currentYear), (this.showTime || this.timeOnly) && (this.setCurrentHourPM(t.getHours()), this.currentMinute = t.getMinutes(), this.currentSecond = t.getSeconds())
            }
            showOverlay() {
                this.overlayVisible || (this.updateUI(), this.touchUI || (this.preventFocus = !0), this.overlayVisible = !0)
            }
            hideOverlay() {
                this.inputfieldViewChild ? .nativeElement.focus(), this.overlayVisible = !1, this.clearTimePickerTimer(), this.touchUI && this.disableModality(), this.cd.markForCheck()
            }
            toggle() {
                this.inline || (this.overlayVisible ? this.hideOverlay() : (this.showOverlay(), this.inputfieldViewChild ? .nativeElement.focus()))
            }
            onOverlayAnimationStart(e) {
                switch (e.toState) {
                    case "visible":
                    case "visibleTouchUI":
                        if (!this.inline) {
                            this.overlay = e.element, this.overlay ? .setAttribute(this.attributeSelector, "");
                            let t = this.inline ? void 0 : {
                                position: "absolute",
                                top: "0",
                                left: "0"
                            };
                            We(this.overlay, t), this.appendOverlay(), this.updateFocus(), this.autoZIndex && (this.touchUI ? pe.set("modal", this.overlay, this.baseZIndex || this.config.zIndex.modal) : pe.set("overlay", this.overlay, this.baseZIndex || this.config.zIndex.overlay)), this.alignOverlay(), this.onShow.emit(e)
                        }
                        break;
                    case "void":
                        this.onOverlayHide(), this.onClose.emit(e);
                        break
                }
            }
            onOverlayAnimationDone(e) {
                switch (e.toState) {
                    case "visible":
                    case "visibleTouchUI":
                        this.inline || (this.bindDocumentClickListener(), this.bindDocumentResizeListener(), this.bindScrollListener());
                        break;
                    case "void":
                        this.autoZIndex && pe.clear(e.element);
                        break
                }
            }
            appendOverlay() {
                this.appendTo && (this.appendTo === "body" ? this.document.body.appendChild(this.overlay) : qe(this.appendTo, this.overlay))
            }
            restoreOverlayAppend() {
                this.overlay && this.appendTo && this.el.nativeElement.appendChild(this.overlay)
            }
            alignOverlay() {
                this.touchUI ? this.enableModality(this.overlay) : this.overlay && (this.appendTo ? (this.view === "date" ? (this.overlay.style.width || (this.overlay.style.width = le(this.overlay) + "px"), this.overlay.style.minWidth || (this.overlay.style.minWidth = le(this.inputfieldViewChild ? .nativeElement) + "px")) : this.overlay.style.width || (this.overlay.style.width = le(this.inputfieldViewChild ? .nativeElement) + "px"), Ke(this.overlay, this.inputfieldViewChild ? .nativeElement)) : Qe(this.overlay, this.inputfieldViewChild ? .nativeElement))
            }
            enableModality(e) {
                !this.mask && this.touchUI && (this.mask = this.renderer.createElement("div"), this.renderer.setStyle(this.mask, "zIndex", String(parseInt(e.style.zIndex) - 1)), ve(this.mask, "p-overlay-mask p-datepicker-mask p-datepicker-mask-scrollblocker p-overlay-mask p-overlay-mask-enter"), this.maskClickListener = this.renderer.listen(this.mask, "click", i => {
                    this.disableModality(), this.overlayVisible = !1
                }), this.renderer.appendChild(this.document.body, this.mask), Ue())
            }
            disableModality() {
                this.mask && (ve(this.mask, "p-overlay-mask-leave"), this.animationEndListener || (this.animationEndListener = this.renderer.listen(this.mask, "animationend", this.destroyMask.bind(this))))
            }
            destroyMask() {
                if (!this.mask) return;
                this.renderer.removeChild(this.document.body, this.mask);
                let e = this.document.body.children,
                    t;
                for (let i = 0; i < e.length; i++) {
                    let r = e[i];
                    if (R(r, "p-datepicker-mask-scrollblocker")) {
                        t = !0;
                        break
                    }
                }
                t || ze(), this.unbindAnimationEndListener(), this.unbindMaskClickListener(), this.mask = null
            }
            unbindMaskClickListener() {
                this.maskClickListener && (this.maskClickListener(), this.maskClickListener = null)
            }
            unbindAnimationEndListener() {
                this.animationEndListener && this.mask && (this.animationEndListener(), this.animationEndListener = null)
            }
            writeValue(e) {
                if (this.value = e, this.value && typeof this.value == "string") try {
                    this.value = this.parseValueFromString(this.value)
                } catch {
                    this.keepInvalid && (this.value = e)
                }
                this.updateInputfield(), this.updateUI(), this.cd.markForCheck()
            }
            registerOnChange(e) {
                this.onModelChange = e
            }
            registerOnTouched(e) {
                this.onModelTouched = e
            }
            setDisabledState(e) {
                this.disabled = e, this.cd.markForCheck()
            }
            getDateFormat() {
                return this.dateFormat || this.getTranslation("dateFormat")
            }
            getFirstDateOfWeek() {
                return this._firstDayOfWeek || this.getTranslation(N.FIRST_DAY_OF_WEEK)
            }
            formatDate(e, t) {
                if (!e) return "";
                let i, r = y => {
                        let w = i + 1 < t.length && t.charAt(i + 1) === y;
                        return w && i++, w
                    },
                    a = (y, w, F) => {
                        let b = "" + w;
                        if (r(y))
                            for (; b.length < F;) b = "0" + b;
                        return b
                    },
                    u = (y, w, F, b) => r(y) ? b[w] : F[w],
                    v = "",
                    g = !1;
                if (e)
                    for (i = 0; i < t.length; i++)
                        if (g) t.charAt(i) === "'" && !r("'") ? g = !1 : v += t.charAt(i);
                        else switch (t.charAt(i)) {
                            case "d":
                                v += a("d", e.getDate(), 2);
                                break;
                            case "D":
                                v += u("D", e.getDay(), this.getTranslation(N.DAY_NAMES_SHORT), this.getTranslation(N.DAY_NAMES));
                                break;
                            case "o":
                                v += a("o", Math.round((new Date(e.getFullYear(), e.getMonth(), e.getDate()).getTime() - new Date(e.getFullYear(), 0, 0).getTime()) / 864e5), 3);
                                break;
                            case "m":
                                v += a("m", e.getMonth() + 1, 2);
                                break;
                            case "M":
                                v += u("M", e.getMonth(), this.getTranslation(N.MONTH_NAMES_SHORT), this.getTranslation(N.MONTH_NAMES));
                                break;
                            case "y":
                                v += r("y") ? e.getFullYear() : (e.getFullYear() % 100 < 10 ? "0" : "") + e.getFullYear() % 100;
                                break;
                            case "@":
                                v += e.getTime();
                                break;
                            case "!":
                                v += e.getTime() * 1e4 + this.ticksTo1970;
                                break;
                            case "'":
                                r("'") ? v += "'" : g = !0;
                                break;
                            default:
                                v += t.charAt(i)
                        }
                return v
            }
            formatTime(e) {
                if (!e) return "";
                let t = "",
                    i = e.getHours(),
                    r = e.getMinutes(),
                    a = e.getSeconds();
                return this.hourFormat == "12" && i > 11 && i != 12 && (i -= 12), this.hourFormat == "12" ? t += i === 0 ? 12 : i < 10 ? "0" + i : i : t += i < 10 ? "0" + i : i, t += ":", t += r < 10 ? "0" + r : r, this.showSeconds && (t += ":", t += a < 10 ? "0" + a : a), this.hourFormat == "12" && (t += e.getHours() > 11 ? " PM" : " AM"), t
            }
            parseTime(e) {
                let t = e.split(":"),
                    i = this.showSeconds ? 3 : 2;
                if (t.length !== i) throw "Invalid time";
                let r = parseInt(t[0]),
                    a = parseInt(t[1]),
                    u = this.showSeconds ? parseInt(t[2]) : null;
                if (isNaN(r) || isNaN(a) || r > 23 || a > 59 || this.hourFormat == "12" && r > 12 || this.showSeconds && (isNaN(u) || u > 59)) throw "Invalid time";
                return this.hourFormat == "12" && (r !== 12 && this.pm ? r += 12 : !this.pm && r === 12 && (r -= 12)), {
                    hour: r,
                    minute: a,
                    second: u
                }
            }
            parseDate(e, t) {
                if (t == null || e == null) throw "Invalid arguments";
                if (e = typeof e == "object" ? e.toString() : e + "", e === "") return null;
                let i, r, a, u = 0,
                    v = typeof this.shortYearCutoff != "string" ? this.shortYearCutoff : new Date().getFullYear() % 100 + parseInt(this.shortYearCutoff, 10),
                    g = -1,
                    y = -1,
                    w = -1,
                    F = -1,
                    b = !1,
                    f, k = U => {
                        let ee = i + 1 < t.length && t.charAt(i + 1) === U;
                        return ee && i++, ee
                    },
                    I = U => {
                        let ee = k(U),
                            ue = U === "@" ? 14 : U === "!" ? 20 : U === "y" && ee ? 4 : U === "o" ? 3 : 2,
                            ne = U === "y" ? ue : 1,
                            _e = new RegExp("^\\d{" + ne + "," + ue + "}"),
                            z = e.substring(u).match(_e);
                        if (!z) throw "Missing number at position " + u;
                        return u += z[0].length, parseInt(z[0], 10)
                    },
                    xe = (U, ee, ue) => {
                        let ne = -1,
                            _e = k(U) ? ue : ee,
                            z = [];
                        for (let L = 0; L < _e.length; L++) z.push([L, _e[L]]);
                        z.sort((L, re) => -(L[1].length - re[1].length));
                        for (let L = 0; L < z.length; L++) {
                            let re = z[L][1];
                            if (e.substr(u, re.length).toLowerCase() === re.toLowerCase()) {
                                ne = z[L][0], u += re.length;
                                break
                            }
                        }
                        if (ne !== -1) return ne + 1;
                        throw "Unknown name at position " + u
                    },
                    fe = () => {
                        if (e.charAt(u) !== t.charAt(i)) throw "Unexpected literal at position " + u;
                        u++
                    };
                for (this.view === "month" && (w = 1), i = 0; i < t.length; i++)
                    if (b) t.charAt(i) === "'" && !k("'") ? b = !1 : fe();
                    else switch (t.charAt(i)) {
                        case "d":
                            w = I("d");
                            break;
                        case "D":
                            xe("D", this.getTranslation(N.DAY_NAMES_SHORT), this.getTranslation(N.DAY_NAMES));
                            break;
                        case "o":
                            F = I("o");
                            break;
                        case "m":
                            y = I("m");
                            break;
                        case "M":
                            y = xe("M", this.getTranslation(N.MONTH_NAMES_SHORT), this.getTranslation(N.MONTH_NAMES));
                            break;
                        case "y":
                            g = I("y");
                            break;
                        case "@":
                            f = new Date(I("@")), g = f.getFullYear(), y = f.getMonth() + 1, w = f.getDate();
                            break;
                        case "!":
                            f = new Date((I("!") - this.ticksTo1970) / 1e4), g = f.getFullYear(), y = f.getMonth() + 1, w = f.getDate();
                            break;
                        case "'":
                            k("'") ? fe() : b = !0;
                            break;
                        default:
                            fe()
                    }
                if (u < e.length && (a = e.substr(u), !/^\s+/.test(a))) throw "Extra/unparsed characters found in date: " + a;
                if (g === -1 ? g = new Date().getFullYear() : g < 100 && (g += new Date().getFullYear() - new Date().getFullYear() % 100 + (g <= v ? 0 : -100)), F > -1) {
                    y = 1, w = F;
                    do {
                        if (r = this.getDaysCountInMonth(g, y - 1), w <= r) break;
                        y++, w -= r
                    } while (!0)
                }
                if (this.view === "year" && (y = y === -1 ? 1 : y, w = w === -1 ? 1 : w), f = this.daylightSavingAdjust(new Date(g, y - 1, w)), f.getFullYear() !== g || f.getMonth() + 1 !== y || f.getDate() !== w) throw "Invalid date";
                return f
            }
            daylightSavingAdjust(e) {
                return e ? (e.setHours(e.getHours() > 12 ? e.getHours() + 2 : 0), e) : null
            }
            updateFilledState() {
                this.filled = this.inputFieldValue && this.inputFieldValue != ""
            }
            isValidDateForTimeConstraints(e) {
                return this.keepInvalid ? !0 : (!this.minDate || e >= this.minDate) && (!this.maxDate || e <= this.maxDate)
            }
            onTodayButtonClick(e) {
                let t = new Date,
                    i = {
                        day: t.getDate(),
                        month: t.getMonth(),
                        year: t.getFullYear(),
                        otherMonth: t.getMonth() !== this.currentMonth || t.getFullYear() !== this.currentYear,
                        today: !0,
                        selectable: !0
                    };
                this.createMonths(t.getMonth(), t.getFullYear()), this.onDateSelect(e, i), this.onTodayClick.emit(t)
            }
            onClearButtonClick(e) {
                this.updateModel(null), this.updateInputfield(), this.hideOverlay(), this.onClearClick.emit(e)
            }
            createResponsiveStyle() {
                if (this.numberOfMonths > 1 && this.responsiveOptions) {
                    this.responsiveStyleElement || (this.responsiveStyleElement = this.renderer.createElement("style"), this.responsiveStyleElement.type = "text/css", this.renderer.appendChild(this.document.body, this.responsiveStyleElement));
                    let e = "";
                    if (this.responsiveOptions) {
                        let t = [...this.responsiveOptions].filter(i => !!(i.breakpoint && i.numMonths)).sort((i, r) => -1 * i.breakpoint.localeCompare(r.breakpoint, void 0, {
                            numeric: !0
                        }));
                        for (let i = 0; i < t.length; i++) {
                            let {
                                breakpoint: r,
                                numMonths: a
                            } = t[i], u = `
                        .p-datepicker[${this.attributeSelector}] .p-datepicker-group:nth-child(${a}) .p-datepicker-next {
                            display: inline-flex !important;
                        }
                    `;
                            for (let v = a; v < this.numberOfMonths; v++) u += `
                            .p-datepicker[${this.attributeSelector}] .p-datepicker-group:nth-child(${v+1}) {
                                display: none !important;
                            }
                        `;
                            e += `
                        @media screen and (max-width: ${r}) {
                            ${u}
                        }
                    `
                        }
                    }
                    this.responsiveStyleElement.innerHTML = e, Ze(this.responsiveStyleElement, "nonce", this.config ? .csp() ? .nonce)
                }
            }
            destroyResponsiveStyleElement() {
                this.responsiveStyleElement && (this.responsiveStyleElement.remove(), this.responsiveStyleElement = null)
            }
            bindDocumentClickListener() {
                this.documentClickListener || this.zone.runOutsideAngular(() => {
                    let e = this.el ? this.el.nativeElement.ownerDocument : this.document;
                    this.documentClickListener = this.renderer.listen(e, "mousedown", t => {
                        this.isOutsideClicked(t) && this.overlayVisible && this.zone.run(() => {
                            this.hideOverlay(), this.onClickOutside.emit(t), this.cd.markForCheck()
                        })
                    })
                })
            }
            unbindDocumentClickListener() {
                this.documentClickListener && (this.documentClickListener(), this.documentClickListener = null)
            }
            bindDocumentResizeListener() {
                !this.documentResizeListener && !this.touchUI && (this.documentResizeListener = this.renderer.listen(this.window, "resize", this.onWindowResize.bind(this)))
            }
            unbindDocumentResizeListener() {
                this.documentResizeListener && (this.documentResizeListener(), this.documentResizeListener = null)
            }
            bindScrollListener() {
                this.scrollHandler || (this.scrollHandler = new nt(this.containerViewChild ? .nativeElement, () => {
                    this.overlayVisible && this.hideOverlay()
                })), this.scrollHandler.bindScrollListener()
            }
            unbindScrollListener() {
                this.scrollHandler && this.scrollHandler.unbindScrollListener()
            }
            isOutsideClicked(e) {
                return !(this.el.nativeElement.isSameNode(e.target) || this.isNavIconClicked(e) || this.el.nativeElement.contains(e.target) || this.overlay && this.overlay.contains(e.target))
            }
            isNavIconClicked(e) {
                return R(e.target, "p-datepicker-prev-button") || R(e.target, "p-datepicker-prev-icon") || R(e.target, "p-datepicker-next-button") || R(e.target, "p-datepicker-next-icon")
            }
            onWindowResize() {
                this.overlayVisible && !je() && this.hideOverlay()
            }
            onOverlayHide() {
                this.currentView = this.view, this.mask && this.destroyMask(), this.unbindDocumentClickListener(), this.unbindDocumentResizeListener(), this.unbindScrollListener(), this.overlay = null
            }
            ngOnDestroy() {
                this.scrollHandler && (this.scrollHandler.destroy(), this.scrollHandler = null), this.translationSubscription && this.translationSubscription.unsubscribe(), this.overlay && this.autoZIndex && pe.clear(this.overlay), this.destroyResponsiveStyleElement(), this.clearTimePickerTimer(), this.restoreOverlayAppend(), this.onOverlayHide(), super.ngOnDestroy()
            }
            static\ u0275fac = function(t) {
                return new(t || n)(ke(Me), ke(Xe))
            };
            static\ u0275cmp = j({
                type: n,
                selectors: [
                    ["p-datePicker"],
                    ["p-datepicker"],
                    ["p-date-picker"]
                ],
                contentQueries: function(t, i, r) {
                    if (t & 1 && (Y(r, kt, 4), Y(r, gt, 4), Y(r, vt, 4), Y(r, yt, 4), Y(r, wt, 4), Y(r, bt, 4), Y(r, xt, 4), Y(r, Ct, 4), Y(r, Dt, 4), Y(r, Tt, 4), Y(r, It, 4), Y(r, Mt, 4), Y(r, et, 4)), t & 2) {
                        let a;
                        V(a = P()) && (i.dateTemplate = a.first), V(a = P()) && (i.headerTemplate = a.first), V(a = P()) && (i.footerTemplate = a.first), V(a = P()) && (i.disabledDateTemplate = a.first), V(a = P()) && (i.decadeTemplate = a.first), V(a = P()) && (i.previousIconTemplate = a.first), V(a = P()) && (i.nextIconTemplate = a.first), V(a = P()) && (i.triggerIconTemplate = a.first), V(a = P()) && (i.clearIconTemplate = a.first), V(a = P()) && (i.decrementIconTemplate = a.first), V(a = P()) && (i.incrementIconTemplate = a.first), V(a = P()) && (i.inputIconTemplate = a.first), V(a = P()) && (i.templates = a)
                    }
                },
                viewQuery: function(t, i) {
                    if (t & 1 && (he(St, 5), he(Vt, 5), he(Pt, 5)), t & 2) {
                        let r;
                        V(r = P()) && (i.containerViewChild = r.first), V(r = P()) && (i.inputfieldViewChild = r.first), V(r = P()) && (i.content = r.first)
                    }
                },
                inputs: {
                    iconDisplay: "iconDisplay",
                    style: "style",
                    styleClass: "styleClass",
                    inputStyle: "inputStyle",
                    inputId: "inputId",
                    name: "name",
                    inputStyleClass: "inputStyleClass",
                    placeholder: "placeholder",
                    ariaLabelledBy: "ariaLabelledBy",
                    ariaLabel: "ariaLabel",
                    iconAriaLabel: "iconAriaLabel",
                    disabled: [2, "disabled", "disabled", D],
                    dateFormat: "dateFormat",
                    multipleSeparator: "multipleSeparator",
                    rangeSeparator: "rangeSeparator",
                    inline: [2, "inline", "inline", D],
                    showOtherMonths: [2, "showOtherMonths", "showOtherMonths", D],
                    selectOtherMonths: [2, "selectOtherMonths", "selectOtherMonths", D],
                    showIcon: [2, "showIcon", "showIcon", D],
                    fluid: [2, "fluid", "fluid", D],
                    icon: "icon",
                    appendTo: "appendTo",
                    readonlyInput: [2, "readonlyInput", "readonlyInput", D],
                    shortYearCutoff: "shortYearCutoff",
                    monthNavigator: [2, "monthNavigator", "monthNavigator", D],
                    yearNavigator: [2, "yearNavigator", "yearNavigator", D],
                    hourFormat: "hourFormat",
                    timeOnly: [2, "timeOnly", "timeOnly", D],
                    stepHour: [2, "stepHour", "stepHour", J],
                    stepMinute: [2, "stepMinute", "stepMinute", J],
                    stepSecond: [2, "stepSecond", "stepSecond", J],
                    showSeconds: [2, "showSeconds", "showSeconds", D],
                    required: [2, "required", "required", D],
                    showOnFocus: [2, "showOnFocus", "showOnFocus", D],
                    showWeek: [2, "showWeek", "showWeek", D],
                    startWeekFromFirstDayOfYear: "startWeekFromFirstDayOfYear",
                    showClear: [2, "showClear", "showClear", D],
                    dataType: "dataType",
                    selectionMode: "selectionMode",
                    maxDateCount: [2, "maxDateCount", "maxDateCount", J],
                    showButtonBar: [2, "showButtonBar", "showButtonBar", D],
                    todayButtonStyleClass: "todayButtonStyleClass",
                    clearButtonStyleClass: "clearButtonStyleClass",
                    autofocus: [2, "autofocus", "autofocus", D],
                    autoZIndex: [2, "autoZIndex", "autoZIndex", D],
                    baseZIndex: [2, "baseZIndex", "baseZIndex", J],
                    panelStyleClass: "panelStyleClass",
                    panelStyle: "panelStyle",
                    keepInvalid: [2, "keepInvalid", "keepInvalid", D],
                    hideOnDateTimeSelect: [2, "hideOnDateTimeSelect", "hideOnDateTimeSelect", D],
                    touchUI: [2, "touchUI", "touchUI", D],
                    timeSeparator: "timeSeparator",
                    focusTrap: [2, "focusTrap", "focusTrap", D],
                    showTransitionOptions: "showTransitionOptions",
                    hideTransitionOptions: "hideTransitionOptions",
                    tabindex: [2, "tabindex", "tabindex", J],
                    variant: "variant",
                    size: "size",
                    minDate: "minDate",
                    maxDate: "maxDate",
                    disabledDates: "disabledDates",
                    disabledDays: "disabledDays",
                    yearRange: "yearRange",
                    showTime: "showTime",
                    responsiveOptions: "responsiveOptions",
                    numberOfMonths: "numberOfMonths",
                    firstDayOfWeek: "firstDayOfWeek",
                    locale: "locale",
                    view: "view",
                    defaultDate: "defaultDate"
                },
                outputs: {
                    onFocus: "onFocus",
                    onBlur: "onBlur",
                    onClose: "onClose",
                    onSelect: "onSelect",
                    onClear: "onClear",
                    onInput: "onInput",
                    onTodayClick: "onTodayClick",
                    onClearClick: "onClearClick",
                    onMonthChange: "onMonthChange",
                    onYearChange: "onYearChange",
                    onClickOutside: "onClickOutside",
                    onShow: "onShow"
                },
                features: [Fe([xn, mt]), Z],
                ngContentSelectors: Ft,
                decls: 4,
                vars: 6,
                consts: [
                    ["container", ""],
                    ["inputfield", ""],
                    ["contentWrapper", ""],
                    [3, "ngClass", "ngStyle"],
                    [3, "ngIf"],
                    [3, "class", "ngStyle", "ngClass", "click", 4, "ngIf"],
                    ["pInputText", "", "type", "text", "role", "combobox", "aria-autocomplete", "none", "aria-haspopup", "dialog", "autocomplete", "off", 3, "focus", "keydown", "click", "blur", "input", "pSize", "value", "readonly", "ngStyle", "ngClass", "placeholder", "disabled", "pAutoFocus", "variant", "fluid"],
                    [4, "ngIf"],
                    ["type", "button", "aria-haspopup", "dialog", "class", "p-datepicker-dropdown", "tabindex", "0", 3, "disabled", "click", 4, "ngIf"],
                    [3, "class", "click", 4, "ngIf"],
                    ["class", "p-datepicker-clear-icon", 3, "click", 4, "ngIf"],
                    [3, "click"],
                    [1, "p-datepicker-clear-icon", 3, "click"],
                    [4, "ngTemplateOutlet"],
                    ["type", "button", "aria-haspopup", "dialog", "tabindex", "0", 1, "p-datepicker-dropdown", 3, "click", "disabled"],
                    [3, "ngClass", 4, "ngIf"],
                    [3, "ngClass"],
                    [1, "p-datepicker-input-icon-container"],
                    [3, "ngClass", "click", 4, "ngIf"],
                    [4, "ngTemplateOutlet", "ngTemplateOutletContext"],
                    [3, "click", "ngClass"],
                    [3, "click", "ngStyle", "ngClass"],
                    ["class", "p-datepicker-time-picker", 4, "ngIf"],
                    ["class", "p-datepicker-buttonbar", 4, "ngIf"],
                    [1, "p-datepicker-calendar-container"],
                    ["class", "p-datepicker-calendar", 4, "ngFor", "ngForOf"],
                    ["class", "p-datepicker-month-view", 4, "ngIf"],
                    ["class", "p-datepicker-year-view", 4, "ngIf"],
                    [1, "p-datepicker-calendar"],
                    [1, "p-datepicker-header"],
                    ["size", "small", "rounded", "", "text", "", "styleClass", "p-datepicker-prev-button p-button-icon-only", "type", "button", 3, "keydown", "onClick", "ngStyle", "ariaLabel"],
                    [1, "p-datepicker-title"],
                    ["type", "button", "class", "p-datepicker-select-month", "pRipple", "", 3, "disabled", "click", "keydown", 4, "ngIf"],
                    ["type", "button", "class", "p-datepicker-select-year", "pRipple", "", 3, "disabled", "click", "keydown", 4, "ngIf"],
                    ["class", "p-datepicker-decade", 4, "ngIf"],
                    ["rounded", "", "text", "", "size", "small", "styleClass", "p-datepicker-next-button p-button-icon-only", 3, "keydown", "onClick", "ngStyle", "ariaLabel"],
                    ["class", "p-datepicker-day-view", "role", "grid", 4, "ngIf"],
                    ["type", "button", "pRipple", "", 1, "p-datepicker-select-month", 3, "click", "keydown", "disabled"],
                    ["type", "button", "pRipple", "", 1, "p-datepicker-select-year", 3, "click", "keydown", "disabled"],
                    [1, "p-datepicker-decade"],
                    ["role", "grid", 1, "p-datepicker-day-view"],
                    ["class", "p-datepicker-weekheader p-disabled", 4, "ngIf"],
                    ["class", "p-datepicker-weekday-cell", "scope", "col", 4, "ngFor", "ngForOf"],
                    [4, "ngFor", "ngForOf"],
                    [1, "p-datepicker-weekheader", "p-disabled"],
                    ["scope", "col", 1, "p-datepicker-weekday-cell"],
                    [1, "p-datepicker-weekday"],
                    ["class", "p-datepicker-weeknumber", 4, "ngIf"],
                    [3, "ngClass", 4, "ngFor", "ngForOf"],
                    [1, "p-datepicker-weeknumber"],
                    [1, "p-datepicker-weeklabel-container", "p-disabled"],
                    ["draggable", "false", "pRipple", "", 3, "click", "keydown", "ngClass"],
                    ["class", "p-hidden-accessible", "aria-live", "polite", 4, "ngIf"],
                    ["aria-live", "polite", 1, "p-hidden-accessible"],
                    [1, "p-datepicker-month-view"],
                    ["pRipple", "", 3, "ngClass", "click", "keydown", 4, "ngFor", "ngForOf"],
                    ["pRipple", "", 3, "click", "keydown", "ngClass"],
                    [1, "p-datepicker-year-view"],
                    [1, "p-datepicker-time-picker"],
                    [1, "p-datepicker-hour-picker"],
                    ["rounded", "", "text", "", "size", "small", "styleClass", "p-datepicker-increment-button p-button-icon-only", 3, "keydown", "keydown.enter", "keydown.space", "mousedown", "mouseup", "keyup.enter", "keyup.space", "mouseleave"],
                    [1, "p-datepicker-separator"],
                    [1, "p-datepicker-minute-picker"],
                    ["class", "p-datepicker-separator", 4, "ngIf"],
                    ["class", "p-datepicker-second-picker", 4, "ngIf"],
                    ["class", "p-datepicker-ampm-picker", 4, "ngIf"],
                    [1, "p-datepicker-second-picker"],
                    [1, "p-datepicker-ampm-picker"],
                    ["size", "small", "text", "", "rounded", "", "styleClass", "p-datepicker-increment-button p-button-icon-only", 3, "keydown", "onClick", "keydown.enter"],
                    ["size", "small", "text", "", "rounded", "", "styleClass", "p-datepicker-increment-button p-button-icon-only", 3, "keydown", "click", "keydown.enter"],
                    [1, "p-datepicker-buttonbar"],
                    ["size", "small", "styleClass", "p-datepicker-today-button", 3, "keydown", "onClick", "label", "ngClass"],
                    ["size", "small", "styleClass", "p-datepicker-clear-button", 3, "keydown", "onClick", "label", "ngClass"]
                ],
                template: function(t, i) {
                    t & 1 && (Ve(Et), m(0, "span", 3, 0), h(2, ti, 5, 25, "ng-template", 4)(3, vn, 9, 20, "div", 5), _()), t & 2 && (B(i.styleClass), c("ngClass", i.rootClass)("ngStyle", i.style), l(2), c("ngIf", !i.inline), l(), c("ngIf", i.inline || i.overlayVisible))
                },
                dependencies: [Be, Oe, $e, Ye, Le, He, dt, ct, ut, ot, _t, at, st, pt, rt, lt, me],
                encapsulation: 2,
                data: {
                    animation: [Ae("overlayAnimation", [Re("visibleTouchUI", X({
                        transform: "translate(-50%,-50%)",
                        opacity: 1
                    })), se("void => visible", [X({
                        opacity: 0,
                        transform: "scaleY(0.8)"
                    }), oe("{{showTransitionParams}}", X({
                        opacity: 1,
                        transform: "*"
                    }))]), se("visible => void", [oe("{{hideTransitionParams}}", X({
                        opacity: 0
                    }))]), se("void => visibleTouchUI", [X({
                        opacity: 0,
                        transform: "translate3d(-50%, -40%, 0) scale(0.9)"
                    }), oe("{{showTransitionParams}}")]), se("visibleTouchUI => void", [oe("{{hideTransitionParams}}", X({
                        opacity: 0,
                        transform: "translate3d(-50%, -40%, 0) scale(0.9)"
                    }))])])]
                },
                changeDetection: 0
            })
        }
        return n
    })(),
    nr = (() => {
        class n {
            static\ u0275fac = function(t) {
                return new(t || n)
            };
            static\ u0275mod = Se({
                type: n
            });
            static\ u0275inj = Te({
                imports: [ft, me, me]
            })
        }
        return n
    })();
export {
    ut as a, _t as b, ft as c, nr as d
};
/**i18n:6e1dbccd4192d215e143e99fb4b6a095cee3c871f5aa7cd380ca91231f35e8e0*/