@topvisor/ui
Version:
Topvisor UI-kit Vue
305 lines (304 loc) • 27.8 kB
JavaScript
import { nextTick as V } from "vue";
import { C as f } from "./forms-EIQ_3SBd.es.js";
import { TopPopupWorker as H } from "../popup/worker.js";
import { sleep as I, waitWhile as O } from "../utils/system.js";
import { historySetState as F, setHashs as K } from "../utils/route.js";
import { connectScrollShadow as R } from "../utils/scroll.js";
import { T as u, g as L } from "./dialogs.vue_vue_type_script_setup_true_lang-B9iya2uP.es.js";
import { querySelectorVisible as T, querySelectorAllArray as c, isVisible as h } from "../utils/dom.js";
$;
let E = !1;
const U = () => {
E || (E = !0, document.addEventListener("keydown", (e) => {
if (e.key !== "Escape" || !e.target || !(e.target instanceof HTMLElement)) return;
const t = e.target;
if (!t.closest(".ui-dialog") || t.contentEditable === "true" || t.contentEditable === "plaintext-only" || T(document.documentElement, ".top-popup-wrapper") || t.classList.contains("autocomplete") || T(document.documentElement, ".fancybox-container")) return;
const i = c(document, ".ui-dialog-content").filter((o) => h(o));
$(i[i.length - 1]).dialog("close");
}), document.addEventListener("click", (e) => {
if (!(e.target instanceof HTMLElement)) return;
const t = e.target.closest('[data-action="top-dialog-close"]');
if (!t) return;
e.preventDefault();
const i = t.closest(".ui-dialog-content");
if (!i) return;
const o = t.dataset.toView;
if (o == "toPrevPage()") {
x.toPrevPage(i);
return;
}
if (o) {
const r = o.split("-"), n = r.shift(), l = r.join("-");
if (!n) return;
const s = x.getElDialogById(n);
if (!s) return;
const m = c(s, `[data-view-page="${l}"]`);
if (!m) return;
if (!h(m[0])) {
const b = u.genViewPageHash(o, "prev");
F(!1, b);
return;
}
}
$(i).dialog("close");
}), document.addEventListener("submit", (e) => {
const t = e.target;
(t.matches(".modal-body > form") || t.matches(".modal-layer-body > form")) && e.preventDefault();
}), document.addEventListener("keypress", (e) => {
if (!(e.target instanceof HTMLElement)) return;
const t = e.target;
if (!(!t.closest(".ui-dialog .modal-body") || !(t.matches("input:not(.searcher), textarea:not(.searcher), select:not(.searcher), button:not(.searcher)") || t.hasAttribute("contenteditable"))) && e.key === "Enter") {
if (t.classList.contains("autocomplete")) {
e.preventDefault();
return;
}
if (t.tagName === "TEXTAREA") {
if (!e.ctrlKey && !e.metaKey) return;
const a = t.closest("form");
if (a) {
const r = c(a, 'button[type="submit"]').concat(c(a, 'input[type="submit"]')).find((n) => h(n));
r == null || r.click();
}
}
}
}), document.addEventListener("click", function(e) {
if (!(e.target instanceof HTMLElement) || !e.target.classList.contains("ui-widget-overlay")) return;
let i, o = 0;
if (c(document, ".ui-dialog").filter((r) => h(r)).forEach((r) => {
const n = Number(window.getComputedStyle(r).zIndex);
n < o || (i = r, o = n);
}), i) {
const r = i.querySelector(".ui-dialog-content");
$(r).dialog("close");
}
}), window.addEventListener("resize", x.recalcPositions), x.recalcPositions());
}, J = ':root{--dialog-border-color: var(--color-line-1);--dialog-loading-duration: 10s;--top-dialog-footer-height: var(--top-forms-base-height_s)}html.with_dialog{overflow:hidden!important}a[data-to-view]{cursor:pointer}.ui-widget-overlay{background:#040404;opacity:.5;filter:Alpha(Opacity=50)}.ui-dialog{border-radius:8px;border:none;padding:0}.ui-dialog.ui-widget{border:none}.ui-dialog-titlebar{display:none}.ui-dialog .ui-dialog-content{padding:0;overflow:visible}.ui-dialog .project_name{word-break:break-all}.ui-dialog-content{--dialog-header-height: 50px;--dialog-layer-pageSelector: 0px}.ui-dialog-content-withPageSelector{--dialog-layer-pageSelector: 42px}.modal-header,.modal-body,.modal-footer{font-size:14px;position:relative}.modal-body{padding:var(--padding-default)}.modal-body:has(>.topTable:first-child){padding-top:calc(var(--padding-default) / 4)}.modal-header{border-bottom:1px solid var(--dialog-border-color);height:var(--dialog-header-height);padding:0 var(--padding-default);display:flex;justify-content:space-between;align-items:center;gap:var(--top-padding-2)}.modal-header>*{padding:10px 0;font-size:16px}.modal-header>.top-title{margin:0;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;order:50;display:flex;align-items:center}.modal-header>.top-title>div[class*=icon]{display:none}.modal-header>div:not(.top-title){order:60}.modal-header>div.close{--top-icon-color: var(--color-text-2);cursor:pointer;background:var(--color-layout-front-1);font-size:16px;order:100;animation-name:none!important}.modal-header>div.close:hover{--top-icon-color: var(--color-text-1)}.modal-header .links_icons{position:absolute;right:50px}.modal-header .links_icons [class*=icon-]{width:auto;height:auto;padding:0 5px;color:#d6dee0}.modal-header .links_icons [class*=icon-].active{color:var(--color-bg-warning-1)}.modal-layer-pageSelector{padding:0 10px!important}.modal-body{max-height:calc(var(--100vh) - var(--dialog-header-height) - 1px - var(--dialog-layer-pageSelector) - var(--top-dialog-footer-height) - 1px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;flex-grow:1}.modal-body hr{margin:16px -15px}.modal-body h4{padding:0;margin:0 0 10px;line-height:normal}.modal-body .inner{padding:var(--padding-default);margin:0 calc(0px - var(--padding-default));position:relative}.modal-body .inner .bt{border-top:1px dashed var(--color-layout-front-primary-3);position:absolute;top:0;right:0;left:0}.modal-body .inner .bb{border-bottom:1px dashed var(--color-layout-front-primary-3);position:absolute;right:0;bottom:0;left:0}.modal-body .inner.color-1{background:var(--color-layout-front-primary-3);color:var(--color-text-1)}.modal-body .inner strong{color:var(--color-text-1)}.modal-body .comment{line-height:18px}.modal-footer{min-height:var(--top-dialog-footer-height);padding:var(--top-gap-2);display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;gap:var(--top-gap-2)}.modal-footer .modal-footer-btn-left{margin-right:auto}.modal-footer>.btn.full_width,.modal-footer>.top-button.full_width{flex-grow:1;align-self:flex-end}.modal-footer-fullWith{flex-wrap:wrap}.modal-footer-fullWith>*{flex-grow:1}.modal-footer-fullWith>.top-info{flex-grow:5}.modal-footer-fullWith>*:empty{flex-grow:0}.ui-dialog-content>.modal-layer>[data-view-page]>input[type=submit]{position:absolute;visibility:hidden}.help_popup .modal-header{display:none}.help_popup .modal-header a{top:2px;z-index:10}.help_popup .modal-header .top-title{display:none}.modal-layer{overflow:hidden}.modal-layer a[data-top-icon]:empty{color:var(--color-text-4);text-decoration:none}.modal-layer>[data-view-page]>div>div.buttons{display:flex;white-space:nowrap;gap:var(--top-padding-1)}.modal-layer>[data-view-page]>div>div.buttons:empty{display:none}.modal-layer>[data-view-page]>div>div.buttons>div,.modal-layer>[data-view-page]>div>div.buttons>a{cursor:pointer;width:auto;height:auto;min-width:auto;min-height:auto;padding:10px 9px;color:var(--color-text-4)}.modal-layer>[data-view-page]>div>div.buttons>div:hover{color:var(--color-text-2)}.modal-layer>[data-view-page]>div>div.buttons>div.hidden{display:none!important}.ui-dialog-content[data-view-page-active]{display:flex!important;flex-direction:column;justify-items:stretch}.ui-dialog-content>.modal-layer{display:flex!important;align-items:stretch;position:relative}.ui-dialog-content.i-change-page>.modal-layer{overflow:hidden}.ui-dialog-content>.modal-layer>[data-view-page]{width:100%;position:relative;display:none;flex-direction:column;justify-content:space-between;animation:.3s cubic-bezier(.4,0,.2,1) forwards}.ui-dialog-content>.modal-layer>[data-view-page].active{display:flex}.ui-dialog-content>.modal-layer>[data-view-page].reverse{animation-direction:reverse}.ui-dialog-content>.modal-layer>[data-view-page].center-to-left,.ui-dialog-content>.modal-layer>[data-view-page].right-to-center{display:flex;position:absolute;inset:0}.ui-dialog-content>.modal-layer>[data-view-page].center-to-left>div,.ui-dialog-content>.modal-layer>[data-view-page].right-to-center>div{overflow:hidden}.ui-dialog-content>.modal-layer-header{border-bottom:1px solid var(--dialog-border-color);min-height:var(--dialog-header-height)}.ui-dialog-content>.modal-layer-header>[data-view-page]>.modal-header{border:none;background:none}.ui-dialog-content>.modal-layer-header>[data-view-page]>.modal-header>*{animation:.3s cubic-bezier(.4,0,.2,1) forwards}.ui-dialog-content>.modal-layer-header>[data-view-page].reverse>.modal-header>*{animation-direction:reverse}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>.top-title{animation-name:dialog-center-to-left-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>.top-title{animation-name:dialog-right-to-center-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>[class*=widget-]{animation-name:dialog-center-to-left-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>[class*=widget-]{animation-name:dialog-right-to-center-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>div{animation-name:dialog-center-to-left-header-icons}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>div{animation-name:dialog-right-to-center-header-icons}.ui-dialog-content>.modal-layer-body{border-radius:0 0 8px 8px;max-height:calc(var(--100vh) - var(--dialog-header-height) - var(--dialog-layer-pageSelector) - var(--toolbar-height));flex-grow:2}.ui-dialog-content.i-change-page>.modal-layer-body>[data-view-page]{background:var(--color-layout-front-1)}.ui-dialog-content>.modal-layer-body>[data-view-page].center-to-left{animation-name:dialog-center-to-left}.ui-dialog-content>.modal-layer-body>[data-view-page].right-to-center{animation-name:dialog-right-to-center}.ui-dialog-content .modal-footer .second_level{box-sizing:border-box;background:var(--color-layout-front-1);width:100%;min-height:25px;display:flex;align-items:center;justify-content:center}.ui-dialog-content .modal-footer .second_level input{border-radius:8px;width:100%;height:var(--top-forms-base-height);padding:var(--top-padding-1) var(--top-padding-3);box-sizing:border-box}.ui-dialog-content>.modal-layer-body>[data-view-page].i-load-data{pointer-events:none}.ui-dialog-content>.modal-layer-body>[data-view-page].i-load-data:before{content:" ";background:#378dc6;width:0;height:4px;position:absolute;top:0;left:0;z-index:100;animation:top-loadbar var(--dialog-loading-duration) forwards}.ui-dialog-content.modal-expanded{width:100vw!important;height:calc(var(--100vh) + 10px)!important}.modal-header>[data-widget]{padding:0 8px;position:absolute;inset:0;opacity:0;overflow:hidden;align-items:center;visibility:hidden;transition:opacity .3s;z-index:1}.modal-header>[data-widget=search] div.cancel{opacity:0;transform:translate(100%);transition:transform,opacity;transition-duration:.3s}[data-view-page].i-show-search .modal-header>:not([data-widget=search]){visibility:hidden}[data-view-page].i-show-search [data-widget=search]{visibility:visible;opacity:1}[data-view-page].i-show-search [data-widget=search] .cancel{transform:translate(0);opacity:1}[data-view-page]>.modal-header>*{transition:opacity .3s}[data-view-page].i-show-search>.modal-header>div.buttons{opacity:0}.modal-layer .top-popup-wrapper{height:100%!important}@keyframes dialog-center-to-left-header-title{0%{transform:translate(0);opacity:1}75%{opacity:0}to{transform:translate(-30%);opacity:0}}@keyframes dialog-right-to-center-header-title{0%{transform:translate(100%);opacity:0}25%{opacity:0}to{transform:translate(0);opacity:1}}@keyframes dialog-center-to-left-header-icons{0%{transform:translate(0);opacity:1}35%{transform:translate(-20%);opacity:0}to{transform:translate(-20%);opacity:0}}@keyframes dialog-right-to-center-header-icons{0%{transform:translate(20%);opacity:0}65%{transform:translate(20%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes dialog-center-to-left{0%{transform:translate(0);filter:brightness(1)}to{transform:translate(-30%);filter:brightness(.9)}}@keyframes dialog-right-to-center{0%{transform:translate(100%);box-shadow:#0000001a 0 0 10px}to{transform:translate(0);box-shadow:#0003 0 0 10px}}@media only screen and (max-width: 1480px){.win_side_panel_opener{display:none}}@media only screen and (min-width: 1480px){.ui-dialog-content.with_side_panel{box-shadow:#0003 0 0 6px}.ui-dialog-content.with_side_panel .modal-layer-body{background:var(--color-layout-front-1)}[data-widget=side_panel]{--side_panel_width: calc((100vw - 900px)/2 - 28px) ;box-sizing:border-box;background:var(--color-layout-front-1);max-width:var(--side_panel_width);padding:18px;position:absolute;top:calc(var(--dialog-header-height) + 1px + var(--dialog-layer-pageSelector));bottom:calc(var(--top-dialog-footer-height) + 1px);z-index:-1;display:block;transition:.2s}.win_side_panel_left{border-radius:8px 0 0 8px;right:100%}.win_side_panel_right{border-radius:0 8px 8px 0;left:100%}.win_side_panel_closed.win_side_panel_left{right:calc(100% - var(--side_panel_width))}.win_side_panel_closed.win_side_panel_right{left:calc(100% - var(--side_panel_width))}[data-widget=side_panel] .template{display:block}[data-widget=side_panel] .template>.header,[data-widget=side_panel] .template>.footer{display:flex}.win_side_panel_opener{cursor:pointer;background:var(--color-cyan);color:#fff;padding:4px;position:absolute;top:20px}.win_side_panel_closed .win_side_panel_opener:not(:hover){opacity:.3}.win_side_panel_left .win_side_panel_opener{border-radius:4px 0 0 4px;right:100%}.win_side_panel_right .win_side_panel_opener{border-radius:0 6px 6px 0;left:100%}}@media only screen and (max-height: 900px){html.with_dialog{background:#f1f1f1;overflow:hidden}.ui-dialog.me-tightly{border-radius:0;height:auto!important;position:fixed;top:0!important;bottom:0!important}.ui-dialog.me-tightly .ui-dialog-content{min-height:100%!important}.ui-dialog.me-tightly>div>.modal-body{position:absolute;top:var(--dialog-header-height);right:0;left:0;bottom:var(--dialog-header-height)}.ui-dialog.me-tightly>div>.modal-body:last-child{bottom:0}.ui-dialog.me-tightly>div>.modal-footer{position:absolute;right:0;bottom:0;left:0}.ui-dialog.me-tightly .modal-layer-body{border-radius:0;min-height:0!important}.ui-dialog.me-tightly .modal-layer-body .modal-footer{min-height:unset}}', Z = 'html.with_dialog body{height:var(--100vh);overflow:hidden}.ui-widget-overlay{height:calc(100% - var(--toolbar-height))}.ui-dialog{border-radius:0;width:auto!important;height:auto!important;position:fixed;inset:0!important}.ui-dialog-content{width:100%!important;height:100%!important;min-width:0!important;max-width:100%!important}.modal-header>.top-title{text-align:center;font-size:14px}.modal-header>div.close{font-size:14px;order:1}.modal-header>div.close:before{content:""}.modal-body:last-child{bottom:0}.modal-footer{bottom:0}.modal-footer .second_level{padding:10px 8px}.modal-layer-body{min-height:0!important}.ui-dialog-content>.modal-layer-body{border-radius:0}.modal-body,.modal-footer{padding-right:12px;padding-left:12px}.modal-footer .btn:last-child{margin-right:12px}.modal-body .inner{padding:12px;margin:0 -12px;position:relative}', G = ".modal-menu-opener{order:1!important}.modal-menu-opener:before{--top-icon-size: 20px;--top-icon-color: #FFF;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--color-bg-primary-1);padding:3px;transition:transform .1s}.modal-menu-opener:hover:before{background:var(--color-bg-primary-2)}.modal-menu-opener.top-active:before{background:var(--color-bg-primary-2);transform:scale(.8)}.modal-layer .top-popup-wrapper{background:transparent;width:auto!important;padding:0!important;margin:0!important;top:0!important;right:0!important;left:0!important;transition:background .3s}.modal-layer .top-popup-wrapper>.top-popup[class],.modal-layer .top-popup-wrapper.with_notch>.top-popup[class]{border-radius:8px;border:none;margin:12px!important;max-width:100%;max-height:calc(100% - 24px);inset:0 0 auto!important;overflow:auto;display:flex;flex-direction:column;opacity:1;transform:translateY(calc(-100% - 24px));transition:transform .3s}.modal-layer .top-popup>.top-popup_header{background:var(--color-theme-50)}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select{border:none}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select .text{color:#fff}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select .arrow{background:none}.modal-layer .top-popup-wrapper-shown:not(.top-popup-wrapper-closed){background:#34495e40}@media only screen and (min-width: 1480px){.ui-dialog-content.with_side_panel{box-shadow:#0003 0 0 6px}.ui-dialog-content.with_side_panel .modal-layer-body{background:var(--color-layout-front-1)}[data-widget=side_panel]{--side_panel_width: calc((100vw - 900px)/2 - 28px) ;box-sizing:border-box;background:var(--color-layout-front-1);max-width:var(--side_panel_width);padding:18px;display:block;position:absolute;top:51px;bottom:51px;z-index:-1;transition:.2s}.win_side_panel_left{border-radius:8px 0 0 8px;right:100%}.win_side_panel_right{border-radius:0 8px 8px 0;left:100%}.win_side_panel_closed.win_side_panel_left{right:calc(100% - var(--side_panel_width))}.win_side_panel_closed.win_side_panel_right{left:calc(100% - var(--side_panel_width))}[data-widget=side_panel] .template{display:block}[data-widget=side_panel] .template>.header,[data-widget=side_panel] .template>.footer{display:flex}.win_side_panel_opener{cursor:pointer;background:var(--color-cyan);color:#fff;padding:4px;position:absolute;top:20px}.win_side_panel_closed .win_side_panel_opener:not(:hover){opacity:.3}.win_side_panel_left .win_side_panel_opener{border-radius:4px 0 0 4px;right:100%}.win_side_panel_right .win_side_panel_opener{border-radius:0 6px 6px 0;left:100%}}", Q = "html{--top-dialog-width: auto;--top-dialog-height: auto}.top-dialog{max-width:100vw}.top-dialog .modal-layer-body{height:var(--top-dialog-height)}", X = ".top-dialog{width:var(--top-dialog-width)!important}";
f.insertStyleToPage(J);
f.insertStyleToPage(Z, "m");
f.insertStyleToPage(G, "pc");
f.insertStyleToPage(Q);
f.insertStyleToPage(X, "pc");
let W, P = !1;
const w = (e) => !!e && typeof e == "object" && "jquery" in e, Y = () => {
$.extend($.ui.dialog.prototype.options, {
focus: (e) => {
var t;
e.target.focus(), (t = $("[autofocus]", e.target)[0]) == null || t.focus();
},
create: (e) => N(e.target),
open: (e) => ee(e.target),
close: (e) => te(e.target),
modal: !0,
resizable: !1,
closeOnEscape: !1,
width: "auto",
minHeight: 0
}), $.ui.dialog.prototype._focusTabbable = $.noop, $.ui.dialog.prototype._moveToTopOriginal = $.ui.dialog.prototype._moveToTop, $.ui.dialog.prototype._moveToTop = function() {
this._moveToTopOriginal();
const e = $(this.element);
e.trigger("dialogsMoveToTop", [e]);
}, U(), P = !0;
}, M = (e) => {
var i, o;
const t = {};
return ((i = e.dataset) == null ? void 0 : i.modal) === "false" && (t.modal = !1), (o = e.dataset) != null && o.position && (t.position = JSON.parse(e.dataset.position)), t;
}, v = (e) => document.getElementById(e), _ = async (e, t, i) => {
if (!e.startsWith("dialog_")) return;
const o = L(e);
if (o && (o.isOpened.value = !0, t !== void 0 && (o.pageActive.value = t), i !== void 0 && (o.pageActiveNext.value = i), await V(), i)) {
const a = v(e);
if (!a) return;
a.querySelectorAll(`[data-view-page="${i}"]`).length || await O(() => !a.querySelectorAll(`[data-view-page="${i}"]`).length);
}
}, N = (e) => {
var i, o;
const t = e.querySelector(".modal-body");
t && (R(t), (o = (i = u.state).decoratorOnCreate) == null || o.call(i, e), D(e));
}, D = (e) => {
$(e).on("aftershow.top-menu-popup", "[data-top-popup]", (t, i) => {
var r;
const o = i[0], a = u.getPairPage(o);
(r = a == null ? void 0 : a[1]) == null || r.prepend(o);
});
}, ee = async (e) => {
var n;
const t = e.dataset.viewPageActive, i = window.innerWidth;
f.state.documentClassModificators.set("top-dialog", "with_dialog");
const a = window.innerWidth - i;
document.documentElement.scrollHeight > window.innerHeight && (document.querySelector("html").style.marginRight = a + "px"), C();
const r = L(e.getAttribute("id"));
(n = r == null ? void 0 : r.emit) == null || n.call(r, "open", t);
}, te = async (e) => {
var r;
const t = e.getAttribute("id"), i = e.dataset.viewPageActive;
if (i) {
const n = {
vpn: u.state.viewPageN,
["view-" + t]: null
};
n["view-" + t] = null, (u.state.viewPageN === 0 || u.state.viewPageN === 1) && (n.vpn = null), K(n, !1);
}
c(document, ".ui-widget-overlay").filter((n) => h(n)).length || (f.state.documentClassModificators.delete("top-dialog"), document.querySelector("html").style.marginRight = ""), $(e).trigger("viewAfterClose", [$(e)]);
const a = L(t);
a && (a.isOpened.value = !1, (r = a.emit) == null || r.call(a, "close", i), a.onCloseOnce && (a.onCloseOnce(a.props, i), a.onCloseOnce = void 0)), window.dispatchEvent(new Event("resize"));
}, C = () => {
c(document, ".ui-dialog").filter((t) => h(t) && t.querySelector(":scope > .ui-dialog-content")).map((t) => t.querySelector(":scope > .ui-dialog-content")).forEach((t) => {
if (!t.querySelector(".modal-body")) return;
const o = t.closest(".ui-dialog"), a = M(t);
a.position ??= { of: window }, $(t).dialog("option", a), o.classList.remove("me-tightly"), (o.clientHeight ?? 0) > window.innerHeight && o.classList.add("me-tightly");
});
}, oe = async (e, t) => {
const o = /(\w+)[=-]([\w-]+)(?::([\w.:-]+))?/g.exec(e);
if (o) {
const a = o[1], r = o[2], n = o[3];
let l = [];
n && (l = n.split(":")), await j(a, r, l, t);
}
}, j = async (e, t, i, o, a) => {
P || await new Promise((l, s) => {
const m = setInterval(() => {
P && (clearInterval(m), l());
}, 10);
}), await V();
let r;
if (typeof e == "object" ? (w(e) && (e = e == null ? void 0 : e[0]), r = e) : r = v(e), !r && typeof e == "string" && u.state.load && (await u.state.load(e), r = v(e), !r))
throw new Error("Dialog no exists: " + e);
if (!r) return;
await A(r, t, i, o);
const n = $(r);
if (r != null && r.classList.contains("ui-dialog-content"))
n.dialog("open");
else {
const l = M(r);
n.dialog(l);
}
a && a(n);
}, A = async (e, t, i, o) => {
var m, b;
w(e) && (e = e == null ? void 0 : e[0]), t === void 0 && (t = e.dataset.viewPageActive), t !== e.dataset.viewPageActive && q(e) && await I(100), i === void 0 && (i = []), await _(e.getAttribute("id"), void 0, t);
const a = c(e, ".modal-layer"), r = a.reduce((d, g) => {
const p = g.querySelector(":scope > .active");
return p && d.push(p), d;
}, []), n = a.reduce((d, g) => {
const p = g.querySelector(`:scope > [data-view-page="${t}"]`);
return p && d.push(p), d;
}, []), l = i.join(":");
if (o === void 0 && (o = "next", (((m = n[0]) == null ? void 0 : m.dataset.order) ?? 0) < (((b = r[0]) == null ? void 0 : b.dataset.order) ?? 0) && (o = "prev")), !n.length) return;
if (e.dataset.viewPageActive = t, n[0].classList.contains("active")) {
n[0].dataset.viewPageArgs !== l && n.forEach((d) => {
d.dataset.viewPageArgs = l;
}), z(e, n, t, i), S(e, n, t, i);
return;
}
n.forEach((d) => {
d.dataset.viewPageArgs = l;
}), r.forEach((d) => {
d.querySelector(".top-popup-wrapper") && H.close(d.querySelector(".top-popup-wrapper"));
});
const s = n[0].closest(".ui-dialog");
switch (s && !h(s) && (o = "none"), r.length || (o = "none"), h(n[0]) && (o = "none"), o) {
case "prev": {
n.forEach((d) => {
var p, y;
const g = (p = d.parentNode) == null ? void 0 : p.querySelector(":scope > .active");
g && ((y = d.parentNode) == null || y.insertBefore(d, g));
}), r.forEach((d) => {
d.classList.add("right-to-center", "reverse");
}), n.forEach((d) => {
d.classList.add("center-to-left", "reverse");
});
break;
}
case "next": {
n.forEach((d) => {
var p, y;
const g = (p = d.parentNode) == null ? void 0 : p.querySelector(":scope > .active");
g && ((y = d.parentNode) == null || y.insertBefore(d, g.nextSibling));
}), r.forEach((d) => {
d == null || d.classList.add("center-to-left");
}), n.forEach((d) => {
d.classList.add("right-to-center");
});
break;
}
}
if (e.setAttribute("view-page-active", t), r.forEach((d) => {
d.classList.remove("active");
}), n.forEach((d) => {
d.classList.add("active");
}), z(e, n, t, i), o) {
e.classList.add("i-change-page");
const d = Number(window.getComputedStyle(n[0]).animationDuration.replace("s", "")) * 1e3;
W = setTimeout(function() {
_(e.getAttribute("id"), t, ""), q(e), S(e, n, t, i);
}, d);
} else
await _(e.getAttribute("id"), t, ""), S(e, n, t, i);
}, ae = (e) => {
var r;
const a = (r = c(e, ".modal-layer").reduce((n, l) => {
const s = l.querySelector(":scope > .active");
return s && n.push(s), n;
}, []).reduce((n, l) => {
let s = l.previousElementSibling;
for (; s && !s.hasAttribute("data-view-page"); )
s = s.previousElementSibling;
return s && n.push(s), n;
}, [])[0]) == null ? void 0 : r.dataset.viewPage;
a ? A(e, a, void 0, "prev") : $(e).dialog("close");
}, k = /* @__PURE__ */ new Set(), z = (e, t, i, o) => {
const a = e.getAttribute("id") + t[0].dataset.viewPage + i + o.join();
k.has(a) || (k.add(a), setTimeout(function() {
k.delete(a), $(e).trigger("viewBeforeOpen", [$(e), $(t), i, o]);
}));
}, S = (e, t, i, o) => {
setTimeout(function() {
$(e).trigger("viewAfterOpen", [$(e), $(t), i, o]);
});
}, B = (e) => (w(e) && (e = e == null ? void 0 : e[0]), e.classList.contains("i-change-page")), q = (e) => {
if (!B(e)) return !1;
clearTimeout(W);
const t = c(e, ".modal-layer"), i = e.dataset.viewPageActive;
return e.classList.remove("i-change-page"), t.forEach((o) => {
o.querySelectorAll(":scope > [data-view-page]").forEach((a) => {
a.classList.remove("center-to-left", "right-to-center", "reverse", "active");
});
}), t.forEach((o) => {
var a;
(a = o.querySelector(`:scope > [data-view-page="${i}"]`)) == null || a.classList.add("active");
}), !0;
}, ie = function(e) {
const t = v(e);
if (!t) return;
const i = $(t);
i.dialog("instance") && i.dialog("close");
}, re = (e, t, i) => {
w(e) && (e = e.toArray());
const o = e.reduce((a, r) => (r.hasAttribute("data-view-page") && h(r) && a.push(r), a), []);
t ? (i !== void 0 && o.forEach((a) => {
a.style.setProperty("--dialog-loading-duration", i + "s");
}), o.forEach((a) => {
a.classList.add("i-load-data");
})) : (o.forEach((a) => {
a.classList.remove("i-load-data");
}), o.forEach((a) => {
a.style.setProperty("--dialog-loading-duration", "10s");
}));
}, ne = (e) => (w(e) && (e = e == null ? void 0 : e[0]), e.classList.contains("i-load-data")), x = {
getElDialogById: v,
updatePageVue: _,
recalcPositions: C,
toViewDirty: oe,
toView: j,
toViewPage: A,
toPrevPage: ae,
setLoading: re,
isLoading: ne,
inAnimation: B,
close: ie
};
Y();
export {
x as TopDialogUtils
};
//# sourceMappingURL=utils-DY3nA9fg.es.js.map