@topvisor/ui 1.5.4-2 → 1.5.4-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/.chunks/{api-_5LGo-V0.amd.js → api-DuS0Qura.amd.js} +2 -2
  2. package/.chunks/{api-_5LGo-V0.amd.js.map → api-DuS0Qura.amd.js.map} +1 -1
  3. package/.chunks/{api-_5LGo-V0.esm.js → api-DuS0Qura.esm.js} +2 -2
  4. package/.chunks/{api-_5LGo-V0.esm.js.map → api-DuS0Qura.esm.js.map} +1 -1
  5. package/.chunks/{app-6Z66TVYe.amd.js → app-BXCICBAa.amd.js} +2 -2
  6. package/.chunks/{app-6Z66TVYe.amd.js.map → app-BXCICBAa.amd.js.map} +1 -1
  7. package/.chunks/{app-6Z66TVYe.esm.js → app-BXCICBAa.esm.js} +6 -6
  8. package/.chunks/{app-6Z66TVYe.esm.js.map → app-BXCICBAa.esm.js.map} +1 -1
  9. package/.chunks/{datepicker-BDTqyuv7.amd.js → datepicker-BnBQNlTc.amd.js} +2 -2
  10. package/.chunks/{datepicker-BDTqyuv7.amd.js.map → datepicker-BnBQNlTc.amd.js.map} +1 -1
  11. package/.chunks/{datepicker-BDTqyuv7.esm.js → datepicker-BnBQNlTc.esm.js} +2 -2
  12. package/.chunks/{datepicker-BDTqyuv7.esm.js.map → datepicker-BnBQNlTc.esm.js.map} +1 -1
  13. package/.chunks/{dialog-ClEF_87z.amd.js → dialog-BPUICFiG.amd.js} +2 -2
  14. package/.chunks/{dialog-ClEF_87z.amd.js.map → dialog-BPUICFiG.amd.js.map} +1 -1
  15. package/.chunks/{dialog-ClEF_87z.esm.js → dialog-BPUICFiG.esm.js} +4 -4
  16. package/.chunks/{dialog-ClEF_87z.esm.js.map → dialog-BPUICFiG.esm.js.map} +1 -1
  17. package/.chunks/{dialog_regionSelectorRegions-B1vjbW-i.amd.js → dialog_regionSelectorRegions-BKvg82IO.amd.js} +2 -2
  18. package/.chunks/{dialog_regionSelectorRegions-B1vjbW-i.amd.js.map → dialog_regionSelectorRegions-BKvg82IO.amd.js.map} +1 -1
  19. package/.chunks/{dialog_regionSelectorRegions-B1vjbW-i.esm.js → dialog_regionSelectorRegions-BKvg82IO.esm.js} +5 -5
  20. package/.chunks/{dialog_regionSelectorRegions-B1vjbW-i.esm.js.map → dialog_regionSelectorRegions-BKvg82IO.esm.js.map} +1 -1
  21. package/.chunks/{dialogs-DFrx1Kl4.amd.js → dialogs-CbMNuvfF.amd.js} +2 -2
  22. package/.chunks/{dialogs-DFrx1Kl4.amd.js.map → dialogs-CbMNuvfF.amd.js.map} +1 -1
  23. package/.chunks/{dialogs-DFrx1Kl4.esm.js → dialogs-CbMNuvfF.esm.js} +3 -3
  24. package/.chunks/{dialogs-DFrx1Kl4.esm.js.map → dialogs-CbMNuvfF.esm.js.map} +1 -1
  25. package/.chunks/{forms-BboZ50-J.amd.js → forms-CdCS6WAQ.amd.js} +2 -2
  26. package/.chunks/forms-CdCS6WAQ.amd.js.map +1 -0
  27. package/.chunks/{forms-BboZ50-J.esm.js → forms-CdCS6WAQ.esm.js} +10 -8
  28. package/.chunks/{forms-BboZ50-J.esm.js.map → forms-CdCS6WAQ.esm.js.map} +1 -1
  29. package/.chunks/formsExt-Ck5q-jXI.amd.js +2 -0
  30. package/.chunks/formsExt-Ck5q-jXI.amd.js.map +1 -0
  31. package/.chunks/{formsExt-ILcRjD-o.esm.js → formsExt-Ck5q-jXI.esm.js} +20 -9
  32. package/.chunks/{formsExt-ILcRjD-o.esm.js.map → formsExt-Ck5q-jXI.esm.js.map} +1 -1
  33. package/.chunks/{notice-B84XdLbj.amd.js → notice-DA4p-RwX.amd.js} +2 -2
  34. package/.chunks/{notice-B84XdLbj.amd.js.map → notice-DA4p-RwX.amd.js.map} +1 -1
  35. package/.chunks/{notice-B84XdLbj.esm.js → notice-DA4p-RwX.esm.js} +2 -2
  36. package/.chunks/{notice-B84XdLbj.esm.js.map → notice-DA4p-RwX.esm.js.map} +1 -1
  37. package/.chunks/{popup-BEMxqg2s.amd.js → popup-CN7-bnQJ.amd.js} +2 -2
  38. package/.chunks/{popup-BEMxqg2s.amd.js.map → popup-CN7-bnQJ.amd.js.map} +1 -1
  39. package/.chunks/{popup-BEMxqg2s.esm.js → popup-CN7-bnQJ.esm.js} +3 -3
  40. package/.chunks/{popup-BEMxqg2s.esm.js.map → popup-CN7-bnQJ.esm.js.map} +1 -1
  41. package/.chunks/{popup-CgrKc5Db.amd.js → popup-DHCqvZzI.amd.js} +2 -2
  42. package/.chunks/popup-DHCqvZzI.amd.js.map +1 -0
  43. package/.chunks/{popup-CgrKc5Db.esm.js → popup-DHCqvZzI.esm.js} +8 -7
  44. package/.chunks/{popup-CgrKc5Db.esm.js.map → popup-DHCqvZzI.esm.js.map} +1 -1
  45. package/.chunks/{utils-DmmlQmsO.amd.js → utils-DrvuXyXl.amd.js} +2 -2
  46. package/.chunks/{utils-DmmlQmsO.amd.js.map → utils-DrvuXyXl.amd.js.map} +1 -1
  47. package/.chunks/{utils-DmmlQmsO.esm.js → utils-DrvuXyXl.esm.js} +3 -3
  48. package/.chunks/{utils-DmmlQmsO.esm.js.map → utils-DrvuXyXl.esm.js.map} +1 -1
  49. package/.chunks/{utils-B0qCve4y.amd.js → utils-lidKtVjF.amd.js} +2 -2
  50. package/.chunks/{utils-B0qCve4y.amd.js.map → utils-lidKtVjF.amd.js.map} +1 -1
  51. package/.chunks/{utils-B0qCve4y.esm.js → utils-lidKtVjF.esm.js} +4 -4
  52. package/.chunks/{utils-B0qCve4y.esm.js.map → utils-lidKtVjF.esm.js.map} +1 -1
  53. package/.chunks/{worker-DhqknASO.amd.js → worker-spLieexQ.amd.js} +2 -2
  54. package/.chunks/{worker-DhqknASO.amd.js.map → worker-spLieexQ.amd.js.map} +1 -1
  55. package/.chunks/{worker-DhqknASO.esm.js → worker-spLieexQ.esm.js} +3 -3
  56. package/.chunks/{worker-DhqknASO.esm.js.map → worker-spLieexQ.esm.js.map} +1 -1
  57. package/api/index.amd.js +1 -1
  58. package/api/index.amd.js.map +1 -1
  59. package/api/index.js +1 -1
  60. package/autoload-css-manifest.amd.json +4 -4
  61. package/autoload-css-manifest.json +4 -4
  62. package/charts/charts.amd.js +1 -1
  63. package/charts/charts.amd.js.map +1 -1
  64. package/charts/charts.js +1 -1
  65. package/core/app.amd.js +1 -1
  66. package/core/app.amd.js.map +1 -1
  67. package/core/app.js +4 -4
  68. package/dialog/dialog.amd.js +1 -1
  69. package/dialog/dialog.amd.js.map +1 -1
  70. package/dialog/dialog.js +3 -3
  71. package/forms/forms.amd.js +1 -1
  72. package/forms/forms.amd.js.map +1 -1
  73. package/forms/forms.js +1 -1
  74. package/formsExt/formsExt.amd.js +1 -1
  75. package/formsExt/formsExt.amd.js.map +1 -1
  76. package/formsExt/formsExt.js +1 -1
  77. package/icomoon/Topvisor icons.json +152 -129
  78. package/icomoon/demo.html +15 -1
  79. package/icomoon/fonts/Topvisor-2.eot +0 -0
  80. package/icomoon/fonts/Topvisor-2.svg +1 -0
  81. package/icomoon/fonts/Topvisor-2.ttf +0 -0
  82. package/icomoon/fonts/Topvisor-2.woff +0 -0
  83. package/icomoon/selection.json +1 -1
  84. package/icomoon/style.css +8 -5
  85. package/layout/layout.amd.js +1 -1
  86. package/layout/layout.amd.js.map +1 -1
  87. package/layout/layout.js +1 -1
  88. package/package.json +1 -1
  89. package/popup/popup.amd.js +1 -1
  90. package/popup/popup.amd.js.map +1 -1
  91. package/popup/popup.js +1 -1
  92. package/popup/worker.amd.js +1 -1
  93. package/popup/worker.amd.js.map +1 -1
  94. package/popup/worker.js +1 -1
  95. package/project/project.amd.js +1 -1
  96. package/project/project.amd.js.map +1 -1
  97. package/project/project.js +39 -14
  98. package/project/project.js.map +1 -1
  99. package/src/components/formsExt/selector2/selector2.vue.d.ts +8 -0
  100. package/src/components/popup/popupPrompt/types.d.ts +5 -0
  101. package/src/components/project/groupSelector/groupSelector.vue.d.ts +2 -1
  102. package/src/components/project/groupSelector/groups/groups.vue.d.ts +9 -1
  103. package/src/components/project/groupSelector/groups/types.d.ts +2 -0
  104. package/src/components/project/projectSelector/projectSelector.vue.d.ts +5 -1
  105. package/tabsView/tabsView.amd.js +1 -1
  106. package/tabsView/tabsView.amd.js.map +1 -1
  107. package/tabsView/tabsView.js +2 -2
  108. package/utils/clipboard.amd.js +1 -1
  109. package/utils/clipboard.amd.js.map +1 -1
  110. package/utils/clipboard.js +1 -1
  111. package/utils/date.amd.js +1 -1
  112. package/utils/date.amd.js.map +1 -1
  113. package/utils/date.js +1 -1
  114. package/utils/device.amd.js +1 -1
  115. package/utils/device.amd.js.map +1 -1
  116. package/utils/device.js +1 -1
  117. package/utils/lodash.amd.js +1 -1
  118. package/utils/lodash.amd.js.map +1 -1
  119. package/utils/lodash.js +1 -1
  120. package/utils/price.amd.js +1 -1
  121. package/utils/price.amd.js.map +1 -1
  122. package/utils/price.js +1 -1
  123. package/utils/searchers.amd.js +1 -1
  124. package/utils/searchers.amd.js.map +1 -1
  125. package/utils/searchers.js +1 -1
  126. package/utils/string.amd.js +1 -1
  127. package/utils/string.amd.js.map +1 -1
  128. package/utils/string.js +1 -1
  129. package/.chunks/forms-BboZ50-J.amd.js.map +0 -1
  130. package/.chunks/formsExt-ILcRjD-o.amd.js +0 -2
  131. package/.chunks/formsExt-ILcRjD-o.amd.js.map +0 -1
  132. package/.chunks/popup-CgrKc5Db.amd.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[".chunks/popup-DHCqvZzI.esm.js","../../src/components/popup/popup/opener/opener.vue","../../src/components/popup/popup/popup.vue","../../src/components/popup/popup/listItem.vue","../../src/components/popup/popup/widgetInput/widgetInput.vue","../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"names":["vue","exports","j","vue_1","worker_spLieexQ_esm_js_1","M","N","P","F","I","L","R","n","l","u","d","p","m","h","g","v","C","$core","$emit","forms_CdCS6WAQ_esm_js_1","z","B","V","$slots","$attrs","H","t","U","$i18n","W","i","a","G","_","S","K"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-CdCS6WAQ.esm.js\", \"./worker-spLieexQ.esm.js\", \"vue\"], function (require, exports, forms_CdCS6WAQ_esm_js_1, worker_spLieexQ_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.s = exports.r = exports.o = exports.n = exports.i = exports.c = exports.a = void 0;\n //#endregion\n //#region src/components/popup/popup/opener/opener.vue\n var j = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"opener\",\n props: {\n id: {},\n pos: { default: \"3\" },\n notch: {\n type: Boolean,\n default: !0\n },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: { default: \"fixed\" },\n data: {}\n },\n setup(e) {\n let t = e, n = t.id || Math.random() + \"\", a;\n function o(e) {\n setTimeout(() => {\n a = e.nextElementSibling, a && s(a);\n });\n }\n (0, vue_1.onUpdated)(() => {\n a && s(a);\n });\n function s(e) {\n e.dataset.topPopup = \"#\" + n;\n let i = !!e.dataset.topPopupDisabled;\n if (e.dataset.topPopupId = n, e.dataset.topPopupPos = t.pos, e.dataset.topPopupPosBy = t.posBy, e.dataset.topPopupNotch = t.notch ? \"true\" : \"\", e.dataset.topPopupOpenByHover = t.openByHover ? \"true\" : \"\", e.dataset.topPopupDisabled = t.disabled ? \"true\" : \"\", e.__TopPopupOpenerProps = t, t.openByFocusInput && e.classList.contains(\"top-input\")) {\n let n = e.querySelector(\"input\");\n if (n.onfocus = () => {\n e.dataset.topPopupDisabled || worker_spLieexQ_esm_js_1.t.getPopupFromOpener(e)?.vueGetComponent()?.opened || worker_spLieexQ_esm_js_1.t.openByOpener(e);\n }, t.disabled !== i && n === document.activeElement) {\n let n = worker_spLieexQ_esm_js_1.t.getPopupFromOpener(e);\n !t.disabled && !n && worker_spLieexQ_esm_js_1.t.openByOpener(e), t.disabled && n && n.close();\n }\n }\n }\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [(0, vue_1.createElementVNode)(\"template\", { ref: o }), (0, vue_1.renderSlot)(e.$slots, \"default\")], 64));\n }\n }), M = {\n key: 0,\n class: \"top-popup_header\"\n }, N = {\n key: 0,\n class: \"top-as-a closer\"\n }, P = {\n key: 1,\n class: \"top-popup_widget\"\n }, F = {\n key: 2,\n class: \"top-popup_content\"\n }, I = {\n key: 4,\n class: \"top-popup_footer\"\n }, L = [\"href\"], R = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popup\",\n props: {\n id: { default: \"\" },\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: { default: \"3\" },\n notch: {\n type: Boolean,\n default: !0\n },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: { default: \"fixed\" },\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\"\n ],\n setup(e, { expose: n, emit: l }) {\n let u = e, d = l, p = u.id || \"top-popup-id-\" + Math.random(), m = {\n id: p,\n popup: void 0\n };\n n(m);\n let h = (0, vue_1.ref)(null), g = (0, vue_1.ref)(null), v = (0, vue_1.ref)(), C = {\n onOpen: async (e) => {\n e.elPopup && (h.value = e.elPopup), e.elPopupInner && (e.elPopupInner.innerText = \"\", g.value = e.elPopupInner), C.opened = !0, C.popup = e, m.popup = e, v.value = e.el.__TopPopupOpenerProps.data, d(\"open\", {\n elPopup: e.elPopup,\n elPopupOpener: e.el,\n data: v.value\n });\n },\n onClose: (e) => {\n g.value = null, C.opened = !1, C.popup = void 0, v.value = void 0, d(\"close\", {\n elPopup: e.elPopup,\n elPopupOpener: e.el,\n data: e.el.__TopPopupOpenerProps.data\n });\n },\n classRef: (0, vue_1.toRef)(u, \"class\"),\n opened: !1,\n popup: void 0,\n transitionDurationRef: (0, vue_1.toRef)(u, \"transitionDuration\")\n };\n return (0, vue_1.watch)(() => u.class, (e, t) => {\n if (!h.value)\n return;\n let n = e?.split(\" \") ?? [], r = (t?.split(\" \") ?? []).filter((e) => !n.includes(e));\n h.value.classList.remove(...r), h.value.classList.add(...n);\n }), worker_spLieexQ_esm_js_1.t.regVueComponent(p, C), (0, vue_1.onUnmounted)(() => {\n worker_spLieexQ_esm_js_1.t.unregVueComponent(p);\n }), (n, r) => {\n let l = (0, vue_1.resolveDirective)(\"top-scroll-shadow\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [n.$slots.opener ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(j, {\n key: 0,\n id: (0, vue_1.unref)(p),\n pos: e.pos,\n posBy: e.posBy,\n notch: e.notch,\n openByFocusInput: e.openByFocusInput,\n openByHover: n.$core.state.isMobile || n.$core.state.isMobileUA ? !1 : e.openByHover,\n disabled: e.disabled\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(n.$slots, \"opener\")]),\n _: 3\n }, 8, [\n \"id\",\n \"pos\",\n \"posBy\",\n \"notch\",\n \"openByFocusInput\",\n \"openByHover\",\n \"disabled\"\n ])) : (0, vue_1.createCommentVNode)(\"\", !0), g.value ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n key: 1,\n to: g.value\n }, [\n n.$slots.header || n.$core.state.isMobile ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", M, [n.$core.state.isMobile ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"span\", N, (0, vue_1.toDisplayString)(n.$i18n.Common.Close), 1)) : (0, vue_1.createCommentVNode)(\"\", !0), (0, vue_1.renderSlot)(n.$slots, \"header\", { data: v.value })])) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.widget ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", P, [(0, vue_1.renderSlot)(n.$slots, \"widget\")])) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.content ? (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", F, [(0, vue_1.renderSlot)(n.$slots, \"content\", { data: v.value })])), [[l]]) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.contentList ? (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"ul\", {\n key: 3,\n class: \"top-popup_content\",\n onScroll: r[0] ||= (e) => n.$emit(\"scrollContentList\", e)\n }, [(0, vue_1.renderSlot)(n.$slots, \"contentList\", { data: v.value })], 32)), [[l]]) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.footer || e.footerSupportLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", I, [e.footerSupportLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"a\", {\n key: 0,\n class: \"top-popup_footerSupportLink\",\n href: e.footerSupportLink,\n target: \"_blank\"\n }, [(0, vue_1.createVNode)(forms_CdCS6WAQ_esm_js_1.d, { hint: \"\" })], 8, L)) : (0, vue_1.createCommentVNode)(\"\", !0), (0, vue_1.renderSlot)(n.$slots, \"footer\", { data: v.value })])) : (0, vue_1.createCommentVNode)(\"\", !0)\n ], 8, [\"to\"])) : (0, vue_1.createCommentVNode)(\"\", !0)], 64);\n };\n }\n }), z = { class: \"top-popup_listItemActionsLabel top-ellipsis1\" }, B = { class: \"top-popup_listItemActions\" }, V = /* @__PURE__ */ (0, vue_1.defineComponent)({\n inheritAttrs: !1,\n __name: \"listItem\",\n props: {\n type: { default: \"button\" },\n closeByClick: {\n type: Boolean,\n default: !0\n },\n attrs: {}\n },\n setup(e) {\n let t = e;\n return (n, r) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"li\", { class: (0, vue_1.normalizeClass)({ \"top-popup_liNoSelectable\": t.type !== \"button\" }) }, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(n.$attrs.href ? \"a\" : \"div\"), (0, vue_1.mergeProps)({ class: {\n \"top-popup_listItem\": !0,\n [\"top-popup_listItem-\" + t.type]: !!t.type,\n \"top-popup_liastItem-withActions\": n.$slots.actions,\n \"top-popup-noCloser\": !e.closeByClick,\n a: t.type === \"button\"\n } }, {\n ...n.$attrs,\n ...e.attrs\n }), {\n default: (0, vue_1.withCtx)(() => [n.$slots.actions ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: 0 }, [(0, vue_1.createElementVNode)(\"div\", z, [(0, vue_1.renderSlot)(n.$slots, \"default\")]), (0, vue_1.createElementVNode)(\"div\", B, [(0, vue_1.renderSlot)(n.$slots, \"actions\")])], 64)) : (0, vue_1.renderSlot)(n.$slots, \"default\", { key: 1 })]),\n _: 3\n }, 16, [\"class\"])), (0, vue_1.renderSlot)(n.$slots, \"buttons\")], 2));\n }\n }), H = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"widgetInput\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n modelValue: {},\n name: {},\n disabled: { type: Boolean },\n readonly: { type: Boolean },\n modificator: {},\n size: {},\n styling: {},\n isError: { type: Boolean },\n isLoading: { type: Boolean },\n icon: {},\n icon2: {},\n addCleaner: {\n type: Boolean,\n default: !0\n },\n title: {},\n captionType: {}\n }, {\n modelValue: { default: \"\" },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(t) {\n let n = (0, vue_1.useModel)(t, \"modelValue\");\n return (t, r) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(forms_CdCS6WAQ_esm_js_1.c, (0, vue_1.mergeProps)(t.$props, {\n modificator: \"popupWidgetInput\",\n modelValue: n.value,\n \"onUpdate:modelValue\": r[0] ||= (e) => n.value = e\n }), null, 16, [\"modelValue\"]));\n }\n }), U = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupAlert\",\n props: {\n submitText: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\"\n ],\n setup(e) {\n let { submitText: t, ...r } = e;\n return (e, i) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupAlert\" }, r, {\n onOpen: i[0] ||= (t) => e.$emit(\"open\", t),\n onClose: i[1] ||= (t) => e.$emit(\"close\", t),\n onScrollContentList: i[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"footer\"), (0, vue_1.createVNode)(forms_CdCS6WAQ_esm_js_1.h, null, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(t) || e.$i18n.Common.Close), 1)]),\n _: 1\n })]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), W = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupConfirm\",\n props: {\n cancelText: {},\n submitText: {},\n isWarning: { type: Boolean },\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\",\n \"submit\"\n ],\n setup(e, { emit: t }) {\n let r = e, i = t, a = (0, vue_1.ref)(!1), s = () => {\n a.value = !0, i(\"submit\");\n }, c = (e) => {\n if (a.value) {\n a.value = !1;\n return;\n }\n i(\"close\", e);\n }, { submitText: l, cancelText: p, isWarning: m, ...g } = r;\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupConfirm\" }, g, {\n onOpen: t[0] ||= (t) => e.$emit(\"open\", t),\n onClose: t[1] ||= (e) => c(e),\n onScrollContentList: t[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [\n (0, vue_1.renderSlot)(e.$slots, \"footer\"),\n (0, vue_1.createVNode)(forms_CdCS6WAQ_esm_js_1.h, { color: \"theme\" }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(p) || e.$i18n.Common.Cancel), 1)]),\n _: 1\n }),\n (0, vue_1.createVNode)(forms_CdCS6WAQ_esm_js_1.h, {\n onClick: s,\n color: (0, vue_1.unref)(m) ? \"red\" : \"blue\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(l) || e.$i18n.Common.Continue), 1)]),\n _: 1\n }, 8, [\"color\"])\n ]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), G = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupPrompt\",\n props: {\n submitText: {},\n cancelText: {},\n defaultValue: {},\n inputProps: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\",\n \"submit\"\n ],\n setup(e, { emit: t }) {\n let r = e, i = t, a = () => c.value = r.defaultValue ?? \"\", s = (0, vue_1.ref)(!1), c = (0, vue_1.ref)();\n (0, vue_1.watch)(() => r.defaultValue, () => a(), { immediate: !0 });\n let l = () => {\n s.value = !0;\n }, p = (e) => {\n if (s.value) {\n s.value = !1, i(\"submit\", c.value), a();\n return;\n }\n a(), i(\"close\", e);\n }, { submitText: m, cancelText: g, defaultValue: _, inputProps: v, ...S } = r;\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupPrompt\" }, S, {\n onOpen: t[1] ||= (t) => e.$emit(\"open\", t),\n onClose: t[2] ||= (e) => p(e),\n onScrollContentList: t[3] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [\n (0, vue_1.renderSlot)(e.$slots, \"footer\"),\n (0, vue_1.createVNode)(forms_CdCS6WAQ_esm_js_1.h, { color: \"theme\" }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(g) || e.$i18n.Common.Cancel), 1)]),\n _: 1\n }),\n (0, vue_1.createVNode)(forms_CdCS6WAQ_esm_js_1.h, { onClick: l }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(m) || e.$i18n.Common.OK), 1)]),\n _: 1\n })\n ]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\"), (0, vue_1.createVNode)(H, (0, vue_1.mergeProps)({\n modelValue: c.value,\n \"onUpdate:modelValue\": t[0] ||= (e) => c.value = e,\n modelModifiers: { trim: !0 }\n }, (0, vue_1.unref)(v)), null, 16, [\"modelValue\"])]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), K = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupHint\",\n props: {\n hint: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n setup(e) {\n let { hint: n, ...r } = e;\n return (e, i) => {\n let a = (0, vue_1.resolveDirective)(\"top-tooltip\");\n return (0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupHint\" }, r, {\n onOpen: i[0] ||= (t) => e.$emit(\"open\", t),\n onClose: i[1] ||= (t) => e.$emit(\"close\", t),\n onScrollContentList: i[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.withDirectives)((0, vue_1.createVNode)(forms_CdCS6WAQ_esm_js_1.d, {\n hint: (0, vue_1.unref)(n),\n class: \"top-popupHint_opener\"\n }, null, 8, [\"hint\"]), [[a]])]),\n _: 2\n }, [e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"0\"\n } : void 0]), 1040);\n };\n }\n });\n exports.c = j;\n exports.s = R;\n exports.o = V;\n exports.a = H;\n exports.i = U;\n exports.r = W;\n exports.n = G;\n exports.t = K;\n});\n//# sourceMappingURL=popup-DHCqvZzI.esm.js.map\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUpdated } from 'vue';\nimport type { OpenerProps } from './types';\nimport Worker from '../../lib/worker';\n\nconst props = withDefaults(defineProps<OpenerProps<T>>(), {\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst id = props.id || Math.random() + '';\n\nlet elOpener: Element;\n\n/**\n * Необычная функция для проброски props внутрь элемента слота\n *\n * @param el - вспомогательный элемент для доступа к элементам слота\n */\nfunction render(el: any) {\n\tsetTimeout(() => {\n\t\telOpener = el.nextElementSibling;\n\n\t\tif (elOpener) {\n\t\t\trenderOpener(elOpener);\n\t\t}\n\t});\n}\n\nonUpdated(() => {\n\tif (elOpener) {\n\t\trenderOpener(elOpener);\n\t}\n});\n\nfunction renderOpener(elOpener: any) {\n\t/**\n\t * topPopup - необходимый атрибут для всез Popup\n\t *\n\t * Для Vue вместо него используется атрибут topPopupId\n\t */\n\telOpener.dataset.topPopup = '#' + id;\n\n\tconst disabledOld = !!elOpener.dataset.topPopupDisabled;\n\n\telOpener.dataset.topPopupId = id;\n\telOpener.dataset.topPopupPos = props.pos;\n\telOpener.dataset.topPopupPosBy = props.posBy;\n\telOpener.dataset.topPopupNotch = props.notch ? 'true' : '';\n\telOpener.dataset.topPopupOpenByHover = props.openByHover ? 'true' : '';\n\telOpener.dataset.topPopupDisabled = props.disabled ? 'true' : '';\n\telOpener.__TopPopupOpenerProps = props;\n\n\tif (props.openByFocusInput && elOpener.classList.contains('top-input')) {\n\t\tconst elInput = elOpener.querySelector('input');\n\n\t\telInput.onfocus = () => {\n\t\t\tif (elOpener.dataset.topPopupDisabled) return;\n\n\t\t\t// фокус при возвращении не должен инициировать повторное открытие popup\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\t\t\tif (popup?.vueGetComponent()?.opened) return;\n\n\t\t\tWorker.openByOpener(elOpener);\n\t\t};\n\n\t\t/**\n\t\t * Открыть или закрыть `popup` в момент ввода значения, если он становится активным\n\t\t *\n\t\t * Для обработки ввода значения с проверкой `minLength`\n\t\t */\n\t\tif (props.disabled !== disabledOld && elInput === document.activeElement) {\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\n\t\t\tif (!props.disabled && !popup) {\n\t\t\t\tWorker.openByOpener(elOpener);\n\t\t\t}\n\n\t\t\tif (props.disabled && popup) {\n\t\t\t\tpopup.close();\n\t\t\t}\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<template :ref=\"render\"></template>\n\n\t<!-- @slot элемент для открытия Popup -->\n\t<slot></slot>\n</template>\n\n<!-- Использует общий deprecated класс .btn -->\n<style>\nh3[data-top-popup],\ndiv[data-top-popup],\ni[data-top-popup]:not(.btn),\nb[data-top-popup]:not(.btn) {\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-style: normal;\n\ttext-decoration: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n[data-top-popup][data-top-popup-disabled] {\n\t/*\n\tpointer-events: none;\n\tcursor: auto !important;\n\t*/\n}\n\ni[contenteditable] {\n\tcursor: text !important;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUnmounted, ref, toRef, watch } from 'vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { TopLibPopup } from '@/components/popup/lib/popup';\nimport type { Emits, Props } from './types';\nimport Opener from './opener/opener.vue';\nimport Worker from '@/components/popup/lib/worker';\n\nconst props = withDefaults(defineProps<Props<T>>(), {\n\tid: '',\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst emit = defineEmits<Emits<T>>();\n\nconst id = props.id || 'top-popup-id-' + Math.random() + '';\n\nconst expose = {\n\tid,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n};\n\ndefineExpose(expose);\n\nconst elPopupRef = ref<HTMLElement | null>(null);\nconst elPopupInnerRef = ref<HTMLElement | null>(null);\n\nconst data = ref<T>();\n\n// см. lib/popup\nconst onOpen = async (popup: TopLibPopup<T>) => {\n\tif (popup.elPopup) elPopupRef.value = popup.elPopup;\n\n\tif (popup.elPopupInner) {\n\t\tpopup.elPopupInner.innerText = '';\n\n\t\telPopupInnerRef.value = popup.elPopupInner;\n\t}\n\n\tvueConnector.opened = true;\n\tvueConnector.popup = popup;\n\n\texpose.popup = popup;\n\n\tdata.value = popup.el.__TopPopupOpenerProps.data;\n\n\temit('open', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: data.value });\n};\n\n// см. lib/popup\nconst onClose = (popup: TopLibPopup<T>) => {\n\telPopupInnerRef.value = null;\n\n\tvueConnector.opened = false;\n\tvueConnector.popup = undefined;\n\n\tdata.value = undefined;\n\n\temit('close', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: popup.el.__TopPopupOpenerProps.data });\n};\n\nconst vueConnector = {\n\tonOpen,\n\tonClose,\n\tclassRef: toRef(props, 'class'),\n\topened: false,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n\ttransitionDurationRef: toRef(props, 'transitionDuration'),\n};\n\nwatch(() => props.class, (newValue, oldValue) => {\n\tif (!elPopupRef.value) return;\n\n\tconst newClasses = newValue?.split(' ') ?? [];\n\tconst oldClasses = oldValue?.split(' ') ?? [];\n\n\tconst delClasses = oldClasses.filter((oldClass) => !newClasses.includes(oldClass));\n\n\telPopupRef.value.classList.remove(...delClasses);\n\telPopupRef.value.classList.add(...newClasses);\n});\n\nWorker.regVueComponent(id, vueConnector);\n\nonUnmounted(() => {\n\tWorker.unregVueComponent(id);\n});\n</script>\n\n<template>\n\t<Opener\n\t\tv-if=\"$slots.opener\"\n\t\t:id\n\t\t:pos\n\t\t:posBy\n\t\t:notch\n\t\t:openByFocusInput\n\t\t:openByHover=\"($core.state.isMobile || $core.state.isMobileUA) ? false : openByHover\"\n\t\t:disabled\n\t>\n\t\t<!-- @slot элемент для открытия Popup -->\n\t\t<slot name=\"opener\"></slot>\n\t</Opener>\n\n\t<!-- Это шаблон для компонента Popup, сам Popup генерируется в js и может находиться где угодно -->\n\t<!-- elPopupInnerRef будет установлен только после открытия и будет сброшен сразу после закрытия Popup -->\n\t<teleport\n\t\tv-if=\"elPopupInnerRef\"\n\t\t:to=\"elPopupInnerRef\"\n\t>\n\t\t<div\n\t\t\tv-if=\"$slots.header || $core.state.isMobile\"\n\t\t\tclass=\"top-popup_header\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-if=\"$core.state.isMobile\"\n\t\t\t\tclass=\"top-as-a closer\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.Close }}\n\t\t\t</span>\n\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.widget\"\n\t\t\tclass=\"top-popup_widget\"\n\t\t>\n\t\t\t<!-- @slot Виджет -->\n\t\t\t<slot name=\"widget\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.content\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot name=\"content\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<ul\n\t\t\tv-if=\"$slots.contentList\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\t@scroll=\"$emit('scrollContentList', $event)\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в виде списка, для вставки элементов списка используйте компонент popup/listItem -->\n\t\t\t<slot name=\"contentList\" :data=\"data\"></slot>\n\t\t</ul>\n\n\t\t<div\n\t\t\tv-if=\"$slots.footer || footerSupportLink\"\n\t\t\tclass=\"top-popup_footer\"\n\t\t>\n\t\t\t<a\n\t\t\t\tv-if=\"footerSupportLink\"\n\t\t\t\tclass=\"top-popup_footerSupportLink\"\n\t\t\t\t:href=\"footerSupportLink\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t>\n\t\t\t\t<TopHint hint=\"\"/>\n\t\t\t</a>\n\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\" :data=\"data\"></slot>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n.top-popup_footerSupportLink {\n\tmargin-right: auto;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { ListItemProps } from './types';\n\ndefineOptions({\n\tinheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<ListItemProps>(), {\n\ttype: 'button',\n\tcloseByClick: true,\n});\n</script>\n\n<template>\n\t<li\n\t\t:class=\"{\n\t\t\t'top-popup_liNoSelectable': props.type !== 'button'\n\t\t}\"\n\t>\n\t\t<component\n\t\t\t:is=\"$attrs.href ? 'a' : 'div'\"\n\t\t\t:class=\"{\n\t\t\t\t'top-popup_listItem': true,\n\t\t\t\t['top-popup_listItem-' + props.type]: !!props.type,\n\t\t\t\t'top-popup_liastItem-withActions': $slots.actions,\n\t\t\t\t'top-popup-noCloser': !closeByClick,\n\n\t\t\t\t'a': props.type === 'button', // оформления кнопки, deprecated\n\t\t\t}\"\n\t\t\t:=\"{...$attrs, ...attrs}\"\n\t\t>\n\t\t\t<template v-if=\"$slots.actions\">\n\t\t\t\t<div class=\"top-popup_listItemActionsLabel top-ellipsis1\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"top-popup_listItemActions\">\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template v-else>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</component>\n\n\t\t<slot name=\"buttons\"></slot>\n\t</li>\n</template>\n","<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\tinputProps,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput\n\t\t\t\tv-model.trim=\"localValue\"\n\t\t\t\t:=\"inputProps\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n"]}
@@ -5,8 +5,8 @@
5
5
  _autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
6
6
  /* end import css */
7
7
 
8
- import { c as e, d as t, h as n } from "./forms-BboZ50-J.esm.js";
9
- import { t as r } from "./worker-DhqknASO.esm.js";
8
+ import { c as e, d as t, h as n } from "./forms-CdCS6WAQ.esm.js";
9
+ import { t as r } from "./worker-spLieexQ.esm.js";
10
10
  import { Fragment as i, Teleport as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createSlots as u, createTextVNode as d, createVNode as f, defineComponent as p, mergeModels as m, mergeProps as h, normalizeClass as g, onUnmounted as _, onUpdated as v, openBlock as y, ref as b, renderSlot as x, resolveDirective as S, resolveDynamicComponent as C, toDisplayString as w, toRef as T, unref as E, useModel as D, watch as O, withCtx as k, withDirectives as A } from "vue";
11
11
  //#endregion
12
12
  //#region src/components/popup/popup/opener/opener.vue
@@ -338,6 +338,7 @@ var j = /* @__PURE__ */ p({
338
338
  submitText: {},
339
339
  cancelText: {},
340
340
  defaultValue: {},
341
+ inputProps: {},
341
342
  id: {},
342
343
  class: {},
343
344
  transitionDuration: {},
@@ -367,8 +368,8 @@ var j = /* @__PURE__ */ p({
367
368
  return;
368
369
  }
369
370
  a(), i("close", e);
370
- }, { submitText: m, cancelText: g, defaultValue: _, ...v } = r;
371
- return (e, t) => (y(), o(R, h({ class: "top-popupPrompt" }, v, {
371
+ }, { submitText: m, cancelText: g, defaultValue: _, inputProps: v, ...S } = r;
372
+ return (e, t) => (y(), o(R, h({ class: "top-popupPrompt" }, S, {
372
373
  onOpen: t[1] ||= (t) => e.$emit("open", t),
373
374
  onClose: t[2] ||= (e) => p(e),
374
375
  onScrollContentList: t[3] ||= (...t) => e.$emit("scrollContentList", ...t)
@@ -392,11 +393,11 @@ var j = /* @__PURE__ */ p({
392
393
  key: "0"
393
394
  } : void 0, e.$slots.default ? {
394
395
  name: "content",
395
- fn: k(() => [x(e.$slots, "default"), f(H, {
396
+ fn: k(() => [x(e.$slots, "default"), f(H, h({
396
397
  modelValue: c.value,
397
398
  "onUpdate:modelValue": t[0] ||= (e) => c.value = e,
398
399
  modelModifiers: { trim: !0 }
399
- }, null, 8, ["modelValue"])]),
400
+ }, E(v)), null, 16, ["modelValue"])]),
400
401
  key: "1"
401
402
  } : void 0]), 1040));
402
403
  }
@@ -441,4 +442,4 @@ var j = /* @__PURE__ */ p({
441
442
  //#endregion
442
443
  export { H as a, j as c, U as i, G as n, V as o, W as r, R as s, K as t };
443
444
 
444
- //# sourceMappingURL=popup-CgrKc5Db.esm.js.map
445
+ //# sourceMappingURL=popup-DHCqvZzI.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup-CgrKc5Db.esm.js","names":["$slots","$core","$i18n","$emit","$attrs","$slots","$props","$emit","$i18n","$slots","$emit","$i18n","$slots","$emit","$i18n","$slots","$emit","$slots"],"sources":["../../src/components/popup/popup/opener/opener.vue","../../src/components/popup/popup/opener/opener.vue","../../src/components/popup/popup/popup.vue","../../src/components/popup/popup/popup.vue","../../src/components/popup/popup/listItem.vue","../../src/components/popup/popup/listItem.vue","../../src/components/popup/popup/widgetInput/widgetInput.vue","../../src/components/popup/popup/widgetInput/widgetInput.vue","../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue","../../src/components/popup/popupHint/popupHint.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUpdated } from 'vue';\nimport type { OpenerProps } from './types';\nimport Worker from '../../lib/worker';\n\nconst props = withDefaults(defineProps<OpenerProps<T>>(), {\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst id = props.id || Math.random() + '';\n\nlet elOpener: Element;\n\n/**\n * Необычная функция для проброски props внутрь элемента слота\n *\n * @param el - вспомогательный элемент для доступа к элементам слота\n */\nfunction render(el: any) {\n\tsetTimeout(() => {\n\t\telOpener = el.nextElementSibling;\n\n\t\tif (elOpener) {\n\t\t\trenderOpener(elOpener);\n\t\t}\n\t});\n}\n\nonUpdated(() => {\n\tif (elOpener) {\n\t\trenderOpener(elOpener);\n\t}\n});\n\nfunction renderOpener(elOpener: any) {\n\t/**\n\t * topPopup - необходимый атрибут для всез Popup\n\t *\n\t * Для Vue вместо него используется атрибут topPopupId\n\t */\n\telOpener.dataset.topPopup = '#' + id;\n\n\tconst disabledOld = !!elOpener.dataset.topPopupDisabled;\n\n\telOpener.dataset.topPopupId = id;\n\telOpener.dataset.topPopupPos = props.pos;\n\telOpener.dataset.topPopupPosBy = props.posBy;\n\telOpener.dataset.topPopupNotch = props.notch ? 'true' : '';\n\telOpener.dataset.topPopupOpenByHover = props.openByHover ? 'true' : '';\n\telOpener.dataset.topPopupDisabled = props.disabled ? 'true' : '';\n\telOpener.__TopPopupOpenerProps = props;\n\n\tif (props.openByFocusInput && elOpener.classList.contains('top-input')) {\n\t\tconst elInput = elOpener.querySelector('input');\n\n\t\telInput.onfocus = () => {\n\t\t\tif (elOpener.dataset.topPopupDisabled) return;\n\n\t\t\t// фокус при возвращении не должен инициировать повторное открытие popup\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\t\t\tif (popup?.vueGetComponent()?.opened) return;\n\n\t\t\tWorker.openByOpener(elOpener);\n\t\t};\n\n\t\t/**\n\t\t * Открыть или закрыть `popup` в момент ввода значения, если он становится активным\n\t\t *\n\t\t * Для обработки ввода значения с проверкой `minLength`\n\t\t */\n\t\tif (props.disabled !== disabledOld && elInput === document.activeElement) {\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\n\t\t\tif (!props.disabled && !popup) {\n\t\t\t\tWorker.openByOpener(elOpener);\n\t\t\t}\n\n\t\t\tif (props.disabled && popup) {\n\t\t\t\tpopup.close();\n\t\t\t}\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<template :ref=\"render\"></template>\n\n\t<!-- @slot элемент для открытия Popup -->\n\t<slot></slot>\n</template>\n\n<!-- Использует общий deprecated класс .btn -->\n<style>\nh3[data-top-popup],\ndiv[data-top-popup],\ni[data-top-popup]:not(.btn),\nb[data-top-popup]:not(.btn) {\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-style: normal;\n\ttext-decoration: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n[data-top-popup][data-top-popup-disabled] {\n\t/*\n\tpointer-events: none;\n\tcursor: auto !important;\n\t*/\n}\n\ni[contenteditable] {\n\tcursor: text !important;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUpdated } from 'vue';\nimport type { OpenerProps } from './types';\nimport Worker from '../../lib/worker';\n\nconst props = withDefaults(defineProps<OpenerProps<T>>(), {\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst id = props.id || Math.random() + '';\n\nlet elOpener: Element;\n\n/**\n * Необычная функция для проброски props внутрь элемента слота\n *\n * @param el - вспомогательный элемент для доступа к элементам слота\n */\nfunction render(el: any) {\n\tsetTimeout(() => {\n\t\telOpener = el.nextElementSibling;\n\n\t\tif (elOpener) {\n\t\t\trenderOpener(elOpener);\n\t\t}\n\t});\n}\n\nonUpdated(() => {\n\tif (elOpener) {\n\t\trenderOpener(elOpener);\n\t}\n});\n\nfunction renderOpener(elOpener: any) {\n\t/**\n\t * topPopup - необходимый атрибут для всез Popup\n\t *\n\t * Для Vue вместо него используется атрибут topPopupId\n\t */\n\telOpener.dataset.topPopup = '#' + id;\n\n\tconst disabledOld = !!elOpener.dataset.topPopupDisabled;\n\n\telOpener.dataset.topPopupId = id;\n\telOpener.dataset.topPopupPos = props.pos;\n\telOpener.dataset.topPopupPosBy = props.posBy;\n\telOpener.dataset.topPopupNotch = props.notch ? 'true' : '';\n\telOpener.dataset.topPopupOpenByHover = props.openByHover ? 'true' : '';\n\telOpener.dataset.topPopupDisabled = props.disabled ? 'true' : '';\n\telOpener.__TopPopupOpenerProps = props;\n\n\tif (props.openByFocusInput && elOpener.classList.contains('top-input')) {\n\t\tconst elInput = elOpener.querySelector('input');\n\n\t\telInput.onfocus = () => {\n\t\t\tif (elOpener.dataset.topPopupDisabled) return;\n\n\t\t\t// фокус при возвращении не должен инициировать повторное открытие popup\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\t\t\tif (popup?.vueGetComponent()?.opened) return;\n\n\t\t\tWorker.openByOpener(elOpener);\n\t\t};\n\n\t\t/**\n\t\t * Открыть или закрыть `popup` в момент ввода значения, если он становится активным\n\t\t *\n\t\t * Для обработки ввода значения с проверкой `minLength`\n\t\t */\n\t\tif (props.disabled !== disabledOld && elInput === document.activeElement) {\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\n\t\t\tif (!props.disabled && !popup) {\n\t\t\t\tWorker.openByOpener(elOpener);\n\t\t\t}\n\n\t\t\tif (props.disabled && popup) {\n\t\t\t\tpopup.close();\n\t\t\t}\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<template :ref=\"render\"></template>\n\n\t<!-- @slot элемент для открытия Popup -->\n\t<slot></slot>\n</template>\n\n<!-- Использует общий deprecated класс .btn -->\n<style>\nh3[data-top-popup],\ndiv[data-top-popup],\ni[data-top-popup]:not(.btn),\nb[data-top-popup]:not(.btn) {\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-style: normal;\n\ttext-decoration: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n[data-top-popup][data-top-popup-disabled] {\n\t/*\n\tpointer-events: none;\n\tcursor: auto !important;\n\t*/\n}\n\ni[contenteditable] {\n\tcursor: text !important;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUnmounted, ref, toRef, watch } from 'vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { TopLibPopup } from '@/components/popup/lib/popup';\nimport type { Emits, Props } from './types';\nimport Opener from './opener/opener.vue';\nimport Worker from '@/components/popup/lib/worker';\n\nconst props = withDefaults(defineProps<Props<T>>(), {\n\tid: '',\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst emit = defineEmits<Emits<T>>();\n\nconst id = props.id || 'top-popup-id-' + Math.random() + '';\n\nconst expose = {\n\tid,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n};\n\ndefineExpose(expose);\n\nconst elPopupRef = ref<HTMLElement | null>(null);\nconst elPopupInnerRef = ref<HTMLElement | null>(null);\n\nconst data = ref<T>();\n\n// см. lib/popup\nconst onOpen = async (popup: TopLibPopup<T>) => {\n\tif (popup.elPopup) elPopupRef.value = popup.elPopup;\n\n\tif (popup.elPopupInner) {\n\t\tpopup.elPopupInner.innerText = '';\n\n\t\telPopupInnerRef.value = popup.elPopupInner;\n\t}\n\n\tvueConnector.opened = true;\n\tvueConnector.popup = popup;\n\n\texpose.popup = popup;\n\n\tdata.value = popup.el.__TopPopupOpenerProps.data;\n\n\temit('open', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: data.value });\n};\n\n// см. lib/popup\nconst onClose = (popup: TopLibPopup<T>) => {\n\telPopupInnerRef.value = null;\n\n\tvueConnector.opened = false;\n\tvueConnector.popup = undefined;\n\n\tdata.value = undefined;\n\n\temit('close', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: popup.el.__TopPopupOpenerProps.data });\n};\n\nconst vueConnector = {\n\tonOpen,\n\tonClose,\n\tclassRef: toRef(props, 'class'),\n\topened: false,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n\ttransitionDurationRef: toRef(props, 'transitionDuration'),\n};\n\nwatch(() => props.class, (newValue, oldValue) => {\n\tif (!elPopupRef.value) return;\n\n\tconst newClasses = newValue?.split(' ') ?? [];\n\tconst oldClasses = oldValue?.split(' ') ?? [];\n\n\tconst delClasses = oldClasses.filter((oldClass) => !newClasses.includes(oldClass));\n\n\telPopupRef.value.classList.remove(...delClasses);\n\telPopupRef.value.classList.add(...newClasses);\n});\n\nWorker.regVueComponent(id, vueConnector);\n\nonUnmounted(() => {\n\tWorker.unregVueComponent(id);\n});\n</script>\n\n<template>\n\t<Opener\n\t\tv-if=\"$slots.opener\"\n\t\t:id\n\t\t:pos\n\t\t:posBy\n\t\t:notch\n\t\t:openByFocusInput\n\t\t:openByHover=\"($core.state.isMobile || $core.state.isMobileUA) ? false : openByHover\"\n\t\t:disabled\n\t>\n\t\t<!-- @slot элемент для открытия Popup -->\n\t\t<slot name=\"opener\"></slot>\n\t</Opener>\n\n\t<!-- Это шаблон для компонента Popup, сам Popup генерируется в js и может находиться где угодно -->\n\t<!-- elPopupInnerRef будет установлен только после открытия и будет сброшен сразу после закрытия Popup -->\n\t<teleport\n\t\tv-if=\"elPopupInnerRef\"\n\t\t:to=\"elPopupInnerRef\"\n\t>\n\t\t<div\n\t\t\tv-if=\"$slots.header || $core.state.isMobile\"\n\t\t\tclass=\"top-popup_header\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-if=\"$core.state.isMobile\"\n\t\t\t\tclass=\"top-as-a closer\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.Close }}\n\t\t\t</span>\n\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.widget\"\n\t\t\tclass=\"top-popup_widget\"\n\t\t>\n\t\t\t<!-- @slot Виджет -->\n\t\t\t<slot name=\"widget\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.content\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot name=\"content\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<ul\n\t\t\tv-if=\"$slots.contentList\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\t@scroll=\"$emit('scrollContentList', $event)\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в виде списка, для вставки элементов списка используйте компонент popup/listItem -->\n\t\t\t<slot name=\"contentList\" :data=\"data\"></slot>\n\t\t</ul>\n\n\t\t<div\n\t\t\tv-if=\"$slots.footer || footerSupportLink\"\n\t\t\tclass=\"top-popup_footer\"\n\t\t>\n\t\t\t<a\n\t\t\t\tv-if=\"footerSupportLink\"\n\t\t\t\tclass=\"top-popup_footerSupportLink\"\n\t\t\t\t:href=\"footerSupportLink\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t>\n\t\t\t\t<TopHint hint=\"\"/>\n\t\t\t</a>\n\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\" :data=\"data\"></slot>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n.top-popup_footerSupportLink {\n\tmargin-right: auto;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUnmounted, ref, toRef, watch } from 'vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { TopLibPopup } from '@/components/popup/lib/popup';\nimport type { Emits, Props } from './types';\nimport Opener from './opener/opener.vue';\nimport Worker from '@/components/popup/lib/worker';\n\nconst props = withDefaults(defineProps<Props<T>>(), {\n\tid: '',\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst emit = defineEmits<Emits<T>>();\n\nconst id = props.id || 'top-popup-id-' + Math.random() + '';\n\nconst expose = {\n\tid,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n};\n\ndefineExpose(expose);\n\nconst elPopupRef = ref<HTMLElement | null>(null);\nconst elPopupInnerRef = ref<HTMLElement | null>(null);\n\nconst data = ref<T>();\n\n// см. lib/popup\nconst onOpen = async (popup: TopLibPopup<T>) => {\n\tif (popup.elPopup) elPopupRef.value = popup.elPopup;\n\n\tif (popup.elPopupInner) {\n\t\tpopup.elPopupInner.innerText = '';\n\n\t\telPopupInnerRef.value = popup.elPopupInner;\n\t}\n\n\tvueConnector.opened = true;\n\tvueConnector.popup = popup;\n\n\texpose.popup = popup;\n\n\tdata.value = popup.el.__TopPopupOpenerProps.data;\n\n\temit('open', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: data.value });\n};\n\n// см. lib/popup\nconst onClose = (popup: TopLibPopup<T>) => {\n\telPopupInnerRef.value = null;\n\n\tvueConnector.opened = false;\n\tvueConnector.popup = undefined;\n\n\tdata.value = undefined;\n\n\temit('close', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: popup.el.__TopPopupOpenerProps.data });\n};\n\nconst vueConnector = {\n\tonOpen,\n\tonClose,\n\tclassRef: toRef(props, 'class'),\n\topened: false,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n\ttransitionDurationRef: toRef(props, 'transitionDuration'),\n};\n\nwatch(() => props.class, (newValue, oldValue) => {\n\tif (!elPopupRef.value) return;\n\n\tconst newClasses = newValue?.split(' ') ?? [];\n\tconst oldClasses = oldValue?.split(' ') ?? [];\n\n\tconst delClasses = oldClasses.filter((oldClass) => !newClasses.includes(oldClass));\n\n\telPopupRef.value.classList.remove(...delClasses);\n\telPopupRef.value.classList.add(...newClasses);\n});\n\nWorker.regVueComponent(id, vueConnector);\n\nonUnmounted(() => {\n\tWorker.unregVueComponent(id);\n});\n</script>\n\n<template>\n\t<Opener\n\t\tv-if=\"$slots.opener\"\n\t\t:id\n\t\t:pos\n\t\t:posBy\n\t\t:notch\n\t\t:openByFocusInput\n\t\t:openByHover=\"($core.state.isMobile || $core.state.isMobileUA) ? false : openByHover\"\n\t\t:disabled\n\t>\n\t\t<!-- @slot элемент для открытия Popup -->\n\t\t<slot name=\"opener\"></slot>\n\t</Opener>\n\n\t<!-- Это шаблон для компонента Popup, сам Popup генерируется в js и может находиться где угодно -->\n\t<!-- elPopupInnerRef будет установлен только после открытия и будет сброшен сразу после закрытия Popup -->\n\t<teleport\n\t\tv-if=\"elPopupInnerRef\"\n\t\t:to=\"elPopupInnerRef\"\n\t>\n\t\t<div\n\t\t\tv-if=\"$slots.header || $core.state.isMobile\"\n\t\t\tclass=\"top-popup_header\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-if=\"$core.state.isMobile\"\n\t\t\t\tclass=\"top-as-a closer\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.Close }}\n\t\t\t</span>\n\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.widget\"\n\t\t\tclass=\"top-popup_widget\"\n\t\t>\n\t\t\t<!-- @slot Виджет -->\n\t\t\t<slot name=\"widget\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.content\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot name=\"content\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<ul\n\t\t\tv-if=\"$slots.contentList\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\t@scroll=\"$emit('scrollContentList', $event)\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в виде списка, для вставки элементов списка используйте компонент popup/listItem -->\n\t\t\t<slot name=\"contentList\" :data=\"data\"></slot>\n\t\t</ul>\n\n\t\t<div\n\t\t\tv-if=\"$slots.footer || footerSupportLink\"\n\t\t\tclass=\"top-popup_footer\"\n\t\t>\n\t\t\t<a\n\t\t\t\tv-if=\"footerSupportLink\"\n\t\t\t\tclass=\"top-popup_footerSupportLink\"\n\t\t\t\t:href=\"footerSupportLink\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t>\n\t\t\t\t<TopHint hint=\"\"/>\n\t\t\t</a>\n\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\" :data=\"data\"></slot>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n.top-popup_footerSupportLink {\n\tmargin-right: auto;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { ListItemProps } from './types';\n\ndefineOptions({\n\tinheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<ListItemProps>(), {\n\ttype: 'button',\n\tcloseByClick: true,\n});\n</script>\n\n<template>\n\t<li\n\t\t:class=\"{\n\t\t\t'top-popup_liNoSelectable': props.type !== 'button'\n\t\t}\"\n\t>\n\t\t<component\n\t\t\t:is=\"$attrs.href ? 'a' : 'div'\"\n\t\t\t:class=\"{\n\t\t\t\t'top-popup_listItem': true,\n\t\t\t\t['top-popup_listItem-' + props.type]: !!props.type,\n\t\t\t\t'top-popup_liastItem-withActions': $slots.actions,\n\t\t\t\t'top-popup-noCloser': !closeByClick,\n\n\t\t\t\t'a': props.type === 'button', // оформления кнопки, deprecated\n\t\t\t}\"\n\t\t\t:=\"{...$attrs, ...attrs}\"\n\t\t>\n\t\t\t<template v-if=\"$slots.actions\">\n\t\t\t\t<div class=\"top-popup_listItemActionsLabel top-ellipsis1\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"top-popup_listItemActions\">\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template v-else>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</component>\n\n\t\t<slot name=\"buttons\"></slot>\n\t</li>\n</template>\n","<script setup lang=\"ts\">\nimport type { ListItemProps } from './types';\n\ndefineOptions({\n\tinheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<ListItemProps>(), {\n\ttype: 'button',\n\tcloseByClick: true,\n});\n</script>\n\n<template>\n\t<li\n\t\t:class=\"{\n\t\t\t'top-popup_liNoSelectable': props.type !== 'button'\n\t\t}\"\n\t>\n\t\t<component\n\t\t\t:is=\"$attrs.href ? 'a' : 'div'\"\n\t\t\t:class=\"{\n\t\t\t\t'top-popup_listItem': true,\n\t\t\t\t['top-popup_listItem-' + props.type]: !!props.type,\n\t\t\t\t'top-popup_liastItem-withActions': $slots.actions,\n\t\t\t\t'top-popup-noCloser': !closeByClick,\n\n\t\t\t\t'a': props.type === 'button', // оформления кнопки, deprecated\n\t\t\t}\"\n\t\t\t:=\"{...$attrs, ...attrs}\"\n\t\t>\n\t\t\t<template v-if=\"$slots.actions\">\n\t\t\t\t<div class=\"top-popup_listItemActionsLabel top-ellipsis1\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"top-popup_listItemActions\">\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template v-else>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</component>\n\n\t\t<slot name=\"buttons\"></slot>\n\t</li>\n</template>\n","<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"popup-DHCqvZzI.esm.js","names":["$slots","$core","$i18n","$emit","$attrs","$slots","$props","$emit","$i18n","$slots","$emit","$i18n","$slots","$emit","$i18n","$slots","$emit","$slots"],"sources":["../../src/components/popup/popup/opener/opener.vue","../../src/components/popup/popup/opener/opener.vue","../../src/components/popup/popup/popup.vue","../../src/components/popup/popup/popup.vue","../../src/components/popup/popup/listItem.vue","../../src/components/popup/popup/listItem.vue","../../src/components/popup/popup/widgetInput/widgetInput.vue","../../src/components/popup/popup/widgetInput/widgetInput.vue","../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue","../../src/components/popup/popupHint/popupHint.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUpdated } from 'vue';\nimport type { OpenerProps } from './types';\nimport Worker from '../../lib/worker';\n\nconst props = withDefaults(defineProps<OpenerProps<T>>(), {\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst id = props.id || Math.random() + '';\n\nlet elOpener: Element;\n\n/**\n * Необычная функция для проброски props внутрь элемента слота\n *\n * @param el - вспомогательный элемент для доступа к элементам слота\n */\nfunction render(el: any) {\n\tsetTimeout(() => {\n\t\telOpener = el.nextElementSibling;\n\n\t\tif (elOpener) {\n\t\t\trenderOpener(elOpener);\n\t\t}\n\t});\n}\n\nonUpdated(() => {\n\tif (elOpener) {\n\t\trenderOpener(elOpener);\n\t}\n});\n\nfunction renderOpener(elOpener: any) {\n\t/**\n\t * topPopup - необходимый атрибут для всез Popup\n\t *\n\t * Для Vue вместо него используется атрибут topPopupId\n\t */\n\telOpener.dataset.topPopup = '#' + id;\n\n\tconst disabledOld = !!elOpener.dataset.topPopupDisabled;\n\n\telOpener.dataset.topPopupId = id;\n\telOpener.dataset.topPopupPos = props.pos;\n\telOpener.dataset.topPopupPosBy = props.posBy;\n\telOpener.dataset.topPopupNotch = props.notch ? 'true' : '';\n\telOpener.dataset.topPopupOpenByHover = props.openByHover ? 'true' : '';\n\telOpener.dataset.topPopupDisabled = props.disabled ? 'true' : '';\n\telOpener.__TopPopupOpenerProps = props;\n\n\tif (props.openByFocusInput && elOpener.classList.contains('top-input')) {\n\t\tconst elInput = elOpener.querySelector('input');\n\n\t\telInput.onfocus = () => {\n\t\t\tif (elOpener.dataset.topPopupDisabled) return;\n\n\t\t\t// фокус при возвращении не должен инициировать повторное открытие popup\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\t\t\tif (popup?.vueGetComponent()?.opened) return;\n\n\t\t\tWorker.openByOpener(elOpener);\n\t\t};\n\n\t\t/**\n\t\t * Открыть или закрыть `popup` в момент ввода значения, если он становится активным\n\t\t *\n\t\t * Для обработки ввода значения с проверкой `minLength`\n\t\t */\n\t\tif (props.disabled !== disabledOld && elInput === document.activeElement) {\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\n\t\t\tif (!props.disabled && !popup) {\n\t\t\t\tWorker.openByOpener(elOpener);\n\t\t\t}\n\n\t\t\tif (props.disabled && popup) {\n\t\t\t\tpopup.close();\n\t\t\t}\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<template :ref=\"render\"></template>\n\n\t<!-- @slot элемент для открытия Popup -->\n\t<slot></slot>\n</template>\n\n<!-- Использует общий deprecated класс .btn -->\n<style>\nh3[data-top-popup],\ndiv[data-top-popup],\ni[data-top-popup]:not(.btn),\nb[data-top-popup]:not(.btn) {\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-style: normal;\n\ttext-decoration: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n[data-top-popup][data-top-popup-disabled] {\n\t/*\n\tpointer-events: none;\n\tcursor: auto !important;\n\t*/\n}\n\ni[contenteditable] {\n\tcursor: text !important;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUpdated } from 'vue';\nimport type { OpenerProps } from './types';\nimport Worker from '../../lib/worker';\n\nconst props = withDefaults(defineProps<OpenerProps<T>>(), {\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst id = props.id || Math.random() + '';\n\nlet elOpener: Element;\n\n/**\n * Необычная функция для проброски props внутрь элемента слота\n *\n * @param el - вспомогательный элемент для доступа к элементам слота\n */\nfunction render(el: any) {\n\tsetTimeout(() => {\n\t\telOpener = el.nextElementSibling;\n\n\t\tif (elOpener) {\n\t\t\trenderOpener(elOpener);\n\t\t}\n\t});\n}\n\nonUpdated(() => {\n\tif (elOpener) {\n\t\trenderOpener(elOpener);\n\t}\n});\n\nfunction renderOpener(elOpener: any) {\n\t/**\n\t * topPopup - необходимый атрибут для всез Popup\n\t *\n\t * Для Vue вместо него используется атрибут topPopupId\n\t */\n\telOpener.dataset.topPopup = '#' + id;\n\n\tconst disabledOld = !!elOpener.dataset.topPopupDisabled;\n\n\telOpener.dataset.topPopupId = id;\n\telOpener.dataset.topPopupPos = props.pos;\n\telOpener.dataset.topPopupPosBy = props.posBy;\n\telOpener.dataset.topPopupNotch = props.notch ? 'true' : '';\n\telOpener.dataset.topPopupOpenByHover = props.openByHover ? 'true' : '';\n\telOpener.dataset.topPopupDisabled = props.disabled ? 'true' : '';\n\telOpener.__TopPopupOpenerProps = props;\n\n\tif (props.openByFocusInput && elOpener.classList.contains('top-input')) {\n\t\tconst elInput = elOpener.querySelector('input');\n\n\t\telInput.onfocus = () => {\n\t\t\tif (elOpener.dataset.topPopupDisabled) return;\n\n\t\t\t// фокус при возвращении не должен инициировать повторное открытие popup\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\t\t\tif (popup?.vueGetComponent()?.opened) return;\n\n\t\t\tWorker.openByOpener(elOpener);\n\t\t};\n\n\t\t/**\n\t\t * Открыть или закрыть `popup` в момент ввода значения, если он становится активным\n\t\t *\n\t\t * Для обработки ввода значения с проверкой `minLength`\n\t\t */\n\t\tif (props.disabled !== disabledOld && elInput === document.activeElement) {\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\n\t\t\tif (!props.disabled && !popup) {\n\t\t\t\tWorker.openByOpener(elOpener);\n\t\t\t}\n\n\t\t\tif (props.disabled && popup) {\n\t\t\t\tpopup.close();\n\t\t\t}\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<template :ref=\"render\"></template>\n\n\t<!-- @slot элемент для открытия Popup -->\n\t<slot></slot>\n</template>\n\n<!-- Использует общий deprecated класс .btn -->\n<style>\nh3[data-top-popup],\ndiv[data-top-popup],\ni[data-top-popup]:not(.btn),\nb[data-top-popup]:not(.btn) {\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-style: normal;\n\ttext-decoration: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n[data-top-popup][data-top-popup-disabled] {\n\t/*\n\tpointer-events: none;\n\tcursor: auto !important;\n\t*/\n}\n\ni[contenteditable] {\n\tcursor: text !important;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUnmounted, ref, toRef, watch } from 'vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { TopLibPopup } from '@/components/popup/lib/popup';\nimport type { Emits, Props } from './types';\nimport Opener from './opener/opener.vue';\nimport Worker from '@/components/popup/lib/worker';\n\nconst props = withDefaults(defineProps<Props<T>>(), {\n\tid: '',\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst emit = defineEmits<Emits<T>>();\n\nconst id = props.id || 'top-popup-id-' + Math.random() + '';\n\nconst expose = {\n\tid,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n};\n\ndefineExpose(expose);\n\nconst elPopupRef = ref<HTMLElement | null>(null);\nconst elPopupInnerRef = ref<HTMLElement | null>(null);\n\nconst data = ref<T>();\n\n// см. lib/popup\nconst onOpen = async (popup: TopLibPopup<T>) => {\n\tif (popup.elPopup) elPopupRef.value = popup.elPopup;\n\n\tif (popup.elPopupInner) {\n\t\tpopup.elPopupInner.innerText = '';\n\n\t\telPopupInnerRef.value = popup.elPopupInner;\n\t}\n\n\tvueConnector.opened = true;\n\tvueConnector.popup = popup;\n\n\texpose.popup = popup;\n\n\tdata.value = popup.el.__TopPopupOpenerProps.data;\n\n\temit('open', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: data.value });\n};\n\n// см. lib/popup\nconst onClose = (popup: TopLibPopup<T>) => {\n\telPopupInnerRef.value = null;\n\n\tvueConnector.opened = false;\n\tvueConnector.popup = undefined;\n\n\tdata.value = undefined;\n\n\temit('close', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: popup.el.__TopPopupOpenerProps.data });\n};\n\nconst vueConnector = {\n\tonOpen,\n\tonClose,\n\tclassRef: toRef(props, 'class'),\n\topened: false,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n\ttransitionDurationRef: toRef(props, 'transitionDuration'),\n};\n\nwatch(() => props.class, (newValue, oldValue) => {\n\tif (!elPopupRef.value) return;\n\n\tconst newClasses = newValue?.split(' ') ?? [];\n\tconst oldClasses = oldValue?.split(' ') ?? [];\n\n\tconst delClasses = oldClasses.filter((oldClass) => !newClasses.includes(oldClass));\n\n\telPopupRef.value.classList.remove(...delClasses);\n\telPopupRef.value.classList.add(...newClasses);\n});\n\nWorker.regVueComponent(id, vueConnector);\n\nonUnmounted(() => {\n\tWorker.unregVueComponent(id);\n});\n</script>\n\n<template>\n\t<Opener\n\t\tv-if=\"$slots.opener\"\n\t\t:id\n\t\t:pos\n\t\t:posBy\n\t\t:notch\n\t\t:openByFocusInput\n\t\t:openByHover=\"($core.state.isMobile || $core.state.isMobileUA) ? false : openByHover\"\n\t\t:disabled\n\t>\n\t\t<!-- @slot элемент для открытия Popup -->\n\t\t<slot name=\"opener\"></slot>\n\t</Opener>\n\n\t<!-- Это шаблон для компонента Popup, сам Popup генерируется в js и может находиться где угодно -->\n\t<!-- elPopupInnerRef будет установлен только после открытия и будет сброшен сразу после закрытия Popup -->\n\t<teleport\n\t\tv-if=\"elPopupInnerRef\"\n\t\t:to=\"elPopupInnerRef\"\n\t>\n\t\t<div\n\t\t\tv-if=\"$slots.header || $core.state.isMobile\"\n\t\t\tclass=\"top-popup_header\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-if=\"$core.state.isMobile\"\n\t\t\t\tclass=\"top-as-a closer\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.Close }}\n\t\t\t</span>\n\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.widget\"\n\t\t\tclass=\"top-popup_widget\"\n\t\t>\n\t\t\t<!-- @slot Виджет -->\n\t\t\t<slot name=\"widget\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.content\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot name=\"content\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<ul\n\t\t\tv-if=\"$slots.contentList\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\t@scroll=\"$emit('scrollContentList', $event)\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в виде списка, для вставки элементов списка используйте компонент popup/listItem -->\n\t\t\t<slot name=\"contentList\" :data=\"data\"></slot>\n\t\t</ul>\n\n\t\t<div\n\t\t\tv-if=\"$slots.footer || footerSupportLink\"\n\t\t\tclass=\"top-popup_footer\"\n\t\t>\n\t\t\t<a\n\t\t\t\tv-if=\"footerSupportLink\"\n\t\t\t\tclass=\"top-popup_footerSupportLink\"\n\t\t\t\t:href=\"footerSupportLink\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t>\n\t\t\t\t<TopHint hint=\"\"/>\n\t\t\t</a>\n\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\" :data=\"data\"></slot>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n.top-popup_footerSupportLink {\n\tmargin-right: auto;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUnmounted, ref, toRef, watch } from 'vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { TopLibPopup } from '@/components/popup/lib/popup';\nimport type { Emits, Props } from './types';\nimport Opener from './opener/opener.vue';\nimport Worker from '@/components/popup/lib/worker';\n\nconst props = withDefaults(defineProps<Props<T>>(), {\n\tid: '',\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst emit = defineEmits<Emits<T>>();\n\nconst id = props.id || 'top-popup-id-' + Math.random() + '';\n\nconst expose = {\n\tid,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n};\n\ndefineExpose(expose);\n\nconst elPopupRef = ref<HTMLElement | null>(null);\nconst elPopupInnerRef = ref<HTMLElement | null>(null);\n\nconst data = ref<T>();\n\n// см. lib/popup\nconst onOpen = async (popup: TopLibPopup<T>) => {\n\tif (popup.elPopup) elPopupRef.value = popup.elPopup;\n\n\tif (popup.elPopupInner) {\n\t\tpopup.elPopupInner.innerText = '';\n\n\t\telPopupInnerRef.value = popup.elPopupInner;\n\t}\n\n\tvueConnector.opened = true;\n\tvueConnector.popup = popup;\n\n\texpose.popup = popup;\n\n\tdata.value = popup.el.__TopPopupOpenerProps.data;\n\n\temit('open', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: data.value });\n};\n\n// см. lib/popup\nconst onClose = (popup: TopLibPopup<T>) => {\n\telPopupInnerRef.value = null;\n\n\tvueConnector.opened = false;\n\tvueConnector.popup = undefined;\n\n\tdata.value = undefined;\n\n\temit('close', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: popup.el.__TopPopupOpenerProps.data });\n};\n\nconst vueConnector = {\n\tonOpen,\n\tonClose,\n\tclassRef: toRef(props, 'class'),\n\topened: false,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n\ttransitionDurationRef: toRef(props, 'transitionDuration'),\n};\n\nwatch(() => props.class, (newValue, oldValue) => {\n\tif (!elPopupRef.value) return;\n\n\tconst newClasses = newValue?.split(' ') ?? [];\n\tconst oldClasses = oldValue?.split(' ') ?? [];\n\n\tconst delClasses = oldClasses.filter((oldClass) => !newClasses.includes(oldClass));\n\n\telPopupRef.value.classList.remove(...delClasses);\n\telPopupRef.value.classList.add(...newClasses);\n});\n\nWorker.regVueComponent(id, vueConnector);\n\nonUnmounted(() => {\n\tWorker.unregVueComponent(id);\n});\n</script>\n\n<template>\n\t<Opener\n\t\tv-if=\"$slots.opener\"\n\t\t:id\n\t\t:pos\n\t\t:posBy\n\t\t:notch\n\t\t:openByFocusInput\n\t\t:openByHover=\"($core.state.isMobile || $core.state.isMobileUA) ? false : openByHover\"\n\t\t:disabled\n\t>\n\t\t<!-- @slot элемент для открытия Popup -->\n\t\t<slot name=\"opener\"></slot>\n\t</Opener>\n\n\t<!-- Это шаблон для компонента Popup, сам Popup генерируется в js и может находиться где угодно -->\n\t<!-- elPopupInnerRef будет установлен только после открытия и будет сброшен сразу после закрытия Popup -->\n\t<teleport\n\t\tv-if=\"elPopupInnerRef\"\n\t\t:to=\"elPopupInnerRef\"\n\t>\n\t\t<div\n\t\t\tv-if=\"$slots.header || $core.state.isMobile\"\n\t\t\tclass=\"top-popup_header\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-if=\"$core.state.isMobile\"\n\t\t\t\tclass=\"top-as-a closer\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.Close }}\n\t\t\t</span>\n\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.widget\"\n\t\t\tclass=\"top-popup_widget\"\n\t\t>\n\t\t\t<!-- @slot Виджет -->\n\t\t\t<slot name=\"widget\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.content\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot name=\"content\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<ul\n\t\t\tv-if=\"$slots.contentList\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\t@scroll=\"$emit('scrollContentList', $event)\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в виде списка, для вставки элементов списка используйте компонент popup/listItem -->\n\t\t\t<slot name=\"contentList\" :data=\"data\"></slot>\n\t\t</ul>\n\n\t\t<div\n\t\t\tv-if=\"$slots.footer || footerSupportLink\"\n\t\t\tclass=\"top-popup_footer\"\n\t\t>\n\t\t\t<a\n\t\t\t\tv-if=\"footerSupportLink\"\n\t\t\t\tclass=\"top-popup_footerSupportLink\"\n\t\t\t\t:href=\"footerSupportLink\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t>\n\t\t\t\t<TopHint hint=\"\"/>\n\t\t\t</a>\n\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\" :data=\"data\"></slot>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n.top-popup_footerSupportLink {\n\tmargin-right: auto;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { ListItemProps } from './types';\n\ndefineOptions({\n\tinheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<ListItemProps>(), {\n\ttype: 'button',\n\tcloseByClick: true,\n});\n</script>\n\n<template>\n\t<li\n\t\t:class=\"{\n\t\t\t'top-popup_liNoSelectable': props.type !== 'button'\n\t\t}\"\n\t>\n\t\t<component\n\t\t\t:is=\"$attrs.href ? 'a' : 'div'\"\n\t\t\t:class=\"{\n\t\t\t\t'top-popup_listItem': true,\n\t\t\t\t['top-popup_listItem-' + props.type]: !!props.type,\n\t\t\t\t'top-popup_liastItem-withActions': $slots.actions,\n\t\t\t\t'top-popup-noCloser': !closeByClick,\n\n\t\t\t\t'a': props.type === 'button', // оформления кнопки, deprecated\n\t\t\t}\"\n\t\t\t:=\"{...$attrs, ...attrs}\"\n\t\t>\n\t\t\t<template v-if=\"$slots.actions\">\n\t\t\t\t<div class=\"top-popup_listItemActionsLabel top-ellipsis1\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"top-popup_listItemActions\">\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template v-else>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</component>\n\n\t\t<slot name=\"buttons\"></slot>\n\t</li>\n</template>\n","<script setup lang=\"ts\">\nimport type { ListItemProps } from './types';\n\ndefineOptions({\n\tinheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<ListItemProps>(), {\n\ttype: 'button',\n\tcloseByClick: true,\n});\n</script>\n\n<template>\n\t<li\n\t\t:class=\"{\n\t\t\t'top-popup_liNoSelectable': props.type !== 'button'\n\t\t}\"\n\t>\n\t\t<component\n\t\t\t:is=\"$attrs.href ? 'a' : 'div'\"\n\t\t\t:class=\"{\n\t\t\t\t'top-popup_listItem': true,\n\t\t\t\t['top-popup_listItem-' + props.type]: !!props.type,\n\t\t\t\t'top-popup_liastItem-withActions': $slots.actions,\n\t\t\t\t'top-popup-noCloser': !closeByClick,\n\n\t\t\t\t'a': props.type === 'button', // оформления кнопки, deprecated\n\t\t\t}\"\n\t\t\t:=\"{...$attrs, ...attrs}\"\n\t\t>\n\t\t\t<template v-if=\"$slots.actions\">\n\t\t\t\t<div class=\"top-popup_listItemActionsLabel top-ellipsis1\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"top-popup_listItemActions\">\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template v-else>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</component>\n\n\t\t<slot name=\"buttons\"></slot>\n\t</li>\n</template>\n","<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\tinputProps,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput\n\t\t\t\tv-model.trim=\"localValue\"\n\t\t\t\t:=\"inputProps\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\tinputProps,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput\n\t\t\t\tv-model.trim=\"localValue\"\n\t\t\t\t:=\"inputProps\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`./forms-BboZ50-J.amd`,`../utils/system.amd`,`./dialogs-DFrx1Kl4.amd`,`vue`],function(e,t,n,r,i,a){"use strict";if(o===void 0)var o=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.t=t.r=t.n=void 0;var s=class{constructor(e){(0,n.K)(this,`resolve`,void 0),(0,n.K)(this,`worker`,(0,a.ref)(null)),this.resolve=e}async get(){if(this.worker.value)return this.worker.value;let e=(await this.resolve()).default;this.worker.value=l(e);let t=this.worker.value;return await(0,r.waitWhile)(()=>!t.isMounted),t}async open(...e){await(await this.get()).open(...e)}async openAsLink(...e){(await this.get()).openAsLink(...e)}async close(...e){(await this.get()).close(...e)}async destroy(...e){(await this.get()).destroy(...e)}async setProps(...e){await(await this.get()).setProps(...e)}},c=()=>{let e=(0,a.getCurrentInstance)();if(e?.type?.id){let t=(0,i.r)(e.type.id);if(t)return t}return(0,a.inject)(`dialogWorker`)},l=e=>(0,i.n)(e);t.r=c,t.n=l,t.t=e=>new s(e)});
2
- //# sourceMappingURL=utils-DmmlQmsO.amd.js.map
1
+ define([`require`,`exports`,`./forms-CdCS6WAQ.amd`,`../utils/system.amd`,`./dialogs-CbMNuvfF.amd`,`vue`],function(e,t,n,r,i,a){"use strict";if(o===void 0)var o=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.t=t.r=t.n=void 0;var s=class{constructor(e){(0,n.K)(this,`resolve`,void 0),(0,n.K)(this,`worker`,(0,a.ref)(null)),this.resolve=e}async get(){if(this.worker.value)return this.worker.value;let e=(await this.resolve()).default;this.worker.value=l(e);let t=this.worker.value;return await(0,r.waitWhile)(()=>!t.isMounted),t}async open(...e){await(await this.get()).open(...e)}async openAsLink(...e){(await this.get()).openAsLink(...e)}async close(...e){(await this.get()).close(...e)}async destroy(...e){(await this.get()).destroy(...e)}async setProps(...e){await(await this.get()).setProps(...e)}},c=()=>{let e=(0,a.getCurrentInstance)();if(e?.type?.id){let t=(0,i.r)(e.type.id);if(t)return t}return(0,a.inject)(`dialogWorker`)},l=e=>(0,i.n)(e);t.r=c,t.n=l,t.t=e=>new s(e)});
2
+ //# sourceMappingURL=utils-DrvuXyXl.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[".chunks/utils-DmmlQmsO.esm.js","../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"names":["vue","exports","forms_BboZ50_J_esm_js_1","vue_1","t","n","system_js_1","dialogs_DFrx1Kl4_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,uBAA2B,sBAAsB,yBAA6B,MAAM,CAAE,SAAU,EAAS,EAAS,EAAyB,EAAa,EAA2B,EAAO,CACpN,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,EAAI,EAAQ,EAAI,EAAQ,EAAI,IAAK,GCShC,IAAb,EAAA,KAAgE,CAc/D,YAAuD,EAAA,EATvD,EAAAC,EAOA,GAAA,KAAkD,UAGjD,IAAK,GAAA,EAAA,EAAUA,EAAA,GAAA,KAAA,UAAA,EAAAC,EAAA,KAAA,KAAA,CAAA,CAAA,KAAA,QAAAC,EAMV,MAAM,KAAA,CACF,GAAA,KAAO,OAAO,MAER,OAAW,KAAA,OACQ,MAE7B,IAAO,GAAA,MAAwC,KAAA,SAAA,EAAA,QAErC,KAAK,OAAO,MAAA,EAAA,EAAA,CAE3B,IAAMC,EAAA,KAAiB,OAAO,MD5BpB,OAAO,MAAO,EAAGC,EAAY,eAAiB,CAACD,EAAE,UAAU,CAAEA,ECuCvE,MAFe,KAAM,GAAK,EAAK,CDlCrB,MAAO,MAAM,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,CC6C9B,MAAW,WAEd,GAAA,EAAA,ED5CD,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG,EAAE,CCqD9B,MAAW,MAAK,GAExB,EAAA,EDpDI,MAAM,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,CC2DzB,MAAW,QAEnB,GAAA,EAAA,ED1DI,MAAM,KAAK,KAAK,EAAE,QAAQ,GAAG,EAAE,CCqE1C,MAFe,SAAW,GAAK,EAElB,CDlEH,MAAO,MAAM,KAAK,KAAK,EAAE,SAAS,GAAG,EAAE,GEnB5C,MAAyC,CACvB,IAAA,GAAM,EAAIF,EAAA,qBAAA,CAC3B,GAA+B,GAAmB,MAAK,GAAG,CAC9C,IAAO,GAAA,EAAAI,EAAA,GAAA,EAAA,KAAA,GAAA,CFsBf,GAAI,EEnBD,OAAA,EFsBP,OAAQ,EAAGJ,EAAM,QAAQ,eAAe,EACzC,EAAK,IAAO,EAAGI,EAA0B,GAAG,EAAE,CACjD,EAAQ,EAAI,EACZ,EAAQ,EAAI,EACZ,EAAQ,EAHgD,GAAM,IAAI,EAAE,EAAE,EAIxE","sourcesContent":["define([\"require\", \"exports\", \"./forms-BboZ50-J.esm.js\", \"../utils/system.js\", \"./dialogs-DFrx1Kl4.esm.js\", \"vue\"], function (require, exports, forms_BboZ50_J_esm_js_1, system_js_1, dialogs_DFrx1Kl4_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.r = exports.n = void 0;\n //#region src/components/dialog/dialog/composables/asyncDialogHandle.ts\n var s = class {\n constructor(t) {\n (0, forms_BboZ50_J_esm_js_1.K)(this, \"resolve\", void 0), (0, forms_BboZ50_J_esm_js_1.K)(this, \"worker\", (0, vue_1.ref)(null)), this.resolve = t;\n }\n async get() {\n if (this.worker.value)\n return this.worker.value;\n let e = (await this.resolve()).default;\n this.worker.value = l(e);\n let n = this.worker.value;\n return await (0, system_js_1.waitWhile)(() => !n.isMounted), n;\n }\n async open(...e) {\n await (await this.get()).open(...e);\n }\n async openAsLink(...e) {\n (await this.get()).openAsLink(...e);\n }\n async close(...e) {\n (await this.get()).close(...e);\n }\n async destroy(...e) {\n (await this.get()).destroy(...e);\n }\n async setProps(...e) {\n await (await this.get()).setProps(...e);\n }\n }, c = () => {\n let e = (0, vue_1.getCurrentInstance)();\n if (e?.type?.id) {\n let t = (0, dialogs_DFrx1Kl4_esm_js_1.r)(e.type.id);\n if (t)\n return t;\n }\n return (0, vue_1.inject)(\"dialogWorker\");\n }, l = (e) => (0, dialogs_DFrx1Kl4_esm_js_1.n)(e), u = (e) => new s(e);\n exports.r = c;\n exports.n = l;\n exports.t = u;\n});\n//# sourceMappingURL=utils-DmmlQmsO.esm.js.map\n","import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Установить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"]}
1
+ {"version":3,"sources":[".chunks/utils-DrvuXyXl.esm.js","../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"names":["vue","exports","forms_CdCS6WAQ_esm_js_1","vue_1","t","n","system_js_1","dialogs_CbMNuvfF_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,uBAA2B,sBAAsB,yBAA6B,MAAM,CAAE,SAAU,EAAS,EAAS,EAAyB,EAAa,EAA2B,EAAO,CACpN,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,EAAI,EAAQ,EAAI,EAAQ,EAAI,IAAK,GCShC,IAAb,EAAA,KAAgE,CAc/D,YAAuD,EAAA,EATvD,EAAAC,EAOA,GAAA,KAAkD,UAGjD,IAAK,GAAA,EAAA,EAAUA,EAAA,GAAA,KAAA,UAAA,EAAAC,EAAA,KAAA,KAAA,CAAA,CAAA,KAAA,QAAAC,EAMV,MAAM,KAAA,CACF,GAAA,KAAO,OAAO,MAER,OAAW,KAAA,OACQ,MAE7B,IAAO,GAAA,MAAwC,KAAA,SAAA,EAAA,QAErC,KAAK,OAAO,MAAA,EAAA,EAAA,CAE3B,IAAMC,EAAA,KAAiB,OAAO,MD5BpB,OAAO,MAAO,EAAGC,EAAY,eAAiB,CAACD,EAAE,UAAU,CAAEA,ECuCvE,MAFe,KAAM,GAAK,EAAK,CDlCrB,MAAO,MAAM,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,CC6C9B,MAAW,WAEd,GAAA,EAAA,ED5CD,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG,EAAE,CCqD9B,MAAW,MAAK,GAExB,EAAA,EDpDI,MAAM,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,CC2DzB,MAAW,QAEnB,GAAA,EAAA,ED1DI,MAAM,KAAK,KAAK,EAAE,QAAQ,GAAG,EAAE,CCqE1C,MAFe,SAAW,GAAK,EAElB,CDlEH,MAAO,MAAM,KAAK,KAAK,EAAE,SAAS,GAAG,EAAE,GEnB5C,MAAyC,CACvB,IAAA,GAAM,EAAIF,EAAA,qBAAA,CAC3B,GAA+B,GAAmB,MAAK,GAAG,CAC9C,IAAO,GAAA,EAAAI,EAAA,GAAA,EAAA,KAAA,GAAA,CFsBf,GAAI,EEnBD,OAAA,EFsBP,OAAQ,EAAGJ,EAAM,QAAQ,eAAe,EACzC,EAAK,IAAO,EAAGI,EAA0B,GAAG,EAAE,CACjD,EAAQ,EAAI,EACZ,EAAQ,EAAI,EACZ,EAAQ,EAHgD,GAAM,IAAI,EAAE,EAAE,EAIxE","sourcesContent":["define([\"require\", \"exports\", \"./forms-CdCS6WAQ.esm.js\", \"../utils/system.js\", \"./dialogs-CbMNuvfF.esm.js\", \"vue\"], function (require, exports, forms_CdCS6WAQ_esm_js_1, system_js_1, dialogs_CbMNuvfF_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.r = exports.n = void 0;\n //#region src/components/dialog/dialog/composables/asyncDialogHandle.ts\n var s = class {\n constructor(t) {\n (0, forms_CdCS6WAQ_esm_js_1.K)(this, \"resolve\", void 0), (0, forms_CdCS6WAQ_esm_js_1.K)(this, \"worker\", (0, vue_1.ref)(null)), this.resolve = t;\n }\n async get() {\n if (this.worker.value)\n return this.worker.value;\n let e = (await this.resolve()).default;\n this.worker.value = l(e);\n let n = this.worker.value;\n return await (0, system_js_1.waitWhile)(() => !n.isMounted), n;\n }\n async open(...e) {\n await (await this.get()).open(...e);\n }\n async openAsLink(...e) {\n (await this.get()).openAsLink(...e);\n }\n async close(...e) {\n (await this.get()).close(...e);\n }\n async destroy(...e) {\n (await this.get()).destroy(...e);\n }\n async setProps(...e) {\n await (await this.get()).setProps(...e);\n }\n }, c = () => {\n let e = (0, vue_1.getCurrentInstance)();\n if (e?.type?.id) {\n let t = (0, dialogs_CbMNuvfF_esm_js_1.r)(e.type.id);\n if (t)\n return t;\n }\n return (0, vue_1.inject)(\"dialogWorker\");\n }, l = (e) => (0, dialogs_CbMNuvfF_esm_js_1.n)(e), u = (e) => new s(e);\n exports.r = c;\n exports.n = l;\n exports.t = u;\n});\n//# sourceMappingURL=utils-DrvuXyXl.esm.js.map\n","import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Установить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"]}
@@ -1,6 +1,6 @@
1
- import { K as e } from "./forms-BboZ50-J.esm.js";
1
+ import { K as e } from "./forms-CdCS6WAQ.esm.js";
2
2
  import { waitWhile as t } from "../utils/system.js";
3
- import { n, r } from "./dialogs-DFrx1Kl4.esm.js";
3
+ import { n, r } from "./dialogs-CbMNuvfF.esm.js";
4
4
  import { getCurrentInstance as i, inject as a, ref as o } from "vue";
5
5
  //#region src/components/dialog/dialog/composables/asyncDialogHandle.ts
6
6
  var s = class {
@@ -40,4 +40,4 @@ var s = class {
40
40
  //#endregion
41
41
  export { l as n, c as r, u as t };
42
42
 
43
- //# sourceMappingURL=utils-DmmlQmsO.esm.js.map
43
+ //# sourceMappingURL=utils-DrvuXyXl.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils-DmmlQmsO.esm.js","names":[],"sources":["../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Установить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"],"mappings":";;;;;AAYA,IAAa,IAAb,MAAgE;CAc/D,YAAY,GAA2C;AACtD,UAVD,WAAA,KAAA,EAAS,UAOT,UAAkD,EAAI,KAAK,CAAA,EAG1D,KAAK,UAAU;;CAMhB,MAAM,MAAM;AACX,MAAI,KAAK,OAAO,MAAO,QAAO,KAAK,OAAO;EAG1C,IAAM,KADS,MAAM,KAAK,SAAS,EACD;AAElC,OAAK,OAAO,QAAQ,EAAa,EAAmB;EAEpD,IAAM,IAAS,KAAK,OAAO;AAI3B,SAFA,MAAM,QAAgB,CAAC,EAAO,UAAU,EAEjC;;CAMR,MAAM,KAAK,GAAG,GAA8C;AAG3D,SAFe,MAAM,KAAK,KAAK,EAElB,KAAK,GAAG,EAAK;;CAQ3B,MAAM,WAAW,GAAG,GAA8C;AAGjE,GAFe,MAAM,KAAK,KAAK,EAEnB,WAAW,GAAG,EAAK;;CAQhC,MAAM,MAAM,GAAG,GAA+C;AAG7D,GAFe,MAAM,KAAK,KAAK,EAExB,MAAM,GAAG,EAAK;;CAMtB,MAAM,QAAQ,GAAG,GAA+C;AAG/D,GAFe,MAAM,KAAK,KAAK,EAExB,QAAQ,GAAG,EAAK;;CAQxB,MAAM,SAAS,GAAG,GAAkD;AAGnE,SAFe,MAAM,KAAK,KAAK,EAElB,SAAS,GAAG,EAAK;;GCvFnB,UAAyB;CAErC,IAAM,IAAqB,GAAoB;AAC/C,KAAI,GAAoB,MAAM,IAAI;EACjC,IAAM,IAAe,EAAgB,EAAmB,KAAK,GAAG;AAChE,MAAI,EAAc,QAAO;;AAG1B,QAAO,EAAO,eAAe;GAQjB,KAA8C,MACnD,EAAgB,EAAgB,EAU3B,KAAmD,MACxD,IAAI,EAAqB,EAAQ"}
1
+ {"version":3,"file":"utils-DrvuXyXl.esm.js","names":[],"sources":["../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Установить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"],"mappings":";;;;;AAYA,IAAa,IAAb,MAAgE;CAc/D,YAAY,GAA2C;AACtD,UAVD,WAAA,KAAA,EAAS,UAOT,UAAkD,EAAI,KAAK,CAAA,EAG1D,KAAK,UAAU;;CAMhB,MAAM,MAAM;AACX,MAAI,KAAK,OAAO,MAAO,QAAO,KAAK,OAAO;EAG1C,IAAM,KADS,MAAM,KAAK,SAAS,EACD;AAElC,OAAK,OAAO,QAAQ,EAAa,EAAmB;EAEpD,IAAM,IAAS,KAAK,OAAO;AAI3B,SAFA,MAAM,QAAgB,CAAC,EAAO,UAAU,EAEjC;;CAMR,MAAM,KAAK,GAAG,GAA8C;AAG3D,SAFe,MAAM,KAAK,KAAK,EAElB,KAAK,GAAG,EAAK;;CAQ3B,MAAM,WAAW,GAAG,GAA8C;AAGjE,GAFe,MAAM,KAAK,KAAK,EAEnB,WAAW,GAAG,EAAK;;CAQhC,MAAM,MAAM,GAAG,GAA+C;AAG7D,GAFe,MAAM,KAAK,KAAK,EAExB,MAAM,GAAG,EAAK;;CAMtB,MAAM,QAAQ,GAAG,GAA+C;AAG/D,GAFe,MAAM,KAAK,KAAK,EAExB,QAAQ,GAAG,EAAK;;CAQxB,MAAM,SAAS,GAAG,GAAkD;AAGnE,SAFe,MAAM,KAAK,KAAK,EAElB,SAAS,GAAG,EAAK;;GCvFnB,UAAyB;CAErC,IAAM,IAAqB,GAAoB;AAC/C,KAAI,GAAoB,MAAM,IAAI;EACjC,IAAM,IAAe,EAAgB,EAAmB,KAAK,GAAG;AAChE,MAAI,EAAc,QAAO;;AAG1B,QAAO,EAAO,eAAe;GAQjB,KAA8C,MACnD,EAAgB,EAAgB,EAU3B,KAAmD,MACxD,IAAI,EAAqB,EAAQ"}