@topvisor/ui 1.0.41 → 1.0.42-TopSelector.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 (159) hide show
  1. package/.chunks/{core-D2o3elGA.amd.js → core-CNHOrWnw.amd.js} +2 -2
  2. package/.chunks/{core-D2o3elGA.amd.js.map → core-CNHOrWnw.amd.js.map} +1 -1
  3. package/.chunks/{core-CwjGTMhd.es.js → core-kP5TitXz.es.js} +4 -4
  4. package/.chunks/{core-CwjGTMhd.es.js.map → core-kP5TitXz.es.js.map} +1 -1
  5. package/.chunks/{datepicker-Byyye2pn.amd.js → datepicker-DnMEQ2c7.amd.js} +2 -2
  6. package/.chunks/{datepicker-Byyye2pn.amd.js.map → datepicker-DnMEQ2c7.amd.js.map} +1 -1
  7. package/.chunks/{datepicker-N83oX3hx.es.js → datepicker-yhtd7Tx4.es.js} +2 -2
  8. package/.chunks/{datepicker-N83oX3hx.es.js.map → datepicker-yhtd7Tx4.es.js.map} +1 -1
  9. package/.chunks/{dialog_selectorRegions-pDIYvl7b.amd.js → dialog_selectorRegions-B7ylHRje.amd.js} +2 -2
  10. package/.chunks/{dialog_selectorRegions-pDIYvl7b.amd.js.map → dialog_selectorRegions-B7ylHRje.amd.js.map} +1 -1
  11. package/.chunks/{dialog_selectorRegions-lYV2SJBx.es.js → dialog_selectorRegions-C7d9L2z3.es.js} +4 -4
  12. package/.chunks/{dialog_selectorRegions-lYV2SJBx.es.js.map → dialog_selectorRegions-C7d9L2z3.es.js.map} +1 -1
  13. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-C0n3o7PD.amd.js +2 -0
  14. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-C0n3o7PD.amd.js.map +1 -0
  15. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-X3S_WcSV.es.js → dialogs.vue_vue_type_script_setup_true_lang-ma6AxkKH.es.js} +113 -97
  16. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-ma6AxkKH.es.js.map +1 -0
  17. package/.chunks/forms-BduN5hFf.amd.js +3 -0
  18. package/.chunks/{forms-DO87ZZk9.amd.js.map → forms-BduN5hFf.amd.js.map} +1 -1
  19. package/.chunks/{forms-C-fyoosd.es.js → forms-CiEXUPjB.es.js} +482 -470
  20. package/.chunks/{forms-C-fyoosd.es.js.map → forms-CiEXUPjB.es.js.map} +1 -1
  21. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CXMPz7WD.es.js +184 -0
  22. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CXMPz7WD.es.js.map +1 -0
  23. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DUKoPDjZ.amd.js +2 -0
  24. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DUKoPDjZ.amd.js.map +1 -0
  25. package/.chunks/{menu.vue_vue_type_style_index_0_lang-Bi9Z81pC.es.js → menu.vue_vue_type_style_index_0_lang--iamwNSE.es.js} +2 -2
  26. package/.chunks/{menu.vue_vue_type_style_index_0_lang-Bi9Z81pC.es.js.map → menu.vue_vue_type_style_index_0_lang--iamwNSE.es.js.map} +1 -1
  27. package/.chunks/{menu.vue_vue_type_style_index_0_lang-7eYwnVLw.amd.js → menu.vue_vue_type_style_index_0_lang-C9cIXmj2.amd.js} +2 -2
  28. package/.chunks/{menu.vue_vue_type_style_index_0_lang-7eYwnVLw.amd.js.map → menu.vue_vue_type_style_index_0_lang-C9cIXmj2.amd.js.map} +1 -1
  29. package/.chunks/{notice-B8nfJMJN.amd.js → notice-CEYLelBs.amd.js} +2 -2
  30. package/.chunks/{notice-B8nfJMJN.amd.js.map → notice-CEYLelBs.amd.js.map} +1 -1
  31. package/.chunks/{notice-DCONQ8rR.es.js → notice-D13FhiHA.es.js} +2 -2
  32. package/.chunks/{notice-DCONQ8rR.es.js.map → notice-D13FhiHA.es.js.map} +1 -1
  33. package/.chunks/{page.vue_vue_type_script_setup_true_lang-Dze2ZUr3.es.js → page.vue_vue_type_script_setup_true_lang-B6YquNpa.es.js} +4 -4
  34. package/.chunks/page.vue_vue_type_script_setup_true_lang-B6YquNpa.es.js.map +1 -0
  35. package/.chunks/{page.vue_vue_type_script_setup_true_lang-Cg3dLy7K.amd.js → page.vue_vue_type_script_setup_true_lang-DpmKeCWn.amd.js} +2 -2
  36. package/.chunks/page.vue_vue_type_script_setup_true_lang-DpmKeCWn.amd.js.map +1 -0
  37. package/.chunks/popup-C5-ffkMJ.amd.js +2 -0
  38. package/.chunks/popup-C5-ffkMJ.amd.js.map +1 -0
  39. package/.chunks/{popup-PpCQY5Zi.es.js → popup-a5ndofEo.es.js} +107 -74
  40. package/.chunks/popup-a5ndofEo.es.js.map +1 -0
  41. package/.chunks/{utils-DAIrXU57.amd.js → utils-BgjhCn4H.amd.js} +2 -2
  42. package/.chunks/{utils-DAIrXU57.amd.js.map → utils-BgjhCn4H.amd.js.map} +1 -1
  43. package/.chunks/{utils-DsICGMuv.es.js → utils-DUw1K93-.es.js} +2 -2
  44. package/.chunks/{utils-DsICGMuv.es.js.map → utils-DUw1K93-.es.js.map} +1 -1
  45. package/.chunks/utils-DWmOkm95.amd.js +2 -0
  46. package/.chunks/utils-DWmOkm95.amd.js.map +1 -0
  47. package/.chunks/{utils-BcKnFj1j.es.js → utils-DvEz97O5.es.js} +246 -169
  48. package/.chunks/utils-DvEz97O5.es.js.map +1 -0
  49. package/assets/core.css +1 -1
  50. package/assets/forms.css +1 -1
  51. package/assets/formsExt.css +1 -1
  52. package/assets/notice.css +1 -1
  53. package/assets/project.css +1 -1
  54. package/charts/charts.amd.js +1 -1
  55. package/charts/charts.js +1 -1
  56. package/components/dialog/dialog/dialogs/dialogs.vue.d.ts +3 -0
  57. package/components/dialog/lib/types.d.ts +23 -0
  58. package/components/dialog/lib/utils.d.ts +8 -8
  59. package/components/dialog/lib/utils.globalEvents.d.ts +2 -2
  60. package/components/dialog/lib/worker.d.ts +12 -11
  61. package/components/forms/button/button.vue.d.ts +2 -5
  62. package/components/forms/button/types.d.ts +10 -0
  63. package/components/formsExt/formsExt.d.ts +2 -0
  64. package/components/formsExt/policy/policy.vue.d.ts +4 -0
  65. package/components/formsExt/policy/types.d.ts +10 -0
  66. package/components/formsExt/selector2/composables/useAPI.d.ts +1 -1
  67. package/components/formsExt/selector2/composables/useMenu.d.ts +5 -1
  68. package/components/formsExt/selector2/selector2.vue.d.ts +10 -177
  69. package/components/formsExt/selector2/stories/dummyAPIRequest.d.ts +1 -2
  70. package/components/formsExt/selector2/types.d.ts +48 -22
  71. package/components/popup/alert/alert.vue.d.ts +1 -10
  72. package/components/popup/alert/types.d.ts +2 -2
  73. package/components/popup/confirm/confirm.vue.d.ts +1 -12
  74. package/components/popup/confirm/types.d.ts +1 -1
  75. package/components/popup/lib/popup.d.ts +6 -2
  76. package/components/popup/lib/worker.d.ts +6 -4
  77. package/components/popup/popup/opener.vue.d.ts +11 -17
  78. package/components/popup/popup/popup.vue.d.ts +30 -32
  79. package/components/popup/popup/types.d.ts +20 -11
  80. package/components/popup/prompt/prompt.vue.d.ts +1 -12
  81. package/components/popup/prompt/types.d.ts +1 -1
  82. package/core/app.amd.js +1 -1
  83. package/core/app.js +5 -5
  84. package/core/core/core.d.ts +1 -1
  85. package/core/core/options.d.ts +7 -6
  86. package/core/core/state.d.ts +1 -1
  87. package/core/plugins/core.d.ts +1 -1
  88. package/core/utils/date.d.ts +30 -12
  89. package/core/utils/dom.d.ts +11 -1
  90. package/core/utils/string.d.ts +1 -1
  91. package/dialog/dialog.amd.js +1 -1
  92. package/dialog/dialog.js +2 -2
  93. package/forms/forms.amd.js +1 -1
  94. package/forms/forms.js +1 -1
  95. package/formsExt/formsExt.amd.js +1 -1
  96. package/formsExt/formsExt.amd.js.map +1 -1
  97. package/formsExt/formsExt.js +434 -311
  98. package/formsExt/formsExt.js.map +1 -1
  99. package/icomoon/demo.html +15 -1
  100. package/icomoon/fonts/Topvisor-2.eot +0 -0
  101. package/icomoon/fonts/Topvisor-2.svg +1 -0
  102. package/icomoon/fonts/Topvisor-2.ttf +0 -0
  103. package/icomoon/fonts/Topvisor-2.woff +0 -0
  104. package/icomoon/selection.json +1 -1
  105. package/icomoon/style.css +8 -5
  106. package/layout/layout.amd.js +1 -1
  107. package/layout/layout.js +1 -1
  108. package/package.json +1 -1
  109. package/popup/popup.amd.js +1 -1
  110. package/popup/popup.amd.js.map +1 -1
  111. package/popup/popup.js +27 -24
  112. package/popup/popup.js.map +1 -1
  113. package/popup/worker.amd.js +1 -1
  114. package/popup/worker.amd.js.map +1 -1
  115. package/popup/worker.js +30 -21
  116. package/popup/worker.js.map +1 -1
  117. package/project/project.amd.js +1 -1
  118. package/project/project.amd.js.map +1 -1
  119. package/project/project.js +6 -6
  120. package/project/project.js.map +1 -1
  121. package/tabsView/tabsView.amd.js +1 -1
  122. package/tabsView/tabsView.js +1 -1
  123. package/utils/clipboard.amd.js +1 -1
  124. package/utils/clipboard.js +1 -1
  125. package/utils/date.amd.js +1 -1
  126. package/utils/date.js +4 -3
  127. package/utils/device.amd.js +1 -1
  128. package/utils/device.js +1 -1
  129. package/utils/dom.amd.js +1 -1
  130. package/utils/dom.amd.js.map +1 -1
  131. package/utils/dom.js +27 -22
  132. package/utils/dom.js.map +1 -1
  133. package/utils/lodash.amd.js +1 -1
  134. package/utils/lodash.js +1 -1
  135. package/utils/price.amd.js +1 -1
  136. package/utils/price.js +1 -1
  137. package/utils/searchers.amd.js +1 -1
  138. package/utils/searchers.js +3 -3
  139. package/utils/string.amd.js +1 -1
  140. package/utils/string.amd.js.map +1 -1
  141. package/utils/string.js +34 -30
  142. package/utils/string.js.map +1 -1
  143. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-B14m3p7q.amd.js +0 -2
  144. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-B14m3p7q.amd.js.map +0 -1
  145. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-X3S_WcSV.es.js.map +0 -1
  146. package/.chunks/forms-DO87ZZk9.amd.js +0 -3
  147. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-BJTTvdc7.es.js +0 -181
  148. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-BJTTvdc7.es.js.map +0 -1
  149. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DDQSxC8E.amd.js +0 -2
  150. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DDQSxC8E.amd.js.map +0 -1
  151. package/.chunks/page.vue_vue_type_script_setup_true_lang-Cg3dLy7K.amd.js.map +0 -1
  152. package/.chunks/page.vue_vue_type_script_setup_true_lang-Dze2ZUr3.es.js.map +0 -1
  153. package/.chunks/popup-PpCQY5Zi.es.js.map +0 -1
  154. package/.chunks/popup-XXfdNLmr.amd.js +0 -2
  155. package/.chunks/popup-XXfdNLmr.amd.js.map +0 -1
  156. package/.chunks/utils-BcKnFj1j.es.js.map +0 -1
  157. package/.chunks/utils-pvFg1FqE.amd.js +0 -2
  158. package/.chunks/utils-pvFg1FqE.amd.js.map +0 -1
  159. package/icomoon/Topvisor icons.json +0 -6612
package/icomoon/style.css CHANGED
@@ -1,10 +1,10 @@
1
1
  @font-face {
2
2
  font-family: 'Topvisor-2';
3
- src: url('fonts/Topvisor-2.eot?7tppdv');
4
- src: url('fonts/Topvisor-2.eot?7tppdv#iefix') format('embedded-opentype'),
5
- url('fonts/Topvisor-2.ttf?7tppdv') format('truetype'),
6
- url('fonts/Topvisor-2.woff?7tppdv') format('woff'),
7
- url('fonts/Topvisor-2.svg?7tppdv#Topvisor-2') format('svg');
3
+ src: url('fonts/Topvisor-2.eot?jwzdqo');
4
+ src: url('fonts/Topvisor-2.eot?jwzdqo#iefix') format('embedded-opentype'),
5
+ url('fonts/Topvisor-2.ttf?jwzdqo') format('truetype'),
6
+ url('fonts/Topvisor-2.woff?jwzdqo') format('woff'),
7
+ url('fonts/Topvisor-2.svg?jwzdqo#Topvisor-2') format('svg');
8
8
  font-weight: normal;
9
9
  font-style: normal;
10
10
  font-display: block;
@@ -193,6 +193,9 @@
193
193
  .icon2-snapshot:before {
194
194
  content: "\e91b";
195
195
  }
196
+ .icon2-question-fill:before {
197
+ content: "\ea0a";
198
+ }
196
199
  .icon2-restore:before {
197
200
  content: "\ea09";
198
201
  }
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-DO87ZZk9.amd","../require/css.amd!../assets/layout.css"],function(v,t,e,n){"use strict";if(typeof e>"u")var e=window.Vue;const l=e.defineComponent({__name:"rows",props:{gap:{default:"none"}},setup(s){const o=s;return(c,B)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-rows":!0,["top-rows-gap_"+o.gap]:!0})},[e.renderSlot(c.$slots,"default")],2))}}),r={class:"top-islandRows"},a={key:0,class:"top-islandRows_title"},d=e.defineComponent({__name:"islandRows",setup(s){return(o,c)=>(e.openBlock(),e.createElementBlock("div",r,[o.$slots.title?(e.openBlock(),e.createElementBlock("div",a,[e.renderSlot(o.$slots,"title")])):e.createCommentVNode("",!0),e.createVNode(l,{gap:"l",class:"top-islandRows_rows"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3})]))}}),i={},_={class:"top-islandRows_row"};function u(s,o){return e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(s.$slots,"default")])}const p=n._export_sfc(i,[["render",u]]),w={},f={class:"top-islandRows_subTitle"};function m(s,o){return e.openBlock(),e.createElementBlock("div",f,[e.renderSlot(s.$slots,"default")])}const R=n._export_sfc(w,[["render",m]]),T=d,k=p,$=R,h=l;t.TopIslandRows=T,t.TopIslandRowsRow=k,t.TopIslandRowsSubTitle=$,t.TopRows=h,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-BduN5hFf.amd","../require/css.amd!../assets/layout.css"],function(v,t,e,n){"use strict";if(typeof e>"u")var e=window.Vue;const l=e.defineComponent({__name:"rows",props:{gap:{default:"none"}},setup(s){const o=s;return(c,B)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-rows":!0,["top-rows-gap_"+o.gap]:!0})},[e.renderSlot(c.$slots,"default")],2))}}),r={class:"top-islandRows"},a={key:0,class:"top-islandRows_title"},d=e.defineComponent({__name:"islandRows",setup(s){return(o,c)=>(e.openBlock(),e.createElementBlock("div",r,[o.$slots.title?(e.openBlock(),e.createElementBlock("div",a,[e.renderSlot(o.$slots,"title")])):e.createCommentVNode("",!0),e.createVNode(l,{gap:"l",class:"top-islandRows_rows"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3})]))}}),i={},_={class:"top-islandRows_row"};function u(s,o){return e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(s.$slots,"default")])}const p=n._export_sfc(i,[["render",u]]),w={},f={class:"top-islandRows_subTitle"};function m(s,o){return e.openBlock(),e.createElementBlock("div",f,[e.renderSlot(s.$slots,"default")])}const R=n._export_sfc(w,[["render",m]]),T=d,k=p,$=R,h=l;t.TopIslandRows=T,t.TopIslandRowsRow=k,t.TopIslandRowsSubTitle=$,t.TopRows=h,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=layout.amd.js.map
package/layout/layout.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Core as i } from "../core/app.js";
2
2
  import { defineComponent as r, createElementBlock as t, openBlock as e, normalizeClass as d, renderSlot as n, createCommentVNode as p, createVNode as u, withCtx as m } from "vue";
3
- import { t as l } from "../.chunks/forms-C-fyoosd.es.js";
3
+ import { t as l } from "../.chunks/forms-CiEXUPjB.es.js";
4
4
  const _ = ["../assets/layout.css"].map((s) => import.meta.resolve(s));
5
5
  i.insertCSSLinkToPage(_, !0);
6
6
  const c = /* @__PURE__ */ r({
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@topvisor/ui",
3
3
  "private": false,
4
- "version": "1.0.41",
4
+ "version": "1.0.42-TopSelector.3",
5
5
  "type": "module",
6
6
  "description": "Topvisor UI-kit Vue",
7
7
  "author": "Topvisor",
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/listItem.vue_vue_type_script_setup_true_lang-DDQSxC8E.amd","vue","../.chunks/forms-DO87ZZk9.amd","../require/css.amd!../assets/popup.css"],function(h,p,f,e,c){"use strict";if(typeof e>"u")var e=window.Vue;const $=e.defineComponent({__name:"widgetInput",props:e.mergeModels({modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{},styling:{},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{},addCleaner:{type:Boolean,default:!0},title:{},captionType:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(u){const d=e.useModel(u,"modelValue");return(r,o)=>(e.openBlock(),e.createBlock(c._sfc_main$2,e.mergeProps(r.$props,{modificator:"popupWidgetInput",modelValue:d.value,"onUpdate:modelValue":o[0]||(o[0]=l=>d.value=l)}),null,16,["modelValue"]))}}),S=e.defineComponent({__name:"alert",props:{submitText:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{}},emits:["open","close","scrollContentList"],setup(u){const r={...u,submitText:void 0};return delete r.submitText,(o,l)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupAlert"},r,{onOpen:l[0]||(l[0]=s=>o.$emit("open",s)),onClose:l[1]||(l[1]=s=>o.$emit("close",s)),onScrollContentList:l[2]||(l[2]=(...s)=>o.$emit("scrollContentList",...s))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(o.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(o.$slots,"footer"),e.createVNode(c._sfc_main,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.submitText||o.$i18n.Common.Close),1)]),_:1})]),_:2},[o.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"header")]),key:"0"}:void 0,o.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),key:"1"}:void 0]),1040))}}),y=e.defineComponent({__name:"confirm",props:{cancelText:{},submitText:{},isWarning:{type:Boolean},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{}},emits:["open","close","scrollContentList","submit"],setup(u,{emit:d}){const r=u,o=d,l=e.ref(!1),s=()=>{l.value=!0,o("submit")},C=n=>{if(l.value){l.value=!1;return}o("close",n)},T={...r,submitText:void 0,cancelText:void 0,isWarning:void 0};return delete T.submitText,delete T.cancelText,delete T.isWarning,(n,i)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupConfirm"},T,{onOpen:i[0]||(i[0]=t=>n.$emit("open",t)),onClose:i[1]||(i[1]=t=>C(t)),onScrollContentList:i[2]||(i[2]=(...t)=>n.$emit("scrollContentList",...t))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(n.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(n.$slots,"footer"),e.createVNode(c._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.cancelText||n.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(c._sfc_main,{onClick:s,color:n.isWarning?"red":"blue"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.submitText||n.$i18n.Common.Continue),1)]),_:1},8,["color"])]),_:2},[n.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"header")]),key:"0"}:void 0,n.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),key:"1"}:void 0]),1040))}}),V=e.defineComponent({__name:"prompt",props:{submitText:{},cancelText:{},defaultValue:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{}},emits:["open","close","scrollContentList","submit"],setup(u,{emit:d}){const r=u,o=d,l=()=>C.value=r.defaultValue??"",s=e.ref(!1),C=e.ref();e.watch(()=>r.defaultValue,()=>l(),{immediate:!0});const T=()=>{s.value=!0},n=t=>{if(s.value){s.value=!1,o("submit",C.value),l();return}l(),o("close",t)},i={...r,submitText:void 0,cancelText:void 0,defaultValue:void 0};return delete i.submitText,delete i.cancelText,delete i.defaultValue,(t,a)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupPrompt"},i,{onOpen:a[1]||(a[1]=m=>t.$emit("open",m)),onClose:a[2]||(a[2]=m=>n(m)),onScrollContentList:a[3]||(a[3]=(...m)=>t.$emit("scrollContentList",...m))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(t.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(t.$slots,"footer"),e.createVNode(c._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelText||t.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(c._sfc_main,{onClick:T},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.submitText||t.$i18n.Common.OK),1)]),_:1})]),_:2},[t.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"header")]),key:"0"}:void 0,t.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"default"),e.createVNode($,{modelValue:C.value,"onUpdate:modelValue":a[0]||(a[0]=m=>C.value=m),modelModifiers:{trim:!0}},null,8,["modelValue"])]),key:"1"}:void 0]),1040))}}),B=f._sfc_main,v=f._sfc_main$2,P=f._sfc_main$1,b=$,k=S,w=y,g=V;p.TopPopup=B,p.TopPopupAlert=k,p.TopPopupConfirm=w,p.TopPopupListItem=P,p.TopPopupOpener=v,p.TopPopupPrompt=g,p.TopPopupWidgetInput=b,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/listItem.vue_vue_type_script_setup_true_lang-DUKoPDjZ.amd","vue","../.chunks/forms-BduN5hFf.amd","../require/css.amd!../assets/popup.css"],function(h,a,f,e,c){"use strict";if(typeof e>"u")var e=window.Vue;const $=e.defineComponent({__name:"widgetInput",props:e.mergeModels({modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{},styling:{},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{},addCleaner:{type:Boolean,default:!0},title:{},captionType:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(d){const u=e.useModel(d,"modelValue");return(r,o)=>(e.openBlock(),e.createBlock(c._sfc_main$2,e.mergeProps(r.$props,{modificator:"popupWidgetInput",modelValue:u.value,"onUpdate:modelValue":o[0]||(o[0]=l=>u.value=l)}),null,16,["modelValue"]))}}),S=e.defineComponent({__name:"alert",props:{submitText:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList"],setup(d){const r={...d,submitText:void 0};return delete r.submitText,(o,l)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupAlert"},r,{onOpen:l[0]||(l[0]=s=>o.$emit("open",s)),onClose:l[1]||(l[1]=s=>o.$emit("close",s)),onScrollContentList:l[2]||(l[2]=(...s)=>o.$emit("scrollContentList",...s))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(o.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(o.$slots,"footer"),e.createVNode(c._sfc_main,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.submitText||o.$i18n.Common.Close),1)]),_:1})]),_:2},[o.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"header")]),key:"0"}:void 0,o.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),key:"1"}:void 0]),1040))}}),y=e.defineComponent({__name:"confirm",props:{cancelText:{},submitText:{},isWarning:{type:Boolean},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList","submit"],setup(d,{emit:u}){const r=d,o=u,l=e.ref(!1),s=()=>{l.value=!0,o("submit")},C=n=>{if(l.value){l.value=!1;return}o("close",n)},T={...r,submitText:void 0,cancelText:void 0,isWarning:void 0};return delete T.submitText,delete T.cancelText,delete T.isWarning,(n,i)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupConfirm"},T,{onOpen:i[0]||(i[0]=t=>n.$emit("open",t)),onClose:i[1]||(i[1]=t=>C(t)),onScrollContentList:i[2]||(i[2]=(...t)=>n.$emit("scrollContentList",...t))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(n.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(n.$slots,"footer"),e.createVNode(c._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.cancelText||n.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(c._sfc_main,{onClick:s,color:n.isWarning?"red":"blue"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.submitText||n.$i18n.Common.Continue),1)]),_:1},8,["color"])]),_:2},[n.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"header")]),key:"0"}:void 0,n.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),key:"1"}:void 0]),1040))}}),V=e.defineComponent({__name:"prompt",props:{submitText:{},cancelText:{},defaultValue:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList","submit"],setup(d,{emit:u}){const r=d,o=u,l=()=>C.value=r.defaultValue??"",s=e.ref(!1),C=e.ref();e.watch(()=>r.defaultValue,()=>l(),{immediate:!0});const T=()=>{s.value=!0},n=t=>{if(s.value){s.value=!1,o("submit",C.value),l();return}l(),o("close",t)},i={...r,submitText:void 0,cancelText:void 0,defaultValue:void 0};return delete i.submitText,delete i.cancelText,delete i.defaultValue,(t,p)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupPrompt"},i,{onOpen:p[1]||(p[1]=m=>t.$emit("open",m)),onClose:p[2]||(p[2]=m=>n(m)),onScrollContentList:p[3]||(p[3]=(...m)=>t.$emit("scrollContentList",...m))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(t.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(t.$slots,"footer"),e.createVNode(c._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelText||t.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(c._sfc_main,{onClick:T},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.submitText||t.$i18n.Common.OK),1)]),_:1})]),_:2},[t.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"header")]),key:"0"}:void 0,t.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"default"),e.createVNode($,{modelValue:C.value,"onUpdate:modelValue":p[0]||(p[0]=m=>C.value=m),modelModifiers:{trim:!0}},null,8,["modelValue"])]),key:"1"}:void 0]),1040))}}),B=f._sfc_main,v=f._sfc_main$2,P=f._sfc_main$1,b=$,k=S,w=y,g=V;a.TopPopup=B,a.TopPopupAlert=k,a.TopPopupConfirm=w,a.TopPopupListItem=P,a.TopPopupOpener=v,a.TopPopupPrompt=g,a.TopPopupWidgetInput=b,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=popup.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup.amd.js","sources":["../../src/components/popup/confirm/confirm.vue","../../src/components/popup/prompt/prompt.vue","../../src/components/popup/popup.ts"],"sourcesContent":["<script setup lang=\"ts\">\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>();\n\nconst emit = defineEmits<Emits>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, isWarning: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.isWarning;\n</script>\n\n<template>\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\">\nimport { ref, watch } 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';\nimport TopPopupWidgetInput from '@/components/popup/popup/widgetInput.vue';\n\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<Emits>();\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) => {\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\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, defaultValue: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.defaultValue;\n</script>\n\n<template>\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","import type { ComponentCustomProps } from 'vue';\n\nimport Popup from './popup/popup.vue';\nimport PopupOpener from './popup/opener.vue';\nimport PopupListItem from './popup/listItem.vue';\nimport PopupWidgetInput from './popup/widgetInput.vue';\nimport PopupAlert from './alert/alert.vue';\nimport PopupConfirm from './confirm/confirm.vue';\nimport PopupPrompt from './prompt/prompt.vue';\n\nexport const TopPopup = Popup as typeof Popup & ComponentCustomProps;\nexport const TopPopupOpener = PopupOpener as typeof PopupOpener & ComponentCustomProps;\nexport const TopPopupListItem = PopupListItem as typeof PopupListItem & ComponentCustomProps;\nexport const TopPopupWidgetInput = PopupWidgetInput as typeof PopupWidgetInput & ComponentCustomProps;\nexport const TopPopupAlert = PopupAlert as typeof PopupAlert & ComponentCustomProps;\nexport const TopPopupConfirm = PopupConfirm as typeof PopupConfirm & ComponentCustomProps;\nexport const TopPopupPrompt = PopupPrompt as typeof PopupPrompt & ComponentCustomProps;\n"],"names":["isSubmit","vue","onClose","popupEvent","emit","$propsPopup","props","reset","localValue","TopPopup","listItem_vue_vue_type_script_setup_true_lang","TopPopupOpener","TopPopupListItem","TopPopupWidgetInput","_sfc_main$3","TopPopupAlert","_sfc_main$2","TopPopupConfirm","_sfc_main$1","TopPopupPrompt","_sfc_main"],"mappings":"wpEAWAA,EAAAC,EAAA,IAAA,EAAA,SAGCD,EAAA,MAAA,gBAKDE,EAAAC,GAAA,CACC,GAAAH,EAAA,MAAA,CACCA,EAAA,MAAA,SAEA,CAGDI,EAAA,QAAAD,CAAA,GAGDE,EAAA,CAAA,GAAAC,EAAA,WAAA,OAAA,WAAA,OAAA,UAAA,MAAA,wwCCjBAC,EAAA,IAAAC,EAAA,MAAAF,EAAA,cAAA,GAEAN,EAAAC,EAAA,IAAA,EAAA,EAEAO,EAAAP,EAAA,IAAA,EACAA,EAAA,MAAA,IAAAK,EAAA,aAAA,IAAAC,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,eAGCP,EAAA,MAAA,IAGDE,EAAAC,GAAA,CACC,GAAAH,EAAA,MAAA,CACCA,EAAA,MAAA,GAEAI,EAAA,SAAAI,EAAA,KAAA,EAEAD,EAAA,QAEA,CAGDA,EAAA,EAEAH,EAAA,QAAAD,CAAA,GAGDE,EAAA,CAAA,GAAAC,EAAA,WAAA,OAAA,WAAA,OAAA,aAAA,MAAA,ujCC7BOG,EAAAC,EAAA,UACAC,EAAAD,EAAA,YACAE,EAAAF,EAAA,YACAG,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC"}
1
+ {"version":3,"file":"popup.amd.js","sources":["../../src/components/popup/confirm/confirm.vue","../../src/components/popup/prompt/prompt.vue","../../src/components/popup/popup.ts"],"sourcesContent":["<script setup lang=\"ts\">\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>();\n\nconst emit = defineEmits<Emits>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, isWarning: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.isWarning;\n</script>\n\n<template>\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\">\nimport { ref, watch } 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';\nimport TopPopupWidgetInput from '@/components/popup/popup/widgetInput.vue';\n\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<Emits>();\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) => {\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\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, defaultValue: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.defaultValue;\n</script>\n\n<template>\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","import type { ComponentCustomProps } from 'vue';\n\nimport Popup from './popup/popup.vue';\nimport PopupOpener from './popup/opener.vue';\nimport PopupListItem from './popup/listItem.vue';\nimport PopupWidgetInput from './popup/widgetInput.vue';\nimport PopupAlert from './alert/alert.vue';\nimport PopupConfirm from './confirm/confirm.vue';\nimport PopupPrompt from './prompt/prompt.vue';\n\nexport const TopPopup = Popup as typeof Popup & ComponentCustomProps;\nexport const TopPopupOpener = PopupOpener as typeof PopupOpener & ComponentCustomProps;\nexport const TopPopupListItem = PopupListItem as typeof PopupListItem & ComponentCustomProps;\nexport const TopPopupWidgetInput = PopupWidgetInput as typeof PopupWidgetInput & ComponentCustomProps;\nexport const TopPopupAlert = PopupAlert as typeof PopupAlert & ComponentCustomProps;\nexport const TopPopupConfirm = PopupConfirm as typeof PopupConfirm & ComponentCustomProps;\nexport const TopPopupPrompt = PopupPrompt as typeof PopupPrompt & ComponentCustomProps;\n"],"names":["isSubmit","vue","onClose","popupEvent","emit","$propsPopup","props","reset","localValue","TopPopup","listItem_vue_vue_type_script_setup_true_lang","TopPopupOpener","TopPopupListItem","TopPopupWidgetInput","_sfc_main$3","TopPopupAlert","_sfc_main$2","TopPopupConfirm","_sfc_main$1","TopPopupPrompt","_sfc_main"],"mappings":"wqEAWAA,EAAAC,EAAA,IAAA,EAAA,SAGCD,EAAA,MAAA,gBAKDE,EAAAC,GAAA,CACC,GAAAH,EAAA,MAAA,CACCA,EAAA,MAAA,SAEA,CAGDI,EAAA,QAAAD,CAAA,GAGDE,EAAA,CAAA,GAAAC,EAAA,WAAA,OAAA,WAAA,OAAA,UAAA,MAAA,gxCCjBAC,EAAA,IAAAC,EAAA,MAAAF,EAAA,cAAA,GAEAN,EAAAC,EAAA,IAAA,EAAA,EAEAO,EAAAP,EAAA,IAAA,EACAA,EAAA,MAAA,IAAAK,EAAA,aAAA,IAAAC,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,eAGCP,EAAA,MAAA,IAGDE,EAAAC,GAAA,CACC,GAAAH,EAAA,MAAA,CACCA,EAAA,MAAA,GAEAI,EAAA,SAAAI,EAAA,KAAA,EAEAD,EAAA,QAEA,CAGDA,EAAA,EAEAH,EAAA,QAAAD,CAAA,GAGDE,EAAA,CAAA,GAAAC,EAAA,WAAA,OAAA,WAAA,OAAA,aAAA,MAAA,ujCC7BOG,EAAAC,EAAA,UACAC,EAAAD,EAAA,YACAE,EAAAF,EAAA,YACAG,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC"}
package/popup/popup.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Core as g } from "../core/app.js";
2
- import { _ as y, a as O, b as D } from "../.chunks/listItem.vue_vue_type_script_setup_true_lang-BJTTvdc7.es.js";
2
+ import { _ as y, a as O, b as D } from "../.chunks/listItem.vue_vue_type_script_setup_true_lang-CXMPz7WD.es.js";
3
3
  import { defineComponent as b, mergeModels as I, useModel as M, createBlock as B, openBlock as V, mergeProps as S, createSlots as k, withCtx as n, renderSlot as l, createVNode as c, createTextVNode as C, toDisplayString as T, ref as L, watch as w } from "vue";
4
- import { f as H, _ as v } from "../.chunks/forms-C-fyoosd.es.js";
5
- const W = ["../assets/popup.css"].map((a) => import.meta.resolve(a));
4
+ import { f as H, _ as v } from "../.chunks/forms-CiEXUPjB.es.js";
5
+ const W = ["../assets/popup.css"].map((r) => import.meta.resolve(r));
6
6
  g.insertCSSLinkToPage(W, !0);
7
7
  const P = /* @__PURE__ */ b({
8
8
  __name: "widgetInput",
@@ -28,9 +28,9 @@ const P = /* @__PURE__ */ b({
28
28
  modelModifiers: {}
29
29
  }),
30
30
  emits: ["update:modelValue"],
31
- setup(a) {
32
- const m = M(a, "modelValue");
33
- return (r, e) => (V(), B(H, S(r.$props, {
31
+ setup(r) {
32
+ const m = M(r, "modelValue");
33
+ return (p, e) => (V(), B(H, S(p.$props, {
34
34
  modificator: "popupWidgetInput",
35
35
  modelValue: m.value,
36
36
  "onUpdate:modelValue": e[0] || (e[0] = (s) => m.value = s)
@@ -47,12 +47,13 @@ const P = /* @__PURE__ */ b({
47
47
  pos: {},
48
48
  notch: { type: Boolean },
49
49
  openByHover: { type: Boolean },
50
- posBy: {}
50
+ posBy: {},
51
+ data: {}
51
52
  },
52
53
  emits: ["open", "close", "scrollContentList"],
53
- setup(a) {
54
- const r = { ...a, submitText: void 0 };
55
- return delete r.submitText, (e, s) => (V(), B(y, S({ class: "top-popupAlert" }, r, {
54
+ setup(r) {
55
+ const p = { ...r, submitText: void 0 };
56
+ return delete p.submitText, (e, s) => (V(), B(y, S({ class: "top-popupAlert" }, p, {
56
57
  onOpen: s[0] || (s[0] = (i) => e.$emit("open", i)),
57
58
  onClose: s[1] || (s[1] = (i) => e.$emit("close", i)),
58
59
  onScrollContentList: s[2] || (s[2] = (...i) => e.$emit("scrollContentList", ...i))
@@ -100,11 +101,12 @@ const P = /* @__PURE__ */ b({
100
101
  pos: {},
101
102
  notch: { type: Boolean },
102
103
  openByHover: { type: Boolean },
103
- posBy: {}
104
+ posBy: {},
105
+ data: {}
104
106
  },
105
107
  emits: ["open", "close", "scrollContentList", "submit"],
106
- setup(a, { emit: m }) {
107
- const r = a, e = m, s = L(!1), i = () => {
108
+ setup(r, { emit: m }) {
109
+ const p = r, e = m, s = L(!1), i = () => {
108
110
  s.value = !0, e("submit");
109
111
  }, f = (t) => {
110
112
  if (s.value) {
@@ -112,11 +114,11 @@ const P = /* @__PURE__ */ b({
112
114
  return;
113
115
  }
114
116
  e("close", t);
115
- }, $ = { ...r, submitText: void 0, cancelText: void 0, isWarning: void 0 };
116
- return delete $.submitText, delete $.cancelText, delete $.isWarning, (t, p) => (V(), B(y, S({ class: "top-popupConfirm" }, $, {
117
- onOpen: p[0] || (p[0] = (o) => t.$emit("open", o)),
118
- onClose: p[1] || (p[1] = (o) => f(o)),
119
- onScrollContentList: p[2] || (p[2] = (...o) => t.$emit("scrollContentList", ...o))
117
+ }, $ = { ...p, submitText: void 0, cancelText: void 0, isWarning: void 0 };
118
+ return delete $.submitText, delete $.cancelText, delete $.isWarning, (t, a) => (V(), B(y, S({ class: "top-popupConfirm" }, $, {
119
+ onOpen: a[0] || (a[0] = (o) => t.$emit("open", o)),
120
+ onClose: a[1] || (a[1] = (o) => f(o)),
121
+ onScrollContentList: a[2] || (a[2] = (...o) => t.$emit("scrollContentList", ...o))
120
122
  }), k({
121
123
  opener: n(() => [
122
124
  l(t.$slots, "opener")
@@ -170,12 +172,13 @@ const P = /* @__PURE__ */ b({
170
172
  pos: {},
171
173
  notch: { type: Boolean },
172
174
  openByHover: { type: Boolean },
173
- posBy: {}
175
+ posBy: {},
176
+ data: {}
174
177
  },
175
178
  emits: ["open", "close", "scrollContentList", "submit"],
176
- setup(a, { emit: m }) {
177
- const r = a, e = m, s = () => f.value = r.defaultValue ?? "", i = L(!1), f = L();
178
- w(() => r.defaultValue, () => s(), { immediate: !0 });
179
+ setup(r, { emit: m }) {
180
+ const p = r, e = m, s = () => f.value = p.defaultValue ?? "", i = L(!1), f = L();
181
+ w(() => p.defaultValue, () => s(), { immediate: !0 });
179
182
  const $ = () => {
180
183
  i.value = !0;
181
184
  }, t = (o) => {
@@ -184,8 +187,8 @@ const P = /* @__PURE__ */ b({
184
187
  return;
185
188
  }
186
189
  s(), e("close", o);
187
- }, p = { ...r, submitText: void 0, cancelText: void 0, defaultValue: void 0 };
188
- return delete p.submitText, delete p.cancelText, delete p.defaultValue, (o, u) => (V(), B(y, S({ class: "top-popupPrompt" }, p, {
190
+ }, a = { ...p, submitText: void 0, cancelText: void 0, defaultValue: void 0 };
191
+ return delete a.submitText, delete a.cancelText, delete a.defaultValue, (o, u) => (V(), B(y, S({ class: "top-popupPrompt" }, a, {
189
192
  onOpen: u[1] || (u[1] = (d) => o.$emit("open", d)),
190
193
  onClose: u[2] || (u[2] = (d) => t(d)),
191
194
  onScrollContentList: u[3] || (u[3] = (...d) => o.$emit("scrollContentList", ...d))
@@ -1 +1 @@
1
- {"version":3,"file":"popup.js","sources":["../../src/components/popup/popup/widgetInput.vue","../../src/components/popup/alert/alert.vue","../../src/components/popup/confirm/confirm.vue","../../src/components/popup/prompt/prompt.vue","../../src/components/popup/popup.ts"],"sourcesContent":["<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 { 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>();\n\ndefineEmits<Emits>();\n\nconst $propsPopup = { ...props, submitText: undefined };\ndelete $propsPopup.submitText;\n</script>\n\n<template>\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\">\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>();\n\nconst emit = defineEmits<Emits>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, isWarning: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.isWarning;\n</script>\n\n<template>\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\">\nimport { ref, watch } 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';\nimport TopPopupWidgetInput from '@/components/popup/popup/widgetInput.vue';\n\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<Emits>();\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) => {\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\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, defaultValue: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.defaultValue;\n</script>\n\n<template>\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","import type { ComponentCustomProps } from 'vue';\n\nimport Popup from './popup/popup.vue';\nimport PopupOpener from './popup/opener.vue';\nimport PopupListItem from './popup/listItem.vue';\nimport PopupWidgetInput from './popup/widgetInput.vue';\nimport PopupAlert from './alert/alert.vue';\nimport PopupConfirm from './confirm/confirm.vue';\nimport PopupPrompt from './prompt/prompt.vue';\n\nexport const TopPopup = Popup as typeof Popup & ComponentCustomProps;\nexport const TopPopupOpener = PopupOpener as typeof PopupOpener & ComponentCustomProps;\nexport const TopPopupListItem = PopupListItem as typeof PopupListItem & ComponentCustomProps;\nexport const TopPopupWidgetInput = PopupWidgetInput as typeof PopupWidgetInput & ComponentCustomProps;\nexport const TopPopupAlert = PopupAlert as typeof PopupAlert & ComponentCustomProps;\nexport const TopPopupConfirm = PopupConfirm as typeof PopupConfirm & ComponentCustomProps;\nexport const TopPopupPrompt = PopupPrompt as typeof PopupPrompt & ComponentCustomProps;\n"],"names":["model","useModel","__props","$propsPopup","props","emit","__emit","isSubmit","ref","onSubmit","onClose","popupEvent","reset","localValue","watch","TopPopup","_sfc_main$5","TopPopupOpener","_sfc_main$8","TopPopupListItem","_sfc_main$7","TopPopupWidgetInput","_sfc_main$3","TopPopupAlert","_sfc_main$2","TopPopupConfirm","_sfc_main$1","TopPopupPrompt","_sfc_main"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAAA,IAAAC,EAAAC,GAAA,YAAA;;;;;;;;;;;;;;;;;;;;;;ACAA,UAAAC,IAAA,EAAA,GAJAD,GAIA,YAAA,OAAA;AACA,kBAAAC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA,UAAAC,IAAAF,GAEAG,IAAAC,GAEAC,IAAAC,EAAA,EAAA,GAEAC,IAAA,MAAA;AACC,MAAAF,EAAA,QAAA,IAEAF,EAAA,QAAA;AAAA,IAAa,GAGdK,IAAA,CAAAC,MAAA;AACC,UAAAJ,EAAA,OAAA;AACC,QAAAA,EAAA,QAAA;AAEA;AAAA,MAAA;AAGD,MAAAF,EAAA,SAAAM,CAAA;AAAA,IAAwB,GAGzBR,IAAA,EAAA,GAAAC,GAAA,YAAA,QAAA,YAAA,QAAA,WAAA,OAAA;AACA,kBAAAD,EAAA,YACA,OAAAA,EAAA,YACA,OAAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBA,UAAAC,IAAAF,GAEAG,IAAAC,GAEAM,IAAA,MAAAC,EAAA,QAAAT,EAAA,gBAAA,IAEAG,IAAAC,EAAA,EAAA,GAEAK,IAAAL,EAAA;AACA,IAAAM,EAAA,MAAAV,EAAA,cAAA,MAAAQ,EAAA,GAAA,EAAA,WAAA,GAAA,CAAA;AAEA,UAAAH,IAAA,MAAA;AACC,MAAAF,EAAA,QAAA;AAAA,IAAiB,GAGlBG,IAAA,CAAAC,MAAA;AACC,UAAAJ,EAAA,OAAA;AACC,QAAAA,EAAA,QAAA,IAEAF,EAAA,UAAAQ,EAAA,KAAA,GAEAD,EAAA;AAEA;AAAA,MAAA;AAGD,MAAAA,EAAA,GAEAP,EAAA,SAAAM,CAAA;AAAA,IAAwB,GAGzBR,IAAA,EAAA,GAAAC,GAAA,YAAA,QAAA,YAAA,QAAA,cAAA,OAAA;AACA,kBAAAD,EAAA,YACA,OAAAA,EAAA,YACA,OAAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChCOY,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC;"}
1
+ {"version":3,"file":"popup.js","sources":["../../src/components/popup/popup/widgetInput.vue","../../src/components/popup/alert/alert.vue","../../src/components/popup/confirm/confirm.vue","../../src/components/popup/prompt/prompt.vue","../../src/components/popup/popup.ts"],"sourcesContent":["<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 { 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>();\n\ndefineEmits<Emits>();\n\nconst $propsPopup = { ...props, submitText: undefined };\ndelete $propsPopup.submitText;\n</script>\n\n<template>\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\">\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>();\n\nconst emit = defineEmits<Emits>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, isWarning: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.isWarning;\n</script>\n\n<template>\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\">\nimport { ref, watch } 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';\nimport TopPopupWidgetInput from '@/components/popup/popup/widgetInput.vue';\n\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<Emits>();\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) => {\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\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, defaultValue: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.defaultValue;\n</script>\n\n<template>\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","import type { ComponentCustomProps } from 'vue';\n\nimport Popup from './popup/popup.vue';\nimport PopupOpener from './popup/opener.vue';\nimport PopupListItem from './popup/listItem.vue';\nimport PopupWidgetInput from './popup/widgetInput.vue';\nimport PopupAlert from './alert/alert.vue';\nimport PopupConfirm from './confirm/confirm.vue';\nimport PopupPrompt from './prompt/prompt.vue';\n\nexport const TopPopup = Popup as typeof Popup & ComponentCustomProps;\nexport const TopPopupOpener = PopupOpener as typeof PopupOpener & ComponentCustomProps;\nexport const TopPopupListItem = PopupListItem as typeof PopupListItem & ComponentCustomProps;\nexport const TopPopupWidgetInput = PopupWidgetInput as typeof PopupWidgetInput & ComponentCustomProps;\nexport const TopPopupAlert = PopupAlert as typeof PopupAlert & ComponentCustomProps;\nexport const TopPopupConfirm = PopupConfirm as typeof PopupConfirm & ComponentCustomProps;\nexport const TopPopupPrompt = PopupPrompt as typeof PopupPrompt & ComponentCustomProps;\n"],"names":["model","useModel","__props","$propsPopup","props","emit","__emit","isSubmit","ref","onSubmit","onClose","popupEvent","reset","localValue","watch","TopPopup","_sfc_main$5","TopPopupOpener","_sfc_main$8","TopPopupListItem","_sfc_main$7","TopPopupWidgetInput","_sfc_main$3","TopPopupAlert","_sfc_main$2","TopPopupConfirm","_sfc_main$1","TopPopupPrompt","_sfc_main"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAAA,IAAAC,EAAAC,GAAA,YAAA;;;;;;;;;;;;;;;;;;;;;;;ACAA,UAAAC,IAAA,EAAA,GAJAD,GAIA,YAAA,OAAA;AACA,kBAAAC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA,UAAAC,IAAAF,GAEAG,IAAAC,GAEAC,IAAAC,EAAA,EAAA,GAEAC,IAAA,MAAA;AACC,MAAAF,EAAA,QAAA,IAEAF,EAAA,QAAA;AAAA,IAAa,GAGdK,IAAA,CAAAC,MAAA;AACC,UAAAJ,EAAA,OAAA;AACC,QAAAA,EAAA,QAAA;AAEA;AAAA,MAAA;AAGD,MAAAF,EAAA,SAAAM,CAAA;AAAA,IAAwB,GAGzBR,IAAA,EAAA,GAAAC,GAAA,YAAA,QAAA,YAAA,QAAA,WAAA,OAAA;AACA,kBAAAD,EAAA,YACA,OAAAA,EAAA,YACA,OAAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBA,UAAAC,IAAAF,GAEAG,IAAAC,GAEAM,IAAA,MAAAC,EAAA,QAAAT,EAAA,gBAAA,IAEAG,IAAAC,EAAA,EAAA,GAEAK,IAAAL,EAAA;AACA,IAAAM,EAAA,MAAAV,EAAA,cAAA,MAAAQ,EAAA,GAAA,EAAA,WAAA,GAAA,CAAA;AAEA,UAAAH,IAAA,MAAA;AACC,MAAAF,EAAA,QAAA;AAAA,IAAiB,GAGlBG,IAAA,CAAAC,MAAA;AACC,UAAAJ,EAAA,OAAA;AACC,QAAAA,EAAA,QAAA,IAEAF,EAAA,UAAAQ,EAAA,KAAA,GAEAD,EAAA;AAEA;AAAA,MAAA;AAGD,MAAAA,EAAA,GAEAP,EAAA,SAAAM,CAAA;AAAA,IAAwB,GAGzBR,IAAA,EAAA,GAAAC,GAAA,YAAA,QAAA,YAAA,QAAA,cAAA,OAAA;AACA,kBAAAD,EAAA,YACA,OAAAA,EAAA,YACA,OAAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChCOY,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC;"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-DO87ZZk9.amd","../utils/dom.amd"],function(require,exports,forms,utils_dom){"use strict";if(typeof vue>"u")var vue=window.Vue;class Worker{static noClose=!1;static vueConnectors=new Map;static options={};static getPopup(t){return utils_dom.default.storage(t,"TopPopup")}static getAll(){return utils_dom.default.querySelectorAllArray(document,".top-popup-wrapper")}static getAllVisible(){return utils_dom.default.querySelectorAllVisible(document,".top-popup-wrapper")}static async openByOpener(t){if(!(t instanceof HTMLElement))return;const o={};return o.popup=t.dataset.topPopup,o.id=t.dataset.topPopupId,t.dataset.topPopupP&&(o.p=parseInt(t.dataset.topPopupP)),t.dataset.topPopupPos&&(o.p=parseInt(t.dataset.topPopupPos)),t.dataset.topPopupNotch&&(o.notch=t.dataset.topPopupNotch==="true"||t.dataset.topPopupNotch==="1"),t.dataset.topPopupClass&&(o.class=t.dataset.topPopupClass),t.dataset.topPopupPosBy&&(o.posBy=t.dataset.topPopupPosBy),t.dataset.topPopupFront&&(o.frontSelector=t.dataset.topPopupFront),t.dataset.topPopupInvertX&&(o.invertX=t.dataset.topPopupInvertX==="true"||t.dataset.topPopupInvertX==="1"),t.dataset.topPopupOpenByHover&&(o.openByHover=t.dataset.topPopupOpenByHover==="true"||t.dataset.topPopupOpenByHover==="1"),t.dataset.topPopupUseOriginal&&(o.useOriginal=t.dataset.topPopupUseOriginal==="true"||t.dataset.topPopupUseOriginal==="1"),await Worker.open(t,o)}static async open(elOpener,options){elOpener instanceof HTMLElement&&(elOpener.dataset.topPopupOpened="opened");const{TopLibPopup}=await new Promise((t,o)=>require(["../.chunks/popup-XXfdNLmr.amd"],t,o));if(forms.Core.$){const $elOpener=forms.Core.$(elOpener);if($elOpener.data("aftershow")){let afterShow=$elOpener.data("aftershow");typeof afterShow=="string"&&(afterShow=eval(afterShow.replace(/\W/g,""))),$elOpener.one("aftershow.top-menu-popup",afterShow)}if($elOpener.data("afterclose")){let afterclose=$elOpener.data("afterclose");typeof afterclose=="string"&&(afterclose=eval(afterclose.replace(/\W/g,""))),$elOpener.one("afterclose.top-menu-popup",afterclose)}}return options.isFullScreen=forms.Core.state.isMobile,new TopLibPopup(elOpener,options)}static close(t){const o=Worker.getPopup(t);o&&o.close()}static recalcPosition(t){const o=Worker.getPopup(t);o&&o.elPopupBody instanceof HTMLElement&&o.recalcPosition()}static scrollToActive(t){if(!utils_dom.default.querySelectorVisible(t,"ul.top-popup_content > li > .top-active"))return;const s=t.querySelector("ul.top-popup_content"),a=utils_dom.default.querySelectorAllVisible(t,"ul.top-popup_content > li");t.classList.add("top-popup-wrapper-no_animate"),setTimeout(()=>t.classList.remove("top-popup-wrapper-no_animate"),100);let p=100;for(const e of a){if(e.querySelector(":scope > .top-active"))break;e instanceof HTMLElement&&(p+=e.offsetHeight)}if(s instanceof HTMLElement){const e=s.offsetHeight;p>e?s.scrollTop=p-e:s.scrollTop=0}}static decoratorBeforeOpen(t){this.options.decoratorBeforeOpen&&this.options.decoratorBeforeOpen(t)}static decoratorAfterOpen(t){this.options.decoratorAfterOpen&&this.options.decoratorAfterOpen(t)}static decoratorIsIgnoreOuterClick(t){return this.options.decoratorIsIgnoreOuterClick?this.options.decoratorIsIgnoreOuterClick(t):!1}static regVueComponent(t,o){if(Worker.vueConnectors.get(t))throw"Vue component Popup use duplicated id: "+t;Worker.vueConnectors.set(t,o)}static unregVueComponent(t){Worker.vueConnectors.delete(t)}static genElPopupOpener(t,o,...s){const a=utils_dom.default.genEl(t,{},...s);a.dataset.topPopup="#"+o.id;for(let p in o){const e="topPopup"+p.charAt(0).toUpperCase()+p.slice(1);a.dataset[e]=o[p]}return a}}exports.TopPopupWorker=Worker,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-BduN5hFf.amd","../utils/dom.amd"],function(require,exports,forms,utils_dom){"use strict";if(typeof vue>"u")var vue=window.Vue;class Worker{static noClose=!1;static vueConnectors=new Map;static options={};static getPopup(t){return utils_dom.default.storage(t,"TopPopup")}static getElPopupOpener(t){return t.closest("[data-top-popup]")}static getPopupFromOpener(t){const o=Worker.getElPopupOpener(t);return o?utils_dom.default.storage(o,"#TopPopup"):null}static getAll(){return utils_dom.default.querySelectorAllArray(document,".top-popup-wrapper")}static getAllVisible(){return utils_dom.default.querySelectorAllVisible(document,".top-popup-wrapper")}static async openByOpener(t){if(!(t instanceof HTMLElement))return;const o={};return o.popup=t.dataset.topPopup,o.id=t.dataset.topPopupId,t.dataset.topPopupP&&(o.p=parseInt(t.dataset.topPopupP)),t.dataset.topPopupPos&&(o.p=parseInt(t.dataset.topPopupPos)),t.dataset.topPopupNotch&&(o.notch=t.dataset.topPopupNotch==="true"||t.dataset.topPopupNotch==="1"),t.dataset.topPopupClass&&(o.class=t.dataset.topPopupClass),t.dataset.topPopupPosBy&&(o.posBy=t.dataset.topPopupPosBy),t.dataset.topPopupFront&&(o.frontSelector=t.dataset.topPopupFront),t.dataset.topPopupInvertX&&(o.invertX=t.dataset.topPopupInvertX==="true"||t.dataset.topPopupInvertX==="1"),t.dataset.topPopupOpenByHover&&(o.openByHover=t.dataset.topPopupOpenByHover==="true"||t.dataset.topPopupOpenByHover==="1"),t.dataset.topPopupUseOriginal&&(o.useOriginal=t.dataset.topPopupUseOriginal==="true"||t.dataset.topPopupUseOriginal==="1"),await Worker.open(t,o)}static async open(elOpener,options){elOpener instanceof HTMLElement&&(elOpener.dataset.topPopupOpened="opened");const{TopLibPopup}=await new Promise((t,o)=>require(["../.chunks/popup-C5-ffkMJ.amd"],t,o));if(forms.Core.$){const $elOpener=forms.Core.$(elOpener);if($elOpener.data("aftershow")){let afterShow=$elOpener.data("aftershow");typeof afterShow=="string"&&(afterShow=eval(afterShow.replace(/\W/g,""))),$elOpener.one("aftershow.top-menu-popup",afterShow)}if($elOpener.data("afterclose")){let afterclose=$elOpener.data("afterclose");typeof afterclose=="string"&&(afterclose=eval(afterclose.replace(/\W/g,""))),$elOpener.one("afterclose.top-menu-popup",afterclose)}}return options.isFullScreen=forms.Core.state.isMobile,new TopLibPopup(elOpener,options)}static close(t,o=!0){const e=Worker.getPopup(t);e&&(e.close(),o&&setTimeout(()=>{e.el.focus()}))}static recalcPosition(t){const o=Worker.getPopup(t);o&&o.elPopupBody instanceof HTMLElement&&o.recalcPosition()}static scrollToActive(t){if(!utils_dom.default.querySelectorVisible(t,"ul.top-popup_content > li > .top-active"))return;const e=t.querySelector("ul.top-popup_content"),s=utils_dom.default.querySelectorAllVisible(t,"ul.top-popup_content > li");t.classList.add("top-popup-wrapper-no_animate"),setTimeout(()=>t.classList.remove("top-popup-wrapper-no_animate"),100);let r=100;for(const p of s){if(p.querySelector(":scope > .top-active"))break;p instanceof HTMLElement&&(r+=p.offsetHeight)}if(e instanceof HTMLElement){const p=e.offsetHeight;r>p?e.scrollTop=r-p:e.scrollTop=0}}static decoratorBeforeOpen(t){this.options.decoratorBeforeOpen&&this.options.decoratorBeforeOpen(t)}static decoratorAfterOpen(t){this.options.decoratorAfterOpen&&this.options.decoratorAfterOpen(t)}static decoratorIsIgnoreOuterClick(t){return this.options.decoratorIsIgnoreOuterClick?this.options.decoratorIsIgnoreOuterClick(t):!1}static regVueComponent(t,o){if(Worker.vueConnectors.get(t))throw"Vue component Popup use duplicated id: "+t;Worker.vueConnectors.set(t,o)}static unregVueComponent(t){Worker.vueConnectors.delete(t)}static genElPopupOpener(t,o,...e){const s=utils_dom.default.genEl(t,{},...e);s.dataset.topPopup="#"+o.id;for(let r in o){const p="topPopup"+r.charAt(0).toUpperCase()+r.slice(1);s.dataset[p]=o[r],o.data!==void 0&&(s.__TopPopupOpenerProps=o.data)}return s}}exports.TopPopupWorker=Worker,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=worker.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.amd.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { TopLibPopup, PopupOptions } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.close();\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировтаь элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens);\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\t\t}\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","elOpener2","options2","elLi","elsLi","elUl","heightWrapper","top","popup","e","id","vueConnector","el","tagName","elsChildrens","name","props"],"mappings":"4KA6BA,MAAA,MAAA,mBAKkB,OAAA,cAAA,IAAA,sBAOU,OAAA,SAAAA,EAAA,+CAMY,8FAOyB,uGAOE,CAClE,aAAA,aAAAC,EAAA,CAOC,GAAA,EAAAA,aAAA,aAAA,8EAWAA,EAAA,QAAA,+CAIAA,EAAA,QAAA,mDAOAA,EAAA,QAAA,gBACCC,EAAA,MAAAD,EAAA,QAAA,gBAAA,QAAAA,EAAA,QAAA,gBAAA,KAGDA,EAAA,QAAA,iDAIAA,EAAA,QAAA,iDAIAA,EAAA,QAAA,yDAOAA,EAAA,QAAA,kBACCC,EAAA,QAAAD,EAAA,QAAA,kBAAA,QAAAA,EAAA,QAAA,kBAAA,KAMDA,EAAA,QAAA,sBACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,KAMDA,EAAA,QAAA,sBACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,2BAGyC,CAC3C,aAAA,KAAA,SAAA,QAAA,yKAYC,GAAA,MAAA,KAAA,EAAA,wCAIC,GAAA,UAAA,KAAA,WAAA,EAAA,2CAEC,OAAA,WAAA,WAGC,UAAA,KAAA,UAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,2BAAA,SAAA,CAAmD,CAIpD,GAAA,UAAA,KAAA,YAAA,EAAA,6CAEC,OAAA,YAAA,WAGC,WAAA,KAAA,WAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,4BAAA,UAAA,CAAqD,CACtD,uDAKD,IAAA,YAAA,SAAA,OAAA,CAAwC,CACzC,OAAA,MAAAD,EAAA,wCAMC,CACD,OAAA,eAAAA,EAAA,uFAMC,CACD,OAAA,eAAAA,EAAA,2NAcCA,EAAA,UAAA,IAAA,8BAAA,EACA,WAAA,IAAAA,EAAA,UAAA,OAAA,8BAAA,EAAA,GAAA,YAGA,UAAAG,KAAAC,EAAA,CACC,GAAAD,EAAA,cAAA,sBAAA,qDAI6C,CAG9C,GAAAE,aAAA,YAAA,CACC,MAAAC,EAAAD,EAAA,aACAE,EAAAD,EACCD,EAAA,UAAAE,EAAAD,EAEAD,EAAA,UAAA,CACD,CACD,CACD,OAAA,oBAAAG,EAAA,CAGC,KAAA,QAAA,qBACC,KAAA,QAAA,oBAAAA,CAAA,CACD,CACD,OAAA,mBAAAA,EAAA,CAGC,KAAA,QAAA,oBACC,KAAA,QAAA,mBAAAA,CAAA,CACD,CACD,OAAA,4BAAAC,EAAA,CAGC,OAAA,KAAA,QAAA,wEAIA,EAAO,CACR,OAAA,gBAAAC,EAAAC,EAAA,8GAY0C,CAC1C,OAAA,kBAAAD,EAAA,CAMC,OAAA,cAAA,OAAAA,CAAA,CAA8B,mCAO9B,MAAAE,EAAA,UAAA,QAAA,MAAAC,EAAA,CAAA,EAAA,GAAAC,CAAA,8BAQA,QAAAC,KAAAC,EAAA,0EAGkC,CAGlC,OAAAJ,CAAO,CAGT"}
1
+ {"version":3,"file":"worker.amd.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\n\t}\n\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\n\t\tconst elOpener = Worker.getElPopupOpener(el);\n\t\tif (!elOpener) return null;\n\n\t\treturn DOM.storage(elOpener, '#TopPopup');\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement, restoreFocus = true): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.close();\n\n\t\t\tif (restoreFocus) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpopup.el.focus();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировать элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\n\t\t\tif (props.data !== undefined) el.__TopPopupOpenerProps = props.data;\n\t\t}\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","el","elOpener2","options2","popup","elLi","elsLi","elUl","heightWrapper","top","e","id","vueConnector","tagName","elsChildrens","name","props"],"mappings":"4KA6BA,MAAA,MAAA,mBAKkB,OAAA,cAAA,IAAA,sBAOU,OAAA,SAAAA,EAAA,+CAMY,CACvC,OAAA,iBAAAC,EAAA,CAGC,OAAAA,EAAA,QAAA,kBAAA,CAAiD,CAClD,OAAA,mBAAAA,EAAA,oCAIC,OAAAC,2CAAA,IAEwC,8FAOuB,uGAOE,CAClE,aAAA,aAAAA,EAAA,CAOC,GAAA,EAAAA,aAAA,aAAA,8EAWAA,EAAA,QAAA,+CAIAA,EAAA,QAAA,mDAOAA,EAAA,QAAA,gBACCC,EAAA,MAAAD,EAAA,QAAA,gBAAA,QAAAA,EAAA,QAAA,gBAAA,KAGDA,EAAA,QAAA,iDAIAA,EAAA,QAAA,iDAIAA,EAAA,QAAA,yDAOAA,EAAA,QAAA,kBACCC,EAAA,QAAAD,EAAA,QAAA,kBAAA,QAAAA,EAAA,QAAA,kBAAA,KAMDA,EAAA,QAAA,sBACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,KAMDA,EAAA,QAAA,sBACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,2BAGyC,CAC3C,aAAA,KAAA,SAAA,QAAA,yKAYC,GAAA,MAAA,KAAA,EAAA,wCAIC,GAAA,UAAA,KAAA,WAAA,EAAA,2CAEC,OAAA,WAAA,WAGC,UAAA,KAAA,UAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,2BAAA,SAAA,CAAmD,CAIpD,GAAA,UAAA,KAAA,YAAA,EAAA,6CAEC,OAAA,YAAA,WAGC,WAAA,KAAA,WAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,4BAAA,UAAA,CAAqD,CACtD,uDAKD,IAAA,YAAA,SAAA,OAAA,CAAwC,kFAUrCE,EAAA,GAAA,MAAA,CAAe,CAAA,EAGlB,CACD,OAAA,eAAAJ,EAAA,uFAMC,CACD,OAAA,eAAAA,EAAA,2NAcCA,EAAA,UAAA,IAAA,8BAAA,EACA,WAAA,IAAAA,EAAA,UAAA,OAAA,8BAAA,EAAA,GAAA,YAGA,UAAAK,KAAAC,EAAA,CACC,GAAAD,EAAA,cAAA,sBAAA,qDAI6C,CAG9C,GAAAE,aAAA,YAAA,CACC,MAAAC,EAAAD,EAAA,aACAE,EAAAD,EACCD,EAAA,UAAAE,EAAAD,EAEAD,EAAA,UAAA,CACD,CACD,CACD,OAAA,oBAAAH,EAAA,CAGC,KAAA,QAAA,qBACC,KAAA,QAAA,oBAAAA,CAAA,CACD,CACD,OAAA,mBAAAA,EAAA,CAGC,KAAA,QAAA,oBACC,KAAA,QAAA,mBAAAA,CAAA,CACD,CACD,OAAA,4BAAAM,EAAA,CAGC,OAAA,KAAA,QAAA,wEAIA,EAAO,CACR,OAAA,gBAAAC,EAAAC,EAAA,8GAY0C,CAC1C,OAAA,kBAAAD,EAAA,CAMC,OAAA,cAAA,OAAAA,CAAA,CAA8B,mCAO9B,MAAAV,EAAA,UAAA,QAAA,MAAAY,EAAA,CAAA,EAAA,GAAAC,CAAA,8BAQA,QAAAC,KAAAC,EAAA,2EAKCA,EAAA,OAAA,SAAAf,EAAA,sBAAAe,EAAA,KAA+D,CAGhE,OAAAf,CAAO,CAGT"}
package/popup/worker.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as Core } from "../.chunks/forms-C-fyoosd.es.js";
1
+ import { C as Core } from "../.chunks/forms-CiEXUPjB.es.js";
2
2
  import DOM from "../utils/dom.js";
3
3
  class Worker {
4
4
  /**
@@ -16,6 +16,13 @@ class Worker {
16
16
  static getPopup(t) {
17
17
  return DOM.storage(t, "TopPopup");
18
18
  }
19
+ static getElPopupOpener(t) {
20
+ return t.closest("[data-top-popup]");
21
+ }
22
+ static getPopupFromOpener(t) {
23
+ const o = Worker.getElPopupOpener(t);
24
+ return o ? DOM.storage(o, "#TopPopup") : null;
25
+ }
19
26
  /**
20
27
  * Вернуть все элементы с Popup
21
28
  */
@@ -44,7 +51,7 @@ class Worker {
44
51
  */
45
52
  static async open(elOpener, options) {
46
53
  elOpener instanceof HTMLElement && (elOpener.dataset.topPopupOpened = "opened");
47
- const { TopLibPopup } = await import("../.chunks/popup-PpCQY5Zi.es.js");
54
+ const { TopLibPopup } = await import("../.chunks/popup-a5ndofEo.es.js");
48
55
  if (Core.$) {
49
56
  const $elOpener = Core.$(elOpener);
50
57
  if ($elOpener.data("aftershow")) {
@@ -58,9 +65,11 @@ class Worker {
58
65
  }
59
66
  return options.isFullScreen = Core.state.isMobile, new TopLibPopup(elOpener, options);
60
67
  }
61
- static close(t) {
62
- const o = Worker.getPopup(t);
63
- o && o.close();
68
+ static close(t, o = !0) {
69
+ const e = Worker.getPopup(t);
70
+ e && (e.close(), o && setTimeout(() => {
71
+ e.el.focus();
72
+ }));
64
73
  }
65
74
  static recalcPosition(t) {
66
75
  const o = Worker.getPopup(t);
@@ -72,17 +81,17 @@ class Worker {
72
81
  static scrollToActive(t) {
73
82
  if (!DOM.querySelectorVisible(t, "ul.top-popup_content > li > .top-active"))
74
83
  return;
75
- const a = t.querySelector("ul.top-popup_content"), s = DOM.querySelectorAllVisible(t, "ul.top-popup_content > li");
84
+ const e = t.querySelector("ul.top-popup_content"), r = DOM.querySelectorAllVisible(t, "ul.top-popup_content > li");
76
85
  t.classList.add("top-popup-wrapper-no_animate"), setTimeout(() => t.classList.remove("top-popup-wrapper-no_animate"), 100);
77
- let p = 100;
78
- for (const e of s) {
79
- if (e.querySelector(":scope > .top-active"))
86
+ let a = 100;
87
+ for (const p of r) {
88
+ if (p.querySelector(":scope > .top-active"))
80
89
  break;
81
- e instanceof HTMLElement && (p += e.offsetHeight);
90
+ p instanceof HTMLElement && (a += p.offsetHeight);
82
91
  }
83
- if (a instanceof HTMLElement) {
84
- const e = a.offsetHeight;
85
- p > e ? a.scrollTop = p - e : a.scrollTop = 0;
92
+ if (e instanceof HTMLElement) {
93
+ const p = e.offsetHeight;
94
+ a > p ? e.scrollTop = a - p : e.scrollTop = 0;
86
95
  }
87
96
  }
88
97
  static decoratorBeforeOpen(t) {
@@ -111,16 +120,16 @@ class Worker {
111
120
  Worker.vueConnectors.delete(t);
112
121
  }
113
122
  /**
114
- * Сгенерировтаь элемент для открытия popup
123
+ * Сгенерировать элемент для открытия popup
115
124
  */
116
- static genElPopupOpener(t, o, ...a) {
117
- const s = DOM.genEl(t, {}, ...a);
118
- s.dataset.topPopup = "#" + o.id;
119
- for (let p in o) {
120
- const e = "topPopup" + p.charAt(0).toUpperCase() + p.slice(1);
121
- s.dataset[e] = o[p];
125
+ static genElPopupOpener(t, o, ...e) {
126
+ const r = DOM.genEl(t, {}, ...e);
127
+ r.dataset.topPopup = "#" + o.id;
128
+ for (let a in o) {
129
+ const p = "topPopup" + a.charAt(0).toUpperCase() + a.slice(1);
130
+ r.dataset[p] = o[a], o.data !== void 0 && (r.__TopPopupOpenerProps = o.data);
122
131
  }
123
- return s;
132
+ return r;
124
133
  }
125
134
  }
126
135
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { TopLibPopup, PopupOptions } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.close();\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировтаь элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens);\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\t\t}\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","elOpener","options","popup","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","tagName","props","elsChildrens","el","name","attrName"],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\n\t}\n\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\n\t\tconst elOpener = Worker.getElPopupOpener(el);\n\t\tif (!elOpener) return null;\n\n\t\treturn DOM.storage(elOpener, '#TopPopup');\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement, restoreFocus = true): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.close();\n\n\t\t\tif (restoreFocus) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpopup.el.focus();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировать элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\n\t\t\tif (props.data !== undefined) el.__TopPopupOpenerProps = props.data;\n\t\t}\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","el","elOpener","options","restoreFocus","popup","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","tagName","props","elsChildrens","name","attrName"],"mappings":";;AA6BA,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,EAKZ,OAAO,UAAU;AAAA;AAAA;AAAA;AAAA,EAKjB,OAAO,gBAAgB,oBAAI,IAAI;AAAA,EAE/B,OAAO,UAAmB,CAAC;AAAA;AAAA;AAAA;AAAA,EAK3B,OAAO,SAASA,GAAmC;AAC3C,WAAA,IAAI,QAAQA,GAAS,UAAU;AAAA,EAAA;AAAA,EAGvC,OAAO,iBAAiBC,GAAiC;AACjD,WAAAA,EAAG,QAAqB,kBAAkB;AAAA,EAAA;AAAA,EAGlD,OAAO,mBAAmBA,GAAqC;AACxDC,UAAAA,IAAW,OAAO,iBAAiBD,CAAE;AACvC,WAACC,IAEE,IAAI,QAAQA,GAAU,WAAW,IAFlB;AAAA,EAEkB;AAAA;AAAA;AAAA;AAAA,EAMzC,OAAO,SAAwB;AACvB,WAAA,IAAI,sBAAsB,UAAU,oBAAoB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAMhE,OAAO,gBAA+B;AAC9B,WAAA,IAAI,wBAAwB,UAAU,oBAAoB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlE,aAAa,aAAaA,GAAyD;AAC9E,QAAA,EAAEA,aAAoB,aAAc;AAExC,UAAMC,IAAwB,CAAC;AAE/BA,WAAAA,EAAQ,QAAQD,EAAS,QAAQ,UAEjCC,EAAQ,KAAKD,EAAS,QAAQ,YAK1BA,EAAS,QAAQ,cACpBC,EAAQ,IAAI,SAASD,EAAS,QAAQ,SAAS,IAG5CA,EAAS,QAAQ,gBACpBC,EAAQ,IAAI,SAASD,EAAS,QAAQ,WAAW,IAM9CA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,kBAAkB,UAAUA,EAAS,QAAQ,kBAAkB,MAG7FA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,gBAG9BA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,gBAG9BA,EAAS,QAAQ,kBACpBC,EAAQ,gBAAgBD,EAAS,QAAQ,gBAMtCA,EAAS,QAAQ,oBACpBC,EAAQ,UAAUD,EAAS,QAAQ,oBAAoB,UAAUA,EAAS,QAAQ,oBAAoB,MAMnGA,EAAS,QAAQ,wBACpBC,EAAQ,cAAcD,EAAS,QAAQ,wBAAwB,UAAUA,EAAS,QAAQ,wBAAwB,MAM/GA,EAAS,QAAQ,wBACpBC,EAAQ,cAAcD,EAAS,QAAQ,wBAAwB,UAAUA,EAAS,QAAQ,wBAAwB,MAG5G,MAAM,OAAO,KAAKA,GAAUC,CAAO;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3C,aAAqB,KAAK,UAAuB,SAA6C;AAC7F,IAAI,oBAAoB,gBAAsB,SAAA,QAAQ,iBAAiB;AAEvE,UAAM,EAAE,YAAA,IAAgB,MAAM,OAAO,iCAAS;AAE9C,QAAI,KAAK,GAAG;AACL,YAAA,YAAY,KAAK,EAAE,QAAQ;AAG7B,UAAA,UAAU,KAAK,WAAW,GAAG;AAC5B,YAAA,YAAY,UAAU,KAAK,WAAW;AACtC,QAAA,OAAQ,aAAc,aAGzB,YAAY,KAAK,UAAU,QAAQ,OAAO,EAAE,CAAC,IAGpC,UAAA,IAAI,4BAA4B,SAAS;AAAA,MAAA;AAIhD,UAAA,UAAU,KAAK,YAAY,GAAG;AAC7B,YAAA,aAAa,UAAU,KAAK,YAAY;AACxC,QAAA,OAAQ,cAAe,aAG1B,aAAa,KAAK,WAAW,QAAQ,OAAO,EAAE,CAAC,IAGtC,UAAA,IAAI,6BAA6B,UAAU;AAAA,MAAA;AAAA,IACtD;AAGO,mBAAA,eAAe,KAAK,MAAM,UAE3B,IAAI,YAAY,UAAU,OAAO;AAAA,EAAA;AAAA,EAGzC,OAAO,MAAMH,GAAsBI,IAAe,IAAY;AACvD,UAAAC,IAAQ,OAAO,SAASL,CAAO;AACrC,IAAIK,MACHA,EAAM,MAAM,GAERD,KACH,WAAW,MAAM;AAChB,MAAAC,EAAM,GAAG,MAAM;AAAA,IAAA,CACf;AAAA,EAEH;AAAA,EAGD,OAAO,eAAeL,GAA4B;AAC3C,UAAAK,IAAQ,OAAO,SAASL,CAAO;AACjC,IAAAK,KAASA,EAAM,uBAAuB,eACzCA,EAAM,eAAe;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,eAAeL,GAA4B;AAEjD,QAAI,CADiB,IAAI,qBAAqBA,GAAS,yCAAyC;AAE/F;AAGK,UAAAM,IAAON,EAAQ,cAAc,sBAAsB,GACnDO,IAAQ,IAAI,wBAAwBP,GAAS,2BAA2B;AAEtE,IAAAA,EAAA,UAAU,IAAI,8BAA8B,GACpD,WAAW,MAAMA,EAAQ,UAAU,OAAO,8BAA8B,GAAG,GAAG;AAE9E,QAAIQ,IAAM;AACV,eAAWC,KAAQF,GAAO;AACrB,UAAAE,EAAK,cAAc,sBAAsB;AAC5C;AAGG,MAAAA,aAAgB,gBAAaD,KAAOC,EAAK;AAAA,IAAA;AAG9C,QAAIH,aAAgB,aAAa;AAChC,YAAMI,IAAgBJ,EAAK;AAC3B,MAAIE,IAAME,IACTJ,EAAK,YAAYE,IAAME,IAEvBJ,EAAK,YAAY;AAAA,IAClB;AAAA,EACD;AAAA,EAGD,OAAO,oBAAoBD,GAA+B;AACrD,IAAA,KAAK,QAAQ,uBACX,KAAA,QAAQ,oBAAoBA,CAAK;AAAA,EACvC;AAAA,EAGD,OAAO,mBAAmBA,GAA+B;AACpD,IAAA,KAAK,QAAQ,sBACX,KAAA,QAAQ,mBAAmBA,CAAK;AAAA,EACtC;AAAA,EAGD,OAAO,4BAA4BM,GAAwB;AACtD,WAAA,KAAK,QAAQ,8BACT,KAAK,QAAQ,4BAA4BA,CAAC,IAG3C;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQR,OAAO,gBAAgBC,GAAYC,GAAyB;AAC3D,QAAI,OAAO,cAAc,IAAID,CAAE;AAC9B,YAAM,4CAA4CA;AAG5C,WAAA,cAAc,IAAIA,GAAIC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAM1C,OAAO,kBAAkBD,GAAkB;AACnC,WAAA,cAAc,OAAOA,CAAE;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,OAAO,iBAAiBE,GAAiBC,MAAuBC,GAAqD;AACpH,UAAMf,IAAK,IAAI,MAAMa,GAAS,CAAA,GAAI,GAAGE,CAAY;AAE9C,IAAAf,EAAA,QAAQ,WAAW,MAAMc,EAAM;AAMlC,aAASE,KAAQF,GAAO;AACjB,YAAAG,IAAW,aAAaD,EAAK,OAAO,CAAC,EAAE,gBAAgBA,EAAK,MAAM,CAAC;AAEzE,MAAAhB,EAAG,QAAQiB,CAAQ,IAAIH,EAAME,CAAI,GAE7BF,EAAM,SAAS,WAAWd,EAAG,wBAAwBc,EAAM;AAAA,IAAA;AAGzD,WAAAd;AAAA,EAAA;AAGT;"}