@topvisor/ui 1.5.10-animation.0 → 1.5.10-hotkeys.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.chunks/{app-BbV6AslA.es.amd.js → app-BpyVfZtN.es.amd.js} +2 -2
  2. package/.chunks/{app-BbV6AslA.es.amd.js.map → app-BpyVfZtN.es.amd.js.map} +1 -1
  3. package/.chunks/{app-BbV6AslA.es.js → app-BpyVfZtN.es.js} +2 -2
  4. package/.chunks/{app-BbV6AslA.es.js.map → app-BpyVfZtN.es.js.map} +1 -1
  5. package/.chunks/{dialog-CiK4MPcB.es.amd.js → dialog-DZLTpHen.es.amd.js} +2 -2
  6. package/.chunks/{dialog-CiK4MPcB.es.amd.js.map → dialog-DZLTpHen.es.amd.js.map} +1 -1
  7. package/.chunks/{dialog-CiK4MPcB.es.js → dialog-DZLTpHen.es.js} +2 -2
  8. package/.chunks/{dialog-CiK4MPcB.es.js.map → dialog-DZLTpHen.es.js.map} +1 -1
  9. package/.chunks/dialog_regionSelectorRegions-Nob9K60s.es.amd.js +2 -0
  10. package/.chunks/dialog_regionSelectorRegions-Nob9K60s.es.amd.js.map +1 -0
  11. package/.chunks/{dialog_regionSelectorRegions-CRUwGUuz.es.js → dialog_regionSelectorRegions-Nob9K60s.es.js} +40 -39
  12. package/.chunks/dialog_regionSelectorRegions-Nob9K60s.es.js.map +1 -0
  13. package/.chunks/utils-B8-plt84.es.amd.js +3 -0
  14. package/.chunks/utils-B8-plt84.es.amd.js.map +1 -0
  15. package/.chunks/{utils-DzPB2u_5.es.js → utils-B8-plt84.es.js} +3 -3
  16. package/.chunks/utils-B8-plt84.es.js.map +1 -0
  17. package/.chunks/{utils-Xb6J5WcU.es.amd.js → utils-CUvjkXu8.es.amd.js} +2 -2
  18. package/.chunks/{utils-Xb6J5WcU.es.amd.js.map → utils-CUvjkXu8.es.amd.js.map} +1 -1
  19. package/.chunks/{utils-Xb6J5WcU.es.js → utils-CUvjkXu8.es.js} +2 -2
  20. package/.chunks/utils-CUvjkXu8.es.js.map +1 -0
  21. package/assets/project.css +1 -1
  22. package/autoload-css-manifest.amd.json +1 -1
  23. package/autoload-css-manifest.json +1 -1
  24. package/core/app.amd.js +1 -1
  25. package/core/app.amd.js.map +1 -1
  26. package/core/app.js +2 -2
  27. package/dialog/dialog.amd.js +1 -1
  28. package/dialog/dialog.amd.js.map +1 -1
  29. package/dialog/dialog.js +2 -2
  30. package/package.json +1 -1
  31. package/project/project.amd.js +1 -1
  32. package/project/project.amd.js.map +1 -1
  33. package/project/project.js +374 -333
  34. package/project/project.js.map +1 -1
  35. package/schedule/schedule.amd.js +1 -1
  36. package/schedule/schedule.amd.js.map +1 -1
  37. package/schedule/schedule.js +1 -1
  38. package/src/components/project/navigation/navigateCache.d.ts +15 -0
  39. package/src/components/project/navigation/navigation.d.ts +4 -0
  40. package/src/components/project/project.d.ts +1 -0
  41. package/src/components/project/projectSelector/utils.d.ts +1 -1
  42. package/src/components/project/regionSelector/types.d.ts +4 -0
  43. package/.chunks/dialog_regionSelectorRegions-CRUwGUuz.es.amd.js +0 -2
  44. package/.chunks/dialog_regionSelectorRegions-CRUwGUuz.es.amd.js.map +0 -1
  45. package/.chunks/dialog_regionSelectorRegions-CRUwGUuz.es.js.map +0 -1
  46. package/.chunks/utils-DzPB2u_5.es.amd.js +0 -2
  47. package/.chunks/utils-DzPB2u_5.es.amd.js.map +0 -1
  48. package/.chunks/utils-DzPB2u_5.es.js.map +0 -1
  49. package/.chunks/utils-Xb6J5WcU.es.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-CUvjkXu8.es.js","names":[],"sources":["../../src/components/dialog/dialog/dialog.vue","../../src/components/dialog/dialog/dialog.vue","../../src/components/dialog/lib/worker.ts","../../src/components/dialog/dialog/composables/dialogHandle.ts","../../src/components/dialog/dialog/dialogs/dialogs.vue","../../src/components/dialog/dialog/dialogs/dialogs.vue","../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ComponentInternalInstance } from 'vue';\nimport { getCurrentInstance, onMounted, provide, watch } from 'vue';\nimport { getDialogWorker } from './dialogs/dialogs.vue';\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\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</script>\n\n<template>\n\t<div\n\t\t:id=\"dialog.idAttr\"\n\t\tclass=\"top-dialog\"\n\t\t:class=\"classes\"\n\t\t:style=\"{\n\t\t\t'--top-dialog-width': width,\n\t\t\t'--top-dialog-height': height,\n\t\t}\"\n\t\ttabindex=\"-1\"\n\t\t:data-view-page-active=\"dialog.pageActive.value\"\n\t\t:data-modal=\"modal\"\n\t\t:data-position=\"position\"\n\t>\n\t\t<div class=\"modal-layer modal-layer-header\"></div>\n\n\t\t<div class=\"modal-layer modal-layer-body\" :style=\"{'min-height': height + 'px'}\"></div>\n\n\t\t<slot name=\"default\"></slot>\n\t</div>\n</template>\n","<script setup lang=\"ts\">\nimport type { ComponentInternalInstance } from 'vue';\nimport { getCurrentInstance, onMounted, provide, watch } from 'vue';\nimport { getDialogWorker } from './dialogs/dialogs.vue';\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\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</script>\n\n<template>\n\t<div\n\t\t:id=\"dialog.idAttr\"\n\t\tclass=\"top-dialog\"\n\t\t:class=\"classes\"\n\t\t:style=\"{\n\t\t\t'--top-dialog-width': width,\n\t\t\t'--top-dialog-height': height,\n\t\t}\"\n\t\ttabindex=\"-1\"\n\t\t:data-view-page-active=\"dialog.pageActive.value\"\n\t\t:data-modal=\"modal\"\n\t\t:data-position=\"position\"\n\t>\n\t\t<div class=\"modal-layer modal-layer-header\"></div>\n\n\t\t<div class=\"modal-layer modal-layer-body\" :style=\"{'min-height': height + 'px'}\"></div>\n\n\t\t<slot name=\"default\"></slot>\n\t</div>\n</template>\n","import { genHash, getHash, historySetState } from '@/core/utils/route';\nimport type { ElTopDialog, ElTopDialogOpener, ElTopDialogPage, MoveDirection, TopDialogOptions } from './types';\nimport { isVisible, querySelectorAllArray } from '@/core/utils/dom';\nimport type { $el } from '@/components/types';\n\nexport abstract class TopDialogWorker {\n\tstatic state = {\n\t\tload: undefined as TopDialogOptions['load'] | undefined,\n\t\tdecoratorOnCreate: undefined as TopDialogOptions['decoratorOnCreate'] | undefined,\n\n\t\t/**\n\t\t * Порядковый номер перехода в диалоговых окнах\n\t\t *\n\t\t * Для расчета анимации Вперед / Назад\n\t\t */\n\t\tviewPageN: 0,\n\t};\n\n\tprivate static inited = false;\n\n\t/**\n\t * Инициировать события слежения за парамтерами url\n\t *\n\t * Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу\n\t */\n\tstatic init(options?: TopDialogOptions) {\n\t\tif (this.inited) return;\n\t\tthis.inited = true;\n\n\t\tthis.state.load = options?.load;\n\t\tthis.state.decoratorOnCreate = options?.decoratorOnCreate;\n\n\t\tconst autoInitDelay = options?.autoInitDelay ?? 5000;\n\n\t\twindow.addEventListener('hashchange', (e) => {\n\t\t\tthis.opendDialogsFromChangeUrl(e.oldURL, e.newURL);\n\t\t});\n\n\t\tthis.opendDialogsFromChangeUrl('', location.href);\n\n\t\t/**\n\t\t * Сгенерировать ссылку для перехода к странице диалогового окна\n\t\t */\n\t\tdocument.addEventListener('mousedown', async (e) => {\n\t\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\t\tconst elEventTarget = e.target;\n\n\t\t\tconst el = elEventTarget.closest<ElTopDialogOpener<HTMLAnchorElement>>('a[data-to-view]');\n\t\t\tif (!el) return;\n\n\t\t\t// const toView = el.dataset.toView;\n\t\t\t// const viewName = toView.split('-')[0];\n\t\t\t// const $toDialog = $('#' + viewName);\n\t\t\t// const $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\t// const $currentPage = $('> .active', $modalLayers);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\t// /**\n\t\t\t// * Данный алгоритм определения направления работает не корректно, так как для чтения свойства order менят состояние через getDialogsUtils()\n\t\t\t// */\n\t\t\t// if ($currentPage.length) {\n\t\t\t// \tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t//\n\t\t\t// \tconst TopDialogUtils = await this.getDialogsUtils();\n\t\t\t//\n\t\t\t// \tawait TopDialogUtils.updatePageVue(viewName, undefined, pageName);\n\t\t\t//\n\t\t\t// \tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t// \tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t// }\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tel.href = TopDialogWorker.genViewPageHash(el.dataset.toView, moveDirection);\n\t\t});\n\n\t\t/**\n\t\t * Осуществить переход по ссылке с учетом historyType\n\t\t */\n\t\tdocument.addEventListener('click', async (e) => {\n\t\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\t\tconst elEventTarget = e.target;\n\n\t\t\tconst el = elEventTarget.closest<ElTopDialogOpener>('[data-to-view]');\n\t\t\tif (!el) return;\n\n\t\t\t// Подождать генерацию ссылки\n\t\t\tif (el instanceof HTMLAnchorElement && el.href === '.') {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst mouseEvent = new MouseEvent('mousedown', {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcancelable: true,\n\t\t\t\t\tview: window,\n\t\t\t\t});\n\n\t\t\t\tel.dispatchEvent(mouseEvent);\n\n\t\t\t\tsetTimeout(() => el.click());\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\n\t\t\tconst elDialog = TopDialogUtils.getElDialogById(viewName);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\tif (elDialog) {\n\t\t\t\tconst elModalLayers = querySelectorAllArray(elDialog, '.modal-layer');\n\t\t\t\tconst elCurrentPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, el) => {\n\t\t\t\t\tconst elCurrentPage = el.querySelector<ElTopDialogPage>(':scope > .active');\n\n\t\t\t\t\tif (elCurrentPage) acc.push(elCurrentPage);\n\n\t\t\t\t\treturn acc;\n\t\t\t\t}, []);\n\n\t\t\t\tif (elCurrentPages.length) {\n\t\t\t\t\tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t\t\tconst elNextPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, el) => {\n\t\t\t\t\t\tconst elNextPage = el?.querySelector<ElTopDialogPage>(`:scope > [data-view-page=\"${pageName}\"]`);\n\n\t\t\t\t\t\tif (elNextPage) acc.push(elNextPage);\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, []);\n\n\t\t\t\t\tif ((elNextPages[0]?.dataset.order ?? 0) < (elCurrentPages[0]?.dataset.order ?? 0)) moveDirection = 'prev';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, moveDirection);\n\n\t\t\tif (el instanceof HTMLAnchorElement) {\n\t\t\t\t// диалоговое окно еще не открыто, произвести переход по ссылке\n\t\t\t\tif (!elDialog || !isVisible(elDialog)) return;\n\n\t\t\t\t// в адресе уже указана эта страница, необходимо явно запросить ее открытие\n\t\t\t\tif (location.hash.indexOf(toView.replace('-', '=')) !== -1) {\n\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst replaceHistory = !!elDialog?.dataset.toViewReplace;\n\n\t\t\tif (replaceHistory) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\thistorySetState(true, hash);\n\n\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\tif (moveDirection == 'next') {\n\t\t\t\t\tTopDialogWorker.state.viewPageN++;\n\t\t\t\t} else {\n\t\t\t\t\tTopDialogWorker.state.viewPageN--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (el.tagName !== 'A') {\n\t\t\t\t\tif (this.compareStates(hash, location.hash)) {\n\t\t\t\t\t\thistorySetState(false, hash);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => this.getDialogsUtils(), autoInitDelay);\n\t}\n\n\tprivate static opendDialogsFromChangeUrl(oldUrl: string, newUrl: string) {\n\t\tconst oldHash = oldUrl.replace(/.*?#/, '#');\n\t\tconst newHash = newUrl.replace(/.*?#/, '#');\n\n\t\tconst dialogsStateChanged = this.compareStates(oldHash, newHash);\n\t\tif (dialogsStateChanged) void this.opendDialogsFromUrl();\n\t}\n\n\tstatic async getDialogsUtils() {\n\t\tconst { TopDialogUtils } = await import('./utils');\n\n\t\treturn TopDialogUtils;\n\t}\n\n\tstatic getDialog(el: HTMLElement) {\n\t\treturn el.closest<ElTopDialog>('.ui-dialog-content');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getDialog()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$dialog($el: $el) {\n\t\treturn $el.closest('.ui-dialog-content');\n\t};\n\n\tstatic getPage(el: HTMLElement) {\n\t\treturn el.closest<ElTopDialogPage>('[data-view-page]');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getPage()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$page($el: $el) {\n\t\treturn $el.closest('[data-view-page]');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getPairPage()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$pairPage($el: $el) {\n\t\tconst $dialog = TopDialogWorker.get$dialog($el);\n\n\t\tconst $page = TopDialogWorker.get$page($el);\n\t\tconst pageName = $page.data('view-page');\n\n\t\treturn $('[data-view-page=\"' + pageName + '\"]', $dialog);\n\t};\n\n\tstatic getPairPage(el: HTMLElement) {\n\t\tconst elDialog = TopDialogWorker.getDialog(el);\n\t\tif (!elDialog) return;\n\n\t\tconst elPage = TopDialogWorker.getPage(el);\n\t\tconst pageName = elPage?.dataset.viewPage;\n\n\t\treturn querySelectorAllArray(elDialog, `[data-view-page=\"${pageName}\"]`);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t */\n\tstatic close(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\t\tif ($dialog.dialog('instance')) {\n\t\t\t$dialog.dialog('close');\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst elDialog = document.getElementById(dialogId);\n\n\t\tif (!(elDialog instanceof HTMLDialogElement)) return;\n\n\t\telDialog.close();\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tstatic destroy(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif ($dialog.dialog('instance')) {\n\t\t\t$dialog.dialog('close');\n\t\t\t$dialog.dialog('destroy');\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst elDialog = document.getElementById(dialogId);\n\t\tif (!(elDialog instanceof HTMLDialogElement)) return;\n\n\t\telDialog.close();\n\t};\n\n\t/**\n\t * Сгенерировать ссылку на страницу в диалоговом окне\n\t * @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}\n\t * @param moveDirection\n\t */\n\tstatic genViewPageHash(toView: string, moveDirection: MoveDirection = 'next') {\n\t\tlet toViewPageN = this.state.viewPageN;\n\t\tif (moveDirection == 'prev') {\n\t\t\ttoViewPageN--;\n\t\t} else {\n\t\t\ttoViewPageN++;\n\t\t}\n\n\t\tconst viewNameAndPageLink = toView.split('-');\n\t\tconst viewName = viewNameAndPageLink.shift();\n\t\tconst pageLink = viewNameAndPageLink.join('-');\n\n\t\tlet hash = genHash('vpn', toViewPageN);\n\t\thash = genHash('view-' + viewName, pageLink, hash);\n\n\t\treturn hash;\n\t};\n\n\t/**\n\t * Сравнить версию открытых диалоговых окон\n\t * @returns вернет true, если состояния открытых окон изменилось\n\t */\n\tstatic compareStates(hash: string, hash2: string) {\n\t\tconst mathes = hash.match(/[#&]view-[^&]+/g) || [];\n\t\tconst mathes2 = hash2.match(/[#&]view-[^&]+/g) || [];\n\n\t\tif (mathes.length !== mathes2.length) return true;\n\n\t\tconst mathesChanged = mathes.filter((math, n) => {\n\t\t\tconst math2 = mathes2[n] || '';\n\n\t\t\treturn math !== math2;\n\t\t});\n\n\t\tif (mathesChanged.length) return true;\n\n\t\treturn false;\n\t};\n\n\tstatic opendDialogsFromUrl = async () => {\n\t\tconst toViewPageN = Number(getHash('vpn')) || 0;\n\n\t\t// Открыть диалоговое окно\n\t\t/* const regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)' + '(' + Math.random() + ')?', 'g'); // fix babel minify regexp */\n\t\tconst regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)', 'g');\n\t\tconst view = regexp.exec(location.hash);\n\n\t\tif (view) {\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\t\t\tif (toViewPageN < this.state.viewPageN) moveDirection = 'prev';\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\treturn TopDialogUtils.toViewDirty(view[1], moveDirection);\n\t\t}\n\n\t\t// Закрыть ненужные view\n\t\tconst elDialogs = querySelectorAllArray(document, '.ui-dialog-content[data-view-page-active]') as HTMLDialogElement[];\n\t\telDialogs.filter((elDialog) => {\n\t\t\treturn isVisible(elDialog);\n\t\t}).forEach((elDialog) => {\n\t\t\tconst viewName = elDialog.getAttribute('id');\n\t\t\tif (!viewName) throw 'Диалоговое окно не содержит id';\n\t\t\tconst pageName = getHash('view-' + viewName);\n\t\t\tif (!pageName) {\n\t\t\t\tconst $dialog = $(elDialog);\n\n\t\t\t\t$dialog.dialog('close');\n\t\t\t}\n\t\t});\n\n\t\tthis.state.viewPageN = toViewPageN;\n\n\t\treturn true;\n\t};\n}\n","import { type ComponentInstance, type ComponentInternalInstance, markRaw, ref } from 'vue';\nimport { waitWhile } from '@/core/utils/system';\nimport TopDialog from '../dialog.vue';\nimport { TopDialogWorker } from '@/components/dialog/lib/worker';\nimport type { MoveDirection } from '@/components/dialog/lib/types';\nimport type { TopDialogComponent } from './types';\nimport { historySetState } from '@/core/utils/route';\n\n/**\n * Объект для работы с диалоговым окном\n *\n * Каждое окно уникально и может быть открыто одновременно только один раз\n *\n * Можно определить много окон, после чего с ними можно вести работу в любой части приложения\n */\nexport class TopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Индентификатор, определяется на уровне компонента TopDialogComponent\n\t *\n\t * Может использоваться в навигации для открытия нужных окон с нужными настройками\n\t */\n\tid: string;\n\n\t/**\n\t * ID, используемый в верстке диалогового окна\n\t */\n\tidAttr: string;\n\n\t/**\n\t * Пользовательский компонент диалогового окна\n\t */\n\tComponent: T;\n\n\t/**\n\t * Компонент инициирован\n\t *\n\t * Устанавливается после первого вызова useTopDialog()\n\t */\n\tisMounted = ref(false);\n\n\t/**\n\t * Компонент готов к использованию\n\t *\n\t * Используется для внутренних преобразований после отрисовки\n\t */\n\tisReady = ref(false);\n\n\t/**\n\t * Диалоговое окно открыто\n\t */\n\tisOpened = ref(false);\n\n\t/**\n\t * Имя активной страницы дилогового окна\n\t */\n\tpageActive = ref('');\n\n\t/**\n\t * Диалоговое окно находится в состоянии загрузки своей страницы\n\t */\n\tisLoadingPage = ref(false);\n\n\t/**\n\t * Следующая активная страница\n\t *\n\t * В один момент времени может потребоваться отобразить две страницы, чтобы воспроизвести анимацию\n\t */\n\tpageActiveNext = ref('');\n\n\t/**\n\t * props компонента, доступны после инициализации\n\t */\n\tprops?: ComponentInstance<T>['$props'];\n\n\t/**\n\t * emit базового компонента `TopDialog`\n\t */\n\temit?: ComponentInstance<typeof TopDialog>['$emit'];\n\n\t/**\n\t * Одноразовое событие на закрытие диалогового окна\n\t *\n\t * Используется для привязки окна к сценариям использования\n\t */\n\tonCloseOnce?: (props: typeof this.props, pageName: string) => void;\n\n\tconstructor(TopDialogComponent: T) {\n\t\tthis.id = TopDialogComponent.id!;\n\t\tthis.idAttr = 'dialog_' + TopDialogComponent.id;\n\t\tthis.Component = markRaw(TopDialogComponent);\n\t}\n\n\t/**\n\t * Событие - компонент инициирован\n\t */\n\tonMounted(topDialogComponent: ComponentInternalInstance, topDialogBaseComponent: ComponentInternalInstance) {\n\t\tthis.isMounted.value = true;\n\t\tthis.props = topDialogComponent.props;\n\t\tthis.emit = topDialogBaseComponent.emit;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t *\n\t * Учтите, что props в диалоговом окне будут доступны не сразу, а только после инициализации vue компонента\n\t */\n\tasync open(pageName: string = 'main', props?: Record<string, unknown>, args: [] = [], onCloseOnce?: typeof this.onCloseOnce, moveDirection?: MoveDirection) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst TopDialogUtils = await TopDialogWorker.getDialogsUtils();\n\n\t\tawait TopDialogUtils.toView(this.idAttr, pageName, args, moveDirection);\n\t};\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Диалоговые окна загружаются по имени, см. настройку плагина Core topDialogLoader\n\t */\n\tasync openAsLink(\n\t\tpageName: string = 'main',\n\t\tprops?: Record<string, unknown>,\n\t\t_args: string[] = [],\n\t\tonCloseOnce?: typeof this.onCloseOnce,\n\t\tmoveDirection?: MoveDirection,\n\t) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst viewName = this.idAttr + '-' + pageName;\n\n\t\tconst hash = TopDialogWorker.genViewPageHash(viewName, moveDirection);\n\t\thistorySetState(false, hash);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close() {\n\t\tTopDialogWorker.close(this.idAttr);\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tasync destroy() {\n\t\tTopDialogWorker.destroy(this.idAttr);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(props: ComponentInstance<T>['$props'] = {}) {\n\t\t// ожидание инициализации компонента\n\t\tif (!this.isMounted) {\n\t\t\tawait waitWhile(() => !this.props);\n\t\t}\n\n\t\tfor (const name in this.props) {\n\t\t\tthis.props[name] = props[name];\n\t\t}\n\t}\n\n\t/**\n\t * Проверить, есть ли необходимость отрисовки страницы диалогового окна\n\t */\n\tneedShowPage(pageName: string): boolean {\n\t\tif (!this.isOpened.value) return false;\n\n\t\treturn this.pageActive.value === pageName || this.pageActiveNext.value === pageName;\n\t}\n\n}\n","<script lang=\"ts\">\nimport { shallowReactive } from 'vue';\nimport { TopDialogHandle } from '@/components/dialog/dialog/composables/dialogHandle';\nimport type { TopDialogComponent } from '@/components/dialog/dialog/composables/types';\n\n/**\n * Словарь всех используемых диалоговых окон\n *\n * В других компонентах не использовать\n */\nconst dialogsWorkers = shallowReactive(new Map<string, TopDialogHandle<TopDialogComponent>>());\n\n/**\n * Получить компонент диалогового окна по id\n */\nexport const getDialogWorker = (id: string) => {\n\tid = id.replace(/^dialog_/, '');\n\n\treturn dialogsWorkers.get(id);\n};\n\n/**\n * Добавить компонент диалогового окна для использования\n */\nexport const addDialogWorker = <T extends TopDialogComponent>(TopDialogComponent: T): TopDialogHandle<T> => {\n\tif (!TopDialogComponent?.id) {\n\t\tconsole.log({ TopDialogComponent: TopDialogComponent });\n\n\t\tthrow new Error('Expected TopDialogComponent');\n\t}\n\n\tif (!dialogsWorkers.has(TopDialogComponent.id)) {\n\t\tdialogsWorkers.set(TopDialogComponent.id, new TopDialogHandle(TopDialogComponent));\n\t}\n\n\treturn dialogsWorkers.get(TopDialogComponent.id) as TopDialogHandle<T>;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { onUnmounted } from 'vue';\n\ndefineOptions({\n\tname: 'DialogWrapper',\n});\n\nonUnmounted(() => {\n\tdialogsWorkers.forEach(dialog => dialog.destroy());\n\tdialogsWorkers.clear();\n});\n</script>\n\n<template>\n\t<div class=\"top-dialogs\" style=\"display: none;\">\n\t\t<component\n\t\t\tv-for=\"[dialogId, dialog] in dialogsWorkers\"\n\t\t\t:is=\"dialog.Component\"\n\t\t\t:key=\"dialogId\"\n\t\t/>\n\t</div>\n</template>\n","<script lang=\"ts\">\nimport { shallowReactive } from 'vue';\nimport { TopDialogHandle } from '@/components/dialog/dialog/composables/dialogHandle';\nimport type { TopDialogComponent } from '@/components/dialog/dialog/composables/types';\n\n/**\n * Словарь всех используемых диалоговых окон\n *\n * В других компонентах не использовать\n */\nconst dialogsWorkers = shallowReactive(new Map<string, TopDialogHandle<TopDialogComponent>>());\n\n/**\n * Получить компонент диалогового окна по id\n */\nexport const getDialogWorker = (id: string) => {\n\tid = id.replace(/^dialog_/, '');\n\n\treturn dialogsWorkers.get(id);\n};\n\n/**\n * Добавить компонент диалогового окна для использования\n */\nexport const addDialogWorker = <T extends TopDialogComponent>(TopDialogComponent: T): TopDialogHandle<T> => {\n\tif (!TopDialogComponent?.id) {\n\t\tconsole.log({ TopDialogComponent: TopDialogComponent });\n\n\t\tthrow new Error('Expected TopDialogComponent');\n\t}\n\n\tif (!dialogsWorkers.has(TopDialogComponent.id)) {\n\t\tdialogsWorkers.set(TopDialogComponent.id, new TopDialogHandle(TopDialogComponent));\n\t}\n\n\treturn dialogsWorkers.get(TopDialogComponent.id) as TopDialogHandle<T>;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { onUnmounted } from 'vue';\n\ndefineOptions({\n\tname: 'DialogWrapper',\n});\n\nonUnmounted(() => {\n\tdialogsWorkers.forEach(dialog => dialog.destroy());\n\tdialogsWorkers.clear();\n});\n</script>\n\n<template>\n\t<div class=\"top-dialogs\" style=\"display: none;\">\n\t\t<component\n\t\t\tv-for=\"[dialogId, dialog] in dialogsWorkers\"\n\t\t\t:is=\"dialog.Component\"\n\t\t\t:key=\"dialogId\"\n\t\t/>\n\t</div>\n</template>\n","import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Установить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- .top-competitorSelector_opener.top-button{width:100%}.top-select-searcher_key[data-value="0"]:after,.top-select-searcher_key[data-value="20"]:after,.top-select-searcher_key[data-value="21"]:after,.top-select-searcher_key[data-value="22"]:after{color:red}.top-select-searcher_key[data-value="1"]:after{color:var(--color-bg-primary-2)}.top-select-searcher_key[data-value="2"]:after{color:#005ff9}.top-select-searcher_key[data-value="3"]:after{color:#01509b}.top-select-searcher_key[data-value="4"]:after{color:red}.top-select-searcher_key[data-value="5"]:after{color:#008373}.top-select-searcher_key[data-value="6"]:after{color:#4800b5}.top-select-searcher_key[data-value="7"]:after{color:#c00}.top-select-searcher_key[data-value="8"]:after{color:#1badf8}.top-select-searcher_key[data-value="9"]:after{color:#00ceff}.top-regionSelector{vertical-align:middle;width:340px;display:inline-flex}.top-regionSelector>.top-select{flex-grow:1}.top-regionSelector>.top-select:focus-within{z-index:4}.top-regionSelector>.top-select>.top-select_select:hover,.top-regionSelector>.top-select>.top-select_select.top-error{z-index:1}.top-regionSelector>.top-select-searcher_key{width:140px;max-width:160px;margin-right:-1px}.top-regionSelector>.top-select-region>select{border-top-left-radius:0;border-bottom-left-radius:0}.top-regionSelector>.top-select-region{--top-icon-size:20px;--top-icon-color:var(--color-text-primary);--top-icon2-size:20px;--top-icon2-color:var(--color-text-primary)}.top-regionSelector>.top-select-region[data-top-icon][data-top-icon2]{--top-icon2-size:16px}.top-regionSelector>.top-select-region[data-top-icon][data-top-icon2]:after{text-indent:-4px}.top-regionSelector>[name=compare]{border-top-left-radius:0;border-bottom-left-radius:0;flex-grow:1}.top-regionSelector>[name=compare]:after{content:"(" attr(data-count-compare-regions-indexes) ")";margin:0 0 0 6px}.top-regionSelector:not(.top-regionSelector-onlySearcher)>.top-select-searcher_key>select{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.top-regionSelector:not(.top-regionSelector-onlySearcher)>.top-select-searcher_key[data-value="-1"]>select{border-right:none}.top-regionSelector-onlySearcher{width:140px}.top-groupSelector_groupItem{gap:var(--top-padding-1);flex-direction:column;min-height:20px;display:flex}.top-groupSelector_groupItemFolderPath{width:100%;color:var(--color-text-4);font-size:12px}.top-groupSelector{gap:var(--top-padding-1);display:inline-flex}@media (min-width:900px){.top-projectSelectorSubmenu .top-popup{min-width:unset}.top-projectSelectorSubmenu ul{grid-template-columns:repeat(3,1fr);display:grid}.top-projectSelectorSubmenu ul.top-popup_content li>a[data-top-icon]:before{--top-icon-size:24px;--top-icon-width:32px;height:var(--top-icon-width);margin:0}}.top-projectSelector .top-popup{width:278px}.top-projectSelector_itemLink{position:absolute;inset:0}.top-projectSelector_itemText{gap:var(--top-gap-1);flex-direction:column;flex-grow:1;display:flex}.top-projectSelector_item>.top-button{opacity:0;z-index:1;position:relative}.top-projectSelector_item:hover>.top-button,.top-projectSelector_item.top-active>.top-button{opacity:1}@media screen and (min-width:900px){.top-projectSelector.p3 div.top-popup{max-height:min(calc(var(--top-popup-bottom) - 16px), 800px)}}@media screen and (max-width:900px){.top-projectSelector_item>.top-button{opacity:1}}[data-tag_id]{gap:var(--top-gap-2);align-items:center;display:inline-flex}[data-tag_id=""]{color:#55555f!important;border-color:#bdc3c7!important}[data-tag_color_id="1"]{border-color:var(--color-tag-1)!important;color:#55555f!important}[data-tag_color_id="2"]{border-color:var(--color-tag-2)!important;color:var(--color-tag-2)!important}[data-tag_color_id="3"]{border-color:var(--color-tag-3)!important;color:var(--color-tag-3)!important}[data-tag_color_id="4"]{border-color:var(--color-tag-4)!important;color:var(--color-tag-4)!important}[data-tag_color_id="5"]{border-color:var(--color-tag-5)!important;color:var(--color-tag-5)!important}[data-tag_color_id="6"]{border-color:var(--color-tag-6)!important;color:var(--color-tag-6)!important}[data-tag_color_id="7"]{border-color:var(--color-tag-7)!important;color:var(--color-tag-7)!important}[data-tag_color_id="8"]{border-color:var(--color-tag-8)!important;color:var(--color-tag-8)!important}[data-tag_color_id="9"]{border-color:var(--color-tag-9)!important;color:var(--color-tag-9)!important}[data-tag_color_id="10"]{border-color:var(--color-tag-10)!important;color:var(--color-tag-10)!important}[data-tag_id=""].top-tagSelector-active{background:#bdc3c7!important}[data-tag_color_id="1"].top-tagSelector-active{background:var(--color-tag-1)!important}[data-tag_color_id="2"].top-tagSelector-active{background:var(--color-tag-2)!important}[data-tag_color_id="3"].top-tagSelector-active{background:var(--color-tag-3)!important}[data-tag_color_id="4"].top-tagSelector-active{background:var(--color-tag-4)!important}[data-tag_color_id="5"].top-tagSelector-active{background:var(--color-tag-5)!important}[data-tag_color_id="6"].top-tagSelector-active{background:var(--color-tag-6)!important}[data-tag_color_id="7"].top-tagSelector-active{background:var(--color-tag-7)!important}[data-tag_color_id="8"].top-tagSelector-active{background:var(--color-tag-8)!important}[data-tag_color_id="9"].top-tagSelector-active{background:var(--color-tag-9)!important}[data-tag_color_id="10"].top-tagSelector-active{background:var(--color-tag-10)!important}[data-tag_id=all]{background:0 0!important;border-color:#0000!important}[data-tag_id=all]:before{content:"";min-width:calc(100% + 4px);height:calc(100% + 4px);margin-top:-18px;margin-left:-8px;font-size:26px;color:var(--color-tag-all)!important}.top-tagSelector-useTopButton [data-tag_id],.top-tagSelector_popup [data-tag_id]{--top-tag-selector-size:10px;box-sizing:content-box;border:2px solid var(--color-layout-front-1);background:var(--color-layout-front-1);width:var(--top-tag-selector-size);height:var(--top-tag-selector-size);font-size:calc(var(--top-tag-selector-size) + 4px);border-radius:100%}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id],[data-tag_id].top-tagSelector-excluded{position:relative}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id]:before,[data-tag_id].top-tagSelector-excluded:before{content:"";width:calc(var(--top-tag-selector-size) * 2);background:inherit;filter:brightness(80%);height:1px;top:calc(var(--top-tag-selector-size) / 2);left:calc(0px - var(--top-tag-selector-size) / 2);display:block;position:absolute;transform:rotate(-45deg)}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id]:not([data-tag_id=all]):not(.top-tagSelector-active):before{background:#aaa}[data-tag_id].top-tagSelector-excluded:after,[data-tag_id].top-tagSelector-excluded~.top-tagSelector_tagListItemName{text-decoration:line-through}.top-popup_listItem.top-tagSelector-active{background:var(--top-popup-background-color-active)!important}.top-popup_listItem:hover [data-tag_id=all]:before{border-color:var(--top-popup-background-color-hover)}.top-popup_listItem.top-tagSelector-active [data-tag_id=all]:before,.top-popup_listItem.top-active [data-tag_id=all]:before{border-color:var(--top-popup-background-color-active)}.top-tagSelector_tagListItem.top-popup_listItem{gap:10px;padding-top:var(--top-padding-2)!important;padding-bottom:var(--top-padding-2)!important}.top-tagSelector_tagListItemName{border-radius:var(--top-radius-1);text-overflow:ellipsis;flex-grow:1;width:120px;margin:-4px -2px;padding:4px 2px;overflow:hidden}.top-tagSelector_edit{--top-icon-size:18px;--top-icon-color:var(--color-text-3);flex-grow:0;width:20px}.top-tagSelector_edit:before{line-height:0}.top-tagSelector_edit{opacity:0}.top-tagSelector_edit:hover{--top-icon-color:var(--color-text-primary)}.top-tagSelector_tagListItem:hover .top-tagSelector_edit,.top-tagSelector_tagListItem-inEdit .top-tagSelector_edit{cursor:pointer;opacity:1}.top-tagSelector_tagListItem-inEdit{outline:1px dashed var(--color-line-2);outline-offset:-1px;background:var(--color-layout-front-3)!important}.top-tagSelector_tagListItem-inEdit .top-tagSelector_tagListItemName{cursor:text;background:var(--color-layout-front-1)}.top-tagSelector_tagListItem-disabled{opacity:.85;cursor:not-allowed!important}.top-tagSelector_tagListItem-disabled:hover{background:inherit}.top-tagSelector_tagListItem-disabled [data-tag_id]{opacity:.6}.top-tagSelector{cursor:pointer;white-space:nowrap;justify-content:left;min-width:0}.top-tagSelector-useTopButton{gap:var(--top-gap-1);vertical-align:middle;width:118px}.top-tagSelector.top-button.top-as-selector{width:126px}.top-tagSelector-useTopButton [data-tag_id=all]:before{margin-right:6px}.top-tagSelector-useTopButton.top-tagSelector-selectedOne [data-tag_id]:after{content:attr(title);text-align:left;text-overflow:ellipsis;min-width:74px;margin-left:20px;line-height:1.2;overflow:hidden}.top-tagSelector-useTopButton.top-tagSelector-selectedOne [data-tag_id=all]:after{margin-left:0}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine{flex-wrap:wrap;align-content:center}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine [data-tag_id]{--top-tag-selector-size:8px}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine [data-tag_id]:nth-child(5){margin-right:4px}.top-tagSelector-useTopButton.top-tagSelector-setter_several,.top-tagSelector-useTopButton.top-tagSelector-setter_several.top-as-selector{width:auto}.top-tagSelector-custom{flex-flow:column wrap;position:relative;align-items:stretch!important;display:flex!important}.top-tagSelector-custom [data-tag_id]{flex:auto;width:auto;min-width:50%;min-height:20%}.top-tagSelector_popup .top-popup{-webkit-user-select:none;user-select:none;text-align:left;min-width:220px!important}.top-tagSelector_popup .top-popup_header .top-select{flex-grow:1}
1
+ .top-competitorSelector_opener.top-button{width:100%}.top-select-searcher_key[data-value="0"]:after,.top-select-searcher_key[data-value="20"]:after,.top-select-searcher_key[data-value="21"]:after,.top-select-searcher_key[data-value="22"]:after{color:red}.top-select-searcher_key[data-value="1"]:after{color:var(--color-bg-primary-2)}.top-select-searcher_key[data-value="2"]:after{color:#005ff9}.top-select-searcher_key[data-value="3"]:after{color:#01509b}.top-select-searcher_key[data-value="4"]:after{color:red}.top-select-searcher_key[data-value="5"]:after{color:#008373}.top-select-searcher_key[data-value="6"]:after{color:#4800b5}.top-select-searcher_key[data-value="7"]:after{color:#c00}.top-select-searcher_key[data-value="8"]:after{color:#1badf8}.top-select-searcher_key[data-value="9"]:after{color:#00ceff}.top-regionSelector{vertical-align:middle;width:340px;display:inline-flex}.top-regionSelector>.top-select{flex-grow:1}.top-regionSelector>.top-select:focus-within{z-index:4}.top-regionSelector>.top-select>.top-select_select:hover,.top-regionSelector>.top-select>.top-select_select.top-error{z-index:1}.top-regionSelector>.top-select-searcher_key{width:140px;max-width:160px;margin-right:-1px}.top-regionSelector>.top-select-region>select{border-top-left-radius:0;border-bottom-left-radius:0}.top-regionSelector>.top-select-region{--top-icon-size:20px;--top-icon-color:var(--color-text-primary);--top-icon2-size:20px;--top-icon2-color:var(--color-text-primary)}.top-regionSelector>.top-select-region[data-top-icon][data-top-icon2]{--top-icon2-size:16px}.top-regionSelector>.top-select-region[data-top-icon][data-top-icon2]:after{text-indent:-4px}.top-regionSelector>[name=compare]{border-top-left-radius:0;border-bottom-left-radius:0;flex-grow:1}.top-regionSelector>[name=compare]:after{content:"(" attr(data-count-compare-regions-indexes) ")";margin:0 0 0 6px}.top-regionSelector:not(.top-regionSelector-onlySearcher)>.top-select-searcher_key>select{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.top-regionSelector:not(.top-regionSelector-onlySearcher)>.top-select-searcher_key[data-value="-1"]>select{border-right:none}.top-regionSelector-onlySearcher{width:140px}@supports ((-moz-appearance:none)){.top-regionSelector .top-select-region>select{width:calc(100% + 24px);clip-path:inset(0 24px 0 0 round 0 var(--top-forms-radius) var(--top-forms-radius) 0);background-position-x:calc(100% - 32px);margin-right:-24px}}.top-groupSelector_groupItem{gap:var(--top-padding-1);flex-direction:column;min-height:20px;display:flex}.top-groupSelector_groupItemFolderPath{width:100%;color:var(--color-text-4);font-size:12px}.top-groupSelector{gap:var(--top-padding-1);display:inline-flex}@media (min-width:900px){.top-projectSelectorSubmenu .top-popup{min-width:unset}.top-projectSelectorSubmenu ul{grid-template-columns:repeat(3,1fr);display:grid}.top-projectSelectorSubmenu ul.top-popup_content li>a[data-top-icon]:before{--top-icon-size:24px;--top-icon-width:32px;height:var(--top-icon-width);margin:0}}.top-projectSelector .top-popup{width:278px}.top-projectSelector_itemLink{position:absolute;inset:0}.top-projectSelector_itemText{gap:var(--top-gap-1);flex-direction:column;flex-grow:1;display:flex}.top-projectSelector_item>.top-button{opacity:0;z-index:1;position:relative}.top-projectSelector_item:hover>.top-button,.top-projectSelector_item.top-active>.top-button{opacity:1}@media screen and (min-width:900px){.top-projectSelector.p3 div.top-popup{max-height:min(calc(var(--top-popup-bottom) - 16px), 800px)}}@media screen and (max-width:900px){.top-projectSelector_item>.top-button{opacity:1}}[data-tag_id]{gap:var(--top-gap-2);align-items:center;display:inline-flex}[data-tag_id=""]{color:#55555f!important;border-color:#bdc3c7!important}[data-tag_color_id="1"]{border-color:var(--color-tag-1)!important;color:#55555f!important}[data-tag_color_id="2"]{border-color:var(--color-tag-2)!important;color:var(--color-tag-2)!important}[data-tag_color_id="3"]{border-color:var(--color-tag-3)!important;color:var(--color-tag-3)!important}[data-tag_color_id="4"]{border-color:var(--color-tag-4)!important;color:var(--color-tag-4)!important}[data-tag_color_id="5"]{border-color:var(--color-tag-5)!important;color:var(--color-tag-5)!important}[data-tag_color_id="6"]{border-color:var(--color-tag-6)!important;color:var(--color-tag-6)!important}[data-tag_color_id="7"]{border-color:var(--color-tag-7)!important;color:var(--color-tag-7)!important}[data-tag_color_id="8"]{border-color:var(--color-tag-8)!important;color:var(--color-tag-8)!important}[data-tag_color_id="9"]{border-color:var(--color-tag-9)!important;color:var(--color-tag-9)!important}[data-tag_color_id="10"]{border-color:var(--color-tag-10)!important;color:var(--color-tag-10)!important}[data-tag_id=""].top-tagSelector-active{background:#bdc3c7!important}[data-tag_color_id="1"].top-tagSelector-active{background:var(--color-tag-1)!important}[data-tag_color_id="2"].top-tagSelector-active{background:var(--color-tag-2)!important}[data-tag_color_id="3"].top-tagSelector-active{background:var(--color-tag-3)!important}[data-tag_color_id="4"].top-tagSelector-active{background:var(--color-tag-4)!important}[data-tag_color_id="5"].top-tagSelector-active{background:var(--color-tag-5)!important}[data-tag_color_id="6"].top-tagSelector-active{background:var(--color-tag-6)!important}[data-tag_color_id="7"].top-tagSelector-active{background:var(--color-tag-7)!important}[data-tag_color_id="8"].top-tagSelector-active{background:var(--color-tag-8)!important}[data-tag_color_id="9"].top-tagSelector-active{background:var(--color-tag-9)!important}[data-tag_color_id="10"].top-tagSelector-active{background:var(--color-tag-10)!important}[data-tag_id=all]{background:0 0!important;border-color:#0000!important}[data-tag_id=all]:before{content:"";min-width:calc(100% + 4px);height:calc(100% + 4px);margin-top:-18px;margin-left:-8px;font-size:26px;color:var(--color-tag-all)!important}.top-tagSelector-useTopButton [data-tag_id],.top-tagSelector_popup [data-tag_id]{--top-tag-selector-size:10px;box-sizing:content-box;border:2px solid var(--color-layout-front-1);background:var(--color-layout-front-1);width:var(--top-tag-selector-size);height:var(--top-tag-selector-size);font-size:calc(var(--top-tag-selector-size) + 4px);border-radius:100%}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id],[data-tag_id].top-tagSelector-excluded{position:relative}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id]:before,[data-tag_id].top-tagSelector-excluded:before{content:"";width:calc(var(--top-tag-selector-size) * 2);background:inherit;filter:brightness(80%);height:1px;top:calc(var(--top-tag-selector-size) / 2);left:calc(0px - var(--top-tag-selector-size) / 2);display:block;position:absolute;transform:rotate(-45deg)}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id]:not([data-tag_id=all]):not(.top-tagSelector-active):before{background:#aaa}[data-tag_id].top-tagSelector-excluded:after,[data-tag_id].top-tagSelector-excluded~.top-tagSelector_tagListItemName{text-decoration:line-through}.top-popup_listItem.top-tagSelector-active{background:var(--top-popup-background-color-active)!important}.top-popup_listItem:hover [data-tag_id=all]:before{border-color:var(--top-popup-background-color-hover)}.top-popup_listItem.top-tagSelector-active [data-tag_id=all]:before,.top-popup_listItem.top-active [data-tag_id=all]:before{border-color:var(--top-popup-background-color-active)}.top-tagSelector_tagListItem.top-popup_listItem{gap:10px;padding-top:var(--top-padding-2)!important;padding-bottom:var(--top-padding-2)!important}.top-tagSelector_tagListItemName{border-radius:var(--top-radius-1);text-overflow:ellipsis;flex-grow:1;width:120px;margin:-4px -2px;padding:4px 2px;overflow:hidden}.top-tagSelector_edit{--top-icon-size:18px;--top-icon-color:var(--color-text-3);flex-grow:0;width:20px}.top-tagSelector_edit:before{line-height:0}.top-tagSelector_edit{opacity:0}.top-tagSelector_edit:hover{--top-icon-color:var(--color-text-primary)}.top-tagSelector_tagListItem:hover .top-tagSelector_edit,.top-tagSelector_tagListItem-inEdit .top-tagSelector_edit{cursor:pointer;opacity:1}.top-tagSelector_tagListItem-inEdit{outline:1px dashed var(--color-line-2);outline-offset:-1px;background:var(--color-layout-front-3)!important}.top-tagSelector_tagListItem-inEdit .top-tagSelector_tagListItemName{cursor:text;background:var(--color-layout-front-1)}.top-tagSelector_tagListItem-disabled{opacity:.85;cursor:not-allowed!important}.top-tagSelector_tagListItem-disabled:hover{background:inherit}.top-tagSelector_tagListItem-disabled [data-tag_id]{opacity:.6}.top-tagSelector{cursor:pointer;white-space:nowrap;justify-content:left;min-width:0}.top-tagSelector-useTopButton{gap:var(--top-gap-1);vertical-align:middle;width:118px}.top-tagSelector.top-button.top-as-selector{width:126px}.top-tagSelector-useTopButton [data-tag_id=all]:before{margin-right:6px}.top-tagSelector-useTopButton.top-tagSelector-selectedOne [data-tag_id]:after{content:attr(title);text-align:left;text-overflow:ellipsis;min-width:74px;margin-left:20px;line-height:1.2;overflow:hidden}.top-tagSelector-useTopButton.top-tagSelector-selectedOne [data-tag_id=all]:after{margin-left:0}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine{flex-wrap:wrap;align-content:center}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine [data-tag_id]{--top-tag-selector-size:8px}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine [data-tag_id]:nth-child(5){margin-right:4px}.top-tagSelector-useTopButton.top-tagSelector-setter_several,.top-tagSelector-useTopButton.top-tagSelector-setter_several.top-as-selector{width:auto}.top-tagSelector-custom{flex-flow:column wrap;position:relative;align-items:stretch!important;display:flex!important}.top-tagSelector-custom [data-tag_id]{flex:auto;width:auto;min-width:50%;min-height:20%}.top-tagSelector_popup .top-popup{-webkit-user-select:none;user-select:none;text-align:left;min-width:220px!important}.top-tagSelector_popup .top-popup_header .top-select{flex-grow:1}
@@ -69,7 +69,7 @@
69
69
  "tabsView/tabsView.amd.js": [
70
70
  "../assets/tabsView.css"
71
71
  ],
72
- ".chunks/dialog_regionSelectorRegions-CRUwGUuz.es.amd.js": [
72
+ ".chunks/dialog_regionSelectorRegions-Nob9K60s.es.amd.js": [
73
73
  "../assets/dialog_regionSelectorRegions.css"
74
74
  ],
75
75
  ".chunks/formsExt-B9hGGznb.es.amd.js": [
@@ -80,7 +80,7 @@
80
80
  "tabsView/tabsView.js": [
81
81
  "../assets/tabsView.css"
82
82
  ],
83
- ".chunks/dialog_regionSelectorRegions-CRUwGUuz.es.js": [
83
+ ".chunks/dialog_regionSelectorRegions-Nob9K60s.es.js": [
84
84
  "../assets/dialog_regionSelectorRegions.css"
85
85
  ],
86
86
  ".chunks/formsExt-B9hGGznb.es.js": [
package/core/app.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`../.chunks/forms-CjJD60m3.es.amd`,`../.chunks/app-BbV6AslA.es.amd`,`../.chunks/utils-Xb6J5WcU.es.amd`],function(e,t,n,r,i){"use strict";if(a===void 0)var a=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.useTopDialog=t.useI18nLang=t.useI18n=t.useAsyncTopDialog=t.piniaTPAPlugin=t.i18nPlugin=t.corePlugin=t.TopDialogWorker=t.Core=void 0,Object.defineProperty(t,"useI18nLang",{enumerable:!0,get:function(){return n.D}}),Object.defineProperty(t,"useI18n",{enumerable:!0,get:function(){return n.E}}),Object.defineProperty(t,"Core",{enumerable:!0,get:function(){return n.O}}),Object.defineProperty(t,"i18nPlugin",{enumerable:!0,get:function(){return n.T}}),Object.defineProperty(t,"corePlugin",{enumerable:!0,get:function(){return r.n}}),Object.defineProperty(t,"piniaTPAPlugin",{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(t,"useTopDialog",{enumerable:!0,get:function(){return i.n}}),Object.defineProperty(t,"TopDialogWorker",{enumerable:!0,get:function(){return i.o}}),Object.defineProperty(t,"useAsyncTopDialog",{enumerable:!0,get:function(){return i.t}})});
1
+ define([`require`,`exports`,`../.chunks/forms-CjJD60m3.es.amd`,`../.chunks/app-BpyVfZtN.es.amd`,`../.chunks/utils-CUvjkXu8.es.amd`],function(e,t,n,r,i){"use strict";if(a===void 0)var a=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.useTopDialog=t.useI18nLang=t.useI18n=t.useAsyncTopDialog=t.piniaTPAPlugin=t.i18nPlugin=t.corePlugin=t.TopDialogWorker=t.Core=void 0,Object.defineProperty(t,"useI18nLang",{enumerable:!0,get:function(){return n.D}}),Object.defineProperty(t,"useI18n",{enumerable:!0,get:function(){return n.E}}),Object.defineProperty(t,"Core",{enumerable:!0,get:function(){return n.O}}),Object.defineProperty(t,"i18nPlugin",{enumerable:!0,get:function(){return n.T}}),Object.defineProperty(t,"corePlugin",{enumerable:!0,get:function(){return r.n}}),Object.defineProperty(t,"piniaTPAPlugin",{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(t,"useTopDialog",{enumerable:!0,get:function(){return i.n}}),Object.defineProperty(t,"TopDialogWorker",{enumerable:!0,get:function(){return i.o}}),Object.defineProperty(t,"useAsyncTopDialog",{enumerable:!0,get:function(){return i.t}})});
2
2
  //# sourceMappingURL=app.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["core/app.js"],"names":["vue","exports","forms_CjJD60m3_es_js_1","app_BbV6AslA_es_js_1","utils_Xb6J5WcU_es_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,mCAAmC,iCAAiC,kCAAiC,EAAG,SAAU,EAAS,EAAS,EAAwB,EAAsB,EAAwB,CACpO,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,EAAQ,aAAe,EAAQ,YAAc,EAAQ,QAAU,EAAQ,kBAAoB,EAAQ,eAAiB,EAAQ,WAAa,EAAQ,WAAa,EAAQ,gBAAkB,EAAQ,KAAO,IAAK,GAC5M,OAAO,eAAeA,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EACzH,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EACrH,OAAO,eAAeD,EAAS,OAAQ,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EAClH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EACxH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAqB,CAAG,CAAE,CAAC,EACtH,OAAO,eAAeF,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAqB,CAAG,CAAE,CAAC,EAC1H,OAAO,eAAeF,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAuB,CAAG,CAAE,CAAC,EAC1H,OAAO,eAAeH,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAuB,CAAG,CAAE,CAAC,EAC7H,OAAO,eAAeH,EAAS,oBAAqB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAuB,CAAG,CAAE,CAAC,CACnI,CAAC","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-CjJD60m3.es.js\", \"../.chunks/app-BbV6AslA.es.js\", \"../.chunks/utils-Xb6J5WcU.es.js\"], function (require, exports, forms_CjJD60m3_es_js_1, app_BbV6AslA_es_js_1, utils_Xb6J5WcU_es_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.useTopDialog = exports.useI18nLang = exports.useI18n = exports.useAsyncTopDialog = exports.piniaTPAPlugin = exports.i18nPlugin = exports.corePlugin = exports.TopDialogWorker = exports.Core = void 0;\n Object.defineProperty(exports, \"useI18nLang\", { enumerable: true, get: function () { return forms_CjJD60m3_es_js_1.D; } });\n Object.defineProperty(exports, \"useI18n\", { enumerable: true, get: function () { return forms_CjJD60m3_es_js_1.E; } });\n Object.defineProperty(exports, \"Core\", { enumerable: true, get: function () { return forms_CjJD60m3_es_js_1.O; } });\n Object.defineProperty(exports, \"i18nPlugin\", { enumerable: true, get: function () { return forms_CjJD60m3_es_js_1.T; } });\n Object.defineProperty(exports, \"corePlugin\", { enumerable: true, get: function () { return app_BbV6AslA_es_js_1.n; } });\n Object.defineProperty(exports, \"piniaTPAPlugin\", { enumerable: true, get: function () { return app_BbV6AslA_es_js_1.t; } });\n Object.defineProperty(exports, \"useTopDialog\", { enumerable: true, get: function () { return utils_Xb6J5WcU_es_js_1.n; } });\n Object.defineProperty(exports, \"TopDialogWorker\", { enumerable: true, get: function () { return utils_Xb6J5WcU_es_js_1.o; } });\n Object.defineProperty(exports, \"useAsyncTopDialog\", { enumerable: true, get: function () { return utils_Xb6J5WcU_es_js_1.t; } });\n});\n"]}
1
+ {"version":3,"sources":["core/app.js"],"names":["vue","exports","forms_CjJD60m3_es_js_1","app_BpyVfZtN_es_js_1","utils_CUvjkXu8_es_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,mCAAmC,iCAAiC,kCAAiC,EAAG,SAAU,EAAS,EAAS,EAAwB,EAAsB,EAAwB,CACpO,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,EAAQ,aAAe,EAAQ,YAAc,EAAQ,QAAU,EAAQ,kBAAoB,EAAQ,eAAiB,EAAQ,WAAa,EAAQ,WAAa,EAAQ,gBAAkB,EAAQ,KAAO,IAAK,GAC5M,OAAO,eAAeA,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EACzH,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EACrH,OAAO,eAAeD,EAAS,OAAQ,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EAClH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EACxH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAqB,CAAG,CAAE,CAAC,EACtH,OAAO,eAAeF,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAqB,CAAG,CAAE,CAAC,EAC1H,OAAO,eAAeF,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAuB,CAAG,CAAE,CAAC,EAC1H,OAAO,eAAeH,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAuB,CAAG,CAAE,CAAC,EAC7H,OAAO,eAAeH,EAAS,oBAAqB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAuB,CAAG,CAAE,CAAC,CACnI,CAAC","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-CjJD60m3.es.js\", \"../.chunks/app-BpyVfZtN.es.js\", \"../.chunks/utils-CUvjkXu8.es.js\"], function (require, exports, forms_CjJD60m3_es_js_1, app_BpyVfZtN_es_js_1, utils_CUvjkXu8_es_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.useTopDialog = exports.useI18nLang = exports.useI18n = exports.useAsyncTopDialog = exports.piniaTPAPlugin = exports.i18nPlugin = exports.corePlugin = exports.TopDialogWorker = exports.Core = void 0;\n Object.defineProperty(exports, \"useI18nLang\", { enumerable: true, get: function () { return forms_CjJD60m3_es_js_1.D; } });\n Object.defineProperty(exports, \"useI18n\", { enumerable: true, get: function () { return forms_CjJD60m3_es_js_1.E; } });\n Object.defineProperty(exports, \"Core\", { enumerable: true, get: function () { return forms_CjJD60m3_es_js_1.O; } });\n Object.defineProperty(exports, \"i18nPlugin\", { enumerable: true, get: function () { return forms_CjJD60m3_es_js_1.T; } });\n Object.defineProperty(exports, \"corePlugin\", { enumerable: true, get: function () { return app_BpyVfZtN_es_js_1.n; } });\n Object.defineProperty(exports, \"piniaTPAPlugin\", { enumerable: true, get: function () { return app_BpyVfZtN_es_js_1.t; } });\n Object.defineProperty(exports, \"useTopDialog\", { enumerable: true, get: function () { return utils_CUvjkXu8_es_js_1.n; } });\n Object.defineProperty(exports, \"TopDialogWorker\", { enumerable: true, get: function () { return utils_CUvjkXu8_es_js_1.o; } });\n Object.defineProperty(exports, \"useAsyncTopDialog\", { enumerable: true, get: function () { return utils_CUvjkXu8_es_js_1.t; } });\n});\n"]}
package/core/app.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { D as e, E as t, O as n, T as r } from "../.chunks/forms-CjJD60m3.es.js";
2
- import { n as i, t as a } from "../.chunks/app-BbV6AslA.es.js";
3
- import { n as o, o as s, t as c } from "../.chunks/utils-Xb6J5WcU.es.js";
2
+ import { n as i, t as a } from "../.chunks/app-BpyVfZtN.es.js";
3
+ import { n as o, o as s, t as c } from "../.chunks/utils-CUvjkXu8.es.js";
4
4
  export { n as Core, s as TopDialogWorker, i as corePlugin, r as i18nPlugin, a as piniaTPAPlugin, c as useAsyncTopDialog, t as useI18n, e as useI18nLang, o as useTopDialog };
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`../.chunks/utils-Xb6J5WcU.es.amd`,`../.chunks/dialog-CiK4MPcB.es.amd`],function(e,t,n,r){"use strict";if(i===void 0)var i=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.useTopDialogSelf=t.propsPageCommon=t.TopDialogPageComponent=t.TopDialogPage=t.TopDialog=void 0,Object.defineProperty(t,"useTopDialogSelf",{enumerable:!0,get:function(){return n.r}}),Object.defineProperty(t,"TopDialog",{enumerable:!0,get:function(){return n.s}}),Object.defineProperty(t,"propsPageCommon",{enumerable:!0,get:function(){return r.n}}),Object.defineProperty(t,"TopDialogPage",{enumerable:!0,get:function(){return r.r}}),Object.defineProperty(t,"TopDialogPageComponent",{enumerable:!0,get:function(){return r.t}})});
1
+ define([`require`,`exports`,`../.chunks/utils-CUvjkXu8.es.amd`,`../.chunks/dialog-DZLTpHen.es.amd`],function(e,t,n,r){"use strict";if(i===void 0)var i=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.useTopDialogSelf=t.propsPageCommon=t.TopDialogPageComponent=t.TopDialogPage=t.TopDialog=void 0,Object.defineProperty(t,"useTopDialogSelf",{enumerable:!0,get:function(){return n.r}}),Object.defineProperty(t,"TopDialog",{enumerable:!0,get:function(){return n.s}}),Object.defineProperty(t,"propsPageCommon",{enumerable:!0,get:function(){return r.n}}),Object.defineProperty(t,"TopDialogPage",{enumerable:!0,get:function(){return r.r}}),Object.defineProperty(t,"TopDialogPageComponent",{enumerable:!0,get:function(){return r.t}})});
2
2
  //# sourceMappingURL=dialog.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["dialog/dialog.js"],"names":["vue","exports","utils_Xb6J5WcU_es_js_1","dialog_CiK4MPcB_es_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,mCAAmC,mCAAkC,EAAG,SAAU,EAAS,EAAS,EAAwB,EAAyB,CAC/K,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,EAAQ,iBAAmB,EAAQ,gBAAkB,EAAQ,uBAAyB,EAAQ,cAAgB,EAAQ,UAAY,IAAK,GACvI,OAAO,eAAeA,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EAC9H,OAAO,eAAeD,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EACvH,OAAO,eAAeD,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,CAAG,CAAE,CAAC,EAC9H,OAAO,eAAeF,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,CAAG,CAAE,CAAC,EAC5H,OAAO,eAAeF,EAAS,yBAA0B,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,CAAG,CAAE,CAAC,CACzI,CAAC","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/utils-Xb6J5WcU.es.js\", \"../.chunks/dialog-CiK4MPcB.es.js\"], function (require, exports, utils_Xb6J5WcU_es_js_1, dialog_CiK4MPcB_es_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.useTopDialogSelf = exports.propsPageCommon = exports.TopDialogPageComponent = exports.TopDialogPage = exports.TopDialog = void 0;\n Object.defineProperty(exports, \"useTopDialogSelf\", { enumerable: true, get: function () { return utils_Xb6J5WcU_es_js_1.r; } });\n Object.defineProperty(exports, \"TopDialog\", { enumerable: true, get: function () { return utils_Xb6J5WcU_es_js_1.s; } });\n Object.defineProperty(exports, \"propsPageCommon\", { enumerable: true, get: function () { return dialog_CiK4MPcB_es_js_1.n; } });\n Object.defineProperty(exports, \"TopDialogPage\", { enumerable: true, get: function () { return dialog_CiK4MPcB_es_js_1.r; } });\n Object.defineProperty(exports, \"TopDialogPageComponent\", { enumerable: true, get: function () { return dialog_CiK4MPcB_es_js_1.t; } });\n});\n"]}
1
+ {"version":3,"sources":["dialog/dialog.js"],"names":["vue","exports","utils_CUvjkXu8_es_js_1","dialog_DZLTpHen_es_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,mCAAmC,mCAAkC,EAAG,SAAU,EAAS,EAAS,EAAwB,EAAyB,CAC/K,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,EAAQ,iBAAmB,EAAQ,gBAAkB,EAAQ,uBAAyB,EAAQ,cAAgB,EAAQ,UAAY,IAAK,GACvI,OAAO,eAAeA,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EAC9H,OAAO,eAAeD,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAuB,CAAG,CAAE,CAAC,EACvH,OAAO,eAAeD,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,CAAG,CAAE,CAAC,EAC9H,OAAO,eAAeF,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,CAAG,CAAE,CAAC,EAC5H,OAAO,eAAeF,EAAS,yBAA0B,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,CAAG,CAAE,CAAC,CACzI,CAAC","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/utils-CUvjkXu8.es.js\", \"../.chunks/dialog-DZLTpHen.es.js\"], function (require, exports, utils_CUvjkXu8_es_js_1, dialog_DZLTpHen_es_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.useTopDialogSelf = exports.propsPageCommon = exports.TopDialogPageComponent = exports.TopDialogPage = exports.TopDialog = void 0;\n Object.defineProperty(exports, \"useTopDialogSelf\", { enumerable: true, get: function () { return utils_CUvjkXu8_es_js_1.r; } });\n Object.defineProperty(exports, \"TopDialog\", { enumerable: true, get: function () { return utils_CUvjkXu8_es_js_1.s; } });\n Object.defineProperty(exports, \"propsPageCommon\", { enumerable: true, get: function () { return dialog_DZLTpHen_es_js_1.n; } });\n Object.defineProperty(exports, \"TopDialogPage\", { enumerable: true, get: function () { return dialog_DZLTpHen_es_js_1.r; } });\n Object.defineProperty(exports, \"TopDialogPageComponent\", { enumerable: true, get: function () { return dialog_DZLTpHen_es_js_1.t; } });\n});\n"]}
package/dialog/dialog.js CHANGED
@@ -1,3 +1,3 @@
1
- import { r as e, s as t } from "../.chunks/utils-Xb6J5WcU.es.js";
2
- import { n, r, t as i } from "../.chunks/dialog-CiK4MPcB.es.js";
1
+ import { r as e, s as t } from "../.chunks/utils-CUvjkXu8.es.js";
2
+ import { n, r, t as i } from "../.chunks/dialog-DZLTpHen.es.js";
3
3
  export { t as TopDialog, r as TopDialogPage, i as TopDialogPageComponent, n as propsPageCommon, e as useTopDialogSelf };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@topvisor/ui",
3
3
  "private": false,
4
- "version": "1.5.10-animation.0",
4
+ "version": "1.5.10-hotkeys.0",
5
5
  "type": "module",
6
6
  "description": "Topvisor UI-kit Vue",
7
7
  "author": "Topvisor",
@@ -1,2 +1,2 @@
1
- var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=n(r),o=0;o<a.length;o++)a[o]!=="default"&&__createBinding(i,r,a[o]);return __setModuleDefault(i,r),i}})();define([`require`,`exports`,`../.chunks/api-nVBtzTDk.es.amd`,`../.chunks/forms-CjJD60m3.es.amd`,`../utils/dom.amd`,`../.chunks/worker-F-Y1IEi2.es.amd`,`../.chunks/utils-Xb6J5WcU.es.amd`,`../utils/check.amd`,`../utils/string.amd`,`../utils/searchers.amd`,`../utils/keyboard.amd`,`../.chunks/popup-q1PRZblX.es.amd`,`../.chunks/formsExt-B9hGGznb.es.amd`,`vue`,`../.chunks/app-BbV6AslA.es.amd`,`../require/css.amd!../assets/project.css`],function(e,t,r,i,a,o,s,c,l,u,d,f,p,m){"use strict";if(h===void 0)var h=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.useItemsFromCompetitors=t.topProjectSelectorClearCache=t.renderElTopTagSelectorPopupOpener=t.genSearcherByKey=t.genElTopTagSelectorPopupOpener=t.findRegion=t.dialogRegionSelector=t.TopTagSelectorTagIcon=t.TopTagSelectorPopupOpener=t.TopTagSelector=t.TopRegionSelector=t.TopProjectSelector=t.TopGroupSelector=t.TopCompetitorSelector=void 0;var g={class:`top-competitorSelector`},_={class:`top-ellipsis1`},v=(0,m.defineComponent)({__name:`competitorSelector`,props:(0,m.mergeModels)({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0},selectAllItemIcon:{default:``}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=(0,m.useModel)(e,`modelValue`),r=(0,m.computed)(()=>{if(t.showSelectAllItem)return{icon:t.selectAllItemIcon,title:(0,i.E)().Common.Select_all,value:`all`,content:``}});return(t,a)=>((0,m.openBlock)(),(0,m.createElementBlock)(`div`,g,[(0,m.unref)(i.O).state.isMobile?((0,m.openBlock)(),(0,m.createBlock)(f.s,{key:0},{opener:(0,m.withCtx)(()=>[(0,m.createVNode)(i.h,{class:`top-competitorSelector_opener`,color:`theme`,icon:``,icon2:``},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(e.items.find(e=>e.value===n.value?.[0])?.content),1)]),_:1})]),contentList:(0,m.withCtx)(()=>[((0,m.openBlock)(!0),(0,m.createElementBlock)(m.Fragment,null,(0,m.renderList)(e.items,e=>((0,m.openBlock)(),(0,m.createBlock)(f.o,{class:(0,m.normalizeClass)({"top-active":n.value?.includes(e.value)}),"data-top-icon":e.icon,title:e.title,onClick:()=>n.value=[e.value]},{default:(0,m.withCtx)(()=>[(0,m.createElementVNode)(`span`,_,(0,m.toDisplayString)(e.content),1)]),_:2},1032,[`class`,`data-top-icon`,`title`,`onClick`]))),256))]),_:1})):((0,m.openBlock)(),(0,m.createBlock)(p.p,{key:1,modelValue:n.value,"onUpdate:modelValue":a[0]||=e=>n.value=e,items:e.items,isMultiple:!0,styling:`bar`,canBeEmptyMultiple:!1,selectAllItem:r.value},null,8,[`modelValue`,`items`,`selectAllItem`]))]))}}),y=(e,t)=>(0,m.computed)(()=>(0,m.toValue)(e).filter(e=>e.on>=0||e.id===t).map(e=>({value:e.id,title:e.url+` [${e.id}]`,icon:e.id===(0,m.toValue)(t)?``:``,content:e.name}))),b={0:`Yandex`,1:`Google`,4:`YouTube`,5:`Bing`,7:`Seznam`,8:`AppStore`,9:`GoogleStore`,20:`Yandex.com`,21:`Yandex.com.tr`,22:`YandexLive`},x={key:-2,name:`--`,index:-2},S={key:-2,name:`--`,regions:[x],regionByIndex:new Map([[-2,x]])},C={key:-2,name:`Autoselect`,index:-2},w={key:-2,name:`Autoselect`,regions:[C],regionByIndex:new Map([[-2,C]])},T={countryCode:`00`,depth:1,device:0,key:-1,index:-1,lang:`ru`,name:`Without region`},ee=()=>(C.name=(0,i.E)().Common.Autoselect,C),te=()=>(ee(),w.name=(0,i.E)().Common.Autoselect,console.log(w),w),ne=()=>(T.name=(0,i.E)().Keywords.Without_region,T),re=[4,8,9],E=(e,t,n=[])=>{let r=O(e,!1,n),i;return r.forEach(n=>{if((t.searcher_key===void 0||t.searcher_key==n.key)&&n.regions&&(n.regions.forEach(r=>{if(!i&&(t.key===void 0||t.key==r.key)&&(t.index===void 0||t.index==r.index)&&!(!e&&(t.lang!==void 0&&t.lang!=r.lang||t.device!==void 0&&t.device!=r.device)))return r.searcher_key=n.key,i=r,!1}),i))return!1}),i},D=(0,s.t)(()=>new Promise((t,n)=>{e([`../.chunks/dialog_regionSelectorRegions-CRUwGUuz.es.amd`],t,n)}).then(__importStar)),O=(e=``,t=!1,n=[])=>{let r;return r=e===`volume`||e===`cost_forecast`?ie(n):e===`project_relevant_url`?ae(n):k(n,!0),t&&r.set(-2,te()),r.size||r.set(-2,S),r},ie=e=>{e=e.filter(e=>i.O.state.forceSearchersKeysForKeywordsStats.includes(e.key));let t=k(e,!1);return i.O.state.forceSearchersKeysForKeywordsStats.forEach(e=>{if(t.has(e))return;let n={key:e,name:b[e],regions:[],regionByIndex:new Map};t.set(n.key,n)}),i.O.state.showGlobalRegionForKeywordsStats&&t.forEach(e=>{if(!e.regionByIndex)return;let t={...ne()};e.regionByIndex.set(t.index,t)}),t},ae=e=>(e=e.filter(e=>!re.includes(e.key)),k(e,!1)),k=(e,t)=>{let n=new Map;return e.forEach(e=>{if(t&&!e.enabled)return;let r={...e};r.regionByIndex=new Map,e.regions&&e.regions.forEach(e=>{if(t&&!e.enabled)return;let n={...e};r.regionByIndex.set(n.index,n)}),r.regionByIndex.size,(!e.regions||r.regionByIndex.size)&&n.set(r.key,r)}),n},oe=(e,t)=>{let n=(0,i.E)();return{searcherKey:(0,m.ref)(t.value.keys().next().value??-2),optionBySearcherKey:(0,m.computed)(()=>{let r=new Map;if(t.value.forEach(t=>{let n={value:t.key,title:t.name};e.addSearcherIcon&&(n.icon=(0,u.getSearcherGIcon)(t.key)),r.set(t.key,n)}),e.addCompare&&!r.has(-2)){let e={value:``,title:`--------------------`,disabled:!0};r.set(e.value,e);let t={value:-1,title:n.Common.Compare};r.set(t.value,t)}return r})}},se=(e,t)=>{let n=(0,i.E)(),r=(0,m.computed)(()=>e.forMode===`volume`||e.forMode===`cost_forecast`),a=(0,m.ref)(-2);e.modelValue.length===1&&(a.value=e.modelValue[0]),a.value===-2&&(a.value=r.value?t.value?.regionByIndex.values().next().value?.key??-2:t.value?.regionByIndex.keys().next().value??-2);let o=(0,m.computed)(()=>{let e=new Map;return t.value.regionByIndex?.forEach(i=>{let a=i.name;if(r.value){let t={value:i.key,title:a};e.has(i.key)||e.set(i.key,t);return}i.device&&(a+=` (`+n.Common[`Device_`+i.device]+`)`);let o=(0,u.getLangLabel)(t.value.key||0,i.lang??``);o&&(a+=` / `+o);let s={value:i.index,title:a,icon:i.device?(0,u.getDeviceGIcon)(i.device):void 0};e.set(i.index,s)}),e});return(0,m.watch)(o,(t,r)=>{if(e.onlySearcher||a.value!==void 0&&t.get(a.value))return;let i=t.keys().next().value;if(a.value===-2||i===-2){a.value=i;return}let o=r?.get(a.value)?.title||``,s=-1;for(let[e,r]of t.entries()){let t=r.title;if(typeof t!=`string`||typeof e==`string`)break;if(t===o){i=e;break}let a=RegExp(` \\((${n.Common.Device_1}|${n.Common.Device_2})\\)`),c=o,l=3;t.indexOf(c)===-1&&(c=o.replace(/^[^a-zа-я]/i,``).replace(a,``),l--),t.indexOf(c)===-1&&(c=o.replace(/ \/.*/,``),l--),t.indexOf(c)===-1&&(c=o.replace(/ \/.*/,``),c=c.replace(/^[^a-zа-я]/i,``).replace(a,``),l--),t.indexOf(c)!==-1&&(l<=s||(s=l,i=e))}a.value=i}),{regionIndex:a,optionByRegionIndex:o}},ce=(e,t,n)=>{let r=(0,m.ref)([]),i=()=>{if(e.onlySearcher&&t.value){r.value=Array.from(t.value.keys());return}let i=[];if(e.modelValue.length>1)i=[...e.modelValue];else try{i=JSON.parse(localStorage.getItem(`ui:project:regionSelector`+e.projectId+`:regionsIndexes`))??[]}catch{}i.length&&(i=i.filter(e=>n.value.has(e))),i.length||(i=Array.from(n.value)),r.value=[...i]},a=()=>{r.value.length?localStorage.setItem(`ui:project:regionSelector:`+e.projectId+`:regionsIndexes`,JSON.stringify(r.value)):localStorage.removeItem(`ui:project:regionSelector:`+e.projectId+`:regionsIndexes`)};return(0,m.watch)(r,()=>{a()}),e.addCompare&&i(),{regionsIndexes:r}},le=e=>{let t=(0,m.computed)(()=>e.forMode===`volume`||e.forMode===`cost_forecast`),n=(0,m.computed)(()=>O(e.forMode,e.autoRegion,e.searchers)),r=(0,m.computed)(()=>n.value.get(a.searcherKey.value)||S),i=(0,m.computed)(()=>{let e=new Set;return n.value.forEach(t=>{t.regionByIndex.forEach(t=>{t.index!==-2&&e.add(t.index)})}),e}),a=oe(e,n),o=se(e,r),s=ce(e,n,i);(0,m.watch)(n,()=>{if(e.onlySearcher?s.regionsIndexes.value=Array.from(n.value.keys()):s.regionsIndexes.value=s.regionsIndexes.value.filter(e=>i.value.has(e)),a.searcherKey.value===-1)return;let t=n.value.keys().next().value;n.value.forEach(r=>{if(e.onlySearcher&&r.key===a.searcherKey.value){t=a.searcherKey.value;return}if(o.regionIndex.value&&r.regionByIndex?.has(o.regionIndex.value)&&(t=r.key),!e.onlySearcher){let e;t!==void 0&&(e=n.value.get(t)?.regionByIndex);let i=n.value.get(r.key)?.regionByIndex;e?.has(-2)&&!i?.has(-2)&&(t=r.key)}}),t!==void 0&&(a.searcherKey.value=t),o.regionIndex.value!==void 0&&!(r.value?.regionByIndex)?.has(o.regionIndex.value)&&(o.regionIndex.value=r.value?.regions?.keys().next().value)},{immediate:!0});let c=()=>{if(a.searcherKey.value!==-1&&a.searcherKey.value!==-2)return a.searcherKey.value},l=()=>{if(e.onlySearcher||o.regionIndex.value===-2)return;let n=o.regionIndex.value;if(t.value&&e.forMode){let t=o.regionIndex.value;n=E(e.forMode,{searcher_key:c(),key:t},e.searchers)?.index}return n},u=()=>{let e=c();if(e!==void 0)return n.value.get(e)};return{selectSearcher:a,selectRegion:o,compare:s,searcherByKey:n,allRegionsIndexes:i,getSearcher:u,getRegion:()=>{let e=l();if(e!==void 0)return u()?.regionByIndex?.get(e)}}},ue=(0,m.defineComponent)({__name:`regionSelector`,props:(0,m.mergeModels)({projectId:{},searchers:{default:()=>[]},modelValue:{},modelValueSingle:{},addCompare:{type:Boolean},forMode:{},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(e,{expose:t}){let n=e,r=(0,m.computed)(()=>n.forMode===`volume`||n.forMode===`cost_forecast`),a=(0,m.useModel)(e,`modelValue`),o=(0,m.useModel)(e,`modelValueSingle`),{selectSearcher:s,selectRegion:c,compare:l,searcherByKey:u,allRegionsIndexes:d,getSearcher:f,getRegion:p}=le(n),h=()=>{let e=[];u.value.forEach(t=>{(n.forMode===`project_relevant_url`||t.enabled)&&t.regions.forEach(t=>{(n.forMode===`project_relevant_url`||t.enabled)&&t.index!==-1&&e.push(t)})}),D.open(`regions`,{regions:e,regionsIndexes:l.regionsIndexes.value,"@update:regionsIndexes":e=>l.regionsIndexes.value=e})};return(0,m.watch)([c.regionIndex,s.searcherKey,l.regionsIndexes],()=>{if(s.searcherKey.value===-1&&l.regionsIndexes.value.length){if(JSON.stringify(a.value)===JSON.stringify(l.regionsIndexes.value))return;a.value=[...l.regionsIndexes.value]}else n.onlySearcher?(a.value=[s.searcherKey.value],s.searcherKey.value===-2&&!n.autoRegion&&(a.value.length=0)):(a.value=[c.regionIndex.value],c.regionIndex.value===-2&&!n.autoRegion&&(a.value.length=0));!n.onlySearcher&&!d.value.size&&(s.searcherKey.value=-2)}),o.value&&(0,m.watch)(o,()=>{o.value&&(a.value=[o.value])},{immediate:!0}),(0,m.watch)(a,()=>{if(a.value[0]&&(o.value=a.value[0]),n.onlySearcher){if(!a.value.length||a.value.length===1&&!u.value.has(a.value[0])||a.value.length===1&&a.value[0]===-2&&!n.autoRegion){let e=u.value.keys().next().value;e===-2&&!n.autoRegion&&(e=void 0,o.value=-2),e===void 0?a.value.length=0:a.value=[e];return}if(a.value.length>1&&JSON.stringify(a.value)!==JSON.stringify(l.regionsIndexes.value)){a.value=[...l.regionsIndexes.value];return}}else{let e=[...new Set(a.value)],t=u.value.values().next().value?.regionByIndex?.keys().next().value;if(r.value&&(t=u.value.values().next().value?.regionByIndex?.values().next().value?.key),t===-2&&!n.autoRegion&&(t=void 0,o.value=-2),!e.length)t!==void 0&&e.push(t);else if(e.length===1){let n=d.value;r.value&&(n=new Set,u.value.forEach(e=>{e.regionByIndex.forEach(e=>{e.index!==-2&&n.add(e.key)})})),n.has(e[0])||(e=[],t!==void 0&&e.push(t))}else e=e.filter(e=>d.value.has(e)),!e.length&&t!==void 0&&e.push(t);if(JSON.stringify(a.value)!==JSON.stringify(e)){a.value=e;return}}if(a.value.length!==1||a.value[0]!==(n.onlySearcher?s.searcherKey.value:c.regionIndex.value)){if(n.onlySearcher){if(a.value.length===1){s.searcherKey.value=a.value[0];return}s.searcherKey.value=-1;return}if(!a.value.length)return;if(a.value.length===1&&s.searcherKey.value!==-1){c.regionIndex.value=a.value[0];let e;for(let t of u.value.values()){for(let n of t.regionByIndex.values())if((r.value?n.key:n.index)===c.regionIndex.value){e=t.key;break}if(e!==void 0)break}e!==void 0&&(s.searcherKey.value=e)}else s.searcherKey.value=-1,l.regionsIndexes.value=[...a.value]}},{immediate:!0}),t({getSearcher:f,getRegion:p}),(t,n)=>((0,m.openBlock)(),(0,m.createElementBlock)(`div`,{class:(0,m.normalizeClass)({"top-regionSelector":!0,"top-regionSelector-onlySearcher":e.onlySearcher})},[(0,m.createVNode)(i.n,{options:(0,m.unref)(s).optionBySearcherKey.value,modelValue:(0,m.unref)(s).searcherKey.value,"onUpdate:modelValue":n[0]||=e=>(0,m.unref)(s).searcherKey.value=e,name:`searcher_key`,addChanger:e.addChanger},null,8,[`options`,`modelValue`,`addChanger`]),!e.onlySearcher&&(0,m.unref)(s).searcherKey.value!==(0,m.unref)(-1)?((0,m.openBlock)(),(0,m.createBlock)(i.n,{key:0,class:`top-select-region`,options:(0,m.unref)(c).optionByRegionIndex.value,modelValue:(0,m.unref)(c).regionIndex.value,"onUpdate:modelValue":n[1]||=e=>(0,m.unref)(c).regionIndex.value=e,name:r.value?`region_key`:`region_index`,addChanger:e.addChanger,"data-top-icon":e.addRegionIcon?``:void 0},null,8,[`options`,`modelValue`,`name`,`addChanger`,`data-top-icon`])):(0,m.createCommentVNode)(``,!0),e.addCompare&&!e.onlySearcher&&(0,m.unref)(s).searcherKey.value===(0,m.unref)(-1)?((0,m.openBlock)(),(0,m.createBlock)(i.h,{key:1,name:`compare`,onClick:h,"data-count-compare-regions-indexes":(0,m.unref)(l).regionsIndexes.value.length},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(t.$i18n.Common.Selected_regions),1)]),_:1},8,[`data-count-compare-regions-indexes`])):(0,m.createCommentVNode)(``,!0)],2))}}),A={id:0,name:`/`,path:`/`};t.TopCompetitorSelector=v,t.useItemsFromCompetitors=y,t.findRegion=E,t.dialogRegionSelector=D,t.genSearcherByKey=O,t.TopRegionSelector=ue;function j(e){return e?(0,i.E)()?.Common.All_folders:`/ (`+(0,i.E)()?.Keywords.Root_folder+`)`}var M=(e,t,n=new Map,r={id:`root`},i=0)=>(r.childsIds=[],r.id&&(r.countAllGroupsActive=r.count_groups_active),e[r.id]&&e[r.id].forEach(a=>{a={...a},r.childsIds.push(a.id),a.id===0&&(a.name=j(t));let o=i>1?`-`.repeat(i-1)+` `:``;o&&!a.name.startsWith(o)&&(a.name=o+a.name),n.set(a.id,a),M(e,t,n,a,i+1),r.childsIds=r.childsIds.concat(a.childsIds),r.id&&a.count_groups_active&&(r.countAllGroupsActive+=a.count_groups_active)}),n),de=(e,t)=>e.gen(`/get/${t}/folders/`,[`id`,`parent_id`,`name`,`path`]).changeParams({orders:[`ord_path`],limit:100});function N(e,t,n){let r=Object.keys(e),i=r.map(t=>e[t]);return(0,m.watch)(i,(e,n,i)=>{let a={};e.forEach((e,t)=>{if(!Object.is(e,n[t])){let i=r[t];a[i]={old:n[t],new:e}}}),Object.keys(a).length&&t(a,i)},n)}var fe=[`innerHTML`],pe=(0,m.defineComponent)({__name:`folders`,props:(0,m.mergeModels)({folderId:{},folder:{},folders:{},projectId:{},canSelectAll:{type:Boolean},addChanger:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{},service:{}},{folderId:{required:!0},folderIdModifiers:{},folder:{default:A},folderModifiers:{}}),emits:[`update:folderId`,`update:folder`],setup(e){let t=e,n=(0,m.useModel)(e,`folderId`),r=(0,m.useModel)(e,`folder`),i=t.client&&!t.folders?de(t.client,t.service):void 0,a=(0,m.ref)(null);(0,m.watch)(()=>t.projectId,()=>{i?.changeParams({project_id:t.projectId}),i?.setOptions({checkFingerprint:`TopGroupSelectorFolders:`+t.projectId}),a.value?.resetCache()},{immediate:!0});let o=(0,m.computed)(()=>M(t.folders??{root:[A]},t.canSelectAll)),s=e=>(t.canSelectAll&&e[0]?.id===0&&(e[0]={...e[0],name:j(!0)}),e);return N({modelFolder:r,modelFolderId:n},async e=>{if(n.value===r.value.id)return;if(e.modelFolder&&!e.modelFolderId){n.value=r.value.id;return}let i=o.value.get(t.folderId);i||=A,r.value=i,n.value=i.id},{immediate:!0}),(t,n)=>((0,m.openBlock)(),(0,m.createBlock)(p.c,{class:`top-groupSelector_folder`,modelValue:r.value,"onUpdate:modelValue":n[0]||=e=>r.value=e,items:e.folders?[...o.value.values()]:void 0,"search-type":`inline`,icon:e.addIcon?``:void 0,api:e.folders?void 0:(0,m.unref)(i),apiSetSearchParams:(...e)=>(0,m.unref)(p.d)(...e,`name`),prepareItemsBeforeRender:s,addChanger:e.addChanger,useCache:``},{item:(0,m.withCtx)(({item:e})=>[(0,m.createElementVNode)(`div`,{innerHTML:e.name.replaceAll(/</g,`< `)},null,8,fe)]),_:1},8,[`modelValue`,`items`,`icon`,`api`,`apiSetSearchParams`,`addChanger`]))}}),P={id:-1,name:`--`,folder_id:A.id,folder_path:A.path},F={id:0,name:`All groups`,folder_id:A.id,folder_path:A.path},I=()=>(F.name=(0,i.E)()?.Common.All_groups,F),L=()=>(F.name=(0,i.E)()?.Keywords.Choose_group,F),me=(e,t,n)=>(e=[...e],t!==void 0&&(e=e.filter(e=>e.on==Number(t))),n&&n.id&&n.childsIds&&(e=e.filter(e=>e.folder_id===n.id||n.childsIds.includes(e.folder_id))),e),R=(e,t)=>e.gen(`/get/${t}/groups/`,[`id`,`name`,`folder_id`,`folder_path`]).changeParams({folder_id_depth:!0,limit:100}),he=(e,t)=>e.gen(`/add/${t}/groups/`),ge=(e,t)=>e.gen(`/del/${t}/groups/`),_e=(e,t)=>e.gen(`/edit/${t}/groups/rename/`),ve={class:`top-groupSelector_groupItem top-ellipsis1`},ye={key:0,class:`top-comment`},be=[`innerHTML`],xe=[`innerHTML`],Se=[`innerHTML`],Ce=(0,m.defineComponent)({__name:`groups`,props:(0,m.mergeModels)({groupId:{},group:{},projectId:{},folder:{},groups:{},on:{type:Boolean,default:void 0},canAdd:{type:[String,Boolean]},canEditAndDel:{type:Boolean},canSelectAll:{type:[Boolean,String]},autoselect:{default:`first`},addChanger:{type:Boolean,default:!0},showPath:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{},service:{default:`keywords_2`}},{groupId:{required:!0},groupIdModifiers:{},group:{required:!0},groupModifiers:{}}),emits:(0,m.mergeModels)([`addGroup`,`editGroup`,`delGroup`],[`update:groupId`,`update:group`]),setup(e,{expose:t,emit:n}){let i=e,a=n,o=(0,m.useModel)(e,`groupId`),s=(0,m.useModel)(e,`group`),c=i.client&&!i.groups?R(i.client,i.service):void 0,l=i.client?he(i.client,i.service):void 0,u=i.client?ge(i.client,i.service):void 0,d=i.client?_e(i.client,i.service):void 0,h=(0,m.ref)(null),g=(0,m.computed)(()=>{if(i.groups!==void 0)return me(i.groups,i.on,i.folder)}),_=(0,r.i)(`folder_id`,`EQUALS`,[i.folder?.id??0]);c?.changeParams({project_id:i.projectId,folder_id_depth:!0,filters:[_]}),i.on!==void 0&&c?.params.filters?.push((0,r.i)(`on`,`EQUALS`,[Number(i.on)]));let v=e=>{s.value=e,o.value=e.id},y=(e=!1)=>{h.value?.resetCache(e)};N({projectId:()=>i.projectId,folderId:()=>i.folder?.id,canSelectAll:()=>i.canSelectAll},e=>{if(e.projectId&&(c?.changeParams({project_id:i.projectId}),c?.setOptions({checkFingerprint:`TopGroupSelectorGroups:`+i.projectId})),e.folderId&&(_.values=[i.folder?.id??0]),y(),(e.folderId?.old!==void 0||e.canSelectAll?.old!==void 0)&&o.value!==null){let e;i.autoselect===`first`&&(e=g.value?.[0],i.canSelectAll&&(e=(0,m.reactive)(I()))),(i.autoselect===`placeholder`||!e)&&(e=L()),v(e)}},{immediate:!0}),N({modelGroup:s,modelGroupId:o},async e=>{if(o.value!==s.value.id){if(e.modelGroup&&!e.modelGroupId){o.value=s.value.id;return}if(!(i.canAdd&&o.value===null)){if(i.groups){let e=g.value?.find(e=>e.id===o.value);if(!e&&i.canSelectAll&&(e=I()),e)v(e);else{let e=g.value?.[0];e&&!o.value?v(e):v(P)}}if(i.client&&!i.groups&&(o.value||o.value===0&&!i.canSelectAll)){let e=R(i.client,i.service).changeParams({project_id:i.projectId,id:o.value,filters:[_]});e?.setOptions({checkFingerprint:`TopGroupSelectorFindGroup:`+i.projectId});let t=await e.call();if(!t.errors?.length&&!t.result)return;!t.errors&&t.result[0]?v(t.result[0]):v(P)}}}},{immediate:!0});let b=async e=>{if(i.canAdd!==`api`||!l)return;let t=s.value,n=await l.changeParams({project_id:i.projectId,names:[e.name],to_id:i.folder?.id??A.id,to_type:`in_folder_last`}).call();if(n.result){let e=n.result[0];v(e),a(`addGroup`,e)}else v(t);h.value?.resetCache(!0)},x=async(e,t)=>{d&&((await d.changeParams({project_id:i.projectId,id:e.id,name:t}).call()).errors||(s.value.id===e.id&&(s.value.name=t),a(`editGroup`,{id:e.id,name:t}),h.value?.updateCacheItemById(e.id,{name:t})))},S=async e=>{u&&((await u.changeParams({project_id:i.projectId,id:e.id}).call()).errors||(s.value.id===e.id&&v(i.canSelectAll?I():P),a(`delGroup`,e.id),h.value?.deleteCacheItemById(e.id)))};return t({resetCacheGroups:y}),(t,n)=>((0,m.openBlock)(),(0,m.createBlock)(p.c,{ref_key:`refSelector`,ref:h,class:`top-groupSelector_group`,modelValue:s.value,"onUpdate:modelValue":n[0]||=e=>s.value=e,items:g.value??e.groups,searchType:`inline`,icon:e.addIcon?``:void 0,api:e.groups?void 0:(0,m.unref)(c),apiSetSearchParams:(...e)=>(0,m.unref)(p.d)(...e,`name`),appendSearchToResult:!!e.canAdd,useAllItem:e.canSelectAll?(0,m.unref)(I)().name:!1,addChanger:e.addChanger,useCache:``,onAppendItem:b},(0,m.createSlots)({item:(0,m.withCtx)(({item:n})=>[(0,m.createElementVNode)(`div`,ve,[n.id===(0,m.unref)(null)?((0,m.openBlock)(),(0,m.createElementBlock)(`div`,ye,(0,m.toDisplayString)(t.$i18n.Common.Add)+`: `,1)):(0,m.createCommentVNode)(``,!0),(0,m.createElementVNode)(`span`,{class:`top-groupSelector_groupItemName top-ellipsis1`,innerHTML:n.name},null,8,be),n.folder_path&&e.showPath?((0,m.openBlock)(),(0,m.createElementBlock)(`span`,{key:1,class:`top-groupSelector_groupItemFolderPath top-ellipsis1`,innerHTML:n.folder_path},null,8,xe)):(0,m.createCommentVNode)(``,!0)])]),_:2},[e.canEditAndDel&&e.client?{name:`actions`,fn:(0,m.withCtx)(({item:r})=>[r.id?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[(0,m.createVNode)(f.n,{submitText:t.$i18n.Common.Save,defaultValue:r.name,inputProps:{addCleaner:!1},onSubmit:e=>x(r,e)},{opener:(0,m.withCtx)(()=>[...n[1]||=[(0,m.createElementVNode)(`div`,{"data-top-icon":``},null,-1)]]),default:(0,m.withCtx)(()=>[...n[2]||=[]]),_:1},8,[`submitText`,`defaultValue`,`onSubmit`]),(0,m.createVNode)(f.r,{isWarning:``,submitText:t.$i18n.Common.Delete,onSubmit:e=>S(r)},{opener:(0,m.withCtx)(()=>[...n[3]||=[(0,m.createElementVNode)(`div`,{"data-top-icon":``},null,-1)]]),default:(0,m.withCtx)(()=>[(0,m.createElementVNode)(`span`,{innerHTML:e.service===`keywords_2`?t.$i18n.Keywords.Delete_group_warning:t.$i18n[`Ai.Tracker`].Delete_group_warning},null,8,Se)]),_:1},8,[`submitText`,`onSubmit`])],64)):(0,m.createCommentVNode)(``,!0)]),key:`0`}:void 0]),1032,[`modelValue`,`items`,`icon`,`api`,`apiSetSearchParams`,`appendSearchToResult`,`useAllItem`,`addChanger`]))}}),we={class:`top-groupSelector`},Te=(0,m.defineComponent)({__name:`groupSelector`,props:(0,m.mergeModels)({folderId:{},folder:{},groupId:{},group:{},projectId:{},folders:{},groups:{},on:{type:Boolean,default:void 0},canSelectAllGroups:{type:Boolean,default:!1},canAddGroup:{type:[String,Boolean]},canEditAndDelGroup:{type:Boolean},autoselect:{default:`first`},addChanger:{type:Boolean,default:!0},showFolders:{type:Boolean,default:!0},showGroups:{type:Boolean,default:!0},showGroupsPaths:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{},service:{default:`keywords_2`}},{folderId:{required:!0},folderIdModifiers:{},folder:{},folderModifiers:{},groupId:{required:!0},groupIdModifiers:{},group:{default:P},groupModifiers:{}}),emits:(0,m.mergeModels)([`update:groups`],[`update:folderId`,`update:folder`,`update:groupId`,`update:group`]),setup(e,{expose:t,emit:n}){let r=e,i=(0,m.ref)(null),a=(0,m.useModel)(e,`folderId`),o=(0,m.useModel)(e,`folder`),s=(0,m.useModel)(e,`groupId`),c=(0,m.useModel)(e,`group`),l=n;o.value=M(r.folders??{root:[A]},r.canSelectAllGroups).get(a.value);let u=r.groups?.find(e=>e.id===s.value);s.value||(u=r.groups?.[0]),r.canSelectAllGroups&&!u&&(u=I()),(r.autoselect===`placeholder`||!u)&&(u=L()),u??=P,c.value=u;let d=e=>{let t;r.groups&&e&&(t=[...r.groups,e]),l(`update:groups`,t)},f=e=>{if(!r.groups){l(`update:groups`);return}let t=r.groups.find(t=>t.id===e.id);if(!t)return;let n={...t,...e},i=r.groups.map(e=>e.id===n.id?n:e);l(`update:groups`,i)},p=e=>{if(!r.groups){l(`update:groups`);return}let t=r.groups.filter(t=>t.id!==e);l(`update:groups`,t)};return t({resetCacheGroups:(e=!1)=>{i.value?.resetCacheGroups(e)}}),(t,n)=>((0,m.openBlock)(),(0,m.createElementBlock)(`div`,we,[e.showFolders?((0,m.openBlock)(),(0,m.createBlock)(pe,{key:0,folderId:a.value,"onUpdate:folderId":n[0]||=e=>a.value=e,folder:o.value,"onUpdate:folder":n[1]||=e=>o.value=e,projectId:e.projectId,folders:e.folders,canSelectAll:e.canSelectAllGroups,addChanger:e.addChanger,addIcon:e.addIcon,client:e.client,service:r.service},null,8,[`folderId`,`folder`,`projectId`,`folders`,`canSelectAll`,`addChanger`,`addIcon`,`client`,`service`])):(0,m.createCommentVNode)(``,!0),e.showGroups?((0,m.openBlock)(),(0,m.createBlock)(Ce,{key:1,ref_key:`componentGroupsRef`,ref:i,groupId:s.value,"onUpdate:groupId":n[2]||=e=>s.value=e,group:c.value,"onUpdate:group":n[3]||=e=>c.value=e,projectId:e.projectId,folder:o.value,groups:e.groups,on:e.on,canAdd:e.canAddGroup,canEditAndDel:e.canEditAndDelGroup,canSelectAll:e.canSelectAllGroups,autoselect:e.autoselect,addChanger:e.addChanger,showPath:e.showGroupsPaths||e.showFolders,addIcon:e.addIcon,client:e.client,service:r.service,onAddGroup:d,onEditGroup:f,onDelGroup:p},null,8,[`groupId`,`group`,`projectId`,`folder`,`groups`,`on`,`canAdd`,`canEditAndDel`,`canSelectAll`,`autoselect`,`addChanger`,`showPath`,`addIcon`,`client`,`service`])):(0,m.createCommentVNode)(``,!0)]))}}),z=e=>({id:null,name:e,listItemProps:{type:`title`,class:`top-projectSelector_item`}}),B={scheduledUpdate:!1,manualUpdate:!1,guestProjects:!1},Ee=(e,t)=>{let n=[],r={scheduledUpdate:z((0,i.E)().Projects.Scheduled_update),manualUpdate:z((0,i.E)().Projects.Manual_update),guestProjects:z((0,i.E)().Projects.Guest_projects)},a=t?{scheduledUpdate:!1,manualUpdate:!1,guestProjects:!1}:B;for(let t of e)!a.scheduledUpdate&&t.right?.startsWith(`1`)&&t.on>0&&(n.push(r.scheduledUpdate),a.scheduledUpdate=!0),!a.manualUpdate&&t.right?.startsWith(`1`)&&t.on===0&&(n.push(r.manualUpdate),a.manualUpdate=!0),!a.guestProjects&&t.right?.startsWith(`0`)&&t.on>=0&&(n.push(r.guestProjects),a.guestProjects=!0),n.push(t);return n},V=e=>({...e,externalLink:Ae(e.url??``),listItemProps:{class:`top-projectSelector_item`,attrs:{title:e.name}}}),De=(e,t,n)=>!e||e.length===0?[]:(t&&Object.keys(B).forEach(e=>B[e]=!1),Ee(e.map(V),n)),Oe=e=>{e=e.replace(/#.*/,``);let t=location.hash;return t=t.replace(/%22historyView%22:[^,]*,/,``),t=t.replace(/%22modelsKeys%22:\[[^\]]*],/,``),t=t.replace(/%22competitorsIds%22:\[[^\]]*],/,``),t=t.replace(/%22searchersKeys%22:\[[^\]]*],/,``),t=t.replace(/%22regionIndex%22:[^,]*,/,``),t=t.replace(/%22regionsIndexes%22:\[[^\]]*],/,``),t=t.replace(/%22folderId%22:[^,]*,/,``),t=t.replace(/%22groupId%22:[^,]*,/,``),t=t.replace(/%22tagsIds%22:\[[^\]]*],/,``),/%22dataSort%22:\{[^}]*0000-00-00[^}]*}/.test(t)||(t=t.replace(/,?%22dataSort%22:\{[^}]*}(,?)/,`$1`)),e+t},ke=e=>{location.href=H(e)},H=e=>{let t=U(),n=location.pathname.split(`/`),r=`project/dynamics/`,i=``;n[1]==`project`&&(r=n[1]+`/`+n[2]+`/`),n[2]==`settings`&&(i=location.hash),[`watcher`,`indexing`,`sitemap`,`audit`,`direct`,`adwords`].includes(n[4])&&(i=n[4]+`/`);let a=`https://`+t+`/`+r+e+`/`+i;return a=Oe(a),a},U=()=>window.page?.subdomain?window.location.host.replace(window.page?.subdomain+`.`,``):window.location.host,Ae=e=>{let t=e.startsWith(`http`)?e:`https://`+e;return t=t.replace(/"/g,`%22`),t},je=(e,t)=>{let n=e.params.filters??[];n=n.filter(e=>e.name!==`GEN_SEARCH_STRING()`);let i=(0,d.invertKeyboardLayout)(t),a=t.replace(/([[^$.|?*+()])/g,`\\$1`),o=i.replace(/([[^$.|?*+()])/g,`\\$1`);t&&n.push((0,r.i)(`GEN_SEARCH_STRING()`,`REGEXP`,[`(${a}|${o})`])),e.changeParams({filters:n})},Me=e=>{let t=e.gen(`/get/projects_2/projects/`,[`id`,`user_id`,`name`,`url`,`on`,`right`]);return t.changeParams({filters:[(0,r.i)(`on`,`GREATER_THAN_EQUALS`,[0])],orders:[(0,r.a)(`user_id`,`DESC`,[i.O.state.userId]),(0,r.a)(`on`,`ASC`,[0]),(0,r.a)(`favorite`,`DESC`),(0,r.a)(`ord`,`ASC`),(0,r.a)(`id`,`DESC`)]}),t.options.loadingShowSpinner=!1,t.options.onApiLoaded=(e,t,n)=>{let r=t.data.filters.length>1,i=t.data.offset===0,a=t.data.offset===void 0||i&&!r,o=r;e.result=De(e.result,a,o),n?.(e,t)},t},Ne=e=>e.gen(`/add/projects_2/projects/`),Pe={class:`top-ellipsis1`},Fe=(0,m.defineComponent)({__name:`submenu`,props:{id:{}},setup(e){let t=e,n=(0,i.E)(),r=U(),a=e=>{let t=[{href:`https://${r}/project/keywords/${e.id}/`,title:n.Common.Menu_phrases,icon:``,right:`2`},{href:`https://${r}/project/dynamics/${e.id}/`,title:n.Common.Menu_dynamics,icon:``,right:`1`},{href:`https://${r}/project/snapshots/${e.id}/`,title:n.Common.Menu_snapshots,icon:``,right:`1`},{href:`https://${r}/project/competitors/${e.id}/`,title:n.Common.Menu_competitors,icon:``,right:`1`},{href:`https://${r}/project/ai-tracker/${e.id}/`,title:n.Common.Menu_aiTracker,icon:``,right:`1`},{href:`https://${r}/project/analytics/${e.id}/`,title:n.Common.Menu_analytics,icon:``,right:`5`},{href:`https://${r}/project/broker/${e.id}/`,title:n.Common.Menu_broker,icon:``,right:`6`},{href:`https://${r}/project/audit/${e.id}/sitemap/`,title:n.Audit.Sitemap_gen,icon:``,right:`8`},{href:`https://${r}/project/audit/${e.id}/audit/`,title:n.Common.Menu_audit,icon:``,right:`8`},{href:`https://${r}/project/audit/${e.id}/indexing/`,title:n.Audit.Indexing,icon:``,right:`8`},{href:`https://${r}/project/audit/${e.id}/watcher/`,title:n.Audit.Watcher,icon:``,right:`9`},{href:`https://${r}/project/settings/${e.id}/`,title:n.Common.Menu_settings,icon:``,right:`2`}].filter(e=>!Object.entries(i.O.state.closedByMod).some(([t,n])=>n&&e.href.includes(`/${t}/`)));return e.right.includes(`0`)?t.filter(t=>e.right[t.right]===`1`):t};return(e,n)=>((0,m.openBlock)(),(0,m.createBlock)((0,m.unref)(f.s),{id:t.id,class:`top-projectSelectorSubmenu`,notch:!1,pos:`2`},{contentList:(0,m.withCtx)(({data:t})=>[t?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[((0,m.openBlock)(!0),(0,m.createElementBlock)(m.Fragment,null,(0,m.renderList)(a(t.projectItem),t=>((0,m.openBlock)(),(0,m.createBlock)((0,m.unref)(f.o),{href:t.href,title:t.title,"data-top-icon":t.icon,"data-right":t.right},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(e.$core.state.isMobile?t.title:``),1)]),_:2},1032,[`href`,`title`,`data-top-icon`,`data-right`]))),256)),(0,m.createVNode)((0,m.unref)(f.o),{href:t.projectItem.externalLink,title:t.projectItem.externalLink,class:`top-ellipsis`,"data-top-icon":``,target:`_blank`},{default:(0,m.withCtx)(()=>[(0,m.createElementVNode)(`span`,Pe,(0,m.toDisplayString)(e.$core.state.isMobile?t.projectItem.externalLink:``),1)]),_:2},1032,[`href`,`title`])],64)):(0,m.createCommentVNode)(``,!0)]),_:1},8,[`id`]))}}),W=`ui_project_selector_total`,Ie=864e5,G=(0,m.ref)(null),K=(0,m.shallowRef)(),q=e=>{localStorage.setItem(W+`:`+i.O.state.userId,JSON.stringify({projectsTotal:e,expiresAt:Date.now()+Ie}))},Le=()=>{let e=localStorage.getItem(W+`:`+i.O.state.userId);if(!e)return;let{projectsTotal:t,expiresAt:n}=JSON.parse(e);if(Date.now()>n){localStorage.removeItem(W+`:`+i.O.state.userId);return}return t},Re=()=>{G.value=null,K.value=void 0,localStorage.removeItem(W+`:`+i.O.state.userId),(0,p.f)(`/get/projects_2/projects/`)},ze={class:`top-projectSelector_itemText`},Be={class:`top-comment`},Ve={key:0,class:`top-comment`},He=[`href`],Ue=1e3,We=(0,m.defineComponent)({__name:`projectSelector`,props:(0,m.mergeModels)({modelValue:{},client:{},menuMode:{type:Boolean},excludeProjectId:{},openerShortcut:{},modificator:{},placeholder:{},buttonProps:{default:()=>({color:`theme`,styling:`outline`})}},{modelValue:{default:()=>({id:null,name:``})},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=(0,i.E)(),n=e,r=(0,m.useModel)(e,`modelValue`),a=Me(n.client),o=Ne(n.client),s=(0,m.ref)(Le()),u=(0,m.ref)(null),d=(0,m.useId)(),h=(0,m.computed)(()=>n.placeholder??t.Projects.Select_project),g=(0,m.computed)(()=>!K.value||!n.excludeProjectId?K.value:K.value.filter(e=>e.id!==n.excludeProjectId)),_=(0,m.computed)(()=>{if(s.value||s.value===0)return s.value<Ue?`static`:`api`}),v=async()=>{G.value||=a.call();let e=await G.value;return G.value=null,e},y=async e=>{let t=await o.changeParams({url:e.name,name:e.name}).call();if(!t.errors){if(K.value&&_.value===`static`){let n=V({id:t.result,user_id:i.O.state.userId,name:e.name,url:e.name,on:0,right:`11111111111111111111`}),r=K.value.findIndex(e=>e.on===0);K.value=[...K.value.slice(0,r),n,...K.value.slice(r)],s.value&&(s.value+=1,q(s.value))}_.value===`api`&&u.value?.resetCache(!0)}},b=async()=>{if(K.value||_.value===`api`)return;let e=await v();e.errors||(K.value=e.result)},x=async()=>{if(s.value){let e=u.value?.popupOpenerRef?.$el;e&&e.addEventListener(`pointerenter`,()=>b(),{once:!0})}else{a.changeParams({limit:Ue});let e=await v();if(e.errors)return;delete a.params.limit,s.value=e.total??void 0,!K.value&&_.value!==`api`&&(K.value=e.result),s.value&&q(s.value)}};return(0,m.onMounted)(async()=>{await x()}),(t,n)=>{let i=(0,m.resolveComponent)(`TopButton`);return(0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,null,[((0,m.openBlock)(),(0,m.createBlock)(p.c,{key:_.value??`dummy`,ref_key:`refSelector`,ref:u,class:`top-projectSelector`,modelValue:r.value,"onUpdate:modelValue":n[1]||=t=>e.menuMode?(0,m.unref)(ke)(t.id):r.value=t,items:g.value,itemsChunkSize:100,itemsIsLoading:_.value===`static`&&(0,m.unref)(K)===void 0,title:t.$i18n.Projects.Search_projects,modificator:e.modificator,searchFields:[`id`,`name`,`url`],placeholder:h.value,hasCloserBtn:``,api:_.value===`api`?(0,m.unref)(a):void 0,apiSetSearchParams:_.value===`api`?(...e)=>(0,m.unref)(je)(...e):void 0,useCache:``,appendSearchToResult:``,appendSearchAllowDuplicate:``,appendSearchToResultCond:(0,m.unref)(c.validUrl),appendWithoutSelect:``,buttonProps:{...e.buttonProps,isProgress:!_.value,disabled:!_.value},openerShortcut:e.openerShortcut,onAppendItem:y,onOpen:b},{item:(0,m.withCtx)(({item:r})=>[(0,m.createElementVNode)(`div`,ze,[r.id?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[(0,m.createTextVNode)((0,m.toDisplayString)((0,m.unref)(l.ellipsis)(r.name,20))+` `,1),(0,m.createElementVNode)(`span`,Be,` id `+(0,m.toDisplayString)(r.id),1)],64)):((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:1},[r.listItemProps?.type?(0,m.createCommentVNode)(``,!0):((0,m.openBlock)(),(0,m.createElementBlock)(`div`,Ve,(0,m.toDisplayString)(t.$i18n.Projects.Add_project)+`: `,1)),(0,m.createTextVNode)(` `+(0,m.toDisplayString)(r.name),1)],64))]),r.id?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[e.menuMode?((0,m.openBlock)(),(0,m.createElementBlock)(`a`,{key:0,class:`top-projectSelector_itemLink`,href:(0,m.unref)(H)(r.id)},null,8,He)):(0,m.createCommentVNode)(``,!0),t.$core.state.isMobile?(0,m.createCommentVNode)(``,!0):((0,m.openBlock)(),(0,m.createBlock)(i,{key:1,href:r.externalLink,"data-top-icon":``,color:`theme`,target:`_blank`,onClick:n[0]||=(0,m.withModifiers)(()=>{},[`stop`])},null,8,[`href`])),(0,m.createVNode)(f.c,{id:(0,m.unref)(d),pos:`2`,notch:!1,data:{projectItem:r}},{default:(0,m.withCtx)(()=>[(0,m.createVNode)(i,{class:`top-popup_listMore`,"data-top-icon":``,color:`theme`})]),_:1},8,[`id`,`data`])],64)):(0,m.createCommentVNode)(``,!0)]),_:1},8,[`modelValue`,`items`,`itemsIsLoading`,`title`,`modificator`,`placeholder`,`api`,`apiSetSearchParams`,`appendSearchToResultCond`,`buttonProps`,`openerShortcut`])),(0,m.createVNode)(Fe,{id:(0,m.unref)(d)},null,8,[`id`])],64)}}}),Ge=e=>`-`+e,J=e=>e[0]===`-`?e.substring(1):e,Y=(e,t)=>{e=J(e);let n=t.find(t=>t.id===e);if(n)return n},Ke=(e,t,n)=>{t||={id:e.id},t.id=e.id,t.pos??=`3`,t.notch??=!0,t.posBy??=`fixed`;let r=o.t.genElPopupOpener(`div`,t);return r.classList.add(`top-tagSelector`),e.useTopButton&&r.classList.add(`top-tagSelector-useTopButton`,`top-button`,`top-color_theme`,`top-as-selector`),e.useTopButton||r.classList.add(`top-tagSelector-custom`),e.mode===`filter`&&r.classList.add(`top-tagSelector-filter`),e.mode===`setter`&&!e.filters&&r.classList.add(`top-tagSelector-setter_single`),e.mode===`setter`&&e.filters&&r.classList.add(`top-tagSelector-setter_several`),r.onclick=t=>{t.preventDefault(),t.stopPropagation(),r.onclick=null;let i=(0,m.ref)(e.modelValue),o={model:i,mode:e.mode,targetId:e.targetId,filters:e.filters,payload:e.payload};(0,a.storage)(r,`topTagSelectorTarget`,o),delete r.dataset.topPopupDisabled,(0,m.isRef)(e.modelValue)||(0,m.watch)(i,()=>{e.modelValue=i.value,X(r,e,n)}),r.click()},(0,m.isRef)(e.modelValue)?(0,m.watch)(e.modelValue,()=>X(r,e,n)):(0,a.storage)(r,`topTagSelectorRender`,t=>{e.modelValue=t;let i=(0,a.storage)(r,`topTagSelectorTarget`);i&&(i.model.value=t),X(r,e,n)}),X(r,e,n),r},qe=(e,t)=>{(0,a.storage)(e,`topTagSelectorRender`)?.(t)},X=(e,t,n)=>{let r=(0,m.unref)(t.modelValue);if(e.classList.toggle(`top-tagSelector-selectedOne`,!r.length||r.length===1),e.classList.toggle(`top-tagSelector-toTwoLine`,r.length>5),t.mode===`setter`&&t.filters){e.innerHTML=`<div>${n}</div>`;return}if(e.innerHTML=``,!r.length&&t.mode===`filter`){let t=Je({id:`all`,colorId:``,name:(0,i.E)().Common?.All_tags??``,state:``});e.append(t)}r.forEach(n=>{let r=Je({id:J(n),colorId:Y(n,t.tags)?.color_id??``,name:Y(n,t.tags)?.name??``,state:J(n)===n?`selected`:`excluded`});e.append(r)})},Je=e=>{let t=document.createElement(`div`);return t.classList.add(`top-tagSelector_tagIcon`),t.classList.toggle(`top-tagSelector-active`,!!e.state),t.classList.toggle(`top-tagSelector-excluded`,e.state===`excluded`),t.dataset.tag_id=e.id,t.dataset.tag_color_id=e.colorId,t.title=e.name,t},Ye=[{id:`1`,name:`Without Tag`,color_id:`1`},{id:`2`,name:`Red`,color_id:`2`},{id:`3`,name:`Orange`,color_id:`3`},{id:`4`,name:`Yellow`,color_id:`4`},{id:`5`,name:`Blue`,color_id:`5`},{id:`6`,name:`Purple`,color_id:`6`},{id:`7`,name:`Green`,color_id:`7`},{id:`8`,name:`Magenta`,color_id:`8`},{id:`9`,name:`Dark blue`,color_id:`9`},{id:`10`,name:`Turquoise`,color_id:`10`}],Xe=[`data-tag_id`,`data-tag_color_id`,`title`],Z=(0,m.defineComponent)({__name:`tagIcon`,props:{id:{},colorId:{},name:{},state:{}},setup(e){return(t,n)=>((0,m.openBlock)(),(0,m.createElementBlock)(`div`,{class:(0,m.normalizeClass)({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!e.state,"top-tagSelector-excluded":e.state===`excluded`}),"data-tag_id":e.id,"data-tag_color_id":e.colorId,title:e.name},null,10,Xe))}}),Ze=[`contenteditable`,`onKeydown`],Qe=(0,m.defineComponent)({__name:`tagPopupListItem`,props:(0,m.mergeModels)({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:(0,m.mergeModels)([`update:name`,`unselect`,`exclude`,`select`],[`update:name`]),setup(e,{emit:t}){let n=e,r=t,i=(0,m.useModel)(e,`name`),a=(0,m.ref)(null),o=(0,m.computed)(()=>navigator.userAgent.indexOf(`Firefox`)==-1?{}:{contenteditable:s.value,onpaste:e=>e.preventDefault()}),s=(0,m.ref)(!1),c=async()=>{s.value=!0,await(0,m.nextTick)(),a.value?.focus()},l=()=>{let e=a.value?.innerText;if(!e)return u();a.value&&(a.value.innerText=e),s.value=!1,r(`update:name`,e)},u=async()=>{a.value&&(a.value.innerText=n.name),s.value=!1},d=e=>{if(s.value||n.disabled)return;let t=`selected`;n.canExclude&&(e.ctrlKey||e.metaKey)&&(t=`excluded`),n.state==t&&(t=``),t===``&&r(`unselect`),t===`selected`&&r(`select`),t===`excluded`&&r(`exclude`)};return(t,n)=>((0,m.openBlock)(),(0,m.createBlock)(f.o,{class:(0,m.normalizeClass)({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":e.disabled,"top-tagSelector_tagListItem-canExclude":e.canExclude,"top-tagSelector-active":!!e.state,"top-tagSelector-excluded":e.state===`excluded`}),onClick:(0,m.withModifiers)(d,[`stop`])},{default:(0,m.withCtx)(()=>[(0,m.createVNode)(Z,{id:e.id,name:i.value,colorId:e.colorId,state:e.state},null,8,[`id`,`name`,`colorId`,`state`]),(0,m.createElementVNode)(`span`,(0,m.mergeProps)({ref_key:`elName`,ref:a,class:`top-tagSelector_tagListItemName`,contenteditable:s.value?`plaintext-only`:!1},o.value,{onKeydown:[(0,m.withKeys)((0,m.withModifiers)(l,[`stop`]),[`enter`]),(0,m.withKeys)((0,m.withModifiers)(u,[`stop`]),[`esc`])]}),(0,m.toDisplayString)(i.value),17,Ze),e.editable?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[s.value?((0,m.openBlock)(),(0,m.createElementBlock)(`span`,{key:1,"data-top-icon":``,class:`top-tagSelector_edit`,onClick:(0,m.withModifiers)(l,[`stop`])})):((0,m.openBlock)(),(0,m.createElementBlock)(`span`,{key:0,"data-top-icon":``,class:`top-tagSelector_edit`,onClick:c}))],64)):(0,m.createCommentVNode)(``,!0)]),_:1},8,[`class`]))}}),$e={key:1},Q=(0,m.defineComponent)({inheritAttrs:!1,__name:`popupOpener`,props:(0,m.mergeModels)({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{},styling:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e,{attrs:t}){let n=e,r=(0,m.useModel)(e,`modelValue`),a=n.useTopButton?i.h:`div`,o=n.useTopButton?`html`:`default`,s={model:r,mode:n.mode,targetId:n.targetId,filters:n.filters,payload:n.payload};return(i,c)=>{let l=(0,m.resolveDirective)(`top-data`);return(0,m.openBlock)(),(0,m.createBlock)(f.c,{id:e.id},{default:(0,m.withCtx)(()=>[(0,m.withDirectives)(((0,m.openBlock)(),(0,m.createBlock)((0,m.resolveDynamicComponent)((0,m.unref)(a)),(0,m.mergeProps)({class:{"top-tagSelector":!0,"top-tagSelector-useTopButton":n.useTopButton,"top-tagSelector-custom":!n.useTopButton,"top-as-selector":n.useTopButton,"top-tagSelector-filter":n.mode===`filter`,"top-tagSelector-setter_single":n.mode===`setter`&&!e.filters,"top-tagSelector-setter_several":n.mode===`setter`&&e.filters,"top-tagSelector-selectedOne":!r.value.length||r.value.length===1,"top-tagSelector-toTwoLine":r.value.length>5},color:`theme`,styling:e.styling},t),{[(0,m.unref)(o)]:(0,m.withCtx)(()=>[!r.value.length&&e.mode===`filter`?((0,m.openBlock)(),(0,m.createBlock)(Z,{key:0,id:`all`,colorId:``,name:i.$i18n.Common.All_tags??``,state:``},null,8,[`name`])):(0,m.createCommentVNode)(``,!0),e.mode===`setter`&&e.filters?((0,m.openBlock)(),(0,m.createElementBlock)(`div`,$e,[(0,m.renderSlot)(i.$slots,`default`)])):((0,m.openBlock)(!0),(0,m.createElementBlock)(m.Fragment,{key:2},(0,m.renderList)(r.value,t=>((0,m.openBlock)(),(0,m.createBlock)(Z,{id:(0,m.unref)(J)(t),colorId:(0,m.unref)(Y)(t,e.tags)?.color_id??``,name:(0,m.unref)(Y)(t,e.tags)?.name??``,state:(0,m.unref)(J)(t)===t?`selected`:`excluded`},null,8,[`id`,`colorId`,`name`,`state`]))),256))]),_:2},1040,[`class`,`styling`])),[[l,s,`topTagSelectorTarget`]])]),_:3},8,[`id`])}}}),et=(0,m.defineComponent)({__name:`tagSelector`,props:(0,m.mergeModels)({modelValue:{},tags:{},tagsEditable:{type:Boolean},tagsMax:{default:10},id:{},singleMode:{type:Boolean},requiredForSetter:{type:Boolean,default:!0},maxTagsForSetter:{},emitDelay:{default:500},useTopButton:{type:Boolean,default:!0},styling:{}},{modelValue:{required:!0},modelModifiers:{},tags:{default:(0,m.reactive)(Ye)},tagsModifiers:{}}),emits:(0,m.mergeModels)([`selector`,`setter`,`tagsChanged`],[`update:modelValue`,`update:tags`]),setup(e,{emit:t}){let n=(0,i.E)(),r=e,o=(0,m.useModel)(e,`modelValue`),s=(0,m.useModel)(e,`tags`),c=t,l=(0,i.P)((e,t)=>{c(e,t)},r.emitDelay);r.singleMode&&!o.value.length&&(o.value=[s.value[0].id]);let u=r.id??`top-popup-id-`+Math.random(),d=(0,m.ref)(`add`),p=()=>{let e=` `+n.Common.Tags?.toLowerCase(),t=new Map;return t.set(`add`,{value:`add`,title:n.Common.Add+e}),t.set(`replace`,{value:`replace`,title:n.Common.Replace+e}),t.set(`delete`,{value:`delete`,title:n.Common.Delete+e}),t},h=(0,m.shallowRef)({model:o,mode:`filter`,targetId:void 0,filters:void 0,payload:void 0});(0,m.watch)(o,()=>{l(`selector`,o.value)});let g=(0,m.computed)(()=>{if(h.value.mode===`setter`&&r.maxTagsForSetter&&!h.value.filters)return h.value.model.value.length>=r.maxTagsForSetter}),_=e=>{if(e!==`all`){if(h.value.model.value.includes(e))return`selected`;if(h.value.model.value.includes(Ge(e)))return`excluded`}return e===`all`&&!h.value.model.value.length?`selected`:``},v=(e,t)=>{let n=Ge(e),i=h.value.model.value.filter(t=>t!==e&&t!==n);t===`select`&&i.push(e),t===`exclude`&&i.push(n),h.value.mode===`setter`&&h.value.targetId!==void 0&&r.requiredForSetter&&(i.length||i.push(`1`),i.length===2&&h.value.model.value.length===1&&h.value.model.value[0]===`1`&&(i=i.filter(e=>e!==`1`))),r.singleMode&&!h.value.filters&&(i.length||(i=h.value.model.value),i.length>1&&(i=[i[i.length-1]])),i.sort((e,t)=>r.tags?r.tags.findIndex(t=>t.id===e)-r.tags.findIndex(e=>e.id===t):0),h.value.model.value=i,h.value.mode===`setter`&&h.value.targetId!==void 0&&l(`setter`,{tagsIds:i,targetId:h.value.targetId,payload:h.value.payload})},y=(0,m.computed)(()=>{let e=`top-tagSelector_popup`;return h.value.mode===`filter`&&(e+=` top-tagSelector_popup-filter`),h.value.mode===`setter`&&(e+=` top-tagSelector_popup-setter`),e}),b=()=>{let e=prompt(``,`New tag`);if(!e||e===`New tag`)return;let t=s.value.length+1;s.value.push({id:String(t),name:e,color_id:String((t-1)%10+1)}),c(`tagsChanged`,s.value)},x=e=>{if(h.value=(0,a.storage)(e.elPopupOpener,`topTagSelectorTarget`),!h.value)throw Error(`Open popup TopTagSelector required v-data:topTagSelectorTarget`);if(h.value.filters&&(d.value=`add`,h.value.model.value=[]),!i.O.$?.ui.sortable){console.info(`Для работы сортировки требуется глобальная загрузка jQuery UI Sortable`);return}!i.O.state.isMobile&&!i.O.state.isMobileUA&&s.value&&$(e.elPopup).sortable({items:`li:has([data-tag_id]:not([data-tag_id="all"]))`,cancel:`[contenteditable="plaintext-only"], [contenteditable="true"]`,distance:10,stop:function(e,t){if(!s.value)return;let n=$(t.item).parent().find(`[data-tag_id]`),r=[];n.each((e,t)=>{if(!s.value)return;let n=$(t).attr(`data-tag_id`);r.push(n)}),s.value.sort((e,t)=>r.findIndex(t=>t===e.id)-r.findIndex(e=>e===t.id)),l(`tagsChanged`,s.value)}})},S=e=>{i.O.$?.ui.sortable&&$(e.elPopup).data(`ui-sortable`)&&$(e.elPopup).sortable(`destroy`)};return(t,n)=>((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,null,[(0,m.createVNode)(Q,{modelValue:o.value,"onUpdate:modelValue":n[0]||=e=>o.value=e,id:(0,m.unref)(u),tags:s.value,styling:e.styling,mode:`filter`,useTopButton:e.useTopButton},null,8,[`modelValue`,`id`,`tags`,`styling`,`useTopButton`]),(0,m.createVNode)(f.s,{id:(0,m.unref)(u),class:(0,m.normalizeClass)(y.value),onOpen:n[4]||=e=>x(e),onClose:n[5]||=e=>S(e),"transition-duration":50},(0,m.createSlots)({contentList:(0,m.withCtx)(()=>[h.value.mode===`filter`&&!e.singleMode?((0,m.openBlock)(),(0,m.createBlock)(Qe,{key:0,id:`all`,colorId:``,name:t.$i18n.Common.All_tags??``,state:h.value.model.value.length?``:`selected`,onSelect:n[3]||=e=>h.value.model.value=[]},null,8,[`name`,`state`])):(0,m.createCommentVNode)(``,!0),((0,m.openBlock)(!0),(0,m.createElementBlock)(m.Fragment,null,(0,m.renderList)(s.value,t=>((0,m.openBlock)(),(0,m.createBlock)(Qe,{key:t.id,id:t.id,colorId:t.color_id,name:t.name,state:_(t.id),canExclude:h.value.mode===`filter`&&!e.singleMode,editable:e.tagsEditable,disabled:g.value&&_(t.id)===``,onUnselect:e=>v(t.id,`unselect`),onSelect:e=>v(t.id,`select`),onExclude:e=>v(t.id,`exclude`),"onUpdate:name":e=>{t.name=e,(0,m.unref)(l)(`tagsChanged`,s.value)}},null,8,[`id`,`colorId`,`name`,`state`,`canExclude`,`editable`,`disabled`,`onUnselect`,`onSelect`,`onExclude`,`onUpdate:name`]))),128)),e.tagsEditable&&s.value.length<e.tagsMax&&s.value.length<20?((0,m.openBlock)(),(0,m.createBlock)(f.o,{key:1,"data-top-icon":``,onClick:(0,m.withModifiers)(b,[`stop`])},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(t.$i18n.Common.Add),1)]),_:1})):(0,m.createCommentVNode)(``,!0)]),_:2},[h.value.mode===`setter`&&h.value.filters?{name:`header`,fn:(0,m.withCtx)(()=>[(0,m.createVNode)(i.n,{modelValue:d.value,"onUpdate:modelValue":n[1]||=e=>d.value=e,options:p()},null,8,[`modelValue`,`options`])]),key:`0`}:void 0,h.value.mode===`setter`&&h.value.filters?{name:`footer`,fn:(0,m.withCtx)(()=>[(0,m.createVNode)(i.h,{color:`theme`},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(t.$i18n.Common.Cancel),1)]),_:1}),(0,m.createVNode)(i.h,{onClick:n[2]||=e=>(0,m.unref)(l)(`setter`,{tagsIds:h.value.model.value,filters:h.value.filters,filtersAction:d.value,payload:h.value.payload})},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(d.value===`add`?t.$i18n.Common.Add:``)+` `+(0,m.toDisplayString)(d.value===`replace`?t.$i18n.Common.Replace:``)+` `+(0,m.toDisplayString)(d.value===`delete`?t.$i18n.Common.Delete:``),1)]),_:1})]),key:`1`}:void 0]),1032,[`id`,`class`])],64))}});t.TopGroupSelector=Te,t.topProjectSelectorClearCache=Re,t.TopProjectSelector=We,t.genElTopTagSelectorPopupOpener=Ke,t.renderElTopTagSelectorPopupOpener=qe,t.TopTagSelectorTagIcon=Z,t.TopTagSelectorPopupOpener=Q,t.TopTagSelector=et});
1
+ var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=n(r),o=0;o<a.length;o++)a[o]!=="default"&&__createBinding(i,r,a[o]);return __setModuleDefault(i,r),i}})();define([`require`,`exports`,`../.chunks/api-nVBtzTDk.es.amd`,`../.chunks/forms-CjJD60m3.es.amd`,`../utils/dom.amd`,`../.chunks/worker-F-Y1IEi2.es.amd`,`../.chunks/utils-CUvjkXu8.es.amd`,`../utils/check.amd`,`../utils/string.amd`,`../utils/searchers.amd`,`../utils/keyboard.amd`,`../.chunks/popup-q1PRZblX.es.amd`,`../.chunks/formsExt-B9hGGznb.es.amd`,`vue`,`../.chunks/app-BpyVfZtN.es.amd`,`../require/css.amd!../assets/project.css`],function(e,t,r,i,a,o,s,c,l,u,d,f,p,m){"use strict";if(h===void 0)var h=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.useItemsFromCompetitors=t.topProjectSelectorClearCache=t.renderElTopTagSelectorPopupOpener=t.navigateToAdjacentProject=t.genSearcherByKey=t.genElTopTagSelectorPopupOpener=t.findRegion=t.dialogRegionSelector=t.TopTagSelectorTagIcon=t.TopTagSelectorPopupOpener=t.TopTagSelector=t.TopRegionSelector=t.TopProjectSelector=t.TopGroupSelector=t.TopCompetitorSelector=void 0;var g={class:`top-competitorSelector`},_={class:`top-ellipsis1`},v=(0,m.defineComponent)({__name:`competitorSelector`,props:(0,m.mergeModels)({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0},selectAllItemIcon:{default:``}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=(0,m.useModel)(e,`modelValue`),r=(0,m.computed)(()=>{if(t.showSelectAllItem)return{icon:t.selectAllItemIcon,title:(0,i.E)().Common.Select_all,value:`all`,content:``}});return(t,a)=>((0,m.openBlock)(),(0,m.createElementBlock)(`div`,g,[(0,m.unref)(i.O).state.isMobile?((0,m.openBlock)(),(0,m.createBlock)(f.s,{key:0},{opener:(0,m.withCtx)(()=>[(0,m.createVNode)(i.h,{class:`top-competitorSelector_opener`,color:`theme`,icon:``,icon2:``},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(e.items.find(e=>e.value===n.value?.[0])?.content),1)]),_:1})]),contentList:(0,m.withCtx)(()=>[((0,m.openBlock)(!0),(0,m.createElementBlock)(m.Fragment,null,(0,m.renderList)(e.items,e=>((0,m.openBlock)(),(0,m.createBlock)(f.o,{class:(0,m.normalizeClass)({"top-active":n.value?.includes(e.value)}),"data-top-icon":e.icon,title:e.title,onClick:()=>n.value=[e.value]},{default:(0,m.withCtx)(()=>[(0,m.createElementVNode)(`span`,_,(0,m.toDisplayString)(e.content),1)]),_:2},1032,[`class`,`data-top-icon`,`title`,`onClick`]))),256))]),_:1})):((0,m.openBlock)(),(0,m.createBlock)(p.p,{key:1,modelValue:n.value,"onUpdate:modelValue":a[0]||=e=>n.value=e,items:e.items,isMultiple:!0,styling:`bar`,canBeEmptyMultiple:!1,selectAllItem:r.value},null,8,[`modelValue`,`items`,`selectAllItem`]))]))}}),y=(e,t)=>(0,m.computed)(()=>(0,m.toValue)(e).filter(e=>e.on>=0||e.id===t).map(e=>({value:e.id,title:e.url+` [${e.id}]`,icon:e.id===(0,m.toValue)(t)?``:``,content:e.name}))),b={0:`Yandex`,1:`Google`,4:`YouTube`,5:`Bing`,7:`Seznam`,8:`AppStore`,9:`GoogleStore`,20:`Yandex.com`,21:`Yandex.com.tr`,22:`YandexLive`},x={alt:``,key:-2,name:`--`,index:-2},S={key:-2,name:`--`,regions:[x],regionByIndex:new Map([[-2,x]])},C={alt:``,key:-2,name:`Autoselect`,index:-2},w={key:-2,name:`Autoselect`,regions:[C],regionByIndex:new Map([[-2,C]])},T={alt:``,countryCode:`00`,depth:1,device:0,key:-1,index:-1,lang:`ru`,name:`Without region`},ee=()=>(C.name=(0,i.E)().Common.Autoselect,C),te=()=>(ee(),w.name=(0,i.E)().Common.Autoselect,console.log(w),w),ne=()=>(T.name=(0,i.E)().Keywords.Without_region,T),re=[4,8,9],ie=(e,t,n=[])=>{let r=E(e,!1,n),i;return r.forEach(n=>{if((t.searcher_key===void 0||t.searcher_key==n.key)&&n.regions&&(n.regions.forEach(r=>{if(!i&&(t.key===void 0||t.key==r.key)&&(t.index===void 0||t.index==r.index)&&!(!e&&(t.lang!==void 0&&t.lang!=r.lang||t.device!==void 0&&t.device!=r.device)))return r.searcher_key=n.key,i=r,!1}),i))return!1}),i},ae=(0,s.t)(()=>new Promise((t,n)=>{e([`../.chunks/dialog_regionSelectorRegions-Nob9K60s.es.amd`],t,n)}).then(__importStar)),E=(e=``,t=!1,n=[])=>{let r;return r=e===`volume`||e===`cost_forecast`?oe(n):e===`project_relevant_url`?se(n):D(n,!0),t&&r.set(-2,te()),r.size||r.set(-2,S),r},oe=e=>{e=e.filter(e=>i.O.state.forceSearchersKeysForKeywordsStats.includes(e.key));let t=D(e,!1);return i.O.state.forceSearchersKeysForKeywordsStats.forEach(e=>{if(t.has(e))return;let n={key:e,name:b[e],regions:[],regionByIndex:new Map};t.set(n.key,n)}),i.O.state.showGlobalRegionForKeywordsStats&&t.forEach(e=>{if(!e.regionByIndex)return;let t={...ne()};e.regionByIndex.set(t.index,t)}),t},se=e=>(e=e.filter(e=>!re.includes(e.key)),D(e,!1)),D=(e,t)=>{let n=new Map;return e.forEach(e=>{if(t&&!e.enabled)return;let r={...e};r.regionByIndex=new Map,e.regions&&e.regions.forEach(e=>{if(t&&!e.enabled)return;let n={...e};r.regionByIndex.set(n.index,n)}),r.regionByIndex.size,(!e.regions||r.regionByIndex.size)&&n.set(r.key,r)}),n},ce=(e,t)=>{let n=(0,i.E)();return{searcherKey:(0,m.ref)(t.value.keys().next().value??-2),optionBySearcherKey:(0,m.computed)(()=>{let r=new Map;if(t.value.forEach(t=>{let n={value:t.key,title:t.name};e.addSearcherIcon&&(n.icon=(0,u.getSearcherGIcon)(t.key)),r.set(t.key,n)}),e.addCompare&&!r.has(-2)){let e={value:``,title:`--------------------`,disabled:!0};r.set(e.value,e);let t={value:-1,title:n.Common.Compare};r.set(t.value,t)}return r})}},le=(e,t)=>{let n=(0,i.E)(),r=(0,m.computed)(()=>e.forMode===`volume`||e.forMode===`cost_forecast`),a=(0,m.ref)(-2);e.modelValue.length===1&&(a.value=e.modelValue[0]),a.value===-2&&(a.value=r.value?t.value?.regionByIndex.values().next().value?.key??-2:t.value?.regionByIndex.keys().next().value??-2);let o=(0,m.computed)(()=>{let e=new Map;return t.value.regionByIndex?.forEach(i=>{let a=i.name;if(r.value){let t={value:i.key,title:a};e.has(i.key)||e.set(i.key,t);return}let o=(0,u.getLangLabel)(t.value.key||0,i.lang??``),s=``;i.device!==void 0&&(s=n.Common[`Device_`+i.device]),o&&(s+=s?`, ${o}`:o),i.alt&&(s+=s?`, ${i.alt}`:i.alt),s&&=` (${s})`;let c={value:i.index,title:a+s,icon:i.device===void 0?void 0:(0,u.getDeviceGIcon)(i.device)};e.set(i.index,c)}),e});return(0,m.watch)(o,(t,r)=>{if(e.onlySearcher||a.value!==void 0&&t.get(a.value))return;let i=t.keys().next().value;if(a.value===-2||i===-2){a.value=i;return}let o=r?.get(a.value)?.title||``,s=-1;for(let[e,r]of t.entries()){let t=r.title;if(typeof t!=`string`||typeof e==`string`)break;if(t===o){i=e;break}let a=RegExp(` \\((${n.Common.Device_1}|${n.Common.Device_2})\\)`),c=o,l=3;t.indexOf(c)===-1&&(c=o.replace(/^[^a-zа-я]/i,``).replace(a,``),l--),t.indexOf(c)===-1&&(c=o.replace(/ \/.*/,``),l--),t.indexOf(c)===-1&&(c=o.replace(/ \/.*/,``),c=c.replace(/^[^a-zа-я]/i,``).replace(a,``),l--),t.indexOf(c)!==-1&&(l<=s||(s=l,i=e))}a.value=i}),{regionIndex:a,optionByRegionIndex:o}},ue=(e,t,n)=>{let r=(0,m.ref)([]),i=()=>{if(e.onlySearcher&&t.value){r.value=Array.from(t.value.keys());return}let i=[];if(e.modelValue.length>1)i=[...e.modelValue];else try{i=JSON.parse(localStorage.getItem(`ui:project:regionSelector`+e.projectId+`:regionsIndexes`))??[]}catch{}i.length&&(i=i.filter(e=>n.value.has(e))),i.length||(i=Array.from(n.value)),r.value=[...i]},a=()=>{r.value.length?localStorage.setItem(`ui:project:regionSelector:`+e.projectId+`:regionsIndexes`,JSON.stringify(r.value)):localStorage.removeItem(`ui:project:regionSelector:`+e.projectId+`:regionsIndexes`)};return(0,m.watch)(r,()=>{a()}),e.addCompare&&i(),{regionsIndexes:r}},de=e=>{let t=(0,m.computed)(()=>e.forMode===`volume`||e.forMode===`cost_forecast`),n=(0,m.computed)(()=>E(e.forMode,e.autoRegion,e.searchers)),r=(0,m.computed)(()=>n.value.get(a.searcherKey.value)||S),i=(0,m.computed)(()=>{let e=new Set;return n.value.forEach(t=>{t.regionByIndex.forEach(t=>{t.index!==-2&&e.add(t.index)})}),e}),a=ce(e,n),o=le(e,r),s=ue(e,n,i);(0,m.watch)(n,()=>{if(e.onlySearcher?s.regionsIndexes.value=Array.from(n.value.keys()):s.regionsIndexes.value=s.regionsIndexes.value.filter(e=>i.value.has(e)),a.searcherKey.value===-1)return;let t=n.value.keys().next().value;n.value.forEach(r=>{if(e.onlySearcher&&r.key===a.searcherKey.value){t=a.searcherKey.value;return}if(o.regionIndex.value&&r.regionByIndex?.has(o.regionIndex.value)&&(t=r.key),!e.onlySearcher){let e;t!==void 0&&(e=n.value.get(t)?.regionByIndex);let i=n.value.get(r.key)?.regionByIndex;e?.has(-2)&&!i?.has(-2)&&(t=r.key)}}),t!==void 0&&(a.searcherKey.value=t),o.regionIndex.value!==void 0&&!(r.value?.regionByIndex)?.has(o.regionIndex.value)&&(o.regionIndex.value=r.value?.regions?.keys().next().value)},{immediate:!0});let c=()=>{if(a.searcherKey.value!==-1&&a.searcherKey.value!==-2)return a.searcherKey.value},l=()=>{if(e.onlySearcher||o.regionIndex.value===-2)return;let n=o.regionIndex.value;if(t.value&&e.forMode){let t=o.regionIndex.value;n=ie(e.forMode,{searcher_key:c(),key:t},e.searchers)?.index}return n},u=()=>{let e=c();if(e!==void 0)return n.value.get(e)};return{selectSearcher:a,selectRegion:o,compare:s,searcherByKey:n,allRegionsIndexes:i,getSearcher:u,getRegion:()=>{let e=l();if(e!==void 0)return u()?.regionByIndex?.get(e)}}},fe=(0,m.defineComponent)({__name:`regionSelector`,props:(0,m.mergeModels)({projectId:{},searchers:{default:()=>[]},modelValue:{},modelValueSingle:{},addCompare:{type:Boolean},forMode:{},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(e,{expose:t}){let n=e,r=(0,m.computed)(()=>n.forMode===`volume`||n.forMode===`cost_forecast`),a=(0,m.useModel)(e,`modelValue`),o=(0,m.useModel)(e,`modelValueSingle`),{selectSearcher:s,selectRegion:c,compare:l,searcherByKey:u,allRegionsIndexes:d,getSearcher:f,getRegion:p}=de(n),h=()=>{let e=[];u.value.forEach(t=>{(n.forMode===`project_relevant_url`||t.enabled)&&t.regions.forEach(t=>{(n.forMode===`project_relevant_url`||t.enabled)&&t.index!==-1&&e.push(t)})}),ae.open(`regions`,{regions:e,regionsIndexes:l.regionsIndexes.value,"@update:regionsIndexes":e=>l.regionsIndexes.value=e})};return(0,m.watch)([c.regionIndex,s.searcherKey,l.regionsIndexes],()=>{if(s.searcherKey.value===-1&&l.regionsIndexes.value.length){if(JSON.stringify(a.value)===JSON.stringify(l.regionsIndexes.value))return;a.value=[...l.regionsIndexes.value]}else n.onlySearcher?(a.value=[s.searcherKey.value],s.searcherKey.value===-2&&!n.autoRegion&&(a.value.length=0)):(a.value=[c.regionIndex.value],c.regionIndex.value===-2&&!n.autoRegion&&(a.value.length=0));!n.onlySearcher&&!d.value.size&&(s.searcherKey.value=-2)}),o.value&&(0,m.watch)(o,()=>{o.value&&(a.value=[o.value])},{immediate:!0}),(0,m.watch)(a,()=>{if(a.value[0]&&(o.value=a.value[0]),n.onlySearcher){if(!a.value.length||a.value.length===1&&!u.value.has(a.value[0])||a.value.length===1&&a.value[0]===-2&&!n.autoRegion){let e=u.value.keys().next().value;e===-2&&!n.autoRegion&&(e=void 0,o.value=-2),e===void 0?a.value.length=0:a.value=[e];return}if(a.value.length>1&&JSON.stringify(a.value)!==JSON.stringify(l.regionsIndexes.value)){a.value=[...l.regionsIndexes.value];return}}else{let e=[...new Set(a.value)],t=u.value.values().next().value?.regionByIndex?.keys().next().value;if(r.value&&(t=u.value.values().next().value?.regionByIndex?.values().next().value?.key),t===-2&&!n.autoRegion&&(t=void 0,o.value=-2),!e.length)t!==void 0&&e.push(t);else if(e.length===1){let n=d.value;r.value&&(n=new Set,u.value.forEach(e=>{e.regionByIndex.forEach(e=>{e.index!==-2&&n.add(e.key)})})),n.has(e[0])||(e=[],t!==void 0&&e.push(t))}else e=e.filter(e=>d.value.has(e)),!e.length&&t!==void 0&&e.push(t);if(JSON.stringify(a.value)!==JSON.stringify(e)){a.value=e;return}}if(a.value.length!==1||a.value[0]!==(n.onlySearcher?s.searcherKey.value:c.regionIndex.value)){if(n.onlySearcher){if(a.value.length===1){s.searcherKey.value=a.value[0];return}s.searcherKey.value=-1;return}if(!a.value.length)return;if(a.value.length===1&&s.searcherKey.value!==-1){c.regionIndex.value=a.value[0];let e;for(let t of u.value.values()){for(let n of t.regionByIndex.values())if((r.value?n.key:n.index)===c.regionIndex.value){e=t.key;break}if(e!==void 0)break}e!==void 0&&(s.searcherKey.value=e)}else s.searcherKey.value=-1,l.regionsIndexes.value=[...a.value]}},{immediate:!0}),t({getSearcher:f,getRegion:p}),(t,n)=>((0,m.openBlock)(),(0,m.createElementBlock)(`div`,{class:(0,m.normalizeClass)({"top-regionSelector":!0,"top-regionSelector-onlySearcher":e.onlySearcher})},[(0,m.createVNode)(i.n,{options:(0,m.unref)(s).optionBySearcherKey.value,modelValue:(0,m.unref)(s).searcherKey.value,"onUpdate:modelValue":n[0]||=e=>(0,m.unref)(s).searcherKey.value=e,name:`searcher_key`,addChanger:e.addChanger},null,8,[`options`,`modelValue`,`addChanger`]),!e.onlySearcher&&(0,m.unref)(s).searcherKey.value!==(0,m.unref)(-1)?((0,m.openBlock)(),(0,m.createBlock)(i.n,{key:0,class:`top-select-region`,options:(0,m.unref)(c).optionByRegionIndex.value,modelValue:(0,m.unref)(c).regionIndex.value,"onUpdate:modelValue":n[1]||=e=>(0,m.unref)(c).regionIndex.value=e,name:r.value?`region_key`:`region_index`,addChanger:e.addChanger,"data-top-icon":e.addRegionIcon?``:void 0},null,8,[`options`,`modelValue`,`name`,`addChanger`,`data-top-icon`])):(0,m.createCommentVNode)(``,!0),e.addCompare&&!e.onlySearcher&&(0,m.unref)(s).searcherKey.value===(0,m.unref)(-1)?((0,m.openBlock)(),(0,m.createBlock)(i.h,{key:1,name:`compare`,onClick:h,"data-count-compare-regions-indexes":(0,m.unref)(l).regionsIndexes.value.length},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(t.$i18n.Common.Selected_regions),1)]),_:1},8,[`data-count-compare-regions-indexes`])):(0,m.createCommentVNode)(``,!0)],2))}}),O={id:0,name:`/`,path:`/`};t.TopCompetitorSelector=v,t.useItemsFromCompetitors=y,t.findRegion=ie,t.dialogRegionSelector=ae,t.genSearcherByKey=E,t.TopRegionSelector=fe;function pe(e){return e?(0,i.E)()?.Common.All_folders:`/ (`+(0,i.E)()?.Keywords.Root_folder+`)`}var k=(e,t,n=new Map,r={id:`root`},i=0)=>(r.childsIds=[],r.id&&(r.countAllGroupsActive=r.count_groups_active),e[r.id]&&e[r.id].forEach(a=>{a={...a},r.childsIds.push(a.id),a.id===0&&(a.name=pe(t));let o=i>1?`-`.repeat(i-1)+` `:``;o&&!a.name.startsWith(o)&&(a.name=o+a.name),n.set(a.id,a),k(e,t,n,a,i+1),r.childsIds=r.childsIds.concat(a.childsIds),r.id&&a.count_groups_active&&(r.countAllGroupsActive+=a.count_groups_active)}),n),me=(e,t)=>e.gen(`/get/${t}/folders/`,[`id`,`parent_id`,`name`,`path`]).changeParams({orders:[`ord_path`],limit:100});function A(e,t,n){let r=Object.keys(e),i=r.map(t=>e[t]);return(0,m.watch)(i,(e,n,i)=>{let a={};e.forEach((e,t)=>{if(!Object.is(e,n[t])){let i=r[t];a[i]={old:n[t],new:e}}}),Object.keys(a).length&&t(a,i)},n)}var he=[`innerHTML`],ge=(0,m.defineComponent)({__name:`folders`,props:(0,m.mergeModels)({folderId:{},folder:{},folders:{},projectId:{},canSelectAll:{type:Boolean},addChanger:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{},service:{}},{folderId:{required:!0},folderIdModifiers:{},folder:{default:O},folderModifiers:{}}),emits:[`update:folderId`,`update:folder`],setup(e){let t=e,n=(0,m.useModel)(e,`folderId`),r=(0,m.useModel)(e,`folder`),i=t.client&&!t.folders?me(t.client,t.service):void 0,a=(0,m.ref)(null);(0,m.watch)(()=>t.projectId,()=>{i?.changeParams({project_id:t.projectId}),i?.setOptions({checkFingerprint:`TopGroupSelectorFolders:`+t.projectId}),a.value?.resetCache()},{immediate:!0});let o=(0,m.computed)(()=>k(t.folders??{root:[O]},t.canSelectAll)),s=e=>(t.canSelectAll&&e[0]?.id===0&&(e[0]={...e[0],name:pe(!0)}),e);return A({modelFolder:r,modelFolderId:n},async e=>{if(n.value===r.value.id)return;if(e.modelFolder&&!e.modelFolderId){n.value=r.value.id;return}let i=o.value.get(t.folderId);i||=O,r.value=i,n.value=i.id},{immediate:!0}),(t,n)=>((0,m.openBlock)(),(0,m.createBlock)(p.c,{class:`top-groupSelector_folder`,modelValue:r.value,"onUpdate:modelValue":n[0]||=e=>r.value=e,items:e.folders?[...o.value.values()]:void 0,"search-type":`inline`,icon:e.addIcon?``:void 0,api:e.folders?void 0:(0,m.unref)(i),apiSetSearchParams:(...e)=>(0,m.unref)(p.d)(...e,`name`),prepareItemsBeforeRender:s,addChanger:e.addChanger,useCache:``},{item:(0,m.withCtx)(({item:e})=>[(0,m.createElementVNode)(`div`,{innerHTML:e.name.replaceAll(/</g,`< `)},null,8,he)]),_:1},8,[`modelValue`,`items`,`icon`,`api`,`apiSetSearchParams`,`addChanger`]))}}),j={id:-1,name:`--`,folder_id:O.id,folder_path:O.path},M={id:0,name:`All groups`,folder_id:O.id,folder_path:O.path},N=()=>(M.name=(0,i.E)()?.Common.All_groups,M),P=()=>(M.name=(0,i.E)()?.Keywords.Choose_group,M),_e=(e,t,n)=>(e=[...e],t!==void 0&&(e=e.filter(e=>e.on==Number(t))),n&&n.id&&n.childsIds&&(e=e.filter(e=>e.folder_id===n.id||n.childsIds.includes(e.folder_id))),e),F=(e,t)=>e.gen(`/get/${t}/groups/`,[`id`,`name`,`folder_id`,`folder_path`]).changeParams({folder_id_depth:!0,limit:100}),ve=(e,t)=>e.gen(`/add/${t}/groups/`),ye=(e,t)=>e.gen(`/del/${t}/groups/`),be=(e,t)=>e.gen(`/edit/${t}/groups/rename/`),xe={class:`top-groupSelector_groupItem top-ellipsis1`},Se={key:0,class:`top-comment`},Ce=[`innerHTML`],we=[`innerHTML`],Te=[`innerHTML`],Ee=(0,m.defineComponent)({__name:`groups`,props:(0,m.mergeModels)({groupId:{},group:{},projectId:{},folder:{},groups:{},on:{type:Boolean,default:void 0},canAdd:{type:[String,Boolean]},canEditAndDel:{type:Boolean},canSelectAll:{type:[Boolean,String]},autoselect:{default:`first`},addChanger:{type:Boolean,default:!0},showPath:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{},service:{default:`keywords_2`}},{groupId:{required:!0},groupIdModifiers:{},group:{required:!0},groupModifiers:{}}),emits:(0,m.mergeModels)([`addGroup`,`editGroup`,`delGroup`],[`update:groupId`,`update:group`]),setup(e,{expose:t,emit:n}){let i=e,a=n,o=(0,m.useModel)(e,`groupId`),s=(0,m.useModel)(e,`group`),c=i.client&&!i.groups?F(i.client,i.service):void 0,l=i.client?ve(i.client,i.service):void 0,u=i.client?ye(i.client,i.service):void 0,d=i.client?be(i.client,i.service):void 0,h=(0,m.ref)(null),g=(0,m.computed)(()=>{if(i.groups!==void 0)return _e(i.groups,i.on,i.folder)}),_=(0,r.i)(`folder_id`,`EQUALS`,[i.folder?.id??0]);c?.changeParams({project_id:i.projectId,folder_id_depth:!0,filters:[_]}),i.on!==void 0&&c?.params.filters?.push((0,r.i)(`on`,`EQUALS`,[Number(i.on)]));let v=e=>{s.value=e,o.value=e.id},y=(e=!1)=>{h.value?.resetCache(e)};A({projectId:()=>i.projectId,folderId:()=>i.folder?.id,canSelectAll:()=>i.canSelectAll},e=>{if(e.projectId&&(c?.changeParams({project_id:i.projectId}),c?.setOptions({checkFingerprint:`TopGroupSelectorGroups:`+i.projectId})),e.folderId&&(_.values=[i.folder?.id??0]),y(),(e.folderId?.old!==void 0||e.canSelectAll?.old!==void 0)&&o.value!==null){let e;i.autoselect===`first`&&(e=g.value?.[0],i.canSelectAll&&(e=(0,m.reactive)(N()))),(i.autoselect===`placeholder`||!e)&&(e=P()),v(e)}},{immediate:!0}),A({modelGroup:s,modelGroupId:o},async e=>{if(o.value!==s.value.id){if(e.modelGroup&&!e.modelGroupId){o.value=s.value.id;return}if(!(i.canAdd&&o.value===null)){if(i.groups){let e=g.value?.find(e=>e.id===o.value);if(!e&&i.canSelectAll&&(e=N()),e)v(e);else{let e=g.value?.[0];e&&!o.value?v(e):v(j)}}if(i.client&&!i.groups&&(o.value||o.value===0&&!i.canSelectAll)){let e=F(i.client,i.service).changeParams({project_id:i.projectId,id:o.value,filters:[_]});e?.setOptions({checkFingerprint:`TopGroupSelectorFindGroup:`+i.projectId});let t=await e.call();if(!t.errors?.length&&!t.result)return;!t.errors&&t.result[0]?v(t.result[0]):v(j)}}}},{immediate:!0});let b=async e=>{if(i.canAdd!==`api`||!l)return;let t=s.value,n=await l.changeParams({project_id:i.projectId,names:[e.name],to_id:i.folder?.id??O.id,to_type:`in_folder_last`}).call();if(n.result){let e=n.result[0];v(e),a(`addGroup`,e)}else v(t);h.value?.resetCache(!0)},x=async(e,t)=>{d&&((await d.changeParams({project_id:i.projectId,id:e.id,name:t}).call()).errors||(s.value.id===e.id&&(s.value.name=t),a(`editGroup`,{id:e.id,name:t}),h.value?.updateCacheItemById(e.id,{name:t})))},S=async e=>{u&&((await u.changeParams({project_id:i.projectId,id:e.id}).call()).errors||(s.value.id===e.id&&v(i.canSelectAll?N():j),a(`delGroup`,e.id),h.value?.deleteCacheItemById(e.id)))};return t({resetCacheGroups:y}),(t,n)=>((0,m.openBlock)(),(0,m.createBlock)(p.c,{ref_key:`refSelector`,ref:h,class:`top-groupSelector_group`,modelValue:s.value,"onUpdate:modelValue":n[0]||=e=>s.value=e,items:g.value??e.groups,searchType:`inline`,icon:e.addIcon?``:void 0,api:e.groups?void 0:(0,m.unref)(c),apiSetSearchParams:(...e)=>(0,m.unref)(p.d)(...e,`name`),appendSearchToResult:!!e.canAdd,useAllItem:e.canSelectAll?(0,m.unref)(N)().name:!1,addChanger:e.addChanger,useCache:``,onAppendItem:b},(0,m.createSlots)({item:(0,m.withCtx)(({item:n})=>[(0,m.createElementVNode)(`div`,xe,[n.id===(0,m.unref)(null)?((0,m.openBlock)(),(0,m.createElementBlock)(`div`,Se,(0,m.toDisplayString)(t.$i18n.Common.Add)+`: `,1)):(0,m.createCommentVNode)(``,!0),(0,m.createElementVNode)(`span`,{class:`top-groupSelector_groupItemName top-ellipsis1`,innerHTML:n.name},null,8,Ce),n.folder_path&&e.showPath?((0,m.openBlock)(),(0,m.createElementBlock)(`span`,{key:1,class:`top-groupSelector_groupItemFolderPath top-ellipsis1`,innerHTML:n.folder_path},null,8,we)):(0,m.createCommentVNode)(``,!0)])]),_:2},[e.canEditAndDel&&e.client?{name:`actions`,fn:(0,m.withCtx)(({item:r})=>[r.id?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[(0,m.createVNode)(f.n,{submitText:t.$i18n.Common.Save,defaultValue:r.name,inputProps:{addCleaner:!1},onSubmit:e=>x(r,e)},{opener:(0,m.withCtx)(()=>[...n[1]||=[(0,m.createElementVNode)(`div`,{"data-top-icon":``},null,-1)]]),default:(0,m.withCtx)(()=>[...n[2]||=[]]),_:1},8,[`submitText`,`defaultValue`,`onSubmit`]),(0,m.createVNode)(f.r,{isWarning:``,submitText:t.$i18n.Common.Delete,onSubmit:e=>S(r)},{opener:(0,m.withCtx)(()=>[...n[3]||=[(0,m.createElementVNode)(`div`,{"data-top-icon":``},null,-1)]]),default:(0,m.withCtx)(()=>[(0,m.createElementVNode)(`span`,{innerHTML:e.service===`keywords_2`?t.$i18n.Keywords.Delete_group_warning:t.$i18n[`Ai.Tracker`].Delete_group_warning},null,8,Te)]),_:1},8,[`submitText`,`onSubmit`])],64)):(0,m.createCommentVNode)(``,!0)]),key:`0`}:void 0]),1032,[`modelValue`,`items`,`icon`,`api`,`apiSetSearchParams`,`appendSearchToResult`,`useAllItem`,`addChanger`]))}}),De={class:`top-groupSelector`},Oe=(0,m.defineComponent)({__name:`groupSelector`,props:(0,m.mergeModels)({folderId:{},folder:{},groupId:{},group:{},projectId:{},folders:{},groups:{},on:{type:Boolean,default:void 0},canSelectAllGroups:{type:Boolean,default:!1},canAddGroup:{type:[String,Boolean]},canEditAndDelGroup:{type:Boolean},autoselect:{default:`first`},addChanger:{type:Boolean,default:!0},showFolders:{type:Boolean,default:!0},showGroups:{type:Boolean,default:!0},showGroupsPaths:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{},service:{default:`keywords_2`}},{folderId:{required:!0},folderIdModifiers:{},folder:{},folderModifiers:{},groupId:{required:!0},groupIdModifiers:{},group:{default:j},groupModifiers:{}}),emits:(0,m.mergeModels)([`update:groups`],[`update:folderId`,`update:folder`,`update:groupId`,`update:group`]),setup(e,{expose:t,emit:n}){let r=e,i=(0,m.ref)(null),a=(0,m.useModel)(e,`folderId`),o=(0,m.useModel)(e,`folder`),s=(0,m.useModel)(e,`groupId`),c=(0,m.useModel)(e,`group`),l=n;o.value=k(r.folders??{root:[O]},r.canSelectAllGroups).get(a.value);let u=r.groups?.find(e=>e.id===s.value);s.value||(u=r.groups?.[0]),r.canSelectAllGroups&&!u&&(u=N()),(r.autoselect===`placeholder`||!u)&&(u=P()),u??=j,c.value=u;let d=e=>{let t;r.groups&&e&&(t=[...r.groups,e]),l(`update:groups`,t)},f=e=>{if(!r.groups){l(`update:groups`);return}let t=r.groups.find(t=>t.id===e.id);if(!t)return;let n={...t,...e},i=r.groups.map(e=>e.id===n.id?n:e);l(`update:groups`,i)},p=e=>{if(!r.groups){l(`update:groups`);return}let t=r.groups.filter(t=>t.id!==e);l(`update:groups`,t)};return t({resetCacheGroups:(e=!1)=>{i.value?.resetCacheGroups(e)}}),(t,n)=>((0,m.openBlock)(),(0,m.createElementBlock)(`div`,De,[e.showFolders?((0,m.openBlock)(),(0,m.createBlock)(ge,{key:0,folderId:a.value,"onUpdate:folderId":n[0]||=e=>a.value=e,folder:o.value,"onUpdate:folder":n[1]||=e=>o.value=e,projectId:e.projectId,folders:e.folders,canSelectAll:e.canSelectAllGroups,addChanger:e.addChanger,addIcon:e.addIcon,client:e.client,service:r.service},null,8,[`folderId`,`folder`,`projectId`,`folders`,`canSelectAll`,`addChanger`,`addIcon`,`client`,`service`])):(0,m.createCommentVNode)(``,!0),e.showGroups?((0,m.openBlock)(),(0,m.createBlock)(Ee,{key:1,ref_key:`componentGroupsRef`,ref:i,groupId:s.value,"onUpdate:groupId":n[2]||=e=>s.value=e,group:c.value,"onUpdate:group":n[3]||=e=>c.value=e,projectId:e.projectId,folder:o.value,groups:e.groups,on:e.on,canAdd:e.canAddGroup,canEditAndDel:e.canEditAndDelGroup,canSelectAll:e.canSelectAllGroups,autoselect:e.autoselect,addChanger:e.addChanger,showPath:e.showGroupsPaths||e.showFolders,addIcon:e.addIcon,client:e.client,service:r.service,onAddGroup:d,onEditGroup:f,onDelGroup:p},null,8,[`groupId`,`group`,`projectId`,`folder`,`groups`,`on`,`canAdd`,`canEditAndDel`,`canSelectAll`,`autoselect`,`addChanger`,`showPath`,`addIcon`,`client`,`service`])):(0,m.createCommentVNode)(``,!0)]))}}),I=e=>({id:null,name:e,listItemProps:{type:`title`,class:`top-projectSelector_item`}}),L={scheduledUpdate:!1,manualUpdate:!1,guestProjects:!1},ke=(e,t)=>{let n=[],r={scheduledUpdate:I((0,i.E)().Projects.Scheduled_update),manualUpdate:I((0,i.E)().Projects.Manual_update),guestProjects:I((0,i.E)().Projects.Guest_projects)},a=t?{scheduledUpdate:!1,manualUpdate:!1,guestProjects:!1}:L;for(let t of e)!a.scheduledUpdate&&t.right?.startsWith(`1`)&&t.on>0&&(n.push(r.scheduledUpdate),a.scheduledUpdate=!0),!a.manualUpdate&&t.right?.startsWith(`1`)&&t.on===0&&(n.push(r.manualUpdate),a.manualUpdate=!0),!a.guestProjects&&t.right?.startsWith(`0`)&&t.on>=0&&(n.push(r.guestProjects),a.guestProjects=!0),n.push(t);return n},R=e=>({...e,externalLink:Me(e.url??``),listItemProps:{class:`top-projectSelector_item`,attrs:{title:e.name}}}),Ae=(e,t,n)=>!e||e.length===0?[]:(t&&Object.keys(L).forEach(e=>L[e]=!1),ke(e.map(R),n)),je=e=>{e=e.replace(/#.*/,``);let t=location.hash;return t=t.replace(/%22historyView%22:[^,]*,/,``),t=t.replace(/%22modelsKeys%22:\[[^\]]*],/,``),t=t.replace(/%22competitorsIds%22:\[[^\]]*],/,``),t=t.replace(/%22searchersKeys%22:\[[^\]]*],/,``),t=t.replace(/%22regionIndex%22:[^,]*,/,``),t=t.replace(/%22regionsIndexes%22:\[[^\]]*],/,``),t=t.replace(/%22folderId%22:[^,]*,/,``),t=t.replace(/%22groupId%22:[^,]*,/,``),t=t.replace(/%22tagsIds%22:\[[^\]]*],/,``),/%22dataSort%22:\{[^}]*0000-00-00[^}]*}/.test(t)||(t=t.replace(/,?%22dataSort%22:\{[^}]*}(,?)/,`$1`)),e+t},z=e=>{location.href=B(e)},B=e=>{let t=V(),n=location.pathname.split(`/`),r=`project/dynamics/`,i=``;n[1]==`project`&&(r=n[1]+`/`+n[2]+`/`),n[2]==`settings`&&(i=location.hash),[`watcher`,`indexing`,`sitemap`,`audit`,`direct`,`adwords`].includes(n[4])&&(i=n[4]+`/`);let a=`https://`+t+`/`+r+e+`/`+i;return a=je(a),a},V=()=>window.page?.subdomain?window.location.host.replace(window.page?.subdomain+`.`,``):window.location.host,Me=e=>{let t=e.startsWith(`http`)?e:`https://`+e;return t=t.replace(/"/g,`%22`),t},Ne=(e,t)=>{let n=e.params.filters??[];n=n.filter(e=>e.name!==`GEN_SEARCH_STRING()`);let i=(0,d.invertKeyboardLayout)(t),a=t.replace(/([[^$.|?*+()])/g,`\\$1`),o=i.replace(/([[^$.|?*+()])/g,`\\$1`);t&&n.push((0,r.i)(`GEN_SEARCH_STRING()`,`REGEXP`,[`(${a}|${o})`])),e.changeParams({filters:n})},Pe=e=>{let t=e.gen(`/get/projects_2/projects/`,[`id`,`user_id`,`name`,`url`,`on`,`right`]);return t.changeParams({filters:[(0,r.i)(`on`,`GREATER_THAN_EQUALS`,[0])],orders:[(0,r.a)(`user_id`,`DESC`,[i.O.state.userId]),(0,r.a)(`on`,`ASC`,[0]),(0,r.a)(`favorite`,`DESC`),(0,r.a)(`ord`,`ASC`),(0,r.a)(`id`,`DESC`)]}),t.options.loadingShowSpinner=!1,t.options.onApiLoaded=(e,t,n)=>{let r=t.data.filters.length>1,i=t.data.offset===0,a=t.data.offset===void 0||i&&!r,o=r;e.result=Ae(e.result,a,o),n?.(e,t)},t},Fe=e=>e.gen(`/add/projects_2/projects/`),Ie={class:`top-ellipsis1`},Le=(0,m.defineComponent)({__name:`submenu`,props:{id:{}},setup(e){let t=e,n=(0,i.E)(),r=V(),a=e=>{let t=[{href:`https://${r}/project/keywords/${e.id}/`,title:n.Common.Menu_phrases,icon:``,right:`2`},{href:`https://${r}/project/dynamics/${e.id}/`,title:n.Common.Menu_dynamics,icon:``,right:`1`},{href:`https://${r}/project/snapshots/${e.id}/`,title:n.Common.Menu_snapshots,icon:``,right:`1`},{href:`https://${r}/project/competitors/${e.id}/`,title:n.Common.Menu_competitors,icon:``,right:`1`},{href:`https://${r}/project/ai-tracker/${e.id}/`,title:n.Common.Menu_aiTracker,icon:``,right:`1`},{href:`https://${r}/project/analytics/${e.id}/`,title:n.Common.Menu_analytics,icon:``,right:`5`},{href:`https://${r}/project/broker/${e.id}/`,title:n.Common.Menu_broker,icon:``,right:`6`},{href:`https://${r}/project/audit/${e.id}/sitemap/`,title:n.Audit.Sitemap_gen,icon:``,right:`8`},{href:`https://${r}/project/audit/${e.id}/audit/`,title:n.Common.Menu_audit,icon:``,right:`8`},{href:`https://${r}/project/audit/${e.id}/indexing/`,title:n.Audit.Indexing,icon:``,right:`8`},{href:`https://${r}/project/audit/${e.id}/watcher/`,title:n.Audit.Watcher,icon:``,right:`9`},{href:`https://${r}/project/settings/${e.id}/`,title:n.Common.Menu_settings,icon:``,right:`2`}].filter(e=>!Object.entries(i.O.state.closedByMod).some(([t,n])=>n&&e.href.includes(`/${t}/`)));return e.right.includes(`0`)?t.filter(t=>e.right[t.right]===`1`):t};return(e,n)=>((0,m.openBlock)(),(0,m.createBlock)((0,m.unref)(f.s),{id:t.id,class:`top-projectSelectorSubmenu`,notch:!1,pos:`2`},{contentList:(0,m.withCtx)(({data:t})=>[t?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[((0,m.openBlock)(!0),(0,m.createElementBlock)(m.Fragment,null,(0,m.renderList)(a(t.projectItem),t=>((0,m.openBlock)(),(0,m.createBlock)((0,m.unref)(f.o),{href:t.href,title:t.title,"data-top-icon":t.icon,"data-right":t.right},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(e.$core.state.isMobile?t.title:``),1)]),_:2},1032,[`href`,`title`,`data-top-icon`,`data-right`]))),256)),(0,m.createVNode)((0,m.unref)(f.o),{href:t.projectItem.externalLink,title:t.projectItem.externalLink,class:`top-ellipsis`,"data-top-icon":``,target:`_blank`},{default:(0,m.withCtx)(()=>[(0,m.createElementVNode)(`span`,Ie,(0,m.toDisplayString)(e.$core.state.isMobile?t.projectItem.externalLink:``),1)]),_:2},1032,[`href`,`title`])],64)):(0,m.createCommentVNode)(``,!0)]),_:1},8,[`id`]))}}),H=()=>({userId:i.O.state.userId,projectsIds:[],nextOffset:0,loading:!1}),U=H(),W=()=>{U=H()},G=()=>U,K=`ui_project_selector_total`,Re=864e5,q=(0,m.ref)(null),J=(0,m.shallowRef)(),ze=e=>{localStorage.setItem(K+`:`+i.O.state.userId,JSON.stringify({projectsTotal:e,expiresAt:Date.now()+Re}))},Be=()=>{let e=localStorage.getItem(K+`:`+i.O.state.userId);if(!e)return;let{projectsTotal:t,expiresAt:n}=JSON.parse(e);if(Date.now()>n){localStorage.removeItem(K+`:`+i.O.state.userId);return}return t},Ve=()=>{q.value=null,J.value=void 0,W(),localStorage.removeItem(K+`:`+i.O.state.userId),(0,p.f)(`/get/projects_2/projects/`)},He={class:`top-projectSelector_itemText`},Ue={class:`top-comment`},We={key:0,class:`top-comment`},Ge=[`href`],Ke=1e3,qe=(0,m.defineComponent)({__name:`projectSelector`,props:(0,m.mergeModels)({modelValue:{},client:{},menuMode:{type:Boolean},excludeProjectId:{},openerShortcut:{},modificator:{},placeholder:{},buttonProps:{default:()=>({color:`theme`,styling:`outline`})}},{modelValue:{default:()=>({id:null,name:``})},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=(0,i.E)(),n=e,r=(0,m.useModel)(e,`modelValue`),a=Pe(n.client),o=Fe(n.client),s=(0,m.ref)(Be()),u=(0,m.ref)(null),d=(0,m.useId)(),h=(0,m.computed)(()=>n.placeholder??t.Projects.Select_project),g=(0,m.computed)(()=>!J.value||!n.excludeProjectId?J.value:J.value.filter(e=>e.id!==n.excludeProjectId)),_=(0,m.computed)(()=>{if(s.value||s.value===0)return s.value<Ke?`static`:`api`}),v=async e=>{q.value||=e.call();let t=await q.value;return q.value=null,t},y=async e=>{let t=await o.changeParams({url:e.name,name:e.name}).call();if(!t.errors){if(J.value&&_.value===`static`){let n=R({id:t.result,user_id:i.O.state.userId,name:e.name,url:e.name,on:0,right:`11111111111111111111`}),r=J.value.findIndex(e=>e.on===0);J.value=[...J.value.slice(0,r),n,...J.value.slice(r)],s.value&&(s.value+=1,ze(s.value))}_.value===`api`&&u.value?.resetCache(!0)}},b=async()=>{if(J.value||_.value===`api`)return;let e=await v(a);e.errors||(J.value=e.result)},x=async()=>{if(s.value){let e=u.value?.popupOpenerRef?.$el;e&&e.addEventListener(`pointerenter`,()=>b(),{once:!0})}else{a.changeParams({limit:Ke});let e=await v(a);if(e.errors)return;delete a.params.limit,s.value=e.total??void 0,!J.value&&_.value!==`api`&&(J.value=e.result),s.value&&ze(s.value)}};return(0,m.onMounted)(async()=>{await x()}),(t,n)=>{let i=(0,m.resolveComponent)(`TopButton`);return(0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,null,[((0,m.openBlock)(),(0,m.createBlock)(p.c,{key:_.value??`dummy`,ref_key:`refSelector`,ref:u,class:`top-projectSelector`,modelValue:r.value,"onUpdate:modelValue":n[1]||=t=>e.menuMode?(0,m.unref)(z)(t.id):r.value=t,items:g.value,itemsChunkSize:100,itemsIsLoading:_.value===`static`&&(0,m.unref)(J)===void 0,title:t.$i18n.Projects.Search_projects,modificator:e.modificator,searchFields:[`id`,`name`,`url`],placeholder:h.value,hasCloserBtn:``,api:_.value===`api`?(0,m.unref)(a):void 0,apiSetSearchParams:_.value===`api`?(...e)=>(0,m.unref)(Ne)(...e):void 0,useCache:``,appendSearchToResult:``,appendSearchAllowDuplicate:``,appendSearchToResultCond:(0,m.unref)(c.validUrl),appendWithoutSelect:``,buttonProps:{...e.buttonProps,isProgress:!_.value,disabled:!_.value},openerShortcut:e.openerShortcut,onAppendItem:y,onOpen:b},{item:(0,m.withCtx)(({item:r})=>[(0,m.createElementVNode)(`div`,He,[r.id?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[(0,m.createTextVNode)((0,m.toDisplayString)((0,m.unref)(l.ellipsis)(r.name,20))+` `,1),(0,m.createElementVNode)(`span`,Ue,` id `+(0,m.toDisplayString)(r.id),1)],64)):((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:1},[r.listItemProps?.type?(0,m.createCommentVNode)(``,!0):((0,m.openBlock)(),(0,m.createElementBlock)(`div`,We,(0,m.toDisplayString)(t.$i18n.Projects.Add_project)+`: `,1)),(0,m.createTextVNode)(` `+(0,m.toDisplayString)(r.name),1)],64))]),r.id?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[e.menuMode?((0,m.openBlock)(),(0,m.createElementBlock)(`a`,{key:0,class:`top-projectSelector_itemLink`,href:(0,m.unref)(B)(r.id)},null,8,Ge)):(0,m.createCommentVNode)(``,!0),t.$core.state.isMobile?(0,m.createCommentVNode)(``,!0):((0,m.openBlock)(),(0,m.createBlock)(i,{key:1,href:r.externalLink,"data-top-icon":``,color:`theme`,target:`_blank`,onClick:n[0]||=(0,m.withModifiers)(()=>{},[`stop`])},null,8,[`href`])),(0,m.createVNode)(f.c,{id:(0,m.unref)(d),pos:`2`,notch:!1,data:{projectItem:r}},{default:(0,m.withCtx)(()=>[(0,m.createVNode)(i,{class:`top-popup_listMore`,"data-top-icon":``,color:`theme`})]),_:1},8,[`id`,`data`])],64)):(0,m.createCommentVNode)(``,!0)]),_:1},8,[`modelValue`,`items`,`itemsIsLoading`,`title`,`modificator`,`placeholder`,`api`,`apiSetSearchParams`,`appendSearchToResultCond`,`buttonProps`,`openerShortcut`])),(0,m.createVNode)(Le,{id:(0,m.unref)(d)},null,8,[`id`])],64)}}}),Je=(e,t)=>{let n=G(),r=n.projectsIds.indexOf(e);if(r===-1)return null;let i;return t===`prev`&&(i=n.projectsIds[r-1]),t===`next`&&(i=n.projectsIds[r+1]),i??null},Ye=async(e,t,n)=>{if(!t)return;let a=G();if(a.userId!==i.O.state.userId&&(W(),a=G()),a.loading)return;a.loading=!0;let o=e.gen(`/get/projects_2/projects/`,[`id`]);o.changeParams({filters:[(0,r.i)(`on`,`GREATER_THAN_EQUALS`,[0])],orders:[(0,r.a)(`user_id`,`DESC`,[i.O.state.userId]),(0,r.a)(`on`,`ASC`,[0]),(0,r.a)(`favorite`,`DESC`),(0,r.a)(`ord`,`ASC`),(0,r.a)(`id`,`DESC`)],limit:1e3});let s=Je(t,n);for(;a.nextOffset!==null&&!s;){o.changeParams({offset:a.nextOffset});let e=await o.call();if(e.errors)break;a.nextOffset=e.nextOffset??null;let r=e.result.map(e=>e.id).filter(Boolean);a.projectsIds.push(...r),s=Je(t,n)}a.loading=!1,s&&z(s)},Xe=e=>`-`+e,Y=e=>e[0]===`-`?e.substring(1):e,X=(e,t)=>{e=Y(e);let n=t.find(t=>t.id===e);if(n)return n},Ze=(e,t,n)=>{t||={id:e.id},t.id=e.id,t.pos??=`3`,t.notch??=!0,t.posBy??=`fixed`;let r=o.t.genElPopupOpener(`div`,t);return r.classList.add(`top-tagSelector`),e.useTopButton&&r.classList.add(`top-tagSelector-useTopButton`,`top-button`,`top-color_theme`,`top-as-selector`),e.useTopButton||r.classList.add(`top-tagSelector-custom`),e.mode===`filter`&&r.classList.add(`top-tagSelector-filter`),e.mode===`setter`&&!e.filters&&r.classList.add(`top-tagSelector-setter_single`),e.mode===`setter`&&e.filters&&r.classList.add(`top-tagSelector-setter_several`),r.onclick=t=>{t.preventDefault(),t.stopPropagation(),r.onclick=null;let i=(0,m.ref)(e.modelValue),o={model:i,mode:e.mode,targetId:e.targetId,filters:e.filters,payload:e.payload};(0,a.storage)(r,`topTagSelectorTarget`,o),delete r.dataset.topPopupDisabled,(0,m.isRef)(e.modelValue)||(0,m.watch)(i,()=>{e.modelValue=i.value,Z(r,e,n)}),r.click()},(0,m.isRef)(e.modelValue)?(0,m.watch)(e.modelValue,()=>Z(r,e,n)):(0,a.storage)(r,`topTagSelectorRender`,t=>{e.modelValue=t;let i=(0,a.storage)(r,`topTagSelectorTarget`);i&&(i.model.value=t),Z(r,e,n)}),Z(r,e,n),r},Qe=(e,t)=>{(0,a.storage)(e,`topTagSelectorRender`)?.(t)},Z=(e,t,n)=>{let r=(0,m.unref)(t.modelValue);if(e.classList.toggle(`top-tagSelector-selectedOne`,!r.length||r.length===1),e.classList.toggle(`top-tagSelector-toTwoLine`,r.length>5),t.mode===`setter`&&t.filters){e.innerHTML=`<div>${n}</div>`;return}if(e.innerHTML=``,!r.length&&t.mode===`filter`){let t=$e({id:`all`,colorId:``,name:(0,i.E)().Common?.All_tags??``,state:``});e.append(t)}r.forEach(n=>{let r=$e({id:Y(n),colorId:X(n,t.tags)?.color_id??``,name:X(n,t.tags)?.name??``,state:Y(n)===n?`selected`:`excluded`});e.append(r)})},$e=e=>{let t=document.createElement(`div`);return t.classList.add(`top-tagSelector_tagIcon`),t.classList.toggle(`top-tagSelector-active`,!!e.state),t.classList.toggle(`top-tagSelector-excluded`,e.state===`excluded`),t.dataset.tag_id=e.id,t.dataset.tag_color_id=e.colorId,t.title=e.name,t},et=[{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`}],tt=[`data-tag_id`,`data-tag_color_id`,`title`],Q=(0,m.defineComponent)({__name:`tagIcon`,props:{id:{},colorId:{},name:{},state:{}},setup(e){return(t,n)=>((0,m.openBlock)(),(0,m.createElementBlock)(`div`,{class:(0,m.normalizeClass)({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!e.state,"top-tagSelector-excluded":e.state===`excluded`}),"data-tag_id":e.id,"data-tag_color_id":e.colorId,title:e.name},null,10,tt))}}),nt=[`contenteditable`,`onKeydown`],rt=(0,m.defineComponent)({__name:`tagPopupListItem`,props:(0,m.mergeModels)({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:(0,m.mergeModels)([`update:name`,`unselect`,`exclude`,`select`],[`update:name`]),setup(e,{emit:t}){let n=e,r=t,i=(0,m.useModel)(e,`name`),a=(0,m.ref)(null),o=(0,m.computed)(()=>navigator.userAgent.indexOf(`Firefox`)==-1?{}:{contenteditable:s.value,onpaste:e=>e.preventDefault()}),s=(0,m.ref)(!1),c=async()=>{s.value=!0,await(0,m.nextTick)(),a.value?.focus()},l=()=>{let e=a.value?.innerText;if(!e)return u();a.value&&(a.value.innerText=e),s.value=!1,r(`update:name`,e)},u=async()=>{a.value&&(a.value.innerText=n.name),s.value=!1},d=e=>{if(s.value||n.disabled)return;let t=`selected`;n.canExclude&&(e.ctrlKey||e.metaKey)&&(t=`excluded`),n.state==t&&(t=``),t===``&&r(`unselect`),t===`selected`&&r(`select`),t===`excluded`&&r(`exclude`)};return(t,n)=>((0,m.openBlock)(),(0,m.createBlock)(f.o,{class:(0,m.normalizeClass)({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":e.disabled,"top-tagSelector_tagListItem-canExclude":e.canExclude,"top-tagSelector-active":!!e.state,"top-tagSelector-excluded":e.state===`excluded`}),onClick:(0,m.withModifiers)(d,[`stop`])},{default:(0,m.withCtx)(()=>[(0,m.createVNode)(Q,{id:e.id,name:i.value,colorId:e.colorId,state:e.state},null,8,[`id`,`name`,`colorId`,`state`]),(0,m.createElementVNode)(`span`,(0,m.mergeProps)({ref_key:`elName`,ref:a,class:`top-tagSelector_tagListItemName`,contenteditable:s.value?`plaintext-only`:!1},o.value,{onKeydown:[(0,m.withKeys)((0,m.withModifiers)(l,[`stop`]),[`enter`]),(0,m.withKeys)((0,m.withModifiers)(u,[`stop`]),[`esc`])]}),(0,m.toDisplayString)(i.value),17,nt),e.editable?((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,{key:0},[s.value?((0,m.openBlock)(),(0,m.createElementBlock)(`span`,{key:1,"data-top-icon":``,class:`top-tagSelector_edit`,onClick:(0,m.withModifiers)(l,[`stop`])})):((0,m.openBlock)(),(0,m.createElementBlock)(`span`,{key:0,"data-top-icon":``,class:`top-tagSelector_edit`,onClick:c}))],64)):(0,m.createCommentVNode)(``,!0)]),_:1},8,[`class`]))}}),it={key:1},at=(0,m.defineComponent)({inheritAttrs:!1,__name:`popupOpener`,props:(0,m.mergeModels)({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{},styling:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e,{attrs:t}){let n=e,r=(0,m.useModel)(e,`modelValue`),a=n.useTopButton?i.h:`div`,o=n.useTopButton?`html`:`default`,s={model:r,mode:n.mode,targetId:n.targetId,filters:n.filters,payload:n.payload};return(i,c)=>{let l=(0,m.resolveDirective)(`top-data`);return(0,m.openBlock)(),(0,m.createBlock)(f.c,{id:e.id},{default:(0,m.withCtx)(()=>[(0,m.withDirectives)(((0,m.openBlock)(),(0,m.createBlock)((0,m.resolveDynamicComponent)((0,m.unref)(a)),(0,m.mergeProps)({class:{"top-tagSelector":!0,"top-tagSelector-useTopButton":n.useTopButton,"top-tagSelector-custom":!n.useTopButton,"top-as-selector":n.useTopButton,"top-tagSelector-filter":n.mode===`filter`,"top-tagSelector-setter_single":n.mode===`setter`&&!e.filters,"top-tagSelector-setter_several":n.mode===`setter`&&e.filters,"top-tagSelector-selectedOne":!r.value.length||r.value.length===1,"top-tagSelector-toTwoLine":r.value.length>5},color:`theme`,styling:e.styling},t),{[(0,m.unref)(o)]:(0,m.withCtx)(()=>[!r.value.length&&e.mode===`filter`?((0,m.openBlock)(),(0,m.createBlock)(Q,{key:0,id:`all`,colorId:``,name:i.$i18n.Common.All_tags??``,state:``},null,8,[`name`])):(0,m.createCommentVNode)(``,!0),e.mode===`setter`&&e.filters?((0,m.openBlock)(),(0,m.createElementBlock)(`div`,it,[(0,m.renderSlot)(i.$slots,`default`)])):((0,m.openBlock)(!0),(0,m.createElementBlock)(m.Fragment,{key:2},(0,m.renderList)(r.value,t=>((0,m.openBlock)(),(0,m.createBlock)(Q,{id:(0,m.unref)(Y)(t),colorId:(0,m.unref)(X)(t,e.tags)?.color_id??``,name:(0,m.unref)(X)(t,e.tags)?.name??``,state:(0,m.unref)(Y)(t)===t?`selected`:`excluded`},null,8,[`id`,`colorId`,`name`,`state`]))),256))]),_:2},1040,[`class`,`styling`])),[[l,s,`topTagSelectorTarget`]])]),_:3},8,[`id`])}}}),ot=(0,m.defineComponent)({__name:`tagSelector`,props:(0,m.mergeModels)({modelValue:{},tags:{},tagsEditable:{type:Boolean},tagsMax:{default:10},id:{},singleMode:{type:Boolean},requiredForSetter:{type:Boolean,default:!0},maxTagsForSetter:{},emitDelay:{default:500},useTopButton:{type:Boolean,default:!0},styling:{}},{modelValue:{required:!0},modelModifiers:{},tags:{default:(0,m.reactive)(et)},tagsModifiers:{}}),emits:(0,m.mergeModels)([`selector`,`setter`,`tagsChanged`],[`update:modelValue`,`update:tags`]),setup(e,{emit:t}){let n=(0,i.E)(),r=e,o=(0,m.useModel)(e,`modelValue`),s=(0,m.useModel)(e,`tags`),c=t,l=(0,i.P)((e,t)=>{c(e,t)},r.emitDelay);r.singleMode&&!o.value.length&&(o.value=[s.value[0].id]);let u=r.id??`top-popup-id-`+Math.random(),d=(0,m.ref)(`add`),p=()=>{let e=` `+n.Common.Tags?.toLowerCase(),t=new Map;return t.set(`add`,{value:`add`,title:n.Common.Add+e}),t.set(`replace`,{value:`replace`,title:n.Common.Replace+e}),t.set(`delete`,{value:`delete`,title:n.Common.Delete+e}),t},h=(0,m.shallowRef)({model:o,mode:`filter`,targetId:void 0,filters:void 0,payload:void 0});(0,m.watch)(o,()=>{l(`selector`,o.value)});let g=(0,m.computed)(()=>{if(h.value.mode===`setter`&&r.maxTagsForSetter&&!h.value.filters)return h.value.model.value.length>=r.maxTagsForSetter}),_=e=>{if(e!==`all`){if(h.value.model.value.includes(e))return`selected`;if(h.value.model.value.includes(Xe(e)))return`excluded`}return e===`all`&&!h.value.model.value.length?`selected`:``},v=(e,t)=>{let n=Xe(e),i=h.value.model.value.filter(t=>t!==e&&t!==n);t===`select`&&i.push(e),t===`exclude`&&i.push(n),h.value.mode===`setter`&&h.value.targetId!==void 0&&r.requiredForSetter&&(i.length||i.push(`1`),i.length===2&&h.value.model.value.length===1&&h.value.model.value[0]===`1`&&(i=i.filter(e=>e!==`1`))),r.singleMode&&!h.value.filters&&(i.length||(i=h.value.model.value),i.length>1&&(i=[i[i.length-1]])),i.sort((e,t)=>r.tags?r.tags.findIndex(t=>t.id===e)-r.tags.findIndex(e=>e.id===t):0),h.value.model.value=i,h.value.mode===`setter`&&h.value.targetId!==void 0&&l(`setter`,{tagsIds:i,targetId:h.value.targetId,payload:h.value.payload})},y=(0,m.computed)(()=>{let e=`top-tagSelector_popup`;return h.value.mode===`filter`&&(e+=` top-tagSelector_popup-filter`),h.value.mode===`setter`&&(e+=` top-tagSelector_popup-setter`),e}),b=()=>{let e=prompt(``,`New tag`);if(!e||e===`New tag`)return;let t=s.value.length+1;s.value.push({id:String(t),name:e,color_id:String((t-1)%10+1)}),c(`tagsChanged`,s.value)},x=e=>{if(h.value=(0,a.storage)(e.elPopupOpener,`topTagSelectorTarget`),!h.value)throw Error(`Open popup TopTagSelector required v-data:topTagSelectorTarget`);if(h.value.filters&&(d.value=`add`,h.value.model.value=[]),!i.O.$?.ui.sortable){console.info(`Для работы сортировки требуется глобальная загрузка jQuery UI Sortable`);return}!i.O.state.isMobile&&!i.O.state.isMobileUA&&s.value&&$(e.elPopup).sortable({items:`li:has([data-tag_id]:not([data-tag_id="all"]))`,cancel:`[contenteditable="plaintext-only"], [contenteditable="true"]`,distance:10,stop:function(e,t){if(!s.value)return;let n=$(t.item).parent().find(`[data-tag_id]`),r=[];n.each((e,t)=>{if(!s.value)return;let n=$(t).attr(`data-tag_id`);r.push(n)}),s.value.sort((e,t)=>r.findIndex(t=>t===e.id)-r.findIndex(e=>e===t.id)),l(`tagsChanged`,s.value)}})},S=e=>{i.O.$?.ui.sortable&&$(e.elPopup).data(`ui-sortable`)&&$(e.elPopup).sortable(`destroy`)};return(t,n)=>((0,m.openBlock)(),(0,m.createElementBlock)(m.Fragment,null,[(0,m.createVNode)(at,{modelValue:o.value,"onUpdate:modelValue":n[0]||=e=>o.value=e,id:(0,m.unref)(u),tags:s.value,styling:e.styling,mode:`filter`,useTopButton:e.useTopButton},null,8,[`modelValue`,`id`,`tags`,`styling`,`useTopButton`]),(0,m.createVNode)(f.s,{id:(0,m.unref)(u),class:(0,m.normalizeClass)(y.value),onOpen:n[4]||=e=>x(e),onClose:n[5]||=e=>S(e),"transition-duration":50},(0,m.createSlots)({contentList:(0,m.withCtx)(()=>[h.value.mode===`filter`&&!e.singleMode?((0,m.openBlock)(),(0,m.createBlock)(rt,{key:0,id:`all`,colorId:``,name:t.$i18n.Common.All_tags??``,state:h.value.model.value.length?``:`selected`,onSelect:n[3]||=e=>h.value.model.value=[]},null,8,[`name`,`state`])):(0,m.createCommentVNode)(``,!0),((0,m.openBlock)(!0),(0,m.createElementBlock)(m.Fragment,null,(0,m.renderList)(s.value,t=>((0,m.openBlock)(),(0,m.createBlock)(rt,{key:t.id,id:t.id,colorId:t.color_id,name:t.name,state:_(t.id),canExclude:h.value.mode===`filter`&&!e.singleMode,editable:e.tagsEditable,disabled:g.value&&_(t.id)===``,onUnselect:e=>v(t.id,`unselect`),onSelect:e=>v(t.id,`select`),onExclude:e=>v(t.id,`exclude`),"onUpdate:name":e=>{t.name=e,(0,m.unref)(l)(`tagsChanged`,s.value)}},null,8,[`id`,`colorId`,`name`,`state`,`canExclude`,`editable`,`disabled`,`onUnselect`,`onSelect`,`onExclude`,`onUpdate:name`]))),128)),e.tagsEditable&&s.value.length<e.tagsMax&&s.value.length<20?((0,m.openBlock)(),(0,m.createBlock)(f.o,{key:1,"data-top-icon":``,onClick:(0,m.withModifiers)(b,[`stop`])},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(t.$i18n.Common.Add),1)]),_:1})):(0,m.createCommentVNode)(``,!0)]),_:2},[h.value.mode===`setter`&&h.value.filters?{name:`header`,fn:(0,m.withCtx)(()=>[(0,m.createVNode)(i.n,{modelValue:d.value,"onUpdate:modelValue":n[1]||=e=>d.value=e,options:p()},null,8,[`modelValue`,`options`])]),key:`0`}:void 0,h.value.mode===`setter`&&h.value.filters?{name:`footer`,fn:(0,m.withCtx)(()=>[(0,m.createVNode)(i.h,{color:`theme`},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(t.$i18n.Common.Cancel),1)]),_:1}),(0,m.createVNode)(i.h,{onClick:n[2]||=e=>(0,m.unref)(l)(`setter`,{tagsIds:h.value.model.value,filters:h.value.filters,filtersAction:d.value,payload:h.value.payload})},{default:(0,m.withCtx)(()=>[(0,m.createTextVNode)((0,m.toDisplayString)(d.value===`add`?t.$i18n.Common.Add:``)+` `+(0,m.toDisplayString)(d.value===`replace`?t.$i18n.Common.Replace:``)+` `+(0,m.toDisplayString)(d.value===`delete`?t.$i18n.Common.Delete:``),1)]),_:1})]),key:`1`}:void 0]),1032,[`id`,`class`])],64))}});t.TopGroupSelector=Oe,t.topProjectSelectorClearCache=Ve,t.TopProjectSelector=qe,t.navigateToAdjacentProject=Ye,t.genElTopTagSelectorPopupOpener=Ze,t.renderElTopTagSelectorPopupOpener=Qe,t.TopTagSelectorTagIcon=Q,t.TopTagSelectorPopupOpener=at,t.TopTagSelector=ot});
2
2
  //# sourceMappingURL=project.amd.js.map