@topvisor/ui 1.0.30-0 → 1.0.30-1

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 (87) hide show
  1. package/.chunks/{core-DerSGhnf.es.js → core-L1cfoiCl.es.js} +4 -4
  2. package/.chunks/{core-DerSGhnf.es.js.map → core-L1cfoiCl.es.js.map} +1 -1
  3. package/.chunks/{core-tZjrVA9F.amd.js → core-iBztm1r-.amd.js} +2 -2
  4. package/.chunks/{core-tZjrVA9F.amd.js.map → core-iBztm1r-.amd.js.map} +1 -1
  5. package/.chunks/{datepicker-Xsb3xcX8.amd.js → datepicker-Cr-cdNls.amd.js} +2 -2
  6. package/.chunks/{datepicker-Xsb3xcX8.amd.js.map → datepicker-Cr-cdNls.amd.js.map} +1 -1
  7. package/.chunks/{datepicker-KbendK1M.es.js → datepicker-Dr_hF3hJ.es.js} +2 -2
  8. package/.chunks/{datepicker-KbendK1M.es.js.map → datepicker-Dr_hF3hJ.es.js.map} +1 -1
  9. package/.chunks/{dialog_selectorRegions-Chq0yqFg.amd.js → dialog_selectorRegions-CW4uQwh5.amd.js} +2 -2
  10. package/.chunks/{dialog_selectorRegions-Chq0yqFg.amd.js.map → dialog_selectorRegions-CW4uQwh5.amd.js.map} +1 -1
  11. package/.chunks/{dialog_selectorRegions-CQB8rW_o.es.js → dialog_selectorRegions-tz_E4JXX.es.js} +4 -4
  12. package/.chunks/{dialog_selectorRegions-CQB8rW_o.es.js.map → dialog_selectorRegions-tz_E4JXX.es.js.map} +1 -1
  13. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-BRv3Mpzj.es.js → dialogs.vue_vue_type_script_setup_true_lang-CJm53s-R.es.js} +2 -2
  14. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-BRv3Mpzj.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-CJm53s-R.es.js.map} +1 -1
  15. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DRXenVvu.amd.js → dialogs.vue_vue_type_script_setup_true_lang-mCCFbKT2.amd.js} +2 -2
  16. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DRXenVvu.amd.js.map → dialogs.vue_vue_type_script_setup_true_lang-mCCFbKT2.amd.js.map} +1 -1
  17. package/.chunks/{forms-BvGGRIzu.amd.js → forms-DzVLntpR.amd.js} +3 -3
  18. package/.chunks/{forms-BvGGRIzu.amd.js.map → forms-DzVLntpR.amd.js.map} +1 -1
  19. package/.chunks/{forms-DvSi_Mh8.es.js → forms-y5m2XRDE.es.js} +5 -5
  20. package/.chunks/{forms-DvSi_Mh8.es.js.map → forms-y5m2XRDE.es.js.map} +1 -1
  21. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-BsOU-bZ6.es.js → listItem.vue_vue_type_script_setup_true_lang-CTWHBqKC.es.js} +2 -2
  22. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-BsOU-bZ6.es.js.map → listItem.vue_vue_type_script_setup_true_lang-CTWHBqKC.es.js.map} +1 -1
  23. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-yo0gJ6X4.amd.js → listItem.vue_vue_type_script_setup_true_lang-l4J2ukxj.amd.js} +2 -2
  24. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-yo0gJ6X4.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-l4J2ukxj.amd.js.map} +1 -1
  25. package/.chunks/{menu.vue_vue_type_style_index_0_lang-LMqVTnj9.es.js → menu.vue_vue_type_style_index_0_lang-6rKuaIXo.es.js} +2 -2
  26. package/.chunks/{menu.vue_vue_type_style_index_0_lang-LMqVTnj9.es.js.map → menu.vue_vue_type_style_index_0_lang-6rKuaIXo.es.js.map} +1 -1
  27. package/.chunks/{menu.vue_vue_type_style_index_0_lang-DdTdt1qa.amd.js → menu.vue_vue_type_style_index_0_lang-y9G2xnCW.amd.js} +2 -2
  28. package/.chunks/{menu.vue_vue_type_style_index_0_lang-DdTdt1qa.amd.js.map → menu.vue_vue_type_style_index_0_lang-y9G2xnCW.amd.js.map} +1 -1
  29. package/.chunks/{notice-CB8iRenB.amd.js → notice-CY-T9oQb.amd.js} +2 -2
  30. package/.chunks/{notice-CB8iRenB.amd.js.map → notice-CY-T9oQb.amd.js.map} +1 -1
  31. package/.chunks/{notice-DNMb2ah9.es.js → notice-Dc-rliJw.es.js} +2 -2
  32. package/.chunks/{notice-DNMb2ah9.es.js.map → notice-Dc-rliJw.es.js.map} +1 -1
  33. package/.chunks/{page.vue_vue_type_script_setup_true_lang-CpTBLsTO.amd.js → page.vue_vue_type_script_setup_true_lang-5bg_D7ql.amd.js} +2 -2
  34. package/.chunks/{page.vue_vue_type_script_setup_true_lang-CpTBLsTO.amd.js.map → page.vue_vue_type_script_setup_true_lang-5bg_D7ql.amd.js.map} +1 -1
  35. package/.chunks/{page.vue_vue_type_script_setup_true_lang-syEbR-ts.es.js → page.vue_vue_type_script_setup_true_lang-CfZBDecm.es.js} +4 -4
  36. package/.chunks/{page.vue_vue_type_script_setup_true_lang-syEbR-ts.es.js.map → page.vue_vue_type_script_setup_true_lang-CfZBDecm.es.js.map} +1 -1
  37. package/.chunks/{popup-B8NUff7S.es.js → popup-B_HmF7JW.es.js} +84 -76
  38. package/.chunks/popup-B_HmF7JW.es.js.map +1 -0
  39. package/.chunks/popup-D-MRN1nb.amd.js +2 -0
  40. package/.chunks/popup-D-MRN1nb.amd.js.map +1 -0
  41. package/.chunks/{utils-hS40kghU.es.js → utils-BHAnz5od.es.js} +2 -2
  42. package/.chunks/{utils-hS40kghU.es.js.map → utils-BHAnz5od.es.js.map} +1 -1
  43. package/.chunks/{utils-B0ZFaEX-.amd.js → utils-CqxdOpd8.amd.js} +2 -2
  44. package/.chunks/{utils-B0ZFaEX-.amd.js.map → utils-CqxdOpd8.amd.js.map} +1 -1
  45. package/.chunks/{utils-CW_aQoj6.es.js → utils-DEuAebuf.es.js} +3 -3
  46. package/.chunks/{utils-CW_aQoj6.es.js.map → utils-DEuAebuf.es.js.map} +1 -1
  47. package/.chunks/{utils-Cx-PLrV1.amd.js → utils-DG5ghT_a.amd.js} +2 -2
  48. package/.chunks/{utils-Cx-PLrV1.amd.js.map → utils-DG5ghT_a.amd.js.map} +1 -1
  49. package/charts/charts.amd.js +1 -1
  50. package/charts/charts.js +1 -1
  51. package/components/popup/lib/popup.globalEvents.d.ts +6 -0
  52. package/core/app.amd.js +1 -1
  53. package/core/app.js +5 -5
  54. package/dialog/dialog.amd.js +1 -1
  55. package/dialog/dialog.js +2 -2
  56. package/forms/forms.amd.js +1 -1
  57. package/forms/forms.js +1 -1
  58. package/formsExt/formsExt.amd.js +1 -1
  59. package/formsExt/formsExt.js +2 -2
  60. package/layout/layout.amd.js +1 -1
  61. package/layout/layout.js +1 -1
  62. package/package.json +1 -1
  63. package/popup/popup.amd.js +1 -1
  64. package/popup/popup.js +2 -2
  65. package/popup/worker.amd.js +1 -1
  66. package/popup/worker.js +2 -2
  67. package/project/project.amd.js +1 -1
  68. package/project/project.js +5 -5
  69. package/tabsView/tabsView.amd.js +1 -1
  70. package/tabsView/tabsView.js +1 -1
  71. package/utils/clipboard.amd.js +1 -1
  72. package/utils/clipboard.js +1 -1
  73. package/utils/date.amd.js +1 -1
  74. package/utils/date.js +1 -1
  75. package/utils/device.amd.js +1 -1
  76. package/utils/device.js +1 -1
  77. package/utils/lodash.amd.js +1 -1
  78. package/utils/lodash.js +1 -1
  79. package/utils/price.amd.js +1 -1
  80. package/utils/price.js +1 -1
  81. package/utils/searchers.amd.js +1 -1
  82. package/utils/searchers.js +3 -3
  83. package/utils/string.amd.js +1 -1
  84. package/utils/string.js +1 -1
  85. package/.chunks/popup-B8NUff7S.es.js.map +0 -1
  86. package/.chunks/popup-TDcAXCva.amd.js +0 -2
  87. package/.chunks/popup-TDcAXCva.amd.js.map +0 -1
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-BvGGRIzu.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-TDcAXCva.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-DzVLntpR.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-D-MRN1nb.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"})});
2
2
  //# sourceMappingURL=worker.amd.js.map
package/popup/worker.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as Core } from "../.chunks/forms-DvSi_Mh8.es.js";
1
+ import { C as Core } from "../.chunks/forms-y5m2XRDE.es.js";
2
2
  import DOM from "../utils/dom.js";
3
3
  class Worker {
4
4
  /**
@@ -44,7 +44,7 @@ class Worker {
44
44
  */
45
45
  static async open(elOpener, options) {
46
46
  elOpener instanceof HTMLElement && (elOpener.dataset.topPopupOpened = "opened");
47
- const { TopLibPopup } = await import("../.chunks/popup-B8NUff7S.es.js");
47
+ const { TopLibPopup } = await import("../.chunks/popup-B_HmF7JW.es.js");
48
48
  if (Core.$) {
49
49
  const $elOpener = Core.$(elOpener);
50
50
  if ($elOpener.data("aftershow")) {
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-BvGGRIzu.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-yo0gJ6X4.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-DdTdt1qa.amd","../.chunks/utils-B0ZFaEX-.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],function(ne,T,e,x,E,oe,le,P,_,ae){"use strict";if(typeof e>"u")var e=window.Vue;const re={class:"top-selectorCompetitors"},ie={class:"top-ellipsis1"},de=e.defineComponent({__name:"selectorCompetitors",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const l=n,r=e.useModel(n,"modelValue"),t=e.computed(()=>{if(l.showSelectAllItem)return{icon:"",title:x.useI18n().Common.Select_all,value:"all",content:""}});return(d,o)=>(e.openBlock(),e.createElementBlock("div",re,[e.unref(x.Core).state.isMobile?(e.openBlock(),e.createBlock(E._sfc_main,{key:0},{opener:e.withCtx(()=>[e.createVNode(x._sfc_main,{class:"top-selectorCompetitors_opener",color:"theme",icon:"",icon2:""},{default:e.withCtx(()=>{var a;return[e.createTextVNode(e.toDisplayString((a=d.items.find(s=>{var v;return s.value===((v=r.value)==null?void 0:v[0])}))==null?void 0:a.content),1)]}),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.items,a=>{var s;return e.openBlock(),e.createBlock(E._sfc_main$1,{class:e.normalizeClass({"top-active":(s=r.value)==null?void 0:s.includes(a.value)}),"data-top-icon":a.icon,title:a.title,onClick:()=>r.value=[a.value]},{default:e.withCtx(()=>[e.createElementVNode("span",ie,e.toDisplayString(a.content),1)]),_:2},1032,["class","data-top-icon","title","onClick"])}),256))]),_:1})):(e.openBlock(),e.createBlock(oe._sfc_main,{key:1,modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=a=>r.value=a),items:d.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:t.value},null,8,["modelValue","items","selectAllItem"]))]))}}),w=-1,y=-2,L=-1,ue={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},J={key:y,name:"--",index:y},G={key:y,name:"--",regions:[J],regionByIndex:new Map([[y,J]])},A={key:y,name:"Autoselect",index:y},U={key:y,name:"Autoselect",regions:[A],regionByIndex:new Map([[y,A]])},Y={countryCode:"00",depth:1,device:0,key:L,index:L,lang:"ru",name:"Without region"},se=()=>(A.name=x.useI18n().Common.Autoselect,A),ce=()=>(se(),U.name=x.useI18n().Common.Autoselect,console.log(U),U),ge=()=>(Y.name=x.useI18n().Keywords.Without_region,Y),z=(n=!1,l=!1,r=[])=>{let t;return n?t=me(r):t=W(r),l&&t.set(y,ce()),t.size||t.set(y,G),t},W=(n,l=!0,r=[],t=!1)=>{const d=new Map;return n.forEach(o=>{if(!o.enabled||t&&typeof o.key=="number"&&o.key>1)return;const a={...o};a.regionByIndex=new Map,o.regions&&o.regions.forEach(s=>{if(l&&!s.enabled)return;const v={...s};a.regionByIndex.set(v.index,v)}),!a.regionByIndex.size&&r.length,(!o.regions||a.regionByIndex.size||r.length)&&typeof a.key=="number"&&d.set(a.key,a)}),r.forEach(o=>{if(d.has(o))return;const a={key:o,name:ue[o],regions:[],regionByIndex:new Map};d.set(a.key,a)}),d},me=n=>{const l=W(n,!1,[0,1],!0);if(l.has(2)){const r=l.get(2);r&&(r.regionByIndex=new Map)}return l.forEach(r=>{if(!r.regionByIndex)return;const t={...ge()};r.regionByIndex.set(t.index,t)}),l},H=(n,l,r=[])=>{const t=z(n,!1,r);let d;return t.forEach(o=>{if(!(l.searcher_key!==void 0&&l.searcher_key!=o.key)&&o.regions&&(o.regions.forEach(a=>{if(!d&&!(l.key!==void 0&&l.key!=a.key)&&!(l.index!==void 0&&l.index!=a.index)&&!(!n&&(l.lang!==void 0&&l.lang!=a.lang||l.device!==void 0&&l.device!=a.device)))return a.searcher_key=o.key,d=a,!1}),d))return!1}),d},Q=le.useAsyncTopDialog(()=>new Promise((n,l)=>ne(["../.chunks/dialog_selectorRegions-Chq0yqFg.amd"],n,l))),fe=(n,l)=>{const r=x.useI18n(),t=e.ref(l.value.keys().next().value??y),d=e.computed(()=>{const o=new Map;if(l.value.forEach(a=>{let s={value:a.key,title:a.name};n.addSearcherIcon&&(s.icon=P.getSearcherGIcon(a.key)),o.set(a.key,s)}),n.addCompare&&!o.has(y)){const a={value:"",title:"--------------------",disabled:!0};o.set(a.value,a);const s={value:w,title:r.Common.Compare};o.set(s.value,s)}return o});return{searcherKey:t,optionBySearcherKey:d}},ve=(n,l)=>{var o,a,s;const r=x.useI18n(),t=e.ref(y);n.modelValue.length===1&&(t.value=n.modelValue[0]),t.value===y&&(n.forFrequency?t.value=((a=(o=l.value)==null?void 0:o.regionByIndex.values().next().value)==null?void 0:a.key)??y:t.value=((s=l.value)==null?void 0:s.regionByIndex.keys().next().value)??y);const d=e.computed(()=>{var h;const v=new Map;return(h=l.value.regionByIndex)==null||h.forEach(S=>{let i=S.name;if(n.forFrequency){const I={value:S.key,title:i};v.has(S.key)||v.set(S.key,I);return}S.device&&(i+=" ("+r.Common["Device_"+S.device]+")");const m=P.getLangLabel(l.value.key||0,S.lang??"");m&&(i+=" / "+m);const c={value:S.index,title:i,icon:S.device?P.getDeviceGIcon(S.device):void 0};v.set(S.index,c)}),v});return e.watch(d,(v,h)=>{var c;if(n.onlySearcher||t.value!==void 0&&v.get(t.value))return;let S=v.keys().next().value;if(t.value===y||S===y){t.value=S;return}let i=((c=h==null?void 0:h.get(t.value))==null?void 0:c.title)||"",m=-1;for(const[I,B]of v.entries()){const C=B.title;if(typeof C!="string"||typeof I=="string")break;if(C===i){S=I;break}const V=new RegExp(` \\((${r.Common.Device_1}|${r.Common.Device_2})\\)`);let f=i,u=3;C.indexOf(f)===-1&&(f=i.replace(/^[^a-zа-я]/i,"").replace(V,""),u--),C.indexOf(f)===-1&&(f=i.replace(/ \/.*/,""),u--),C.indexOf(f)===-1&&(f=i.replace(/ \/.*/,""),f=f.replace(/^[^a-zа-я]/i,"").replace(V,""),u--),C.indexOf(f)!==-1&&(u<=m||(m=u,S=I))}t.value=S}),{regionIndex:t,optionByRegionIndex:d}},pe=(n,l,r)=>{const t=e.ref([]),d=()=>{if(n.onlySearcher&&l.value){t.value=Array.from(l.value.keys());return}let a=[];if(n.modelValue.length>1)a=[...n.modelValue];else try{a=JSON.parse(localStorage.getItem("ui:project:regionSelector"+n.projectId+":regionsIndexes"))??[]}catch{}a.length&&(a=a.filter(s=>r.value.has(s))),a.length||(a=Array.from(r.value)),t.value=[...a]},o=()=>{t.value.length?localStorage.setItem("ui:project:regionSelector:"+n.projectId+":regionsIndexes",JSON.stringify(t.value)):localStorage.removeItem("ui:project:regionSelector:"+n.projectId+":regionsIndexes")};return e.watch(t,()=>{o()}),n.addCompare&&d(),{regionsIndexes:t}},ye=n=>{const l=e.computed(()=>z(n.forFrequency,n.autoRegion,n.searchers)),r=e.computed(()=>l.value.get(d.searcherKey.value)||G),t=e.computed(()=>{const i=new Set;return l.value.forEach(m=>{m.regionByIndex.forEach(c=>{c.index!==L&&c.index!==y&&i.add(c.index)})}),i}),d=fe(n,l),o=ve(n,r),a=pe(n,l,t);e.watch(l,()=>{var m,c,I,B;if(n.onlySearcher?a.regionsIndexes.value=Array.from(l.value.keys()):a.regionsIndexes.value=a.regionsIndexes.value.filter(C=>t.value.has(C)),d.searcherKey.value===w)return;let i=l.value.keys().next().value;l.value.forEach(C=>{var V,f,u;if(n.onlySearcher&&C.key===d.searcherKey.value){i=d.searcherKey.value;return}if(o.regionIndex.value&&((V=C.regionByIndex)!=null&&V.has(o.regionIndex.value))&&(i=C.key),!n.onlySearcher){let g;i!==void 0&&(g=(f=l.value.get(i))==null?void 0:f.regionByIndex);const p=(u=l.value.get(C.key))==null?void 0:u.regionByIndex;g!=null&&g.has(y)&&!(p!=null&&p.has(y))&&(i=C.key)}}),i!==void 0&&(d.searcherKey.value=i),o.regionIndex.value!==void 0&&!((c=(m=r.value)==null?void 0:m.regionByIndex)!=null&&c.has(o.regionIndex.value))&&(o.regionIndex.value=(B=(I=r.value)==null?void 0:I.regions)==null?void 0:B.keys().next().value)},{immediate:!0});const s=()=>{if(!(d.searcherKey.value===w||d.searcherKey.value===y))return d.searcherKey.value},v=()=>{if(n.onlySearcher||o.regionIndex.value===y)return;let i=o.regionIndex.value;if(n.forFrequency){const m=o.regionIndex.value,c=H(n.forFrequency,{searcher_key:s(),key:m},n.searchers);i=c==null?void 0:c.index}return i},h=()=>{const i=s();if(i!==void 0)return l.value.get(i)};return{selectSearcher:d,selectRegion:o,compare:a,searcherByKey:l,allRegionsIndexes:t,getSearcher:h,getRegion:()=>{var m,c;const i=v();if(i!==void 0)return(c=(m=h())==null?void 0:m.regionByIndex)==null?void 0:c.get(i)}}},he=e.defineComponent({__name:"selectorRegion",props:e.mergeModels({projectId:{},searchers:{default:()=>[]},modelValue:{},modelValueSingle:{},addCompare:{type:Boolean},forFrequency:{type:Boolean},autoRegion:{type:Boolean},onlySearcher:{type:Boolean},addChanger:{type:Boolean,default:!0},addSearcherIcon:{type:Boolean,default:!0},addRegionIcon:{type:Boolean,default:!0}},{modelValue:{required:!0},modelModifiers:{},modelValueSingle:{},modelValueSingleModifiers:{}}),emits:["update:modelValue","update:modelValueSingle"],setup(n,{expose:l}){const r=n,t=e.useModel(n,"modelValue"),d=e.useModel(n,"modelValueSingle"),{selectSearcher:o,selectRegion:a,compare:s,searcherByKey:v,allRegionsIndexes:h,getSearcher:S,getRegion:i}=ye(r),m=()=>{const c=[];v.value.forEach(I=>{I.enabled&&I.regions.forEach(B=>{B.enabled&&c.push(B)})}),Q.open("selectorRegions",{regions:c,regionsIndexes:s.regionsIndexes.value,"@update:regionsIndexes":I=>s.regionsIndexes.value=I})};return e.watch([a.regionIndex,o.searcherKey,s.regionsIndexes],()=>{if(o.searcherKey.value===w&&s.regionsIndexes.value.length){if(JSON.stringify(t.value)===JSON.stringify(s.regionsIndexes.value))return;t.value=[...s.regionsIndexes.value]}else r.onlySearcher?(t.value=[o.searcherKey.value],o.searcherKey.value===y&&!r.autoRegion&&(t.value.length=0)):(t.value=[a.regionIndex.value],a.regionIndex.value===y&&!r.autoRegion&&(t.value.length=0));!r.onlySearcher&&!h.value.size&&(o.searcherKey.value=y)}),d.value&&e.watch(d,()=>{d.value&&(t.value=[d.value])},{immediate:!0}),e.watch(t,()=>{var c,I,B,C,V;if(t.value[0]&&(d.value=t.value[0]),r.onlySearcher){if(!t.value.length||t.value.length===1&&!v.value.has(t.value[0])||t.value.length===1&&t.value[0]===y&&!r.autoRegion){let f=v.value.keys().next().value;f===y&&!r.autoRegion&&(f=void 0,d.value=y),f!==void 0?t.value=[f]:t.value.length=0;return}if(t.value.length>1&&JSON.stringify(t.value)!==JSON.stringify(s.regionsIndexes.value)){t.value=[...s.regionsIndexes.value];return}}else{let f=[...new Set(t.value)],u=(I=(c=v.value.values().next().value)==null?void 0:c.regionByIndex)==null?void 0:I.keys().next().value;if(r.forFrequency&&(u=(V=(C=(B=v.value.values().next().value)==null?void 0:B.regionByIndex)==null?void 0:C.values().next().value)==null?void 0:V.key),u===y&&!r.autoRegion&&(u=void 0,d.value=y),!f.length)u!==void 0&&f.push(u);else if(f.length===1){let g=h.value;r.forFrequency&&(g=new Set,v.value.forEach(p=>{p.regionByIndex.forEach(k=>{k.index!==L&&k.index!==y&&g.add(k.key)})})),g.has(f[0])||(f=[],u!==void 0&&f.push(u))}else f=f.filter(g=>h.value.has(g)),!f.length&&u!==void 0&&f.push(u);if(JSON.stringify(t.value)!==JSON.stringify(f)){t.value=f;return}}if(!(t.value.length===1&&t.value[0]===(r.onlySearcher?o.searcherKey.value:a.regionIndex.value)))if(r.onlySearcher){if(t.value.length===1){o.searcherKey.value=t.value[0];return}o.searcherKey.value=w;return}else{if(!t.value.length)return;if(t.value.length===1&&o.searcherKey.value!==w){a.regionIndex.value=t.value[0];let f;for(const u of v.value.values()){for(const g of u.regionByIndex.values())if((r.forFrequency?g.key:g.index)===a.regionIndex.value){f=u.key;break}if(f!==void 0)break}f!==void 0&&(o.searcherKey.value=f)}else o.searcherKey.value=w,s.regionsIndexes.value=[...t.value]}},{immediate:!0}),l({getSearcher:S,getRegion:i}),(c,I)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-selectorRegion":!0,"top-selectorRegion-onlySearcher":c.onlySearcher})},[e.createVNode(x._sfc_main$4,{options:e.unref(o).optionBySearcherKey.value,modelValue:e.unref(o).searcherKey.value,"onUpdate:modelValue":I[0]||(I[0]=B=>e.unref(o).searcherKey.value=B),name:"searcher_key",addChanger:c.addChanger},null,8,["options","modelValue","addChanger"]),!c.onlySearcher&&e.unref(o).searcherKey.value!==e.unref(w)?(e.openBlock(),e.createBlock(x._sfc_main$4,{key:0,class:"top-select-region",options:e.unref(a).optionByRegionIndex.value,modelValue:e.unref(a).regionIndex.value,"onUpdate:modelValue":I[1]||(I[1]=B=>e.unref(a).regionIndex.value=B),name:c.forFrequency?"region_key":"region_index",addChanger:c.addChanger,"data-top-icon":c.addRegionIcon?"":void 0},null,8,["options","modelValue","name","addChanger","data-top-icon"])):e.createCommentVNode("",!0),c.addCompare&&!c.onlySearcher&&e.unref(o).searcherKey.value===e.unref(w)?(e.openBlock(),e.createBlock(x._sfc_main,{key:1,name:"compare",onClick:m,"data-count-compare-regions-indexes":e.unref(s).regionsIndexes.value.length},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$i18n.Common.Selected_regions),1)]),_:1},8,["data-count-compare-regions-indexes"])):e.createCommentVNode("",!0)],2))}}),Se=[{id:"1",name:"Without Tag",color_id:"1"},{id:"2",name:"Red",color_id:"2"},{id:"3",name:"Orange",color_id:"3"},{id:"4",name:"Yellow",color_id:"4"},{id:"5",name:"Blue",color_id:"5"},{id:"6",name:"Purple",color_id:"6"},{id:"7",name:"Green",color_id:"7"},{id:"8",name:"Magenta",color_id:"8"},{id:"9",name:"Dark blue",color_id:"9"},{id:"10",name:"Turquoise",color_id:"10"}],X=n=>"-"+n,K=n=>n[0]==="-"?n.substring(1):n,O=(n,l)=>{n=K(n);const r=l.find(t=>t.id===n);if(r)return r},ke=["data-tag_id","data-tag_color_id","title"],D=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(n){return(l,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!l.state,"top-tagSelector-excluded":l.state==="excluded"}),"data-tag_id":l.id,"data-tag_color_id":l.colorId,title:l.name},null,10,ke))}}),Ie=["contenteditable","onKeydown"],Z=e.defineComponent({__name:"tagPopupListItem",props:e.mergeModels({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:e.mergeModels(["update:name","unselect","exclude","select"],["update:name"]),setup(n,{emit:l}){const r=n,t=l,d=e.useModel(n,"name"),o=e.ref(null),a=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:s.value,onpaste:m=>m.preventDefault()}:{}),s=e.ref(!1),v=async()=>{var m;s.value=!0,await e.nextTick(),(m=o.value)==null||m.focus()},h=()=>{var c;const m=(c=o.value)==null?void 0:c.innerText;if(!m)return S();o.value&&(o.value.innerText=m),s.value=!1,t("update:name",m)},S=async()=>{o.value&&(o.value.innerText=r.name),s.value=!1},i=m=>{if(s.value||r.disabled)return;let c="selected";r.canExclude&&(m.ctrlKey||m.metaKey)&&(c="excluded"),r.state==c&&(c=""),c===""&&t("unselect"),c==="selected"&&t("select"),c==="excluded"&&t("exclude")};return(m,c)=>(e.openBlock(),e.createBlock(E._sfc_main$1,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":m.disabled,"top-tagSelector_tagListItem-canExclude":m.canExclude,"top-tagSelector-active":!!m.state,"top-tagSelector-excluded":m.state==="excluded"}),onClick:e.withModifiers(i,["stop"])},{default:e.withCtx(()=>[e.createVNode(D,{id:m.id,name:d.value,colorId:m.colorId,state:m.state},null,8,["id","name","colorId","state"]),e.createElementVNode("span",e.mergeProps({ref_key:"elName",ref:o,class:"top-tagSelector_tagListItemName",contenteditable:s.value?"plaintext-only":!1},a.value,{onKeydown:[e.withKeys(e.withModifiers(h,["stop"]),["enter"]),e.withKeys(e.withModifiers(S,["stop"]),["esc"])]}),e.toDisplayString(d.value),17,Ie),m.editable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[s.value?(e.openBlock(),e.createElementBlock("span",{key:1,"data-top-icon":"",class:"top-tagSelector_edit",onClick:e.withModifiers(h,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:v}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),xe={key:1},ee=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const l=n,r=e.useModel(n,"modelValue"),t=l.useTopButton?x._sfc_main:"div",d=l.useTopButton?"html":"default",o={model:r,mode:l.mode,targetId:l.targetId,filters:l.filters,payload:l.payload};return(a,s)=>{const v=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(E._sfc_main$2,{id:a.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(t)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-filter":l.mode==="filter","top-tagSelector-setter_single":l.mode==="setter"&&!a.filters,"top-tagSelector-setter_several":l.mode==="setter"&&a.filters,"top-tagSelector-selectedOne":!r.value.length||r.value.length===1,"top-tagSelector-toTwoLine":r.value.length>5},color:"theme",styling:""},a.$attrs),{[e.unref(d)]:e.withCtx(()=>[!r.value.length&&a.mode==="filter"?(e.openBlock(),e.createBlock(D,{key:0,id:"all",colorId:"",name:a.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),a.mode==="setter"&&a.filters?(e.openBlock(),e.createElementBlock("div",xe,[e.renderSlot(a.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(r.value,h=>{var S,i;return e.openBlock(),e.createBlock(D,{id:e.unref(K)(h),colorId:((S=e.unref(O)(h,a.tags))==null?void 0:S.color_id)??"",name:((i=e.unref(O)(h,a.tags))==null?void 0:i.name)??"",state:e.unref(K)(h)===h?"selected":"excluded"},null,8,["id","colorId","name","state"])}),256))]),_:2},1040,["class"])),[[v,o,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),Ce=e.defineComponent({__name:"tagSelector",props:e.mergeModels({modelValue:{},tags:{},tagsEditable:{type:Boolean},tagsMax:{default:10},id:{},singleMode:{type:Boolean},requiredForSetter:{type:Boolean,default:!0},maxTagsForSetter:{},emitDelay:{default:500}},{modelValue:{required:!0},modelModifiers:{},tags:{default:e.reactive(Se)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(n,{emit:l}){const r=x.useI18n(),t=n,d=e.useModel(n,"modelValue"),o=e.useModel(n,"tags"),a=l,s=x.debounce((u,g)=>{a(u,g)},t.emitDelay);t.singleMode&&!d.value.length&&(d.value=[o.value[0].id]);const v=t.id??"top-popup-id-"+Math.random(),h=e.ref("add"),S=()=>{var p;const u=" "+((p=r.Common.Tags)==null?void 0:p.toLowerCase()),g=new Map;return g.set("add",{value:"add",title:r.Common.Add+u}),g.set("replace",{value:"replace",title:r.Common.Replace+u}),g.set("delete",{value:"delete",title:r.Common.Delete+u}),g};let i=e.shallowRef({model:d,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(d,()=>{s("selector",d.value)});const m=e.computed(()=>{if(i.value.mode==="setter"&&t.maxTagsForSetter&&!i.value.filters)return i.value.model.value.length>=t.maxTagsForSetter}),c=u=>{if(u!=="all"){if(i.value.model.value.includes(u))return"selected";if(i.value.model.value.includes(X(u)))return"excluded"}return u==="all"&&!i.value.model.value.length?"selected":""},I=(u,g)=>{const p=X(u);let k=i.value.model.value.filter(M=>M!==u&&M!==p);g==="select"&&k.push(u),g==="exclude"&&k.push(p),i.value.mode==="setter"&&i.value.targetId!==void 0&&t.requiredForSetter&&(k.length||k.push("1"),k.length===2&&i.value.model.value.length===1&&i.value.model.value[0]==="1"&&(k=k.filter(M=>M!=="1"))),t.singleMode&&!i.value.filters&&(k.length||(k=i.value.model.value),k.length>1&&(k=[k[k.length-1]])),k.sort((M,N)=>{if(!t.tags)return 0;const q=t.tags.findIndex(b=>b.id===M),R=t.tags.findIndex(b=>b.id===N);return q-R}),i.value.model.value=k,i.value.mode==="setter"&&i.value.targetId!==void 0&&s("setter",{tagsIds:k,targetId:i.value.targetId,payload:i.value.payload})},B=e.computed(()=>{let u="top-tagSelector_popup";return i.value.mode==="filter"&&(u+=" top-tagSelector_popup-filter"),i.value.mode==="setter"&&(u+=" top-tagSelector_popup-setter"),u}),C=()=>{const u=prompt("","New tag");if(!u||u==="New tag")return;const g=o.value.length+1;o.value.push({id:String(g),name:u,color_id:String((g-1)%10+1)}),a("tagsChanged",o.value)},V=u=>{var g;if(i.value=_.storage(u.elPopupOpener,"topTagSelectorTarget"),!i.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(i.value.filters&&(h.value="add",i.value.model.value=[]),!((g=x.Core.$)!=null&&g.ui.sortable)){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}!x.Core.state.isMobile&&!x.Core.state.isMobileUA&&o.value&&$(u.elPopup).sortable({items:'li:has([data-tag_id]:not([data-tag_id="all"]))',cancel:'[contenteditable="plaintext-only"], [contenteditable="true"]',distance:10,stop:function(p,k){if(!o.value)return;const M=$(k.item).parent().find("[data-tag_id]"),N=[];M.each((q,R)=>{if(!o.value)return;const b=$(R).attr("data-tag_id");N.push(b)}),o.value.sort((q,R)=>{const b=N.findIndex(j=>j===q.id),Ke=N.findIndex(j=>j===R.id);return b-Ke}),s("tagsChanged",o.value)}})},f=u=>{var g;(g=x.Core.$)!=null&&g.ui.sortable&&$(u.elPopup).data("ui-sortable")&&$(u.elPopup).sortable("destroy")};return(u,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(ee,{class:"top-select_arrow",modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=p=>d.value=p),id:e.unref(v),tags:o.value,mode:"filter",useTopButton:""},null,8,["modelValue","id","tags"]),e.createVNode(E._sfc_main,{id:e.unref(v),class:e.normalizeClass(B.value),onOpen:g[4]||(g[4]=p=>V(p)),onClose:g[5]||(g[5]=p=>f(p)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!u.singleMode?(e.openBlock(),e.createBlock(Z,{key:0,id:"all",colorId:"",name:u.$i18n.Common.All_tags??"",state:e.unref(i).model.value.length?"":"selected",onSelect:g[3]||(g[3]=p=>e.unref(i).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,p=>(e.openBlock(),e.createBlock(Z,{key:p.id,id:p.id,colorId:p.color_id,name:p.name,state:c(p.id),canExclude:e.unref(i).mode==="filter"&&!u.singleMode,editable:u.tagsEditable,disabled:m.value&&c(p.id)==="",onUnselect:k=>I(p.id,"unselect"),onSelect:k=>I(p.id,"select"),onExclude:k=>I(p.id,"exclude"),"onUpdate:name":k=>{p.name=k,e.unref(s)("tagsChanged",o.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),u.tagsEditable&&o.value.length<u.tagsMax&&o.value.length<20?(e.openBlock(),e.createBlock(E._sfc_main$1,{key:1,"data-top-icon":"",onClick:e.withModifiers(C,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.$i18n.Common.Add),1)]),_:1})):e.createCommentVNode("",!0)]),_:2},[e.unref(i).mode==="setter"&&e.unref(i).filters?{name:"header",fn:e.withCtx(()=>[e.createVNode(x._sfc_main$4,{modelValue:h.value,"onUpdate:modelValue":g[1]||(g[1]=p=>h.value=p),options:S()},null,8,["modelValue","options"])]),key:"0"}:void 0,e.unref(i).mode==="setter"&&e.unref(i).filters?{name:"footer",fn:e.withCtx(()=>[e.createVNode(x._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(x._sfc_main,{onClick:g[2]||(g[2]=p=>e.unref(s)("setter",{tagsIds:e.unref(i).model.value,filters:e.unref(i).filters,filtersAction:h.value,payload:e.unref(i).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.value==="add"?u.$i18n.Common.Add:"")+" "+e.toDisplayString(h.value==="replace"?u.$i18n.Common.Replace:"")+" "+e.toDisplayString(h.value==="delete"?u.$i18n.Common.Remove:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}}),Be=(n,l)=>e.computed(()=>e.toValue(n).filter(d=>d.on>=0||d.id===l).map(d=>({value:d.id,title:d.url+` [${d.id}]`,icon:d.id===e.toValue(l)?"":"",content:d.name}))),Te=(n,l,r)=>{l||(l={id:n.id}),l.id=n.id;const t=ae.TopPopupWorker.genElPopupOpener("div",l);return t.classList.add("top-tagSelector"),n.useTopButton&&t.classList.add("top-button","top-color_theme"),n.mode==="filter"&&t.classList.add("top-tagSelector-filter"),n.mode==="setter"&&!n.filters&&t.classList.add("top-tagSelector-setter_single"),n.mode==="setter"&&n.filters&&t.classList.add("top-tagSelector-setter_several"),t.onclick=d=>{d.preventDefault(),d.stopPropagation(),t.onclick=null;const o=e.ref(n.modelValue),a={model:o,mode:n.mode,targetId:n.targetId,filters:n.filters,payload:n.payload};_.storage(t,"topTagSelectorTarget",a),delete t.dataset.topPopupDisabled,e.isRef(n.modelValue)||e.watch(o,()=>{n.modelValue=o.value,F(t,n,r)}),t.click()},e.isRef(n.modelValue)?e.watch(n.modelValue,()=>F(t,n,r)):_.storage(t,"topTagSelectorRender",d=>{n.modelValue=d;const o=_.storage(t,"topTagSelectorTarget");o&&(o.model.value=d),F(t,n,r)}),F(t,n,r),t},Ve=(n,l)=>{var r;(r=_.storage(n,"topTagSelectorRender"))==null||r(l)},F=(n,l,r)=>{var d;const t=e.unref(l.modelValue);if(n.classList.toggle("top-tagSelector-selectedOne",!t.length||t.length===1),n.classList.toggle("top-tagSelector-toTwoLine",t.length>5),l.mode==="setter"&&l.filters){n.innerHTML=`<div>${r}</div>`;return}if(n.innerHTML="",!t.length&&l.mode==="filter"){const o=te({id:"all",colorId:"",name:((d=x.useI18n().Common)==null?void 0:d.All_tags)??"",state:""});n.append(o)}t.forEach(o=>{var s,v;const a=te({id:K(o),colorId:((s=O(o,l.tags))==null?void 0:s.color_id)??"",name:((v=O(o,l.tags))==null?void 0:v.name)??"",state:K(o)===o?"selected":"excluded"});n.append(a)})},te=n=>{const l=document.createElement("div");return l.classList.add("top-tagSelector_tagIcon"),l.classList.toggle("top-tagSelector-active",!!n.state),l.classList.toggle("top-tagSelector-excluded",n.state==="excluded"),l.dataset.tag_id=n.id,l.dataset.tag_color_id=n.colorId,l.title=n.name,l},we=de,Me=he,be=Ce,Ee=ee,_e=D;T.TopSelectorCompetitors=we,T.TopSelectorRegion=Me,T.TopTagSelector=be,T.TopTagSelectorPopupOpener=Ee,T.TopTagSelectorTagIcon=_e,T.dialogSelectorRegions=Q,T.findRegion=H,T.genElTopTagSelectorPopupOpener=Te,T.genSearcherByKey=z,T.renderElTopTagSelectorPopupOpener=Ve,T.useItemsFromCompetitors=Be,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-DzVLntpR.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-l4J2ukxj.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-y9G2xnCW.amd","../.chunks/utils-CqxdOpd8.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],function(ne,T,e,x,E,oe,le,P,_,ae){"use strict";if(typeof e>"u")var e=window.Vue;const re={class:"top-selectorCompetitors"},ie={class:"top-ellipsis1"},de=e.defineComponent({__name:"selectorCompetitors",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const l=n,r=e.useModel(n,"modelValue"),t=e.computed(()=>{if(l.showSelectAllItem)return{icon:"",title:x.useI18n().Common.Select_all,value:"all",content:""}});return(d,o)=>(e.openBlock(),e.createElementBlock("div",re,[e.unref(x.Core).state.isMobile?(e.openBlock(),e.createBlock(E._sfc_main,{key:0},{opener:e.withCtx(()=>[e.createVNode(x._sfc_main,{class:"top-selectorCompetitors_opener",color:"theme",icon:"",icon2:""},{default:e.withCtx(()=>{var a;return[e.createTextVNode(e.toDisplayString((a=d.items.find(s=>{var v;return s.value===((v=r.value)==null?void 0:v[0])}))==null?void 0:a.content),1)]}),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.items,a=>{var s;return e.openBlock(),e.createBlock(E._sfc_main$1,{class:e.normalizeClass({"top-active":(s=r.value)==null?void 0:s.includes(a.value)}),"data-top-icon":a.icon,title:a.title,onClick:()=>r.value=[a.value]},{default:e.withCtx(()=>[e.createElementVNode("span",ie,e.toDisplayString(a.content),1)]),_:2},1032,["class","data-top-icon","title","onClick"])}),256))]),_:1})):(e.openBlock(),e.createBlock(oe._sfc_main,{key:1,modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=a=>r.value=a),items:d.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:t.value},null,8,["modelValue","items","selectAllItem"]))]))}}),w=-1,y=-2,L=-1,ue={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},J={key:y,name:"--",index:y},G={key:y,name:"--",regions:[J],regionByIndex:new Map([[y,J]])},A={key:y,name:"Autoselect",index:y},U={key:y,name:"Autoselect",regions:[A],regionByIndex:new Map([[y,A]])},Y={countryCode:"00",depth:1,device:0,key:L,index:L,lang:"ru",name:"Without region"},se=()=>(A.name=x.useI18n().Common.Autoselect,A),ce=()=>(se(),U.name=x.useI18n().Common.Autoselect,console.log(U),U),ge=()=>(Y.name=x.useI18n().Keywords.Without_region,Y),z=(n=!1,l=!1,r=[])=>{let t;return n?t=me(r):t=W(r),l&&t.set(y,ce()),t.size||t.set(y,G),t},W=(n,l=!0,r=[],t=!1)=>{const d=new Map;return n.forEach(o=>{if(!o.enabled||t&&typeof o.key=="number"&&o.key>1)return;const a={...o};a.regionByIndex=new Map,o.regions&&o.regions.forEach(s=>{if(l&&!s.enabled)return;const v={...s};a.regionByIndex.set(v.index,v)}),!a.regionByIndex.size&&r.length,(!o.regions||a.regionByIndex.size||r.length)&&typeof a.key=="number"&&d.set(a.key,a)}),r.forEach(o=>{if(d.has(o))return;const a={key:o,name:ue[o],regions:[],regionByIndex:new Map};d.set(a.key,a)}),d},me=n=>{const l=W(n,!1,[0,1],!0);if(l.has(2)){const r=l.get(2);r&&(r.regionByIndex=new Map)}return l.forEach(r=>{if(!r.regionByIndex)return;const t={...ge()};r.regionByIndex.set(t.index,t)}),l},H=(n,l,r=[])=>{const t=z(n,!1,r);let d;return t.forEach(o=>{if(!(l.searcher_key!==void 0&&l.searcher_key!=o.key)&&o.regions&&(o.regions.forEach(a=>{if(!d&&!(l.key!==void 0&&l.key!=a.key)&&!(l.index!==void 0&&l.index!=a.index)&&!(!n&&(l.lang!==void 0&&l.lang!=a.lang||l.device!==void 0&&l.device!=a.device)))return a.searcher_key=o.key,d=a,!1}),d))return!1}),d},Q=le.useAsyncTopDialog(()=>new Promise((n,l)=>ne(["../.chunks/dialog_selectorRegions-CW4uQwh5.amd"],n,l))),fe=(n,l)=>{const r=x.useI18n(),t=e.ref(l.value.keys().next().value??y),d=e.computed(()=>{const o=new Map;if(l.value.forEach(a=>{let s={value:a.key,title:a.name};n.addSearcherIcon&&(s.icon=P.getSearcherGIcon(a.key)),o.set(a.key,s)}),n.addCompare&&!o.has(y)){const a={value:"",title:"--------------------",disabled:!0};o.set(a.value,a);const s={value:w,title:r.Common.Compare};o.set(s.value,s)}return o});return{searcherKey:t,optionBySearcherKey:d}},ve=(n,l)=>{var o,a,s;const r=x.useI18n(),t=e.ref(y);n.modelValue.length===1&&(t.value=n.modelValue[0]),t.value===y&&(n.forFrequency?t.value=((a=(o=l.value)==null?void 0:o.regionByIndex.values().next().value)==null?void 0:a.key)??y:t.value=((s=l.value)==null?void 0:s.regionByIndex.keys().next().value)??y);const d=e.computed(()=>{var h;const v=new Map;return(h=l.value.regionByIndex)==null||h.forEach(S=>{let i=S.name;if(n.forFrequency){const I={value:S.key,title:i};v.has(S.key)||v.set(S.key,I);return}S.device&&(i+=" ("+r.Common["Device_"+S.device]+")");const m=P.getLangLabel(l.value.key||0,S.lang??"");m&&(i+=" / "+m);const c={value:S.index,title:i,icon:S.device?P.getDeviceGIcon(S.device):void 0};v.set(S.index,c)}),v});return e.watch(d,(v,h)=>{var c;if(n.onlySearcher||t.value!==void 0&&v.get(t.value))return;let S=v.keys().next().value;if(t.value===y||S===y){t.value=S;return}let i=((c=h==null?void 0:h.get(t.value))==null?void 0:c.title)||"",m=-1;for(const[I,B]of v.entries()){const C=B.title;if(typeof C!="string"||typeof I=="string")break;if(C===i){S=I;break}const V=new RegExp(` \\((${r.Common.Device_1}|${r.Common.Device_2})\\)`);let f=i,u=3;C.indexOf(f)===-1&&(f=i.replace(/^[^a-zа-я]/i,"").replace(V,""),u--),C.indexOf(f)===-1&&(f=i.replace(/ \/.*/,""),u--),C.indexOf(f)===-1&&(f=i.replace(/ \/.*/,""),f=f.replace(/^[^a-zа-я]/i,"").replace(V,""),u--),C.indexOf(f)!==-1&&(u<=m||(m=u,S=I))}t.value=S}),{regionIndex:t,optionByRegionIndex:d}},pe=(n,l,r)=>{const t=e.ref([]),d=()=>{if(n.onlySearcher&&l.value){t.value=Array.from(l.value.keys());return}let a=[];if(n.modelValue.length>1)a=[...n.modelValue];else try{a=JSON.parse(localStorage.getItem("ui:project:regionSelector"+n.projectId+":regionsIndexes"))??[]}catch{}a.length&&(a=a.filter(s=>r.value.has(s))),a.length||(a=Array.from(r.value)),t.value=[...a]},o=()=>{t.value.length?localStorage.setItem("ui:project:regionSelector:"+n.projectId+":regionsIndexes",JSON.stringify(t.value)):localStorage.removeItem("ui:project:regionSelector:"+n.projectId+":regionsIndexes")};return e.watch(t,()=>{o()}),n.addCompare&&d(),{regionsIndexes:t}},ye=n=>{const l=e.computed(()=>z(n.forFrequency,n.autoRegion,n.searchers)),r=e.computed(()=>l.value.get(d.searcherKey.value)||G),t=e.computed(()=>{const i=new Set;return l.value.forEach(m=>{m.regionByIndex.forEach(c=>{c.index!==L&&c.index!==y&&i.add(c.index)})}),i}),d=fe(n,l),o=ve(n,r),a=pe(n,l,t);e.watch(l,()=>{var m,c,I,B;if(n.onlySearcher?a.regionsIndexes.value=Array.from(l.value.keys()):a.regionsIndexes.value=a.regionsIndexes.value.filter(C=>t.value.has(C)),d.searcherKey.value===w)return;let i=l.value.keys().next().value;l.value.forEach(C=>{var V,f,u;if(n.onlySearcher&&C.key===d.searcherKey.value){i=d.searcherKey.value;return}if(o.regionIndex.value&&((V=C.regionByIndex)!=null&&V.has(o.regionIndex.value))&&(i=C.key),!n.onlySearcher){let g;i!==void 0&&(g=(f=l.value.get(i))==null?void 0:f.regionByIndex);const p=(u=l.value.get(C.key))==null?void 0:u.regionByIndex;g!=null&&g.has(y)&&!(p!=null&&p.has(y))&&(i=C.key)}}),i!==void 0&&(d.searcherKey.value=i),o.regionIndex.value!==void 0&&!((c=(m=r.value)==null?void 0:m.regionByIndex)!=null&&c.has(o.regionIndex.value))&&(o.regionIndex.value=(B=(I=r.value)==null?void 0:I.regions)==null?void 0:B.keys().next().value)},{immediate:!0});const s=()=>{if(!(d.searcherKey.value===w||d.searcherKey.value===y))return d.searcherKey.value},v=()=>{if(n.onlySearcher||o.regionIndex.value===y)return;let i=o.regionIndex.value;if(n.forFrequency){const m=o.regionIndex.value,c=H(n.forFrequency,{searcher_key:s(),key:m},n.searchers);i=c==null?void 0:c.index}return i},h=()=>{const i=s();if(i!==void 0)return l.value.get(i)};return{selectSearcher:d,selectRegion:o,compare:a,searcherByKey:l,allRegionsIndexes:t,getSearcher:h,getRegion:()=>{var m,c;const i=v();if(i!==void 0)return(c=(m=h())==null?void 0:m.regionByIndex)==null?void 0:c.get(i)}}},he=e.defineComponent({__name:"selectorRegion",props:e.mergeModels({projectId:{},searchers:{default:()=>[]},modelValue:{},modelValueSingle:{},addCompare:{type:Boolean},forFrequency:{type:Boolean},autoRegion:{type:Boolean},onlySearcher:{type:Boolean},addChanger:{type:Boolean,default:!0},addSearcherIcon:{type:Boolean,default:!0},addRegionIcon:{type:Boolean,default:!0}},{modelValue:{required:!0},modelModifiers:{},modelValueSingle:{},modelValueSingleModifiers:{}}),emits:["update:modelValue","update:modelValueSingle"],setup(n,{expose:l}){const r=n,t=e.useModel(n,"modelValue"),d=e.useModel(n,"modelValueSingle"),{selectSearcher:o,selectRegion:a,compare:s,searcherByKey:v,allRegionsIndexes:h,getSearcher:S,getRegion:i}=ye(r),m=()=>{const c=[];v.value.forEach(I=>{I.enabled&&I.regions.forEach(B=>{B.enabled&&c.push(B)})}),Q.open("selectorRegions",{regions:c,regionsIndexes:s.regionsIndexes.value,"@update:regionsIndexes":I=>s.regionsIndexes.value=I})};return e.watch([a.regionIndex,o.searcherKey,s.regionsIndexes],()=>{if(o.searcherKey.value===w&&s.regionsIndexes.value.length){if(JSON.stringify(t.value)===JSON.stringify(s.regionsIndexes.value))return;t.value=[...s.regionsIndexes.value]}else r.onlySearcher?(t.value=[o.searcherKey.value],o.searcherKey.value===y&&!r.autoRegion&&(t.value.length=0)):(t.value=[a.regionIndex.value],a.regionIndex.value===y&&!r.autoRegion&&(t.value.length=0));!r.onlySearcher&&!h.value.size&&(o.searcherKey.value=y)}),d.value&&e.watch(d,()=>{d.value&&(t.value=[d.value])},{immediate:!0}),e.watch(t,()=>{var c,I,B,C,V;if(t.value[0]&&(d.value=t.value[0]),r.onlySearcher){if(!t.value.length||t.value.length===1&&!v.value.has(t.value[0])||t.value.length===1&&t.value[0]===y&&!r.autoRegion){let f=v.value.keys().next().value;f===y&&!r.autoRegion&&(f=void 0,d.value=y),f!==void 0?t.value=[f]:t.value.length=0;return}if(t.value.length>1&&JSON.stringify(t.value)!==JSON.stringify(s.regionsIndexes.value)){t.value=[...s.regionsIndexes.value];return}}else{let f=[...new Set(t.value)],u=(I=(c=v.value.values().next().value)==null?void 0:c.regionByIndex)==null?void 0:I.keys().next().value;if(r.forFrequency&&(u=(V=(C=(B=v.value.values().next().value)==null?void 0:B.regionByIndex)==null?void 0:C.values().next().value)==null?void 0:V.key),u===y&&!r.autoRegion&&(u=void 0,d.value=y),!f.length)u!==void 0&&f.push(u);else if(f.length===1){let g=h.value;r.forFrequency&&(g=new Set,v.value.forEach(p=>{p.regionByIndex.forEach(k=>{k.index!==L&&k.index!==y&&g.add(k.key)})})),g.has(f[0])||(f=[],u!==void 0&&f.push(u))}else f=f.filter(g=>h.value.has(g)),!f.length&&u!==void 0&&f.push(u);if(JSON.stringify(t.value)!==JSON.stringify(f)){t.value=f;return}}if(!(t.value.length===1&&t.value[0]===(r.onlySearcher?o.searcherKey.value:a.regionIndex.value)))if(r.onlySearcher){if(t.value.length===1){o.searcherKey.value=t.value[0];return}o.searcherKey.value=w;return}else{if(!t.value.length)return;if(t.value.length===1&&o.searcherKey.value!==w){a.regionIndex.value=t.value[0];let f;for(const u of v.value.values()){for(const g of u.regionByIndex.values())if((r.forFrequency?g.key:g.index)===a.regionIndex.value){f=u.key;break}if(f!==void 0)break}f!==void 0&&(o.searcherKey.value=f)}else o.searcherKey.value=w,s.regionsIndexes.value=[...t.value]}},{immediate:!0}),l({getSearcher:S,getRegion:i}),(c,I)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-selectorRegion":!0,"top-selectorRegion-onlySearcher":c.onlySearcher})},[e.createVNode(x._sfc_main$4,{options:e.unref(o).optionBySearcherKey.value,modelValue:e.unref(o).searcherKey.value,"onUpdate:modelValue":I[0]||(I[0]=B=>e.unref(o).searcherKey.value=B),name:"searcher_key",addChanger:c.addChanger},null,8,["options","modelValue","addChanger"]),!c.onlySearcher&&e.unref(o).searcherKey.value!==e.unref(w)?(e.openBlock(),e.createBlock(x._sfc_main$4,{key:0,class:"top-select-region",options:e.unref(a).optionByRegionIndex.value,modelValue:e.unref(a).regionIndex.value,"onUpdate:modelValue":I[1]||(I[1]=B=>e.unref(a).regionIndex.value=B),name:c.forFrequency?"region_key":"region_index",addChanger:c.addChanger,"data-top-icon":c.addRegionIcon?"":void 0},null,8,["options","modelValue","name","addChanger","data-top-icon"])):e.createCommentVNode("",!0),c.addCompare&&!c.onlySearcher&&e.unref(o).searcherKey.value===e.unref(w)?(e.openBlock(),e.createBlock(x._sfc_main,{key:1,name:"compare",onClick:m,"data-count-compare-regions-indexes":e.unref(s).regionsIndexes.value.length},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$i18n.Common.Selected_regions),1)]),_:1},8,["data-count-compare-regions-indexes"])):e.createCommentVNode("",!0)],2))}}),Se=[{id:"1",name:"Without Tag",color_id:"1"},{id:"2",name:"Red",color_id:"2"},{id:"3",name:"Orange",color_id:"3"},{id:"4",name:"Yellow",color_id:"4"},{id:"5",name:"Blue",color_id:"5"},{id:"6",name:"Purple",color_id:"6"},{id:"7",name:"Green",color_id:"7"},{id:"8",name:"Magenta",color_id:"8"},{id:"9",name:"Dark blue",color_id:"9"},{id:"10",name:"Turquoise",color_id:"10"}],X=n=>"-"+n,K=n=>n[0]==="-"?n.substring(1):n,O=(n,l)=>{n=K(n);const r=l.find(t=>t.id===n);if(r)return r},ke=["data-tag_id","data-tag_color_id","title"],D=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(n){return(l,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!l.state,"top-tagSelector-excluded":l.state==="excluded"}),"data-tag_id":l.id,"data-tag_color_id":l.colorId,title:l.name},null,10,ke))}}),Ie=["contenteditable","onKeydown"],Z=e.defineComponent({__name:"tagPopupListItem",props:e.mergeModels({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:e.mergeModels(["update:name","unselect","exclude","select"],["update:name"]),setup(n,{emit:l}){const r=n,t=l,d=e.useModel(n,"name"),o=e.ref(null),a=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:s.value,onpaste:m=>m.preventDefault()}:{}),s=e.ref(!1),v=async()=>{var m;s.value=!0,await e.nextTick(),(m=o.value)==null||m.focus()},h=()=>{var c;const m=(c=o.value)==null?void 0:c.innerText;if(!m)return S();o.value&&(o.value.innerText=m),s.value=!1,t("update:name",m)},S=async()=>{o.value&&(o.value.innerText=r.name),s.value=!1},i=m=>{if(s.value||r.disabled)return;let c="selected";r.canExclude&&(m.ctrlKey||m.metaKey)&&(c="excluded"),r.state==c&&(c=""),c===""&&t("unselect"),c==="selected"&&t("select"),c==="excluded"&&t("exclude")};return(m,c)=>(e.openBlock(),e.createBlock(E._sfc_main$1,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":m.disabled,"top-tagSelector_tagListItem-canExclude":m.canExclude,"top-tagSelector-active":!!m.state,"top-tagSelector-excluded":m.state==="excluded"}),onClick:e.withModifiers(i,["stop"])},{default:e.withCtx(()=>[e.createVNode(D,{id:m.id,name:d.value,colorId:m.colorId,state:m.state},null,8,["id","name","colorId","state"]),e.createElementVNode("span",e.mergeProps({ref_key:"elName",ref:o,class:"top-tagSelector_tagListItemName",contenteditable:s.value?"plaintext-only":!1},a.value,{onKeydown:[e.withKeys(e.withModifiers(h,["stop"]),["enter"]),e.withKeys(e.withModifiers(S,["stop"]),["esc"])]}),e.toDisplayString(d.value),17,Ie),m.editable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[s.value?(e.openBlock(),e.createElementBlock("span",{key:1,"data-top-icon":"",class:"top-tagSelector_edit",onClick:e.withModifiers(h,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:v}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),xe={key:1},ee=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const l=n,r=e.useModel(n,"modelValue"),t=l.useTopButton?x._sfc_main:"div",d=l.useTopButton?"html":"default",o={model:r,mode:l.mode,targetId:l.targetId,filters:l.filters,payload:l.payload};return(a,s)=>{const v=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(E._sfc_main$2,{id:a.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(t)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-filter":l.mode==="filter","top-tagSelector-setter_single":l.mode==="setter"&&!a.filters,"top-tagSelector-setter_several":l.mode==="setter"&&a.filters,"top-tagSelector-selectedOne":!r.value.length||r.value.length===1,"top-tagSelector-toTwoLine":r.value.length>5},color:"theme",styling:""},a.$attrs),{[e.unref(d)]:e.withCtx(()=>[!r.value.length&&a.mode==="filter"?(e.openBlock(),e.createBlock(D,{key:0,id:"all",colorId:"",name:a.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),a.mode==="setter"&&a.filters?(e.openBlock(),e.createElementBlock("div",xe,[e.renderSlot(a.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(r.value,h=>{var S,i;return e.openBlock(),e.createBlock(D,{id:e.unref(K)(h),colorId:((S=e.unref(O)(h,a.tags))==null?void 0:S.color_id)??"",name:((i=e.unref(O)(h,a.tags))==null?void 0:i.name)??"",state:e.unref(K)(h)===h?"selected":"excluded"},null,8,["id","colorId","name","state"])}),256))]),_:2},1040,["class"])),[[v,o,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),Ce=e.defineComponent({__name:"tagSelector",props:e.mergeModels({modelValue:{},tags:{},tagsEditable:{type:Boolean},tagsMax:{default:10},id:{},singleMode:{type:Boolean},requiredForSetter:{type:Boolean,default:!0},maxTagsForSetter:{},emitDelay:{default:500}},{modelValue:{required:!0},modelModifiers:{},tags:{default:e.reactive(Se)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(n,{emit:l}){const r=x.useI18n(),t=n,d=e.useModel(n,"modelValue"),o=e.useModel(n,"tags"),a=l,s=x.debounce((u,g)=>{a(u,g)},t.emitDelay);t.singleMode&&!d.value.length&&(d.value=[o.value[0].id]);const v=t.id??"top-popup-id-"+Math.random(),h=e.ref("add"),S=()=>{var p;const u=" "+((p=r.Common.Tags)==null?void 0:p.toLowerCase()),g=new Map;return g.set("add",{value:"add",title:r.Common.Add+u}),g.set("replace",{value:"replace",title:r.Common.Replace+u}),g.set("delete",{value:"delete",title:r.Common.Delete+u}),g};let i=e.shallowRef({model:d,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(d,()=>{s("selector",d.value)});const m=e.computed(()=>{if(i.value.mode==="setter"&&t.maxTagsForSetter&&!i.value.filters)return i.value.model.value.length>=t.maxTagsForSetter}),c=u=>{if(u!=="all"){if(i.value.model.value.includes(u))return"selected";if(i.value.model.value.includes(X(u)))return"excluded"}return u==="all"&&!i.value.model.value.length?"selected":""},I=(u,g)=>{const p=X(u);let k=i.value.model.value.filter(M=>M!==u&&M!==p);g==="select"&&k.push(u),g==="exclude"&&k.push(p),i.value.mode==="setter"&&i.value.targetId!==void 0&&t.requiredForSetter&&(k.length||k.push("1"),k.length===2&&i.value.model.value.length===1&&i.value.model.value[0]==="1"&&(k=k.filter(M=>M!=="1"))),t.singleMode&&!i.value.filters&&(k.length||(k=i.value.model.value),k.length>1&&(k=[k[k.length-1]])),k.sort((M,N)=>{if(!t.tags)return 0;const q=t.tags.findIndex(b=>b.id===M),R=t.tags.findIndex(b=>b.id===N);return q-R}),i.value.model.value=k,i.value.mode==="setter"&&i.value.targetId!==void 0&&s("setter",{tagsIds:k,targetId:i.value.targetId,payload:i.value.payload})},B=e.computed(()=>{let u="top-tagSelector_popup";return i.value.mode==="filter"&&(u+=" top-tagSelector_popup-filter"),i.value.mode==="setter"&&(u+=" top-tagSelector_popup-setter"),u}),C=()=>{const u=prompt("","New tag");if(!u||u==="New tag")return;const g=o.value.length+1;o.value.push({id:String(g),name:u,color_id:String((g-1)%10+1)}),a("tagsChanged",o.value)},V=u=>{var g;if(i.value=_.storage(u.elPopupOpener,"topTagSelectorTarget"),!i.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(i.value.filters&&(h.value="add",i.value.model.value=[]),!((g=x.Core.$)!=null&&g.ui.sortable)){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}!x.Core.state.isMobile&&!x.Core.state.isMobileUA&&o.value&&$(u.elPopup).sortable({items:'li:has([data-tag_id]:not([data-tag_id="all"]))',cancel:'[contenteditable="plaintext-only"], [contenteditable="true"]',distance:10,stop:function(p,k){if(!o.value)return;const M=$(k.item).parent().find("[data-tag_id]"),N=[];M.each((q,R)=>{if(!o.value)return;const b=$(R).attr("data-tag_id");N.push(b)}),o.value.sort((q,R)=>{const b=N.findIndex(j=>j===q.id),Ke=N.findIndex(j=>j===R.id);return b-Ke}),s("tagsChanged",o.value)}})},f=u=>{var g;(g=x.Core.$)!=null&&g.ui.sortable&&$(u.elPopup).data("ui-sortable")&&$(u.elPopup).sortable("destroy")};return(u,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(ee,{class:"top-select_arrow",modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=p=>d.value=p),id:e.unref(v),tags:o.value,mode:"filter",useTopButton:""},null,8,["modelValue","id","tags"]),e.createVNode(E._sfc_main,{id:e.unref(v),class:e.normalizeClass(B.value),onOpen:g[4]||(g[4]=p=>V(p)),onClose:g[5]||(g[5]=p=>f(p)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!u.singleMode?(e.openBlock(),e.createBlock(Z,{key:0,id:"all",colorId:"",name:u.$i18n.Common.All_tags??"",state:e.unref(i).model.value.length?"":"selected",onSelect:g[3]||(g[3]=p=>e.unref(i).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,p=>(e.openBlock(),e.createBlock(Z,{key:p.id,id:p.id,colorId:p.color_id,name:p.name,state:c(p.id),canExclude:e.unref(i).mode==="filter"&&!u.singleMode,editable:u.tagsEditable,disabled:m.value&&c(p.id)==="",onUnselect:k=>I(p.id,"unselect"),onSelect:k=>I(p.id,"select"),onExclude:k=>I(p.id,"exclude"),"onUpdate:name":k=>{p.name=k,e.unref(s)("tagsChanged",o.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),u.tagsEditable&&o.value.length<u.tagsMax&&o.value.length<20?(e.openBlock(),e.createBlock(E._sfc_main$1,{key:1,"data-top-icon":"",onClick:e.withModifiers(C,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.$i18n.Common.Add),1)]),_:1})):e.createCommentVNode("",!0)]),_:2},[e.unref(i).mode==="setter"&&e.unref(i).filters?{name:"header",fn:e.withCtx(()=>[e.createVNode(x._sfc_main$4,{modelValue:h.value,"onUpdate:modelValue":g[1]||(g[1]=p=>h.value=p),options:S()},null,8,["modelValue","options"])]),key:"0"}:void 0,e.unref(i).mode==="setter"&&e.unref(i).filters?{name:"footer",fn:e.withCtx(()=>[e.createVNode(x._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(x._sfc_main,{onClick:g[2]||(g[2]=p=>e.unref(s)("setter",{tagsIds:e.unref(i).model.value,filters:e.unref(i).filters,filtersAction:h.value,payload:e.unref(i).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.value==="add"?u.$i18n.Common.Add:"")+" "+e.toDisplayString(h.value==="replace"?u.$i18n.Common.Replace:"")+" "+e.toDisplayString(h.value==="delete"?u.$i18n.Common.Remove:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}}),Be=(n,l)=>e.computed(()=>e.toValue(n).filter(d=>d.on>=0||d.id===l).map(d=>({value:d.id,title:d.url+` [${d.id}]`,icon:d.id===e.toValue(l)?"":"",content:d.name}))),Te=(n,l,r)=>{l||(l={id:n.id}),l.id=n.id;const t=ae.TopPopupWorker.genElPopupOpener("div",l);return t.classList.add("top-tagSelector"),n.useTopButton&&t.classList.add("top-button","top-color_theme"),n.mode==="filter"&&t.classList.add("top-tagSelector-filter"),n.mode==="setter"&&!n.filters&&t.classList.add("top-tagSelector-setter_single"),n.mode==="setter"&&n.filters&&t.classList.add("top-tagSelector-setter_several"),t.onclick=d=>{d.preventDefault(),d.stopPropagation(),t.onclick=null;const o=e.ref(n.modelValue),a={model:o,mode:n.mode,targetId:n.targetId,filters:n.filters,payload:n.payload};_.storage(t,"topTagSelectorTarget",a),delete t.dataset.topPopupDisabled,e.isRef(n.modelValue)||e.watch(o,()=>{n.modelValue=o.value,F(t,n,r)}),t.click()},e.isRef(n.modelValue)?e.watch(n.modelValue,()=>F(t,n,r)):_.storage(t,"topTagSelectorRender",d=>{n.modelValue=d;const o=_.storage(t,"topTagSelectorTarget");o&&(o.model.value=d),F(t,n,r)}),F(t,n,r),t},Ve=(n,l)=>{var r;(r=_.storage(n,"topTagSelectorRender"))==null||r(l)},F=(n,l,r)=>{var d;const t=e.unref(l.modelValue);if(n.classList.toggle("top-tagSelector-selectedOne",!t.length||t.length===1),n.classList.toggle("top-tagSelector-toTwoLine",t.length>5),l.mode==="setter"&&l.filters){n.innerHTML=`<div>${r}</div>`;return}if(n.innerHTML="",!t.length&&l.mode==="filter"){const o=te({id:"all",colorId:"",name:((d=x.useI18n().Common)==null?void 0:d.All_tags)??"",state:""});n.append(o)}t.forEach(o=>{var s,v;const a=te({id:K(o),colorId:((s=O(o,l.tags))==null?void 0:s.color_id)??"",name:((v=O(o,l.tags))==null?void 0:v.name)??"",state:K(o)===o?"selected":"excluded"});n.append(a)})},te=n=>{const l=document.createElement("div");return l.classList.add("top-tagSelector_tagIcon"),l.classList.toggle("top-tagSelector-active",!!n.state),l.classList.toggle("top-tagSelector-excluded",n.state==="excluded"),l.dataset.tag_id=n.id,l.dataset.tag_color_id=n.colorId,l.title=n.name,l},we=de,Me=he,be=Ce,Ee=ee,_e=D;T.TopSelectorCompetitors=we,T.TopSelectorRegion=Me,T.TopTagSelector=be,T.TopTagSelectorPopupOpener=Ee,T.TopTagSelectorTagIcon=_e,T.dialogSelectorRegions=Q,T.findRegion=H,T.genElTopTagSelectorPopupOpener=Te,T.genSearcherByKey=z,T.renderElTopTagSelectorPopupOpener=Ve,T.useItemsFromCompetitors=Be,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=project.amd.js.map
@@ -1,9 +1,9 @@
1
1
  import { Core as be } from "../core/app.js";
2
2
  import { defineComponent as P, mergeModels as N, useModel as D, computed as E, createElementBlock as B, openBlock as k, createBlock as b, unref as y, withCtx as _, Fragment as Y, renderList as se, normalizeClass as X, createElementVNode as he, toDisplayString as K, createVNode as A, createTextVNode as G, ref as F, watch as w, createCommentVNode as q, withModifiers as z, mergeProps as Se, withKeys as de, nextTick as Ve, resolveDirective as Ee, withDirectives as Me, resolveDynamicComponent as Ke, renderSlot as $e, shallowRef as we, createSlots as Le, reactive as Ae, toValue as ce, isRef as ge } from "vue";
3
- import { u as R, C as J, _ as H, y as ie, d as Re } from "../.chunks/forms-DvSi_Mh8.es.js";
4
- import { _ as Ie, a as ue, b as Oe } from "../.chunks/listItem.vue_vue_type_script_setup_true_lang-BsOU-bZ6.es.js";
5
- import { _ as Ne } from "../.chunks/menu.vue_vue_type_style_index_0_lang-LMqVTnj9.es.js";
6
- import { u as De } from "../.chunks/utils-hS40kghU.es.js";
3
+ import { u as R, C as J, _ as H, y as ie, d as Re } from "../.chunks/forms-y5m2XRDE.es.js";
4
+ import { _ as Ie, a as ue, b as Oe } from "../.chunks/listItem.vue_vue_type_script_setup_true_lang-CTWHBqKC.es.js";
5
+ import { _ as Ne } from "../.chunks/menu.vue_vue_type_style_index_0_lang-6rKuaIXo.es.js";
6
+ import { u as De } from "../.chunks/utils-BHAnz5od.es.js";
7
7
  import { getSearcherGIcon as Fe, getLangLabel as qe, getDeviceGIcon as Pe } from "../utils/searchers.js";
8
8
  import { storage as W } from "../utils/dom.js";
9
9
  import { TopPopupWorker as Ue } from "../popup/worker.js";
@@ -165,7 +165,7 @@ const je = { class: "top-selectorCompetitors" }, ze = { class: "top-ellipsis1" }
165
165
  }), i))
166
166
  return !1;
167
167
  }), i;
168
- }, Ze = De(() => import("../.chunks/dialog_selectorRegions-CQB8rW_o.es.js")), et = (t, l) => {
168
+ }, Ze = De(() => import("../.chunks/dialog_selectorRegions-tz_E4JXX.es.js")), et = (t, l) => {
169
169
  const n = R(), e = F(l.value.keys().next().value ?? p), i = E(() => {
170
170
  const a = /* @__PURE__ */ new Map();
171
171
  if (l.value.forEach((o) => {
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-BvGGRIzu.amd","../utils/route.amd","../.chunks/store-esTid5oI.amd","../popup/popup.amd","../utils/system.amd","../require/css.amd!../assets/tabsView.css"],function(X,h,e,m,f,_,S,L){"use strict";if(typeof e>"u")var e=window.Vue;const g=(o,n)=>`top:${String(o)}:${n}`,y={loadLocalStorge:(o,n)=>{if(!n.$id)return;const t=g(o,n.$id);try{const a=JSON.parse(localStorage.getItem(t));typeof a==typeof n[o]&&(n[o]=a)}catch{console.warn(new Error(`В localStorage[${t}] не корректный json`))}},addSaverLocalStorge:(o,n)=>{if(!n.$id)return;const t=g(o,n.$id);e.watch(()=>n[o],()=>{localStorage.setItem(t,JSON.stringify(n[o]))},{immediate:!0})}},k=new Set;addEventListener("popstate",o=>{k.forEach(n=>n(o))});const V=Symbol(),C=(o,n)=>{const t=_.defineStore(V,()=>{const a=e.computed(()=>o.showMenuInPopup??m.Core.state.isMobile),i=e.computed(()=>o.pageMod),u=e.ref(!1),r=e.ref(void 0),l=e.ref(!0);return{showMenuInPopup:a,pageMod:i,isShort:u,activeItemName:n,component:r,scrollable:l}},o.idState);if(o.isShortable){const a="isShort";y.loadLocalStorge(a,t),y.addSaverLocalStorge(a,t)}if(t.$id){const a=i=>{n.value=f.getHash(t.$id)};k.add(a)}return t},w=()=>_.useStore(V),P={key:1,class:"top-ellipsis"},v=e.defineComponent({__name:"menuItem",props:{name:{},href:{},icon:{},disabled:{type:Boolean},component:{default:void 0},scrollable:{type:Boolean,default:!0}},setup(o){const n=o,t=w(),a=e.computed(()=>n.name&&t.$id?f.genHash(t.$id,n.name):n.href),i=e.computed(()=>t.showMenuInPopup?S.TopPopupListItem:a?"a":"button"),u=r=>{!n.href&&a.value&&r.preventDefault(),n.name&&(t.activeItemName=n.name)};return(r,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{target:"_self",class:e.normalizeClass({"top-tabsView_menuItem":!e.unref(t).showMenuInPopup,"top-active":r.name&&e.unref(t).activeItemName===r.name,"top-disabled":r.disabled,"top-spa-disabled":!0}),href:a.value,"data-top-icon":r.icon||void 0,disabled:r.disabled||void 0,onClick:u},{default:e.withCtx(()=>[e.unref(t).showMenuInPopup?e.renderSlot(r.$slots,"default",{key:0}):r.$slots.default&&!e.unref(t).isShort?(e.openBlock(),e.createElementBlock("span",P,[e.renderSlot(r.$slots,"default")])):e.createCommentVNode("",!0)]),_:3},8,["class","href","data-top-icon","disabled"]))}}),B=o=>(o==null?void 0:o.name)==="AsyncComponentWrapper"&&!(o!=null&&o.__asyncResolved),E=async(o,n)=>{(o==null?void 0:o.name)==="AsyncComponentWrapper"&&(o!=null&&o.__asyncResolved||(o.__asyncLoader(),await L.sleepWhile(()=>n()&&B(o),200)))},z={class:"top-tabsView_menuOpener"},R=["data-top-icon"],O={class:"top-ellipsis"},D={class:"top-tabsView_menuList"},H={key:0,class:"top-tabsView_menuFooter"},K=e.defineComponent({__name:"menu",props:e.mergeModels({isShortable:{type:Boolean},isLoading:{type:Boolean}},{isLoading:{},isLoadingModifiers:{}}),emits:["update:isLoading"],setup(o){const n=e.useModel(o,"isLoading"),t=w(),a=e.useSlots(),i=new Map,u=()=>{if(!a.default)return;const c=a.default({}).find(s=>s.key==="_menu");c&&r(c.children)},r=c=>{c.forEach(s=>{var M,$,N,T;if(s.type.__name&&s.type.__name!==v.__name)return;if(!s.type.__name&&typeof s.children=="object"){r(s.children);return}if(!((M=s.props)!=null&&M.name)||($=s.props)!=null&&$.disabled)return;const I={title:((T=(N=s.children).default)==null?void 0:T.call(N)[0].children).trim(),icon:s.props.icon,component:s.props.component?e.markRaw(s.props.component):v.props.component.default,scrollable:s.props.scrollable??v.props.scrollable.default};i.set(s.props.name,I)})},l=e.ref(null);let d=0;e.watch(()=>t.activeItemName,async()=>{const c=++d;if(i.size===0&&u(),i.size===0){t.activeItemName="";return}if(l.value=i.get(t.activeItemName)??null,!l.value&&t.$id){const s=f.getHash(t.$id);if(l.value=i.get(s)??null,l.value){t.activeItemName=s;return}}if(!l.value){t.activeItemName=i.keys().next().value;return}if(l.value.component===t.component){n.value=!1;return}t.$id&&f.setHash(t.$id,t.activeItemName,!1),n.value=!0,await E(l.value.component,()=>c===d),c===d&&(t.scrollable=l.value.scrollable,t.component=l.value.component,l.value&&!t.component&&console.warn(`Компонент вкладки ${t.activeItemName} не найден. Добавьте props.component для пункта меню ${t.activeItemName}.`))},{immediate:!0});const p=e.ref();let b;return e.onMounted(()=>{b=new ResizeObserver(()=>{p.value.parentElement.style.setProperty("--top-tabsView-contents-offset-top",p.value.offsetHeight+"px")}),b.observe(p.value)}),e.onUnmounted(()=>{b.disconnect()}),(c,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:p,class:e.normalizeClass({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!e.unref(t).showMenuInPopup,"top-tabsView_menu-inPopup_1":e.unref(t).showMenuInPopup,"top-tabsView_menu-short":e.unref(t).isShort&&!e.unref(t).showMenuInPopup})},[e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(S.TopPopup),{key:0},{opener:e.withCtx(()=>[e.createElementVNode("div",z,[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-tabsView_menuOpenerActiveItem","data-top-icon":l.value.icon},[e.createElementVNode("span",O,e.toDisplayString(l.value.title),1)],8,R)):e.createCommentVNode("",!0),s[1]||(s[1]=e.createElementVNode("div",{class:"top-tabsView_menuOpenerIcon","data-top-icon":""},null,-1))])]),contentList:e.withCtx(()=>[e.renderSlot(c.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",D,[e.renderSlot(c.$slots,"default")]),c.isShortable?(e.openBlock(),e.createElementBlock("div",H,[c.isShortable?(e.openBlock(),e.createBlock(v,{key:0,icon:e.unref(t).isShort?"":"",onClick:s[0]||(s[0]=I=>e.unref(t).isShort=!e.unref(t).isShort)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t).isShort?"":"Свернуть"),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64))],2))}}),j=e.defineComponent({__name:"tabsView",props:e.mergeModels({modelValue:{},pageMod:{type:Boolean},showMenuInPopup:{type:Boolean,default:void 0},isShortable:{type:Boolean,default:!1},idState:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const n=o,t=e.useModel(o,"modelValue"),a=C(n,t),i=Math.random();n.pageMod&&m.Core.state.documentClassModificators.set(i,"top-hasTabsViewPageMod"),e.onUnmounted(()=>{n.pageMod&&m.Core.state.documentClassModificators.delete(i),a.$id&&f.delHash(a.$id,a.activeItemName,!0)});const u=e.ref(),r=e.ref(!1);return e.watch([u,()=>a.component],()=>{r.value=B(a.component)},{immediate:!0}),(l,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView":!0,"top-tabsView-pageMod":n.pageMod,"top-tabsView-inPopup":e.unref(a).showMenuInPopup})},[e.createVNode(K,{isShortable:l.isShortable,isLoading:r.value,"onUpdate:isLoading":d[0]||(d[0]=p=>r.value=p)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"menu")]),_:3},8,["isShortable","isLoading"]),e.createElementVNode("div",{class:e.normalizeClass({"top-tabsView_contents":!0,"top-tabsView_contents-isLoading":r.value,"top-tabsView_contents-noScrollable":!e.unref(a).scrollable})},[r.value?(e.openBlock(),e.createBlock(m.TopLoadbar$1,{key:0})):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.KeepAlive,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(a).component),{ref_key:"componentRef",ref:u},null,512))],1024))],2)],2))}}),A={},q={class:"top-tabsView_menuDelimeter"};function F(o,n){return e.openBlock(),e.createElementBlock("div",q)}const U=m._export_sfc(A,[["render",F]]),W=e.defineComponent({__name:"menuTitle",props:{isSubtitle:{type:Boolean}},setup(o){const n=w();return(t,a)=>e.unref(n).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(S.TopPopupListItem),{key:0,type:"title"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3})):e.unref(n).isShort?(e.openBlock(),e.createBlock(U,{key:1})):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":t.isSubtitle})},[e.renderSlot(t.$slots,"default")],2))}}),J=j,G=v,Q=W;h.TopTabsView=J,h.TopTabsViewMenuItem=G,h.TopTabsViewMenuTitle=Q,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-DzVLntpR.amd","../utils/route.amd","../.chunks/store-esTid5oI.amd","../popup/popup.amd","../utils/system.amd","../require/css.amd!../assets/tabsView.css"],function(X,h,e,m,f,_,S,L){"use strict";if(typeof e>"u")var e=window.Vue;const g=(o,n)=>`top:${String(o)}:${n}`,y={loadLocalStorge:(o,n)=>{if(!n.$id)return;const t=g(o,n.$id);try{const a=JSON.parse(localStorage.getItem(t));typeof a==typeof n[o]&&(n[o]=a)}catch{console.warn(new Error(`В localStorage[${t}] не корректный json`))}},addSaverLocalStorge:(o,n)=>{if(!n.$id)return;const t=g(o,n.$id);e.watch(()=>n[o],()=>{localStorage.setItem(t,JSON.stringify(n[o]))},{immediate:!0})}},k=new Set;addEventListener("popstate",o=>{k.forEach(n=>n(o))});const V=Symbol(),C=(o,n)=>{const t=_.defineStore(V,()=>{const a=e.computed(()=>o.showMenuInPopup??m.Core.state.isMobile),i=e.computed(()=>o.pageMod),u=e.ref(!1),r=e.ref(void 0),l=e.ref(!0);return{showMenuInPopup:a,pageMod:i,isShort:u,activeItemName:n,component:r,scrollable:l}},o.idState);if(o.isShortable){const a="isShort";y.loadLocalStorge(a,t),y.addSaverLocalStorge(a,t)}if(t.$id){const a=i=>{n.value=f.getHash(t.$id)};k.add(a)}return t},w=()=>_.useStore(V),P={key:1,class:"top-ellipsis"},v=e.defineComponent({__name:"menuItem",props:{name:{},href:{},icon:{},disabled:{type:Boolean},component:{default:void 0},scrollable:{type:Boolean,default:!0}},setup(o){const n=o,t=w(),a=e.computed(()=>n.name&&t.$id?f.genHash(t.$id,n.name):n.href),i=e.computed(()=>t.showMenuInPopup?S.TopPopupListItem:a?"a":"button"),u=r=>{!n.href&&a.value&&r.preventDefault(),n.name&&(t.activeItemName=n.name)};return(r,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{target:"_self",class:e.normalizeClass({"top-tabsView_menuItem":!e.unref(t).showMenuInPopup,"top-active":r.name&&e.unref(t).activeItemName===r.name,"top-disabled":r.disabled,"top-spa-disabled":!0}),href:a.value,"data-top-icon":r.icon||void 0,disabled:r.disabled||void 0,onClick:u},{default:e.withCtx(()=>[e.unref(t).showMenuInPopup?e.renderSlot(r.$slots,"default",{key:0}):r.$slots.default&&!e.unref(t).isShort?(e.openBlock(),e.createElementBlock("span",P,[e.renderSlot(r.$slots,"default")])):e.createCommentVNode("",!0)]),_:3},8,["class","href","data-top-icon","disabled"]))}}),B=o=>(o==null?void 0:o.name)==="AsyncComponentWrapper"&&!(o!=null&&o.__asyncResolved),E=async(o,n)=>{(o==null?void 0:o.name)==="AsyncComponentWrapper"&&(o!=null&&o.__asyncResolved||(o.__asyncLoader(),await L.sleepWhile(()=>n()&&B(o),200)))},z={class:"top-tabsView_menuOpener"},R=["data-top-icon"],O={class:"top-ellipsis"},D={class:"top-tabsView_menuList"},H={key:0,class:"top-tabsView_menuFooter"},K=e.defineComponent({__name:"menu",props:e.mergeModels({isShortable:{type:Boolean},isLoading:{type:Boolean}},{isLoading:{},isLoadingModifiers:{}}),emits:["update:isLoading"],setup(o){const n=e.useModel(o,"isLoading"),t=w(),a=e.useSlots(),i=new Map,u=()=>{if(!a.default)return;const c=a.default({}).find(s=>s.key==="_menu");c&&r(c.children)},r=c=>{c.forEach(s=>{var M,$,N,T;if(s.type.__name&&s.type.__name!==v.__name)return;if(!s.type.__name&&typeof s.children=="object"){r(s.children);return}if(!((M=s.props)!=null&&M.name)||($=s.props)!=null&&$.disabled)return;const I={title:((T=(N=s.children).default)==null?void 0:T.call(N)[0].children).trim(),icon:s.props.icon,component:s.props.component?e.markRaw(s.props.component):v.props.component.default,scrollable:s.props.scrollable??v.props.scrollable.default};i.set(s.props.name,I)})},l=e.ref(null);let d=0;e.watch(()=>t.activeItemName,async()=>{const c=++d;if(i.size===0&&u(),i.size===0){t.activeItemName="";return}if(l.value=i.get(t.activeItemName)??null,!l.value&&t.$id){const s=f.getHash(t.$id);if(l.value=i.get(s)??null,l.value){t.activeItemName=s;return}}if(!l.value){t.activeItemName=i.keys().next().value;return}if(l.value.component===t.component){n.value=!1;return}t.$id&&f.setHash(t.$id,t.activeItemName,!1),n.value=!0,await E(l.value.component,()=>c===d),c===d&&(t.scrollable=l.value.scrollable,t.component=l.value.component,l.value&&!t.component&&console.warn(`Компонент вкладки ${t.activeItemName} не найден. Добавьте props.component для пункта меню ${t.activeItemName}.`))},{immediate:!0});const p=e.ref();let b;return e.onMounted(()=>{b=new ResizeObserver(()=>{p.value.parentElement.style.setProperty("--top-tabsView-contents-offset-top",p.value.offsetHeight+"px")}),b.observe(p.value)}),e.onUnmounted(()=>{b.disconnect()}),(c,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:p,class:e.normalizeClass({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!e.unref(t).showMenuInPopup,"top-tabsView_menu-inPopup_1":e.unref(t).showMenuInPopup,"top-tabsView_menu-short":e.unref(t).isShort&&!e.unref(t).showMenuInPopup})},[e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(S.TopPopup),{key:0},{opener:e.withCtx(()=>[e.createElementVNode("div",z,[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-tabsView_menuOpenerActiveItem","data-top-icon":l.value.icon},[e.createElementVNode("span",O,e.toDisplayString(l.value.title),1)],8,R)):e.createCommentVNode("",!0),s[1]||(s[1]=e.createElementVNode("div",{class:"top-tabsView_menuOpenerIcon","data-top-icon":""},null,-1))])]),contentList:e.withCtx(()=>[e.renderSlot(c.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",D,[e.renderSlot(c.$slots,"default")]),c.isShortable?(e.openBlock(),e.createElementBlock("div",H,[c.isShortable?(e.openBlock(),e.createBlock(v,{key:0,icon:e.unref(t).isShort?"":"",onClick:s[0]||(s[0]=I=>e.unref(t).isShort=!e.unref(t).isShort)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t).isShort?"":"Свернуть"),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64))],2))}}),j=e.defineComponent({__name:"tabsView",props:e.mergeModels({modelValue:{},pageMod:{type:Boolean},showMenuInPopup:{type:Boolean,default:void 0},isShortable:{type:Boolean,default:!1},idState:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const n=o,t=e.useModel(o,"modelValue"),a=C(n,t),i=Math.random();n.pageMod&&m.Core.state.documentClassModificators.set(i,"top-hasTabsViewPageMod"),e.onUnmounted(()=>{n.pageMod&&m.Core.state.documentClassModificators.delete(i),a.$id&&f.delHash(a.$id,a.activeItemName,!0)});const u=e.ref(),r=e.ref(!1);return e.watch([u,()=>a.component],()=>{r.value=B(a.component)},{immediate:!0}),(l,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView":!0,"top-tabsView-pageMod":n.pageMod,"top-tabsView-inPopup":e.unref(a).showMenuInPopup})},[e.createVNode(K,{isShortable:l.isShortable,isLoading:r.value,"onUpdate:isLoading":d[0]||(d[0]=p=>r.value=p)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"menu")]),_:3},8,["isShortable","isLoading"]),e.createElementVNode("div",{class:e.normalizeClass({"top-tabsView_contents":!0,"top-tabsView_contents-isLoading":r.value,"top-tabsView_contents-noScrollable":!e.unref(a).scrollable})},[r.value?(e.openBlock(),e.createBlock(m.TopLoadbar$1,{key:0})):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.KeepAlive,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(a).component),{ref_key:"componentRef",ref:u},null,512))],1024))],2)],2))}}),A={},q={class:"top-tabsView_menuDelimeter"};function F(o,n){return e.openBlock(),e.createElementBlock("div",q)}const U=m._export_sfc(A,[["render",F]]),W=e.defineComponent({__name:"menuTitle",props:{isSubtitle:{type:Boolean}},setup(o){const n=w();return(t,a)=>e.unref(n).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(S.TopPopupListItem),{key:0,type:"title"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3})):e.unref(n).isShort?(e.openBlock(),e.createBlock(U,{key:1})):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":t.isSubtitle})},[e.renderSlot(t.$slots,"default")],2))}}),J=j,G=v,Q=W;h.TopTabsView=J,h.TopTabsViewMenuItem=G,h.TopTabsViewMenuTitle=Q,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=tabsView.amd.js.map
@@ -1,6 +1,6 @@
1
1
  import { Core as U } from "../core/app.js";
2
2
  import { watch as k, computed as I, ref as f, defineComponent as M, createBlock as m, openBlock as l, resolveDynamicComponent as O, normalizeClass as w, unref as i, withCtx as b, renderSlot as v, createElementBlock as d, createCommentVNode as y, mergeModels as z, useModel as D, useSlots as G, onMounted as Q, onUnmounted as H, createElementVNode as S, toDisplayString as R, Fragment as X, createTextVNode as Y, markRaw as Z, createVNode as x, KeepAlive as ee } from "vue";
3
- import { C as $, v as te, t as oe } from "../.chunks/forms-DvSi_Mh8.es.js";
3
+ import { C as $, v as te, t as oe } from "../.chunks/forms-y5m2XRDE.es.js";
4
4
  import { getHash as K, genHash as ae, setHash as se, delHash as ne } from "../utils/route.js";
5
5
  import { u as ie, d as re } from "../.chunks/store-CX_6ZXhO.es.js";
6
6
  import { TopPopupListItem as A, TopPopup as le } from "../popup/popup.js";
@@ -1,4 +1,4 @@
1
- define(["require","exports","../.chunks/forms-BvGGRIzu.amd"],function(l,t,e){"use strict";if(typeof r>"u")var r=window.Vue;async function a(o,n=!1){let i=!1;return navigator.clipboard&&(await navigator.clipboard.writeText(o),i=!0,n&&e.Core.notice(e.useI18n().Common.Copied_to_clipboard+"","info")),i}async function u(o){let n=!1;e.isSafari()||(n=await a(o));const i='<a href="'+o+'" target="_blank">'+o+"</a>",c=e.useI18n().Common.Copied_to_clipboard+`:
1
+ define(["require","exports","../.chunks/forms-DzVLntpR.amd"],function(l,t,e){"use strict";if(typeof r>"u")var r=window.Vue;async function a(o,n=!1){let i=!1;return navigator.clipboard&&(await navigator.clipboard.writeText(o),i=!0,n&&e.Core.notice(e.useI18n().Common.Copied_to_clipboard+"","info")),i}async function u(o){let n=!1;e.isSafari()||(n=await a(o));const i='<a href="'+o+'" target="_blank">'+o+"</a>",c=e.useI18n().Common.Copied_to_clipboard+`:
2
2
  `+i;if(n)e.Core.notice(c,"info");else{if(!navigator.clipboard){e.Core.notice(e.useI18n().Common.Cannot_copied_to_clipboard+`:
3
3
  `+e.useI18n().Common.Copy_guest_link_manually+`
4
4
  `+i,"error");return}const d={onclick:()=>a(o).then(()=>e.Core.notice(c,"info")),default:e.useI18n().Common.Copy+"",class:"copy"};await e.Core.notice(e.useI18n().Common.Guest_link_created+`
@@ -1,4 +1,4 @@
1
- import { C as t, u as a, b as s } from "../.chunks/forms-DvSi_Mh8.es.js";
1
+ import { C as t, u as a, b as s } from "../.chunks/forms-y5m2XRDE.es.js";
2
2
  async function r(o, e = !1) {
3
3
  let i = !1;
4
4
  return navigator.clipboard && (await navigator.clipboard.writeText(o), i = !0, e && t.notice(a().Common.Copied_to_clipboard + "", "info")), i;
package/utils/date.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-BvGGRIzu.amd"],function(n,e,t){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateToString=t.dateToString,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.genDateMoscow=t.genDateMoscow,e.getDayOfWeek=t.getDayOfWeek,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-DzVLntpR.amd"],function(n,e,t){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateToString=t.dateToString,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.genDateMoscow=t.genDateMoscow,e.getDayOfWeek=t.getDayOfWeek,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=date.amd.js.map
package/utils/date.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as t, Q as s, V as o, S as r, U as g, P as n, R as D } from "../.chunks/forms-DvSi_Mh8.es.js";
1
+ import { c as t, Q as s, V as o, S as r, U as g, P as n, R as D } from "../.chunks/forms-y5m2XRDE.es.js";
2
2
  export {
3
3
  t as dateFormat,
4
4
  s as dateToString,
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-BvGGRIzu.amd"],function(a,e,i){"use strict";if(typeof l>"u")var l=window.Vue;e.get$scroll=i.get$scroll,e.getCommandKeyLabel=i.getCommandKeyLabel,e.getElsScroll=i.getElsScroll,e.getOS=i.getOS,e.getOSAsync=i.getOSAsync,e.getScrollTop=i.getScrollTop,e.isApp=i.isApp,e.isMacOS=i.isMacOS,e.isMobile=i.isMobile,e.isRetina=i.isRetina,e.isSafari=i.isSafari,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-DzVLntpR.amd"],function(a,e,i){"use strict";if(typeof l>"u")var l=window.Vue;e.get$scroll=i.get$scroll,e.getCommandKeyLabel=i.getCommandKeyLabel,e.getElsScroll=i.getElsScroll,e.getOS=i.getOS,e.getOSAsync=i.getOSAsync,e.getScrollTop=i.getScrollTop,e.isApp=i.isApp,e.isMacOS=i.isMacOS,e.isMobile=i.isMobile,e.isRetina=i.isRetina,e.isSafari=i.isSafari,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=device.amd.js.map
package/utils/device.js CHANGED
@@ -1,4 +1,4 @@
1
- import { H as e, F as l, I as i, J as o, K as t, G as g, B as r, D as S, A as c, z as p, b } from "../.chunks/forms-DvSi_Mh8.es.js";
1
+ import { H as e, F as l, I as i, J as o, K as t, G as g, B as r, D as S, A as c, z as p, b } from "../.chunks/forms-y5m2XRDE.es.js";
2
2
  export {
3
3
  e as get$scroll,
4
4
  l as getCommandKeyLabel,
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-BvGGRIzu.amd"],function(u,e,n){"use strict";if(typeof i>"u")var i=window.Vue;e.cloneDeep=n.cloneDeep,e.debounce=n.debounce,e.memoize=n.memoize,e.merge=n.merge,e.throttle=n.throttle,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-DzVLntpR.amd"],function(u,e,n){"use strict";if(typeof i>"u")var i=window.Vue;e.cloneDeep=n.cloneDeep,e.debounce=n.debounce,e.memoize=n.memoize,e.merge=n.merge,e.throttle=n.throttle,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=lodash.amd.js.map
package/utils/lodash.js CHANGED
@@ -1,4 +1,4 @@
1
- import { L as a, d as s, M as m, O as r, N as t } from "../.chunks/forms-DvSi_Mh8.es.js";
1
+ import { L as a, d as s, M as m, O as r, N as t } from "../.chunks/forms-y5m2XRDE.es.js";
2
2
  export {
3
3
  a as cloneDeep,
4
4
  s as debounce,
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-BvGGRIzu.amd"],function(a,t,i){"use strict";if(typeof n>"u")var n=window.Vue;const u=(c,e,o=i.Core.state.currency)=>{e=e??i.useI18nLang().value;let r=c.toLocaleString(e,{style:"currency",currency:o,maximumFractionDigits:2});return r=r.replace(",","."),r};t.genPrice=u,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-DzVLntpR.amd"],function(a,t,i){"use strict";if(typeof n>"u")var n=window.Vue;const u=(c,e,o=i.Core.state.currency)=>{e=e??i.useI18nLang().value;let r=c.toLocaleString(e,{style:"currency",currency:o,maximumFractionDigits:2});return r=r.replace(",","."),r};t.genPrice=u,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=price.amd.js.map
package/utils/price.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as a, a as o } from "../.chunks/forms-DvSi_Mh8.es.js";
1
+ import { C as a, a as o } from "../.chunks/forms-y5m2XRDE.es.js";
2
2
  const i = (t, e, c = a.state.currency) => {
3
3
  e = e ?? o().value;
4
4
  let r = t.toLocaleString(e, { style: "currency", currency: c, maximumFractionDigits: 2 });
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-BvGGRIzu.amd","../.chunks/core-tZjrVA9F.amd","vue","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-DRXenVvu.amd"],function(b,c,g,f,r,d){"use strict";if(typeof r>"u")var r=window.Vue;const s={0:"Yandex",20:"Yandex.com",21:"Yandex.com.tr",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GooglePlay",101:"VK",102:"Facebook",103:"Twitter"},t=a=>{let e="";switch(typeof a=="string"&&(a=Number(a)),a){case 0:e="";break;case 20:case 21:e="";break;case 1:e="";break;case 2:e="";break;case 3:e="";break;case 4:e="";break;case 5:e="";break;case 6:e="";break;case 7:e="";break;case 8:e="";break;case 9:e="";break;case null:e="";break}return e},n=a=>{let e="";switch(typeof a=="string"&&(a=Number(a)),a%10){case 0:e="";break;case 1:e="";break;case 2:e="";break}return e},i=(a,e)=>{switch(typeof a=="string"&&(a=Number(a)),a*1){case 1:case 4:case 5:case 6:case 8:case 9:return e}return""},u=(a,e,k)=>{switch(e*1){case 0:switch(k*1){case 2:a=`"${a}"`;break;case 3:a=`"!${a}"`;break;case 5:a=`"[${a}]"`;break;case 6:a=`"[!${a}]"`;break}break;case 1:a=`[${a}]`;break}return a},o=(a,e)=>{switch(e===null&&(e=6),a){case 1:e=3;break;case 2:e=2;break;case 5:e>1&&(e=1);break;default:[1,2,3,5,6].includes(e)||(e=3)}return e};c.genVolumeLabel=u,c.getDeviceGIcon=n,c.getLangLabel=i,c.getSearcherGIcon=t,c.prepareVolumeType=o,c.searchersNames=s,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-DzVLntpR.amd","../.chunks/core-iBztm1r-.amd","vue","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-mCCFbKT2.amd"],function(b,c,g,f,r,d){"use strict";if(typeof r>"u")var r=window.Vue;const s={0:"Yandex",20:"Yandex.com",21:"Yandex.com.tr",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GooglePlay",101:"VK",102:"Facebook",103:"Twitter"},t=a=>{let e="";switch(typeof a=="string"&&(a=Number(a)),a){case 0:e="";break;case 20:case 21:e="";break;case 1:e="";break;case 2:e="";break;case 3:e="";break;case 4:e="";break;case 5:e="";break;case 6:e="";break;case 7:e="";break;case 8:e="";break;case 9:e="";break;case null:e="";break}return e},n=a=>{let e="";switch(typeof a=="string"&&(a=Number(a)),a%10){case 0:e="";break;case 1:e="";break;case 2:e="";break}return e},i=(a,e)=>{switch(typeof a=="string"&&(a=Number(a)),a*1){case 1:case 4:case 5:case 6:case 8:case 9:return e}return""},u=(a,e,k)=>{switch(e*1){case 0:switch(k*1){case 2:a=`"${a}"`;break;case 3:a=`"!${a}"`;break;case 5:a=`"[${a}]"`;break;case 6:a=`"[!${a}]"`;break}break;case 1:a=`[${a}]`;break}return a},o=(a,e)=>{switch(e===null&&(e=6),a){case 1:e=3;break;case 2:e=2;break;case 5:e>1&&(e=1);break;default:[1,2,3,5,6].includes(e)||(e=3)}return e};c.genVolumeLabel=u,c.getDeviceGIcon=n,c.getLangLabel=i,c.getSearcherGIcon=t,c.prepareVolumeType=o,c.searchersNames=s,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=searchers.amd.js.map
@@ -1,7 +1,7 @@
1
- import "../.chunks/forms-DvSi_Mh8.es.js";
2
- import "../.chunks/core-DerSGhnf.es.js";
1
+ import "../.chunks/forms-y5m2XRDE.es.js";
2
+ import "../.chunks/core-L1cfoiCl.es.js";
3
3
  import "vue";
4
- import "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-BRv3Mpzj.es.js";
4
+ import "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-CJm53s-R.es.js";
5
5
  const k = {
6
6
  0: "Yandex",
7
7
  20: "Yandex.com",
@@ -1,2 +1,2 @@
1
- define(["require","exports","./check.amd","../.chunks/forms-BvGGRIzu.amd"],function(S,c,i,u){"use strict";if(typeof p>"u")var p=window.Vue;const h=e=>{e+="";let l=0;if(!e.length)return l;for(let a=0;a<e.length;a++){const n=e.charCodeAt(a);l=(l<<5)-l+n,l=l&l}return l<0&&(l*=-1),l},s=e=>/^\w+:\/\/([\w-]+\.)+[\w-]+(:\d+)?(\/|$)/.test(e),f=e=>{let l=e+"";l=l.replace("-","–");let a=l.split("."),n=a[0],o=a.length>1?"."+a[1]:"";if(n.replace(/[+–]/,"").length<=4)return l;const r=/(\d+)(\d{3})/;for(;r.test(n);)n=n.replace(r,"$1 $2");return n+o},d=e=>e===void 0?"":e.replace(/\r\n|\r|\n/g,"<br>"),g=(e,l=2,a=1e3,n="")=>{const o=Math.pow(10,l);let r=String(e);return Math.abs(e)>Math.pow(a,3)?r=Math.round(e/Math.pow(a,3)*o)/o+" <small>G"+n+"</small>":Math.abs(e)>Math.pow(a,2)?r=Math.round(e/Math.pow(a,2)*o)/o+" <small>M"+n+"</small>":Math.abs(e)>a?r=Math.round(e/a*o)/o+" <small>K"+n+"</small>":r=Math.round(e*o)/o+"",r=r.replace(/^(-?\d+)(\d{3})/,"$1 $2"),r},m=(e,l,a=1)=>{if(e==null)return"";if(e+="",l==null||e.length<=l)return e;if(a===0)e=e.substr(e.length-l,l),e="..."+e;else if(a===1){const n=e.substr(0,l/2),o=e.substr(e.length-l/2,Math.ceil(l/2));e=n+"..."+o}else a===2&&(e=e.substr(0,l),e=e+"...");return e},w=(e,l,a,n)=>{if(u.useI18nLang().value==="en")return e===1?a:l;const o=e%100,r=e%10;return o>=5&&o<=20||r===0?l:r===1?a:r>=2&&r<=4?n:r>=5&&r<=9?l:n},C=e=>{if(u.useI18nLang().value!="ru"||e=="")return e;const l=e.split(" ");return $.map(l,function(a,n){a=a+"а",a=a.replace("оа","о"),a=a.replace("аяа","ой"),a=a.replace("шийа","шого"),a=a.replace("ыйа","ого"),a=a.replace("йа","я"),a=a.replace("ьа","я"),a=a.replace("яа","и"),a=a.replace("оваа","овой"),a=a.replace("аа","ы"),a=a.replace("кия","кого"),a=a.replace("каи","кой"),l[n]=a}),e=l.join(" "),e},M=e=>{const l={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"j",з:"z",и:"i",й:"i",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"h",ц:"c",ч:"ch",ш:"sh",щ:"shch",ъ:"",ы:"y",ь:"",э:"e",ю:"u",я:"ya"},a=e.split(" ");return $.map(a,function(n,o){const r=[];for(let t=0;t<n.length;++t)r.push(l[n[t]]||l[n[t].toLowerCase()]==null&&n[t]||l[n[t].toLowerCase()].replace(/^(.)/,function(A){return A.toUpperCase()}));a[o]=r.join("")}),e=a.join(" "),e},b=e=>(typeof e=="string"&&(e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")),e),k=(e,l)=>{let a=null;switch(l.operator){case"CONTAINS":case"REGEXP":try{let n=l.values[0];l.operator!="REGEXP"&&(n=n.replace(/([()\[\]])/g,"\\$1")),a=new RegExp("("+n+")","gi")}catch{return e}break}return e=e.replace(a,'<b class="found">$1</b>'),e},y=e=>{var l;return(l=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:l.map(a=>a.toLowerCase()).join("_")},v=e=>`/controller/file/?src=${"/cloud/common/flags/"+e.toUpperCase()+".svg"}`,L=e=>{const l=i.getDomainRegexp(),a="(([\\/?\\w&=%+#;:-]*(\\.\\w+)?))*",n=new RegExp(`(^|[\\s>(),])([a-z0-9а-яё_.]+@${l}${a})`,"gui");e=e.replace(n,'$1<a href="mailto:$2" target="_blank" rel="noopener">↑[$2]↓</a>');const o=new RegExp(`(^|[\\s>(),])(https?://)?(${l}${a})`,"gui");return e=e.replace(o,'$1<a href="√$2$3" target="_blank" rel="nofollow noopener">$2$3</a>'),e=e.replaceAll("√http","http"),e=e.replaceAll("√","http://"),e=e.replaceAll(/(↑\[|]↓)/g,""),e},R=e=>e.charAt(0).toUpperCase()+e.slice(1),E=(e=20)=>{const l="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";let a="";for(let n=0;n<e;n++)a+=l[Math.floor(Math.random()*l.length)];return a};c.addCommasWhite=f,c.addLinkTags=L,c.camelToSnakeCase=y,c.ellipsis=m,c.genFlagLinkByCountryCode=v,c.genIntHash=h,c.getRandomHash=E,c.highlightHtml=k,c.htmlspecialchars=b,c.isUrl=s,c.nl2br=d,c.numberEnding=w,c.numberWithWord=g,c.rusToLatin=M,c.toCapitalize=R,c.toRoditPadej=C,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","./check.amd","../.chunks/forms-DzVLntpR.amd"],function(S,c,i,u){"use strict";if(typeof p>"u")var p=window.Vue;const h=e=>{e+="";let l=0;if(!e.length)return l;for(let a=0;a<e.length;a++){const n=e.charCodeAt(a);l=(l<<5)-l+n,l=l&l}return l<0&&(l*=-1),l},s=e=>/^\w+:\/\/([\w-]+\.)+[\w-]+(:\d+)?(\/|$)/.test(e),f=e=>{let l=e+"";l=l.replace("-","–");let a=l.split("."),n=a[0],o=a.length>1?"."+a[1]:"";if(n.replace(/[+–]/,"").length<=4)return l;const r=/(\d+)(\d{3})/;for(;r.test(n);)n=n.replace(r,"$1 $2");return n+o},d=e=>e===void 0?"":e.replace(/\r\n|\r|\n/g,"<br>"),g=(e,l=2,a=1e3,n="")=>{const o=Math.pow(10,l);let r=String(e);return Math.abs(e)>Math.pow(a,3)?r=Math.round(e/Math.pow(a,3)*o)/o+" <small>G"+n+"</small>":Math.abs(e)>Math.pow(a,2)?r=Math.round(e/Math.pow(a,2)*o)/o+" <small>M"+n+"</small>":Math.abs(e)>a?r=Math.round(e/a*o)/o+" <small>K"+n+"</small>":r=Math.round(e*o)/o+"",r=r.replace(/^(-?\d+)(\d{3})/,"$1 $2"),r},m=(e,l,a=1)=>{if(e==null)return"";if(e+="",l==null||e.length<=l)return e;if(a===0)e=e.substr(e.length-l,l),e="..."+e;else if(a===1){const n=e.substr(0,l/2),o=e.substr(e.length-l/2,Math.ceil(l/2));e=n+"..."+o}else a===2&&(e=e.substr(0,l),e=e+"...");return e},w=(e,l,a,n)=>{if(u.useI18nLang().value==="en")return e===1?a:l;const o=e%100,r=e%10;return o>=5&&o<=20||r===0?l:r===1?a:r>=2&&r<=4?n:r>=5&&r<=9?l:n},C=e=>{if(u.useI18nLang().value!="ru"||e=="")return e;const l=e.split(" ");return $.map(l,function(a,n){a=a+"а",a=a.replace("оа","о"),a=a.replace("аяа","ой"),a=a.replace("шийа","шого"),a=a.replace("ыйа","ого"),a=a.replace("йа","я"),a=a.replace("ьа","я"),a=a.replace("яа","и"),a=a.replace("оваа","овой"),a=a.replace("аа","ы"),a=a.replace("кия","кого"),a=a.replace("каи","кой"),l[n]=a}),e=l.join(" "),e},M=e=>{const l={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"j",з:"z",и:"i",й:"i",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"h",ц:"c",ч:"ch",ш:"sh",щ:"shch",ъ:"",ы:"y",ь:"",э:"e",ю:"u",я:"ya"},a=e.split(" ");return $.map(a,function(n,o){const r=[];for(let t=0;t<n.length;++t)r.push(l[n[t]]||l[n[t].toLowerCase()]==null&&n[t]||l[n[t].toLowerCase()].replace(/^(.)/,function(A){return A.toUpperCase()}));a[o]=r.join("")}),e=a.join(" "),e},b=e=>(typeof e=="string"&&(e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")),e),k=(e,l)=>{let a=null;switch(l.operator){case"CONTAINS":case"REGEXP":try{let n=l.values[0];l.operator!="REGEXP"&&(n=n.replace(/([()\[\]])/g,"\\$1")),a=new RegExp("("+n+")","gi")}catch{return e}break}return e=e.replace(a,'<b class="found">$1</b>'),e},y=e=>{var l;return(l=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:l.map(a=>a.toLowerCase()).join("_")},v=e=>`/controller/file/?src=${"/cloud/common/flags/"+e.toUpperCase()+".svg"}`,L=e=>{const l=i.getDomainRegexp(),a="(([\\/?\\w&=%+#;:-]*(\\.\\w+)?))*",n=new RegExp(`(^|[\\s>(),])([a-z0-9а-яё_.]+@${l}${a})`,"gui");e=e.replace(n,'$1<a href="mailto:$2" target="_blank" rel="noopener">↑[$2]↓</a>');const o=new RegExp(`(^|[\\s>(),])(https?://)?(${l}${a})`,"gui");return e=e.replace(o,'$1<a href="√$2$3" target="_blank" rel="nofollow noopener">$2$3</a>'),e=e.replaceAll("√http","http"),e=e.replaceAll("√","http://"),e=e.replaceAll(/(↑\[|]↓)/g,""),e},R=e=>e.charAt(0).toUpperCase()+e.slice(1),E=(e=20)=>{const l="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";let a="";for(let n=0;n<e;n++)a+=l[Math.floor(Math.random()*l.length)];return a};c.addCommasWhite=f,c.addLinkTags=L,c.camelToSnakeCase=y,c.ellipsis=m,c.genFlagLinkByCountryCode=v,c.genIntHash=h,c.getRandomHash=E,c.highlightHtml=k,c.htmlspecialchars=b,c.isUrl=s,c.nl2br=d,c.numberEnding=w,c.numberWithWord=g,c.rusToLatin=M,c.toCapitalize=R,c.toRoditPadej=C,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=string.amd.js.map
package/utils/string.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getDomainRegexp as u } from "./check.js";
2
- import { a as n } from "../.chunks/forms-DvSi_Mh8.es.js";
2
+ import { a as n } from "../.chunks/forms-y5m2XRDE.es.js";
3
3
  const i = (e) => {
4
4
  e += "";
5
5
  let l = 0;
@@ -1 +0,0 @@
1
- {"version":3,"file":"popup-B8NUff7S.es.js","sources":["../../src/components/component.ts","../../src/components/popup/lib/popup.globalEvents.ts","../../src/components/popup/lib/popup.ts"],"sourcesContent":["import DOM from '@/core/utils/dom';\n\n/**\n * Базовый компонент для js компонентов, не имеет отношения к Vue\n */\nclass Component {\n\n\tstatic componentName = 'Top';\n\n\tcomponentName: string | undefined; // имя класса компонента\n\tclassName: string | undefined; // имя css класса компонента\n\tuid: string | undefined; // уникальный id компонента\n\tel: HTMLElement | undefined; // элемент, связанный с компонентом\n\toptions = {}; // параметры компонента\n\n\tunmountEls: HTMLElement[] = [];\n\tunmountEvents: any[] = [];\n\n\t// переопредлять нельзя\n\t// если компонент инициирован, необходимо сразу его вернуть и выполнить reInit() вместо mount()\n\t// используется init вместо constructor, так как super constructor выполняется до Object.defineProperty() параметров класса\n\tinit(componentName: string, el: HTMLElement, options: object): Component | void {\n\t\tif (!el) {\n\t\t\tthrow componentName + ': el is undefined';\n\t\t}\n\n\t\tconst component = Component.getComponent(el, componentName);\n\n\t\tif (component) {\n\t\t\tcomponent.reInit(options);\n\n\t\t\treturn component;\n\t\t}\n\n\t\tthis.componentName = componentName;\n\t\tthis.className = 'top' + componentName[0].toUpperCase() + componentName.substring(1);\n\t\tthis.uid = this.componentName + (Math.random() + '').replace('.', '');\n\n\t\tthis._setComponent(el);\n\t\tthis.el = el;\n\t\tthis.el.classList.add(this.className);\n\t\tthis.options = Object.assign(this.options, options);\n\n\t\tthis.mount();\n\t}\n\n\t// получить инициированный компонент\n\tstatic getComponent(el: HTMLElement, componentName: string): any {\n\t\treturn DOM.storage(el, '#' + componentName);\n\t}\n\n\t// устанвоить компонент\n\t_setComponent(el: HTMLElement) {\n\t\tDOM.storage(el, '#' + this.componentName, this);\n\t}\n\n\t// функция подключения компонента\n\tmount(): void {\n\t\tthrow 'Please, add method mount() to component: ' + this.componentName;\n\t}\n\n\t// функция отключения компонента\n\tunmount(): void {\n\t\tDOM.storage(this.el, '#' + this.componentName, null);\n\n\t\tthis.unmountEls.forEach((el) => {\n\t\t\tel.remove();\n\t\t});\n\n\t\tthis.unmountEls = [];\n\n\t\tthis.unmountEvents.forEach((eventData) => {\n\t\t\teventData.el.removeEventListener(eventData.type, eventData.listener, eventData.options);\n\t\t});\n\n\t\tthis.unmountEvents = [];\n\t}\n\n\t// указание новые элементы, которые должны будут удалиться после unmount\n\tregisterElForUnmount(el: HTMLElement): void {\n\t\tthis.unmountEls.push(el);\n\t}\n\n\t// указание новые события, которые должны будут удалиться после unmount\n\taddEventListenerWithUnmount(\n\t\tel: HTMLElement | Document | Window,\n\t\ttype: keyof GlobalEventHandlersEventMap,\n\t\tlistener: (this: HTMLElement, e: Event) => any,\n\t\toptions?: any,\n\t): void {\n\t\tel.addEventListener(type, listener, options);\n\n\t\tthis.registerEventForUnmount(el, type, listener, options);\n\t}\n\n\t// указание новые события, которые должны будут удалиться после unmount\n\tregisterEventForUnmount(\n\t\tel: HTMLElement | Document | Window,\n\t\ttype: keyof GlobalEventHandlersEventMap,\n\t\tlistener: (this: HTMLElement, e: Event) => any,\n\t\toptions?: any,\n\t): void {\n\t\tconst eventData = {\n\t\t\tel: el,\n\t\t\ttype: type,\n\t\t\tlistener: listener,\n\t\t\toptions: options,\n\t\t};\n\n\t\tthis.unmountEvents.push(eventData);\n\t}\n\n\t// функция перенастройки уже подключенного компонента\n\treInit(_options: object): void {\n\t\tthrow 'Please, add method reInit() to component: ' + this.componentName;\n\t}\n\n\t// удалить элементы из DOM, но не из памяти\n\tstatic detach(nodes: NodeList | HTMLElement): void {\n\t\tif (nodes instanceof NodeList) {\n\t\t\tnodes.forEach((node) => node.parentElement?.removeChild(node));\n\t\t} else {\n\t\t\tconst el = nodes;\n\t\t\tel.parentElement?.removeChild(el);\n\t\t}\n\t}\n\n}\n\nexport default Component;\n","import Worker from '@/components/popup/lib/worker';\nimport DOM from '@/core/utils/dom';\n\n/**\n * Глобальные события, для реализации Popup\n * Автоматически инициируется при первой загрузке, не является выгружаемым модулем\n *\n * Если в меню встречает класс .preloader, то событие нажатия на кнопку через enter будет остановлено\n */\nclass GlobalEvents {\n\n\tprivate static isInited = false;\n\n\t/**\n\t * Добавить глобальные обработчики\n\t *\n\t * Добавляются на страницу один раз и навсегда\n\t */\n\tstatic init(): void {\n\t\tif (this.isInited) return;\n\n\t\tthis.isInited = true;\n\n\t\tdocument.addEventListener('click', this.onclick, { capture: true });\n\t\tdocument.addEventListener('keydown', this.onkeydown);\n\t}\n\n\t/**\n\t * Глобальный обработчик кликов\n\t *\n\t * Обрабатывает клики внутри Popup\n\t */\n\tprivate static onclick(e: Event): void {\n\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\t// элементы меню, клик по которым должен его закрыть\n\t\tconst elCloser = e.target.closest<HTMLElement>('.closer, a, .a, .top-button');\n\t\tif (elCloser) {\n\t\t\t// меню\n\t\t\tconst elPopup = e.target.closest<HTMLElement>('.top-popup-wrapper');\n\n\t\t\t// клик вне меню\n\t\t\tif (!elPopup) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// элемент имеет модификатор, запрещаюущий закрытие меню по клику на него\n\t\t\tif (elCloser.matches('.top-popup-noCloser')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// deprecated, ссылки с href=\".\" запрещены, они должны быть заменены на .top-popup_listItem-button\n\t\t\tif (elCloser.getAttribute('href') === '.') {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\t// клик по кнопке открытия другого меню\n\t\t\tif (e.target.matches('[data-top-popup]')) {\n\t\t\t\t// список меню, в котором был сделан клик\n\t\t\t\tconst elUl = e.target.closest<HTMLElement>('ul');\n\n\t\t\t\t// элемент меню, по которому был сделан клик\n\t\t\t\tconst elItem = e.target.closest<HTMLElement>('a, .a');\n\n\t\t\t\t// сделать элемент меню, по которому сделан клик активным\n\t\t\t\tif (elUl) {\n\t\t\t\t\telUl.querySelector('a.top-active, .a.top-active')?.classList.remove('top-active');\n\t\t\t\t}\n\n\t\t\t\tif (elItem) {\n\t\t\t\t\telItem.classList.add('top-active');\n\t\t\t\t}\n\n\t\t\t\t// не фиксировать далее события кликов при открытии другого popup\n\t\t\t\te.stopPropagation();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// закрыть меню\n\t\t\tWorker.close(elPopup);\n\t\t}\n\n\t\t// клик по фону меню\n\t\tif (e.target.matches('.top-popup-wrapper')) {\n\t\t\tconst elPopup = e.target;\n\n\t\t\tWorker.close(elPopup);\n\t\t}\n\t}\n\n\t/**\n\t * Глобальный обработчик нажатия кнопки на клавиатуре\n\t */\n\tprivate static onkeydown(e: KeyboardEvent): void {\n\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\tconst elPopup = e.target.closest<HTMLElement>('.top-popup-wrapper');\n\n\t\t// нажатие не в меню\n\t\tif (!elPopup) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector<HTMLElement>('ul.top-popup_content');\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tWorker.close(elPopup);\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Enter':\n\t\t\t\t// атоматическое нажатие кнопок при нажатии Enter\n\t\t\t\tif (!elUl) {\n\t\t\t\t\tif (DOM.querySelectorVisible(elPopup, '.preloader')) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// deprecated, старый код на сайте\n\t\t\t\t\tconst elBtn = DOM.querySelectorVisible(elPopup, '.top-popup_footer .go, .top-popup_footer [data-action]');\n\t\t\t\t\tif (elBtn instanceof HTMLElement) {\n\t\t\t\t\t\telBtn.click();\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Запуск клика последней кнопки, расположенной в footer'е Popup'а, нажатием клавиши Enter\n\t\t\t\t\tconst elFooterLastBtn = DOM.querySelectorVisibleLast(elPopup, '.top-popup_footer .top-button');\n\t\t\t\t\tif (elFooterLastBtn instanceof HTMLElement) {\n\t\t\t\t\t\telFooterLastBtn.click();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// перейти по ссылке по нажатию на Enter\n\t\t\t\t// данный функуционал игнорирует SPA\n\t\t\t\tconst elLink = DOM.querySelectorVisible(elPopup, 'li > a.top-active');\n\t\t\t\tif (elLink && elLink.getAttribute('href')) {\n\t\t\t\t\t// фокус может находиться на другой ссылке\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tlocation.href = elLink.getAttribute('href')!;\n\t\t\t\t}\n\n\t\t\t\t// кликнуть по элементу меню по нажатию на Enter\n\t\t\t\tconst elItem = elPopup.querySelector<HTMLElement>('li > .top-active');\n\t\t\t\tif (elItem instanceof HTMLElement) {\n\t\t\t\t\telItem.click();\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\t// управление стрелками\n\t\t\tcase 'ArrowUp':\n\t\t\tcase 'ArrowRight':\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tif (!elUl) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n\t\t\t\t\tconst elMoreVisible = DOM.querySelectorVisible(\n\t\t\t\t\t\telPopup,\n\t\t\t\t\t\t'ul.top-popup_content > li:not(.top-popup_liNoSelectable) > .top-active > .top-popup_listMore',\n\t\t\t\t\t);\n\t\t\t\t\tif (elMoreVisible) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tconst elItemActive = elPopup.querySelector<HTMLElement>('ul.top-popup_content > li:not(.top-popup_liNoSelectable) > .top-active')?.parentElement;\n\n\t\t\t\t// есть подменю\n\t\t\t\tif (e.key === 'ArrowRight' && elItemActive) {\n\t\t\t\t\t// const elItemMoreActive = elItemActive.querySelector<HTMLElement>('[data-top-popup].top-active');\n\t\t\t\t\t// if (elItemMoreActive) {\n\t\t\t\t\t// \treturn elItemMoreActive.click();\n\t\t\t\t\t// }\n\n\t\t\t\t\tconst elMore = elItemActive.querySelector<HTMLElement>('.top-active > .top-popup_listMore');\n\t\t\t\t\tif (elMore instanceof HTMLElement) {\n\t\t\t\t\t\treturn elMore.click();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst elsLiVisible = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li:not(.top-popup_liNoSelectable)');\n\t\t\t\tconst countLi = elsLiVisible.length;\n\n\t\t\t\tif (!countLi) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet index = -1;\n\t\t\t\tif (elItemActive) {\n\t\t\t\t\tindex = elsLiVisible.indexOf(elItemActive);\n\t\t\t\t}\n\n\t\t\t\tif (e.key === 'ArrowUp' || e.key === 'ArrowLeft') {\n\t\t\t\t\tindex--;\n\t\t\t\t} else {\n\t\t\t\t\tindex++;\n\t\t\t\t}\n\n\t\t\t\t// это первый элемен, \"Назад\" должен закрывать окно\n\t\t\t\tif (e.key === 'ArrowLeft' && index === -1) {\n\t\t\t\t\tif (e.target.matches('input')) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Worker.close(elPopup);\n\t\t\t\t}\n\n\t\t\t\t// это последний элемен, \"Вперед\" не должен ни чего делать\n\t\t\t\tif (e.key === 'ArrowRight' && index === countLi) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (index < 0) {\n\t\t\t\t\tindex = countLi - 1;\n\t\t\t\t}\n\n\t\t\t\tif (index > countLi - 1) {\n\t\t\t\t\tindex = 0;\n\t\t\t\t}\n\n\t\t\t\telPopup.querySelectorAll('ul.top-popup_content > li > .top-active').forEach(el => el.classList.remove('top-active'));\n\t\t\t\telsLiVisible[index].querySelector(':scope > a, :scope > .a')?.classList.add('top-active');\n\n\t\t\t\tWorker.scrollToActive(elPopup);\n\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n}\n\nexport default GlobalEvents;\n","import Core from '@/core/core/core';\nimport Component from '@/components/component';\nimport DOM from '@/core/utils/dom';\nimport Worker from '@/components/popup/lib/worker';\nimport GlobalEvents from '@/components/popup/lib/popup.globalEvents';\n\nimport css from '@/components/popup/popup/style/popup.css?inline';\nimport cssM from '@/components/popup/popup/style/popup.m.css?inline';\nimport cssPC from '@/components/popup/popup/style/popup.pc.css?inline';\nimport { useI18n } from '@/core/plugins/i18n';\n\nCore.insertStyleToPage(css);\nCore.insertStyleToPage(cssM, 'm');\nCore.insertStyleToPage(cssPC, 'pc');\n\nexport interface PopupOptions {\n\tpopup?: string,\n\tid?: string,\n\tp?: number,\n\tnotch?: boolean,\n\tclass?: string,\n\tposBy?: 'left' | 'right' | 'fixed' | Element,\n\tfrontSelector?: string,\n\tinvertX?: boolean,\n\topenByHover?: boolean,\n\tuseOriginal?: boolean,\n\ttransitionDuration?: number,\n\tisFullScreen?: boolean,\n}\n\n/**\n * Основной объект js компонента TopPopup\n *\n * Добавляет jQuery события на this.el, если jQuery загружен:\n *\n * - aftershow.top-menu-popup\n * - afterclose.top-menu-popup\n */\nexport class TopLibPopup extends Component {\n\n\tstatic componentName = 'TopPopup';\n\n\tdeclare el: HTMLElement; // элемент, вызвавший открытие Popup\n\telActiveByDefault: boolean | undefined; // элемент уже имеет класс top-active перед открытием окна\n\telPopup: HTMLElement | undefined; // Popup .top-popup-wrapper\n\telPopupInner: HTMLElement | undefined; // контентная часть Popup .top-popup\n\telPopupHeader: HTMLElement | undefined | null;\n\telPopupWidget: HTMLElement | undefined | null;\n\telPopupBody: HTMLElement | undefined | null;\n\telPopupFooter: HTMLElement | undefined | null;\n\telFront: HTMLElement | undefined | null;\n\n\tpopupParent: TopLibPopup | undefined;\n\n\t$: JQuery<HTMLElement> | undefined; // только, если есть jQuery\n\n\telStartPosition: HTMLElement | undefined | null; // используется для useOriginal\n\tshift = {\n\t\ttop: 0,\n\t\tleft: 0,\n\t};\n\tisClosed = false; // флаг того, что меню закрыто\n\tisFirstClick = true;\n\ttype: string | undefined; // selector или html\n\n\toptions: PopupOptions = {\n\t\tpopup: '', // selector, text\n\t\tp: 0, // положение меню (0 - над элементом, 1 - сверху, 2 - справа, 3 - снизу, 4 слева)\n\t\tnotch: false, // отображать ли клювик\n\n\t\tclass: '', // класс, добавляемый меню\n\n\t\tposBy: 'left', // способ привязки позиционирования меню (left/right - левый/правый край родителя, fixed - по документу)\n\t\tfrontSelector: '',\n\t\tinvertX: false, // базовая ордината - правая граница элемента, а не левая\n\t\topenByHover: false, // открывать при наведении\n\n\t\tuseOriginal: false, // использовать оригинальный шаблон, без клонирвоания (для сохранения состояния меню)\n\n\t\ttransitionDuration: 100, // значение прописано в css\n\n\t\tisFullScreen: false,\n\t};\n\n\tevents = {};\n\n\t/**\n\t * Создать Popup\n\t * @param el - элемент, открывающий меню\n\t * @param options\n\t */\n\tconstructor(el: HTMLElement, options: PopupOptions) {\n\t\tsuper();\n\n\t\tthis.init(TopLibPopup.componentName, el, options);\n\t}\n\n\tasync mount(): Promise<void> {\n\t\tif (!(this.el instanceof HTMLElement)) return;\n\t\tconst vueConnector = this.vueGetComponent();\n\n\t\tif (this.el.closest('.top-popup-wrapper')) this.popupParent = Worker.getPopup(this.el.closest('.top-popup-wrapper')!);\n\n\t\tawait this.mountJQuery();\n\n\t\tif (DOM.css(this.el, 'position') !== 'absolute') {\n\t\t\tthis.el.style.position = 'relative';\n\t\t}\n\n\t\tthis.el.dataset.topPopupOpened = 'opened';\n\t\tthis.elActiveByDefault = this.el.classList.contains('top-active');\n\t\tthis.el.classList.add('top-active');\n\n\t\tif (vueConnector) {\n\t\t\t// компонент vue Popup\n\t\t\tthis.type = 'vue';\n\n\t\t\tthis.options.popup = '';\n\t\t\tthis.elPopup = DOM.genEl('div', {}, this.options.popup);\n\t\t} else if (this.options.popup?.match(/^[#.]/)) {\n\t\t\t// selector\n\t\t\tthis.type = 'selector';\n\n\t\t\tthis.elPopup = document.querySelector<HTMLElement>(`${this.options.popup}.template`) || undefined;\n\t\t} else {\n\t\t\t// html\n\t\t\tthis.type = 'html';\n\n\t\t\tif (this.options.useOriginal) {\n\t\t\t\tthrow ('Option useOriginal not allowed for text templates');\n\t\t\t}\n\n\t\t\tthis.elPopup = DOM.genEl('div', {}, this.options.popup ?? '');\n\t\t}\n\n\t\tif (!this.elPopup || vueConnector?.opened) {\n\t\t\t// возможно шаблон не найден, так как он используется в уже открытом меню\n\t\t\tif (this.options.useOriginal || vueConnector?.opened) {\n\t\t\t\t// закрыть открытое меню\n\t\t\t\tif (vueConnector?.opened) {\n\t\t\t\t\tthis.elPopup = vueConnector.popup.elPopup;\n\t\t\t\t} else {\n\t\t\t\t\tthis.elPopup = document.querySelector<HTMLElement>(`${this.options.popup}.top-popup-wrapper-shown`) || undefined;\n\t\t\t\t}\n\n\t\t\t\tif (this.elPopup) {\n\t\t\t\t\tthis.el.dataset.topPopupOpened = '';\n\n\t\t\t\t\tif (!this.elActiveByDefault) {\n\t\t\t\t\t\tthis.el.classList.remove('top-active');\n\t\t\t\t\t}\n\n\t\t\t\t\tWorker.close(this.elPopup);\n\n\t\t\t\t\t// повторит попытку открыть меню\n\t\t\t\t\tsetTimeout(() => this.mount(), this.options.transitionDuration);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow ('Option useOriginal state allowed only elements .template');\n\t\t\t}\n\n\t\t\t// возможно вместо шаблона используется другой элемент\n\t\t\tthis.elPopup = document.querySelector<HTMLElement>(`${this.options.popup}:not(.top-popup-wrapper)`) || undefined;\n\t\t}\n\n\t\tif (!this.elPopup) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.useOriginal) {\n\t\t\tthis.elStartPosition = this.elPopup.closest<HTMLElement>('.top-popup-el-start-position');\n\t\t\tif (!this.elStartPosition) {\n\t\t\t\tthis.elStartPosition = DOM.wrap(this.elPopup, 'i');\n\t\t\t\tthis.elStartPosition.classList.add('top-popup-el-start-position', 'hidden');\n\t\t\t}\n\t\t} else {\n\t\t\tthis.elPopup = this.elPopup.cloneNode(true) as HTMLElement;\n\n\t\t\t// вывод в меню копии произвольного элемента\n\t\t\tif (this.type === 'selector' && !this.elPopup.matches('.template')) {\n\t\t\t\tthis.elPopup.classList.remove('hidden');\n\n\t\t\t\tif (!this.elPopup.querySelector(':scope > .top-popup_content')) {\n\t\t\t\t\tthis.elPopup.classList.add('top-popup_content');\n\t\t\t\t}\n\n\t\t\t\tthis.elPopup = DOM.wrap(this.elPopup, 'div');\n\t\t\t}\n\n\t\t\tif (this.type === 'html') {\n\t\t\t\tif (!this.elPopup.querySelector(':scope > .top-popup_content')) {\n\t\t\t\t\tthis.elPopup.classList.add('top-popup_content');\n\n\t\t\t\t\tthis.elPopup = DOM.wrap(this.elPopup, 'div');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// вложенный Popup\n\t\t\tif (this.type === 'selector' && !this.elPopup.matches('.template') || this.type === 'html' || this.type === 'vue') {\n\t\t\t\tDOM.querySelectorAllArray(this.elPopup, '[data-top-popup]').forEach(el => {\n\t\t\t\t\tif (el instanceof HTMLElement) el.dataset.topPopupPosBy = 'fixed';\n\t\t\t\t});\n\t\t\t\tDOM.querySelectorAllArray(this.elPopup, '.top-popup-wrapper').forEach(el => el.remove());\n\t\t\t}\n\t\t}\n\n\t\tWorker.decoratorBeforeOpen(this);\n\n\t\tif (vueConnector) {\n\t\t\tthis.options.class = vueConnector.classRef.value;\n\t\t\tif (vueConnector.transitionDurationRef.value !== undefined) {\n\t\t\t\tthis.options.transitionDuration = vueConnector.transitionDurationRef.value;\n\n\t\t\t\tif (this.elPopup instanceof HTMLElement) {\n\t\t\t\t\tthis.elPopup.style.setProperty(\n\t\t\t\t\t\t'--top-popup-transition-delay',\n\t\t\t\t\t\tthis.options.transitionDuration + 'ms',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.elPopupInner = document.createElement('div');\n\t\tthis.elPopupInner.classList.add('top-popupPanel', 'top-popup');\n\n\t\twhile (this.elPopup.firstChild) {\n\t\t\tthis.elPopupInner.appendChild(this.elPopup.firstChild);\n\t\t}\n\n\t\tthis.elPopup.append(this.elPopupInner);\n\n\t\tthis.elPopup.classList.add('top-popup-wrapper');\n\n\t\tif (this.options.class) {\n\t\t\tconst classes = this.options.class.split(' ');\n\t\t\tthis.elPopup.classList.add(...classes);\n\t\t}\n\n\t\tif (this.options.notch) {\n\t\t\tthis.elPopup.classList.add('with_notch');\n\t\t\tthis.elPopup.insertAdjacentHTML('beforeend', '<i class=\"notch notch-border\"></i><i class=\"notch\"></i>');\n\t\t}\n\n\t\tawait this.vueOpen();\n\n\t\tthis.elPopupHeader = this.elPopupInner.querySelector<HTMLElement>('.top-popup_header');\n\t\tthis.elPopupWidget = this.elPopupInner.querySelector<HTMLElement>('.top-popup_widget');\n\t\tthis.elPopupBody = this.elPopupInner.querySelector<HTMLElement>('.top-popup_content');\n\t\tthis.elPopupFooter = this.elPopupInner.querySelector<HTMLElement>('.top-popup_footer');\n\n\t\tconst existsWidgetSearch = !!this.elPopup.querySelector('[data-widget=\"search\"]');\n\n\t\tif (this.options.isFullScreen && !existsWidgetSearch) {\n\t\t\tconst i18n = useI18n();\n\n\t\t\tif (!this.elPopupHeader && i18n.Common.Close) {\n\t\t\t\tthis.elPopupHeader = DOM.genEl('i', { class: 'top-popup_header' });\n\t\t\t\tthis.elPopupInner.prepend(this.elPopupHeader);\n\n\t\t\t\tthis.elPopupHeader.prepend(DOM.genEl('i', { class: 'a closer' }, i18n.Common.Close));\n\t\t\t\tthis.elPopupHeader.append(DOM.genEl('i', { class: 'top-popup_headerButton' }));\n\t\t\t}\n\t\t}\n\n\t\tDOM.storage(this.elPopup, TopLibPopup.componentName, this);\n\n\t\tif (this.options.frontSelector) {\n\t\t\tthis.elFront = document.querySelector<HTMLElement>(this.options.frontSelector);\n\t\t}\n\t\tif (!this.elFront) {\n\t\t\tthis.elFront = this.el.closest<HTMLElement>('.top-popup-front');\n\t\t}\n\t\tif (!this.elFront) {\n\t\t\tthis.elFront = document.body;\n\t\t}\n\n\t\tif (this.elPopup instanceof HTMLElement) {\n\t\t\tthis.elPopup.style.width = this.el.offsetWidth + 'px';\n\t\t\tthis.elPopup.style.height = this.el.offsetHeight + 'px';\n\t\t\tthis.elPopup.style.top = this.el.offsetTop + 'px';\n\t\t\tthis.elPopup.style.right = parseInt(this.el.style.right || '0') + 'px';\n\t\t\tthis.elPopup.style.bottom = parseInt(this.el.style.bottom || '0') + 'px';\n\t\t}\n\n\t\tthis.el.parentElement?.insertBefore(this.elPopup, this.el);\n\t\tthis.elPopup.classList.remove('template');\n\n\t\tif (this.options.invertX) {\n\t\t\tthis.elPopup.classList.add('invert-x');\n\t\t}\n\n\t\tlet fromTop = !!this.el.closest('.modal-header');\n\t\tif (!fromTop) {\n\t\t\tfromTop = !!this.el.closest('#top_panel');\n\t\t}\n\t\tif (!fromTop) {\n\t\t\tfromTop = !!this.el.closest('#secondmenu');\n\t\t}\n\t\tif (fromTop) {\n\t\t\tthis.elPopup.classList.add('p-from-top');\n\t\t}\n\n\t\t// появление с анимацией\n\t\tsetTimeout(() => this.elPopup?.classList.add('top-popup-wrapper-shown'));\n\n\t\tif (this.elFront && !this.elFront.matches('body')) {\n\t\t\tthis.elFront.append(this.elPopup);\n\n\t\t\tthis.shift.top = DOM.offset(this.el).top - this.el.offsetTop - DOM.offset(this.elFront).top;\n\t\t\tthis.shift.left = DOM.offset(this.el).left - this.el.offsetLeft - DOM.offset(this.elFront).left;\n\n\t\t\t// position() не учитывает margin, замечено для flex\n\t\t\tthis.shift.top -= parseInt(this.el.style['margin-top'] || 0);\n\t\t\tthis.shift.left -= parseInt(this.el.style['margin-left'] || 0);\n\n\t\t\tif (this.elPopup instanceof HTMLElement) {\n\t\t\t\tthis.elPopup.style.top = parseInt(this.elPopup.style.top || '0') + this.shift.top + 'px';\n\t\t\t\tthis.elPopup.style.left = parseInt(this.elPopup.style.left || '0') + this.shift.left + 'px';\n\t\t\t}\n\t\t}\n\n\t\tif (this.$ && Core.$) {\n\t\t\tthis.$.trigger('aftershow.top-menu-popup', [Core.$(this.elPopup)]);\n\t\t}\n\n\t\tthis.recalcPosition();\n\n\t\tthis.elPopup.setAttribute('tabindex', '0');\n\t\tthis.focus();\n\n\t\tWorker.decoratorAfterOpen(this);\n\n\t\tthis.mountEvents();\n\t}\n\n\tasync mountJQuery() {\n\t\tif (!Core.$) return;\n\n\t\tthis.$ = Core.$(this.el);\n\t}\n\n\t/**\n\t * Выполнить фокусировку на нужный элемент после открытия окна\n\t */\n\tfocus(): void {\n\t\tlet el: Element | null;\n\n\t\tif (this.elPopup) {\n\t\t\tel = DOM.querySelectorVisible(this.elPopup, '.top-popup-autofocus');\n\n\t\t\t// поле ввода\n\t\t\tif (!el) {\n\t\t\t\tel = DOM.querySelectorVisible(this.elPopup, ':read-write, select:not(:disabled)');\n\t\t\t}\n\n\t\t\t// кнопка\n\t\t\tif (!el) {\n\t\t\t\tel = DOM.querySelectorVisible(this.elPopup, '.top-popup_footer .top-button');\n\t\t\t}\n\n\t\t\tif (!el) {\n\t\t\t\tel = this.elPopup;\n\t\t\t}\n\n\t\t\t// выполнить фокусировку сразу, для применения необъодимых стилей\n\t\t\tif (el instanceof HTMLElement) el.focus();\n\n\t\t\t// выполнить фокусировку после завершения анимации открытия popup\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (el instanceof HTMLElement) el.focus();\n\t\t\t}, this.options.transitionDuration);\n\t\t}\n\t}\n\n\tmountEvents(): void {\n\t\t// закрытие при клике вне контекстного меню\n\t\tthis.addEventListenerWithUnmount(document, 'mousedown', (e) => this.onMousedown(e as MouseEvent));\n\n\t\tif (this.elPopup && this.elPopupInner) {\n\t\t\t// закрыть другие меню\n\t\t\tthis.addEventListenerWithUnmount(this.elPopup, 'focus', (e) => this.onFocus(e as FocusEvent));\n\n\t\t\t// автоматическое закрытие при отведении мыши\n\t\t\tif (this.options.openByHover) {\n\t\t\t\tthis.addEventListenerWithUnmount(this.elPopup, 'mouseleave', (e) => this.onMouseleave(e as MouseEvent));\n\t\t\t\tthis.addEventListenerWithUnmount(this.elPopupInner, 'mouseleave', (e) => this.onMouseleave(e as MouseEvent));\n\t\t\t}\n\t\t}\n\n\t\t// не скроллить страницу\n\t\tif (this.options.isFullScreen && this.elPopupBody) {\n\t\t\tthis.addEventListenerWithUnmount(this.elPopupBody, 'touchmove', (e) => this.onTouchmove(e as TouchEvent));\n\t\t}\n\t}\n\n\t/**\n\t * Обработка клика вне окна\n\t */\n\tprivate onMousedown(e: MouseEvent): void {\n\t\t// // не оригинальное событие\n\t\t// if (!e || !e.originalEvent || !e.originalEvent.isTrusted) {\n\t\t// \treturn;\n\t\t// }\n\n\t\t// Popup уже закрыт\n\t\tif (!this.elPopup || !(e.target instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// клик на внешнем элементе\n\t\tif (!this.isFirstClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isFirstClick = false;\n\t\tsetTimeout(() => this.isFirstClick = true);\n\n\t\t// клик не основной кнопкой мыши\n\t\tif (e instanceof MouseEvent && e.button !== 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t// открыто другое меню с posBy = fixed, сначала должно быть закрыто оно\n\t\tlet elPopupOpened = DOM.querySelectorVisibleLast(document.body, ':scope > .top-popup-wrapper');\n\t\tif (elPopupOpened && elPopupOpened !== this.elPopup) {\n\t\t\treturn;\n\t\t}\n\n\t\t// открыто другое меню в top-popup-front, сначала должно быть закрыто оно\n\t\tif (e.target.closest('.top-popup-front')) {\n\t\t\telPopupOpened = DOM.querySelectorVisibleLast(e.target.closest('.top-popup-front')!, ':scope > .top-popup-wrapper');\n\n\t\t\tif (elPopupOpened && elPopupOpened !== this.elPopup) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// клик внутри этого меню\n\t\tif (this.elPopup.contains(e.target)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// клик вне родительского диалогового окна\n\t\tif (this.elPopup.closest('.ui-dialog') && !e.target.closest('.ui-dialog')) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (Worker.decoratorIsIgnoreOuterClick(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tWorker.close(this.elPopup);\n\t}\n\n\t/**\n\t * Закрыть другие Popup при фокусе на элемент формы в текущем\n\t */\n\tprivate onFocus(e: FocusEvent): void {\n\t\tif (e.target instanceof Element && e.target.matches('input')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// // не оригинальное событие\n\t\t// if (!e || !e.originalEvent || !e.originalEvent.isTrusted) {\n\t\t// \treturn;\n\t\t// }\n\n\t\t// это окно уже закрывается\n\t\tif (this.isClosed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elsPopups = Worker.getAllVisible();\n\t\telsPopups.forEach(elPopup => {\n\t\t\t// фокус внутри этого окна\n\t\t\tif (this.elPopup?.contains(elPopup)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// это Popup из которого был открыт Popup с фокусом\n\t\t\t// глубина вложенности: до 3 подменю\n\t\t\tif (\n\t\t\t\tthis.popupParent?.elPopup === elPopup ||\n\t\t\t\tthis.popupParent?.popupParent?.elPopup === elPopup\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tWorker.close(elPopup);\n\t\t});\n\t}\n\n\t/**\n\t * Закрыть Popup при отведении мыши\n\t */\n\tprivate onMouseleave(_e: MouseEvent): void {\n\t\tsetTimeout(() => {\n\t\t\tif (this.elPopupInner && this.elPopupInner.matches(':hover') || !this.elPopup) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tWorker.close(this.elPopup);\n\t\t}, 100);\n\t}\n\n\t/**\n\t * Контроль положения Popup при fixed позиционировании\n\t */\n\tprivate onResize(): void {\n\t\t// на android при вызове метода append сбрасывается фокус с input внутри this.elPopup\n\t\tif (this.elPopup && this.elPopup.parentElement !== document.body) {\n\t\t\tdocument.body.append(this.elPopup);\n\t\t}\n\n\t\tif (this.elPopup instanceof HTMLElement) {\n\t\t\tthis.elPopup.style.top = DOM.offset(this.el).top + 'px';\n\t\t\tthis.elPopup.style.left = DOM.offset(this.el).left + 'px';\n\t\t}\n\t}\n\n\tunmount(): void {\n\t\tsuper.unmount();\n\n\t\tif (this.el instanceof HTMLElement) this.el.dataset.topPopupOpened = '';\n\t\tif (!this.elActiveByDefault) {\n\t\t\tthis.el.classList.remove('top-active');\n\t\t}\n\n\t\tlet style = this.el.getAttribute('style');\n\t\tif (style) {\n\t\t\tstyle = style.replace(/position:[^;]*;?/g, '');\n\t\t\tthis.el.setAttribute('style', style);\n\t\t}\n\t}\n\n\t// контроль за положением Popup, чтобы оно не вылезало за пределы документа\n\trecalcPosition(pForce?: typeof this.options.p): void {\n\t\tif (!(this.elPopup instanceof HTMLElement)) return;\n\n\t\tlet p = pForce ?? this.options.p;\n\t\tlet leftPos: number;\n\n\t\tif (this.el instanceof HTMLElement) {\n\t\t\tthis.elPopup.style.height = this.el.offsetHeight + 'px';\n\n\t\t\tthis.elPopup.classList.remove('p0', 'p1', 'p2', 'p3', 'p4');\n\t\t\tthis.elPopup.classList.add('p' + p);\n\n\t\t\tswitch (this.options.posBy) {\n\t\t\t\tcase 'left':\n\t\t\t\t\tleftPos = this.el.offsetLeft + parseInt(this.el.style['margin-left'] || '0');\n\t\t\t\t\tleftPos += this.shift.left;\n\t\t\t\t\tthis.elPopup.style.left = leftPos + 'px';\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'right':\n\t\t\t\t\tif (!(this.el.offsetParent instanceof HTMLElement)) break;\n\n\t\t\t\t\tleftPos = this.el.offsetLeft + parseInt(this.el.style['margin-left'] || '0');\n\t\t\t\t\tthis.elPopup.style.right = this.el.offsetParent.offsetWidth - this.el.offsetWidth - leftPos + 'px';\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'fixed':\n\t\t\t\t\tthis.addEventListenerWithUnmount(window, 'resize', () => this.onResize());\n\n\t\t\t\t\tthis.onResize();\n\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.options.posBy?.append(this.elPopup);\n\t\t\t}\n\t\t}\n\n\t\t// контроль за пложением Popup, чтобы оно не вылезало за пределы документа\n\t\tconst boundingClientRect = this.elPopup.getBoundingClientRect();\n\t\tthis.elPopup.style.setProperty('--top-popup-height', this.elPopup.offsetHeight + 'px');\n\t\tthis.elPopup.style.setProperty('--top-popup-right-bounding', boundingClientRect.right + 'px');\n\t\tthis.elPopup.style.setProperty('--top-popup-bottom-bounding', boundingClientRect.bottom + 'px');\n\t\tthis.elPopup.style.setProperty('--top-popup-top', boundingClientRect.top + 'px');\n\t\tthis.elPopup.style.setProperty('--top-popup-left', boundingClientRect.left + 'px');\n\n\t\tif (this.elPopupInner instanceof HTMLElement) {\n\t\t\tthis.elPopupInner.style.maxWidth = 'unset';\n\t\t\tthis.elPopupInner.style.maxHeight = 'unset';\n\t\t}\n\n\t\tlet outTop = false;\n\t\tlet outRight = false;\n\t\tlet outBottom = false;\n\t\tlet outLeft = false;\n\n\t\t// имеет ли смысл прикреплять окно к другой стороне кнопки\n\t\tlet usefulInvertX = boundingClientRect.left > window.innerWidth / 2;\n\t\tlet usefulInvertY = boundingClientRect.top > window.innerHeight / 2;\n\n\t\tif (p === 4) {\n\t\t\tusefulInvertX = !usefulInvertX;\n\t\t}\n\n\t\tif (p === 1) {\n\t\t\tusefulInvertY = !usefulInvertY;\n\t\t}\n\n\t\tconst contentBoundingClientRect = this.elPopupInner?.getBoundingClientRect();\n\n\t\tlet contentRight: number;\n\t\tlet contentBottom: number;\n\n\t\tif (contentBoundingClientRect) {\n\t\t\tcontentRight = window.innerWidth - contentBoundingClientRect.right;\n\t\t\tcontentBottom = window.innerHeight - contentBoundingClientRect.bottom;\n\n\t\t\tconst margin = 8;\n\n\t\t\tif (contentBoundingClientRect.top < margin) {\n\t\t\t\toutTop = true;\n\t\t\t}\n\n\t\t\tif (contentRight < margin) {\n\t\t\t\toutRight = true;\n\t\t\t}\n\n\t\t\tif (contentBottom < margin) {\n\t\t\t\toutBottom = true;\n\t\t\t}\n\n\t\t\tif (contentBoundingClientRect.left < margin) {\n\t\t\t\toutLeft = true;\n\t\t\t}\n\t\t}\n\n\t\tif (outTop && (p === 0 || p === 1) && usefulInvertY) {\n\t\t\tp = 3;\n\t\t}\n\n\t\tif (outBottom && p === 3 && usefulInvertY) {\n\t\t\tp = 1;\n\t\t}\n\n\t\tif (outRight && p === 2 && usefulInvertX) {\n\t\t\tp = 4;\n\t\t}\n\n\t\tif (outLeft && p === 4 && usefulInvertX) {\n\t\t\tp = 2;\n\t\t}\n\n\t\tif (outRight && (p === 0 || p === 1 || p === 3)) {\n\t\t\tthis.elPopup.classList.add('invert-x');\n\t\t}\n\n\t\tif (outBottom && (p === 2 || p === 4) && usefulInvertY) {\n\t\t\t// меню справа может перемещаться вверх, толкьо если есть место слева\n\t\t\tif (p === 2 && !usefulInvertX) {\n\t\t\t\tthis.elPopup.classList.add('invert-y');\n\t\t\t}\n\n\t\t\t// меню слева перемещаясь вверх, должно открываться влево\n\t\t\tif (p === 4 && !usefulInvertX) {\n\t\t\t\tthis.elPopup.classList.add('invert-x');\n\t\t\t}\n\n\t\t\tif (!this.elPopup.matches('.invert-y')) {\n\t\t\t\tp = 1;\n\t\t\t}\n\t\t}\n\n\t\tthis.elPopup.classList.remove('p0', 'p1', 'p2', 'p3', 'p4');\n\t\tthis.elPopup.classList.add('p' + p);\n\n\t\tif (this.elPopupInner instanceof HTMLElement) {\n\t\t\tthis.elPopupInner.style.maxWidth = '';\n\t\t\tthis.elPopupInner.style.maxHeight = '';\n\t\t}\n\n\t\t// if (this.elPopupBody instanceof HTMLElement) {\n\t\t// \t// отобразить popup по вертикали с другой стороны, если с другой стороны больше места\n\t\t// \tconst hasScroll = this.elPopupBody.offsetHeight < this.elPopupBody.scrollHeight;\n\t\t// \tvd(this.elPopupBody.scrollHeight);\n\t\t// \tvd(this.elPopupBody.offsetHeight);\n\t\t// \tif (hasScroll && pForce === undefined) {\n\t\t// \t\tconst contentBoundingClientRect = this.elPopupBody?.getBoundingClientRect();\n\t\t// \t\tif (\n\t\t// \t\t\tp === 1 && contentBoundingClientRect.top * 2 < contentBoundingClientRect.bottom ||\n\t\t// \t\t\tp === 3 && contentBoundingClientRect.bottom * 2 < contentBoundingClientRect.top\n\t\t// \t\t) {\n\t\t// \t\t\tthis.recalcPosition(p === 1 ? 3 : 1);\n\t\t//\n\t\t// \t\t\treturn;\n\t\t// \t\t}\n\t\t// \t}\n\t\t// }\n\n\t\tWorker.scrollToActive(this.elPopup);\n\t};\n\n\tonTouchmove(e: TouchEvent): void {\n\t\tif (e.currentTarget instanceof HTMLElement && e.target instanceof HTMLElement) {\n\t\t\t// разрешить горизональный скролл\n\t\t\tlet hasScrollX = e.currentTarget.scrollWidth > e.currentTarget.offsetWidth;\n\t\t\tif (hasScrollX) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (e.target.parentElement?.scrollWidth && e.target.parentElement?.offsetWidth) {\n\t\t\t\t// разрешить горизональный скролл\n\t\t\t\tlet hasScrollX2 = e.target.parentElement.scrollWidth > e.target.parentElement?.offsetWidth;\n\t\t\t\tif (hasScrollX2) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!e.currentTarget.matches('.has_scroll')) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\tclose(): void {\n\t\tif (this.isClosed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isClosed = true;\n\n\t\tif (this.$ && Core.$ && this.elPopup) {\n\t\t\tthis.$.trigger('afterclose.top-menu-popup', [Core.$(this.elPopup)]);\n\t\t}\n\n\t\tif (Worker.noClose) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.unmount();\n\n\t\tthis.elPopup?.classList.add('top-popup-wrapper-closed');\n\n\t\tsetTimeout(() => {\n\t\t\tthis.vueClose();\n\n\t\t\tif (!this.elPopup) return;\n\n\t\t\tif (this.options.useOriginal) {\n\t\t\t\tthis.elPopup.removeAttribute('style');\n\t\t\t\tthis.elPopup.classList.remove('top-popup-wrapper-shown', 'top-popup-wrapper-closed');\n\t\t\t\tthis.elPopup.classList.add('template');\n\t\t\t\tthis.elStartPosition?.append(this.elPopup);\n\n\t\t\t\tthis.elPopup.querySelector('div.top-popup_content.top-column')?.classList.remove('top-column');\n\t\t\t\tthis.elPopup.querySelector('.notch-border')?.remove();\n\t\t\t\tthis.elPopup.querySelector('.notch')?.remove();\n\n\t\t\t\tthis.elPopupInner?.replaceWith(...this.elPopupInner.childNodes);\n\n\t\t\t\tDOM.storageClear(this.elPopup);\n\t\t\t} else {\n\t\t\t\tDOM.storageClear(this.elPopup);\n\n\t\t\t\tthis.elPopup.remove();\n\t\t\t\tdelete this.elPopup;\n\t\t\t}\n\n\t\t\tconst elsPopups = Worker.getAllVisible();\n\t\t\tconst elPopupLast = elsPopups.length && elsPopups[elsPopups.length - 1];\n\n\t\t\tif (elPopupLast) {\n\t\t\t\tWorker.getPopup(elPopupLast).focus();\n\t\t\t} else {\n\t\t\t\tdocument.documentElement.classList.remove('with_popup');\n\t\t\t}\n\t\t}, this.options.transitionDuration);\n\t}\n\n\tasync vueOpen(): Promise<void> {\n\t\tawait this.vueGetComponent()?.onOpen(this);\n\t}\n\n\tvueClose(): void {\n\t\tthis.vueGetComponent()?.onClose(this);\n\t}\n\n\t// получить vueConnectors компонента Popup\n\tvueGetComponent() {\n\t\tif (this.el instanceof HTMLElement && this.options.id) return Worker.vueConnectors.get(this.options.id);\n\t}\n}\n\nGlobalEvents.init();\n"],"names":["Component","componentName","el","options","component","DOM","eventData","type","listener","_options","nodes","node","_a","GlobalEvents","e","elCloser","elPopup","elUl","elItem","Worker","elBtn","elFooterLastBtn","elLink","elItemActive","elMore","elsLiVisible","countLi","index","_b","Core","css","cssM","cssPC","TopLibPopup","vueConnector","classes","existsWidgetSearch","i18n","useI18n","fromTop","elPopupOpened","_d","_c","_e","style","pForce","leftPos","boundingClientRect","outTop","outRight","outBottom","outLeft","usefulInvertX","usefulInvertY","contentBoundingClientRect","contentRight","contentBottom","margin","elsPopups","elPopupLast"],"mappings":"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"}