@topvisor/ui 1.4.1-projectSelector.0 → 1.4.1-projectSelector.2

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 (185) hide show
  1. package/.chunks/{core-BgoBbm_5.es.js → core-BE_-rKvW.es.js} +4 -4
  2. package/.chunks/core-BE_-rKvW.es.js.map +1 -0
  3. package/.chunks/{core-D1KnwO7l.amd.js → core-DJS4o9Vt.amd.js} +2 -2
  4. package/.chunks/core-DJS4o9Vt.amd.js.map +1 -0
  5. package/.chunks/{datepicker-BPTUHd97.es.js → datepicker-C0jmLfiX.es.js} +2 -2
  6. package/.chunks/datepicker-C0jmLfiX.es.js.map +1 -0
  7. package/.chunks/{datepicker-O_SK-Dz4.amd.js → datepicker-ppUhXCHG.amd.js} +2 -2
  8. package/.chunks/datepicker-ppUhXCHG.amd.js.map +1 -0
  9. package/.chunks/{dialog_regionSelectorRegions-DA38RsiW.es.js → dialog_regionSelectorRegions-Btp9cfmF.es.js} +4 -4
  10. package/.chunks/dialog_regionSelectorRegions-Btp9cfmF.es.js.map +1 -0
  11. package/.chunks/{dialog_regionSelectorRegions-Ba-Eypgv.amd.js → dialog_regionSelectorRegions-C1DNLHM7.amd.js} +2 -2
  12. package/.chunks/dialog_regionSelectorRegions-C1DNLHM7.amd.js.map +1 -0
  13. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-CWprVs8d.amd.js → dialogs.vue_vue_type_script_setup_true_lang-B3hYoW1m.amd.js} +2 -2
  14. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-B3hYoW1m.amd.js.map +1 -0
  15. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-CzFMOjlE.es.js → dialogs.vue_vue_type_script_setup_true_lang-DMhcuiHP.es.js} +2 -2
  16. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DMhcuiHP.es.js.map +1 -0
  17. package/.chunks/field-Cvv0SRcJ.amd.js.map +1 -1
  18. package/.chunks/field-CyyFzM-Y.es.js.map +1 -1
  19. package/.chunks/{forms-xkXHvvah.es.js → forms-BAUgA7Ct.es.js} +7 -7
  20. package/.chunks/forms-BAUgA7Ct.es.js.map +1 -0
  21. package/.chunks/{forms-4D_EVI46.amd.js → forms-B_v2vU59.amd.js} +3 -3
  22. package/.chunks/forms-B_v2vU59.amd.js.map +1 -0
  23. package/.chunks/index-DLUtoTUg.amd.js.map +1 -1
  24. package/.chunks/index-DkQWJkMc.es.js.map +1 -1
  25. package/.chunks/lazy-40pjr8cZ.es.js.map +1 -1
  26. package/.chunks/lazy-DSFLxvj4.amd.js.map +1 -1
  27. package/.chunks/{notice-hF3z8ewG.amd.js → notice-6HGA0ECG.amd.js} +2 -2
  28. package/.chunks/notice-6HGA0ECG.amd.js.map +1 -0
  29. package/.chunks/{notice-wqZxmsUH.es.js → notice-CGgc2m0q.es.js} +2 -2
  30. package/.chunks/notice-CGgc2m0q.es.js.map +1 -0
  31. package/.chunks/{page.vue_vue_type_script_setup_true_lang-rW3w9LMh.es.js → page.vue_vue_type_script_setup_true_lang-BMTt9SU8.es.js} +4 -4
  32. package/.chunks/page.vue_vue_type_script_setup_true_lang-BMTt9SU8.es.js.map +1 -0
  33. package/.chunks/{page.vue_vue_type_script_setup_true_lang-tiWuQ_ZK.amd.js → page.vue_vue_type_script_setup_true_lang-WX1HlCFp.amd.js} +2 -2
  34. package/.chunks/page.vue_vue_type_script_setup_true_lang-WX1HlCFp.amd.js.map +1 -0
  35. package/.chunks/{policy.vue_vue_type_style_index_0_lang-DABqSSXw.amd.js → policy.vue_vue_type_style_index_0_lang-CO-f4TwZ.amd.js} +2 -2
  36. package/.chunks/policy.vue_vue_type_style_index_0_lang-CO-f4TwZ.amd.js.map +1 -0
  37. package/.chunks/{policy.vue_vue_type_style_index_0_lang-C9A--uWd.es.js → policy.vue_vue_type_style_index_0_lang-ClaW4X74.es.js} +4 -4
  38. package/.chunks/policy.vue_vue_type_style_index_0_lang-ClaW4X74.es.js.map +1 -0
  39. package/.chunks/{popup-BeLPdHWv.es.js → popup-CVHDbG9h.es.js} +2 -2
  40. package/.chunks/popup-CVHDbG9h.es.js.map +1 -0
  41. package/.chunks/{popup-Bwmu8rOb.amd.js → popup-H0d4XQtU.amd.js} +2 -2
  42. package/.chunks/popup-H0d4XQtU.amd.js.map +1 -0
  43. package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-fnjq0yg1.es.js → popupHint.vue_vue_type_style_index_0_lang-BIWw5zUX.es.js} +2 -2
  44. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-BIWw5zUX.es.js.map +1 -0
  45. package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-B0BWXhHK.amd.js → popupHint.vue_vue_type_style_index_0_lang-CdIajfDS.amd.js} +2 -2
  46. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-CdIajfDS.amd.js.map +1 -0
  47. package/.chunks/store-CX_6ZXhO.es.js.map +1 -1
  48. package/.chunks/store-YRW59xEF.amd.js.map +1 -1
  49. package/.chunks/{utils-BRJvuqe_.amd.js → utils-BUMfp_te.amd.js} +2 -2
  50. package/.chunks/utils-BUMfp_te.amd.js.map +1 -0
  51. package/.chunks/{utils-ByqQkftW.es.js → utils-BYaZxGC1.es.js} +2 -2
  52. package/.chunks/utils-BYaZxGC1.es.js.map +1 -0
  53. package/.chunks/{utils-YVlPlqDK.es.js → utils-DG_W0xvD.es.js} +3 -3
  54. package/.chunks/utils-DG_W0xvD.es.js.map +1 -0
  55. package/.chunks/{utils-cAJahDml.amd.js → utils-DNzj9OOY.amd.js} +2 -2
  56. package/.chunks/utils-DNzj9OOY.amd.js.map +1 -0
  57. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-UUovJzhL.es.js → widgetInput.vue_vue_type_script_setup_true_lang-Brs-RxDI.es.js} +2 -2
  58. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-Brs-RxDI.es.js.map +1 -0
  59. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-D7lVLE3D.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-C4wFo0AR.amd.js} +2 -2
  60. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-C4wFo0AR.amd.js.map +1 -0
  61. package/README.md +82 -82
  62. package/api/additional.amd.js.map +1 -1
  63. package/api/additional.js.map +1 -1
  64. package/api/index.amd.js.map +1 -1
  65. package/api/index.js.map +1 -1
  66. package/assets/forms.css +1 -1
  67. package/assets/project.css +1 -1
  68. package/charts/charts.amd.js +1 -1
  69. package/charts/charts.amd.js.map +1 -1
  70. package/charts/charts.js +1 -1
  71. package/charts/charts.js.map +1 -1
  72. package/core/app.amd.js +1 -1
  73. package/core/app.amd.js.map +1 -1
  74. package/core/app.js +5 -5
  75. package/core/app.js.map +1 -1
  76. package/dialog/dialog.amd.js +1 -1
  77. package/dialog/dialog.amd.js.map +1 -1
  78. package/dialog/dialog.js +2 -2
  79. package/dialog/dialog.js.map +1 -1
  80. package/extra/extra.amd.js.map +1 -1
  81. package/extra/extra.js.map +1 -1
  82. package/forms/forms.amd.js +1 -1
  83. package/forms/forms.js +1 -1
  84. package/formsExt/formsExt.amd.js +1 -1
  85. package/formsExt/formsExt.amd.js.map +1 -1
  86. package/formsExt/formsExt.js +2 -2
  87. package/formsExt/formsExt.js.map +1 -1
  88. package/icomoon/Read Me.txt +7 -7
  89. package/icomoon/demo-files/demo.css +158 -158
  90. package/icomoon/demo-files/demo.js +30 -30
  91. package/icomoon/demo.css +158 -158
  92. package/icomoon/demo.js +30 -30
  93. package/jquery-ui.min.css +5 -5
  94. package/layout/layout.amd.js +1 -1
  95. package/layout/layout.amd.js.map +1 -1
  96. package/layout/layout.js +1 -1
  97. package/layout/layout.js.map +1 -1
  98. package/package.json +1 -1
  99. package/popup/popup.amd.js +1 -1
  100. package/popup/popup.amd.js.map +1 -1
  101. package/popup/popup.js +4 -4
  102. package/popup/popup.js.map +1 -1
  103. package/popup/worker.amd.js +1 -1
  104. package/popup/worker.amd.js.map +1 -1
  105. package/popup/worker.js +2 -2
  106. package/popup/worker.js.map +1 -1
  107. package/project/project.amd.js +1 -1
  108. package/project/project.amd.js.map +1 -1
  109. package/project/project.js +563 -563
  110. package/project/project.js.map +1 -1
  111. package/require/css.amd.js +12 -12
  112. package/src/components/project/projectSelector/projectSelector.vue.d.ts +1 -1
  113. package/src/components/project/projectSelector/types.d.ts +2 -8
  114. package/src/components/project/projectSelector/utils.d.ts +1 -8
  115. package/tabs/tabs.amd.js.map +1 -1
  116. package/tabs/tabs.js.map +1 -1
  117. package/tabsView/tabsView.amd.js +1 -1
  118. package/tabsView/tabsView.amd.js.map +1 -1
  119. package/tabsView/tabsView.js +2 -2
  120. package/tabsView/tabsView.js.map +1 -1
  121. package/utils/check.amd.js.map +1 -1
  122. package/utils/check.js.map +1 -1
  123. package/utils/clipboard.amd.js +1 -1
  124. package/utils/clipboard.amd.js.map +1 -1
  125. package/utils/clipboard.js +1 -1
  126. package/utils/clipboard.js.map +1 -1
  127. package/utils/date.amd.js +1 -1
  128. package/utils/date.js +1 -1
  129. package/utils/device.amd.js +1 -1
  130. package/utils/device.js +1 -1
  131. package/utils/dom.amd.js.map +1 -1
  132. package/utils/dom.js.map +1 -1
  133. package/utils/image.amd.js.map +1 -1
  134. package/utils/image.js.map +1 -1
  135. package/utils/keyboard.amd.js.map +1 -1
  136. package/utils/keyboard.js.map +1 -1
  137. package/utils/lodash.amd.js +1 -1
  138. package/utils/lodash.js +1 -1
  139. package/utils/number.amd.js.map +1 -1
  140. package/utils/number.js.map +1 -1
  141. package/utils/price.amd.js +1 -1
  142. package/utils/price.amd.js.map +1 -1
  143. package/utils/price.js +1 -1
  144. package/utils/price.js.map +1 -1
  145. package/utils/route.amd.js.map +1 -1
  146. package/utils/route.js.map +1 -1
  147. package/utils/scroll.amd.js.map +1 -1
  148. package/utils/scroll.js.map +1 -1
  149. package/utils/searchers.amd.js +1 -1
  150. package/utils/searchers.amd.js.map +1 -1
  151. package/utils/searchers.js +3 -3
  152. package/utils/searchers.js.map +1 -1
  153. package/utils/string.amd.js +1 -1
  154. package/utils/string.js +1 -1
  155. package/utils/system.amd.js.map +1 -1
  156. package/utils/system.js.map +1 -1
  157. package/utils/url.amd.js.map +1 -1
  158. package/utils/url.js.map +1 -1
  159. package/.chunks/core-BgoBbm_5.es.js.map +0 -1
  160. package/.chunks/core-D1KnwO7l.amd.js.map +0 -1
  161. package/.chunks/datepicker-BPTUHd97.es.js.map +0 -1
  162. package/.chunks/datepicker-O_SK-Dz4.amd.js.map +0 -1
  163. package/.chunks/dialog_regionSelectorRegions-Ba-Eypgv.amd.js.map +0 -1
  164. package/.chunks/dialog_regionSelectorRegions-DA38RsiW.es.js.map +0 -1
  165. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CWprVs8d.amd.js.map +0 -1
  166. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CzFMOjlE.es.js.map +0 -1
  167. package/.chunks/forms-4D_EVI46.amd.js.map +0 -1
  168. package/.chunks/forms-xkXHvvah.es.js.map +0 -1
  169. package/.chunks/notice-hF3z8ewG.amd.js.map +0 -1
  170. package/.chunks/notice-wqZxmsUH.es.js.map +0 -1
  171. package/.chunks/page.vue_vue_type_script_setup_true_lang-rW3w9LMh.es.js.map +0 -1
  172. package/.chunks/page.vue_vue_type_script_setup_true_lang-tiWuQ_ZK.amd.js.map +0 -1
  173. package/.chunks/policy.vue_vue_type_style_index_0_lang-C9A--uWd.es.js.map +0 -1
  174. package/.chunks/policy.vue_vue_type_style_index_0_lang-DABqSSXw.amd.js.map +0 -1
  175. package/.chunks/popup-BeLPdHWv.es.js.map +0 -1
  176. package/.chunks/popup-Bwmu8rOb.amd.js.map +0 -1
  177. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-B0BWXhHK.amd.js.map +0 -1
  178. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-fnjq0yg1.es.js.map +0 -1
  179. package/.chunks/utils-BRJvuqe_.amd.js.map +0 -1
  180. package/.chunks/utils-ByqQkftW.es.js.map +0 -1
  181. package/.chunks/utils-YVlPlqDK.es.js.map +0 -1
  182. package/.chunks/utils-cAJahDml.amd.js.map +0 -1
  183. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-D7lVLE3D.amd.js.map +0 -1
  184. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-UUovJzhL.es.js.map +0 -1
  185. package/src/components/project/projectSelector/stories/mocks/projects.d.ts +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"popup.js","sources":["../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\r\nimport type { Emits, Props } from './types';\r\nimport TopButton from '@/components/forms/button/button.vue';\r\nimport TopPopup from '@/components/popup/popup/popup.vue';\r\n\r\nconst props = defineProps<Props<T>>();\r\n\r\ndefineEmits<Emits<T>>();\r\n\r\n// сужение объекта для propsPopup\r\nconst {\r\n\tsubmitText,\r\n\t...propsPopup\r\n}: Props<T> = props;\r\n</script>\r\n\r\n<template>\r\n\t<!-- @vue-generic {T} -->\r\n\t<TopPopup\r\n\t\tclass=\"top-popupAlert\"\r\n\t\t:=propsPopup\r\n\t\t@open=\"$emit('open', $event)\"\r\n\t\t@close=\"$emit('close', $event)\"\r\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\r\n\t>\r\n\t\t<template #opener>\r\n\t\t\t<!-- @slot Элемент для открытия Popup -->\r\n\t\t\t<slot name=\"opener\"></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #header v-if=\"$slots.header\">\r\n\t\t\t<!-- @slot Шапка -->\r\n\t\t\t<slot name=\"header\"></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #content v-if=\"$slots.default\">\r\n\t\t\t<!-- @slot Контент в свободной форме -->\r\n\t\t\t<slot></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #footer>\r\n\t\t\t<!-- @slot Футер -->\r\n\t\t\t<slot name=\"footer\"></slot>\r\n\r\n\t\t\t<TopButton>\r\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\r\n\t\t\t</TopButton>\r\n\t\t</template>\r\n\t</TopPopup>\r\n</template>\r\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel2 }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel2 }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\r\nimport TopPopup from '@/components/popup/popup/popup.vue';\r\nimport TopHint from '@/components/forms/hint/hint.vue';\r\nimport type { Props } from './types';\r\n\r\nconst props = defineProps<Props<T>>();\r\n\r\nconst {\r\n\thint,\r\n\t...propsPopup\r\n}: Props<T> = props;\r\n</script>\r\n\r\n<template>\r\n\t<!-- @vue-generic {T} -->\r\n\t<TopPopup\r\n\t\tclass=\"top-popupHint\"\r\n\t\t:=propsPopup\r\n\t\t@open=\"$emit('open', $event)\"\r\n\t\t@close=\"$emit('close', $event)\"\r\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\r\n\t>\r\n\t\t<template #opener>\r\n\t\t\t<!-- Элемент для открытия Popup -->\r\n\t\t\t<TopHint\r\n\t\t\t\t:hint=\"hint\"\r\n\t\t\t\tclass=\"top-popupHint_opener\"\r\n\t\t\t\tv-top-tooltip\r\n\t\t\t/>\r\n\t\t</template>\r\n\r\n\t\t<template #content v-if=\"$slots.default\">\r\n\t\t\t<!-- @slot Контент в свободной форме -->\r\n\t\t\t<slot></slot>\r\n\t\t</template>\r\n\t</TopPopup>\r\n</template>\r\n\r\n<style>\r\n.top-popupHint_opener {\r\n\tcursor: pointer;\r\n}\r\n\r\n.top-popupHint_opener.top-active {\r\n\tcolor: var(--color-text-2);\r\n}\r\n</style>\r\n"],"names":["props","__props","submitText","propsPopup","_openBlock","_createBlock","TopPopup","_mergeProps","_cache","$event","$emit","args","_renderSlot","_ctx","_createVNode","TopButton","_createTextVNode","_toDisplayString","_unref","$i18n","$slots","emit","__emit","isSubmit","ref","onSubmit","onClose","popupEvent","cancelText","isWarning","reset","localValue","watch","defaultValue","TopPopupWidgetInput","hint","TopHint"],"mappings":"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"}
1
+ {"version":3,"file":"popup.js","sources":["../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel2 }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel2 }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n"],"names":["props","__props","submitText","propsPopup","_openBlock","_createBlock","TopPopup","_mergeProps","_cache","$event","$emit","args","_renderSlot","_ctx","_createVNode","TopButton","_createTextVNode","_toDisplayString","_unref","$i18n","$slots","emit","__emit","isSubmit","ref","onSubmit","onClose","popupEvent","cancelText","isWarning","reset","localValue","watch","defaultValue","TopPopupWidgetInput","hint","TopHint"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-4D_EVI46.amd","../utils/dom.amd"],(function(require,exports,forms,utils_dom){"use strict";if(typeof vue>"u")var vue=window.Vue;class Worker{static noClose=!1;static vueConnectors=new Map;static options={};static getPopup(t){return utils_dom.default.storage(t,"TopPopup")}static getElPopupOpener(t){return t.closest("[data-top-popup]")}static getPopupFromOpener(t){const o=Worker.getElPopupOpener(t);return o?utils_dom.default.storage(o,"#TopPopup"):null}static getAll(){return utils_dom.default.querySelectorAllArray(document,".top-popup-wrapper")}static getAllVisible(){return utils_dom.default.querySelectorAllVisible(document,".top-popup-wrapper")}static async openByOpener(t){if(!(t instanceof HTMLElement))return;const o={};return o.popup=t.dataset.topPopup,o.id=t.dataset.topPopupId,!o.id&&o.popup&&(t.dataset.topPopupId=btoa(String.fromCharCode(...new TextEncoder().encode(o.popup))),o.id=t.dataset.topPopupId),t.dataset.topPopupP&&(o.p=parseInt(t.dataset.topPopupP)),t.dataset.topPopupPos&&(o.p=parseInt(t.dataset.topPopupPos)),t.dataset.topPopupNotch&&(o.notch=t.dataset.topPopupNotch==="true"||t.dataset.topPopupNotch==="1"),t.dataset.topPopupClass&&(o.class=t.dataset.topPopupClass),t.dataset.topPopupPosBy&&(o.posBy=t.dataset.topPopupPosBy),t.dataset.topPopupFront&&(o.frontSelector=t.dataset.topPopupFront),t.dataset.topPopupInvertX&&(o.invertX=t.dataset.topPopupInvertX==="true"||t.dataset.topPopupInvertX==="1"),t.dataset.topPopupOpenByHovertopPopupOpenByHover&&(o.openByHover=t.dataset.topPopupOpenByHover==="true"||t.dataset.topPopupOpenByHover==="1"),t.dataset.topPopupUseOriginal&&(o.useOriginal=t.dataset.topPopupUseOriginal==="true"||t.dataset.topPopupUseOriginal==="1"),await Worker.open(t,o)}static async open(elOpener,options){elOpener instanceof HTMLElement&&(elOpener.dataset.topPopupOpened="opened");const{TopLibPopup}=await new Promise((t,o)=>require(["../.chunks/popup-Bwmu8rOb.amd"],t,o));if(forms.Core.$){const $elOpener=forms.Core.$(elOpener);if($elOpener.data("aftershow")){let afterShow=$elOpener.data("aftershow");typeof afterShow=="string"&&(afterShow=eval(afterShow.replace(/\W/g,""))),$elOpener.one("aftershow.top-menu-popup",afterShow)}if($elOpener.data("afterclose")){let afterclose=$elOpener.data("afterclose");typeof afterclose=="string"&&(afterclose=eval(afterclose.replace(/\W/g,""))),$elOpener.one("afterclose.top-menu-popup",afterclose)}}return options.isFullScreen=forms.Core.state.isMobile,new TopLibPopup(elOpener,options)}static close(t,o=!1){const e=Worker.getPopup(t);if(e){e.close();const p=e.el.contains(document.activeElement);o&&!p&&setTimeout(()=>{e.el.focus()})}}static recalcPosition(t){const o=Worker.getPopup(t);o&&o.elPopupBody instanceof HTMLElement&&o.recalcPosition()}static scrollToActive(t){if(!utils_dom.default.querySelectorVisible(t,"ul.top-popup_content > li > .top-active"))return;const e=t.querySelector("ul.top-popup_content"),p=utils_dom.default.querySelectorAllVisible(t,"ul.top-popup_content > li");t.classList.add("top-popup-wrapper-no_animate"),setTimeout(()=>t.classList.remove("top-popup-wrapper-no_animate"),100);let a=100;for(const s of p){if(s.querySelector(":scope > .top-active"))break;s instanceof HTMLElement&&(a+=s.offsetHeight)}if(e instanceof HTMLElement){const s=e.offsetHeight;a>s?e.scrollTop=a-s:e.scrollTop=0}}static decoratorBeforeOpen(t){this.options.decoratorBeforeOpen&&this.options.decoratorBeforeOpen(t)}static decoratorAfterOpen(t){this.options.decoratorAfterOpen&&this.options.decoratorAfterOpen(t)}static decoratorIsIgnoreOuterClick(t){return this.options.decoratorIsIgnoreOuterClick?this.options.decoratorIsIgnoreOuterClick(t):!1}static regVueComponent(t,o){if(Worker.vueConnectors.get(t))throw"Vue component Popup use duplicated id: "+t;Worker.vueConnectors.set(t,o)}static unregVueComponent(t){Worker.vueConnectors.delete(t)}static genElPopupOpener(t,o,...e){const p=utils_dom.default.genEl(t,{},...e);p.dataset.topPopup="#"+o.id;for(let a in o){const s="topPopup"+a.charAt(0).toUpperCase()+a.slice(1);p.dataset[s]=o[a]}return p.__TopPopupOpenerProps=o,p}}exports.TopPopupWorker=Worker,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}));
1
+ define(["require","exports","../.chunks/forms-B_v2vU59.amd","../utils/dom.amd"],(function(require,exports,forms,utils_dom){"use strict";if(typeof vue>"u")var vue=window.Vue;class Worker{static noClose=!1;static vueConnectors=new Map;static options={};static getPopup(t){return utils_dom.default.storage(t,"TopPopup")}static getElPopupOpener(t){return t.closest("[data-top-popup]")}static getPopupFromOpener(t){const o=Worker.getElPopupOpener(t);return o?utils_dom.default.storage(o,"#TopPopup"):null}static getAll(){return utils_dom.default.querySelectorAllArray(document,".top-popup-wrapper")}static getAllVisible(){return utils_dom.default.querySelectorAllVisible(document,".top-popup-wrapper")}static async openByOpener(t){if(!(t instanceof HTMLElement))return;const o={};return o.popup=t.dataset.topPopup,o.id=t.dataset.topPopupId,!o.id&&o.popup&&(t.dataset.topPopupId=btoa(String.fromCharCode(...new TextEncoder().encode(o.popup))),o.id=t.dataset.topPopupId),t.dataset.topPopupP&&(o.p=parseInt(t.dataset.topPopupP)),t.dataset.topPopupPos&&(o.p=parseInt(t.dataset.topPopupPos)),t.dataset.topPopupNotch&&(o.notch=t.dataset.topPopupNotch==="true"||t.dataset.topPopupNotch==="1"),t.dataset.topPopupClass&&(o.class=t.dataset.topPopupClass),t.dataset.topPopupPosBy&&(o.posBy=t.dataset.topPopupPosBy),t.dataset.topPopupFront&&(o.frontSelector=t.dataset.topPopupFront),t.dataset.topPopupInvertX&&(o.invertX=t.dataset.topPopupInvertX==="true"||t.dataset.topPopupInvertX==="1"),t.dataset.topPopupOpenByHovertopPopupOpenByHover&&(o.openByHover=t.dataset.topPopupOpenByHover==="true"||t.dataset.topPopupOpenByHover==="1"),t.dataset.topPopupUseOriginal&&(o.useOriginal=t.dataset.topPopupUseOriginal==="true"||t.dataset.topPopupUseOriginal==="1"),await Worker.open(t,o)}static async open(elOpener,options){elOpener instanceof HTMLElement&&(elOpener.dataset.topPopupOpened="opened");const{TopLibPopup}=await new Promise((t,o)=>require(["../.chunks/popup-H0d4XQtU.amd"],t,o));if(forms.Core.$){const $elOpener=forms.Core.$(elOpener);if($elOpener.data("aftershow")){let afterShow=$elOpener.data("aftershow");typeof afterShow=="string"&&(afterShow=eval(afterShow.replace(/\W/g,""))),$elOpener.one("aftershow.top-menu-popup",afterShow)}if($elOpener.data("afterclose")){let afterclose=$elOpener.data("afterclose");typeof afterclose=="string"&&(afterclose=eval(afterclose.replace(/\W/g,""))),$elOpener.one("afterclose.top-menu-popup",afterclose)}}return options.isFullScreen=forms.Core.state.isMobile,new TopLibPopup(elOpener,options)}static close(t,o=!1){const e=Worker.getPopup(t);if(e){e.close();const p=e.el.contains(document.activeElement);o&&!p&&setTimeout(()=>{e.el.focus()})}}static recalcPosition(t){const o=Worker.getPopup(t);o&&o.elPopupBody instanceof HTMLElement&&o.recalcPosition()}static scrollToActive(t){if(!utils_dom.default.querySelectorVisible(t,"ul.top-popup_content > li > .top-active"))return;const e=t.querySelector("ul.top-popup_content"),p=utils_dom.default.querySelectorAllVisible(t,"ul.top-popup_content > li");t.classList.add("top-popup-wrapper-no_animate"),setTimeout(()=>t.classList.remove("top-popup-wrapper-no_animate"),100);let a=100;for(const s of p){if(s.querySelector(":scope > .top-active"))break;s instanceof HTMLElement&&(a+=s.offsetHeight)}if(e instanceof HTMLElement){const s=e.offsetHeight;a>s?e.scrollTop=a-s:e.scrollTop=0}}static decoratorBeforeOpen(t){this.options.decoratorBeforeOpen&&this.options.decoratorBeforeOpen(t)}static decoratorAfterOpen(t){this.options.decoratorAfterOpen&&this.options.decoratorAfterOpen(t)}static decoratorIsIgnoreOuterClick(t){return this.options.decoratorIsIgnoreOuterClick?this.options.decoratorIsIgnoreOuterClick(t):!1}static regVueComponent(t,o){if(Worker.vueConnectors.get(t))throw"Vue component Popup use duplicated id: "+t;Worker.vueConnectors.set(t,o)}static unregVueComponent(t){Worker.vueConnectors.delete(t)}static genElPopupOpener(t,o,...e){const p=utils_dom.default.genEl(t,{},...e);p.dataset.topPopup="#"+o.id;for(let a in o){const s="topPopup"+a.charAt(0).toUpperCase()+a.slice(1);p.dataset[s]=o[a]}return p.__TopPopupOpenerProps=o,p}}exports.TopPopupWorker=Worker,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=worker.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.amd.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\r\n * PopupWorker управляет работой Popup\r\n *\r\n * Должен грузить TopLibPopup только в отложенном режиме\r\n */\r\n\r\nimport Core from '@/core/core/core';\r\nimport DOM from '@/core/utils/dom';\r\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\r\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\r\n\r\nexport type Options = {\r\n\t/**\r\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\r\n\t */\r\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\r\n\r\n\t/**\r\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\r\n\t */\r\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\r\n\r\n\t/**\r\n\t * Определитель того, что клик вне Popup нужно игнорировать\r\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\r\n\t */\r\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\r\n}\r\n\r\nclass Worker {\r\n\r\n\t/**\r\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\r\n\t */\r\n\tstatic noClose = false;\r\n\r\n\t/**\r\n\t * Для взаимодействия с vue\r\n\t */\r\n\tstatic vueConnectors = new Map();\r\n\r\n\tstatic options: Options = {};\r\n\r\n\t/**\r\n\t * Вернуть объект компонента popup, привязанный к элементу\r\n\t */\r\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\r\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\r\n\t}\r\n\r\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\r\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\r\n\t}\r\n\r\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\r\n\t\tconst elOpener = Worker.getElPopupOpener(el);\r\n\t\tif (!elOpener) return null;\r\n\r\n\t\treturn DOM.storage(elOpener, '#TopPopup');\r\n\t}\r\n\r\n\t/**\r\n\t * Вернуть все элементы с Popup\r\n\t */\r\n\tstatic getAll(): HTMLElement[] {\r\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\r\n\t}\r\n\r\n\t/**\r\n\t * Вернуть все элементы с открытыми Popup\r\n\t */\r\n\tstatic getAllVisible(): HTMLElement[] {\r\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\r\n\t}\r\n\r\n\t/**\r\n\t * Открыть Popup от указанного elOpener\r\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\r\n\t */\r\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\r\n\t\tif (!(elOpener instanceof HTMLElement)) return;\r\n\r\n\t\tconst options: PopupOptions = {};\r\n\r\n\t\toptions.popup = elOpener.dataset.topPopup;\r\n\r\n\t\toptions.id = elOpener.dataset.topPopupId;\r\n\r\n\t\t/**\r\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\r\n\t\t */\r\n\t\tif (!options.id && options.popup) {\r\n\t\t\telOpener.dataset.topPopupId = btoa(\r\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\r\n\t\t\t);\r\n\r\n\t\t\toptions.id = elOpener.dataset.topPopupId;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupP) {\r\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupPos) {\r\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupNotch) {\r\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupClass) {\r\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupPosBy) {\r\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupFront) {\r\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupInvertX) {\r\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\r\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\r\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\r\n\t\t}\r\n\r\n\t\treturn await Worker.open(elOpener, options);\r\n\t}\r\n\r\n\t/**\r\n\t * Создать и открыть Popup\r\n\t * @param elOpener - элемент, вызвавший открытие Popup\r\n\t * @param options - опции Popup\r\n\t */\r\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\r\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\r\n\r\n\t\tconst { TopLibPopup } = await import('./popup');\r\n\r\n\t\tif (Core.$) {\r\n\t\t\tconst $elOpener = Core.$(elOpener);\r\n\r\n\t\t\t// deprecated, используется aftershow.top-menu-popup\r\n\t\t\tif ($elOpener.data('aftershow')) {\r\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\r\n\t\t\t\tif (typeof (afterShow) == 'string') {\r\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\r\n\t\t\t\t\t// @deprecated\r\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated, используется afterclose.top-menu-popup\r\n\t\t\tif ($elOpener.data('afterclose')) {\r\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\r\n\t\t\t\tif (typeof (afterclose) == 'string') {\r\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\r\n\t\t\t\t\t// @deprecated\r\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toptions.isFullScreen = Core.state.isMobile;\r\n\r\n\t\treturn new TopLibPopup(elOpener, options);\r\n\t}\r\n\r\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\r\n\t\tconst popup = Worker.getPopup(elPopup);\r\n\r\n\t\tif (popup) {\r\n\t\t\tpopup.close();\r\n\r\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\r\n\r\n\t\t\tif (restoreFocus && !isFocused) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tpopup.el.focus();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic recalcPosition(elPopup: HTMLElement): void {\r\n\t\tconst popup = Worker.getPopup(elPopup);\r\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\r\n\t\t\tpopup.recalcPosition();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Скролл к активному элементу списка\r\n\t */\r\n\tstatic scrollToActive(elPopup: HTMLElement): void {\r\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\r\n\t\tif (!elItemActive) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\r\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\r\n\r\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\r\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\r\n\r\n\t\tlet top = 100;\r\n\t\tfor (const elLi of elsLi) {\r\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\r\n\t\t}\r\n\r\n\t\tif (elUl instanceof HTMLElement) {\r\n\t\t\tconst heightWrapper = elUl.offsetHeight;\r\n\t\t\tif (top > heightWrapper) {\r\n\t\t\t\telUl.scrollTop = top - heightWrapper;\r\n\t\t\t} else {\r\n\t\t\t\telUl.scrollTop = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\r\n\t\tif (this.options.decoratorBeforeOpen) {\r\n\t\t\tthis.options.decoratorBeforeOpen(popup);\r\n\t\t}\r\n\t};\r\n\r\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\r\n\t\tif (this.options.decoratorAfterOpen) {\r\n\t\t\tthis.options.decoratorAfterOpen(popup);\r\n\t\t}\r\n\t};\r\n\r\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\r\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\r\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Зарегистрировать Vue компонент\r\n\t *\r\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\r\n\t */\r\n\tstatic regVueComponent(id: string, vueConnector: any): void {\r\n\t\tif (Worker.vueConnectors.get(id)) {\r\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\r\n\t\t}\r\n\r\n\t\tWorker.vueConnectors.set(id, vueConnector);\r\n\t}\r\n\r\n\t/**\r\n\t * Снять с регистрации Vue компонент\r\n\t */\r\n\tstatic unregVueComponent(id: string): void {\r\n\t\tWorker.vueConnectors.delete(id);\r\n\t}\r\n\r\n\t/**\r\n\t * Сгенерировать элемент для открытия popup\r\n\t */\r\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\r\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\r\n\r\n\t\tel.dataset.topPopup = '#' + props.id;\r\n\r\n\t\t// if (props.pos === undefined) props.pos = '3';\r\n\t\t// if (props.notch === undefined) props.notch = true;\r\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\r\n\r\n\t\tfor (let name in props) {\r\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\r\n\r\n\t\t\tel.dataset[attrName] = props[name];\r\n\t\t}\r\n\r\n\t\tel.__TopPopupOpenerProps = props;\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n}\r\n\r\nexport default Worker;\r\n"],"names":["elPopup","el","elOpener2","options2","isFocused","popup","restoreFocus","elLi","elsLi","elUl","heightWrapper","top","e","id","vueConnector","tagName","elsChildrens","name","props"],"mappings":"6KA6BA,MAAA,MAAA,mBAKkB,OAAA,cAAA,IAAA,sBAOU,OAAA,SAAAA,EAAA,gDAO3B,OAAA,iBAAAC,EAAA,CAGC,OAAAA,EAAA,QAAA,kBAAA,EACD,OAAA,mBAAAA,EAAA,oCAIC,OAAAC,2CAAA,0MAiBD,aAAA,aAAAA,EAAA,CAOC,GAAA,EAAAA,aAAA,aAAA,+FAYCA,EAAA,QAAA,WAAA,KAA8B,OAAA,aAAA,GAAA,IAAA,YAAA,EAAA,OAAAC,EAAA,KAAA,CAAA,8BAU/BD,EAAA,QAAA,+CAIAA,EAAA,QAAA,mDAOAA,EAAA,QAAA,gBACCC,EAAA,MAAAD,EAAA,QAAA,gBAAA,QAAAA,EAAA,QAAA,gBAAA,KAGDA,EAAA,QAAA,iDAIAA,EAAA,QAAA,iDAIAA,EAAA,QAAA,yDAOAA,EAAA,QAAA,kBACCC,EAAA,QAAAD,EAAA,QAAA,kBAAA,QAAAA,EAAA,QAAA,kBAAA,KAMDA,EAAA,QAAA,yCACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,KAMDA,EAAA,QAAA,sBACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,4BAIF,aAAA,KAAA,SAAA,QAAA,yKAYC,GAAA,MAAA,KAAA,EAAA,wCAIC,GAAA,UAAA,KAAA,WAAA,EAAA,2CAEC,OAAA,WAAA,WAGC,UAAA,KAAA,UAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,2BAAA,SAAA,EAID,GAAA,UAAA,KAAA,YAAA,EAAA,6CAEC,OAAA,YAAA,WAGC,WAAA,KAAA,WAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,4BAAA,UAAA,yDAMF,IAAA,YAAA,SAAA,OAAA,kEASC,MAAAE,EAAAC,EAAA,GAAA,SAAA,SAAA,aAAA,EAEAC,GAAA,CAAAF,mBAEEC,EAAA,GAAA,MAAA,CAAe,CAAA,GAInB,OAAA,eAAAL,EAAA,wFAOA,OAAA,eAAAA,EAAA,2NAcCA,EAAA,UAAA,IAAA,8BAAA,EACA,WAAA,IAAAA,EAAA,UAAA,OAAA,8BAAA,EAAA,GAAA,YAGA,UAAAO,KAAAC,EAAA,CACC,GAAAD,EAAA,cAAA,sBAAA,sDAOD,GAAAE,aAAA,YAAA,CACC,MAAAC,EAAAD,EAAA,aACAE,EAAAD,EACCD,EAAA,UAAAE,EAAAD,EAEAD,EAAA,UAAA,GAGH,OAAA,oBAAAJ,EAAA,CAGC,KAAA,QAAA,qBACC,KAAA,QAAA,oBAAAA,CAAA,EAEF,OAAA,mBAAAA,EAAA,CAGC,KAAA,QAAA,oBACC,KAAA,QAAA,mBAAAA,CAAA,EAEF,OAAA,4BAAAO,EAAA,CAGC,OAAA,KAAA,QAAA,wEAIA,GACD,OAAA,gBAAAC,EAAAC,EAAA,+GAaA,OAAA,kBAAAD,EAAA,CAMC,OAAA,cAAA,OAAAA,CAAA,oCAOA,MAAAZ,EAAA,UAAA,QAAA,MAAAc,EAAA,CAAA,EAAA,GAAAC,CAAA,8BAQA,QAAAC,KAAAC,EAAA,2EAMA,OAAAjB,EAAA,sBAAAiB,EAEAjB,EAGF"}
1
+ {"version":3,"file":"worker.amd.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\n\t}\n\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\n\t\tconst elOpener = Worker.getElPopupOpener(el);\n\t\tif (!elOpener) return null;\n\n\t\treturn DOM.storage(elOpener, '#TopPopup');\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\n\t\t */\n\t\tif (!options.id && options.popup) {\n\t\t\telOpener.dataset.topPopupId = btoa(\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\n\t\t\t);\n\n\t\t\toptions.id = elOpener.dataset.topPopupId;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\n\t\tif (popup) {\n\t\t\tpopup.close();\n\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\n\n\t\t\tif (restoreFocus && !isFocused) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpopup.el.focus();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировать элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\t\t}\n\n\t\tel.__TopPopupOpenerProps = props;\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","el","elOpener2","options2","isFocused","popup","restoreFocus","elLi","elsLi","elUl","heightWrapper","top","e","id","vueConnector","tagName","elsChildrens","name","props"],"mappings":"6KA6BA,MAAA,MAAA,mBAKkB,OAAA,cAAA,IAAA,sBAOU,OAAA,SAAAA,EAAA,gDAO3B,OAAA,iBAAAC,EAAA,CAGC,OAAAA,EAAA,QAAA,kBAAA,EACD,OAAA,mBAAAA,EAAA,oCAIC,OAAAC,2CAAA,0MAiBD,aAAA,aAAAA,EAAA,CAOC,GAAA,EAAAA,aAAA,aAAA,+FAYCA,EAAA,QAAA,WAAA,KAA8B,OAAA,aAAA,GAAA,IAAA,YAAA,EAAA,OAAAC,EAAA,KAAA,CAAA,8BAU/BD,EAAA,QAAA,+CAIAA,EAAA,QAAA,mDAOAA,EAAA,QAAA,gBACCC,EAAA,MAAAD,EAAA,QAAA,gBAAA,QAAAA,EAAA,QAAA,gBAAA,KAGDA,EAAA,QAAA,iDAIAA,EAAA,QAAA,iDAIAA,EAAA,QAAA,yDAOAA,EAAA,QAAA,kBACCC,EAAA,QAAAD,EAAA,QAAA,kBAAA,QAAAA,EAAA,QAAA,kBAAA,KAMDA,EAAA,QAAA,yCACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,KAMDA,EAAA,QAAA,sBACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,4BAIF,aAAA,KAAA,SAAA,QAAA,yKAYC,GAAA,MAAA,KAAA,EAAA,wCAIC,GAAA,UAAA,KAAA,WAAA,EAAA,2CAEC,OAAA,WAAA,WAGC,UAAA,KAAA,UAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,2BAAA,SAAA,EAID,GAAA,UAAA,KAAA,YAAA,EAAA,6CAEC,OAAA,YAAA,WAGC,WAAA,KAAA,WAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,4BAAA,UAAA,yDAMF,IAAA,YAAA,SAAA,OAAA,kEASC,MAAAE,EAAAC,EAAA,GAAA,SAAA,SAAA,aAAA,EAEAC,GAAA,CAAAF,mBAEEC,EAAA,GAAA,MAAA,CAAe,CAAA,GAInB,OAAA,eAAAL,EAAA,wFAOA,OAAA,eAAAA,EAAA,2NAcCA,EAAA,UAAA,IAAA,8BAAA,EACA,WAAA,IAAAA,EAAA,UAAA,OAAA,8BAAA,EAAA,GAAA,YAGA,UAAAO,KAAAC,EAAA,CACC,GAAAD,EAAA,cAAA,sBAAA,sDAOD,GAAAE,aAAA,YAAA,CACC,MAAAC,EAAAD,EAAA,aACAE,EAAAD,EACCD,EAAA,UAAAE,EAAAD,EAEAD,EAAA,UAAA,GAGH,OAAA,oBAAAJ,EAAA,CAGC,KAAA,QAAA,qBACC,KAAA,QAAA,oBAAAA,CAAA,EAEF,OAAA,mBAAAA,EAAA,CAGC,KAAA,QAAA,oBACC,KAAA,QAAA,mBAAAA,CAAA,EAEF,OAAA,4BAAAO,EAAA,CAGC,OAAA,KAAA,QAAA,wEAIA,GACD,OAAA,gBAAAC,EAAAC,EAAA,+GAaA,OAAA,kBAAAD,EAAA,CAMC,OAAA,cAAA,OAAAA,CAAA,oCAOA,MAAAZ,EAAA,UAAA,QAAA,MAAAc,EAAA,CAAA,EAAA,GAAAC,CAAA,8BAQA,QAAAC,KAAAC,EAAA,2EAMA,OAAAjB,EAAA,sBAAAiB,EAEAjB,EAGF"}
package/popup/worker.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as Core } from "../.chunks/forms-xkXHvvah.es.js";
1
+ import { C as Core } from "../.chunks/forms-BAUgA7Ct.es.js";
2
2
  import DOM from "../utils/dom.js";
3
3
  class Worker {
4
4
  /**
@@ -53,7 +53,7 @@ class Worker {
53
53
  */
54
54
  static async open(elOpener, options) {
55
55
  elOpener instanceof HTMLElement && (elOpener.dataset.topPopupOpened = "opened");
56
- const { TopLibPopup } = await import("../.chunks/popup-BeLPdHWv.es.js");
56
+ const { TopLibPopup } = await import("../.chunks/popup-CVHDbG9h.es.js");
57
57
  if (Core.$) {
58
58
  const $elOpener = Core.$(elOpener);
59
59
  if ($elOpener.data("aftershow")) {
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\r\n * PopupWorker управляет работой Popup\r\n *\r\n * Должен грузить TopLibPopup только в отложенном режиме\r\n */\r\n\r\nimport Core from '@/core/core/core';\r\nimport DOM from '@/core/utils/dom';\r\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\r\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\r\n\r\nexport type Options = {\r\n\t/**\r\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\r\n\t */\r\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\r\n\r\n\t/**\r\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\r\n\t */\r\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\r\n\r\n\t/**\r\n\t * Определитель того, что клик вне Popup нужно игнорировать\r\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\r\n\t */\r\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\r\n}\r\n\r\nclass Worker {\r\n\r\n\t/**\r\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\r\n\t */\r\n\tstatic noClose = false;\r\n\r\n\t/**\r\n\t * Для взаимодействия с vue\r\n\t */\r\n\tstatic vueConnectors = new Map();\r\n\r\n\tstatic options: Options = {};\r\n\r\n\t/**\r\n\t * Вернуть объект компонента popup, привязанный к элементу\r\n\t */\r\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\r\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\r\n\t}\r\n\r\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\r\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\r\n\t}\r\n\r\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\r\n\t\tconst elOpener = Worker.getElPopupOpener(el);\r\n\t\tif (!elOpener) return null;\r\n\r\n\t\treturn DOM.storage(elOpener, '#TopPopup');\r\n\t}\r\n\r\n\t/**\r\n\t * Вернуть все элементы с Popup\r\n\t */\r\n\tstatic getAll(): HTMLElement[] {\r\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\r\n\t}\r\n\r\n\t/**\r\n\t * Вернуть все элементы с открытыми Popup\r\n\t */\r\n\tstatic getAllVisible(): HTMLElement[] {\r\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\r\n\t}\r\n\r\n\t/**\r\n\t * Открыть Popup от указанного elOpener\r\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\r\n\t */\r\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\r\n\t\tif (!(elOpener instanceof HTMLElement)) return;\r\n\r\n\t\tconst options: PopupOptions = {};\r\n\r\n\t\toptions.popup = elOpener.dataset.topPopup;\r\n\r\n\t\toptions.id = elOpener.dataset.topPopupId;\r\n\r\n\t\t/**\r\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\r\n\t\t */\r\n\t\tif (!options.id && options.popup) {\r\n\t\t\telOpener.dataset.topPopupId = btoa(\r\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\r\n\t\t\t);\r\n\r\n\t\t\toptions.id = elOpener.dataset.topPopupId;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupP) {\r\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupPos) {\r\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupNotch) {\r\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupClass) {\r\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupPosBy) {\r\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupFront) {\r\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupInvertX) {\r\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\r\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\r\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\r\n\t\t}\r\n\r\n\t\treturn await Worker.open(elOpener, options);\r\n\t}\r\n\r\n\t/**\r\n\t * Создать и открыть Popup\r\n\t * @param elOpener - элемент, вызвавший открытие Popup\r\n\t * @param options - опции Popup\r\n\t */\r\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\r\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\r\n\r\n\t\tconst { TopLibPopup } = await import('./popup');\r\n\r\n\t\tif (Core.$) {\r\n\t\t\tconst $elOpener = Core.$(elOpener);\r\n\r\n\t\t\t// deprecated, используется aftershow.top-menu-popup\r\n\t\t\tif ($elOpener.data('aftershow')) {\r\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\r\n\t\t\t\tif (typeof (afterShow) == 'string') {\r\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\r\n\t\t\t\t\t// @deprecated\r\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated, используется afterclose.top-menu-popup\r\n\t\t\tif ($elOpener.data('afterclose')) {\r\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\r\n\t\t\t\tif (typeof (afterclose) == 'string') {\r\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\r\n\t\t\t\t\t// @deprecated\r\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toptions.isFullScreen = Core.state.isMobile;\r\n\r\n\t\treturn new TopLibPopup(elOpener, options);\r\n\t}\r\n\r\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\r\n\t\tconst popup = Worker.getPopup(elPopup);\r\n\r\n\t\tif (popup) {\r\n\t\t\tpopup.close();\r\n\r\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\r\n\r\n\t\t\tif (restoreFocus && !isFocused) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tpopup.el.focus();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic recalcPosition(elPopup: HTMLElement): void {\r\n\t\tconst popup = Worker.getPopup(elPopup);\r\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\r\n\t\t\tpopup.recalcPosition();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Скролл к активному элементу списка\r\n\t */\r\n\tstatic scrollToActive(elPopup: HTMLElement): void {\r\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\r\n\t\tif (!elItemActive) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\r\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\r\n\r\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\r\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\r\n\r\n\t\tlet top = 100;\r\n\t\tfor (const elLi of elsLi) {\r\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\r\n\t\t}\r\n\r\n\t\tif (elUl instanceof HTMLElement) {\r\n\t\t\tconst heightWrapper = elUl.offsetHeight;\r\n\t\t\tif (top > heightWrapper) {\r\n\t\t\t\telUl.scrollTop = top - heightWrapper;\r\n\t\t\t} else {\r\n\t\t\t\telUl.scrollTop = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\r\n\t\tif (this.options.decoratorBeforeOpen) {\r\n\t\t\tthis.options.decoratorBeforeOpen(popup);\r\n\t\t}\r\n\t};\r\n\r\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\r\n\t\tif (this.options.decoratorAfterOpen) {\r\n\t\t\tthis.options.decoratorAfterOpen(popup);\r\n\t\t}\r\n\t};\r\n\r\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\r\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\r\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Зарегистрировать Vue компонент\r\n\t *\r\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\r\n\t */\r\n\tstatic regVueComponent(id: string, vueConnector: any): void {\r\n\t\tif (Worker.vueConnectors.get(id)) {\r\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\r\n\t\t}\r\n\r\n\t\tWorker.vueConnectors.set(id, vueConnector);\r\n\t}\r\n\r\n\t/**\r\n\t * Снять с регистрации Vue компонент\r\n\t */\r\n\tstatic unregVueComponent(id: string): void {\r\n\t\tWorker.vueConnectors.delete(id);\r\n\t}\r\n\r\n\t/**\r\n\t * Сгенерировать элемент для открытия popup\r\n\t */\r\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\r\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\r\n\r\n\t\tel.dataset.topPopup = '#' + props.id;\r\n\r\n\t\t// if (props.pos === undefined) props.pos = '3';\r\n\t\t// if (props.notch === undefined) props.notch = true;\r\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\r\n\r\n\t\tfor (let name in props) {\r\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\r\n\r\n\t\t\tel.dataset[attrName] = props[name];\r\n\t\t}\r\n\r\n\t\tel.__TopPopupOpenerProps = props;\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n}\r\n\r\nexport default Worker;\r\n"],"names":["elPopup","el","elOpener","options","restoreFocus","popup","isFocused","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","tagName","props","elsChildrens","name","attrName"],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\n\t}\n\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\n\t\tconst elOpener = Worker.getElPopupOpener(el);\n\t\tif (!elOpener) return null;\n\n\t\treturn DOM.storage(elOpener, '#TopPopup');\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\n\t\t */\n\t\tif (!options.id && options.popup) {\n\t\t\telOpener.dataset.topPopupId = btoa(\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\n\t\t\t);\n\n\t\t\toptions.id = elOpener.dataset.topPopupId;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\n\t\tif (popup) {\n\t\t\tpopup.close();\n\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\n\n\t\t\tif (restoreFocus && !isFocused) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpopup.el.focus();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировать элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\t\t}\n\n\t\tel.__TopPopupOpenerProps = props;\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","el","elOpener","options","restoreFocus","popup","isFocused","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","tagName","props","elsChildrens","name","attrName"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-4D_EVI46.amd","../.chunks/popupHint.vue_vue_type_style_index_0_lang-B0BWXhHK.amd","../.chunks/policy.vue_vue_type_style_index_0_lang-DABqSSXw.amd","../.chunks/utils-cAJahDml.amd","../utils/searchers.amd","../.chunks/core-D1KnwO7l.amd","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-CWprVs8d.amd","../.chunks/field-Cvv0SRcJ.amd","../utils/check.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],(function(ve,B,e,y,j,C,he,z,gt,pt,ee,te,V,ye){"use strict";if(typeof e>"u")var e=window.Vue;const Ie={class:"top-competitorSelector"},Se={class:"top-ellipsis1"},ke=e.defineComponent({__name:"competitorSelector",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,n=e.useModel(t,"modelValue"),l=e.computed(()=>{if(o.showSelectAllItem)return{icon:"",title:y.useI18n().Common.Select_all,value:"all",content:""}});return(r,a)=>(e.openBlock(),e.createElementBlock("div",Ie,[e.unref(y.Core).state.isMobile?(e.openBlock(),e.createBlock(j._sfc_main,{key:0},{opener:e.withCtx(()=>[e.createVNode(y._sfc_main$1,{class:"top-competitorSelector_opener",color:"theme",icon:"",icon2:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.items.find(i=>i.value===n.value?.[0])?.content),1)]),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,i=>(e.openBlock(),e.createBlock(j._sfc_main$2,{class:e.normalizeClass({"top-active":n.value?.includes(i.value)}),"data-top-icon":i.icon,title:i.title,onClick:()=>n.value=[i.value]},{default:e.withCtx(()=>[e.createElementVNode("span",Se,e.toDisplayString(i.content),1)]),_:2},1032,["class","data-top-icon","title","onClick"]))),256))]),_:1})):(e.openBlock(),e.createBlock(C._sfc_main$1,{key:1,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=i=>n.value=i),items:t.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:l.value},null,8,["modelValue","items","selectAllItem"]))]))}}),xe=(t,o)=>e.computed(()=>e.toValue(t).filter(r=>r.on>=0||r.id===o).map(r=>({value:r.id,title:r.url+` [${r.id}]`,icon:r.id===e.toValue(o)?"":"",content:r.name}))),T=-1,h=-2,L=-1,Be={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},oe={key:h,name:"--",index:h},ne={key:h,name:"--",regions:[oe],regionByIndex:new Map([[h,oe]])},K={key:h,name:"Autoselect",index:h},J={key:h,name:"Autoselect",regions:[K],regionByIndex:new Map([[h,K]])},le={countryCode:"00",depth:1,device:0,key:L,index:L,lang:"ru",name:"Without region"},Ce=()=>(K.name=y.useI18n().Common.Autoselect,K),we=()=>(Ce(),J.name=y.useI18n().Common.Autoselect,console.log(J),J),Te=()=>(le.name=y.useI18n().Keywords.Without_region,le),Y=(t=!1,o=!1,n=[])=>{let l;return t?l=Me(n):l=ae(n),o&&l.set(h,we()),l.size||l.set(h,ne),l},ae=(t,o=!0,n=[],l=!1)=>{const r=new Map;return t.forEach(a=>{if(!a.enabled||l&&typeof a.key=="number"&&a.key>1)return;const i={...a};i.regionByIndex=new Map,a.regions&&a.regions.forEach(s=>{if(o&&!s.enabled)return;const m={...s};i.regionByIndex.set(m.index,m)}),!i.regionByIndex.size&&n.length,(!a.regions||i.regionByIndex.size||n.length)&&typeof i.key=="number"&&r.set(i.key,i)}),n.forEach(a=>{if(r.has(a))return;const i={key:a,name:Be[a],regions:[],regionByIndex:new Map};r.set(i.key,i)}),r},Me=t=>{const o=ae(t,!1,[0,1],!0);if(o.has(2)){const n=o.get(2);n&&(n.regionByIndex=new Map)}return o.forEach(n=>{if(!n.regionByIndex)return;const l={...Te()};n.regionByIndex.set(l.index,l)}),o},re=(t,o,n=[])=>{const l=Y(t,!1,n);let r;return l.forEach(a=>{if(!(o.searcher_key!==void 0&&o.searcher_key!=a.key)&&a.regions&&(a.regions.forEach(i=>{if(!r&&!(o.key!==void 0&&o.key!=i.key)&&!(o.index!==void 0&&o.index!=i.index)&&!(!t&&(o.lang!==void 0&&o.lang!=i.lang||o.device!==void 0&&o.device!=i.device)))return i.searcher_key=a.key,r=i,!1}),r))return!1}),r},ie=he.useAsyncTopDialog(()=>new Promise((t,o)=>ve(["../.chunks/dialog_regionSelectorRegions-Ba-Eypgv.amd"],t,o))),je=(t,o)=>{const n=y.useI18n(),l=e.ref(o.value.keys().next().value??h),r=e.computed(()=>{const a=new Map;if(o.value.forEach(i=>{let s={value:i.key,title:i.name};t.addSearcherIcon&&(s.icon=z.getSearcherGIcon(i.key)),a.set(i.key,s)}),t.addCompare&&!a.has(h)){const i={value:"",title:"--------------------",disabled:!0};a.set(i.value,i);const s={value:T,title:n.Common.Compare};a.set(s.value,s)}return a});return{searcherKey:l,optionBySearcherKey:r}},Ve=(t,o)=>{const n=y.useI18n(),l=e.ref(h);t.modelValue.length===1&&(l.value=t.modelValue[0]),l.value===h&&(t.forFrequency?l.value=o.value?.regionByIndex.values().next().value?.key??h:l.value=o.value?.regionByIndex.keys().next().value??h);const r=e.computed(()=>{const a=new Map;return o.value.regionByIndex?.forEach(i=>{let s=i.name;if(t.forFrequency){const S={value:i.key,title:s};a.has(i.key)||a.set(i.key,S);return}i.device&&(s+=" ("+n.Common["Device_"+i.device]+")");const m=z.getLangLabel(o.value.key||0,i.lang??"");m&&(s+=" / "+m);const g={value:i.index,title:s,icon:i.device?z.getDeviceGIcon(i.device):void 0};a.set(i.index,g)}),a});return e.watch(r,(a,i)=>{if(t.onlySearcher||l.value!==void 0&&a.get(l.value))return;let s=a.keys().next().value;if(l.value===h||s===h){l.value=s;return}let m=i?.get(l.value)?.title||"",g=-1;for(const[S,d]of a.entries()){const f=d.title;if(typeof f!="string"||typeof S=="string")break;if(f===m){s=S;break}const c=new RegExp(` \\((${n.Common.Device_1}|${n.Common.Device_2})\\)`);let u=m,p=3;f.indexOf(u)===-1&&(u=m.replace(/^[^a-zа-я]/i,"").replace(c,""),p--),f.indexOf(u)===-1&&(u=m.replace(/ \/.*/,""),p--),f.indexOf(u)===-1&&(u=m.replace(/ \/.*/,""),u=u.replace(/^[^a-zа-я]/i,"").replace(c,""),p--),f.indexOf(u)!==-1&&(p<=g||(g=p,s=S))}l.value=s}),{regionIndex:l,optionByRegionIndex:r}},Ae=(t,o,n)=>{const l=e.ref([]),r=()=>{if(t.onlySearcher&&o.value){l.value=Array.from(o.value.keys());return}let i=[];if(t.modelValue.length>1)i=[...t.modelValue];else try{i=JSON.parse(localStorage.getItem("ui:project:regionSelector"+t.projectId+":regionsIndexes"))??[]}catch{}i.length&&(i=i.filter(s=>n.value.has(s))),i.length||(i=Array.from(n.value)),l.value=[...i]},a=()=>{l.value.length?localStorage.setItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes",JSON.stringify(l.value)):localStorage.removeItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes")};return e.watch(l,()=>{a()}),t.addCompare&&r(),{regionsIndexes:l}},Ee=t=>{const o=e.computed(()=>Y(t.forFrequency,t.autoRegion,t.searchers)),n=e.computed(()=>o.value.get(r.searcherKey.value)||ne),l=e.computed(()=>{const d=new Set;return o.value.forEach(f=>{f.regionByIndex.forEach(c=>{c.index!==L&&c.index!==h&&d.add(c.index)})}),d}),r=je(t,o),a=Ve(t,n),i=Ae(t,o,l);e.watch(o,()=>{if(t.onlySearcher?i.regionsIndexes.value=Array.from(o.value.keys()):i.regionsIndexes.value=i.regionsIndexes.value.filter(f=>l.value.has(f)),r.searcherKey.value===T)return;let d=o.value.keys().next().value;o.value.forEach(f=>{if(t.onlySearcher&&f.key===r.searcherKey.value){d=r.searcherKey.value;return}if(a.regionIndex.value&&f.regionByIndex?.has(a.regionIndex.value)&&(d=f.key),!t.onlySearcher){let c;d!==void 0&&(c=o.value.get(d)?.regionByIndex);const u=o.value.get(f.key)?.regionByIndex;c?.has(h)&&!u?.has(h)&&(d=f.key)}}),d!==void 0&&(r.searcherKey.value=d),a.regionIndex.value!==void 0&&!n.value?.regionByIndex?.has(a.regionIndex.value)&&(a.regionIndex.value=n.value?.regions?.keys().next().value)},{immediate:!0});const s=()=>{if(!(r.searcherKey.value===T||r.searcherKey.value===h))return r.searcherKey.value},m=()=>{if(t.onlySearcher||a.regionIndex.value===h)return;let d=a.regionIndex.value;if(t.forFrequency){const f=a.regionIndex.value;d=re(t.forFrequency,{searcher_key:s(),key:f},t.searchers)?.index}return d},g=()=>{const d=s();if(d!==void 0)return o.value.get(d)};return{selectSearcher:r,selectRegion:a,compare:i,searcherByKey:o,allRegionsIndexes:l,getSearcher:g,getRegion:()=>{const d=m();if(d!==void 0)return g()?.regionByIndex?.get(d)}}},be=e.defineComponent({__name:"regionSelector",props:e.mergeModels({projectId:{},searchers:{default:()=>[]},modelValue:{},modelValueSingle:{},addCompare:{type:Boolean},forFrequency:{type:Boolean},autoRegion:{type:Boolean},onlySearcher:{type:Boolean},addChanger:{type:Boolean,default:!0},addSearcherIcon:{type:Boolean,default:!0},addRegionIcon:{type:Boolean,default:!0}},{modelValue:{required:!0},modelModifiers:{},modelValueSingle:{},modelValueSingleModifiers:{}}),emits:["update:modelValue","update:modelValueSingle"],setup(t,{expose:o}){const n=t,l=e.useModel(t,"modelValue"),r=e.useModel(t,"modelValueSingle"),{selectSearcher:a,selectRegion:i,compare:s,searcherByKey:m,allRegionsIndexes:g,getSearcher:S,getRegion:d}=Ee(n),f=()=>{const c=[];m.value.forEach(u=>{u.enabled&&u.regions.forEach(p=>{p.enabled&&c.push(p)})}),ie.open("regions",{regions:c,regionsIndexes:s.regionsIndexes.value,"@update:regionsIndexes":u=>s.regionsIndexes.value=u})};return e.watch([i.regionIndex,a.searcherKey,s.regionsIndexes],()=>{if(a.searcherKey.value===T&&s.regionsIndexes.value.length){if(JSON.stringify(l.value)===JSON.stringify(s.regionsIndexes.value))return;l.value=[...s.regionsIndexes.value]}else n.onlySearcher?(l.value=[a.searcherKey.value],a.searcherKey.value===h&&!n.autoRegion&&(l.value.length=0)):(l.value=[i.regionIndex.value],i.regionIndex.value===h&&!n.autoRegion&&(l.value.length=0));!n.onlySearcher&&!g.value.size&&(a.searcherKey.value=h)}),r.value&&e.watch(r,()=>{r.value&&(l.value=[r.value])},{immediate:!0}),e.watch(l,()=>{if(l.value[0]&&(r.value=l.value[0]),n.onlySearcher){if(!l.value.length||l.value.length===1&&!m.value.has(l.value[0])||l.value.length===1&&l.value[0]===h&&!n.autoRegion){let c=m.value.keys().next().value;c===h&&!n.autoRegion&&(c=void 0,r.value=h),c!==void 0?l.value=[c]:l.value.length=0;return}if(l.value.length>1&&JSON.stringify(l.value)!==JSON.stringify(s.regionsIndexes.value)){l.value=[...s.regionsIndexes.value];return}}else{let c=[...new Set(l.value)],u=m.value.values().next().value?.regionByIndex?.keys().next().value;if(n.forFrequency&&(u=m.value.values().next().value?.regionByIndex?.values().next().value?.key),u===h&&!n.autoRegion&&(u=void 0,r.value=h),!c.length)u!==void 0&&c.push(u);else if(c.length===1){let p=g.value;n.forFrequency&&(p=new Set,m.value.forEach(U=>{U.regionByIndex.forEach(b=>{b.index!==L&&b.index!==h&&p.add(b.key)})})),p.has(c[0])||(c=[],u!==void 0&&c.push(u))}else c=c.filter(p=>g.value.has(p)),!c.length&&u!==void 0&&c.push(u);if(JSON.stringify(l.value)!==JSON.stringify(c)){l.value=c;return}}if(!(l.value.length===1&&l.value[0]===(n.onlySearcher?a.searcherKey.value:i.regionIndex.value)))if(n.onlySearcher){if(l.value.length===1){a.searcherKey.value=l.value[0];return}a.searcherKey.value=T;return}else{if(!l.value.length)return;if(l.value.length===1&&a.searcherKey.value!==T){i.regionIndex.value=l.value[0];let c;for(const u of m.value.values()){for(const p of u.regionByIndex.values())if((n.forFrequency?p.key:p.index)===i.regionIndex.value){c=u.key;break}if(c!==void 0)break}c!==void 0&&(a.searcherKey.value=c)}else a.searcherKey.value=T,s.regionsIndexes.value=[...l.value]}},{immediate:!0}),o({getSearcher:S,getRegion:d}),(c,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-selectorRegion":!0,"top-selectorRegion-onlySearcher":t.onlySearcher})},[e.createVNode(y._sfc_main$10,{options:e.unref(a).optionBySearcherKey.value,modelValue:e.unref(a).searcherKey.value,"onUpdate:modelValue":u[0]||(u[0]=p=>e.unref(a).searcherKey.value=p),name:"searcher_key",addChanger:t.addChanger},null,8,["options","modelValue","addChanger"]),!t.onlySearcher&&e.unref(a).searcherKey.value!==e.unref(T)?(e.openBlock(),e.createBlock(y._sfc_main$10,{key:0,class:"top-select-region",options:e.unref(i).optionByRegionIndex.value,modelValue:e.unref(i).regionIndex.value,"onUpdate:modelValue":u[1]||(u[1]=p=>e.unref(i).regionIndex.value=p),name:t.forFrequency?"region_key":"region_index",addChanger:t.addChanger,"data-top-icon":t.addRegionIcon?"":void 0},null,8,["options","modelValue","name","addChanger","data-top-icon"])):e.createCommentVNode("",!0),t.addCompare&&!t.onlySearcher&&e.unref(a).searcherKey.value===e.unref(T)?(e.openBlock(),e.createBlock(y._sfc_main$1,{key:1,name:"compare",onClick:f,"data-count-compare-regions-indexes":e.unref(s).regionsIndexes.value.length},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$i18n.Common.Selected_regions),1)]),_:1},8,["data-count-compare-regions-indexes"])):e.createCommentVNode("",!0)],2))}}),M={id:0,name:"/",path:"/"};function $e(t){return t?y.useI18n()?.Common.All_folders:"/ ("+y.useI18n()?.Keywords.Root_folder+")"}const Q=(t,o,n=new Map,l={id:"root"},r=0)=>(l.childsIds=[],l.id&&(l.countAllGroupsActive=l.count_groups_active),t[l.id]&&t[l.id].forEach(a=>{a={...a},l.childsIds.push(a.id),a.id===0&&(a.name=$e(o));const i=r>1?"-".repeat(r-1)+" ":"";i&&!a.name.startsWith(i)&&(a.name=i+a.name),n.set(a.id,a),Q(t,o,n,a,r+1),l.childsIds=l.childsIds.concat(a.childsIds),l.id&&a.count_groups_active&&(l.countAllGroupsActive+=a.count_groups_active)}),n),Ne=t=>t.gen("/get/keywords_2/folders/",["id","parent_id","name","path"]).changeParams({orders:["ord_path"],limit:100});function X(t,o,n){const l=Object.keys(t),r=l.map(a=>t[a]);return e.watch(r,(a,i,s)=>{const m={};a.forEach((g,S)=>{if(!Object.is(g,i[S])){const d=l[S];m[d]={old:i[S],new:g}}}),Object.keys(m).length&&o(m,s)},n)}const Pe=e.defineComponent({__name:"folders",props:e.mergeModels({folderId:{},folder:{},folders:{},projectId:{},canSelectAll:{type:Boolean},addChanger:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{}},{folderId:{required:!0},folderIdModifiers:{},folder:{default:M},folderModifiers:{}}),emits:["update:folderId","update:folder"],setup(t){const o=t,n=e.useModel(t,"folderId"),l=e.useModel(t,"folder"),r=o.client&&!o.folders?Ne(o.client):void 0,a=e.ref(null);e.watch(()=>o.projectId,()=>{r?.changeParams({project_id:o.projectId}),r?.setOptions({checkFingerprint:"TopGroupSelectorFolders:"+o.projectId}),a.value?.resetCache()},{immediate:!0});const i=e.computed(()=>Q(o.folders??{root:[M]},o.canSelectAll));return X({modelFolder:l,modelFolderId:n},async s=>{if(n.value===l.value.id)return;if(s.modelFolder&&!s.modelFolderId){n.value=l.value.id;return}let m=i.value.get(o.folderId);m||(m=M),l.value=m,n.value=m.id},{immediate:!0}),(s,m)=>(e.openBlock(),e.createBlock(C._sfc_main,{class:"top-groupSelector_folder",modelValue:l.value,"onUpdate:modelValue":m[0]||(m[0]=g=>l.value=g),items:t.folders?[...i.value.values()]:void 0,"search-type":"inline",icon:t.addIcon?"":void 0,api:t.folders?void 0:e.unref(r),apiSetSearchParams:(...g)=>e.unref(C.apiSetSearchParamsFilter)(...g,"name"),addChanger:t.addChanger,useCache:""},null,8,["modelValue","items","icon","api","apiSetSearchParams","addChanger"]))}}),D={id:-1,name:"--",folder_id:M.id,folder_path:M.path},R={id:C.ITEM_ID_ALL,name:"All groups",folder_id:M.id,folder_path:M.path},A=()=>(R.name=y.useI18n()?.Common.All_groups,R),de=()=>(R.name=y.useI18n()?.Keywords.Choose_group,R),Ge=(t,o,n)=>(t=[...t],o!==void 0&&(t=t.filter(l=>l.on==Number(o))),n&&n.id&&n.childsIds&&(t=t.filter(l=>l.folder_id===n.id||n.childsIds.includes(l.folder_id))),t),ce=t=>t.gen("/get/keywords_2/groups/",["id","name","folder_id","folder_path"]).changeParams({folder_id_depth:!0,limit:100}),Le=t=>t.gen("/add/keywords_2/groups/"),Ke={class:"top-groupSelector_groupItem"},De={key:0,class:"top-comment"},Re={key:1,class:"top-groupSelector_groupItemFolderPath"},Oe=e.defineComponent({__name:"groups",props:e.mergeModels({groupId:{},group:{},projectId:{},folder:{},groups:{},on:{type:Boolean,default:void 0},canAdd:{type:[String,Boolean]},canSelectAll:{type:[Boolean,String]},autoselect:{default:"first"},addChanger:{type:Boolean,default:!0},showPath:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{}},{groupId:{required:!0},groupIdModifiers:{},group:{required:!0},groupModifiers:{}}),emits:e.mergeModels(["addGroup"],["update:groupId","update:group"]),setup(t,{emit:o}){const n=t,l=o,r=e.useModel(t,"groupId"),a=e.useModel(t,"group"),i=n.client&&!n.groups?ce(n.client):void 0,s=n.client?Le(n.client):void 0,m=e.ref(null),g=e.ref(void 0),S=ee.genFieldFilter("folder_id","EQUALS",[n.folder?.id??0]);i?.changeParams({project_id:n.projectId,folder_id_depth:!0,filters:[S]}),n.on!==void 0&&i?.params.filters?.push(ee.genFieldFilter("on","EQUALS",[Number(n.on)]));const d=c=>{a.value=c,r.value=c.id};X({projectId:()=>n.projectId,folderId:()=>n.folder?.id,canSelectAll:()=>n.canSelectAll},c=>{if(c.projectId&&(i?.changeParams({project_id:n.projectId}),i?.setOptions({checkFingerprint:"TopGroupSelectorGroups:"+n.projectId})),c.folderId&&(S.values=[n.folder?.id??0],n.groups&&(g.value=Ge(n.groups,n.on,n.folder))),m.value?.resetCache(),(c.folderId?.old!==void 0||c.canSelectAll?.old!==void 0)&&r.value!==C.ITEM_ID_NEW){let u;n.autoselect==="first"&&(u=g.value?.[0],n.canSelectAll&&(u=e.reactive(A()))),(n.autoselect==="placeholder"||!u)&&(u=de()),d(u)}},{immediate:!0}),X({modelGroup:a,modelGroupId:r},async c=>{if(r.value!==a.value.id){if(c.modelGroup&&!c.modelGroupId){r.value=a.value.id;return}if(!(n.canAdd&&r.value===C.ITEM_ID_NEW)){if(n.groups){let u=g.value?.find(p=>p.id===r.value);if(!u&&n.canSelectAll&&(u=A()),u)d(u);else{const p=g.value?.[0];p&&!r.value?d(p):d(D)}}if(n.client&&!n.groups&&(r.value||r.value===C.ITEM_ID_ALL&&!n.canSelectAll)){const u=ce(n.client).changeParams({project_id:n.projectId,id:r.value,filters:[S]});u?.setOptions({checkFingerprint:"TopGroupSelectorFindGroup:"+n.projectId});const p=await u.call();if(!p.errors?.length&&!p.result)return;!p.errors&&p.result[0]?d(p.result[0]):d(D)}}}},{immediate:!0});const f=async c=>{if(n.canAdd!=="api"||!s)return;const u=a.value,p=await s.changeParams({project_id:n.projectId,names:[c.name],to_id:n.folder?.id??M.id,to_type:"in_folder_last"}).call();p.result?(d(p.result),l("addGroup",p.result)):d(u),m.value?.resetCache(!0)};return(c,u)=>(e.openBlock(),e.createBlock(C._sfc_main,{ref_key:"refSelector",ref:m,class:"top-groupSelector_group",modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=p=>a.value=p),items:g.value??t.groups,searchType:"inline",icon:t.addIcon?"":void 0,api:t.groups?void 0:e.unref(i),apiSetSearchParams:(...p)=>e.unref(C.apiSetSearchParamsFilter)(...p,"name"),appendSearchToResult:!!t.canAdd,useAllItem:t.canSelectAll?e.unref(A)().name:!1,addChanger:t.addChanger,useCache:"",onAppendItem:f},{item:e.withCtx(({item:p})=>[e.createElementVNode("div",Ke,[p.id===e.unref(C.ITEM_ID_NEW)?(e.openBlock(),e.createElementBlock("div",De,e.toDisplayString(c.$i18n.Common.Add)+": ",1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(p.name),1),p.folder_path&&t.showPath?(e.openBlock(),e.createElementBlock("span",Re,e.toDisplayString(p.folder_path),1)):e.createCommentVNode("",!0)])]),_:1},8,["modelValue","items","icon","api","apiSetSearchParams","appendSearchToResult","useAllItem","addChanger"]))}}),Fe={class:"top-groupSelector"},qe=e.defineComponent({__name:"groupSelector",props:e.mergeModels({folderId:{},folder:{},groupId:{},group:{},projectId:{},folders:{},groups:{},on:{type:Boolean,default:void 0},canSelectAllGroups:{type:Boolean},canAddGroup:{},autoselect:{default:"first"},addChanger:{type:Boolean,default:!0},showFolders:{type:Boolean,default:!0},showGroups:{type:Boolean,default:!0},addIcon:{type:Boolean,default:!0},client:{}},{folderId:{required:!0},folderIdModifiers:{},folder:{},folderModifiers:{},groupId:{required:!0},groupIdModifiers:{},group:{default:D},groupModifiers:{}}),emits:e.mergeModels(["update:groups"],["update:folderId","update:folder","update:groupId","update:group"]),setup(t,{emit:o}){const n=t,l=e.useModel(t,"folderId"),r=e.useModel(t,"folder"),a=e.useModel(t,"groupId"),i=e.useModel(t,"group"),s=o,m=Q(n.folders??{root:[M]},n.canSelectAllGroups);r.value=m.get(l.value);let g=n.groups?.find(d=>d.id===a.value);a.value||(g=n.groups?.[0]),n.canSelectAllGroups&&!g&&(g=A()),n.canSelectAllGroups&&!g&&(g=A()),(n.autoselect==="placeholder"||!g)&&(g=de()),g??=D,i.value=g;const S=d=>{let f;n.groups&&d&&(f=[...n.groups,d]),s("update:groups",f)};return(d,f)=>(e.openBlock(),e.createElementBlock("div",Fe,[t.showFolders?(e.openBlock(),e.createBlock(Pe,{key:0,folderId:l.value,"onUpdate:folderId":f[0]||(f[0]=c=>l.value=c),folder:r.value,"onUpdate:folder":f[1]||(f[1]=c=>r.value=c),projectId:t.projectId,folders:t.folders,canSelectAll:t.canSelectAllGroups,addChanger:t.addChanger,addIcon:t.addIcon,client:t.client},null,8,["folderId","folder","projectId","folders","canSelectAll","addChanger","addIcon","client"])):e.createCommentVNode("",!0),t.showGroups?(e.openBlock(),e.createBlock(Oe,{key:1,groupId:a.value,"onUpdate:groupId":f[2]||(f[2]=c=>a.value=c),group:i.value,"onUpdate:group":f[3]||(f[3]=c=>i.value=c),projectId:t.projectId,folder:r.value,groups:t.groups,on:t.on,canAdd:t.canAddGroup,canSelectAll:t.canSelectAllGroups,autoselect:t.autoselect,addChanger:t.addChanger,showPath:t.showFolders&&!!t.folders?.[0],addIcon:t.addIcon,client:t.client,onAddGroup:S},null,8,["groupId","group","projectId","folder","groups","on","canAdd","canSelectAll","autoselect","addChanger","showPath","addIcon","client"])):e.createCommentVNode("",!0)]))}}),Ue={class:"top-projectSelectorSubmenu_item"},We=["href","title","data-top-icon","data-right"],ze={class:"top-projectSelectorSubmenu_item"},Je=["href"],Ye=e.defineComponent({__name:"submenu",props:{id:{},right:{},url:{}},setup(t){const o=t,n=y.useI18n();let l=[{href:`/project/keywords/${o.id}/`,title:n.Common.Menu_phrases,icon:"",right:"2"},{href:`/project/dynamics/${o.id}/`,title:n.Common.Menu_dynamics,icon:"",right:"1"},{href:`/project/snapshots/${o.id}/`,title:n.Common.Menu_snapshots,icon:"",right:"1"},{href:`/project/competitors/${o.id}/`,title:n.Common.Menu_competitors,icon:"",right:"1"},{href:`/project/analytics/${o.id}/`,title:n.Common.Menu_analytics,icon:"",right:"5"},{href:`/project/broker/${o.id}/`,title:n.Common.Menu_broker,icon:"",right:"6"},{href:`/project/audit/${o.id}/sitemap/`,title:n.Audit.Sitemap_gen,icon:"",right:"8"},{href:`/project/audit/${o.id}/audit/`,title:n.Common.Menu_audit,icon:"",right:"8"},{href:`//project/audit/${o.id}/indexing/`,title:n.Audit.Indexing,icon:"",right:"8"},{href:`/project/audit/${o.id}/watcher/`,title:n.Audit.Watcher,icon:"",right:"9"},{href:`/project/settings/${o.id}/`,title:n.Common.Menu_settings,icon:"",right:"2"}];const r=e.computed(()=>o.right.includes("0")?l.filter(a=>o.right[a.right]==="1"):l);return(a,i)=>{const s=e.resolveComponent("TopButton");return e.openBlock(),e.createBlock(e.unref(j._sfc_main),{class:"top-projectSelectorSubmenu",notch:!1,pos:"2"},{opener:e.withCtx(()=>[e.createVNode(s,{class:"top-projectSelectorSubmenu_opener","data-top-icon":"",color:"theme"})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,m=>(e.openBlock(),e.createElementBlock("li",Ue,[e.createElementVNode("a",{href:m.href,title:m.title,"data-top-icon":m.icon,"data-right":m.right},null,8,We)]))),256)),e.createElementVNode("li",ze,[e.createElementVNode("a",{href:t.url,"data-top-icon":"",target:"_blank"},null,8,Je)])]),_:1})}}}),Z=t=>({id:null,name:t,listItemProps:{type:"title"}}),Qe=t=>{const o=y.useI18n();return[{filter:l=>l.right.startsWith("1")&&l.on>0,title:Z(o.Projects.Scheduled_update)},{filter:l=>l.right.startsWith("1")&&l.on===0,title:Z(o.Projects.Manual_update)},{filter:l=>l.right.startsWith("0")&&l.on>=0,title:Z(o.Projects.Guest_projects)}].flatMap(({filter:l,title:r})=>{const a=t.filter(l);return a.length?[r,...a]:[]})},Xe=t=>t.map(o=>({...o,listItemProps:{class:"top-projectSelector_item",href:ue(Number(o.id)),title:o.name}})),H=(t,o)=>{if(!t)return;o&&(t=t.filter(l=>l.id!==o));const n=Xe(t);return Qe(n)},Ze=t=>{if(!t)return"";let o=t;return o=o.replace(/historyView=[^&]*/,""),o=o.replace(/competitorsIds=[^&]*/,""),o=o.replace(/searchersKeys=[^&]*/,""),o=o.replace(/regionIndex=[^&]*/,""),o=o.replace(/regionsIndexes=[^&]*/,""),o=o.replace(/folderId=[^&]*/,""),o=o.replace(/groupId=[^&]*/,""),o=o.replace(/tags=[^&]*/,""),window.mo?.getHash&&!window.mo.getHash("dataSort").toString().includes("0000-00-00")&&(o=o.replace(/dataSort=[^&]*/,"")),o=o.replace(/%22historyView%22:[^,]*,/,""),o=o.replace(/%22competitorsIds%22:\[[^\]]*\],/,""),o=o.replace(/%22searchersKeys%22:\[[^\]]*\],/,""),o=o.replace(/%22regionIndex%22:[^,]*,/,""),o=o.replace(/%22regionsIndexes%22:\[[^\]]*\],/,""),o=o.replace(/%22folderId%22:[^,]*,/,""),o=o.replace(/%22groupId%22:[^,]*,/,""),o=o.replace(/%22tagsIds%22:\[[^\]]*\],/,""),/%22dataSort%22:\{[^\}]*0000-00-00[^\}]*\}/.test(o)||(o=o.replace(/%22dataSort%22:\{[^\}]*\},/,"")),o},ue=t=>{const o=location.pathname.split("/");let n="project/dynamics/",l="";o[1]=="project"&&(n=o[1]+"/"+o[2]+"/"),["watcher","indexing","sitemap","audit","direct","adwords"].includes(o[4])&&(l=o[4]+"/");let r="/"+n+t+"/"+l;const a=Ze(location.hash);return r+=a,r},se=t=>{let o=t.startsWith("http")?t:"http://"+t;return o=o.replace(/"/g,"%22"),o},He=(t,o)=>{const n=t.gen("/get/projects_2/projects/",["id","user_id","name","url","on","right"]);return n.options.onApiLoaded=(l,r,a)=>{l.result=H(l.result,o),a?.(l,r)},n},_e=t=>t.gen("/add/projects_2/projects/"),et={class:"top-projectSelector_itemText"},tt={class:"top-projectSelector_itemName"},ot={class:"top-projectSelector_itemId"},nt={key:1},lt={key:0,class:"top-comment"},at=e.defineComponent({__name:"projectSelector",props:e.mergeModels({project:{},projects:{},userId:{default:window.mo?.user?.id},icon:{},modificator:{default:"projectSelector"},excludeProjectId:{},placeholder:{},openerText:{},buttonProps:{},openerShortcut:{},client:{}},{project:{default:{id:C.ITEM_ID_NEW,name:""}},projectModifiers:{}}),emits:["update:project"],setup(t){const o=y.useI18n(),n=t,l=e.computed(()=>n.placeholder??o.Projects.Select_project),r=e.computed(()=>n.openerText??o.Common.Projects),a=e.useModel(t,"project");a.value.name||(a.value.name=r.value);const i=n.client?He(n.client,n.excludeProjectId):void 0,s=n.client?_e(n.client):void 0,m=e.ref(H(n.projects,n.excludeProjectId)),g=e.ref(null);e.watch([()=>n.projects,()=>n.excludeProjectId],()=>{m.value=H(n.projects,n.excludeProjectId)});const S=async d=>{if(!s)return;const f=await s.changeParams({url:d.name,name:d.name}).call();if(!f.errors)if(n.projects){const c={id:Number(f.result),url:d.name,name:d.name,user_id:n.userId,on:0,right:"11111111111111111111",listItemProps:{class:"top-projectSelector_item",href:ue(Number(f.result))}};m.value?.unshift(c)}else g.value?.resetCache(!0)};return e.onMounted(()=>{a.value.name||(a.value.name=r.value)}),(d,f)=>{const c=e.resolveComponent("TopButton");return e.openBlock(),e.createBlock(C._sfc_main,{ref_key:"refSelector",ref:g,class:"top-projectSelector",modelValue:a.value,"onUpdate:modelValue":f[1]||(f[1]=u=>a.value=u),items:m.value,title:d.$i18n.Projects.Search_projects,icon:t.icon,modificator:t.modificator,placeholder:l.value,api:t.projects?void 0:e.unref(i),apiSetSearchParams:t.projects?void 0:(...u)=>e.unref(C.apiSetSearchParamsFilter)(...u,"name"),useCache:"",appendSearchToResult:"",appendSearchToResultCond:e.unref(te.validUrl),buttonProps:t.buttonProps,openerShortcut:t.openerShortcut,onAppendItem:S},{widgetAction:e.withCtx(()=>[d.$core.state.isMobile?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(c,{key:0,class:"top-projectSelector_cancel closer",color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.$i18n.Common.Cancel),1)]),_:1}))]),item:e.withCtx(({item:u})=>[u.id?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",et,[e.createElementVNode("span",tt,e.toDisplayString(u.name),1),e.createElementVNode("span",ot," id "+e.toDisplayString(u.id),1)]),e.createVNode(c,{class:"top-projectSelector_itemLink",href:e.unref(se)(u.url),"data-top-icon":"",color:"theme",target:"_blank",onClick:f[0]||(f[0]=e.withModifiers(()=>{},["stop"]))},null,8,["href"]),e.createVNode(Ye,{id:u.id,right:u.right??void 0,url:e.unref(se)(u.url)},null,8,["id","right","url"])],64)):(e.openBlock(),e.createElementBlock("div",nt,[e.unref(te.validUrl)(u.name)?(e.openBlock(),e.createElementBlock("div",lt,e.toDisplayString(d.$i18n.Projects.Add_project)+": ",1)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(u.name),1)]))]),_:1},8,["modelValue","items","title","icon","modificator","placeholder","api","apiSetSearchParams","appendSearchToResultCond","buttonProps","openerShortcut"])}}}),me=t=>"-"+t,E=t=>t[0]==="-"?t.substring(1):t,O=(t,o)=>{t=E(t);const n=o.find(l=>l.id===t);if(n)return n},rt=(t,o,n)=>{o||(o={id:t.id}),o.id=t.id,o.pos??="3",o.notch??=!0,o.posBy??="fixed";const l=ye.TopPopupWorker.genElPopupOpener("div",o);return l.classList.add("top-tagSelector"),t.useTopButton&&l.classList.add("top-tagSelector-useTopButton","top-button","top-color_theme","top-as-selector"),t.useTopButton||l.classList.add("top-tagSelector-custom"),t.mode==="filter"&&l.classList.add("top-tagSelector-filter"),t.mode==="setter"&&!t.filters&&l.classList.add("top-tagSelector-setter_single"),t.mode==="setter"&&t.filters&&l.classList.add("top-tagSelector-setter_several"),l.onclick=r=>{r.preventDefault(),r.stopPropagation(),l.onclick=null;const a=e.ref(t.modelValue),i={model:a,mode:t.mode,targetId:t.targetId,filters:t.filters,payload:t.payload};V.storage(l,"topTagSelectorTarget",i),delete l.dataset.topPopupDisabled,e.isRef(t.modelValue)||e.watch(a,()=>{t.modelValue=a.value,F(l,t,n)}),l.click()},e.isRef(t.modelValue)?e.watch(t.modelValue,()=>F(l,t,n)):V.storage(l,"topTagSelectorRender",r=>{t.modelValue=r;const a=V.storage(l,"topTagSelectorTarget");a&&(a.model.value=r),F(l,t,n)}),F(l,t,n),l},it=(t,o)=>{V.storage(t,"topTagSelectorRender")?.(o)},F=(t,o,n)=>{const l=e.unref(o.modelValue);if(t.classList.toggle("top-tagSelector-selectedOne",!l.length||l.length===1),t.classList.toggle("top-tagSelector-toTwoLine",l.length>5),o.mode==="setter"&&o.filters){t.innerHTML=`<div>${n}</div>`;return}if(t.innerHTML="",!l.length&&o.mode==="filter"){const r=fe({id:"all",colorId:"",name:y.useI18n().Common?.All_tags??"",state:""});t.append(r)}l.forEach(r=>{const a=fe({id:E(r),colorId:O(r,o.tags)?.color_id??"",name:O(r,o.tags)?.name??"",state:E(r)===r?"selected":"excluded"});t.append(a)})},fe=t=>{const o=document.createElement("div");return o.classList.add("top-tagSelector_tagIcon"),o.classList.toggle("top-tagSelector-active",!!t.state),o.classList.toggle("top-tagSelector-excluded",t.state==="excluded"),o.dataset.tag_id=t.id,o.dataset.tag_color_id=t.colorId,o.title=t.name,o},dt=[{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"}],ct=["data-tag_id","data-tag_color_id","title"],q=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!t.state,"top-tagSelector-excluded":t.state==="excluded"}),"data-tag_id":t.id,"data-tag_color_id":t.colorId,title:t.name},null,10,ct))}}),ut=["contenteditable","onKeydown"],ge=e.defineComponent({__name:"tagPopupListItem",props:e.mergeModels({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:e.mergeModels(["update:name","unselect","exclude","select"],["update:name"]),setup(t,{emit:o}){const n=t,l=o,r=e.useModel(t,"name"),a=e.ref(null),i=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:s.value,onpaste:f=>f.preventDefault()}:{}),s=e.ref(!1),m=async()=>{s.value=!0,await e.nextTick(),a.value?.focus()},g=()=>{const f=a.value?.innerText;if(!f)return S();a.value&&(a.value.innerText=f),s.value=!1,l("update:name",f)},S=async()=>{a.value&&(a.value.innerText=n.name),s.value=!1},d=f=>{if(s.value||n.disabled)return;let c="selected";n.canExclude&&(f.ctrlKey||f.metaKey)&&(c="excluded"),n.state==c&&(c=""),c===""&&l("unselect"),c==="selected"&&l("select"),c==="excluded"&&l("exclude")};return(f,c)=>(e.openBlock(),e.createBlock(j._sfc_main$2,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":t.disabled,"top-tagSelector_tagListItem-canExclude":t.canExclude,"top-tagSelector-active":!!t.state,"top-tagSelector-excluded":t.state==="excluded"}),onClick:e.withModifiers(d,["stop"])},{default:e.withCtx(()=>[e.createVNode(q,{id:t.id,name:r.value,colorId:t.colorId,state:t.state},null,8,["id","name","colorId","state"]),e.createElementVNode("span",e.mergeProps({ref_key:"elName",ref:a,class:"top-tagSelector_tagListItemName",contenteditable:s.value?"plaintext-only":!1},i.value,{onKeydown:[e.withKeys(e.withModifiers(g,["stop"]),["enter"]),e.withKeys(e.withModifiers(S,["stop"]),["esc"])]}),e.toDisplayString(r.value),17,ut),t.editable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[s.value?(e.openBlock(),e.createElementBlock("span",{key:1,"data-top-icon":"",class:"top-tagSelector_edit",onClick:e.withModifiers(g,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:m}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),st={key:1},pe=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{},styling:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,n=e.useModel(t,"modelValue"),l=o.useTopButton?y._sfc_main$1:"div",r=o.useTopButton?"html":"default",a={model:n,mode:o.mode,targetId:o.targetId,filters:o.filters,payload:o.payload};return(i,s)=>{const m=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(j._sfc_main$1,{id:t.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(l)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-useTopButton":o.useTopButton,"top-tagSelector-custom":!o.useTopButton,"top-as-selector":o.useTopButton,"top-tagSelector-filter":o.mode==="filter","top-tagSelector-setter_single":o.mode==="setter"&&!t.filters,"top-tagSelector-setter_several":o.mode==="setter"&&t.filters,"top-tagSelector-selectedOne":!n.value.length||n.value.length===1,"top-tagSelector-toTwoLine":n.value.length>5},color:"theme",styling:t.styling},i.$attrs),{[e.unref(r)]:e.withCtx(()=>[!n.value.length&&t.mode==="filter"?(e.openBlock(),e.createBlock(q,{key:0,id:"all",colorId:"",name:i.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),t.mode==="setter"&&t.filters?(e.openBlock(),e.createElementBlock("div",st,[e.renderSlot(i.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(n.value,g=>(e.openBlock(),e.createBlock(q,{id:e.unref(E)(g),colorId:e.unref(O)(g,t.tags)?.color_id??"",name:e.unref(O)(g,t.tags)?.name??"",state:e.unref(E)(g)===g?"selected":"excluded"},null,8,["id","colorId","name","state"]))),256))]),_:2},1040,["class","styling"])),[[m,a,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),mt=e.defineComponent({__name:"tagSelector",props:e.mergeModels({modelValue:{},tags:{},tagsEditable:{type:Boolean},tagsMax:{default:10},id:{},singleMode:{type:Boolean},requiredForSetter:{type:Boolean,default:!0},maxTagsForSetter:{},emitDelay:{default:500},useTopButton:{type:Boolean,default:!0},styling:{}},{modelValue:{required:!0},modelModifiers:{},tags:{default:e.reactive(dt)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(t,{emit:o}){const n=y.useI18n(),l=t,r=e.useModel(t,"modelValue"),a=e.useModel(t,"tags"),i=o,s=y.debounce((v,I)=>{i(v,I)},l.emitDelay);l.singleMode&&!r.value.length&&(r.value=[a.value[0].id]);const m=l.id??"top-popup-id-"+Math.random(),g=e.ref("add"),S=()=>{const v=" "+n.Common.Tags?.toLowerCase(),I=new Map;return I.set("add",{value:"add",title:n.Common.Add+v}),I.set("replace",{value:"replace",title:n.Common.Replace+v}),I.set("delete",{value:"delete",title:n.Common.Delete+v}),I};let d=e.shallowRef({model:r,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(r,()=>{s("selector",r.value)});const f=e.computed(()=>{if(d.value.mode==="setter"&&l.maxTagsForSetter&&!d.value.filters)return d.value.model.value.length>=l.maxTagsForSetter}),c=v=>{if(v!=="all"){if(d.value.model.value.includes(v))return"selected";if(d.value.model.value.includes(me(v)))return"excluded"}return v==="all"&&!d.value.model.value.length?"selected":""},u=(v,I)=>{const k=me(v);let x=d.value.model.value.filter(w=>w!==v&&w!==k);I==="select"&&x.push(v),I==="exclude"&&x.push(k),d.value.mode==="setter"&&d.value.targetId!==void 0&&l.requiredForSetter&&(x.length||x.push("1"),x.length===2&&d.value.model.value.length===1&&d.value.model.value[0]==="1"&&(x=x.filter(w=>w!=="1"))),l.singleMode&&!d.value.filters&&(x.length||(x=d.value.model.value),x.length>1&&(x=[x[x.length-1]])),x.sort((w,W)=>{if(!l.tags)return 0;const N=l.tags.findIndex(G=>G.id===w),P=l.tags.findIndex(G=>G.id===W);return N-P}),d.value.model.value=x,d.value.mode==="setter"&&d.value.targetId!==void 0&&s("setter",{tagsIds:x,targetId:d.value.targetId,payload:d.value.payload})},p=e.computed(()=>{let v="top-tagSelector_popup";return d.value.mode==="filter"&&(v+=" top-tagSelector_popup-filter"),d.value.mode==="setter"&&(v+=" top-tagSelector_popup-setter"),v}),U=()=>{const v=prompt("","New tag");if(!v||v==="New tag")return;const I=a.value.length+1;a.value.push({id:String(I),name:v,color_id:String((I-1)%10+1)}),i("tagsChanged",a.value)},b=v=>{if(d.value=V.storage(v.elPopupOpener,"topTagSelectorTarget"),!d.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(d.value.filters&&(g.value="add",d.value.model.value=[]),!y.Core.$?.ui.sortable){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}!y.Core.state.isMobile&&!y.Core.state.isMobileUA&&a.value&&$(v.elPopup).sortable({items:'li:has([data-tag_id]:not([data-tag_id="all"]))',cancel:'[contenteditable="plaintext-only"], [contenteditable="true"]',distance:10,stop:function(I,k){if(!a.value)return;const x=$(k.item).parent().find("[data-tag_id]"),w=[];x.each((W,N)=>{if(!a.value)return;const P=$(N).attr("data-tag_id");w.push(P)}),a.value.sort((W,N)=>{const P=w.findIndex(_=>_===W.id),G=w.findIndex(_=>_===N.id);return P-G}),s("tagsChanged",a.value)}})},ft=v=>{y.Core.$?.ui.sortable&&$(v.elPopup).data("ui-sortable")&&$(v.elPopup).sortable("destroy")};return(v,I)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(pe,{modelValue:r.value,"onUpdate:modelValue":I[0]||(I[0]=k=>r.value=k),id:e.unref(m),tags:a.value,styling:t.styling,mode:"filter",useTopButton:t.useTopButton},null,8,["modelValue","id","tags","styling","useTopButton"]),e.createVNode(j._sfc_main,{id:e.unref(m),class:e.normalizeClass(p.value),onOpen:I[4]||(I[4]=k=>b(k)),onClose:I[5]||(I[5]=k=>ft(k)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(d).mode==="filter"&&!t.singleMode?(e.openBlock(),e.createBlock(ge,{key:0,id:"all",colorId:"",name:v.$i18n.Common.All_tags??"",state:e.unref(d).model.value.length?"":"selected",onSelect:I[3]||(I[3]=k=>e.unref(d).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,k=>(e.openBlock(),e.createBlock(ge,{key:k.id,id:k.id,colorId:k.color_id,name:k.name,state:c(k.id),canExclude:e.unref(d).mode==="filter"&&!t.singleMode,editable:t.tagsEditable,disabled:f.value&&c(k.id)==="",onUnselect:x=>u(k.id,"unselect"),onSelect:x=>u(k.id,"select"),onExclude:x=>u(k.id,"exclude"),"onUpdate:name":x=>{k.name=x,e.unref(s)("tagsChanged",a.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),t.tagsEditable&&a.value.length<t.tagsMax&&a.value.length<20?(e.openBlock(),e.createBlock(j._sfc_main$2,{key:1,"data-top-icon":"",onClick:e.withModifiers(U,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.$i18n.Common.Add),1)]),_:1})):e.createCommentVNode("",!0)]),_:2},[e.unref(d).mode==="setter"&&e.unref(d).filters?{name:"header",fn:e.withCtx(()=>[e.createVNode(y._sfc_main$10,{modelValue:g.value,"onUpdate:modelValue":I[1]||(I[1]=k=>g.value=k),options:S()},null,8,["modelValue","options"])]),key:"0"}:void 0,e.unref(d).mode==="setter"&&e.unref(d).filters?{name:"footer",fn:e.withCtx(()=>[e.createVNode(y._sfc_main$1,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.$i18n.Common.Cancel2),1)]),_:1}),e.createVNode(y._sfc_main$1,{onClick:I[2]||(I[2]=k=>e.unref(s)("setter",{tagsIds:e.unref(d).model.value,filters:e.unref(d).filters,filtersAction:g.value,payload:e.unref(d).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.value==="add"?v.$i18n.Common.Add:"")+" "+e.toDisplayString(g.value==="replace"?v.$i18n.Common.Replace:"")+" "+e.toDisplayString(g.value==="delete"?v.$i18n.Common.Delete:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}});B.TopCompetitorSelector=ke,B.TopGroupSelector=qe,B.TopProjectSelector=at,B.TopRegionSelector=be,B.TopTagSelector=mt,B.TopTagSelectorPopupOpener=pe,B.TopTagSelectorTagIcon=q,B.dialogRegionSelector=ie,B.findRegion=re,B.genElTopTagSelectorPopupOpener=rt,B.genSearcherByKey=Y,B.renderElTopTagSelectorPopupOpener=it,B.useItemsFromCompetitors=xe,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})}));
1
+ define(["require","exports","vue","../.chunks/forms-B_v2vU59.amd","../.chunks/popupHint.vue_vue_type_style_index_0_lang-CdIajfDS.amd","../.chunks/policy.vue_vue_type_style_index_0_lang-CO-f4TwZ.amd","../.chunks/utils-DNzj9OOY.amd","../utils/searchers.amd","../.chunks/core-DJS4o9Vt.amd","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-B3hYoW1m.amd","../.chunks/field-Cvv0SRcJ.amd","../utils/check.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],(function(ve,C,e,y,j,w,he,z,gt,pt,_,ee,A,ye){"use strict";if(typeof e>"u")var e=window.Vue;const Ie={class:"top-competitorSelector"},Se={class:"top-ellipsis1"},ke=e.defineComponent({__name:"competitorSelector",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,n=e.useModel(t,"modelValue"),l=e.computed(()=>{if(o.showSelectAllItem)return{icon:"",title:y.useI18n().Common.Select_all,value:"all",content:""}});return(r,a)=>(e.openBlock(),e.createElementBlock("div",Ie,[e.unref(y.Core).state.isMobile?(e.openBlock(),e.createBlock(j._sfc_main,{key:0},{opener:e.withCtx(()=>[e.createVNode(y._sfc_main$1,{class:"top-competitorSelector_opener",color:"theme",icon:"",icon2:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.items.find(i=>i.value===n.value?.[0])?.content),1)]),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,i=>(e.openBlock(),e.createBlock(j._sfc_main$2,{class:e.normalizeClass({"top-active":n.value?.includes(i.value)}),"data-top-icon":i.icon,title:i.title,onClick:()=>n.value=[i.value]},{default:e.withCtx(()=>[e.createElementVNode("span",Se,e.toDisplayString(i.content),1)]),_:2},1032,["class","data-top-icon","title","onClick"]))),256))]),_:1})):(e.openBlock(),e.createBlock(w._sfc_main$1,{key:1,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=i=>n.value=i),items:t.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:l.value},null,8,["modelValue","items","selectAllItem"]))]))}}),xe=(t,o)=>e.computed(()=>e.toValue(t).filter(r=>r.on>=0||r.id===o).map(r=>({value:r.id,title:r.url+` [${r.id}]`,icon:r.id===e.toValue(o)?"":"",content:r.name}))),M=-1,h=-2,K=-1,Be={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},te={key:h,name:"--",index:h},oe={key:h,name:"--",regions:[te],regionByIndex:new Map([[h,te]])},D={key:h,name:"Autoselect",index:h},J={key:h,name:"Autoselect",regions:[D],regionByIndex:new Map([[h,D]])},ne={countryCode:"00",depth:1,device:0,key:K,index:K,lang:"ru",name:"Without region"},Ce=()=>(D.name=y.useI18n().Common.Autoselect,D),we=()=>(Ce(),J.name=y.useI18n().Common.Autoselect,console.log(J),J),Te=()=>(ne.name=y.useI18n().Keywords.Without_region,ne),Y=(t=!1,o=!1,n=[])=>{let l;return t?l=Me(n):l=le(n),o&&l.set(h,we()),l.size||l.set(h,oe),l},le=(t,o=!0,n=[],l=!1)=>{const r=new Map;return t.forEach(a=>{if(!a.enabled||l&&typeof a.key=="number"&&a.key>1)return;const i={...a};i.regionByIndex=new Map,a.regions&&a.regions.forEach(s=>{if(o&&!s.enabled)return;const m={...s};i.regionByIndex.set(m.index,m)}),!i.regionByIndex.size&&n.length,(!a.regions||i.regionByIndex.size||n.length)&&typeof i.key=="number"&&r.set(i.key,i)}),n.forEach(a=>{if(r.has(a))return;const i={key:a,name:Be[a],regions:[],regionByIndex:new Map};r.set(i.key,i)}),r},Me=t=>{const o=le(t,!1,[0,1],!0);if(o.has(2)){const n=o.get(2);n&&(n.regionByIndex=new Map)}return o.forEach(n=>{if(!n.regionByIndex)return;const l={...Te()};n.regionByIndex.set(l.index,l)}),o},ae=(t,o,n=[])=>{const l=Y(t,!1,n);let r;return l.forEach(a=>{if(!(o.searcher_key!==void 0&&o.searcher_key!=a.key)&&a.regions&&(a.regions.forEach(i=>{if(!r&&!(o.key!==void 0&&o.key!=i.key)&&!(o.index!==void 0&&o.index!=i.index)&&!(!t&&(o.lang!==void 0&&o.lang!=i.lang||o.device!==void 0&&o.device!=i.device)))return i.searcher_key=a.key,r=i,!1}),r))return!1}),r},re=he.useAsyncTopDialog(()=>new Promise((t,o)=>ve(["../.chunks/dialog_regionSelectorRegions-C1DNLHM7.amd"],t,o))),Ve=(t,o)=>{const n=y.useI18n(),l=e.ref(o.value.keys().next().value??h),r=e.computed(()=>{const a=new Map;if(o.value.forEach(i=>{let s={value:i.key,title:i.name};t.addSearcherIcon&&(s.icon=z.getSearcherGIcon(i.key)),a.set(i.key,s)}),t.addCompare&&!a.has(h)){const i={value:"",title:"--------------------",disabled:!0};a.set(i.value,i);const s={value:M,title:n.Common.Compare};a.set(s.value,s)}return a});return{searcherKey:l,optionBySearcherKey:r}},je=(t,o)=>{const n=y.useI18n(),l=e.ref(h);t.modelValue.length===1&&(l.value=t.modelValue[0]),l.value===h&&(t.forFrequency?l.value=o.value?.regionByIndex.values().next().value?.key??h:l.value=o.value?.regionByIndex.keys().next().value??h);const r=e.computed(()=>{const a=new Map;return o.value.regionByIndex?.forEach(i=>{let s=i.name;if(t.forFrequency){const I={value:i.key,title:s};a.has(i.key)||a.set(i.key,I);return}i.device&&(s+=" ("+n.Common["Device_"+i.device]+")");const m=z.getLangLabel(o.value.key||0,i.lang??"");m&&(s+=" / "+m);const f={value:i.index,title:s,icon:i.device?z.getDeviceGIcon(i.device):void 0};a.set(i.index,f)}),a});return e.watch(r,(a,i)=>{if(t.onlySearcher||l.value!==void 0&&a.get(l.value))return;let s=a.keys().next().value;if(l.value===h||s===h){l.value=s;return}let m=i?.get(l.value)?.title||"",f=-1;for(const[I,c]of a.entries()){const p=c.title;if(typeof p!="string"||typeof I=="string")break;if(p===m){s=I;break}const d=new RegExp(` \\((${n.Common.Device_1}|${n.Common.Device_2})\\)`);let u=m,g=3;p.indexOf(u)===-1&&(u=m.replace(/^[^a-zа-я]/i,"").replace(d,""),g--),p.indexOf(u)===-1&&(u=m.replace(/ \/.*/,""),g--),p.indexOf(u)===-1&&(u=m.replace(/ \/.*/,""),u=u.replace(/^[^a-zа-я]/i,"").replace(d,""),g--),p.indexOf(u)!==-1&&(g<=f||(f=g,s=I))}l.value=s}),{regionIndex:l,optionByRegionIndex:r}},Ae=(t,o,n)=>{const l=e.ref([]),r=()=>{if(t.onlySearcher&&o.value){l.value=Array.from(o.value.keys());return}let i=[];if(t.modelValue.length>1)i=[...t.modelValue];else try{i=JSON.parse(localStorage.getItem("ui:project:regionSelector"+t.projectId+":regionsIndexes"))??[]}catch{}i.length&&(i=i.filter(s=>n.value.has(s))),i.length||(i=Array.from(n.value)),l.value=[...i]},a=()=>{l.value.length?localStorage.setItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes",JSON.stringify(l.value)):localStorage.removeItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes")};return e.watch(l,()=>{a()}),t.addCompare&&r(),{regionsIndexes:l}},Ee=t=>{const o=e.computed(()=>Y(t.forFrequency,t.autoRegion,t.searchers)),n=e.computed(()=>o.value.get(r.searcherKey.value)||oe),l=e.computed(()=>{const c=new Set;return o.value.forEach(p=>{p.regionByIndex.forEach(d=>{d.index!==K&&d.index!==h&&c.add(d.index)})}),c}),r=Ve(t,o),a=je(t,n),i=Ae(t,o,l);e.watch(o,()=>{if(t.onlySearcher?i.regionsIndexes.value=Array.from(o.value.keys()):i.regionsIndexes.value=i.regionsIndexes.value.filter(p=>l.value.has(p)),r.searcherKey.value===M)return;let c=o.value.keys().next().value;o.value.forEach(p=>{if(t.onlySearcher&&p.key===r.searcherKey.value){c=r.searcherKey.value;return}if(a.regionIndex.value&&p.regionByIndex?.has(a.regionIndex.value)&&(c=p.key),!t.onlySearcher){let d;c!==void 0&&(d=o.value.get(c)?.regionByIndex);const u=o.value.get(p.key)?.regionByIndex;d?.has(h)&&!u?.has(h)&&(c=p.key)}}),c!==void 0&&(r.searcherKey.value=c),a.regionIndex.value!==void 0&&!n.value?.regionByIndex?.has(a.regionIndex.value)&&(a.regionIndex.value=n.value?.regions?.keys().next().value)},{immediate:!0});const s=()=>{if(!(r.searcherKey.value===M||r.searcherKey.value===h))return r.searcherKey.value},m=()=>{if(t.onlySearcher||a.regionIndex.value===h)return;let c=a.regionIndex.value;if(t.forFrequency){const p=a.regionIndex.value;c=ae(t.forFrequency,{searcher_key:s(),key:p},t.searchers)?.index}return c},f=()=>{const c=s();if(c!==void 0)return o.value.get(c)};return{selectSearcher:r,selectRegion:a,compare:i,searcherByKey:o,allRegionsIndexes:l,getSearcher:f,getRegion:()=>{const c=m();if(c!==void 0)return f()?.regionByIndex?.get(c)}}},be=e.defineComponent({__name:"regionSelector",props:e.mergeModels({projectId:{},searchers:{default:()=>[]},modelValue:{},modelValueSingle:{},addCompare:{type:Boolean},forFrequency:{type:Boolean},autoRegion:{type:Boolean},onlySearcher:{type:Boolean},addChanger:{type:Boolean,default:!0},addSearcherIcon:{type:Boolean,default:!0},addRegionIcon:{type:Boolean,default:!0}},{modelValue:{required:!0},modelModifiers:{},modelValueSingle:{},modelValueSingleModifiers:{}}),emits:["update:modelValue","update:modelValueSingle"],setup(t,{expose:o}){const n=t,l=e.useModel(t,"modelValue"),r=e.useModel(t,"modelValueSingle"),{selectSearcher:a,selectRegion:i,compare:s,searcherByKey:m,allRegionsIndexes:f,getSearcher:I,getRegion:c}=Ee(n),p=()=>{const d=[];m.value.forEach(u=>{u.enabled&&u.regions.forEach(g=>{g.enabled&&d.push(g)})}),re.open("regions",{regions:d,regionsIndexes:s.regionsIndexes.value,"@update:regionsIndexes":u=>s.regionsIndexes.value=u})};return e.watch([i.regionIndex,a.searcherKey,s.regionsIndexes],()=>{if(a.searcherKey.value===M&&s.regionsIndexes.value.length){if(JSON.stringify(l.value)===JSON.stringify(s.regionsIndexes.value))return;l.value=[...s.regionsIndexes.value]}else n.onlySearcher?(l.value=[a.searcherKey.value],a.searcherKey.value===h&&!n.autoRegion&&(l.value.length=0)):(l.value=[i.regionIndex.value],i.regionIndex.value===h&&!n.autoRegion&&(l.value.length=0));!n.onlySearcher&&!f.value.size&&(a.searcherKey.value=h)}),r.value&&e.watch(r,()=>{r.value&&(l.value=[r.value])},{immediate:!0}),e.watch(l,()=>{if(l.value[0]&&(r.value=l.value[0]),n.onlySearcher){if(!l.value.length||l.value.length===1&&!m.value.has(l.value[0])||l.value.length===1&&l.value[0]===h&&!n.autoRegion){let d=m.value.keys().next().value;d===h&&!n.autoRegion&&(d=void 0,r.value=h),d!==void 0?l.value=[d]:l.value.length=0;return}if(l.value.length>1&&JSON.stringify(l.value)!==JSON.stringify(s.regionsIndexes.value)){l.value=[...s.regionsIndexes.value];return}}else{let d=[...new Set(l.value)],u=m.value.values().next().value?.regionByIndex?.keys().next().value;if(n.forFrequency&&(u=m.value.values().next().value?.regionByIndex?.values().next().value?.key),u===h&&!n.autoRegion&&(u=void 0,r.value=h),!d.length)u!==void 0&&d.push(u);else if(d.length===1){let g=f.value;n.forFrequency&&(g=new Set,m.value.forEach(B=>{B.regionByIndex.forEach(N=>{N.index!==K&&N.index!==h&&g.add(N.key)})})),g.has(d[0])||(d=[],u!==void 0&&d.push(u))}else d=d.filter(g=>f.value.has(g)),!d.length&&u!==void 0&&d.push(u);if(JSON.stringify(l.value)!==JSON.stringify(d)){l.value=d;return}}if(!(l.value.length===1&&l.value[0]===(n.onlySearcher?a.searcherKey.value:i.regionIndex.value)))if(n.onlySearcher){if(l.value.length===1){a.searcherKey.value=l.value[0];return}a.searcherKey.value=M;return}else{if(!l.value.length)return;if(l.value.length===1&&a.searcherKey.value!==M){i.regionIndex.value=l.value[0];let d;for(const u of m.value.values()){for(const g of u.regionByIndex.values())if((n.forFrequency?g.key:g.index)===i.regionIndex.value){d=u.key;break}if(d!==void 0)break}d!==void 0&&(a.searcherKey.value=d)}else a.searcherKey.value=M,s.regionsIndexes.value=[...l.value]}},{immediate:!0}),o({getSearcher:I,getRegion:c}),(d,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-selectorRegion":!0,"top-selectorRegion-onlySearcher":t.onlySearcher})},[e.createVNode(y._sfc_main$10,{options:e.unref(a).optionBySearcherKey.value,modelValue:e.unref(a).searcherKey.value,"onUpdate:modelValue":u[0]||(u[0]=g=>e.unref(a).searcherKey.value=g),name:"searcher_key",addChanger:t.addChanger},null,8,["options","modelValue","addChanger"]),!t.onlySearcher&&e.unref(a).searcherKey.value!==e.unref(M)?(e.openBlock(),e.createBlock(y._sfc_main$10,{key:0,class:"top-select-region",options:e.unref(i).optionByRegionIndex.value,modelValue:e.unref(i).regionIndex.value,"onUpdate:modelValue":u[1]||(u[1]=g=>e.unref(i).regionIndex.value=g),name:t.forFrequency?"region_key":"region_index",addChanger:t.addChanger,"data-top-icon":t.addRegionIcon?"":void 0},null,8,["options","modelValue","name","addChanger","data-top-icon"])):e.createCommentVNode("",!0),t.addCompare&&!t.onlySearcher&&e.unref(a).searcherKey.value===e.unref(M)?(e.openBlock(),e.createBlock(y._sfc_main$1,{key:1,name:"compare",onClick:p,"data-count-compare-regions-indexes":e.unref(s).regionsIndexes.value.length},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.$i18n.Common.Selected_regions),1)]),_:1},8,["data-count-compare-regions-indexes"])):e.createCommentVNode("",!0)],2))}}),V={id:0,name:"/",path:"/"};function $e(t){return t?y.useI18n()?.Common.All_folders:"/ ("+y.useI18n()?.Keywords.Root_folder+")"}const Q=(t,o,n=new Map,l={id:"root"},r=0)=>(l.childsIds=[],l.id&&(l.countAllGroupsActive=l.count_groups_active),t[l.id]&&t[l.id].forEach(a=>{a={...a},l.childsIds.push(a.id),a.id===0&&(a.name=$e(o));const i=r>1?"-".repeat(r-1)+" ":"";i&&!a.name.startsWith(i)&&(a.name=i+a.name),n.set(a.id,a),Q(t,o,n,a,r+1),l.childsIds=l.childsIds.concat(a.childsIds),l.id&&a.count_groups_active&&(l.countAllGroupsActive+=a.count_groups_active)}),n),Ne=t=>t.gen("/get/keywords_2/folders/",["id","parent_id","name","path"]).changeParams({orders:["ord_path"],limit:100});function X(t,o,n){const l=Object.keys(t),r=l.map(a=>t[a]);return e.watch(r,(a,i,s)=>{const m={};a.forEach((f,I)=>{if(!Object.is(f,i[I])){const c=l[I];m[c]={old:i[I],new:f}}}),Object.keys(m).length&&o(m,s)},n)}const Pe=e.defineComponent({__name:"folders",props:e.mergeModels({folderId:{},folder:{},folders:{},projectId:{},canSelectAll:{type:Boolean},addChanger:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{}},{folderId:{required:!0},folderIdModifiers:{},folder:{default:V},folderModifiers:{}}),emits:["update:folderId","update:folder"],setup(t){const o=t,n=e.useModel(t,"folderId"),l=e.useModel(t,"folder"),r=o.client&&!o.folders?Ne(o.client):void 0,a=e.ref(null);e.watch(()=>o.projectId,()=>{r?.changeParams({project_id:o.projectId}),r?.setOptions({checkFingerprint:"TopGroupSelectorFolders:"+o.projectId}),a.value?.resetCache()},{immediate:!0});const i=e.computed(()=>Q(o.folders??{root:[V]},o.canSelectAll));return X({modelFolder:l,modelFolderId:n},async s=>{if(n.value===l.value.id)return;if(s.modelFolder&&!s.modelFolderId){n.value=l.value.id;return}let m=i.value.get(o.folderId);m||(m=V),l.value=m,n.value=m.id},{immediate:!0}),(s,m)=>(e.openBlock(),e.createBlock(w._sfc_main,{class:"top-groupSelector_folder",modelValue:l.value,"onUpdate:modelValue":m[0]||(m[0]=f=>l.value=f),items:t.folders?[...i.value.values()]:void 0,"search-type":"inline",icon:t.addIcon?"":void 0,api:t.folders?void 0:e.unref(r),apiSetSearchParams:(...f)=>e.unref(w.apiSetSearchParamsFilter)(...f,"name"),addChanger:t.addChanger,useCache:""},null,8,["modelValue","items","icon","api","apiSetSearchParams","addChanger"]))}}),R={id:-1,name:"--",folder_id:V.id,folder_path:V.path},O={id:w.ITEM_ID_ALL,name:"All groups",folder_id:V.id,folder_path:V.path},E=()=>(O.name=y.useI18n()?.Common.All_groups,O),ie=()=>(O.name=y.useI18n()?.Keywords.Choose_group,O),Le=(t,o,n)=>(t=[...t],o!==void 0&&(t=t.filter(l=>l.on==Number(o))),n&&n.id&&n.childsIds&&(t=t.filter(l=>l.folder_id===n.id||n.childsIds.includes(l.folder_id))),t),de=t=>t.gen("/get/keywords_2/groups/",["id","name","folder_id","folder_path"]).changeParams({folder_id_depth:!0,limit:100}),Ge=t=>t.gen("/add/keywords_2/groups/"),Ke={class:"top-groupSelector_groupItem"},De={key:0,class:"top-comment"},Re={key:1,class:"top-groupSelector_groupItemFolderPath"},Oe=e.defineComponent({__name:"groups",props:e.mergeModels({groupId:{},group:{},projectId:{},folder:{},groups:{},on:{type:Boolean,default:void 0},canAdd:{type:[String,Boolean]},canSelectAll:{type:[Boolean,String]},autoselect:{default:"first"},addChanger:{type:Boolean,default:!0},showPath:{type:Boolean},addIcon:{type:Boolean,default:!0},client:{}},{groupId:{required:!0},groupIdModifiers:{},group:{required:!0},groupModifiers:{}}),emits:e.mergeModels(["addGroup"],["update:groupId","update:group"]),setup(t,{emit:o}){const n=t,l=o,r=e.useModel(t,"groupId"),a=e.useModel(t,"group"),i=n.client&&!n.groups?de(n.client):void 0,s=n.client?Ge(n.client):void 0,m=e.ref(null),f=e.ref(void 0),I=_.genFieldFilter("folder_id","EQUALS",[n.folder?.id??0]);i?.changeParams({project_id:n.projectId,folder_id_depth:!0,filters:[I]}),n.on!==void 0&&i?.params.filters?.push(_.genFieldFilter("on","EQUALS",[Number(n.on)]));const c=d=>{a.value=d,r.value=d.id};X({projectId:()=>n.projectId,folderId:()=>n.folder?.id,canSelectAll:()=>n.canSelectAll},d=>{if(d.projectId&&(i?.changeParams({project_id:n.projectId}),i?.setOptions({checkFingerprint:"TopGroupSelectorGroups:"+n.projectId})),d.folderId&&(I.values=[n.folder?.id??0],n.groups&&(f.value=Le(n.groups,n.on,n.folder))),m.value?.resetCache(),(d.folderId?.old!==void 0||d.canSelectAll?.old!==void 0)&&r.value!==w.ITEM_ID_NEW){let u;n.autoselect==="first"&&(u=f.value?.[0],n.canSelectAll&&(u=e.reactive(E()))),(n.autoselect==="placeholder"||!u)&&(u=ie()),c(u)}},{immediate:!0}),X({modelGroup:a,modelGroupId:r},async d=>{if(r.value!==a.value.id){if(d.modelGroup&&!d.modelGroupId){r.value=a.value.id;return}if(!(n.canAdd&&r.value===w.ITEM_ID_NEW)){if(n.groups){let u=f.value?.find(g=>g.id===r.value);if(!u&&n.canSelectAll&&(u=E()),u)c(u);else{const g=f.value?.[0];g&&!r.value?c(g):c(R)}}if(n.client&&!n.groups&&(r.value||r.value===w.ITEM_ID_ALL&&!n.canSelectAll)){const u=de(n.client).changeParams({project_id:n.projectId,id:r.value,filters:[I]});u?.setOptions({checkFingerprint:"TopGroupSelectorFindGroup:"+n.projectId});const g=await u.call();if(!g.errors?.length&&!g.result)return;!g.errors&&g.result[0]?c(g.result[0]):c(R)}}}},{immediate:!0});const p=async d=>{if(n.canAdd!=="api"||!s)return;const u=a.value,g=await s.changeParams({project_id:n.projectId,names:[d.name],to_id:n.folder?.id??V.id,to_type:"in_folder_last"}).call();g.result?(c(g.result),l("addGroup",g.result)):c(u),m.value?.resetCache(!0)};return(d,u)=>(e.openBlock(),e.createBlock(w._sfc_main,{ref_key:"refSelector",ref:m,class:"top-groupSelector_group",modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=g=>a.value=g),items:f.value??t.groups,searchType:"inline",icon:t.addIcon?"":void 0,api:t.groups?void 0:e.unref(i),apiSetSearchParams:(...g)=>e.unref(w.apiSetSearchParamsFilter)(...g,"name"),appendSearchToResult:!!t.canAdd,useAllItem:t.canSelectAll?e.unref(E)().name:!1,addChanger:t.addChanger,useCache:"",onAppendItem:p},{item:e.withCtx(({item:g})=>[e.createElementVNode("div",Ke,[g.id===e.unref(w.ITEM_ID_NEW)?(e.openBlock(),e.createElementBlock("div",De,e.toDisplayString(d.$i18n.Common.Add)+": ",1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(g.name),1),g.folder_path&&t.showPath?(e.openBlock(),e.createElementBlock("span",Re,e.toDisplayString(g.folder_path),1)):e.createCommentVNode("",!0)])]),_:1},8,["modelValue","items","icon","api","apiSetSearchParams","appendSearchToResult","useAllItem","addChanger"]))}}),Fe={class:"top-groupSelector"},qe=e.defineComponent({__name:"groupSelector",props:e.mergeModels({folderId:{},folder:{},groupId:{},group:{},projectId:{},folders:{},groups:{},on:{type:Boolean,default:void 0},canSelectAllGroups:{type:Boolean},canAddGroup:{},autoselect:{default:"first"},addChanger:{type:Boolean,default:!0},showFolders:{type:Boolean,default:!0},showGroups:{type:Boolean,default:!0},addIcon:{type:Boolean,default:!0},client:{}},{folderId:{required:!0},folderIdModifiers:{},folder:{},folderModifiers:{},groupId:{required:!0},groupIdModifiers:{},group:{default:R},groupModifiers:{}}),emits:e.mergeModels(["update:groups"],["update:folderId","update:folder","update:groupId","update:group"]),setup(t,{emit:o}){const n=t,l=e.useModel(t,"folderId"),r=e.useModel(t,"folder"),a=e.useModel(t,"groupId"),i=e.useModel(t,"group"),s=o,m=Q(n.folders??{root:[V]},n.canSelectAllGroups);r.value=m.get(l.value);let f=n.groups?.find(c=>c.id===a.value);a.value||(f=n.groups?.[0]),n.canSelectAllGroups&&!f&&(f=E()),n.canSelectAllGroups&&!f&&(f=E()),(n.autoselect==="placeholder"||!f)&&(f=ie()),f??=R,i.value=f;const I=c=>{let p;n.groups&&c&&(p=[...n.groups,c]),s("update:groups",p)};return(c,p)=>(e.openBlock(),e.createElementBlock("div",Fe,[t.showFolders?(e.openBlock(),e.createBlock(Pe,{key:0,folderId:l.value,"onUpdate:folderId":p[0]||(p[0]=d=>l.value=d),folder:r.value,"onUpdate:folder":p[1]||(p[1]=d=>r.value=d),projectId:t.projectId,folders:t.folders,canSelectAll:t.canSelectAllGroups,addChanger:t.addChanger,addIcon:t.addIcon,client:t.client},null,8,["folderId","folder","projectId","folders","canSelectAll","addChanger","addIcon","client"])):e.createCommentVNode("",!0),t.showGroups?(e.openBlock(),e.createBlock(Oe,{key:1,groupId:a.value,"onUpdate:groupId":p[2]||(p[2]=d=>a.value=d),group:i.value,"onUpdate:group":p[3]||(p[3]=d=>i.value=d),projectId:t.projectId,folder:r.value,groups:t.groups,on:t.on,canAdd:t.canAddGroup,canSelectAll:t.canSelectAllGroups,autoselect:t.autoselect,addChanger:t.addChanger,showPath:t.showFolders&&!!t.folders?.[0],addIcon:t.addIcon,client:t.client,onAddGroup:I},null,8,["groupId","group","projectId","folder","groups","on","canAdd","canSelectAll","autoselect","addChanger","showPath","addIcon","client"])):e.createCommentVNode("",!0)]))}}),Ue={class:"top-projectSelectorSubmenu_item"},We=["href","title","data-top-icon","data-right"],ze={class:"top-projectSelectorSubmenu_item"},Je=["href"],Ye=e.defineComponent({__name:"submenu",props:{id:{},right:{},url:{}},setup(t){const o=t,n=y.useI18n();let l=[{href:`/project/keywords/${o.id}/`,title:n.Common.Menu_phrases,icon:"",right:"2"},{href:`/project/dynamics/${o.id}/`,title:n.Common.Menu_dynamics,icon:"",right:"1"},{href:`/project/snapshots/${o.id}/`,title:n.Common.Menu_snapshots,icon:"",right:"1"},{href:`/project/competitors/${o.id}/`,title:n.Common.Menu_competitors,icon:"",right:"1"},{href:`/project/analytics/${o.id}/`,title:n.Common.Menu_analytics,icon:"",right:"5"},{href:`/project/broker/${o.id}/`,title:n.Common.Menu_broker,icon:"",right:"6"},{href:`/project/audit/${o.id}/sitemap/`,title:n.Audit.Sitemap_gen,icon:"",right:"8"},{href:`/project/audit/${o.id}/audit/`,title:n.Common.Menu_audit,icon:"",right:"8"},{href:`//project/audit/${o.id}/indexing/`,title:n.Audit.Indexing,icon:"",right:"8"},{href:`/project/audit/${o.id}/watcher/`,title:n.Audit.Watcher,icon:"",right:"9"},{href:`/project/settings/${o.id}/`,title:n.Common.Menu_settings,icon:"",right:"2"}];const r=e.computed(()=>o.right.includes("0")?l.filter(a=>o.right[a.right]==="1"):l);return(a,i)=>{const s=e.resolveComponent("TopButton");return e.openBlock(),e.createBlock(e.unref(j._sfc_main),{class:"top-projectSelectorSubmenu",notch:!1,pos:"2"},{opener:e.withCtx(()=>[e.createVNode(s,{class:"top-projectSelectorSubmenu_opener","data-top-icon":"",color:"theme"})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,m=>(e.openBlock(),e.createElementBlock("li",Ue,[e.createElementVNode("a",{href:m.href,title:m.title,"data-top-icon":m.icon,"data-right":m.right},null,8,We)]))),256)),e.createElementVNode("li",ze,[e.createElementVNode("a",{href:t.url,"data-top-icon":"",target:"_blank"},null,8,Je)])]),_:1})}}}),Z=t=>({id:null,name:t,listItemProps:{type:"title"}}),Qe=t=>{const o=y.useI18n();return[{filter:l=>l.right.startsWith("1")&&l.on>0,title:Z(o.Projects.Scheduled_update)},{filter:l=>l.right.startsWith("1")&&l.on===0,title:Z(o.Projects.Manual_update)},{filter:l=>l.right.startsWith("0")&&l.on>=0,title:Z(o.Projects.Guest_projects)}].flatMap(({filter:l,title:r})=>{const a=t.filter(l);return a.length?[r,...a]:[]})},Xe=(t,o)=>t.map(n=>({...n,listItemProps:{class:"top-projectSelector_item",href:o?ce(Number(n.id)):void 0,title:n.name}})),Ze=(t,o,n)=>{if(!t||t.length===0)return;o&&(t=t.filter(r=>r.id!==o));const l=Xe(t,n);return Qe(l)},He=t=>{if(!t)return"";let o=t;return o=o.replace(/historyView=[^&]*/,""),o=o.replace(/competitorsIds=[^&]*/,""),o=o.replace(/searchersKeys=[^&]*/,""),o=o.replace(/regionIndex=[^&]*/,""),o=o.replace(/regionsIndexes=[^&]*/,""),o=o.replace(/folderId=[^&]*/,""),o=o.replace(/groupId=[^&]*/,""),o=o.replace(/tags=[^&]*/,""),window.mo?.getHash&&!window.mo.getHash("dataSort").toString().includes("0000-00-00")&&(o=o.replace(/dataSort=[^&]*/,"")),o=o.replace(/%22historyView%22:[^,]*,/,""),o=o.replace(/%22competitorsIds%22:\[[^\]]*\],/,""),o=o.replace(/%22searchersKeys%22:\[[^\]]*\],/,""),o=o.replace(/%22regionIndex%22:[^,]*,/,""),o=o.replace(/%22regionsIndexes%22:\[[^\]]*\],/,""),o=o.replace(/%22folderId%22:[^,]*,/,""),o=o.replace(/%22groupId%22:[^,]*,/,""),o=o.replace(/%22tagsIds%22:\[[^\]]*\],/,""),/%22dataSort%22:\{[^\}]*0000-00-00[^\}]*\}/.test(o)||(o=o.replace(/%22dataSort%22:\{[^\}]*\},/,"")),o},ce=t=>{const o=location.pathname.split("/");let n="project/dynamics/",l="";o[1]=="project"&&(n=o[1]+"/"+o[2]+"/"),["watcher","indexing","sitemap","audit","direct","adwords"].includes(o[4])&&(l=o[4]+"/");let r="/"+n+t+"/"+l;const a=He(location.hash);return r+=a,r},ue=t=>{let o=t.startsWith("http")?t:"http://"+t;return o=o.replace(/"/g,"%22"),o},se=(t,o,n,l)=>{const r=t.gen("/get/projects_2/projects/",["id","user_id","name","url","on","right"]);return r.options.onApiLoaded=(a,i,s)=>{a.result=Ze(a.result,n,l),s?.(a,i)},o&&(r.params.limit=o),r},_e=t=>t.gen("/add/projects_2/projects/"),et={class:"top-projectSelector_itemText"},tt={class:"top-projectSelector_itemName"},ot={class:"top-projectSelector_itemId"},nt={key:1},lt={key:0,class:"top-comment"},at=e.defineComponent({__name:"projectSelector",props:e.mergeModels({project:{},addLinksToProjects:{type:Boolean,default:!0},userId:{default:window.mo?.user?.id},icon:{},excludeProjectId:{},placeholder:{},openerText:{},buttonProps:{},openerShortcut:{},client:{}},{project:{default:{id:w.ITEM_ID_NEW,name:""}},projectModifiers:{}}),emits:["update:project"],setup(t){const o=y.useI18n(),n=t,l=e.computed(()=>n.placeholder??o.Projects.Select_project),r=e.computed(()=>n.openerText??o.Common.Projects),a=e.useModel(t,"project");a.value.name||(a.value.name=r.value);const i=n.client?se(n.client,100,n.excludeProjectId,n.addLinksToProjects):void 0,s=n.client?_e(n.client):void 0,m=e.ref([]),f=e.ref(null),I=e.ref(!1),c=async()=>{if(!n.client)return;const u=await se(n.client,1e3,n.excludeProjectId,n.addLinksToProjects).call();u.errors||u.total&&u.total<1e3&&(m.value=u.result)},p=async d=>{if(!s)return;const u=await s.changeParams({url:d.name,name:d.name}).call();if(!u.errors)if(m){const g={id:Number(u.result),url:d.name,name:d.name,user_id:n.userId,on:0,right:"11111111111111111111",listItemProps:{class:"top-projectSelector_item top-active",href:n.addLinksToProjects?ce(Number(u.result)):void 0}};m.value?.unshift(g)}else f.value?.resetCache(!0)};return e.onMounted(async()=>{await c(),I.value=!0,a.value.name||(a.value.name=r.value)}),(d,u)=>{const g=e.resolveComponent("TopButton");return I.value?(e.openBlock(),e.createBlock(w._sfc_main,{key:0,ref_key:"refSelector",ref:f,class:"top-projectSelector",modelValue:a.value,"onUpdate:modelValue":u[1]||(u[1]=B=>a.value=B),items:m.value,title:d.$i18n.Projects.Search_projects,icon:t.icon,modificator:"projectSelector",placeholder:l.value,api:m.value.length!==0?void 0:e.unref(i),apiSetSearchParams:m.value.length!==0?void 0:(...B)=>e.unref(w.apiSetSearchParamsFilter)(...B,"name"),useCache:"",appendSearchToResult:"",appendSearchToResultCond:e.unref(ee.validUrl),buttonProps:t.buttonProps,openerShortcut:t.openerShortcut,onAppendItem:p},{widgetAction:e.withCtx(()=>[d.$core.state.isMobile?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(g,{key:0,class:"top-projectSelector_cancel closer",color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.$i18n.Common.Cancel),1)]),_:1}))]),item:e.withCtx(({item:B})=>[B.id?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",et,[e.createElementVNode("span",tt,e.toDisplayString(B.name),1),e.createElementVNode("span",ot," id "+e.toDisplayString(B.id),1)]),e.createVNode(g,{class:"top-projectSelector_itemLink",href:e.unref(ue)(B.url),"data-top-icon":"",color:"theme",target:"_blank",onClick:u[0]||(u[0]=e.withModifiers(()=>{},["stop"]))},null,8,["href"]),e.createVNode(Ye,{id:B.id,right:B.right??void 0,url:e.unref(ue)(B.url)},null,8,["id","right","url"])],64)):(e.openBlock(),e.createElementBlock("div",nt,[e.unref(ee.validUrl)(B.name)?(e.openBlock(),e.createElementBlock("div",lt,e.toDisplayString(d.$i18n.Projects.Add_project)+": ",1)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(B.name),1)]))]),_:1},8,["modelValue","items","title","icon","placeholder","api","apiSetSearchParams","appendSearchToResultCond","buttonProps","openerShortcut"])):e.createCommentVNode("",!0)}}}),me=t=>"-"+t,b=t=>t[0]==="-"?t.substring(1):t,F=(t,o)=>{t=b(t);const n=o.find(l=>l.id===t);if(n)return n},rt=(t,o,n)=>{o||(o={id:t.id}),o.id=t.id,o.pos??="3",o.notch??=!0,o.posBy??="fixed";const l=ye.TopPopupWorker.genElPopupOpener("div",o);return l.classList.add("top-tagSelector"),t.useTopButton&&l.classList.add("top-tagSelector-useTopButton","top-button","top-color_theme","top-as-selector"),t.useTopButton||l.classList.add("top-tagSelector-custom"),t.mode==="filter"&&l.classList.add("top-tagSelector-filter"),t.mode==="setter"&&!t.filters&&l.classList.add("top-tagSelector-setter_single"),t.mode==="setter"&&t.filters&&l.classList.add("top-tagSelector-setter_several"),l.onclick=r=>{r.preventDefault(),r.stopPropagation(),l.onclick=null;const a=e.ref(t.modelValue),i={model:a,mode:t.mode,targetId:t.targetId,filters:t.filters,payload:t.payload};A.storage(l,"topTagSelectorTarget",i),delete l.dataset.topPopupDisabled,e.isRef(t.modelValue)||e.watch(a,()=>{t.modelValue=a.value,q(l,t,n)}),l.click()},e.isRef(t.modelValue)?e.watch(t.modelValue,()=>q(l,t,n)):A.storage(l,"topTagSelectorRender",r=>{t.modelValue=r;const a=A.storage(l,"topTagSelectorTarget");a&&(a.model.value=r),q(l,t,n)}),q(l,t,n),l},it=(t,o)=>{A.storage(t,"topTagSelectorRender")?.(o)},q=(t,o,n)=>{const l=e.unref(o.modelValue);if(t.classList.toggle("top-tagSelector-selectedOne",!l.length||l.length===1),t.classList.toggle("top-tagSelector-toTwoLine",l.length>5),o.mode==="setter"&&o.filters){t.innerHTML=`<div>${n}</div>`;return}if(t.innerHTML="",!l.length&&o.mode==="filter"){const r=fe({id:"all",colorId:"",name:y.useI18n().Common?.All_tags??"",state:""});t.append(r)}l.forEach(r=>{const a=fe({id:b(r),colorId:F(r,o.tags)?.color_id??"",name:F(r,o.tags)?.name??"",state:b(r)===r?"selected":"excluded"});t.append(a)})},fe=t=>{const o=document.createElement("div");return o.classList.add("top-tagSelector_tagIcon"),o.classList.toggle("top-tagSelector-active",!!t.state),o.classList.toggle("top-tagSelector-excluded",t.state==="excluded"),o.dataset.tag_id=t.id,o.dataset.tag_color_id=t.colorId,o.title=t.name,o},dt=[{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"}],ct=["data-tag_id","data-tag_color_id","title"],U=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!t.state,"top-tagSelector-excluded":t.state==="excluded"}),"data-tag_id":t.id,"data-tag_color_id":t.colorId,title:t.name},null,10,ct))}}),ut=["contenteditable","onKeydown"],ge=e.defineComponent({__name:"tagPopupListItem",props:e.mergeModels({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:e.mergeModels(["update:name","unselect","exclude","select"],["update:name"]),setup(t,{emit:o}){const n=t,l=o,r=e.useModel(t,"name"),a=e.ref(null),i=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:s.value,onpaste:p=>p.preventDefault()}:{}),s=e.ref(!1),m=async()=>{s.value=!0,await e.nextTick(),a.value?.focus()},f=()=>{const p=a.value?.innerText;if(!p)return I();a.value&&(a.value.innerText=p),s.value=!1,l("update:name",p)},I=async()=>{a.value&&(a.value.innerText=n.name),s.value=!1},c=p=>{if(s.value||n.disabled)return;let d="selected";n.canExclude&&(p.ctrlKey||p.metaKey)&&(d="excluded"),n.state==d&&(d=""),d===""&&l("unselect"),d==="selected"&&l("select"),d==="excluded"&&l("exclude")};return(p,d)=>(e.openBlock(),e.createBlock(j._sfc_main$2,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":t.disabled,"top-tagSelector_tagListItem-canExclude":t.canExclude,"top-tagSelector-active":!!t.state,"top-tagSelector-excluded":t.state==="excluded"}),onClick:e.withModifiers(c,["stop"])},{default:e.withCtx(()=>[e.createVNode(U,{id:t.id,name:r.value,colorId:t.colorId,state:t.state},null,8,["id","name","colorId","state"]),e.createElementVNode("span",e.mergeProps({ref_key:"elName",ref:a,class:"top-tagSelector_tagListItemName",contenteditable:s.value?"plaintext-only":!1},i.value,{onKeydown:[e.withKeys(e.withModifiers(f,["stop"]),["enter"]),e.withKeys(e.withModifiers(I,["stop"]),["esc"])]}),e.toDisplayString(r.value),17,ut),t.editable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[s.value?(e.openBlock(),e.createElementBlock("span",{key:1,"data-top-icon":"",class:"top-tagSelector_edit",onClick:e.withModifiers(f,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:m}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),st={key:1},pe=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{},styling:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,n=e.useModel(t,"modelValue"),l=o.useTopButton?y._sfc_main$1:"div",r=o.useTopButton?"html":"default",a={model:n,mode:o.mode,targetId:o.targetId,filters:o.filters,payload:o.payload};return(i,s)=>{const m=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(j._sfc_main$1,{id:t.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(l)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-useTopButton":o.useTopButton,"top-tagSelector-custom":!o.useTopButton,"top-as-selector":o.useTopButton,"top-tagSelector-filter":o.mode==="filter","top-tagSelector-setter_single":o.mode==="setter"&&!t.filters,"top-tagSelector-setter_several":o.mode==="setter"&&t.filters,"top-tagSelector-selectedOne":!n.value.length||n.value.length===1,"top-tagSelector-toTwoLine":n.value.length>5},color:"theme",styling:t.styling},i.$attrs),{[e.unref(r)]:e.withCtx(()=>[!n.value.length&&t.mode==="filter"?(e.openBlock(),e.createBlock(U,{key:0,id:"all",colorId:"",name:i.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),t.mode==="setter"&&t.filters?(e.openBlock(),e.createElementBlock("div",st,[e.renderSlot(i.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(n.value,f=>(e.openBlock(),e.createBlock(U,{id:e.unref(b)(f),colorId:e.unref(F)(f,t.tags)?.color_id??"",name:e.unref(F)(f,t.tags)?.name??"",state:e.unref(b)(f)===f?"selected":"excluded"},null,8,["id","colorId","name","state"]))),256))]),_:2},1040,["class","styling"])),[[m,a,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),mt=e.defineComponent({__name:"tagSelector",props:e.mergeModels({modelValue:{},tags:{},tagsEditable:{type:Boolean},tagsMax:{default:10},id:{},singleMode:{type:Boolean},requiredForSetter:{type:Boolean,default:!0},maxTagsForSetter:{},emitDelay:{default:500},useTopButton:{type:Boolean,default:!0},styling:{}},{modelValue:{required:!0},modelModifiers:{},tags:{default:e.reactive(dt)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(t,{emit:o}){const n=y.useI18n(),l=t,r=e.useModel(t,"modelValue"),a=e.useModel(t,"tags"),i=o,s=y.debounce((v,S)=>{i(v,S)},l.emitDelay);l.singleMode&&!r.value.length&&(r.value=[a.value[0].id]);const m=l.id??"top-popup-id-"+Math.random(),f=e.ref("add"),I=()=>{const v=" "+n.Common.Tags?.toLowerCase(),S=new Map;return S.set("add",{value:"add",title:n.Common.Add+v}),S.set("replace",{value:"replace",title:n.Common.Replace+v}),S.set("delete",{value:"delete",title:n.Common.Delete+v}),S};let c=e.shallowRef({model:r,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(r,()=>{s("selector",r.value)});const p=e.computed(()=>{if(c.value.mode==="setter"&&l.maxTagsForSetter&&!c.value.filters)return c.value.model.value.length>=l.maxTagsForSetter}),d=v=>{if(v!=="all"){if(c.value.model.value.includes(v))return"selected";if(c.value.model.value.includes(me(v)))return"excluded"}return v==="all"&&!c.value.model.value.length?"selected":""},u=(v,S)=>{const k=me(v);let x=c.value.model.value.filter(T=>T!==v&&T!==k);S==="select"&&x.push(v),S==="exclude"&&x.push(k),c.value.mode==="setter"&&c.value.targetId!==void 0&&l.requiredForSetter&&(x.length||x.push("1"),x.length===2&&c.value.model.value.length===1&&c.value.model.value[0]==="1"&&(x=x.filter(T=>T!=="1"))),l.singleMode&&!c.value.filters&&(x.length||(x=c.value.model.value),x.length>1&&(x=[x[x.length-1]])),x.sort((T,W)=>{if(!l.tags)return 0;const P=l.tags.findIndex(G=>G.id===T),L=l.tags.findIndex(G=>G.id===W);return P-L}),c.value.model.value=x,c.value.mode==="setter"&&c.value.targetId!==void 0&&s("setter",{tagsIds:x,targetId:c.value.targetId,payload:c.value.payload})},g=e.computed(()=>{let v="top-tagSelector_popup";return c.value.mode==="filter"&&(v+=" top-tagSelector_popup-filter"),c.value.mode==="setter"&&(v+=" top-tagSelector_popup-setter"),v}),B=()=>{const v=prompt("","New tag");if(!v||v==="New tag")return;const S=a.value.length+1;a.value.push({id:String(S),name:v,color_id:String((S-1)%10+1)}),i("tagsChanged",a.value)},N=v=>{if(c.value=A.storage(v.elPopupOpener,"topTagSelectorTarget"),!c.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(c.value.filters&&(f.value="add",c.value.model.value=[]),!y.Core.$?.ui.sortable){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}!y.Core.state.isMobile&&!y.Core.state.isMobileUA&&a.value&&$(v.elPopup).sortable({items:'li:has([data-tag_id]:not([data-tag_id="all"]))',cancel:'[contenteditable="plaintext-only"], [contenteditable="true"]',distance:10,stop:function(S,k){if(!a.value)return;const x=$(k.item).parent().find("[data-tag_id]"),T=[];x.each((W,P)=>{if(!a.value)return;const L=$(P).attr("data-tag_id");T.push(L)}),a.value.sort((W,P)=>{const L=T.findIndex(H=>H===W.id),G=T.findIndex(H=>H===P.id);return L-G}),s("tagsChanged",a.value)}})},ft=v=>{y.Core.$?.ui.sortable&&$(v.elPopup).data("ui-sortable")&&$(v.elPopup).sortable("destroy")};return(v,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(pe,{modelValue:r.value,"onUpdate:modelValue":S[0]||(S[0]=k=>r.value=k),id:e.unref(m),tags:a.value,styling:t.styling,mode:"filter",useTopButton:t.useTopButton},null,8,["modelValue","id","tags","styling","useTopButton"]),e.createVNode(j._sfc_main,{id:e.unref(m),class:e.normalizeClass(g.value),onOpen:S[4]||(S[4]=k=>N(k)),onClose:S[5]||(S[5]=k=>ft(k)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(c).mode==="filter"&&!t.singleMode?(e.openBlock(),e.createBlock(ge,{key:0,id:"all",colorId:"",name:v.$i18n.Common.All_tags??"",state:e.unref(c).model.value.length?"":"selected",onSelect:S[3]||(S[3]=k=>e.unref(c).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,k=>(e.openBlock(),e.createBlock(ge,{key:k.id,id:k.id,colorId:k.color_id,name:k.name,state:d(k.id),canExclude:e.unref(c).mode==="filter"&&!t.singleMode,editable:t.tagsEditable,disabled:p.value&&d(k.id)==="",onUnselect:x=>u(k.id,"unselect"),onSelect:x=>u(k.id,"select"),onExclude:x=>u(k.id,"exclude"),"onUpdate:name":x=>{k.name=x,e.unref(s)("tagsChanged",a.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),t.tagsEditable&&a.value.length<t.tagsMax&&a.value.length<20?(e.openBlock(),e.createBlock(j._sfc_main$2,{key:1,"data-top-icon":"",onClick:e.withModifiers(B,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.$i18n.Common.Add),1)]),_:1})):e.createCommentVNode("",!0)]),_:2},[e.unref(c).mode==="setter"&&e.unref(c).filters?{name:"header",fn:e.withCtx(()=>[e.createVNode(y._sfc_main$10,{modelValue:f.value,"onUpdate:modelValue":S[1]||(S[1]=k=>f.value=k),options:I()},null,8,["modelValue","options"])]),key:"0"}:void 0,e.unref(c).mode==="setter"&&e.unref(c).filters?{name:"footer",fn:e.withCtx(()=>[e.createVNode(y._sfc_main$1,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.$i18n.Common.Cancel2),1)]),_:1}),e.createVNode(y._sfc_main$1,{onClick:S[2]||(S[2]=k=>e.unref(s)("setter",{tagsIds:e.unref(c).model.value,filters:e.unref(c).filters,filtersAction:f.value,payload:e.unref(c).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value==="add"?v.$i18n.Common.Add:"")+" "+e.toDisplayString(f.value==="replace"?v.$i18n.Common.Replace:"")+" "+e.toDisplayString(f.value==="delete"?v.$i18n.Common.Delete:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}});C.TopCompetitorSelector=ke,C.TopGroupSelector=qe,C.TopProjectSelector=at,C.TopRegionSelector=be,C.TopTagSelector=mt,C.TopTagSelectorPopupOpener=pe,C.TopTagSelectorTagIcon=U,C.dialogRegionSelector=re,C.findRegion=ae,C.genElTopTagSelectorPopupOpener=rt,C.genSearcherByKey=Y,C.renderElTopTagSelectorPopupOpener=it,C.useItemsFromCompetitors=xe,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=project.amd.js.map