@topvisor/ui 1.1.0-addNativeDialog.12 → 1.1.0-addNativeDialog.14
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.
- package/.chunks/{core-uFZ53eDz.amd.js → core-Bg7lKh4e.amd.js} +2 -2
- package/.chunks/{core-uFZ53eDz.amd.js.map → core-Bg7lKh4e.amd.js.map} +1 -1
- package/.chunks/{core-DwmZJeKo.es.js → core-CPZQHtCX.es.js} +2 -2
- package/.chunks/{core-DwmZJeKo.es.js.map → core-CPZQHtCX.es.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-DKdrXyjJ.es.js → dialog_selectorRegions-CiOb1xAG.es.js} +3 -3
- package/.chunks/{dialog_selectorRegions-DKdrXyjJ.es.js.map → dialog_selectorRegions-CiOb1xAG.es.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions--uU_HPMU.amd.js → dialog_selectorRegions-DuaLJE6o.amd.js} +2 -2
- package/.chunks/{dialog_selectorRegions--uU_HPMU.amd.js.map → dialog_selectorRegions-DuaLJE6o.amd.js.map} +1 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DzO4WR8t.es.js +622 -0
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DzO4WR8t.es.js.map +1 -0
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-R1tL-n2T.amd.js +2 -0
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-R1tL-n2T.amd.js.map +1 -0
- package/.chunks/{lazy-gcvTGQlK.es.js → lazy-40pjr8cZ.es.js} +3 -3
- package/.chunks/lazy-40pjr8cZ.es.js.map +1 -0
- package/.chunks/lazy-DSFLxvj4.amd.js +2 -0
- package/.chunks/lazy-DSFLxvj4.amd.js.map +1 -0
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-jdOhWtvA.amd.js → page.vue_vue_type_script_setup_true_lang-BhK7qQ70.amd.js} +2 -2
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-jdOhWtvA.amd.js.map → page.vue_vue_type_script_setup_true_lang-BhK7qQ70.amd.js.map} +1 -1
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-DRvRAOmG.es.js → page.vue_vue_type_script_setup_true_lang-BuzMReWp.es.js} +3 -3
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-DRvRAOmG.es.js.map → page.vue_vue_type_script_setup_true_lang-BuzMReWp.es.js.map} +1 -1
- package/.chunks/{utils-BmI_WbPx.amd.js → utils-Br0ZfM-6.amd.js} +2 -2
- package/.chunks/{utils-BmI_WbPx.amd.js.map → utils-Br0ZfM-6.amd.js.map} +1 -1
- package/.chunks/{utils-CjdLXxom.es.js → utils-CSr6gGno.es.js} +2 -2
- package/.chunks/{utils-CjdLXxom.es.js.map → utils-CSr6gGno.es.js.map} +1 -1
- package/api/index.amd.js +1 -1
- package/api/index.js +6 -6
- package/core/app.amd.js +1 -1
- package/core/app.js +3 -3
- package/dialog/dialog.amd.js +1 -1
- package/dialog/dialog.js +2 -2
- package/package.json +1 -1
- package/project/project.amd.js +1 -1
- package/project/project.js +2 -2
- package/src/components/dialog/lib/types.d.ts +4 -36
- package/src/components/dialog/lib/utils.d.ts +7 -8
- package/src/components/dialog/lib/worker.d.ts +4 -8
- package/utils/searchers.amd.js +1 -1
- package/utils/searchers.js +2 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-C7vi1i47.amd.js +0 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-C7vi1i47.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-xvod3Gmp.es.js +0 -626
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-xvod3Gmp.es.js.map +0 -1
- package/.chunks/lazy-BBcejshh.amd.js +0 -2
- package/.chunks/lazy-BBcejshh.amd.js.map +0 -1
- package/.chunks/lazy-gcvTGQlK.es.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as w, ref as $, provide as A, onMounted as D, getCurrentInstance as k, watch as T, onUnmounted as C, createBlock as d, openBlock as l, Teleport as v, createElementVNode as i, mergeProps as B, unref as s, renderSlot as n, normalizeStyle as b, computed as _, resolveDirective as W, createElementBlock as u, createCommentVNode as y, normalizeClass as g, withDirectives as E } from "vue";
|
|
2
|
-
import { g as M, c as N } from "./dialogs.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { g as M, c as N } from "./dialogs.vue_vue_type_script_setup_true_lang-DzO4WR8t.es.js";
|
|
3
3
|
import { C as h, c as f } from "./forms-DarRVke_.es.js";
|
|
4
|
-
import { b as S } from "./utils-
|
|
4
|
+
import { b as S } from "./utils-CSr6gGno.es.js";
|
|
5
5
|
const P = ["id", "data-view-page-active", "data-modal", "data-position"], H = /* @__PURE__ */ w({
|
|
6
6
|
__name: "dialog",
|
|
7
7
|
props: {
|
|
@@ -148,4 +148,4 @@ export {
|
|
|
148
148
|
H as _,
|
|
149
149
|
J as a
|
|
150
150
|
};
|
|
151
|
-
//# sourceMappingURL=page.vue_vue_type_script_setup_true_lang-
|
|
151
|
+
//# sourceMappingURL=page.vue_vue_type_script_setup_true_lang-BuzMReWp.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"page.vue_vue_type_script_setup_true_lang-BuzMReWp.es.js","sources":["../../src/components/dialog/dialog/dialog.vue","../../src/components/dialog/dialog/page/page.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ComponentInternalInstance } from 'vue';\nimport { getCurrentInstance, onMounted, provide, ref, onUnmounted, watch } from 'vue';\nimport { getDialogWorker } from './dialogs/dialogs.vue';\nimport { createAndMountElDialogWrapper } from '@/components/dialog/lib/utils';\nimport type { Emits, Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\twidth: '600px',\n\theight: 'auto',\n\tmodal: true,\n\thistoryType: 'push',\n});\n\ndefineEmits<Emits>();\n\ndefineSlots<Slots>();\n\nconst dialog = getDialogWorker(props.id);\nif (!dialog) {\n\tthrow new Error('TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()');\n}\n\nconst elDialogWrapper = createAndMountElDialogWrapper(dialog.idAttr, dialog.pageActive.value);\n\nconst elDialogWrapperRef = ref(elDialogWrapper);\n\n/**\n * Для useTopDialogSelf()\n */\nprovide('dialogWorker', dialog);\n\n/**\n * Инициализация начального состояния TopDialogHandle\n */\nonMounted(() => {\n\tconst topDialogBaseComponent = getCurrentInstance() as ComponentInternalInstance;\n\tconst topDialogComponent = topDialogBaseComponent.parent;\n\n\tif (topDialogComponent?.parent?.type.name !== 'DialogWrapper') {\n\t\tthrow new Error('TopDialog cannot be used in a template, use useTopDialog()');\n\t}\n\n\tif (Array.isArray(topDialogComponent.subTree.children) && topDialogComponent.subTree.children.length !== 1) {\n\t\tthrow new Error('TopDialog can has only one root element');\n\t}\n\n\tdialog.onMounted(topDialogComponent, topDialogBaseComponent);\n});\n\nwatch(dialog.isOpened, () => {\n\tdialog.isReady.value = true;\n}, {\n\tflush: 'post',\n\tonce: true,\n});\n\nonUnmounted(() => {\n\telDialogWrapper?.remove();\n});\n</script>\n\n<template>\n\t<Teleport :to=\"elDialogWrapperRef\">\n\t\t<!-- Классы \"ui-<...>\" добавлены для обратной совместимости стилей диалоговых (преимущественно старых) окон -->\n\t\t<div\n\t\t\t:id=\"dialog.idAttr\"\n\t\t\tclass=\"top-dialog ui-dialog-content\"\n\t\t\t:class=\"classes\"\n\t\t\t:style=\"{\n\t\t\t\t\t'--top-dialog-width': width,\n\t\t\t\t\t'--top-dialog-height': height,\n\t\t\t\t}\"\n\t\t\ttabindex=\"-1\"\n\t\t\t:data-view-page-active=\"dialog.pageActive.value\"\n\t\t\t:data-modal=\"modal\"\n\t\t\t:data-position=\"position\"\n\t\t\tdata-vue-dialog=\"true\"\n\t\t\tv-bind=\"$attrs\"\n\t\t>\n\t\t\t<div class=\"modal-layer modal-layer-header\"></div>\n\n\t\t\t<div class=\"modal-layer modal-layer-body\" :style=\"{'min-height': height + 'px'}\"></div>\n\n\t\t\t<slot name=\"default\"></slot>\n\t\t</div>\n\t</Teleport>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport TopButton from '@/components/forms/button/button.vue';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\t:icon=\"Core.state.isMobile ? '' : ''\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\t:icon=\"Core.state.isMobile ? '' : ''\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n"],"names":["dialog","getDialogWorker","__props","elDialogWrapper","createAndMountElDialogWrapper","elDialogWrapperRef","ref","provide","onMounted","topDialogBaseComponent","getCurrentInstance","topDialogComponent","_a","watch","onUnmounted","_createBlock","_Teleport","_createElementVNode","_mergeProps","_unref","classes","width","height","modal","position","$attrs","_renderSlot","_ctx","props","useTopDialogSelf","computed","_openBlock","_createElementBlock","_hoisted_1","name","order","_hoisted_3","_hoisted_4","_hoisted_5","Core","prevName","TopButton","$i18n","_cache","$event","_normalizeClass","_normalizeStyle","$slots","_withDirectives","_hoisted_7","footerFullWith"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,UAAMA,IAASC,EAXDC,EAWuB,EAAE;AACvC,QAAI,CAACF;AACJ,YAAM,IAAI,MAAM,kFAAkF;AAGnG,UAAMG,IAAkBC,EAA8BJ,EAAO,QAAQA,EAAO,WAAW,KAAK,GAEtFK,IAAqBC,EAAIH,CAAe;AAK9C,WAAAI,EAAQ,gBAAgBP,CAAM,GAK9BQ,EAAU,MAAM;;AACf,YAAMC,IAAyBC,EAAA,GACzBC,IAAqBF,EAAuB;AAElD,YAAIG,IAAAD,KAAA,gBAAAA,EAAoB,WAApB,gBAAAC,EAA4B,KAAK,UAAS;AAC7C,cAAM,IAAI,MAAM,4DAA4D;AAG7E,UAAI,MAAM,QAAQD,EAAmB,QAAQ,QAAQ,KAAKA,EAAmB,QAAQ,SAAS,WAAW;AACxG,cAAM,IAAI,MAAM,yCAAyC;AAG1D,MAAAX,EAAO,UAAUW,GAAoBF,CAAsB;AAAA,IAC5D,CAAC,GAEDI,EAAMb,EAAO,UAAU,MAAM;AAC5B,MAAAA,EAAO,QAAQ,QAAQ;AAAA,IACxB,GAAG;AAAA,MACF,OAAO;AAAA,MACP,MAAM;AAAA,IAAA,CACN,GAEDc,EAAY,MAAM;AACjB,MAAAX,KAAA,QAAAA,EAAiB;AAAA,IAClB,CAAC,mBAIAY,EAuBWC,GAAA,EAvBA,IAAIX,EAAA,SAAkB;AAAA,MAEhCY,EAoBM,OApBNC,EAoBM;AAAA,QAnBJ,IAAIC,EAAAnB,CAAA,EAAO;AAAA,QACZ,OAAK,CAAC,gCACEoB,EAAAA,OAAO;AAAA,QACd,OAAK;AAAA,gCAA+BC,EAAAA;AAAAA,iCAAmCC,EAAAA;AAAAA,QAAAA;AAAAA,QAIxE,UAAS;AAAA,QACR,yBAAuBH,EAAAnB,CAAA,EAAO,WAAW;AAAA,QACzC,cAAYuB,EAAAA;AAAAA,QACZ,iBAAeC,EAAAA;AAAAA,QAChB,mBAAgB;AAAA,MAAA,GACRC,EAAAA,MAAM,GAAA;AAAA,wBAEdR,EAAkD,OAAA,EAA7C,OAAM,iCAAA,GAAgC,MAAA,EAAA;AAAA,QAE3CA,EAAuF,OAAA;AAAA,UAAlF,OAAM;AAAA,UAAgC,yBAAsBK,EAAAA,SAAM,MAAA;AAAA,QAAA;QAEvEI,EAA4BC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;;;;;;;AC7E/B,UAAMC,IAAQ1B,GAMRF,IAAS6B,EAAA,GAETT,IAAUU,EAAS,MAAM;;AAC9B,aAAO;AAAA,QACN,UAAQlB,IAAAZ,EAAO,eAAP,gBAAAY,EAAmB,WAAUgB,EAAM;AAAA,QAC3C,eAAeA,EAAM,aAAa5B,EAAO,cAAc;AAAA,MAAA;AAAA,IAEzD,CAAC;;;aAMOmB,EAAAnB,CAAA,EAAO,QAAQ,SAFtB+B,KAAAC,EA+DM,OA/DNC,GA+DM;AAAA,cA3DLlB,EAkCWC,GAAA;AAAA,UAlCA,IAAE,MAAQG,EAAAnB,CAAA,EAAO,SAAM;AAAA,UAA4B,UAAQ,CAAGmB,EAAAnB,CAAA,EAAO,aAAakC,EAAAA,IAAI;AAAA,QAAA;UAChGjB,EAgCM,OAAA;AAAA,YA/BJ,cAAYkB,EAAAA;AAAAA,YACZ,kBAAgBD,EAAAA;AAAAA,YAChB,SAAOd,EAAA,KAAO;AAAA,UAAA;YAEfH,EA0BM,OA1BNmB,GA0BM;AAAA,cAzBLnB,EAEM,OAFNoB,GAEM;AAAA,gBADLX,EAA2BC,EAAA,QAAA,QAAA;AAAA,cAAA;cAG5BV,EAEM,OAFNqB,GAEM;AAAA,gBADLZ,EAAkCC,EAAA,QAAA,eAAA;AAAA,cAAA;cAI5BR,EAAAoB,CAAA,EAAK,MAAM,YAAYC,EAAAA,iBAD9BzB,EAOE0B,GAAA;AAAA;gBALD,OAAM;AAAA,gBACL,OAAOC,EAAAA,MAAM,OAAO;AAAA,gBACpB,MAAMvB,EAAAoB,CAAA,EAAK,MAAM,WAAQ,MAAA;AAAA,gBAC1B,OAAM;AAAA,gBACL,SAAKI,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEzB,EAAAnB,CAAA,EAAO,KAAKwC,EAAAA,QAAQ;AAAA,cAAA,wCAG7BzB,EAOE0B,GAAA;AAAA;gBALD,OAAM;AAAA,gBACL,OAAOC,EAAAA,MAAM,OAAO;AAAA,gBACpB,MAAMvB,EAAAoB,CAAA,EAAK,MAAM,WAAQ,MAAA;AAAA,gBAC1B,OAAM;AAAA,gBACN,eAAY;AAAA,cAAA;;;;cAMhBxB,EAsBWC,GAAA;AAAA,UAtBA,IAAE,MAAQG,EAAAnB,CAAA,EAAO,SAAM;AAAA,UAA0B,UAAQ,CAAGmB,EAAAnB,CAAA,EAAO,aAAakC,EAAAA,IAAI;AAAA,QAAA;UAC9FjB,EAoBM,OAAA;AAAA,YAnBJ,cAAYkB,EAAAA;AAAAA,YACZ,kBAAgBD,EAAAA;AAAAA,YACjB,OAAKW,EAAA,CAAC,wBACEzB,EAAA,KAAO,CAAA;AAAA,YACd,OAAK0B,EAAA,EAAA,8BAAiCC,EAAAA,OAAO,SAAS,SAAS,MAAA,CAAA;AAAA,UAAA;YAEhEC,GAAAjB,EAAA,GAAAC,EAEM,OAFNiB,GAEM;AAAA,cADLvB,EAAyBC,EAAA,QAAA,MAAA;AAAA,YAAA;;;YAQnBoB,EAAAA,OAAO,eALdf,EAQM,OAAA;AAAA;cAPL,UAAM,gBAAc;AAAA,yCACqBkB,EAAAA;AAAAA,cAAAA;;cAKzCxB,EAA2BC,EAAA,QAAA,QAAA;AAAA,YAAA;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","./dialogs.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
//# sourceMappingURL=utils-
|
|
1
|
+
define(["require","exports","vue","./dialogs.vue_vue_type_script_setup_true_lang-R1tL-n2T.amd","../utils/system.amd"],(function(k,s,t,i,u){"use strict";if(typeof t>"u")var t=window.Vue;class c{resolve;worker=t.ref(null);constructor(e){this.resolve=e}async get(){if(this.worker.value)return this.worker.value;const o=(await this.resolve()).default;this.worker.value=n(o);const a=this.worker.value;return await u.waitWhile(()=>!a.isMounted),a}async open(...e){await(await this.get()).open(...e)}async openAsLink(...e){(await this.get()).openAsLink(...e)}async close(...e){(await this.get()).close(...e)}async destroy(...e){(await this.get()).destroy(...e)}async setProps(...e){await(await this.get()).setProps(...e)}}const l=()=>{var e;const r=t.getCurrentInstance();if((e=r==null?void 0:r.type)!=null&&e.id){const o=i.getDialogWorker(r.type.id);if(o)return o}return t.inject("dialogWorker")},n=r=>i.addDialogWorker(r),w=r=>new c(r);s.useAsyncTopDialog=w,s.useTopDialog=n,s.useTopDialogSelf=l}));
|
|
2
|
+
//# sourceMappingURL=utils-Br0ZfM-6.amd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-
|
|
1
|
+
{"version":3,"file":"utils-Br0ZfM-6.amd.js","sources":["../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"],"names":["AsyncTopDialogHandle","vue","resolve","TopDialogComponent","worker","args","useTopDialogSelf","topDialogComponent","_a","dialogWorker","useTopDialog","DialogComponent","dialogs_vue_vue_type_script_setup_true_lang","useAsyncTopDialog"],"mappings":"yLAYO,MAAAA,CAAA,CAAyD,QAKtD,OAAAC,EAAA,IAAA,IAAA,iBAUR,KAAA,QAAAC,cAOA,GAAA,KAAA,OAAA,MAAA,OAAA,KAAA,OAAA,MAGA,MAAAC,GADA,MAAA,KAAA,QAAA,GACA,+BAIA,MAAAC,EAAA,KAAA,OAAA,iDAIAA,EACD,MAAA,QAAAC,EAAA,CAQC,MAFA,MAAA,KAAA,IAAA,GAEA,KAAA,GAAAA,CAAA,EACD,MAAA,cAAAA,EAAA,EAQC,MAAA,KAAA,IAAA,GAEA,WAAA,GAAAA,CAAA,EACD,MAAA,SAAAA,EAAA,EAQC,MAAA,KAAA,IAAA,GAEA,MAAA,GAAAA,CAAA,EACD,MAAA,WAAAA,EAAA,EAMC,MAAA,KAAA,IAAA,GAEA,QAAA,GAAAA,CAAA,EACD,MAAA,YAAAA,EAAA,CAUC,MAFA,MAAA,KAAA,IAAA,GAEA,SAAA,GAAAA,CAAA,EAEF,CCzFO,MAAAC,EAAA,IAAA,OAEN,MAAAC,EAAAN,EAAA,mBAAA,EACA,IAAAO,EAAAD,GAAA,YAAAA,EAAA,OAAA,MAAAC,EAAA,GAAA,sCAEC,GAAAC,EAAA,OAAAA,EAGD,OAAAR,EAAA,OAAA,cAAA,CACD,EAOOS,EAAAC,GACNC,EAAA,gBAAAD,CAAA,EAUME,EAAAX,GACN,IAAAF,EAAAE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref as s, getCurrentInstance as a, inject as i } from "vue";
|
|
2
|
-
import { a as n, g as c } from "./dialogs.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { a as n, g as c } from "./dialogs.vue_vue_type_script_setup_true_lang-DzO4WR8t.es.js";
|
|
3
3
|
import { waitWhile as w } from "../utils/system.js";
|
|
4
4
|
class l {
|
|
5
5
|
/**
|
|
@@ -76,4 +76,4 @@ export {
|
|
|
76
76
|
d as b,
|
|
77
77
|
h as u
|
|
78
78
|
};
|
|
79
|
-
//# sourceMappingURL=utils-
|
|
79
|
+
//# sourceMappingURL=utils-CSr6gGno.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-
|
|
1
|
+
{"version":3,"file":"utils-CSr6gGno.es.js","sources":["../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"],"names":["AsyncTopDialogHandle","ref","resolve","TopDialogComponent","useTopDialog","worker","waitWhile","args","useTopDialogSelf","topDialogComponent","getCurrentInstance","_a","dialogWorker","getDialogWorker","inject","DialogComponent","addDialogWorker","useAsyncTopDialog"],"mappings":";;;AAYO,MAAMA,EAAmD;AAAA;AAAA;AAAA;AAAA,EAKtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAyCC,EAAI,IAAI;AAAA,EAE1D,YAAYC,GAA2C;AACtD,SAAK,UAAUA;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,MAAM;AACX,QAAI,KAAK,OAAO,MAAO,QAAO,KAAK,OAAO;AAG1C,UAAMC,KADS,MAAM,KAAK,QAAA,GACQ;AAElC,SAAK,OAAO,QAAQC,EAAaD,CAAkB;AAEnD,UAAME,IAAS,KAAK,OAAO;AAE3B,iBAAMC,EAAU,MAAM,CAACD,EAAO,SAAS,GAEhCA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQE,GAA8C;AAG3D,WAFe,MAAM,KAAK,IAAA,GAEb,KAAK,GAAGA,CAAI;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAcA,GAA8C;AAGjE,KAFe,MAAM,KAAK,IAAA,GAEd,WAAW,GAAGA,CAAI;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAASA,GAA+C;AAG7D,KAFe,MAAM,KAAK,IAAA,GAEnB,MAAM,GAAGA,CAAI;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAWA,GAA+C;AAG/D,KAFe,MAAM,KAAK,IAAA,GAEnB,QAAQ,GAAGA,CAAI;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,YAAYA,GAAkD;AAGnE,WAFe,MAAM,KAAK,IAAA,GAEb,SAAS,GAAGA,CAAI;AAAA,EAC9B;AACD;ACzFO,MAAMC,IAAmB,MAAM;;AAErC,QAAMC,IAAqBC,EAAA;AAC3B,OAAIC,IAAAF,KAAA,gBAAAA,EAAoB,SAApB,QAAAE,EAA0B,IAAI;AACjC,UAAMC,IAAeC,EAAgBJ,EAAmB,KAAK,EAAE;AAC/D,QAAIG,EAAc,QAAOA;AAAA,EAC1B;AAEA,SAAOE,EAAO,cAAc;AAC7B,GAOaV,IAAe,CAA+BW,MACnDC,EAAgBD,CAAe,GAU1BE,IAAoB,CAA+Bf,MACxD,IAAIF,EAAqBE,CAAO;"}
|
package/api/index.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/field-Cvv0SRcJ.amd"],(function(m,f,O){"use strict";if(typeof J>"u")var J=window.Vue;const F=(t={})=>{var o;return t={...t},t.loadingEl??=(o=globalThis.document)==null?void 0:o.body,t.loadingShowSpinner??=!0,t.method??="POST",t.accept??="application/json",t},S=(t,o,r)=>({result:t,errors:o,response:r}),H=t=>t.startsWith("/system_2/common/"),N=(t=!1,o=window.location.href,r)=>{const{protocol:e,hostname:n,port:s}=new URL(o),i=n.split("."),u=!t||i.length<=2||/^[\d.]+$/.test(n)||n==="localhost"?n:i.slice(-2).join(".");return`${e}//${u}${s?`:${s}`:""}`},V=t=>Object.values(t).some(o=>o instanceof FileList||o instanceof File||o instanceof Blob||Array.isArray(o)&&o.some(r=>r instanceof File||r instanceof Blob)),G=(t,o,r)=>{const e={inLoading:!1,path:o,url:t.options.baseUrl+o,options:F(t.options.requestOptions),mockerOptions:void 0,params:{},getInLoading:()=>e.inLoading,setParams:n=>(e.params={...n},e),changeParams:n=>(Object.assign(e.params,n),e),setOptions:n=>(Object.assign(e.options,n),e),setMocker:n=>(e.mockerOptions=n,e),call:async n=>e.exec(n),callFetch:async(n,s)=>e.exec(s,n),callInNewWindow:async n=>{var d,h;const s=e.genData(n),i=t.genMiddlewareCtx(e,s);(h=(d=t.options).onPrepareData)==null||h.call(d,s,i);const{postInWindow:u}=await new Promise((g,y)=>m(["../.chunks/lazy-
|
|
1
|
+
define(["require","exports","../.chunks/field-Cvv0SRcJ.amd"],(function(m,f,O){"use strict";if(typeof J>"u")var J=window.Vue;const F=(t={})=>{var o;return t={...t},t.loadingEl??=(o=globalThis.document)==null?void 0:o.body,t.loadingShowSpinner??=!0,t.method??="POST",t.accept??="application/json",t},S=(t,o,r)=>({result:t,errors:o,response:r}),H=t=>t.startsWith("/system_2/common/"),N=(t=!1,o=window.location.href,r)=>{const{protocol:e,hostname:n,port:s}=new URL(o),i=n.split("."),u=!t||i.length<=2||/^[\d.]+$/.test(n)||n==="localhost"?n:i.slice(-2).join(".");return`${e}//${u}${s?`:${s}`:""}`},V=t=>Object.values(t).some(o=>o instanceof FileList||o instanceof File||o instanceof Blob||Array.isArray(o)&&o.some(r=>r instanceof File||r instanceof Blob)),G=(t,o,r)=>{const e={inLoading:!1,path:o,url:t.options.baseUrl+o,options:F(t.options.requestOptions),mockerOptions:void 0,params:{},getInLoading:()=>e.inLoading,setParams:n=>(e.params={...n},e),changeParams:n=>(Object.assign(e.params,n),e),setOptions:n=>(Object.assign(e.options,n),e),setMocker:n=>(e.mockerOptions=n,e),call:async n=>e.exec(n),callFetch:async(n,s)=>e.exec(s,n),callInNewWindow:async n=>{var d,h;const s=e.genData(n),i=t.genMiddlewareCtx(e,s);(h=(d=t.options).onPrepareData)==null||h.call(d,s,i);const{postInWindow:u}=await new Promise((g,y)=>m(["../.chunks/lazy-DSFLxvj4.amd"],g,y));u(e.url,s,"_blank")},callInSelfWindow:async n=>{var d,h;const s=e.genData(n),i=t.genMiddlewareCtx(e,s);(h=(d=t.options).onPrepareData)==null||h.call(d,s,i);const{postInWindow:u}=await new Promise((g,y)=>m(["../.chunks/lazy-DSFLxvj4.amd"],g,y));u(e.url,s,"_self")},genData:(n,s)=>{const i={...e.params};if(delete i.fetch_style,n){let u=[...n];r&&(u=u.filter(d=>r.includes(d))),i.fields=u}else r&&(i.fields=r);return s&&(i.fetch_style=s),i},async exec(n,s){var C,k,T,z,A,D,U,L,M,j,W,v,B,_,$;const i=t.options.Request,u=t.options.fetch,d=e.genData(n,s),h=t.genMiddlewareCtx(e,d);if((k=(C=t.options).onPrepareData)==null||k.call(C,d,h),e.mockerOptions){const{genMockResponse:c}=await new Promise((p,R)=>m(["../.chunks/index-BEI7XZmU.amd"],p,R));return await c(e.mockerOptions,n,d)}const g=V(d);if(g&&e.options.method!=="POST")throw new Error("Files can be sent only in POST requests");let y=e.url,q;if(g){if(e.options.method!=="POST")throw new Error("Files can be sent only in POST requests");const{formDataSerializer:c}=await new Promise((p,R)=>m(["../.chunks/lazy-DSFLxvj4.amd"],p,R));q=c(d)}else e.options.method!=="POST"?y+="?"+await t.options.querySerializer(d):q=t.options.bodySerializer(d);let I;if(this.options.checkFingerprint){const c=this.path+this.options.checkFingerprint;(T=t.abortControllers[c])==null||T.abort();const p=new AbortController;t.abortControllers[c]=p,I=p.signal}const Z={...t.options,method:e.options.method,body:q,signal:I};let x=new i(y,Z);x.headers.set("x-request-id",h.id),x.headers.set("accept",e.options.accept),g||x.headers.set("content-type","application/json");const w={...h,request:x};e.inLoading=!0,(A=(z=e.options).onLoading)==null||A.call(z,e.inLoading,w);let l;const E=await t.middlewareOnRequest(x,w);if(E instanceof Response?l=E:E instanceof i&&(x=E),!l)try{l=await u(x)}catch(c){l=await t.middlewareOnError(c,w)}finally{e.inLoading=!1,(U=(D=e.options).onLoading)==null||U.call(D,e.inLoading,w)}l=await t.middlewareOnResponse(l,w);let a,b,P;try{const c=(L=l.headers.get("content-type"))==null?void 0:L.includes("application/json");b=await l.text(),this.options.accept==="application/json"||c?a=JSON.parse(b):t.useExt?a=S(b,void 0,l):a=b}catch(c){if((c instanceof SyntaxError||c instanceof TypeError)&&(P=c,P.responseText=b),t.useExt&&P){let p=l.status,R=l.statusText;p===200&&(p=1e4,R="Error API response"),a=S(null,[{code:p,string:R}],l),t.options.useApiConsole&&console.error(c)}else throw c}return t.useExt&&(a.response=l,a&&((j=(M=e.options).onApiLoaded)==null||j.call(M,a,w)),a!=null&&a.errors&&(t.options.useApiConsole&&console.warn(new Error("API error"),{res:a}),(B=(v=e.options).onApiError)==null||B.call(v,a,{...w,formatError:P},(W=t.options.requestOptions)==null?void 0:W.onApiError)),a!=null&&a.messages&&(($=(_=e.options).onApiMessage)==null||$.call(_,a,w))),a}};return e};class K{options;useExt;middlewares=[];abortControllers={};constructor(o={},r){o.requestOptions=F(o.requestOptions),o.useApiConsole??=!0,o.fetch??=globalThis.fetch,o.Request??=globalThis.Request,o.querySerializer??=async e=>{const{querySerializer:n}=await new Promise((s,i)=>m(["../.chunks/lazy-DSFLxvj4.amd"],s,i));return n(e)},o.bodySerializer??=e=>typeof e=="string"?e:JSON.stringify(e),this.options=o,this.useExt=r}generateUUID(){return crypto!=null&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,o=>{const r=Math.random()*16|0;return(o==="x"?r:r&3|8).toString(16)})}use(o){this.middlewares.push(o)}gen(o,r){return G(this,o,r)}genAny(o,r){return this.gen(o,r)}genMiddlewareCtx(o,r){const e=this.generateUUID(),n=Object.freeze({baseUrl:this.options.baseUrl,querySerializer:this.options.querySerializer,bodySerializer:this.options.bodySerializer,Request:this.options.Request,fetch:this.options.fetch});return{useExt:this.useExt,requestOptions:o.options,data:r,middlewareData:{},options:n,schemaPath:o.path,id:e}}async middlewareOnRequest(o,r){var e;for(const n of this.middlewares){const s=await((e=n.onRequest)==null?void 0:e.call(n,{...r,request:o}));if(s)if(s instanceof Request)o=s;else{if(s instanceof Response)return s;throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}return o}async middlewareOnError(o,r){var n;let e=o;for(const s of this.middlewares){const i=await((n=s.onError)==null?void 0:n.call(s,{...r,error:e}));if(i){if(i instanceof Response)return i;if(i instanceof Error){e=i;continue}throw new Error("onError: must return new Response() or instance of Error")}}throw e}async middlewareOnResponse(o,r){var e;for(const n of this.middlewares){const s=await((e=n.onResponse)==null?void 0:e.call(n,{...r,response:o}));if(s){if(!(s instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");o=s}}return o}}const Q=async(...t)=>{const{postInWindow:o}=await new Promise((r,e)=>m(["../.chunks/lazy-DSFLxvj4.amd"],r,e));return o(...t)},X=async(...t)=>{const{dataToForm:o}=await new Promise((r,e)=>m(["../.chunks/lazy-DSFLxvj4.amd"],r,e));return o(...t)},Y=(t={},o)=>new K(t,o);f.genFieldFilter=O.genFieldFilter,f.genFieldOrder=O.genFieldOrder,f.createClient=Y,f.dataToForm=X,f.genExtRes=S,f.getBaseDomainUrl=N,f.isPublicAPI=H,f.postInWindow=Q,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=index.amd.js.map
|
package/api/index.js
CHANGED
|
@@ -31,14 +31,14 @@ const v = (o = {}) => {
|
|
|
31
31
|
var p, u;
|
|
32
32
|
const r = e.genData(s), i = o.genMiddlewareCtx(e, r);
|
|
33
33
|
(u = (p = o.options).onPrepareData) == null || u.call(p, r, i);
|
|
34
|
-
const { postInWindow: d } = await import("../.chunks/lazy-
|
|
34
|
+
const { postInWindow: d } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
35
35
|
d(e.url, r, "_blank");
|
|
36
36
|
},
|
|
37
37
|
callInSelfWindow: async (s) => {
|
|
38
38
|
var p, u;
|
|
39
39
|
const r = e.genData(s), i = o.genMiddlewareCtx(e, r);
|
|
40
40
|
(u = (p = o.options).onPrepareData) == null || u.call(p, r, i);
|
|
41
|
-
const { postInWindow: d } = await import("../.chunks/lazy-
|
|
41
|
+
const { postInWindow: d } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
42
42
|
d(e.url, r, "_self");
|
|
43
43
|
},
|
|
44
44
|
genData: (s, r) => {
|
|
@@ -67,7 +67,7 @@ const v = (o = {}) => {
|
|
|
67
67
|
if (y) {
|
|
68
68
|
if (e.options.method !== "POST")
|
|
69
69
|
throw new Error("Files can be sent only in POST requests");
|
|
70
|
-
const { formDataSerializer: c } = await import("../.chunks/lazy-
|
|
70
|
+
const { formDataSerializer: c } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
71
71
|
R = c(p);
|
|
72
72
|
} else e.options.method !== "POST" ? b += "?" + await o.options.querySerializer(p) : R = o.options.bodySerializer(p);
|
|
73
73
|
let E;
|
|
@@ -129,7 +129,7 @@ class J {
|
|
|
129
129
|
abortControllers = {};
|
|
130
130
|
constructor(t = {}, n) {
|
|
131
131
|
t.requestOptions = v(t.requestOptions), t.useApiConsole ??= !0, t.fetch ??= globalThis.fetch, t.Request ??= globalThis.Request, t.querySerializer ??= async (e) => {
|
|
132
|
-
const { querySerializer: s } = await import("../.chunks/lazy-
|
|
132
|
+
const { querySerializer: s } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
133
133
|
return s(e);
|
|
134
134
|
}, t.bodySerializer ??= (e) => typeof e == "string" ? e : JSON.stringify(e), this.options = t, this.useExt = n;
|
|
135
135
|
}
|
|
@@ -261,10 +261,10 @@ class J {
|
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
const G = async (...o) => {
|
|
264
|
-
const { postInWindow: t } = await import("../.chunks/lazy-
|
|
264
|
+
const { postInWindow: t } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
265
265
|
return t(...o);
|
|
266
266
|
}, K = async (...o) => {
|
|
267
|
-
const { dataToForm: t } = await import("../.chunks/lazy-
|
|
267
|
+
const { dataToForm: t } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
268
268
|
return t(...o);
|
|
269
269
|
}, Q = (o = {}, t) => new J(o, t);
|
|
270
270
|
export {
|
package/core/app.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-CgtkdwgA.amd","../.chunks/core-
|
|
1
|
+
define(["require","exports","../.chunks/forms-CgtkdwgA.amd","../.chunks/core-Bg7lKh4e.amd","vue","../utils/clipboard.amd","../utils/string.amd","../utils/route.amd","../.chunks/utils-Br0ZfM-6.amd","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-R1tL-n2T.amd"],(function(y,n,c,f,d,m,S,g,p,k){"use strict";if(typeof d>"u")var d=window.Vue;class E{#s;#t;#e;#i;#c;#a=[];#o=[];#n=[];#r=[];constructor(s){var t;this.#t=s.store,this.#s=this.#t.$id,this.#e=s.options.Page,this.#i=s.options.user,this.#c=s.options.Api,this.#a=s.options.tpaNamesUrlHash||[],this.#o=s.options.tpaNamesStorage||[],this.#n=s.options.tpaNamesStorageLocal||[],this.#r=s.options.tpaNamesGuestLink||[],s.store.genGuestLink=(i,a)=>this.genGuestLink(i,a),(t=this.#i.guest_data)!=null&&t.data||(this.#u(),this.#u(!0),this.#f()),this.#S(),this.#k();const e=c.debounce(()=>{this.#m(),this.#g(),this.#g(!0)});s.store.$subscribe(e)}async genGuestLink(s,e){const t=this.#p();e=Object.assign(e,Object.fromEntries(t));const i=await this.#c.gen(s).setParams(e).call();if(i!=null&&i.errors)return;const a=i.result;await m.guestLinkToClipboard(a)}#p(){const s=new Map;return this.#r.forEach(e=>{const t=S.camelToSnakeCase(e);s.set(t,this.#t[e])}),s}#h(s){s.forEach((e,t)=>{const i=this.#t[t];if(e!=null&&i!==void 0&&e!=null&&e.constructor&&e.constructor===i.constructor){if(t.indexOf("date")===0&&!Array.isArray(e)){if(typeof e=="string"&&!/\d\d\d\d-\d\d-\d\d/.test(e))return}this.#t[t]=e}})}#l(s){const e=new Map;return s.forEach((t,i)=>{t!==null&&(t=JSON.stringify(t),e.set(i,t))}),e}#d(s){const e=new Map;return s.forEach((t,i)=>{if(!(t==null||t==="false")){try{if(typeof t=="string"&&!/^\d\d\d\d-\d\d-\d\d$/.test(t)&&(t=JSON.parse(t)),t==null||t==="false")return}catch{}e.set(i,t)}}),e}#f(){let s;try{s=JSON.parse(g.getHash(this.#s))}catch{}if(!s)return;const e=new Map;this.#a.forEach(t=>{const i=s[t];i&&e.set(t,i)}),this.#h(e)}#m(){const s=new Map;this.#a.forEach(i=>{const a=this.#t[i];s.set(i,a)});const e=Object.fromEntries(s),t=JSON.stringify(e);g.setHash(this.#s,t)}#u(s=!1){const e=new Map;let t=this.#o,i="state:"+this.#s;s&&(t=this.#n,i="state:"+this.#s+":"+location.pathname),t.forEach(o=>{const r=localStorage.getItem(i+":"+o);e.set(o,r)});const a=this.#d(e);this.#h(a)}#g(s=!1){const e=new Map;let t=this.#o,i="state:"+this.#s;s&&(t=this.#n,i="state:"+this.#s+":"+location.pathname),t.forEach(o=>{const r=this.#t[o];e.set(o,r)});const a=this.#l(e);t.forEach(o=>{const r=a.get(o);localStorage.setItem(i+":"+o,r)})}#S(){var a,o,r;const s=(o=(a=this.#i)==null?void 0:a.guest_data)==null?void 0:o.data;if(!s)return;this.#i.id===-1&&(this.#i.positionsReverseDates=s.positionsReverseDates);const e=new Map;this.#r.forEach(h=>{const u=s[h];e.set(h,u)});const t=this.#d(e);this.#h(t);const i=$(".mod_guest_title");if(((r=this.#t.competitorsIds)==null?void 0:r.length)===1&&this.#e.page.data.competitors){let h=this.#e.page.data.competitors.filter(u=>u.id===s.competitorsIds[0]);h.length&&($("a",i).attr("href","http://"+h[0].url),$("a",i).text(h[0].name))}}#k(){this.#t.regionsIndexes&&d.watch(this.#t.regionsIndexes,s=>{if(!s.length)return;s.forEach((i,a)=>s[a]=i);const e=TplProjectSelectorRegion.genSearchersMap(),t=[];e.forEach(i=>{i.regions.forEach(a=>{a.index!==-1&&t.push(a.index)})}),this.#t.regionsIndexes=s.filter(i=>t.includes(i))},{immediate:!0}),this.#t.competitorsIds&&d.watch(this.#t.competitorsIds,s=>{if(!s.length)return;s.forEach((t,i)=>s[i]=t);const e=[this.#e.page.data.project.id];this.#e.page.data.project.competitors.forEach(t=>{t.on>=0&&e.push(t.id)}),this.#t.competitorsIds=s.filter(t=>e.includes(t))},{immediate:!0})}}const w=l=>{var e,t,i,a;const s=l;!((e=s.options.tpaNamesUrlHash)!=null&&e.length)&&!((t=s.options.tpaNamesStorage)!=null&&t.length)&&!((i=s.options.tpaNamesStorageLocal)!=null&&i.length)&&!((a=s.options.tpaNamesGuestLink)!=null&&a.length)||new E(s)};n.Core=c.Core,n.i18nPlugin=c.i18n,n.useI18n=c.useI18n,n.useI18nLang=c.useI18nLang,n.corePlugin=f.core,n.useAsyncTopDialog=p.useAsyncTopDialog,n.useTopDialog=p.useTopDialog,n.TopDialogWorker=k.TopDialogWorker,n.piniaTPAPlugin=w,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=app.amd.js.map
|
package/core/app.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { d } from "../.chunks/forms-DarRVke_.es.js";
|
|
2
2
|
import { C as I, i as T, u as b, a as y } from "../.chunks/forms-DarRVke_.es.js";
|
|
3
|
-
import { c as G } from "../.chunks/core-
|
|
3
|
+
import { c as G } from "../.chunks/core-CPZQHtCX.es.js";
|
|
4
4
|
import { watch as p } from "vue";
|
|
5
5
|
import { guestLinkToClipboard as f } from "../utils/clipboard.js";
|
|
6
6
|
import { camelToSnakeCase as g } from "../utils/string.js";
|
|
7
7
|
import { getHash as l, setHash as m } from "../utils/route.js";
|
|
8
|
-
import { u as A, a as D } from "../.chunks/utils-
|
|
9
|
-
import { T as j } from "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-
|
|
8
|
+
import { u as A, a as D } from "../.chunks/utils-CSr6gGno.es.js";
|
|
9
|
+
import { T as j } from "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-DzO4WR8t.es.js";
|
|
10
10
|
class u {
|
|
11
11
|
#s;
|
|
12
12
|
#t;
|
package/dialog/dialog.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/page.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
define(["require","exports","../.chunks/page.vue_vue_type_script_setup_true_lang-BhK7qQ70.amd","vue","../.chunks/utils-Br0ZfM-6.amd"],(function(c,n,u,e,t){"use strict";if(typeof e>"u")var e=window.Vue;const i={name:{type:String,required:!0},order:{type:Number,required:!0},prevName:String,footerFullWith:Boolean},l=e.defineComponent({__name:"pageComponent",props:{component:{},keepAlive:{type:Boolean,default:!0},props:{},name:{},order:{},prevName:{},footerFullWith:{type:Boolean}},setup(m){const a=m,r=t.useTopDialogSelf(),s=(o,p)=>{if(!p.value){if(o.name!=="AsyncComponentWrapper"){p.value=!0;return}r.needShowPage(a.name)&&(r.isLoadingPage.value=!0,o.__asyncResolved&&(p.value=!0,r.isLoadingPage.value=!1))}};if(a.component.name==="AsyncComponentWrapper"){const o=e.ref(!1);e.onUpdated(()=>{s(a.component,o)})}return(o,p)=>(e.openBlock(),e.createBlock(e.KeepAlive,{include:o.keepAlive?"":"none"},[e.unref(r).needShowPage(o.name)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.component),e.mergeProps({key:0},a,{name:o.name,order:o.order,prevName:o.prevName}),null,16,["name","order","prevName"])):e.createCommentVNode("",!0)],1032,["include"]))}});n.TopDialog=u._sfc_main,n.TopDialogPage=u._sfc_main$1,n.useTopDialogSelf=t.useTopDialogSelf,n.TopDialogPageComponent=l,n.propsPageCommon=i,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=dialog.amd.js.map
|
package/dialog/dialog.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _ as k, a as B } from "../.chunks/page.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as k, a as B } from "../.chunks/page.vue_vue_type_script_setup_true_lang-BuzMReWp.es.js";
|
|
2
2
|
import { defineComponent as l, ref as i, onUpdated as u, createBlock as a, openBlock as p, KeepAlive as s, createCommentVNode as d, unref as g, resolveDynamicComponent as c, mergeProps as f } from "vue";
|
|
3
|
-
import { b as v } from "../.chunks/utils-
|
|
3
|
+
import { b as v } from "../.chunks/utils-CSr6gGno.es.js";
|
|
4
4
|
const C = {
|
|
5
5
|
name: {
|
|
6
6
|
type: String,
|
package/package.json
CHANGED
package/project/project.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../.chunks/forms-CgtkdwgA.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-CT-EXxJj.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-BLMYjYLV.amd","../.chunks/utils-BmI_WbPx.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],(function(ne,V,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$1,{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$2,{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"]))]))}}),ue=(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}))),w=-1,p=-2,R=-1,se={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},J={key:p,name:"--",index:p},G={key:p,name:"--",regions:[J],regionByIndex:new Map([[p,J]])},A={key:p,name:"Autoselect",index:p},U={key:p,name:"Autoselect",regions:[A],regionByIndex:new Map([[p,A]])},Y={countryCode:"00",depth:1,device:0,key:R,index:R,lang:"ru",name:"Without region"},ce=()=>(A.name=x.useI18n().Common.Autoselect,A),ge=()=>(ce(),U.name=x.useI18n().Common.Autoselect,console.log(U),U),fe=()=>(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(p,ge()),t.size||t.set(p,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:se[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={...fe()};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--uU_HPMU.amd"],n,l))),ve=(n,l)=>{const r=x.useI18n(),t=e.ref(l.value.keys().next().value??p),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(p)){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}},ye=(n,l)=>{var o,a,s;const r=x.useI18n(),t=e.ref(p);n.modelValue.length===1&&(t.value=n.modelValue[0]),t.value===p&&(n.forFrequency?t.value=((a=(o=l.value)==null?void 0:o.regionByIndex.values().next().value)==null?void 0:a.key)??p:t.value=((s=l.value)==null?void 0:s.regionByIndex.keys().next().value)??p);const d=e.computed(()=>{var h;const v=new Map;return(h=l.value.regionByIndex)==null||h.forEach(k=>{let i=k.name;if(n.forFrequency){const I={value:k.key,title:i};v.has(k.key)||v.set(k.key,I);return}k.device&&(i+=" ("+r.Common["Device_"+k.device]+")");const f=P.getLangLabel(l.value.key||0,k.lang??"");f&&(i+=" / "+f);const c={value:k.index,title:i,icon:k.device?P.getDeviceGIcon(k.device):void 0};v.set(k.index,c)}),v});return e.watch(d,(v,h)=>{var c;if(n.onlySearcher||t.value!==void 0&&v.get(t.value))return;let k=v.keys().next().value;if(t.value===p||k===p){t.value=k;return}let i=((c=h==null?void 0:h.get(t.value))==null?void 0:c.title)||"",f=-1;for(const[I,B]of v.entries()){const C=B.title;if(typeof C!="string"||typeof I=="string")break;if(C===i){k=I;break}const T=new RegExp(` \\((${r.Common.Device_1}|${r.Common.Device_2})\\)`);let m=i,u=3;C.indexOf(m)===-1&&(m=i.replace(/^[^a-zа-я]/i,"").replace(T,""),u--),C.indexOf(m)===-1&&(m=i.replace(/ \/.*/,""),u--),C.indexOf(m)===-1&&(m=i.replace(/ \/.*/,""),m=m.replace(/^[^a-zа-я]/i,"").replace(T,""),u--),C.indexOf(m)!==-1&&(u<=f||(f=u,k=I))}t.value=k}),{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}},he=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(f=>{f.regionByIndex.forEach(c=>{c.index!==R&&c.index!==p&&i.add(c.index)})}),i}),d=ve(n,l),o=ye(n,r),a=pe(n,l,t);e.watch(l,()=>{var f,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 T,m,u;if(n.onlySearcher&&C.key===d.searcherKey.value){i=d.searcherKey.value;return}if(o.regionIndex.value&&((T=C.regionByIndex)!=null&&T.has(o.regionIndex.value))&&(i=C.key),!n.onlySearcher){let g;i!==void 0&&(g=(m=l.value.get(i))==null?void 0:m.regionByIndex);const y=(u=l.value.get(C.key))==null?void 0:u.regionByIndex;g!=null&&g.has(p)&&!(y!=null&&y.has(p))&&(i=C.key)}}),i!==void 0&&(d.searcherKey.value=i),o.regionIndex.value!==void 0&&!((c=(f=r.value)==null?void 0:f.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===p))return d.searcherKey.value},v=()=>{if(n.onlySearcher||o.regionIndex.value===p)return;let i=o.regionIndex.value;if(n.forFrequency){const f=o.regionIndex.value,c=H(n.forFrequency,{searcher_key:s(),key:f},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 f,c;const i=v();if(i!==void 0)return(c=(f=h())==null?void 0:f.regionByIndex)==null?void 0:c.get(i)}}},ke=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:k,getRegion:i}=he(r),f=()=>{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===p&&!r.autoRegion&&(t.value.length=0)):(t.value=[a.regionIndex.value],a.regionIndex.value===p&&!r.autoRegion&&(t.value.length=0));!r.onlySearcher&&!h.value.size&&(o.searcherKey.value=p)}),d.value&&e.watch(d,()=>{d.value&&(t.value=[d.value])},{immediate:!0}),e.watch(t,()=>{var c,I,B,C,T;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]===p&&!r.autoRegion){let m=v.value.keys().next().value;m===p&&!r.autoRegion&&(m=void 0,d.value=p),m!==void 0?t.value=[m]: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 m=[...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=(T=(C=(B=v.value.values().next().value)==null?void 0:B.regionByIndex)==null?void 0:C.values().next().value)==null?void 0:T.key),u===p&&!r.autoRegion&&(u=void 0,d.value=p),!m.length)u!==void 0&&m.push(u);else if(m.length===1){let g=h.value;r.forFrequency&&(g=new Set,v.value.forEach(y=>{y.regionByIndex.forEach(S=>{S.index!==R&&S.index!==p&&g.add(S.key)})})),g.has(m[0])||(m=[],u!==void 0&&m.push(u))}else m=m.filter(g=>h.value.has(g)),!m.length&&u!==void 0&&m.push(u);if(JSON.stringify(t.value)!==JSON.stringify(m)){t.value=m;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 m;for(const u of v.value.values()){for(const g of u.regionByIndex.values())if((r.forFrequency?g.key:g.index)===a.regionIndex.value){m=u.key;break}if(m!==void 0)break}m!==void 0&&(o.searcherKey.value=m)}else o.searcherKey.value=w,s.regionsIndexes.value=[...t.value]}},{immediate:!0}),l({getSearcher:k,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$9,{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$9,{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$1,{key:1,name:"compare",onClick:f,"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))}}),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},Se=(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,D(t,n,r)}),t.click()},e.isRef(n.modelValue)?e.watch(n.modelValue,()=>D(t,n,r)):_.storage(t,"topTagSelectorRender",d=>{n.modelValue=d;const o=_.storage(t,"topTagSelectorTarget");o&&(o.model.value=d),D(t,n,r)}),D(t,n,r),t},Ie=(n,l)=>{var r;(r=_.storage(n,"topTagSelectorRender"))==null||r(l)},D=(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=Z({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=Z({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)})},Z=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},xe=[{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"}],Ce=["data-tag_id","data-tag_color_id","title"],F=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,Ce))}}),Be=["contenteditable","onKeydown"],ee=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:f=>f.preventDefault()}:{}),s=e.ref(!1),v=async()=>{var f;s.value=!0,await e.nextTick(),(f=o.value)==null||f.focus()},h=()=>{var c;const f=(c=o.value)==null?void 0:c.innerText;if(!f)return k();o.value&&(o.value.innerText=f),s.value=!1,t("update:name",f)},k=async()=>{o.value&&(o.value.innerText=r.name),s.value=!1},i=f=>{if(s.value||r.disabled)return;let c="selected";r.canExclude&&(f.ctrlKey||f.metaKey)&&(c="excluded"),r.state==c&&(c=""),c===""&&t("unselect"),c==="selected"&&t("select"),c==="excluded"&&t("exclude")};return(f,c)=>(e.openBlock(),e.createBlock(E._sfc_main$2,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":f.disabled,"top-tagSelector_tagListItem-canExclude":f.canExclude,"top-tagSelector-active":!!f.state,"top-tagSelector-excluded":f.state==="excluded"}),onClick:e.withModifiers(i,["stop"])},{default:e.withCtx(()=>[e.createVNode(F,{id:f.id,name:d.value,colorId:f.colorId,state:f.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(k,["stop"]),["esc"])]}),e.toDisplayString(d.value),17,Be),f.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"]))}}),Ve={key:1},te=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{},styling:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const l=n,r=e.useModel(n,"modelValue"),t=l.useTopButton?x._sfc_main$1:"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$1,{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.styling},a.$attrs),{[e.unref(d)]:e.withCtx(()=>[!r.value.length&&a.mode==="filter"?(e.openBlock(),e.createBlock(F,{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",Ve,[e.renderSlot(a.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(r.value,h=>{var k,i;return e.openBlock(),e.createBlock(F,{id:e.unref(K)(h),colorId:((k=e.unref(O)(h,a.tags))==null?void 0:k.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","styling"])),[[v,o,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),Te=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},styling:{}},{modelValue:{required:!0},modelModifiers:{},tags:{default:e.reactive(xe)},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"),k=()=>{var y;const u=" "+((y=r.Common.Tags)==null?void 0:y.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 f=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 y=X(u);let S=i.value.model.value.filter(M=>M!==u&&M!==y);g==="select"&&S.push(u),g==="exclude"&&S.push(y),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(M=>M!=="1"))),t.singleMode&&!i.value.filters&&(S.length||(S=i.value.model.value),S.length>1&&(S=[S[S.length-1]])),S.sort((M,N)=>{if(!t.tags)return 0;const q=t.tags.findIndex(b=>b.id===M),L=t.tags.findIndex(b=>b.id===N);return q-L}),i.value.model.value=S,i.value.mode==="setter"&&i.value.targetId!==void 0&&s("setter",{tagsIds:S,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)},T=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(y,S){if(!o.value)return;const M=$(S.item).parent().find("[data-tag_id]"),N=[];M.each((q,L)=>{if(!o.value)return;const b=$(L).attr("data-tag_id");N.push(b)}),o.value.sort((q,L)=>{const b=N.findIndex(j=>j===q.id),we=N.findIndex(j=>j===L.id);return b-we}),s("tagsChanged",o.value)}})},m=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(te,{class:"top-as-selector",modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=y=>d.value=y),id:e.unref(v),tags:o.value,styling:u.styling,mode:"filter",useTopButton:""},null,8,["modelValue","id","tags","styling"]),e.createVNode(E._sfc_main,{id:e.unref(v),class:e.normalizeClass(B.value),onOpen:g[4]||(g[4]=y=>T(y)),onClose:g[5]||(g[5]=y=>m(y)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!u.singleMode?(e.openBlock(),e.createBlock(ee,{key:0,id:"all",colorId:"",name:u.$i18n.Common.All_tags??"",state:e.unref(i).model.value.length?"":"selected",onSelect:g[3]||(g[3]=y=>e.unref(i).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,y=>(e.openBlock(),e.createBlock(ee,{key:y.id,id:y.id,colorId:y.color_id,name:y.name,state:c(y.id),canExclude:e.unref(i).mode==="filter"&&!u.singleMode,editable:u.tagsEditable,disabled:f.value&&c(y.id)==="",onUnselect:S=>I(y.id,"unselect"),onSelect:S=>I(y.id,"select"),onExclude:S=>I(y.id,"exclude"),"onUpdate:name":S=>{y.name=S,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$2,{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$9,{modelValue:h.value,"onUpdate:modelValue":g[1]||(g[1]=y=>h.value=y),options:k()},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$1,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(x._sfc_main$1,{onClick:g[2]||(g[2]=y=>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))}});V.TopSelectorCompetitors=de,V.TopSelectorRegion=ke,V.TopTagSelector=Te,V.TopTagSelectorPopupOpener=te,V.TopTagSelectorTagIcon=F,V.dialogSelectorRegions=Q,V.findRegion=H,V.genElTopTagSelectorPopupOpener=Se,V.genSearcherByKey=z,V.renderElTopTagSelectorPopupOpener=Ie,V.useItemsFromCompetitors=ue,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
define(["require","exports","vue","../.chunks/forms-CgtkdwgA.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-CT-EXxJj.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-BLMYjYLV.amd","../.chunks/utils-Br0ZfM-6.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],(function(ne,V,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$1,{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$2,{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"]))]))}}),ue=(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}))),w=-1,p=-2,R=-1,se={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},J={key:p,name:"--",index:p},G={key:p,name:"--",regions:[J],regionByIndex:new Map([[p,J]])},A={key:p,name:"Autoselect",index:p},U={key:p,name:"Autoselect",regions:[A],regionByIndex:new Map([[p,A]])},Y={countryCode:"00",depth:1,device:0,key:R,index:R,lang:"ru",name:"Without region"},ce=()=>(A.name=x.useI18n().Common.Autoselect,A),ge=()=>(ce(),U.name=x.useI18n().Common.Autoselect,console.log(U),U),fe=()=>(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(p,ge()),t.size||t.set(p,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:se[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={...fe()};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-DuaLJE6o.amd"],n,l))),ve=(n,l)=>{const r=x.useI18n(),t=e.ref(l.value.keys().next().value??p),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(p)){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}},ye=(n,l)=>{var o,a,s;const r=x.useI18n(),t=e.ref(p);n.modelValue.length===1&&(t.value=n.modelValue[0]),t.value===p&&(n.forFrequency?t.value=((a=(o=l.value)==null?void 0:o.regionByIndex.values().next().value)==null?void 0:a.key)??p:t.value=((s=l.value)==null?void 0:s.regionByIndex.keys().next().value)??p);const d=e.computed(()=>{var h;const v=new Map;return(h=l.value.regionByIndex)==null||h.forEach(k=>{let i=k.name;if(n.forFrequency){const I={value:k.key,title:i};v.has(k.key)||v.set(k.key,I);return}k.device&&(i+=" ("+r.Common["Device_"+k.device]+")");const f=P.getLangLabel(l.value.key||0,k.lang??"");f&&(i+=" / "+f);const c={value:k.index,title:i,icon:k.device?P.getDeviceGIcon(k.device):void 0};v.set(k.index,c)}),v});return e.watch(d,(v,h)=>{var c;if(n.onlySearcher||t.value!==void 0&&v.get(t.value))return;let k=v.keys().next().value;if(t.value===p||k===p){t.value=k;return}let i=((c=h==null?void 0:h.get(t.value))==null?void 0:c.title)||"",f=-1;for(const[I,B]of v.entries()){const C=B.title;if(typeof C!="string"||typeof I=="string")break;if(C===i){k=I;break}const T=new RegExp(` \\((${r.Common.Device_1}|${r.Common.Device_2})\\)`);let m=i,u=3;C.indexOf(m)===-1&&(m=i.replace(/^[^a-zа-я]/i,"").replace(T,""),u--),C.indexOf(m)===-1&&(m=i.replace(/ \/.*/,""),u--),C.indexOf(m)===-1&&(m=i.replace(/ \/.*/,""),m=m.replace(/^[^a-zа-я]/i,"").replace(T,""),u--),C.indexOf(m)!==-1&&(u<=f||(f=u,k=I))}t.value=k}),{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}},he=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(f=>{f.regionByIndex.forEach(c=>{c.index!==R&&c.index!==p&&i.add(c.index)})}),i}),d=ve(n,l),o=ye(n,r),a=pe(n,l,t);e.watch(l,()=>{var f,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 T,m,u;if(n.onlySearcher&&C.key===d.searcherKey.value){i=d.searcherKey.value;return}if(o.regionIndex.value&&((T=C.regionByIndex)!=null&&T.has(o.regionIndex.value))&&(i=C.key),!n.onlySearcher){let g;i!==void 0&&(g=(m=l.value.get(i))==null?void 0:m.regionByIndex);const y=(u=l.value.get(C.key))==null?void 0:u.regionByIndex;g!=null&&g.has(p)&&!(y!=null&&y.has(p))&&(i=C.key)}}),i!==void 0&&(d.searcherKey.value=i),o.regionIndex.value!==void 0&&!((c=(f=r.value)==null?void 0:f.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===p))return d.searcherKey.value},v=()=>{if(n.onlySearcher||o.regionIndex.value===p)return;let i=o.regionIndex.value;if(n.forFrequency){const f=o.regionIndex.value,c=H(n.forFrequency,{searcher_key:s(),key:f},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 f,c;const i=v();if(i!==void 0)return(c=(f=h())==null?void 0:f.regionByIndex)==null?void 0:c.get(i)}}},ke=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:k,getRegion:i}=he(r),f=()=>{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===p&&!r.autoRegion&&(t.value.length=0)):(t.value=[a.regionIndex.value],a.regionIndex.value===p&&!r.autoRegion&&(t.value.length=0));!r.onlySearcher&&!h.value.size&&(o.searcherKey.value=p)}),d.value&&e.watch(d,()=>{d.value&&(t.value=[d.value])},{immediate:!0}),e.watch(t,()=>{var c,I,B,C,T;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]===p&&!r.autoRegion){let m=v.value.keys().next().value;m===p&&!r.autoRegion&&(m=void 0,d.value=p),m!==void 0?t.value=[m]: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 m=[...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=(T=(C=(B=v.value.values().next().value)==null?void 0:B.regionByIndex)==null?void 0:C.values().next().value)==null?void 0:T.key),u===p&&!r.autoRegion&&(u=void 0,d.value=p),!m.length)u!==void 0&&m.push(u);else if(m.length===1){let g=h.value;r.forFrequency&&(g=new Set,v.value.forEach(y=>{y.regionByIndex.forEach(S=>{S.index!==R&&S.index!==p&&g.add(S.key)})})),g.has(m[0])||(m=[],u!==void 0&&m.push(u))}else m=m.filter(g=>h.value.has(g)),!m.length&&u!==void 0&&m.push(u);if(JSON.stringify(t.value)!==JSON.stringify(m)){t.value=m;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 m;for(const u of v.value.values()){for(const g of u.regionByIndex.values())if((r.forFrequency?g.key:g.index)===a.regionIndex.value){m=u.key;break}if(m!==void 0)break}m!==void 0&&(o.searcherKey.value=m)}else o.searcherKey.value=w,s.regionsIndexes.value=[...t.value]}},{immediate:!0}),l({getSearcher:k,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$9,{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$9,{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$1,{key:1,name:"compare",onClick:f,"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))}}),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},Se=(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,D(t,n,r)}),t.click()},e.isRef(n.modelValue)?e.watch(n.modelValue,()=>D(t,n,r)):_.storage(t,"topTagSelectorRender",d=>{n.modelValue=d;const o=_.storage(t,"topTagSelectorTarget");o&&(o.model.value=d),D(t,n,r)}),D(t,n,r),t},Ie=(n,l)=>{var r;(r=_.storage(n,"topTagSelectorRender"))==null||r(l)},D=(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=Z({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=Z({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)})},Z=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},xe=[{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"}],Ce=["data-tag_id","data-tag_color_id","title"],F=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,Ce))}}),Be=["contenteditable","onKeydown"],ee=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:f=>f.preventDefault()}:{}),s=e.ref(!1),v=async()=>{var f;s.value=!0,await e.nextTick(),(f=o.value)==null||f.focus()},h=()=>{var c;const f=(c=o.value)==null?void 0:c.innerText;if(!f)return k();o.value&&(o.value.innerText=f),s.value=!1,t("update:name",f)},k=async()=>{o.value&&(o.value.innerText=r.name),s.value=!1},i=f=>{if(s.value||r.disabled)return;let c="selected";r.canExclude&&(f.ctrlKey||f.metaKey)&&(c="excluded"),r.state==c&&(c=""),c===""&&t("unselect"),c==="selected"&&t("select"),c==="excluded"&&t("exclude")};return(f,c)=>(e.openBlock(),e.createBlock(E._sfc_main$2,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":f.disabled,"top-tagSelector_tagListItem-canExclude":f.canExclude,"top-tagSelector-active":!!f.state,"top-tagSelector-excluded":f.state==="excluded"}),onClick:e.withModifiers(i,["stop"])},{default:e.withCtx(()=>[e.createVNode(F,{id:f.id,name:d.value,colorId:f.colorId,state:f.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(k,["stop"]),["esc"])]}),e.toDisplayString(d.value),17,Be),f.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"]))}}),Ve={key:1},te=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{},styling:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const l=n,r=e.useModel(n,"modelValue"),t=l.useTopButton?x._sfc_main$1:"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$1,{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.styling},a.$attrs),{[e.unref(d)]:e.withCtx(()=>[!r.value.length&&a.mode==="filter"?(e.openBlock(),e.createBlock(F,{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",Ve,[e.renderSlot(a.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(r.value,h=>{var k,i;return e.openBlock(),e.createBlock(F,{id:e.unref(K)(h),colorId:((k=e.unref(O)(h,a.tags))==null?void 0:k.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","styling"])),[[v,o,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),Te=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},styling:{}},{modelValue:{required:!0},modelModifiers:{},tags:{default:e.reactive(xe)},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"),k=()=>{var y;const u=" "+((y=r.Common.Tags)==null?void 0:y.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 f=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 y=X(u);let S=i.value.model.value.filter(M=>M!==u&&M!==y);g==="select"&&S.push(u),g==="exclude"&&S.push(y),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(M=>M!=="1"))),t.singleMode&&!i.value.filters&&(S.length||(S=i.value.model.value),S.length>1&&(S=[S[S.length-1]])),S.sort((M,N)=>{if(!t.tags)return 0;const q=t.tags.findIndex(b=>b.id===M),L=t.tags.findIndex(b=>b.id===N);return q-L}),i.value.model.value=S,i.value.mode==="setter"&&i.value.targetId!==void 0&&s("setter",{tagsIds:S,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)},T=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(y,S){if(!o.value)return;const M=$(S.item).parent().find("[data-tag_id]"),N=[];M.each((q,L)=>{if(!o.value)return;const b=$(L).attr("data-tag_id");N.push(b)}),o.value.sort((q,L)=>{const b=N.findIndex(j=>j===q.id),we=N.findIndex(j=>j===L.id);return b-we}),s("tagsChanged",o.value)}})},m=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(te,{class:"top-as-selector",modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=y=>d.value=y),id:e.unref(v),tags:o.value,styling:u.styling,mode:"filter",useTopButton:""},null,8,["modelValue","id","tags","styling"]),e.createVNode(E._sfc_main,{id:e.unref(v),class:e.normalizeClass(B.value),onOpen:g[4]||(g[4]=y=>T(y)),onClose:g[5]||(g[5]=y=>m(y)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!u.singleMode?(e.openBlock(),e.createBlock(ee,{key:0,id:"all",colorId:"",name:u.$i18n.Common.All_tags??"",state:e.unref(i).model.value.length?"":"selected",onSelect:g[3]||(g[3]=y=>e.unref(i).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,y=>(e.openBlock(),e.createBlock(ee,{key:y.id,id:y.id,colorId:y.color_id,name:y.name,state:c(y.id),canExclude:e.unref(i).mode==="filter"&&!u.singleMode,editable:u.tagsEditable,disabled:f.value&&c(y.id)==="",onUnselect:S=>I(y.id,"unselect"),onSelect:S=>I(y.id,"select"),onExclude:S=>I(y.id,"exclude"),"onUpdate:name":S=>{y.name=S,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$2,{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$9,{modelValue:h.value,"onUpdate:modelValue":g[1]||(g[1]=y=>h.value=y),options:k()},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$1,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(x._sfc_main$1,{onClick:g[2]||(g[2]=y=>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))}});V.TopSelectorCompetitors=de,V.TopSelectorRegion=ke,V.TopTagSelector=Te,V.TopTagSelectorPopupOpener=te,V.TopTagSelectorTagIcon=F,V.dialogSelectorRegions=Q,V.findRegion=H,V.genElTopTagSelectorPopupOpener=Se,V.genSearcherByKey=z,V.renderElTopTagSelectorPopupOpener=Ie,V.useItemsFromCompetitors=ue,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=project.amd.js.map
|
package/project/project.js
CHANGED
|
@@ -3,7 +3,7 @@ import { defineComponent as P, mergeModels as N, useModel as D, computed as E, c
|
|
|
3
3
|
import { u as R, C as J, c as H, o as re, d as Ae } from "../.chunks/forms-DarRVke_.es.js";
|
|
4
4
|
import { _ as Ie, b as ue, a as Re } from "../.chunks/listItem.vue_vue_type_script_setup_true_lang-DzJ_pc-d.es.js";
|
|
5
5
|
import { _ as Oe } from "../.chunks/menu.vue_vue_type_style_index_0_lang-COD_4iTy.es.js";
|
|
6
|
-
import { u as Ne } from "../.chunks/utils-
|
|
6
|
+
import { u as Ne } from "../.chunks/utils-CSr6gGno.es.js";
|
|
7
7
|
import { getSearcherGIcon as De, getLangLabel as Fe, getDeviceGIcon as qe } from "../utils/searchers.js";
|
|
8
8
|
import { storage as W } from "../utils/dom.js";
|
|
9
9
|
import { TopPopupWorker as Pe } from "../popup/worker.js";
|
|
@@ -170,7 +170,7 @@ const Ue = { class: "top-selectorCompetitors" }, je = { class: "top-ellipsis1" }
|
|
|
170
170
|
}), i))
|
|
171
171
|
return !1;
|
|
172
172
|
}), i;
|
|
173
|
-
}, Qe = Ne(() => import("../.chunks/dialog_selectorRegions-
|
|
173
|
+
}, Qe = Ne(() => import("../.chunks/dialog_selectorRegions-CiOb1xAG.es.js")), Xe = (t, l) => {
|
|
174
174
|
const o = R(), e = F(l.value.keys().next().value ?? p), i = E(() => {
|
|
175
175
|
const a = /* @__PURE__ */ new Map();
|
|
176
176
|
if (l.value.forEach((n) => {
|
|
@@ -26,52 +26,20 @@ export type ElTopDialogOpener<El extends HTMLElement = HTMLElement> = El & {
|
|
|
26
26
|
};
|
|
27
27
|
export type ElDialogOverlay = HTMLDivElement;
|
|
28
28
|
export type ElTopDialogWrapper = HTMLDialogElement & {
|
|
29
|
-
/**
|
|
30
|
-
* Инициализирован ли dialog
|
|
31
|
-
*/
|
|
32
|
-
__isInit?: true;
|
|
33
29
|
querySelector: (selectors: '.ui-dialog-content') => ElTopDialog;
|
|
34
|
-
getAttribute: {
|
|
35
|
-
(attributeName: 'aria-modal'): 'true' | 'false' | null;
|
|
36
|
-
(attributeName: string): string | null;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* @todo Убрать после переписки jquery на сайте
|
|
40
|
-
* @description Для обратной совместимости с jquery-диалогом
|
|
41
|
-
* @param action
|
|
42
|
-
*/
|
|
43
|
-
dialog?: (action?: string) => ElTopDialogWrapper;
|
|
44
|
-
/**
|
|
45
|
-
* @todo Убрать после переписки jquery на сайте
|
|
46
|
-
* @description Для обратной совместимости с jquery-диалогом
|
|
47
|
-
* @param classNames
|
|
48
|
-
* @param state
|
|
49
|
-
*/
|
|
50
|
-
toggleClass?: (classNames: string | string[] | ((index: number, className: string, state: boolean) => string | string[]), state?: boolean) => ElTopDialogWrapper;
|
|
51
|
-
/**
|
|
52
|
-
* @todo Убрать после переписки jquery на сайте
|
|
53
|
-
* @description Для обратной совместимости с jquery-диалогом
|
|
54
|
-
* @param args
|
|
55
|
-
*/
|
|
56
|
-
data?: (args: [string, any] | Record<string, any>) => ElTopDialogWrapper;
|
|
57
30
|
};
|
|
58
|
-
export type ElTopDialog =
|
|
31
|
+
export type ElTopDialog = HTMLElement & {
|
|
59
32
|
getAttribute: (qualifiedName: 'id') => string;
|
|
60
33
|
closest: (el: '.ui-dialog') => ElTopDialogWrapper;
|
|
61
34
|
dataset: {
|
|
62
35
|
viewPageActive: string;
|
|
63
|
-
/**
|
|
64
|
-
* Создано ли диалоговое окно на Vue
|
|
65
|
-
* @description Строка 'true' - если Да
|
|
66
|
-
*/
|
|
67
|
-
vueDiaolg?: 'true';
|
|
68
36
|
};
|
|
69
37
|
};
|
|
70
|
-
export type ElTopDialogBody =
|
|
71
|
-
export type ElTopDialogPage =
|
|
38
|
+
export type ElTopDialogBody = HTMLElement;
|
|
39
|
+
export type ElTopDialogPage = HTMLElement & {
|
|
72
40
|
dataset: {
|
|
73
41
|
viewPage: string;
|
|
74
42
|
order?: string;
|
|
75
43
|
};
|
|
76
44
|
};
|
|
77
|
-
export type ElTopDialogModalLayer =
|
|
45
|
+
export type ElTopDialogModalLayer = HTMLElement;
|
|
@@ -13,24 +13,23 @@ export declare const getDialogWrapperId: (id: string) => string;
|
|
|
13
13
|
export declare const getDialogId: (id: string) => string;
|
|
14
14
|
/**
|
|
15
15
|
* Получить внешний элемент нативного диалогового окна
|
|
16
|
-
* @param
|
|
16
|
+
* @param id - id элемента ElTopDialog
|
|
17
17
|
* @see ElTopDialog
|
|
18
18
|
*/
|
|
19
|
-
export declare const getElDialogWrapper: (
|
|
19
|
+
export declare const getElDialogWrapper: (id: string) => ElTopDialogWrapper;
|
|
20
20
|
/**
|
|
21
21
|
* Получить внутренний элемент нативного диалогового окна
|
|
22
|
-
* @param
|
|
22
|
+
* @param id - id элемента ElTopDialogWrapper
|
|
23
23
|
* @see ElTopDialogWrapper
|
|
24
24
|
*/
|
|
25
|
-
export declare const getElDialog: (
|
|
25
|
+
export declare const getElDialog: (id: string) => ElTopDialog;
|
|
26
26
|
/**
|
|
27
27
|
* Создать и монтировать в body нативную оболочку окна
|
|
28
28
|
* @description Используется только для нативного диалогового окна
|
|
29
|
-
* @param
|
|
29
|
+
* @param innerId - id окна
|
|
30
30
|
* @param pageActive - активная страница
|
|
31
|
-
* @see ElTopDialog
|
|
32
31
|
*/
|
|
33
|
-
export declare const createAndMountElDialogWrapper: (
|
|
32
|
+
export declare const createAndMountElDialogWrapper: (innerId: string, pageActive: string) => HTMLDialogElement;
|
|
34
33
|
export declare const TopDialogUtils: {
|
|
35
34
|
getElDialogById: (id: string) => ElTopDialog | null;
|
|
36
35
|
updatePageVue: (dialogId: string, pageName?: string, pageNameNext?: string) => Promise<void>;
|
|
@@ -42,5 +41,5 @@ export declare const TopDialogUtils: {
|
|
|
42
41
|
setLoading: (elPages: ElTopDialogPage[] | JQuery<ElTopDialogPage>, isLoading: boolean, duration?: number) => void;
|
|
43
42
|
isLoading: (elPage: ElTopDialogPage | JQuery<ElTopDialogPage>) => boolean;
|
|
44
43
|
inAnimation: (elDialog: ElTopDialog | JQuery<ElTopDialog>) => boolean;
|
|
45
|
-
close: (
|
|
44
|
+
close: (dialogId: string) => void;
|
|
46
45
|
};
|