if (!(e || o || t))
return "";
const L = [];
if (e && L.push({
key: "clear",
content: u``
}), o || t) {
const N = t ? "slotted-icon" : "icon";
L.push({
key: N,
content: u``
});
}
return u`${Tv(
L,
(N) => N.key,
(N) => N.content
)}`;
};
let $;
return m ? $ = this.inputSlot : $ = this.shadowControl || this.initInput(), $ && ($.setAttribute("class", "control validation-input"), $.setAttribute("id", `${this.id}-input`), $.type = this.getType(), this.name !== void 0 && ($.name = this.name), $.disabled = this.disabled, $.readOnly = this.readonly, $.required = this.required, $.placeholder = this.hasFocus ? "" : x, this.minlength !== void 0 && ($.minLength = this.minlength), $.title = this.title, this.maxlength !== void 0 && ($.maxLength = this.maxlength), this.min !== void 0 && ($.min = this.min), this.max !== void 0 && ($.max = this.max), this.step !== void 0 && ($.step = this.step), this.controlled || ($.value = this.value || ""), $.autocapitalize = this.type === "password" ? "off" : this.autocapitalize || $.autocapitalize, $.autocomplete = this.type === "password" ? "off" : this.autocomplete || $.autocomplete, this.type === "password" ? $.setAttribute("autocorrect", "off") : this.autocorrect && $.setAttribute("autocorrect", this.autocorrect), this.autofocus !== void 0 && ($.autofocus = this.autofocus), $.spellcheck = this.spellcheck, this.pattern !== void 0 && ($.pattern = this.pattern), this.enterkeyhint !== void 0 && ($.enterKeyHint = this.enterkeyhint), this.inputmode !== void 0 && ($.inputMode = this.inputmode), $.setAttribute("aria-labelledby", `${this.id}-label`), this.ariaLabel !== null && $.setAttribute("aria-label", this.ariaLabel), $.getAttribute("aria-describedby") || $.setAttribute(
"aria-describedby",
`${this.id}-hint ${this.id}-error`
), $.setAttribute(
"aria-invalid",
this.invalid ? "true" : "false"
)), u`
${v}
${m ? u`
` : $}
${!this.required && !this.value ? u`
${this.optional}
` : ""}${_()}
${["lh", "b2b"].includes(this.theme) && !this.value && !this.hasFocus ? u`
` : ""}
${g ? u`
${(r || i) && !c && !n ? u`
${i ? u`` : u`${this.hint}`}
` : ""}
${f}
` : ""}
`;
}
};
D.styles = Jv;
D.slots = ["icon", "hint", "error", "input"];
P([
O()
], D.prototype, "inputSlot", 2);
P([
O()
], D.prototype, "hasFocus", 2);
P([
M(".control")
], D.prototype, "shadowControl", 2);
P([
l({ reflect: !0 })
], D.prototype, "type", 2);
P([
l({ type: Boolean, reflect: !0 })
], D.prototype, "disabled", 2);
P([
l({ type: Boolean })
], D.prototype, "controlled", 2);
P([
l({ reflect: !0 })
], D.prototype, "id", 2);
P([
l({ reflect: !0 })
], D.prototype, "label", 2);
P([
l({ reflect: !0 })
], D.prototype, "hint", 2);
P([
l({ reflect: !0 })
], D.prototype, "title", 2);
P([
l({ attribute: "password-visible", type: Boolean })
], D.prototype, "passwordVisible", 2);
P([
l({ type: Boolean })
], D.prototype, "clearable", 2);
P([
l({ type: Boolean, reflect: !0 })
], D.prototype, "readonly", 2);
P([
l({ type: Number })
], D.prototype, "minlength", 2);
P([
l({ type: Number })
], D.prototype, "maxlength", 2);
P([
l({ reflect: !0 })
], D.prototype, "min", 2);
P([
l({ reflect: !0 })
], D.prototype, "max", 2);
P([
l({ type: String, reflect: !0 })
], D.prototype, "optional", 2);
P([
l({ reflect: !0 })
], D.prototype, "placeholder", 2);
P([
l({ reflect: !0 })
], D.prototype, "icon", 2);
P([
l({ reflect: !0 })
], D.prototype, "step", 2);
P([
l({ reflect: !0 })
], D.prototype, "pattern", 2);
P([
l({ type: Boolean, reflect: !0 })
], D.prototype, "invalid", 2);
P([
l({ reflect: !0 })
], D.prototype, "autocapitalize", 2);
P([
l({ reflect: !0 })
], D.prototype, "autocorrect", 2);
P([
l({ type: String })
], D.prototype, "autocomplete", 2);
P([
l({ type: Boolean })
], D.prototype, "autofocus", 2);
P([
l({ reflect: !0 })
], D.prototype, "enterkeyhint", 2);
P([
l({ type: Boolean })
], D.prototype, "spellcheck", 2);
P([
l({ reflect: !0 })
], D.prototype, "inputmode", 2);
P([
l({ type: Array })
], D.prototype, "preventDefaultKeys", 2);
P([
l({ type: String, attribute: "assistive-clear", reflect: !0 })
], D.prototype, "assistiveClear", 2);
P([
l({ type: String, attribute: "assistive-icon" })
], D.prototype, "assistiveIcon", 2);
P([
l({ type: String, attribute: "assistive-slotted-icon" })
], D.prototype, "assistiveSlottedIcon", 2);
let af = D;
w("maui-input", af);
const rf = s`
.link-list {
column-gap: calc(var(--maui-spacing-4) + var(--maui-spacing-2));
row-gap: calc(var(--maui-spacing-4) + var(--maui-spacing-2));
}
.vertical {
display: grid;
}
.horizontal {
display: flex;
flex-wrap: wrap;
}
`, nf = s`
.os.link-list {
column-gap: var(--maui-spacing-4);
row-gap: var(--maui-spacing-4);
}
`, sf = s`
.sn.link-list {
column-gap: var(--maui-spacing-5);
row-gap: var(--maui-spacing-5);
}
`, lf = s`
.four_y.link-list {
column-gap: var(--maui-spacing-4);
row-gap: var(--maui-spacing-4);
}
`, cf = s`
.mmg.link-list {
gap: var(--maui-spacing-6);
}
`, df = [rf, nf, sf, lf, cf];
var uf = Object.defineProperty, mf = Object.getOwnPropertyDescriptor, hf = (a, e, t, o) => {
for (var i = o > 1 ? void 0 : o ? mf(e, t) : e, r = a.length - 1, n; r >= 0; r--)
(n = a[r]) && (i = (o ? n(e, t, i) : n(i)) || i);
return o && i && uf(e, t, i), i;
};
class Mr extends k {
constructor() {
super(), this.orientation = "vertical", this.componentName = "link-list";
}
connectedCallback() {
super.connectedCallback(), this.setAttribute("role", "list");
}
handleSlotChange(e) {
const t = e.target;
X(
t,
[
"MAUI-FUNCTIONAL-LINK",
"MAUI-NAVIGATION-LINK",
"MAUI-SERVICE-LINK",
"MAUI-LINK-BUTTON",
"MAUI-LINK-MIMIC",
"MAUI-ICON-LINK"
],
void 0,
!0
), t.assignedNodes().forEach((i) => {
i instanceof HTMLElement && (i.setAttribute("role", "listitem"), i.theme = this.theme);
});
}
render() {
return u`
`;
}
}
Mr.styles = df;
hf([
l({ reflect: !0, type: String })
], Mr.prototype, "orientation", 2);
w("maui-link-list", Mr);
const pf = s`
${C}
.list {
color: var(--maui-color-text-copy);
}
.icon-list li {
list-style-type: none;
}
.list ul,
.list ol {
padding-left: var(--maui-spacing-4);
}
.list.icon-list ul {
padding-left: 0;
}
.item {
margin-bottom: var(--maui-spacing-base);
}
slot {
display: grid;
row-gap: var(--maui-spacing-3);
}
`, gf = s`
.os .item {
margin-bottom: var(--maui-spacing-3);
}
`, bf = s`
.four_y .item {
margin-bottom: var(--maui-spacing-3);
}
`, vf = [pf, gf, bf];
var ff = Object.defineProperty, yf = Object.getOwnPropertyDescriptor, Lr = (a, e, t, o) => {
for (var i = o > 1 ? void 0 : o ? yf(e, t) : e, r = a.length - 1, n; r >= 0; r--)
(n = a[r]) && (i = (o ? n(e, t, i) : n(i)) || i);
return o && i && ff(e, t, i), i;
};
class zi extends k {
constructor() {
super(), this.size = "medium", this.type = "unordered", this.componentName = "list";
}
connectedCallback() {
super.connectedCallback(), this.setAttribute("role", "list");
}
firstUpdated() {
super.firstUpdated();
}
handleSlotChange() {
const t = this.shadowRoot.querySelector("slot")?.assignedElements();
t && t.forEach((o) => {
o.setAttribute("size", this.size), o.setAttribute("type", this.type), o.setAttribute("theme", this.theme);
});
}
handleChange() {
this.handleSlotChange();
}
render() {
const e = this.size ? this.size : "medium", t = this.type ? this.type : "unordered";
return u`
`;
}
}
zi.styles = vf;
Lr([
l({ reflect: !0 })
], zi.prototype, "size", 2);
Lr([
l({ reflect: !0 })
], zi.prototype, "type", 2);
Lr([
F(["size", "type"])
], zi.prototype, "handleChange", 1);
w("maui-list", zi);
const ks = (a) => {
const e = h(a);
return s`
.${e}.list-item.small {
${d({ size: "copy-medium", tenant: a })};
}
.${e}.list-item.medium {
${d({ size: "copy-large", tenant: a })};
}
.${e}.list-item.large {
${d({ size: "copy-large", tenant: a })};
}
`;
}, xf = s`
${C}
${A}
:host {
display: inline;
}
.list-item {
display: flex;
font-family: var(--maui-font-family-copy);
${d({ size: "copy-medium", tenant: "wl" })};
color: var(--maui-color-text-copy);
}
.list-item {
display: grid;
grid-template-areas: 'decorator content';
grid-template-columns: max-content auto;
grid-template-columns: minmax(24px, max-content) auto;
}
.list-item.ordered {
column-gap: var(--maui-spacing-1);
}
.decorator {
grid-area: decorator;
}
.indentation {
display: block;
pointer-events: none;
user-select: none;
}
.unordered .indentation {
unicode-bidi: isolate;
font-size: 1.3em;
}
.content {
grid-area: content;
}
.children.has-children {
display: grid;
row-gap: var(--maui-spacing-3);
margin-top: var(--maui-spacing-3);
}
`, $f = s`
${ks("lh")}
`, wf = s`
.os.list-item.small {
${d({ size: "copy-small", tenant: "os" })};
}
.os.list-item.medium {
${d({ size: "copy-medium", tenant: "os" })};
}
.os.list-item.large {
${d({ size: "copy-large", tenant: "os" })};
}
`, _f = s`
.lx.list-item.small {
${d({ size: "copy-small", tenant: "lx" })};
}
.lx.list-item.medium {
${d({ size: "copy-medium", tenant: "lx" })};
}
.lx.list-item.large {
${d({ size: "copy-large", tenant: "lx" })};
}
`, kf = s`
.sn.list-item.small {
${d({ size: "copy-small", tenant: "sn" })};
}
.sn.list-item.medium {
${d({ size: "copy-medium", tenant: "sn" })};
}
.sn.list-item.large {
${d({ size: "copy-large", tenant: "sn" })};
}
`, Sf = s`
${ks("b2b")}
`, Of = s`
.four_y.list-item.small {
${d({ size: "copy-small", tenant: "four_y" })};
}
.four_y.list-item.medium {
${d({ size: "copy-medium", tenant: "four_y" })};
}
.four_y.list-item.large {
${d({ size: "copy-large", tenant: "four_y" })};
}
`, Mf = s`
.mmg.list-item.small {
${d({ size: "copy-small", tenant: "mmg" })};
}
.mmg.list-item.medium {
${d({ size: "copy-medium", tenant: "mmg" })};
}
.mmg.list-item.large {
${d({ size: "copy-large", tenant: "mmg" })};
}
.mmg.list-item.custom {
align-items: center;
column-gap: var(--maui-spacing-2);
}
`, Lf = [
xf,
$f,
wf,
_f,
kf,
Sf,
Of,
Mf
];
var Bf = Object.defineProperty, Cf = Object.getOwnPropertyDescriptor, Ai = (a, e, t, o) => {
for (var i = o > 1 ? void 0 : o ? Cf(e, t) : e, r = a.length - 1, n; r >= 0; r--)
(n = a[r]) && (i = (o ? n(e, t, i) : n(i)) || i);
return o && i && Bf(e, t, i), i;
};
function nn(a) {
return a && ["listitem", "listitem list"].includes(
a.getAttribute("role")?.toLowerCase() || ""
);
}
const yo = class Ss extends k {
constructor() {
super(), this.hasChildren = !1, this.listType = "unordered", this.listSize = "medium", this.componentName = "list-item";
}
connectedCallback() {
super.connectedCallback(), this.setAttribute("role", "listitem"), this.isNestedItem() && (this.slot = "children"), this.setListIndex();
}
// Checks whether the item is nested into an item/list
isNestedItem() {
const e = this.parentElement;
return !!e && nn(e);
}
// Sets the items list index. Used for indentation and bullet selection
setListIndex() {
const e = this.previousElementSibling?.getAttribute("list-index"), t = () => {
if (e) {
if (this.isNestedItem()) {
const i = e.split(".").filter((r) => r);
return parseInt(i[i.length - 1], 10) + (this.hasChildren ? 0 : 1);
}
return parseInt(e, 10) + (this.hasChildren ? 0 : 1);
}
}, o = () => `${t() ? `${t()}` : "1"}.`;
if (!this.isNestedItem()) {
this.setAttribute("list-index", o());
return;
}
this.parentElement && this.parentElement.getAttribute("list-index") && this.setAttribute(
"list-index",
`${[
...this.parentElement.getAttribute("list-index").split("."),
...o().split(".")
].filter((i) => i).join(".")}.`
);
}
// Gets all the nested list items
getChildrenItems() {
return this.childrenSlot ? [...this.childrenSlot.assignedElements({ flatten: !0 })].filter(
(e) => nn(e)
) : [];
}
// Returns the intended bullet character based on the current list index
static getBullet(e) {
const t = e.split(".").filter((o) => o).length;
return t === 1 ? "•" : t >= 1 ? "◦" : "•";
}
// decides if counter or bullet should be used
getDecorator(e) {
switch (this.listType) {
case "ordered":
return u`${e}
`;
case "unordered":
return u`
${Ss.getBullet(e)}
`;
default:
return "";
}
}
firstUpdated() {
super.firstUpdated(), this.updateItem();
}
updateItem() {
this.hasChildren = this.getChildrenItems().length > 0, this.setAttribute("role", `listitem${this.hasChildren ? " list" : ""}`);
const e = this.getChildrenItems();
e.length !== 0 && e.forEach((t) => {
t.setAttribute("size", this.listSize), t.setAttribute("type", this.listType);
});
}
updateIcon() {
const e = this.shadowRoot.querySelector(
'slot[name="icon"]'
);
if (!e)
return;
e.assignedElements({ flatten: !0 }).forEach((o) => {
o.setAttribute(
"size",
this.listSize === "large" ? "medium" : this.listSize
);
});
}
handleChange() {
this.updateItem(), this.updateIcon();
}
render() {
const e = this.getAttribute("list-index");
return u`
${this.listType === "custom" ? u`` : ""}
${this.getDecorator(e || "")}
`;
}
};
yo.styles = Lf;
Ai([
M("slot[name=children]")
], yo.prototype, "childrenSlot", 2);
Ai([
O()
], yo.prototype, "hasChildren", 2);
Ai([
l({ type: String, attribute: "type" })
], yo.prototype, "listType", 2);
Ai([
l({ type: String, attribute: "size" })
], yo.prototype, "listSize", 2);
Ai([
F(["listSize", "listType"])
], yo.prototype, "handleChange", 1);
let zf = yo;
w("maui-list-item", zf);
function Ft(a) {
return typeof a == "string" || a instanceof String;
}
function sn(a) {
var e;
return typeof a == "object" && a != null && (a == null || (e = a.constructor) == null ? void 0 : e.name) === "Object";
}
function Os(a, e) {
return Array.isArray(e) ? Os(a, (t, o) => e.includes(o)) : Object.entries(a).reduce((t, o) => {
let [i, r] = o;
return e(r, i) && (t[i] = r), t;
}, {});
}
const B = {
NONE: "NONE",
LEFT: "LEFT",
FORCE_LEFT: "FORCE_LEFT",
RIGHT: "RIGHT",
FORCE_RIGHT: "FORCE_RIGHT"
};
function Af(a) {
switch (a) {
case B.LEFT:
return B.FORCE_LEFT;
case B.RIGHT:
return B.FORCE_RIGHT;
default:
return a;
}
}
function Pa(a) {
return a.replace(/([.*+?^=!:${}()|[\]/\\])/g, "\\$1");
}
function na(a, e) {
if (e === a)
return !0;
const t = Array.isArray(e), o = Array.isArray(a);
let i;
if (t && o) {
if (e.length != a.length)
return !1;
for (i = 0; i < e.length; i++)
if (!na(e[i], a[i]))
return !1;
return !0;
}
if (t != o)
return !1;
if (e && a && typeof e == "object" && typeof a == "object") {
const r = e instanceof Date, n = a instanceof Date;
if (r && n)
return e.getTime() == a.getTime();
if (r != n)
return !1;
const c = e instanceof RegExp, m = a instanceof RegExp;
if (c && m)
return e.toString() == a.toString();
if (c != m)
return !1;
const g = Object.keys(e);
for (i = 0; i < g.length; i++)
if (!Object.prototype.hasOwnProperty.call(a, g[i]))
return !1;
for (i = 0; i < g.length; i++)
if (!na(a[g[i]], e[g[i]]))
return !1;
return !0;
} else if (e && a && typeof e == "function" && typeof a == "function")
return e.toString() === a.toString();
return !1;
}
class Ff {
/** Current input value */
/** Current cursor position */
/** Old input value */
/** Old selection */
constructor(e) {
for (Object.assign(this, e); this.value.slice(0, this.startChangePos) !== this.oldValue.slice(0, this.startChangePos); )
--this.oldSelection.start;
if (this.insertedCount)
for (; this.value.slice(this.cursorPos) !== this.oldValue.slice(this.oldSelection.end); )
this.value.length - this.cursorPos < this.oldValue.length - this.oldSelection.end ? ++this.oldSelection.end : ++this.cursorPos;
}
/** Start changing position */
get startChangePos() {
return Math.min(this.cursorPos, this.oldSelection.start);
}
/** Inserted symbols count */
get insertedCount() {
return this.cursorPos - this.startChangePos;
}
/** Inserted symbols */
get inserted() {
return this.value.substr(this.startChangePos, this.insertedCount);
}
/** Removed symbols count */
get removedCount() {
return Math.max(this.oldSelection.end - this.startChangePos || // for Delete
this.oldValue.length - this.value.length, 0);
}
/** Removed symbols */
get removed() {
return this.oldValue.substr(this.startChangePos, this.removedCount);
}
/** Unchanged head symbols */
get head() {
return this.value.substring(0, this.startChangePos);
}
/** Unchanged tail symbols */
get tail() {
return this.value.substring(this.startChangePos + this.insertedCount);
}
/** Remove direction */
get removeDirection() {
return !this.removedCount || this.insertedCount ? B.NONE : (this.oldSelection.end === this.cursorPos || this.oldSelection.start === this.cursorPos) && // if not range removed (event with backspace)
this.oldSelection.end === this.oldSelection.start ? B.RIGHT : B.LEFT;
}
}
function z(a, e) {
return new z.InputMask(a, e);
}
function Ms(a) {
if (a == null)
throw new Error("mask property should be defined");
return a instanceof RegExp ? z.MaskedRegExp : Ft(a) ? z.MaskedPattern : a === Date ? z.MaskedDate : a === Number ? z.MaskedNumber : Array.isArray(a) || a === Array ? z.MaskedDynamic : z.Masked && a.prototype instanceof z.Masked ? a : z.Masked && a instanceof z.Masked ? a.constructor : a instanceof Function ? z.MaskedFunction : (console.warn("Mask not found for mask", a), z.Masked);
}
function pi(a) {
if (!a)
throw new Error("Options in not defined");
if (z.Masked) {
if (a.prototype instanceof z.Masked)
return {
mask: a
};
const {
mask: e = void 0,
...t
} = a instanceof z.Masked ? {
mask: a
} : sn(a) && a.mask instanceof z.Masked ? a : {};
if (e) {
const o = e.mask;
return {
...Os(e, (i, r) => !r.startsWith("_")),
mask: e.constructor,
_mask: o,
...t
};
}
}
return sn(a) ? {
...a
} : {
mask: a
};
}
function $t(a) {
if (z.Masked && a instanceof z.Masked)
return a;
const e = pi(a), t = Ms(e.mask);
if (!t)
throw new Error("Masked class is not found for provided mask " + e.mask + ", appropriate module needs to be imported manually before creating mask.");
return e.mask === t && delete e.mask, e._mask && (e.mask = e._mask, delete e._mask), new t(e);
}
z.createMask = $t;
class Br {
/** */
/** */
/** */
/** Safely returns selection start */
get selectionStart() {
let e;
try {
e = this._unsafeSelectionStart;
} catch {
}
return e ?? this.value.length;
}
/** Safely returns selection end */
get selectionEnd() {
let e;
try {
e = this._unsafeSelectionEnd;
} catch {
}
return e ?? this.value.length;
}
/** Safely sets element selection */
select(e, t) {
if (!(e == null || t == null || e === this.selectionStart && t === this.selectionEnd))
try {
this._unsafeSelect(e, t);
} catch {
}
}
/** */
get isActive() {
return !1;
}
/** */
/** */
/** */
}
z.MaskElement = Br;
const ln = 90, Nf = 89;
class _a extends Br {
/** HTMLElement to use mask on */
constructor(e) {
super(), this.input = e, this._onKeydown = this._onKeydown.bind(this), this._onInput = this._onInput.bind(this), this._onBeforeinput = this._onBeforeinput.bind(this), this._onCompositionEnd = this._onCompositionEnd.bind(this);
}
get rootElement() {
var e, t, o;
return (e = (t = (o = this.input).getRootNode) == null ? void 0 : t.call(o)) != null ? e : document;
}
/** Is element in focus */
get isActive() {
return this.input === this.rootElement.activeElement;
}
/** Binds HTMLElement events to mask internal events */
bindEvents(e) {
this.input.addEventListener("keydown", this._onKeydown), this.input.addEventListener("input", this._onInput), this.input.addEventListener("beforeinput", this._onBeforeinput), this.input.addEventListener("compositionend", this._onCompositionEnd), this.input.addEventListener("drop", e.drop), this.input.addEventListener("click", e.click), this.input.addEventListener("focus", e.focus), this.input.addEventListener("blur", e.commit), this._handlers = e;
}
_onKeydown(e) {
if (this._handlers.redo && (e.keyCode === ln && e.shiftKey && (e.metaKey || e.ctrlKey) || e.keyCode === Nf && e.ctrlKey))
return e.preventDefault(), this._handlers.redo(e);
if (this._handlers.undo && e.keyCode === ln && (e.metaKey || e.ctrlKey))
return e.preventDefault(), this._handlers.undo(e);
e.isComposing || this._handlers.selectionChange(e);
}
_onBeforeinput(e) {
if (e.inputType === "historyUndo" && this._handlers.undo)
return e.preventDefault(), this._handlers.undo(e);
if (e.inputType === "historyRedo" && this._handlers.redo)
return e.preventDefault(), this._handlers.redo(e);
}
_onCompositionEnd(e) {
this._handlers.input(e);
}
_onInput(e) {
e.isComposing || this._handlers.input(e);
}
/** Unbinds HTMLElement events to mask internal events */
unbindEvents() {
this.input.removeEventListener("keydown", this._onKeydown), this.input.removeEventListener("input", this._onInput), this.input.removeEventListener("beforeinput", this._onBeforeinput), this.input.removeEventListener("compositionend", this._onCompositionEnd), this.input.removeEventListener("drop", this._handlers.drop), this.input.removeEventListener("click", this._handlers.click), this.input.removeEventListener("focus", this._handlers.focus), this.input.removeEventListener("blur", this._handlers.commit), this._handlers = {};
}
}
z.HTMLMaskElement = _a;
class If extends _a {
/** InputElement to use mask on */
constructor(e) {
super(e), this.input = e;
}
/** Returns InputElement selection start */
get _unsafeSelectionStart() {
return this.input.selectionStart != null ? this.input.selectionStart : this.value.length;
}
/** Returns InputElement selection end */
get _unsafeSelectionEnd() {
return this.input.selectionEnd;
}
/** Sets InputElement selection */
_unsafeSelect(e, t) {
this.input.setSelectionRange(e, t);
}
get value() {
return this.input.value;
}
set value(e) {
this.input.value = e;
}
}
z.HTMLMaskElement = _a;
class Ls extends _a {
/** Returns HTMLElement selection start */
get _unsafeSelectionStart() {
const e = this.rootElement, t = e.getSelection && e.getSelection(), o = t && t.anchorOffset, i = t && t.focusOffset;
return i == null || o == null || o < i ? o : i;
}
/** Returns HTMLElement selection end */
get _unsafeSelectionEnd() {
const e = this.rootElement, t = e.getSelection && e.getSelection(), o = t && t.anchorOffset, i = t && t.focusOffset;
return i == null || o == null || o > i ? o : i;
}
/** Sets HTMLElement selection */
_unsafeSelect(e, t) {
if (!this.rootElement.createRange)
return;
const o = this.rootElement.createRange();
o.setStart(this.input.firstChild || this.input, e), o.setEnd(this.input.lastChild || this.input, t);
const i = this.rootElement, r = i.getSelection && i.getSelection();
r && (r.removeAllRanges(), r.addRange(o));
}
/** HTMLElement value */
get value() {
return this.input.textContent || "";
}
set value(e) {
this.input.textContent = e;
}
}
z.HTMLContenteditableMaskElement = Ls;
class ka {
constructor() {
this.states = [], this.currentIndex = 0;
}
get currentState() {
return this.states[this.currentIndex];
}
get isEmpty() {
return this.states.length === 0;
}
push(e) {
this.currentIndex < this.states.length - 1 && (this.states.length = this.currentIndex + 1), this.states.push(e), this.states.length > ka.MAX_LENGTH && this.states.shift(), this.currentIndex = this.states.length - 1;
}
go(e) {
return this.currentIndex = Math.min(Math.max(this.currentIndex + e, 0), this.states.length - 1), this.currentState;
}
undo() {
return this.go(-1);
}
redo() {
return this.go(1);
}
clear() {
this.states.length = 0, this.currentIndex = 0;
}
}
ka.MAX_LENGTH = 100;
class Uf {
/**
View element
*/
/** Internal {@link Masked} model */
constructor(e, t) {
this.el = e instanceof Br ? e : e.isContentEditable && e.tagName !== "INPUT" && e.tagName !== "TEXTAREA" ? new Ls(e) : new If(e), this.masked = $t(t), this._listeners = {}, this._value = "", this._unmaskedValue = "", this._rawInputValue = "", this.history = new ka(), this._saveSelection = this._saveSelection.bind(this), this._onInput = this._onInput.bind(this), this._onChange = this._onChange.bind(this), this._onDrop = this._onDrop.bind(this), this._onFocus = this._onFocus.bind(this), this._onClick = this._onClick.bind(this), this._onUndo = this._onUndo.bind(this), this._onRedo = this._onRedo.bind(this), this.alignCursor = this.alignCursor.bind(this), this.alignCursorFriendly = this.alignCursorFriendly.bind(this), this._bindEvents(), this.updateValue(), this._onChange();
}
maskEquals(e) {
var t;
return e == null || ((t = this.masked) == null ? void 0 : t.maskEquals(e));
}
/** Masked */
get mask() {
return this.masked.mask;
}
set mask(e) {
if (this.maskEquals(e))
return;
if (!(e instanceof z.Masked) && this.masked.constructor === Ms(e)) {
this.masked.updateOptions({
mask: e
});
return;
}
const t = e instanceof z.Masked ? e : $t({
mask: e
});
t.unmaskedValue = this.masked.unmaskedValue, this.masked = t;
}
/** Raw value */
get value() {
return this._value;
}
set value(e) {
this.value !== e && (this.masked.value = e, this.updateControl("auto"));
}
/** Unmasked value */
get unmaskedValue() {
return this._unmaskedValue;
}
set unmaskedValue(e) {
this.unmaskedValue !== e && (this.masked.unmaskedValue = e, this.updateControl("auto"));
}
/** Raw input value */
get rawInputValue() {
return this._rawInputValue;
}
set rawInputValue(e) {
this.rawInputValue !== e && (this.masked.rawInputValue = e, this.updateControl(), this.alignCursor());
}
/** Typed unmasked value */
get typedValue() {
return this.masked.typedValue;
}
set typedValue(e) {
this.masked.typedValueEquals(e) || (this.masked.typedValue = e, this.updateControl("auto"));
}
/** Display value */
get displayValue() {
return this.masked.displayValue;
}
/** Starts listening to element events */
_bindEvents() {
this.el.bindEvents({
selectionChange: this._saveSelection,
input: this._onInput,
drop: this._onDrop,
click: this._onClick,
focus: this._onFocus,
commit: this._onChange,
undo: this._onUndo,
redo: this._onRedo
});
}
/** Stops listening to element events */
_unbindEvents() {
this.el && this.el.unbindEvents();
}
/** Fires custom event */
_fireEvent(e, t) {
const o = this._listeners[e];
o && o.forEach((i) => i(t));
}
/** Current selection start */
get selectionStart() {
return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart;
}
/** Current cursor position */
get cursorPos() {
return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd;
}
set cursorPos(e) {
!this.el || !this.el.isActive || (this.el.select(e, e), this._saveSelection());
}
/** Stores current selection */
_saveSelection() {
this.displayValue !== this.el.value && console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."), this._selection = {
start: this.selectionStart,
end: this.cursorPos
};
}
/** Syncronizes model value from view */
updateValue() {
this.masked.value = this.el.value, this._value = this.masked.value, this._unmaskedValue = this.masked.unmaskedValue, this._rawInputValue = this.masked.rawInputValue;
}
/** Syncronizes view from model value, fires change events */
updateControl(e) {
const t = this.masked.unmaskedValue, o = this.masked.value, i = this.masked.rawInputValue, r = this.displayValue, n = this.unmaskedValue !== t || this.value !== o || this._rawInputValue !== i;
this._unmaskedValue = t, this._value = o, this._rawInputValue = i, this.el.value !== r && (this.el.value = r), e === "auto" ? this.alignCursor() : e != null && (this.cursorPos = e), n && this._fireChangeEvents(), !this._historyChanging && (n || this.history.isEmpty) && this.history.push({
unmaskedValue: t,
selection: {
start: this.selectionStart,
end: this.cursorPos
}
});
}
/** Updates options with deep equal check, recreates {@link Masked} model if mask type changes */
updateOptions(e) {
const {
mask: t,
...o
} = e, i = !this.maskEquals(t), r = this.masked.optionsIsChanged(o);
i && (this.mask = t), r && this.masked.updateOptions(o), (i || r) && this.updateControl();
}
/** Updates cursor */
updateCursor(e) {
e != null && (this.cursorPos = e, this._delayUpdateCursor(e));
}
/** Delays cursor update to support mobile browsers */
_delayUpdateCursor(e) {
this._abortUpdateCursor(), this._changingCursorPos = e, this._cursorChanging = setTimeout(() => {
this.el && (this.cursorPos = this._changingCursorPos, this._abortUpdateCursor());
}, 10);
}
/** Fires custom events */
_fireChangeEvents() {
this._fireEvent("accept", this._inputEvent), this.masked.isComplete && this._fireEvent("complete", this._inputEvent);
}
/** Aborts delayed cursor update */
_abortUpdateCursor() {
this._cursorChanging && (clearTimeout(this._cursorChanging), delete this._cursorChanging);
}
/** Aligns cursor to nearest available position */
alignCursor() {
this.cursorPos = this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos, B.LEFT));
}
/** Aligns cursor only if selection is empty */
alignCursorFriendly() {
this.selectionStart === this.cursorPos && this.alignCursor();
}
/** Adds listener on custom event */
on(e, t) {
return this._listeners[e] || (this._listeners[e] = []), this._listeners[e].push(t), this;
}
/** Removes custom event listener */
off(e, t) {
if (!this._listeners[e])
return this;
if (!t)
return delete this._listeners[e], this;
const o = this._listeners[e].indexOf(t);
return o >= 0 && this._listeners[e].splice(o, 1), this;
}
/** Handles view input event */
_onInput(e) {
this._inputEvent = e, this._abortUpdateCursor();
const t = new Ff({
// new state
value: this.el.value,
cursorPos: this.cursorPos,
// old state
oldValue: this.displayValue,
oldSelection: this._selection
}), o = this.masked.rawInputValue, i = this.masked.splice(t.startChangePos, t.removed.length, t.inserted, t.removeDirection, {
input: !0,
raw: !0
}).offset, r = o === this.masked.rawInputValue ? t.removeDirection : B.NONE;
let n = this.masked.nearestInputPos(t.startChangePos + i, r);
r !== B.NONE && (n = this.masked.nearestInputPos(n, B.NONE)), this.updateControl(n), delete this._inputEvent;
}
/** Handles view change event and commits model value */
_onChange() {
this.displayValue !== this.el.value && this.updateValue(), this.masked.doCommit(), this.updateControl(), this._saveSelection();
}
/** Handles view drop event, prevents by default */
_onDrop(e) {
e.preventDefault(), e.stopPropagation();
}
/** Restore last selection on focus */
_onFocus(e) {
this.alignCursorFriendly();
}
/** Restore last selection on focus */
_onClick(e) {
this.alignCursorFriendly();
}
_onUndo() {
this._applyHistoryState(this.history.undo());
}
_onRedo() {
this._applyHistoryState(this.history.redo());
}
_applyHistoryState(e) {
e && (this._historyChanging = !0, this.unmaskedValue = e.unmaskedValue, this.el.select(e.selection.start, e.selection.end), this._saveSelection(), this._historyChanging = !1);
}
/** Unbind view events and removes element reference */
destroy() {
this._unbindEvents(), this._listeners.length = 0, delete this.el;
}
}
z.InputMask = Uf;
class I {
/** Inserted symbols */
/** Additional offset if any changes occurred before tail */
/** Raw inserted is used by dynamic mask */
/** Can skip chars */
static normalize(e) {
return Array.isArray(e) ? e : [e, new I()];
}
constructor(e) {
Object.assign(this, {
inserted: "",
rawInserted: "",
tailShift: 0,
skip: !1
}, e);
}
/** Aggregate changes */
aggregate(e) {
return this.inserted += e.inserted, this.rawInserted += e.rawInserted, this.tailShift += e.tailShift, this.skip = this.skip || e.skip, this;
}
/** Total offset considering all changes */
get offset() {
return this.tailShift + this.inserted.length;
}
get consumed() {
return !!this.rawInserted || this.skip;
}
equals(e) {
return this.inserted === e.inserted && this.tailShift === e.tailShift && this.rawInserted === e.rawInserted && this.skip === e.skip;
}
}
z.ChangeDetails = I;
class Qe {
/** Tail value as string */
/** Tail start position */
/** Start position */
constructor(e, t, o) {
e === void 0 && (e = ""), t === void 0 && (t = 0), this.value = e, this.from = t, this.stop = o;
}
toString() {
return this.value;
}
extend(e) {
this.value += String(e);
}
appendTo(e) {
return e.append(this.toString(), {
tail: !0
}).aggregate(e._appendPlaceholder());
}
get state() {
return {
value: this.value,
from: this.from,
stop: this.stop
};
}
set state(e) {
Object.assign(this, e);
}
unshift(e) {
if (!this.value.length || e != null && this.from >= e)
return "";
const t = this.value[0];
return this.value = this.value.slice(1), t;
}
shift() {
if (!this.value.length)
return "";
const e = this.value[this.value.length - 1];
return this.value = this.value.slice(0, -1), e;
}
}
class ce {
/** */
/** */
/** Transforms value before mask processing */
/** Transforms each char before mask processing */
/** Validates if value is acceptable */
/** Does additional processing at the end of editing */
/** Format typed value to string */
/** Parse string to get typed value */
/** Enable characters overwriting */
/** */
/** */
/** */
/** */
constructor(e) {
this._value = "", this._update({
...ce.DEFAULTS,
...e
}), this._initialized = !0;
}
/** Sets and applies new options */
updateOptions(e) {
this.optionsIsChanged(e) && this.withValueRefresh(this._update.bind(this, e));
}
/** Sets new options */
_update(e) {
Object.assign(this, e);
}
/** Mask state */
get state() {
return {
_value: this.value,
_rawInputValue: this.rawInputValue
};
}
set state(e) {
this._value = e._value;
}
/** Resets value */
reset() {
this._value = "";
}
get value() {
return this._value;
}
set value(e) {
this.resolve(e, {
input: !0
});
}
/** Resolve new value */
resolve(e, t) {
t === void 0 && (t = {
input: !0
}), this.reset(), this.append(e, t, ""), this.doCommit();
}
get unmaskedValue() {
return this.value;
}
set unmaskedValue(e) {
this.resolve(e, {});
}
get typedValue() {
return this.parse ? this.parse(this.value, this) : this.unmaskedValue;
}
set typedValue(e) {
this.format ? this.value = this.format(e, this) : this.unmaskedValue = String(e);
}
/** Value that includes raw user input */
get rawInputValue() {
return this.extractInput(0, this.displayValue.length, {
raw: !0
});
}
set rawInputValue(e) {
this.resolve(e, {
raw: !0
});
}
get displayValue() {
return this.value;
}
get isComplete() {
return !0;
}
get isFilled() {
return this.isComplete;
}
/** Finds nearest input position in direction */
nearestInputPos(e, t) {
return e;
}
totalInputPositions(e, t) {
return e === void 0 && (e = 0), t === void 0 && (t = this.displayValue.length), Math.min(this.displayValue.length, t - e);
}
/** Extracts value in range considering flags */
extractInput(e, t, o) {
return e === void 0 && (e = 0), t === void 0 && (t = this.displayValue.length), this.displayValue.slice(e, t);
}
/** Extracts tail in range */
extractTail(e, t) {
return e === void 0 && (e = 0), t === void 0 && (t = this.displayValue.length), new Qe(this.extractInput(e, t), e);
}
/** Appends tail */
appendTail(e) {
return Ft(e) && (e = new Qe(String(e))), e.appendTo(this);
}
/** Appends char */
_appendCharRaw(e, t) {
return e ? (this._value += e, new I({
inserted: e,
rawInserted: e
})) : new I();
}
/** Appends char */
_appendChar(e, t, o) {
t === void 0 && (t = {});
const i = this.state;
let r;
if ([e, r] = this.doPrepareChar(e, t), e && (r = r.aggregate(this._appendCharRaw(e, t)), !r.rawInserted && this.autofix === "pad")) {
const n = this.state;
this.state = i;
let c = this.pad(t);
const m = this._appendCharRaw(e, t);
c = c.aggregate(m), m.rawInserted || c.equals(r) ? r = c : this.state = n;
}
if (r.inserted) {
let n, c = this.doValidate(t) !== !1;
if (c && o != null) {
const m = this.state;
if (this.overwrite === !0) {
n = o.state;
for (let f = 0; f < r.rawInserted.length; ++f)
o.unshift(this.displayValue.length - r.tailShift);
}
let g = this.appendTail(o);
if (c = g.rawInserted.length === o.toString().length, !(c && g.inserted) && this.overwrite === "shift") {
this.state = m, n = o.state;
for (let f = 0; f < r.rawInserted.length; ++f)
o.shift();
g = this.appendTail(o), c = g.rawInserted.length === o.toString().length;
}
c && g.inserted && (this.state = m);
}
c || (r = new I(), this.state = i, o && n && (o.state = n));
}
return r;
}
/** Appends optional placeholder at the end */
_appendPlaceholder() {
return new I();
}
/** Appends optional eager placeholder at the end */
_appendEager() {
return new I();
}
/** Appends symbols considering flags */
append(e, t, o) {
if (!Ft(e))
throw new Error("value should be string");
const i = Ft(o) ? new Qe(String(o)) : o;
t != null && t.tail && (t._beforeTailState = this.state);
let r;
[e, r] = this.doPrepare(e, t);
for (let n = 0; n < e.length; ++n) {
const c = this._appendChar(e[n], t, i);
if (!c.rawInserted && !this.doSkipInvalid(e[n], t, i))
break;
r.aggregate(c);
}
return (this.eager === !0 || this.eager === "append") && t != null && t.input && e && r.aggregate(this._appendEager()), i != null && (r.tailShift += this.appendTail(i).tailShift), r;
}
remove(e, t) {
return e === void 0 && (e = 0), t === void 0 && (t = this.displayValue.length), this._value = this.displayValue.slice(0, e) + this.displayValue.slice(t), new I();
}
/** Calls function and reapplies current value */
withValueRefresh(e) {
if (this._refreshing || !this._initialized)
return e();
this._refreshing = !0;
const t = this.rawInputValue, o = this.value, i = e();
return this.rawInputValue = t, this.value && this.value !== o && o.indexOf(this.value) === 0 && (this.append(o.slice(this.displayValue.length), {}, ""), this.doCommit()), delete this._refreshing, i;
}
runIsolated(e) {
if (this._isolated || !this._initialized)
return e(this);
this._isolated = !0;
const t = this.state, o = e(this);
return this.state = t, delete this._isolated, o;
}
doSkipInvalid(e, t, o) {
return !!this.skipInvalid;
}
/** Prepares string before mask processing */
doPrepare(e, t) {
return t === void 0 && (t = {}), I.normalize(this.prepare ? this.prepare(e, this, t) : e);
}
/** Prepares each char before mask processing */
doPrepareChar(e, t) {
return t === void 0 && (t = {}), I.normalize(this.prepareChar ? this.prepareChar(e, this, t) : e);
}
/** Validates if value is acceptable */
doValidate(e) {
return (!this.validate || this.validate(this.value, this, e)) && (!this.parent || this.parent.doValidate(e));
}
/** Does additional processing at the end of editing */
doCommit() {
this.commit && this.commit(this.value, this);
}
splice(e, t, o, i, r) {
o === void 0 && (o = ""), i === void 0 && (i = B.NONE), r === void 0 && (r = {
input: !0
});
const n = e + t, c = this.extractTail(n), m = this.eager === !0 || this.eager === "remove";
let g;
m && (i = Af(i), g = this.extractInput(0, n, {
raw: !0
}));
let f = e;
const v = new I();
if (i !== B.NONE && (f = this.nearestInputPos(e, t > 1 && e !== 0 && !m ? B.NONE : i), v.tailShift = f - e), v.aggregate(this.remove(f)), m && i !== B.NONE && g === this.rawInputValue)
if (i === B.FORCE_LEFT) {
let x;
for (; g === this.rawInputValue && (x = this.displayValue.length); )
v.aggregate(new I({
tailShift: -1
})).aggregate(this.remove(x - 1));
} else
i === B.FORCE_RIGHT && c.unshift();
return v.aggregate(this.append(o, r, c));
}
maskEquals(e) {
return this.mask === e;
}
optionsIsChanged(e) {
return !na(this, e);
}
typedValueEquals(e) {
const t = this.typedValue;
return e === t || ce.EMPTY_VALUES.includes(e) && ce.EMPTY_VALUES.includes(t) || (this.format ? this.format(e, this) === this.format(this.typedValue, this) : !1);
}
pad(e) {
return new I();
}
}
ce.DEFAULTS = {
skipInvalid: !0
};
ce.EMPTY_VALUES = [void 0, null, ""];
z.Masked = ce;
class ro {
/** */
constructor(e, t) {
e === void 0 && (e = []), t === void 0 && (t = 0), this.chunks = e, this.from = t;
}
toString() {
return this.chunks.map(String).join("");
}
extend(e) {
if (!String(e))
return;
e = Ft(e) ? new Qe(String(e)) : e;
const t = this.chunks[this.chunks.length - 1], o = t && // if stops are same or tail has no stop
(t.stop === e.stop || e.stop == null) && // if tail chunk goes just after last chunk
e.from === t.from + t.toString().length;
if (e instanceof Qe)
o ? t.extend(e.toString()) : this.chunks.push(e);
else if (e instanceof ro) {
if (e.stop == null) {
let i;
for (; e.chunks.length && e.chunks[0].stop == null; )
i = e.chunks.shift(), i.from += e.from, this.extend(i);
}
e.toString() && (e.stop = e.blockIndex, this.chunks.push(e));
}
}
appendTo(e) {
if (!(e instanceof z.MaskedPattern))
return new Qe(this.toString()).appendTo(e);
const t = new I();
for (let o = 0; o < this.chunks.length; ++o) {
const i = this.chunks[o], r = e._mapPosToBlock(e.displayValue.length), n = i.stop;
let c;
if (n != null && // if block not found or stop is behind lastBlock
(!r || r.index <= n) && ((i instanceof ro || // for continuous block also check if stop is exist
e._stops.indexOf(n) >= 0) && t.aggregate(e._appendPlaceholder(n)), c = i instanceof ro && e._blocks[n]), c) {
const m = c.appendTail(i);
t.aggregate(m);
const g = i.toString().slice(m.rawInserted.length);
g && t.aggregate(e.append(g, {
tail: !0
}));
} else
t.aggregate(e.append(i.toString(), {
tail: !0
}));
}
return t;
}
get state() {
return {
chunks: this.chunks.map((e) => e.state),
from: this.from,
stop: this.stop,
blockIndex: this.blockIndex
};
}
set state(e) {
const {
chunks: t,
...o
} = e;
Object.assign(this, o), this.chunks = t.map((i) => {
const r = "chunks" in i ? new ro() : new Qe();
return r.state = i, r;
});
}
unshift(e) {
if (!this.chunks.length || e != null && this.from >= e)
return "";
const t = e != null ? e - this.from : e;
let o = 0;
for (; o < this.chunks.length; ) {
const i = this.chunks[o], r = i.unshift(t);
if (i.toString()) {
if (!r)
break;
++o;
} else
this.chunks.splice(o, 1);
if (r)
return r;
}
return "";
}
shift() {
if (!this.chunks.length)
return "";
let e = this.chunks.length - 1;
for (; 0 <= e; ) {
const t = this.chunks[e], o = t.shift();
if (t.toString()) {
if (!o)
break;
--e;
} else
this.chunks.splice(e, 1);
if (o)
return o;
}
return "";
}
}
class Rf {
constructor(e, t) {
this.masked = e, this._log = [];
const {
offset: o,
index: i
} = e._mapPosToBlock(t) || (t < 0 ? (
// first
{
index: 0,
offset: 0
}
) : (
// last
{
index: this.masked._blocks.length,
offset: 0
}
));
this.offset = o, this.index = i, this.ok = !1;
}
get block() {
return this.masked._blocks[this.index];
}
get pos() {
return this.masked._blockStartPos(this.index) + this.offset;
}
get state() {
return {
index: this.index,
offset: this.offset,
ok: this.ok
};
}
set state(e) {
Object.assign(this, e);
}
pushState() {
this._log.push(this.state);
}
popState() {
const e = this._log.pop();
return e && (this.state = e), e;
}
bindBlock() {
this.block || (this.index < 0 && (this.index = 0, this.offset = 0), this.index >= this.masked._blocks.length && (this.index = this.masked._blocks.length - 1, this.offset = this.block.displayValue.length));
}
_pushLeft(e) {
for (this.pushState(), this.bindBlock(); 0 <= this.index; --this.index, this.offset = ((t = this.block) == null ? void 0 : t.displayValue.length) || 0) {
var t;
if (e())
return this.ok = !0;
}
return this.ok = !1;
}
_pushRight(e) {
for (this.pushState(), this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0)
if (e())
return this.ok = !0;
return this.ok = !1;
}
pushLeftBeforeFilled() {
return this._pushLeft(() => {
if (!(this.block.isFixed || !this.block.value) && (this.offset = this.block.nearestInputPos(this.offset, B.FORCE_LEFT), this.offset !== 0))
return !0;
});
}
pushLeftBeforeInput() {
return this._pushLeft(() => {
if (!this.block.isFixed)
return this.offset = this.block.nearestInputPos(this.offset, B.LEFT), !0;
});
}
pushLeftBeforeRequired() {
return this._pushLeft(() => {
if (!(this.block.isFixed || this.block.isOptional && !this.block.value))
return this.offset = this.block.nearestInputPos(this.offset, B.LEFT), !0;
});
}
pushRightBeforeFilled() {
return this._pushRight(() => {
if (!(this.block.isFixed || !this.block.value) && (this.offset = this.block.nearestInputPos(this.offset, B.FORCE_RIGHT), this.offset !== this.block.value.length))
return !0;
});
}
pushRightBeforeInput() {
return this._pushRight(() => {
if (!this.block.isFixed)
return this.offset = this.block.nearestInputPos(this.offset, B.NONE), !0;
});
}
pushRightBeforeRequired() {
return this._pushRight(() => {
if (!(this.block.isFixed || this.block.isOptional && !this.block.value))
return this.offset = this.block.nearestInputPos(this.offset, B.NONE), !0;
});
}
}
class Bs {
/** */
/** */
/** */
/** */
/** */
/** */
constructor(e) {
Object.assign(this, e), this._value = "", this.isFixed = !0;
}
get value() {
return this._value;
}
get unmaskedValue() {
return this.isUnmasking ? this.value : "";
}
get rawInputValue() {
return this._isRawInput ? this.value : "";
}
get displayValue() {
return this.value;
}
reset() {
this._isRawInput = !1, this._value = "";
}
remove(e, t) {
return e === void 0 && (e = 0), t === void 0 && (t = this._value.length), this._value = this._value.slice(0, e) + this._value.slice(t), this._value || (this._isRawInput = !1), new I();
}
nearestInputPos(e, t) {
t === void 0 && (t = B.NONE);
const o = 0, i = this._value.length;
switch (t) {
case B.LEFT:
case B.FORCE_LEFT:
return o;
case B.NONE:
case B.RIGHT:
case B.FORCE_RIGHT:
default:
return i;
}
}
totalInputPositions(e, t) {
return e === void 0 && (e = 0), t === void 0 && (t = this._value.length), this._isRawInput ? t - e : 0;
}
extractInput(e, t, o) {
return e === void 0 && (e = 0), t === void 0 && (t = this._value.length), o === void 0 && (o = {}), o.raw && this._isRawInput && this._value.slice(e, t) || "";
}
get isComplete() {
return !0;
}
get isFilled() {
return !!this._value;
}
_appendChar(e, t) {
if (t === void 0 && (t = {}), this.isFilled)
return new I();
const o = this.eager === !0 || this.eager === "append", r = this.char === e && (this.isUnmasking || t.input || t.raw) && (!t.raw || !o) && !t.tail, n = new I({
inserted: this.char,
rawInserted: r ? this.char : ""
});
return this._value = this.char, this._isRawInput = r && (t.raw || t.input), n;
}
_appendEager() {
return this._appendChar(this.char, {
tail: !0
});
}
_appendPlaceholder() {
const e = new I();
return this.isFilled || (this._value = e.inserted = this.char), e;
}
extractTail() {
return new Qe("");
}
appendTail(e) {
return Ft(e) && (e = new Qe(String(e))), e.appendTo(this);
}
append(e, t, o) {
const i = this._appendChar(e[0], t);
return o != null && (i.tailShift += this.appendTail(o).tailShift), i;
}
doCommit() {
}
get state() {
return {
_value: this._value,
_rawInputValue: this.rawInputValue
};
}
set state(e) {
this._value = e._value, this._isRawInput = !!e._rawInputValue;
}
pad(e) {
return this._appendPlaceholder();
}
}
class sa {
/** */
/** */
/** */
/** */
/** */
/** */
/** */
/** */
constructor(e) {
const {
parent: t,
isOptional: o,
placeholderChar: i,
displayChar: r,
lazy: n,
eager: c,
...m
} = e;
this.masked = $t(m), Object.assign(this, {
parent: t,
isOptional: o,
placeholderChar: i,
displayChar: r,
lazy: n,
eager: c
});
}
reset() {
this.isFilled = !1, this.masked.reset();
}
remove(e, t) {
return e === void 0 && (e = 0), t === void 0 && (t = this.value.length), e === 0 && t >= 1 ? (this.isFilled = !1, this.masked.remove(e, t)) : new I();
}
get value() {
return this.masked.value || (this.isFilled && !this.isOptional ? this.placeholderChar : "");
}
get unmaskedValue() {
return this.masked.unmaskedValue;
}
get rawInputValue() {
return this.masked.rawInputValue;
}
get displayValue() {
return this.masked.value && this.displayChar || this.value;
}
get isComplete() {
return !!this.masked.value || this.isOptional;
}
_appendChar(e, t) {
if (t === void 0 && (t = {}), this.isFilled)
return new I();
const o = this.masked.state;
let i = this.masked._appendChar(e, this.currentMaskFlags(t));
return i.inserted && this.doValidate(t) === !1 && (i = new I(), this.masked.state = o), !i.inserted && !this.isOptional && !this.lazy && !t.input && (i.inserted = this.placeholderChar), i.skip = !i.inserted && !this.isOptional, this.isFilled = !!i.inserted, i;
}
append(e, t, o) {
return this.masked.append(e, this.currentMaskFlags(t), o);
}
_appendPlaceholder() {
return this.isFilled || this.isOptional ? new I() : (this.isFilled = !0, new I({
inserted: this.placeholderChar
}));
}
_appendEager() {
return new I();
}
extractTail(e, t) {
return this.masked.extractTail(e, t);
}
appendTail(e) {
return this.masked.appendTail(e);
}
extractInput(e, t, o) {
return e === void 0 && (e = 0), t === void 0 && (t = this.value.length), this.masked.extractInput(e, t, o);
}
nearestInputPos(e, t) {
t === void 0 && (t = B.NONE);
const o = 0, i = this.value.length, r = Math.min(Math.max(e, o), i);
switch (t) {
case B.LEFT:
case B.FORCE_LEFT:
return this.isComplete ? r : o;
case B.RIGHT:
case B.FORCE_RIGHT:
return this.isComplete ? r : i;
case B.NONE:
default:
return r;
}
}
totalInputPositions(e, t) {
return e === void 0 && (e = 0), t === void 0 && (t = this.value.length), this.value.slice(e, t).length;
}
doValidate(e) {
return this.masked.doValidate(this.currentMaskFlags(e)) && (!this.parent || this.parent.doValidate(this.currentMaskFlags(e)));
}
doCommit() {
this.masked.doCommit();
}
get state() {
return {
_value: this.value,
_rawInputValue: this.rawInputValue,
masked: this.masked.state,
isFilled: this.isFilled
};
}
set state(e) {
this.masked.state = e.masked, this.isFilled = e.isFilled;
}
currentMaskFlags(e) {
var t;
return {
...e,
_beforeTailState: (e == null || (t = e._beforeTailState) == null ? void 0 : t.masked) || e?._beforeTailState
};
}
pad(e) {
return new I();
}
}
sa.DEFAULT_DEFINITIONS = {
0: /\d/,
a: /[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,
// http://stackoverflow.com/a/22075070
"*": /./
};
class Df extends ce {
/** */
/** Enable characters overwriting */
/** */
/** */
/** */
updateOptions(e) {
super.updateOptions(e);
}
_update(e) {
const t = e.mask;
t && (e.validate = (o) => o.search(t) >= 0), super._update(e);
}
}
z.MaskedRegExp = Df;
class de extends ce {
/** */
/** */
/** Single char for empty input */
/** Single char for filled input */
/** Show placeholder only when needed */
/** Enable characters overwriting */
/** */
/** */
/** */
constructor(e) {
super({
...de.DEFAULTS,
...e,
definitions: Object.assign({}, sa.DEFAULT_DEFINITIONS, e?.definitions)
});
}
updateOptions(e) {
super.updateOptions(e);
}
_update(e) {
e.definitions = Object.assign({}, this.definitions, e.definitions), super._update(e), this._rebuildMask();
}
_rebuildMask() {
const e = this.definitions;
this._blocks = [], this.exposeBlock = void 0, this._stops = [], this._maskedBlocks = {};
const t = this.mask;
if (!t || !e)
return;
let o = !1, i = !1;
for (let r = 0; r < t.length; ++r) {
if (this.blocks) {
const g = t.slice(r), f = Object.keys(this.blocks).filter((x) => g.indexOf(x) === 0);
f.sort((x, _) => _.length - x.length);
const v = f[0];
if (v) {
const {
expose: x,
repeat: _,
...$
} = pi(this.blocks[v]), L = {
lazy: this.lazy,
eager: this.eager,
placeholderChar: this.placeholderChar,
displayChar: this.displayChar,
overwrite: this.overwrite,
autofix: this.autofix,
...$,
repeat: _,
parent: this
}, N = _ != null ? new z.RepeatBlock(
L
/* TODO */
) : $t(L);
N && (this._blocks.push(N), x && (this.exposeBlock = N), this._maskedBlocks[v] || (this._maskedBlocks[v] = []), this._maskedBlocks[v].push(this._blocks.length -