@topvisor/ui 1.0.23-dev.6 → 1.0.25

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.
@@ -38,6 +38,8 @@ export interface Props {
38
38
  forFrequency?: boolean;
39
39
  /**
40
40
  * Добавить элемент `Автовыбор` с ключем `-2`, который в API заменяется на нужный ключ в зависимости от контекста
41
+ *
42
+ * Обратите внимание, что значение `-2` также используется для ключа ПС и индекса Региона не настроенных в проекте
41
43
  */
42
44
  autoRegion?: boolean;
43
45
  /**
@@ -1,5 +1,18 @@
1
1
  import { Region, SearcherIndexed } from '../selectorRegion';
2
+ /**
3
+ * Ключ ПС - для выбора нескольких ПС или регионов
4
+ */
5
+ export declare const searhcerCompareKey = -1;
6
+ /**
7
+ * Ключ ПС или индекса Региона, используется для ПС или Региона, не настроенных в проекте
8
+ *
9
+ * Также, используется для API с возможностью не указывать регион, см. `props.autoRegion`
10
+ */
2
11
  export declare const dummyIndex = -2;
12
+ /**
13
+ * Регион - без региона
14
+ */
15
+ export declare const globalRegionIndex = -1;
3
16
  export declare const searchersNames: {
4
17
  0: string;
5
18
  1: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@topvisor/ui",
3
3
  "private": false,
4
- "version": "1.0.23-dev.6",
4
+ "version": "1.0.25",
5
5
  "type": "module",
6
6
  "description": "Topvisor UI-kit Vue",
7
7
  "author": "Topvisor",
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-B4wnA2qg.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-Yoht7Zz1.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-DpQWqw0S.amd","../.chunks/utils-C-3nlmxS.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],function(ee,T,e,x,b,te,ne,q,E,oe){"use strict";if(typeof e>"u")var e=window.Vue;const le={class:"top-selectorCompetitors"},ae={class:"top-ellipsis1"},re=e.defineComponent({__name:"selectorCompetitors",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const o=n,r=e.useModel(n,"modelValue"),t=e.computed(()=>{if(o.showSelectAllItem)return{icon:"",title:x.useI18n().Common.Select_all,value:"all",content:""}});return(d,l)=>(e.openBlock(),e.createElementBlock("div",le,[e.unref(x.Core).state.isMobile?(e.openBlock(),e.createBlock(b._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(u=>{var f;return u.value===((f=r.value)==null?void 0:f[0])}))==null?void 0:a.content),1)]}),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.items,(a,u)=>{var f;return e.openBlock(),e.createBlock(b._sfc_main$1,{class:e.normalizeClass({"top-active":(f=r.value)==null?void 0:f.includes(a.value)}),"data-top-icon":a.icon,title:a.title,onClick:()=>r.value=[a.value]},{default:e.withCtx(()=>[e.createElementVNode("span",ae,e.toDisplayString(a.content),1)]),_:2},1032,["class","data-top-icon","title","onClick"])}),256))]),_:1})):(e.openBlock(),e.createBlock(te._sfc_main,{key:1,modelValue:r.value,"onUpdate:modelValue":l[0]||(l[0]=a=>r.value=a),items:d.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:t.value},null,8,["modelValue","items","selectAllItem"]))]))}}),k=-2,ie={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},L={key:k,name:"--",index:k},j={key:k,name:"--",regions:[L],regionByIndex:new Map([[k,L]])},A={key:k,name:"Autoselect",index:k},P={key:k,name:"Autoselect",regions:[A],regionByIndex:new Map([[k,A]])},J={countryCode:"00",depth:1,device:0,key:-1,index:-1,lang:"ru",name:"Without region"},de=()=>(A.name=x.useI18n().Common.Autoselect,A),se=()=>(de(),P.name=x.useI18n().Common.Autoselect,console.log(P),P),ue=()=>(J.name=x.useI18n().Keywords.Without_region,J),U=(n=!1,o=!1,r=[])=>{let t;return n?t=ce(r):t=G(r),o&&t.set(k,se()),t.size||t.set(k,j),t},G=(n,o=!0,r=[],t=!1)=>{const d=new Map;return n.forEach(l=>{if(!l.enabled||t&&typeof l.key=="number"&&l.key>1)return;const a={...l};a.regionByIndex=new Map,l.regions&&l.regions.forEach(u=>{if(o&&!u.enabled)return;const f={...u};a.regionByIndex.set(f.index,f)}),!a.regionByIndex.size&&!r.length&&a.regionByIndex.set(L.index,L),typeof a.key=="number"&&d.set(a.key,a)}),r.forEach(l=>{if(d.has(l))return;const a={key:l,name:ie[l],regions:[],regionByIndex:new Map};d.set(a.key,a)}),d},ce=n=>{const o=G(n,!1,[0,1],!0);if(o.has(2)){const r=o.get(2);r&&(r.regionByIndex=new Map)}return o.forEach(r=>{if(!r.regionByIndex)return;const t={...ue()};r.regionByIndex.set(t.index,t)}),o},Y=(n,o,r=[])=>{const t=U(n,!1,r);let d;return t.forEach(l=>{if(!(o.searcher_key!==void 0&&o.searcher_key!=l.key)&&l.regions&&(l.regions.forEach(a=>{if(!d&&!(o.key!==void 0&&o.key!=a.key)&&!(o.index!==void 0&&o.index!=a.index)&&!(!n&&(o.lang!==void 0&&o.lang!=a.lang||o.device!==void 0&&o.device!=a.device)))return a.searcher_key=l.key,d=a,!1}),d))return!1}),d},W=ne.useAsyncTopDialog(()=>new Promise((n,o)=>ee(["../.chunks/dialog_selectorRegions-vtydbe7k.amd"],n,o))),ge=(n,o)=>{const r=x.useI18n(),t=e.ref(o.value.keys().next().value??k),d=e.computed(()=>{const l=new Map;if(o.value.forEach(a=>{let u={value:a.key,title:a.name};n.addSearcherIcon&&(u.icon=q.getSearcherGIcon(a.key)),l.set(a.key,u)}),n.addCompare&&!l.has(k)){const a={value:"",title:"--------------------",disabled:!0};l.set(a.value,a);const u={value:-1,title:r.Common.Compare};l.set(u.value,u)}return l});return{searcherKey:t,optionBySearcherKey:d}},me=(n,o)=>{var l,a,u;const r=x.useI18n(),t=e.ref(k);n.modelValue.length===1&&(t.value=n.modelValue[0]),t.value===k&&(n.forFrequency?t.value=((a=(l=o.value)==null?void 0:l.regionByIndex.values().next().value)==null?void 0:a.key)??k:t.value=((u=o.value)==null?void 0:u.regionByIndex.keys().next().value)??k);const d=e.computed(()=>{var y;const f=new Map;return(y=o.value.regionByIndex)==null||y.forEach(h=>{let i=h.name;if(n.forFrequency){const I={value:h.key,title:i};f.has(h.key)||f.set(h.key,I);return}h.device&&(i+=" ("+r.Common["Device_"+h.device]+")");const m=q.getLangLabel(o.value.key||0,h.lang??"");m&&(i+=" / "+m);const c={value:h.index,title:i,icon:h.device?q.getDeviceGIcon(h.device):void 0};f.set(h.index,c)}),f});return e.watch(d,(f,y)=>{var c;if(n.onlySearcher||t.value!==void 0&&f.get(t.value))return;let h=f.keys().next().value;if(t.value===k||h===k){t.value=h;return}let i=((c=y==null?void 0:y.get(t.value))==null?void 0:c.title)||"",m=-1;for(const[I,B]of f.entries()){const C=B.title;if(typeof C!="string"||typeof I=="string")break;if(C===i){h=I;break}const V=new RegExp(` \\((${r.Common.Device_1}|${r.Common.Device_2})\\)`);let v=i,s=3;C.indexOf(v)===-1&&(v=i.replace(/^[^a-zа-я]/i,"").replace(V,""),s--),C.indexOf(v)===-1&&(v=i.replace(/ \/.*/,""),s--),C.indexOf(v)===-1&&(v=i.replace(/ \/.*/,""),v=v.replace(/^[^a-zа-я]/i,"").replace(V,""),s--),C.indexOf(v)!==-1&&(s<=m||(m=s,h=I))}t.value=h}),{regionIndex:t,optionByRegionIndex:d}},fe=(n,o,r)=>{const t=e.ref([]),d=()=>{if(n.onlySearcher&&o.value){t.value=Array.from(o.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(u=>r.value.has(u))),a.length||(a=Array.from(r.value)),t.value=[...a]},l=()=>{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,()=>{l()}),n.addCompare&&d(),{regionsIndexes:t}},ve=n=>{const o=e.computed(()=>U(n.forFrequency,n.autoRegion,n.searchers)),r=e.computed(()=>o.value.get(d.searcherKey.value)||j),t=e.computed(()=>{const i=new Set;return o.value.forEach(m=>{m.regionByIndex.forEach(c=>{c.index!==-1&&c.index!==k&&i.add(c.index)})}),i}),d=ge(n,o),l=me(n,r),a=fe(n,o,t);e.watch(o,()=>{var m,c,I,B;if(n.onlySearcher?a.regionsIndexes.value=Array.from(o.value.keys()):a.regionsIndexes.value=a.regionsIndexes.value.filter(C=>t.value.has(C)),d.searcherKey.value===-1)return;let i=o.value.keys().next().value;o.value.forEach(C=>{var V,v,s;if(n.onlySearcher&&C.key===d.searcherKey.value){i=d.searcherKey.value;return}if(l.regionIndex.value&&((V=C.regionByIndex)!=null&&V.has(l.regionIndex.value))&&(i=C.key),!n.onlySearcher){let g;i!==void 0&&(g=(v=o.value.get(i))==null?void 0:v.regionByIndex);const p=(s=o.value.get(C.key))==null?void 0:s.regionByIndex;g!=null&&g.has(k)&&!(p!=null&&p.has(k))&&(i=C.key)}}),i!==void 0&&(d.searcherKey.value=i),l.regionIndex.value!==void 0&&!((c=(m=r.value)==null?void 0:m.regionByIndex)!=null&&c.has(l.regionIndex.value))&&(l.regionIndex.value=(B=(I=r.value)==null?void 0:I.regions)==null?void 0:B.keys().next().value)},{immediate:!0});const u=()=>{if(!(d.searcherKey.value===-1||d.searcherKey.value===k))return d.searcherKey.value},f=()=>{if(n.onlySearcher||l.regionIndex.value===k)return;let i=l.regionIndex.value;if(n.forFrequency){const m=l.regionIndex.value,c=Y(n.forFrequency,{searcher_key:u(),key:m},n.searchers);i=c==null?void 0:c.index}return i},y=()=>{const i=u();if(i!==void 0)return o.value.get(i)};return{selectSearcher:d,selectRegion:l,compare:a,searcherByKey:o,allRegionsIndexes:t,getSearcher:y,getRegion:()=>{var m,c;const i=f();if(i!==void 0)return(c=(m=y())==null?void 0:m.regionByIndex)==null?void 0:c.get(i)}}},pe=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:o}){const r=n,t=e.useModel(n,"modelValue"),d=e.useModel(n,"modelValueSingle"),{selectSearcher:l,selectRegion:a,compare:u,searcherByKey:f,allRegionsIndexes:y,getSearcher:h,getRegion:i}=ve(r),m=()=>{const c=[];f.value.forEach(I=>{I.enabled&&I.regions.forEach(B=>{B.enabled&&c.push(B)})}),W.open("selectorRegions",{regions:c,regionsIndexes:u.regionsIndexes.value,"@update:regionsIndexes":I=>u.regionsIndexes.value=I})};return e.watch([a.regionIndex,l.searcherKey,u.regionsIndexes],()=>{if(l.searcherKey.value===-1&&u.regionsIndexes.value.length){if(JSON.stringify(t.value)===JSON.stringify(u.regionsIndexes.value))return;t.value=[...u.regionsIndexes.value]}else t.value=[r.onlySearcher?l.searcherKey.value:a.regionIndex.value];!r.onlySearcher&&!y.value.size&&(l.searcherKey.value=k)}),d.value&&e.watch(d,()=>{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&&!f.value.has(t.value[0])){let v=f.value.keys().next().value;v!==void 0&&(t.value=[v]);return}if(t.value.length>1&&JSON.stringify(t.value)!==JSON.stringify(u.regionsIndexes.value)){t.value=[...u.regionsIndexes.value];return}}else{let v=[...new Set(t.value)],s=(I=(c=f.value.values().next().value)==null?void 0:c.regionByIndex)==null?void 0:I.keys().next().value;if(r.forFrequency&&(s=(V=(C=(B=f.value.values().next().value)==null?void 0:B.regionByIndex)==null?void 0:C.values().next().value)==null?void 0:V.key),!v.length)s!==void 0&&v.push(s);else if(v.length===1){let g=y.value;r.forFrequency&&(g=new Set,f.value.forEach(p=>{p.regionByIndex.forEach(S=>{S.index!==-1&&S.index!==k&&g.add(S.key)})})),!g.has(v[0])&&v[0]!==-2&&(v=[],s!==void 0&&v.push(s))}else v=v.filter(g=>y.value.has(g)),!v.length&&s!==void 0&&v.push(s);if(JSON.stringify(t.value)!==JSON.stringify(v)){t.value=v;return}}if(!(t.value.length===1&&t.value[0]===(r.onlySearcher?l.searcherKey.value:a.regionIndex.value)))if(r.onlySearcher){if(t.value.length===1){l.searcherKey.value=t.value[0];return}l.searcherKey.value=-1;return}else if(t.value.length===1&&l.searcherKey.value!==-1){a.regionIndex.value=t.value[0];let v;for(const s of f.value.values()){for(const g of s.regionByIndex.values())if((r.forFrequency?g.key:g.index)===a.regionIndex.value){v=s.key;break}if(v!==void 0)break}v!==void 0&&(l.searcherKey.value=v)}else l.searcherKey.value=-1,u.regionsIndexes.value=[...t.value]},{immediate:!0}),o({getSearcher:h,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(l).optionBySearcherKey.value,modelValue:e.unref(l).searcherKey.value,"onUpdate:modelValue":I[0]||(I[0]=B=>e.unref(l).searcherKey.value=B),name:"searcher_key",addChanger:c.addChanger},null,8,["options","modelValue","addChanger"]),!c.onlySearcher&&e.unref(l).searcherKey.value!==-1?(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(l).searcherKey.value===-1?(e.openBlock(),e.createBlock(x._sfc_main,{key:1,name:"compare",onClick:m,"data-count-compare-regions-indexes":e.unref(u).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))}}),ye=[{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"}],H=n=>"-"+n,_=n=>n[0]==="-"?n.substring(1):n,O=(n,o)=>{n=_(n);const r=o.find(t=>t.id===n);if(r)return r},he=["data-tag_id","data-tag_color_id","title"],R=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(n){return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!o.state,"top-tagSelector-excluded":o.state==="excluded"}),"data-tag_id":o.id,"data-tag_color_id":o.colorId,title:o.name},null,10,he))}}),Se=["contenteditable","onKeydown"],Q=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:o}){const r=n,t=o,d=e.useModel(n,"name"),l=e.ref(null),a=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:u.value,onpaste:m=>m.preventDefault()}:{}),u=e.ref(!1),f=async()=>{var m;u.value=!0,await e.nextTick(),(m=l.value)==null||m.focus()},y=()=>{var c;const m=(c=l.value)==null?void 0:c.innerText;if(!m)return h();l.value&&(l.value.innerText=m),u.value=!1,t("update:name",m)},h=async()=>{l.value&&(l.value.innerText=r.name),u.value=!1},i=m=>{if(u.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(b._sfc_main$1,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":u.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(R,{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:l,class:"top-tagSelector_tagListItemName",contenteditable:u.value?"plaintext-only":!1},a.value,{onKeydown:[e.withKeys(e.withModifiers(y,["stop"]),["enter"]),e.withKeys(e.withModifiers(h,["stop"]),["esc"])]}),e.toDisplayString(d.value),17,Se),m.editable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[u.value?(e.openBlock(),e.createElementBlock("span",{key:1,"data-top-icon":"",class:"top-tagSelector_edit",onClick:e.withModifiers(y,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:f}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),ke={key:1},X=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 o=n,r=e.useModel(n,"modelValue"),t=o.useTopButton?x._sfc_main:"div",d=o.useTopButton?"html":"default",l={model:r,mode:o.mode,targetId:o.targetId,filters:o.filters,payload:o.payload};return(a,u)=>{const f=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(b._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":o.mode==="filter","top-tagSelector-setter_single":o.mode==="setter"&&!a.filters,"top-tagSelector-setter_several":o.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(R,{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",ke,[e.renderSlot(a.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(r.value,y=>{var h,i;return e.openBlock(),e.createBlock(R,{id:e.unref(_)(y),colorId:((h=e.unref(O)(y,a.tags))==null?void 0:h.color_id)??"",name:((i=e.unref(O)(y,a.tags))==null?void 0:i.name)??"",state:e.unref(_)(y)===y?"selected":"excluded"},null,8,["id","colorId","name","state"])}),256))]),_:2},1040,["class"])),[[f,l,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),Ie=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(ye)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(n,{emit:o}){const r=x.useI18n(),t=n,d=e.useModel(n,"modelValue"),l=e.useModel(n,"tags"),a=o,u=x.debounce((s,g)=>{a(s,g)},t.emitDelay);t.singleMode&&!d.value.length&&(d.value=[l.value[0].id]);const f=t.id??"top-popup-id-"+Math.random(),y=e.ref("add"),h=()=>{var p;const s=" "+((p=r.Common.Tags)==null?void 0:p.toLowerCase()),g=new Map;return g.set("add",{value:"add",title:r.Common.Add+s}),g.set("replace",{value:"replace",title:r.Common.Replace+s}),g.set("delete",{value:"delete",title:r.Common.Delete+s}),g};let i=e.shallowRef({model:d,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(d,()=>{u("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=s=>{if(s!=="all"){if(i.value.model.value.includes(s))return"selected";if(i.value.model.value.includes(H(s)))return"excluded"}return s==="all"&&!i.value.model.value.length?"selected":""},I=(s,g)=>{const p=H(s);let S=i.value.model.value.filter(w=>w!==s&&w!==p);g==="select"&&S.push(s),g==="exclude"&&S.push(p),i.value.mode==="setter"&&i.value.targetId!==void 0&&t.requiredForSetter&&(S.length||S.push("1"),S.length===2&&i.value.model.value.length===1&&i.value.model.value[0]==="1"&&(S=S.filter(w=>w!=="1"))),t.singleMode&&!i.value.filters&&(S.length||(S=i.value.model.value),S.length>1&&(S=[S[S.length-1]])),S.sort((w,K)=>{if(!t.tags)return 0;const F=t.tags.findIndex(M=>M.id===w),N=t.tags.findIndex(M=>M.id===K);return F-N}),i.value.model.value=S,i.value.mode==="setter"&&i.value.targetId!==void 0&&u("setter",{tagsIds:S,targetId:i.value.targetId,payload:i.value.payload})},B=e.computed(()=>{let s="top-tagSelector_popup";return i.value.mode==="filter"&&(s+=" top-tagSelector_popup-filter"),i.value.mode==="setter"&&(s+=" top-tagSelector_popup-setter"),s}),C=()=>{const s=prompt("","New tag");if(!s||s==="New tag")return;const g=l.value.length+1;l.value.push({id:String(g),name:s,color_id:String((g-1)%10+1)}),a("tagsChanged",l.value)},V=s=>{var g;if(i.value=E.storage(s.elPopupOpener,"topTagSelectorTarget"),!i.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(i.value.filters&&(y.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&&l.value&&$(s.elPopup).sortable({items:'li:has([data-tag_id]:not([data-tag_id="all"]))',cancel:'[contenteditable="plaintext-only"], [contenteditable="true"]',distance:10,stop:function(p,S){if(!l.value)return;const w=$(S.item).parent().find("[data-tag_id]"),K=[];w.each((F,N)=>{if(!l.value)return;const M=$(N).attr("data-tag_id");K.push(M)}),l.value.sort((F,N)=>{const M=K.findIndex(z=>z===F.id),Ee=K.findIndex(z=>z===N.id);return M-Ee}),u("tagsChanged",l.value)}})},v=s=>{var g;(g=x.Core.$)!=null&&g.ui.sortable&&$(s.elPopup).data("ui-sortable")&&$(s.elPopup).sortable("destroy")};return(s,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(X,{class:"top-select_arrow",modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=p=>d.value=p),id:e.unref(f),tags:l.value,mode:"filter",useTopButton:""},null,8,["modelValue","id","tags"]),e.createVNode(b._sfc_main,{id:e.unref(f),class:e.normalizeClass(B.value),onOpen:g[4]||(g[4]=p=>V(p)),onClose:g[5]||(g[5]=p=>v(p)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!s.singleMode?(e.openBlock(),e.createBlock(Q,{key:0,id:"all",colorId:"",name:s.$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(l.value,p=>(e.openBlock(),e.createBlock(Q,{key:p.id,id:p.id,colorId:p.color_id,name:p.name,state:c(p.id),canExclude:e.unref(i).mode==="filter"&&!s.singleMode,editable:s.tagsEditable,disabled:m.value&&c(p.id)==="",onUnselect:S=>I(p.id,"unselect"),onSelect:S=>I(p.id,"select"),onExclude:S=>I(p.id,"exclude"),"onUpdate:name":S=>{p.name=S,e.unref(u)("tagsChanged",l.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),s.tagsEditable&&l.value.length<s.tagsMax&&l.value.length<20?(e.openBlock(),e.createBlock(b._sfc_main$1,{key:1,"data-top-icon":"",onClick:e.withModifiers(C,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.$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:y.value,"onUpdate:modelValue":g[1]||(g[1]=p=>y.value=p),options:h()},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(s.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(x._sfc_main,{onClick:g[2]||(g[2]=p=>e.unref(u)("setter",{tagsIds:e.unref(i).model.value,filters:e.unref(i).filters,filtersAction:y.value,payload:e.unref(i).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(y.value==="add"?s.$i18n.Common.Add:"")+" "+e.toDisplayString(y.value==="replace"?s.$i18n.Common.Replace:"")+" "+e.toDisplayString(y.value==="delete"?s.$i18n.Common.Remove:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}}),xe=(n,o)=>e.computed(()=>e.toValue(n).filter(d=>d.on>=0||d.id===o).map(d=>({value:d.id,title:d.url+` [${d.id}]`,icon:d.id===e.toValue(o)?"":"",content:d.name}))),Ce=(n,o,r)=>{o||(o={id:n.id}),o.id=n.id;const t=oe.TopPopupWorker.genElPopupOpener("div",o);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 l=e.ref(n.modelValue),a={model:l,mode:n.mode,targetId:n.targetId,filters:n.filters,payload:n.payload};E.storage(t,"topTagSelectorTarget",a),delete t.dataset.topPopupDisabled,e.isRef(n.modelValue)||e.watch(l,()=>{n.modelValue=l.value,D(t,n,r)}),t.click()},e.isRef(n.modelValue)?e.watch(n.modelValue,()=>D(t,n,r)):E.storage(t,"topTagSelectorRender",d=>{n.modelValue=d;const l=E.storage(t,"topTagSelectorTarget");l&&(l.model.value=d),D(t,n,r)}),D(t,n,r),t},Be=(n,o)=>{var r;(r=E.storage(n,"topTagSelectorRender"))==null||r(o)},D=(n,o,r)=>{var d;const t=e.unref(o.modelValue);if(n.classList.toggle("top-tagSelector-selectedOne",!t.length||t.length===1),n.classList.toggle("top-tagSelector-toTwoLine",t.length>5),o.mode==="setter"&&o.filters){n.innerHTML=`<div>${r}</div>`;return}if(n.innerHTML="",!t.length&&o.mode==="filter"){const l=Z({id:"all",colorId:"",name:((d=x.useI18n().Common)==null?void 0:d.All_tags)??"",state:""});n.append(l)}t.forEach(l=>{var u,f;const a=Z({id:_(l),colorId:((u=O(l,o.tags))==null?void 0:u.color_id)??"",name:((f=O(l,o.tags))==null?void 0:f.name)??"",state:_(l)===l?"selected":"excluded"});n.append(a)})},Z=n=>{const o=document.createElement("div");return o.classList.add("top-tagSelector_tagIcon"),o.classList.toggle("top-tagSelector-active",!!n.state),o.classList.toggle("top-tagSelector-excluded",n.state==="excluded"),o.dataset.tag_id=n.id,o.dataset.tag_color_id=n.colorId,o.title=n.name,o},Te=re,Ve=pe,we=Ie,Me=X,be=R;T.TopSelectorCompetitors=Te,T.TopSelectorRegion=Ve,T.TopTagSelector=we,T.TopTagSelectorPopupOpener=Me,T.TopTagSelectorTagIcon=be,T.dialogSelectorRegions=W,T.findRegion=Y,T.genElTopTagSelectorPopupOpener=Ce,T.genSearcherByKey=U,T.renderElTopTagSelectorPopupOpener=Be,T.useItemsFromCompetitors=xe,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-B4wnA2qg.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-Yoht7Zz1.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-DpQWqw0S.amd","../.chunks/utils-C-3nlmxS.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],function(ne,T,e,x,E,oe,ae,U,_,le){"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 o=n,r=e.useModel(n,"modelValue"),t=e.computed(()=>{if(o.showSelectAllItem)return{icon:"",title:x.useI18n().Common.Select_all,value:"all",content:""}});return(d,a)=>(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 l;return[e.createTextVNode(e.toDisplayString((l=d.items.find(s=>{var f;return s.value===((f=r.value)==null?void 0:f[0])}))==null?void 0:l.content),1)]}),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.items,(l,s)=>{var f;return e.openBlock(),e.createBlock(E._sfc_main$1,{class:e.normalizeClass({"top-active":(f=r.value)==null?void 0:f.includes(l.value)}),"data-top-icon":l.icon,title:l.title,onClick:()=>r.value=[l.value]},{default:e.withCtx(()=>[e.createElementVNode("span",ie,e.toDisplayString(l.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":a[0]||(a[0]=l=>r.value=l),items:d.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:t.value},null,8,["modelValue","items","selectAllItem"]))]))}}),w=-1,y=-2,R=-1,ue={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},A={key:y,name:"--",index:y},G={key:y,name:"--",regions:[A],regionByIndex:new Map([[y,A]])},O={key:y,name:"Autoselect",index:y},z={key:y,name:"Autoselect",regions:[O],regionByIndex:new Map([[y,O]])},Y={countryCode:"00",depth:1,device:0,key:R,index:R,lang:"ru",name:"Without region"},se=()=>(O.name=x.useI18n().Common.Autoselect,O),ce=()=>(se(),z.name=x.useI18n().Common.Autoselect,console.log(z),z),ge=()=>(Y.name=x.useI18n().Keywords.Without_region,Y),j=(n=!1,o=!1,r=[])=>{let t;return n?t=me(r):t=W(r),o&&t.set(y,ce()),t.size||t.set(y,G),t},W=(n,o=!0,r=[],t=!1)=>{const d=new Map;return n.forEach(a=>{if(!a.enabled||t&&typeof a.key=="number"&&a.key>1)return;const l={...a};l.regionByIndex=new Map,a.regions&&a.regions.forEach(s=>{if(o&&!s.enabled)return;const f={...s};l.regionByIndex.set(f.index,f)}),!l.regionByIndex.size&&!r.length&&l.regionByIndex.set(A.index,A),typeof l.key=="number"&&d.set(l.key,l)}),r.forEach(a=>{if(d.has(a))return;const l={key:a,name:ue[a],regions:[],regionByIndex:new Map};d.set(l.key,l)}),d},me=n=>{const o=W(n,!1,[0,1],!0);if(o.has(2)){const r=o.get(2);r&&(r.regionByIndex=new Map)}return o.forEach(r=>{if(!r.regionByIndex)return;const t={...ge()};r.regionByIndex.set(t.index,t)}),o},H=(n,o,r=[])=>{const t=j(n,!1,r);let d;return t.forEach(a=>{if(!(o.searcher_key!==void 0&&o.searcher_key!=a.key)&&a.regions&&(a.regions.forEach(l=>{if(!d&&!(o.key!==void 0&&o.key!=l.key)&&!(o.index!==void 0&&o.index!=l.index)&&!(!n&&(o.lang!==void 0&&o.lang!=l.lang||o.device!==void 0&&o.device!=l.device)))return l.searcher_key=a.key,d=l,!1}),d))return!1}),d},Q=ae.useAsyncTopDialog(()=>new Promise((n,o)=>ne(["../.chunks/dialog_selectorRegions-vtydbe7k.amd"],n,o))),fe=(n,o)=>{const r=x.useI18n(),t=e.ref(o.value.keys().next().value??y),d=e.computed(()=>{const a=new Map;if(o.value.forEach(l=>{let s={value:l.key,title:l.name};n.addSearcherIcon&&(s.icon=U.getSearcherGIcon(l.key)),a.set(l.key,s)}),n.addCompare&&!a.has(y)){const l={value:"",title:"--------------------",disabled:!0};a.set(l.value,l);const s={value:w,title:r.Common.Compare};a.set(s.value,s)}return a});return{searcherKey:t,optionBySearcherKey:d}},ve=(n,o)=>{var a,l,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=((l=(a=o.value)==null?void 0:a.regionByIndex.values().next().value)==null?void 0:l.key)??y:t.value=((s=o.value)==null?void 0:s.regionByIndex.keys().next().value)??y);const d=e.computed(()=>{var h;const f=new Map;return(h=o.value.regionByIndex)==null||h.forEach(S=>{let i=S.name;if(n.forFrequency){const I={value:S.key,title:i};f.has(S.key)||f.set(S.key,I);return}S.device&&(i+=" ("+r.Common["Device_"+S.device]+")");const m=U.getLangLabel(o.value.key||0,S.lang??"");m&&(i+=" / "+m);const c={value:S.index,title:i,icon:S.device?U.getDeviceGIcon(S.device):void 0};f.set(S.index,c)}),f});return e.watch(d,(f,h)=>{var c;if(n.onlySearcher||t.value!==void 0&&f.get(t.value))return;let S=f.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 f.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 v=i,u=3;C.indexOf(v)===-1&&(v=i.replace(/^[^a-zа-я]/i,"").replace(V,""),u--),C.indexOf(v)===-1&&(v=i.replace(/ \/.*/,""),u--),C.indexOf(v)===-1&&(v=i.replace(/ \/.*/,""),v=v.replace(/^[^a-zа-я]/i,"").replace(V,""),u--),C.indexOf(v)!==-1&&(u<=m||(m=u,S=I))}t.value=S}),{regionIndex:t,optionByRegionIndex:d}},pe=(n,o,r)=>{const t=e.ref([]),d=()=>{if(n.onlySearcher&&o.value){t.value=Array.from(o.value.keys());return}let l=[];if(n.modelValue.length>1)l=[...n.modelValue];else try{l=JSON.parse(localStorage.getItem("ui:project:regionSelector"+n.projectId+":regionsIndexes"))??[]}catch{}l.length&&(l=l.filter(s=>r.value.has(s))),l.length||(l=Array.from(r.value)),t.value=[...l]},a=()=>{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,()=>{a()}),n.addCompare&&d(),{regionsIndexes:t}},ye=n=>{const o=e.computed(()=>j(n.forFrequency,n.autoRegion,n.searchers)),r=e.computed(()=>o.value.get(d.searcherKey.value)||G),t=e.computed(()=>{const i=new Set;return o.value.forEach(m=>{m.regionByIndex.forEach(c=>{c.index!==R&&c.index!==y&&i.add(c.index)})}),i}),d=fe(n,o),a=ve(n,r),l=pe(n,o,t);e.watch(o,()=>{var m,c,I,B;if(n.onlySearcher?l.regionsIndexes.value=Array.from(o.value.keys()):l.regionsIndexes.value=l.regionsIndexes.value.filter(C=>t.value.has(C)),d.searcherKey.value===w)return;let i=o.value.keys().next().value;o.value.forEach(C=>{var V,v,u;if(n.onlySearcher&&C.key===d.searcherKey.value){i=d.searcherKey.value;return}if(a.regionIndex.value&&((V=C.regionByIndex)!=null&&V.has(a.regionIndex.value))&&(i=C.key),!n.onlySearcher){let g;i!==void 0&&(g=(v=o.value.get(i))==null?void 0:v.regionByIndex);const p=(u=o.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),a.regionIndex.value!==void 0&&!((c=(m=r.value)==null?void 0:m.regionByIndex)!=null&&c.has(a.regionIndex.value))&&(a.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},f=()=>{if(n.onlySearcher||a.regionIndex.value===y)return;let i=a.regionIndex.value;if(n.forFrequency){const m=a.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 o.value.get(i)};return{selectSearcher:d,selectRegion:a,compare:l,searcherByKey:o,allRegionsIndexes:t,getSearcher:h,getRegion:()=>{var m,c;const i=f();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:o}){const r=n,t=e.useModel(n,"modelValue"),d=e.useModel(n,"modelValueSingle"),{selectSearcher:a,selectRegion:l,compare:s,searcherByKey:f,allRegionsIndexes:h,getSearcher:S,getRegion:i}=ye(r),m=()=>{const c=[];f.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([l.regionIndex,a.searcherKey,s.regionsIndexes],()=>{if(a.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=[a.searcherKey.value],a.searcherKey.value===y&&!r.autoRegion&&(t.value.length=0)):(t.value=[l.regionIndex.value],l.regionIndex.value===y&&!r.autoRegion&&(t.value.length=0));!r.onlySearcher&&!h.value.size&&(a.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&&!f.value.has(t.value[0])){let v=f.value.keys().next().value;v===y&&!r.autoRegion&&(v=void 0,d.value=y),v!==void 0&&(t.value=[v]);return}if(t.value.length>1&&JSON.stringify(t.value)!==JSON.stringify(s.regionsIndexes.value)){t.value=[...s.regionsIndexes.value];return}}else{let v=[...new Set(t.value)],u=(I=(c=f.value.values().next().value)==null?void 0:c.regionByIndex)==null?void 0:I.keys().next().value;if(r.forFrequency&&(u=(V=(C=(B=f.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),!v.length)u!==void 0&&v.push(u);else if(v.length===1){let g=h.value;r.forFrequency&&(g=new Set,f.value.forEach(p=>{p.regionByIndex.forEach(k=>{k.index!==R&&k.index!==y&&g.add(k.key)})})),g.has(v[0])||(v=[],u!==void 0&&v.push(u))}else v=v.filter(g=>h.value.has(g)),!v.length&&u!==void 0&&v.push(u);if(JSON.stringify(t.value)!==JSON.stringify(v)){t.value=v;return}}if(!(t.value.length===1&&t.value[0]===(r.onlySearcher?a.searcherKey.value:l.regionIndex.value)))if(r.onlySearcher){if(t.value.length===1){a.searcherKey.value=t.value[0];return}a.searcherKey.value=w;return}else{if(!t.value.length)return;if(t.value.length===1&&a.searcherKey.value!==w){l.regionIndex.value=t.value[0];let v;for(const u of f.value.values()){for(const g of u.regionByIndex.values())if((r.forFrequency?g.key:g.index)===l.regionIndex.value){v=u.key;break}if(v!==void 0)break}v!==void 0&&(a.searcherKey.value=v)}else a.searcherKey.value=w,s.regionsIndexes.value=[...t.value]}},{immediate:!0}),o({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(a).optionBySearcherKey.value,modelValue:e.unref(a).searcherKey.value,"onUpdate:modelValue":I[0]||(I[0]=B=>e.unref(a).searcherKey.value=B),name:"searcher_key",addChanger:c.addChanger},null,8,["options","modelValue","addChanger"]),!c.onlySearcher&&e.unref(a).searcherKey.value!==e.unref(w)?(e.openBlock(),e.createBlock(x._sfc_main$4,{key:0,class:"top-select-region",options:e.unref(l).optionByRegionIndex.value,modelValue:e.unref(l).regionIndex.value,"onUpdate:modelValue":I[1]||(I[1]=B=>e.unref(l).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(a).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,D=(n,o)=>{n=K(n);const r=o.find(t=>t.id===n);if(r)return r},ke=["data-tag_id","data-tag_color_id","title"],F=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(n){return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!o.state,"top-tagSelector-excluded":o.state==="excluded"}),"data-tag_id":o.id,"data-tag_color_id":o.colorId,title:o.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:o}){const r=n,t=o,d=e.useModel(n,"name"),a=e.ref(null),l=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:s.value,onpaste:m=>m.preventDefault()}:{}),s=e.ref(!1),f=async()=>{var m;s.value=!0,await e.nextTick(),(m=a.value)==null||m.focus()},h=()=>{var c;const m=(c=a.value)==null?void 0:c.innerText;if(!m)return S();a.value&&(a.value.innerText=m),s.value=!1,t("update:name",m)},S=async()=>{a.value&&(a.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(F,{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:a,class:"top-tagSelector_tagListItemName",contenteditable:s.value?"plaintext-only":!1},l.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:f}))],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 o=n,r=e.useModel(n,"modelValue"),t=o.useTopButton?x._sfc_main:"div",d=o.useTopButton?"html":"default",a={model:r,mode:o.mode,targetId:o.targetId,filters:o.filters,payload:o.payload};return(l,s)=>{const f=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(E._sfc_main$2,{id:l.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(t)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-filter":o.mode==="filter","top-tagSelector-setter_single":o.mode==="setter"&&!l.filters,"top-tagSelector-setter_several":o.mode==="setter"&&l.filters,"top-tagSelector-selectedOne":!r.value.length||r.value.length===1,"top-tagSelector-toTwoLine":r.value.length>5},color:"theme",styling:""},l.$attrs),{[e.unref(d)]:e.withCtx(()=>[!r.value.length&&l.mode==="filter"?(e.openBlock(),e.createBlock(F,{key:0,id:"all",colorId:"",name:l.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),l.mode==="setter"&&l.filters?(e.openBlock(),e.createElementBlock("div",xe,[e.renderSlot(l.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(r.value,h=>{var S,i;return e.openBlock(),e.createBlock(F,{id:e.unref(K)(h),colorId:((S=e.unref(D)(h,l.tags))==null?void 0:S.color_id)??"",name:((i=e.unref(D)(h,l.tags))==null?void 0:i.name)??"",state:e.unref(K)(h)===h?"selected":"excluded"},null,8,["id","colorId","name","state"])}),256))]),_:2},1040,["class"])),[[f,a,"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:o}){const r=x.useI18n(),t=n,d=e.useModel(n,"modelValue"),a=e.useModel(n,"tags"),l=o,s=x.debounce((u,g)=>{l(u,g)},t.emitDelay);t.singleMode&&!d.value.length&&(d.value=[a.value[0].id]);const f=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 P=t.tags.findIndex(b=>b.id===M),L=t.tags.findIndex(b=>b.id===N);return P-L}),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=a.value.length+1;a.value.push({id:String(g),name:u,color_id:String((g-1)%10+1)}),l("tagsChanged",a.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&&a.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(!a.value)return;const M=$(k.item).parent().find("[data-tag_id]"),N=[];M.each((P,L)=>{if(!a.value)return;const b=$(L).attr("data-tag_id");N.push(b)}),a.value.sort((P,L)=>{const b=N.findIndex(J=>J===P.id),Ke=N.findIndex(J=>J===L.id);return b-Ke}),s("tagsChanged",a.value)}})},v=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(f),tags:a.value,mode:"filter",useTopButton:""},null,8,["modelValue","id","tags"]),e.createVNode(E._sfc_main,{id:e.unref(f),class:e.normalizeClass(B.value),onOpen:g[4]||(g[4]=p=>V(p)),onClose:g[5]||(g[5]=p=>v(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(a.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",a.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),u.tagsEditable&&a.value.length<u.tagsMax&&a.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,o)=>e.computed(()=>e.toValue(n).filter(d=>d.on>=0||d.id===o).map(d=>({value:d.id,title:d.url+` [${d.id}]`,icon:d.id===e.toValue(o)?"":"",content:d.name}))),Te=(n,o,r)=>{o||(o={id:n.id}),o.id=n.id;const t=le.TopPopupWorker.genElPopupOpener("div",o);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 a=e.ref(n.modelValue),l={model:a,mode:n.mode,targetId:n.targetId,filters:n.filters,payload:n.payload};_.storage(t,"topTagSelectorTarget",l),delete t.dataset.topPopupDisabled,e.isRef(n.modelValue)||e.watch(a,()=>{n.modelValue=a.value,q(t,n,r)}),t.click()},e.isRef(n.modelValue)?e.watch(n.modelValue,()=>q(t,n,r)):_.storage(t,"topTagSelectorRender",d=>{n.modelValue=d;const a=_.storage(t,"topTagSelectorTarget");a&&(a.model.value=d),q(t,n,r)}),q(t,n,r),t},Ve=(n,o)=>{var r;(r=_.storage(n,"topTagSelectorRender"))==null||r(o)},q=(n,o,r)=>{var d;const t=e.unref(o.modelValue);if(n.classList.toggle("top-tagSelector-selectedOne",!t.length||t.length===1),n.classList.toggle("top-tagSelector-toTwoLine",t.length>5),o.mode==="setter"&&o.filters){n.innerHTML=`<div>${r}</div>`;return}if(n.innerHTML="",!t.length&&o.mode==="filter"){const a=te({id:"all",colorId:"",name:((d=x.useI18n().Common)==null?void 0:d.All_tags)??"",state:""});n.append(a)}t.forEach(a=>{var s,f;const l=te({id:K(a),colorId:((s=D(a,o.tags))==null?void 0:s.color_id)??"",name:((f=D(a,o.tags))==null?void 0:f.name)??"",state:K(a)===a?"selected":"excluded"});n.append(l)})},te=n=>{const o=document.createElement("div");return o.classList.add("top-tagSelector_tagIcon"),o.classList.toggle("top-tagSelector-active",!!n.state),o.classList.toggle("top-tagSelector-excluded",n.state==="excluded"),o.dataset.tag_id=n.id,o.dataset.tag_color_id=n.colorId,o.title=n.name,o},we=de,Me=he,be=Ce,Ee=ee,_e=F;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=j,T.renderElTopTagSelectorPopupOpener=Ve,T.useItemsFromCompetitors=Be,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=project.amd.js.map