@topvisor/ui 1.3.5-5.0 → 1.4.0-TopGroupSelector.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 (216) hide show
  1. package/.chunks/core-B9TwJi3h.amd.js +2 -0
  2. package/.chunks/core-B9TwJi3h.amd.js.map +1 -0
  3. package/.chunks/core-DVQVVUiP.es.js +196 -0
  4. package/.chunks/core-DVQVVUiP.es.js.map +1 -0
  5. package/.chunks/{datepicker-J8Zg9mKt.es.js → datepicker-CrASsJeF.es.js} +14 -17
  6. package/.chunks/{datepicker-J8Zg9mKt.es.js.map → datepicker-CrASsJeF.es.js.map} +1 -1
  7. package/.chunks/{datepicker-CPrHVH4x.amd.js → datepicker-bidhcksv.amd.js} +2 -2
  8. package/.chunks/{datepicker-CPrHVH4x.amd.js.map → datepicker-bidhcksv.amd.js.map} +1 -1
  9. package/.chunks/dialog_regionSelectorRegions-DJu5Y1WK.es.js +180 -0
  10. package/.chunks/dialog_regionSelectorRegions-DJu5Y1WK.es.js.map +1 -0
  11. package/.chunks/dialog_regionSelectorRegions-Dc-YGZ0l.amd.js +2 -0
  12. package/.chunks/dialog_regionSelectorRegions-Dc-YGZ0l.amd.js.map +1 -0
  13. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang--Xstly2G.amd.js +2 -0
  14. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-8KsNy0Bd.amd.js.map → dialogs.vue_vue_type_script_setup_true_lang--Xstly2G.amd.js.map} +1 -1
  15. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DvkvzHEY.es.js → dialogs.vue_vue_type_script_setup_true_lang-BP6GFkkz.es.js} +111 -112
  16. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DvkvzHEY.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-BP6GFkkz.es.js.map} +1 -1
  17. package/.chunks/forms--2-YQeWM.amd.js +3 -0
  18. package/.chunks/{forms-DXX5M4DO.amd.js.map → forms--2-YQeWM.amd.js.map} +1 -1
  19. package/.chunks/forms-Cwv0JCi5.es.js +2035 -0
  20. package/.chunks/{forms-COXAfg9G.es.js.map → forms-Cwv0JCi5.es.js.map} +1 -1
  21. package/.chunks/index-DLUtoTUg.amd.js +2 -0
  22. package/.chunks/index-DLUtoTUg.amd.js.map +1 -0
  23. package/.chunks/index-DkQWJkMc.es.js +54 -0
  24. package/.chunks/index-DkQWJkMc.es.js.map +1 -0
  25. package/.chunks/notice-BCHrf2v6.es.js +191 -0
  26. package/.chunks/{notice-P7CXfEuX.es.js.map → notice-BCHrf2v6.es.js.map} +1 -1
  27. package/.chunks/notice-D1KO_E3H.amd.js +4 -0
  28. package/.chunks/{notice-CSGn_jTM.amd.js.map → notice-D1KO_E3H.amd.js.map} +1 -1
  29. package/.chunks/page.vue_vue_type_script_setup_true_lang-DNs0udwC.amd.js +2 -0
  30. package/.chunks/{page.vue_vue_type_script_setup_true_lang-DHPOnLj5.amd.js.map → page.vue_vue_type_script_setup_true_lang-DNs0udwC.amd.js.map} +1 -1
  31. package/.chunks/page.vue_vue_type_script_setup_true_lang-D_ocBGzt.es.js +139 -0
  32. package/.chunks/{page.vue_vue_type_script_setup_true_lang-D9m45rLs.es.js.map → page.vue_vue_type_script_setup_true_lang-D_ocBGzt.es.js.map} +1 -1
  33. package/.chunks/policy.vue_vue_type_style_index_0_lang-B61ZEDWr.es.js +494 -0
  34. package/.chunks/policy.vue_vue_type_style_index_0_lang-B61ZEDWr.es.js.map +1 -0
  35. package/.chunks/policy.vue_vue_type_style_index_0_lang-BUIBGweg.amd.js +2 -0
  36. package/.chunks/policy.vue_vue_type_style_index_0_lang-BUIBGweg.amd.js.map +1 -0
  37. package/.chunks/popup-DJMBWRtl.es.js +468 -0
  38. package/.chunks/popup-DJMBWRtl.es.js.map +1 -0
  39. package/.chunks/popup-c8qgGOCv.amd.js +2 -0
  40. package/.chunks/popup-c8qgGOCv.amd.js.map +1 -0
  41. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Bp_-W068.es.js +209 -0
  42. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Bp_-W068.es.js.map +1 -0
  43. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-D42xEF-j.amd.js +2 -0
  44. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-D42xEF-j.amd.js.map +1 -0
  45. package/.chunks/{utils-CWm0zAtM.es.js → utils-Bu-TI6uw.es.js} +192 -208
  46. package/.chunks/{utils-CWm0zAtM.es.js.map → utils-Bu-TI6uw.es.js.map} +1 -1
  47. package/.chunks/utils-C6nWu0aQ.amd.js +2 -0
  48. package/.chunks/{utils-D505nRsu.amd.js.map → utils-C6nWu0aQ.amd.js.map} +1 -1
  49. package/.chunks/utils-DHyy_M2n.amd.js +2 -0
  50. package/.chunks/{utils-DmxcQpWA.amd.js.map → utils-DHyy_M2n.amd.js.map} +1 -1
  51. package/.chunks/{utils-Rbz9mxy6.es.js → utils-cls72V1c.es.js} +23 -24
  52. package/.chunks/{utils-Rbz9mxy6.es.js.map → utils-cls72V1c.es.js.map} +1 -1
  53. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-BU-FdL6d.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-B3soLr2U.amd.js} +2 -2
  54. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-BU-FdL6d.amd.js.map → widgetInput.vue_vue_type_script_setup_true_lang-B3soLr2U.amd.js.map} +1 -1
  55. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-TVpBXc9F.es.js → widgetInput.vue_vue_type_script_setup_true_lang-HbtV9agA.es.js} +2 -2
  56. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-TVpBXc9F.es.js.map → widgetInput.vue_vue_type_script_setup_true_lang-HbtV9agA.es.js.map} +1 -1
  57. package/api/index.amd.js +1 -1
  58. package/api/index.amd.js.map +1 -1
  59. package/api/index.js +137 -134
  60. package/api/index.js.map +1 -1
  61. package/assets/dialog_regionSelectorRegions.css +1 -0
  62. package/assets/forms.css +1 -1
  63. package/assets/policy.css +1 -0
  64. package/assets/popupHint.css +1 -1
  65. package/assets/project.css +1 -1
  66. package/charts/charts.amd.js +1 -1
  67. package/charts/charts.amd.js.map +1 -1
  68. package/charts/charts.js +80 -80
  69. package/charts/charts.js.map +1 -1
  70. package/core/app.amd.js +1 -1
  71. package/core/app.amd.js.map +1 -1
  72. package/core/app.js +93 -96
  73. package/core/app.js.map +1 -1
  74. package/dialog/dialog.amd.js +1 -1
  75. package/dialog/dialog.amd.js.map +1 -1
  76. package/dialog/dialog.js +13 -13
  77. package/dialog/dialog.js.map +1 -1
  78. package/extra/extra.amd.js +1 -1
  79. package/extra/extra.amd.js.map +1 -1
  80. package/extra/extra.js +20 -23
  81. package/extra/extra.js.map +1 -1
  82. package/forms/forms.amd.js +1 -1
  83. package/forms/forms.js +5 -5
  84. package/formsExt/formsExt.amd.js +1 -1
  85. package/formsExt/formsExt.amd.js.map +1 -1
  86. package/formsExt/formsExt.js +180 -541
  87. package/formsExt/formsExt.js.map +1 -1
  88. package/layout/layout.amd.js +1 -1
  89. package/layout/layout.js +6 -6
  90. package/package.json +2 -2
  91. package/popup/popup.amd.js +1 -1
  92. package/popup/popup.amd.js.map +1 -1
  93. package/popup/popup.js +43 -46
  94. package/popup/popup.js.map +1 -1
  95. package/popup/worker.amd.js +1 -1
  96. package/popup/worker.amd.js.map +1 -1
  97. package/popup/worker.js +9 -9
  98. package/popup/worker.js.map +1 -1
  99. package/project/project.amd.js +1 -1
  100. package/project/project.amd.js.map +1 -1
  101. package/project/project.js +869 -607
  102. package/project/project.js.map +1 -1
  103. package/src/api/api/client/client.d.ts +5 -0
  104. package/src/api/api/mocker/index.d.ts +3 -3
  105. package/src/api/api/types/client/request.d.ts +6 -0
  106. package/src/api/api/types/mocker.d.ts +2 -2
  107. package/src/components/formsExt/formsExt.d.ts +1 -0
  108. package/src/components/formsExt/selector2/cache.d.ts +12 -0
  109. package/src/components/formsExt/selector2/composables/useAPI.d.ts +2033 -0
  110. package/src/components/formsExt/selector2/composables/useMenu.d.ts +2045 -5
  111. package/src/components/formsExt/selector2/itemMulti.vue.d.ts +3 -3
  112. package/src/components/formsExt/selector2/selector2.vue.d.ts +9 -3
  113. package/src/components/formsExt/selector2/types.d.ts +25 -8
  114. package/src/components/formsExt/selector2/utils.d.ts +16 -0
  115. package/src/components/popup/lib/popup.d.ts +0 -1
  116. package/src/components/popup/popup/opener/types.d.ts +6 -2
  117. package/src/components/popup/popup/types.d.ts +3 -2
  118. package/src/components/popup/popup.d.ts +1 -1
  119. package/src/components/project/groupSelector/folders/folders.vue.d.ts +18 -0
  120. package/src/components/project/groupSelector/folders/types.d.ts +63 -0
  121. package/src/components/project/groupSelector/folders/utils.d.ts +63 -0
  122. package/src/components/project/groupSelector/groupSelector.vue.d.ts +28 -0
  123. package/src/components/project/groupSelector/groups/groups.vue.d.ts +125 -0
  124. package/src/components/project/groupSelector/groups/types.d.ts +57 -0
  125. package/src/components/project/groupSelector/groups/utils.d.ts +92 -0
  126. package/src/components/project/groupSelector/stories/mocks/folders.d.ts +4 -0
  127. package/src/components/project/groupSelector/stories/mocks/groups.d.ts +2 -0
  128. package/src/components/project/groupSelector/stories/mocks/index.d.ts +7 -0
  129. package/src/components/project/groupSelector/types.d.ts +129 -0
  130. package/src/components/project/project.d.ts +15 -4
  131. package/src/components/project/{selectorRegion → regionSelector}/utils/utils.d.ts +3 -3
  132. package/src/core/utils/composables/useWatch.d.ts +32 -0
  133. package/tabs/tabs.amd.js +1 -1
  134. package/tabs/tabs.amd.js.map +1 -1
  135. package/tabs/tabs.js +24 -24
  136. package/tabs/tabs.js.map +1 -1
  137. package/tabsView/tabsView.amd.js +1 -1
  138. package/tabsView/tabsView.amd.js.map +1 -1
  139. package/tabsView/tabsView.js +131 -133
  140. package/tabsView/tabsView.js.map +1 -1
  141. package/utils/clipboard.amd.js +1 -1
  142. package/utils/clipboard.js +1 -1
  143. package/utils/date.amd.js +1 -1
  144. package/utils/date.js +1 -1
  145. package/utils/device.amd.js +1 -1
  146. package/utils/device.js +1 -1
  147. package/utils/lodash.amd.js +1 -1
  148. package/utils/lodash.js +1 -1
  149. package/utils/price.amd.js +1 -1
  150. package/utils/price.js +1 -1
  151. package/utils/scroll.amd.js +1 -1
  152. package/utils/scroll.amd.js.map +1 -1
  153. package/utils/scroll.js +14 -14
  154. package/utils/scroll.js.map +1 -1
  155. package/utils/searchers.amd.js +1 -1
  156. package/utils/searchers.js +3 -3
  157. package/utils/string.amd.js +1 -1
  158. package/utils/string.amd.js.map +1 -1
  159. package/utils/string.js +3 -7
  160. package/utils/string.js.map +1 -1
  161. package/.chunks/core-CaWxDXrZ.es.js +0 -197
  162. package/.chunks/core-CaWxDXrZ.es.js.map +0 -1
  163. package/.chunks/core-DmO1i1Ua.amd.js +0 -2
  164. package/.chunks/core-DmO1i1Ua.amd.js.map +0 -1
  165. package/.chunks/dialog_selectorRegions-DoEjgXtb.es.js +0 -190
  166. package/.chunks/dialog_selectorRegions-DoEjgXtb.es.js.map +0 -1
  167. package/.chunks/dialog_selectorRegions-DzufTzj9.amd.js +0 -2
  168. package/.chunks/dialog_selectorRegions-DzufTzj9.amd.js.map +0 -1
  169. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-8KsNy0Bd.amd.js +0 -2
  170. package/.chunks/forms-COXAfg9G.es.js +0 -2047
  171. package/.chunks/forms-DXX5M4DO.amd.js +0 -3
  172. package/.chunks/index-BEI7XZmU.amd.js +0 -2
  173. package/.chunks/index-BEI7XZmU.amd.js.map +0 -1
  174. package/.chunks/index-igPkes8X.es.js +0 -48
  175. package/.chunks/index-igPkes8X.es.js.map +0 -1
  176. package/.chunks/listItem.vue_vue_type_script_setup_true_lang--W1RouXP.es.js +0 -199
  177. package/.chunks/listItem.vue_vue_type_script_setup_true_lang--W1RouXP.es.js.map +0 -1
  178. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DzV225TL.amd.js +0 -2
  179. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DzV225TL.amd.js.map +0 -1
  180. package/.chunks/menu.vue_vue_type_style_index_0_lang-BiyxTfdE.es.js +0 -112
  181. package/.chunks/menu.vue_vue_type_style_index_0_lang-BiyxTfdE.es.js.map +0 -1
  182. package/.chunks/menu.vue_vue_type_style_index_0_lang-D3OAqOqX.amd.js +0 -2
  183. package/.chunks/menu.vue_vue_type_style_index_0_lang-D3OAqOqX.amd.js.map +0 -1
  184. package/.chunks/notice-CSGn_jTM.amd.js +0 -4
  185. package/.chunks/notice-P7CXfEuX.es.js +0 -194
  186. package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js +0 -36
  187. package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js.map +0 -1
  188. package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js +0 -2
  189. package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js.map +0 -1
  190. package/.chunks/page.vue_vue_type_script_setup_true_lang-D9m45rLs.es.js +0 -143
  191. package/.chunks/page.vue_vue_type_script_setup_true_lang-DHPOnLj5.amd.js +0 -2
  192. package/.chunks/popup-CF4k7j3U.amd.js +0 -2
  193. package/.chunks/popup-CF4k7j3U.amd.js.map +0 -1
  194. package/.chunks/popup-G7FYKscC.es.js +0 -485
  195. package/.chunks/popup-G7FYKscC.es.js.map +0 -1
  196. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +0 -2
  197. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +0 -1
  198. package/.chunks/utils-D505nRsu.amd.js +0 -2
  199. package/.chunks/utils-DmxcQpWA.amd.js +0 -2
  200. package/assets/dialog_selectorRegions.css +0 -1
  201. package/assets/formsExt.css +0 -1
  202. package/assets/listItem.css +0 -1
  203. package/assets/menu.css +0 -1
  204. package/src/components/popup/popup/opener.vue.d.ts +0 -17
  205. /package/src/components/project/{selectorCompetitors/selectorCompetitors.vue.d.ts → competitorSelector/competitorSelector.vue.d.ts} +0 -0
  206. /package/src/components/project/{selectorCompetitors → competitorSelector}/composables.d.ts +0 -0
  207. /package/src/components/project/{selectorCompetitors → competitorSelector}/types.d.ts +0 -0
  208. /package/src/components/project/{selectorRegion → regionSelector}/composables/compare.d.ts +0 -0
  209. /package/src/components/project/{selectorRegion → regionSelector}/composables/selectRegion.d.ts +0 -0
  210. /package/src/components/project/{selectorRegion → regionSelector}/composables/selectSearcher.d.ts +0 -0
  211. /package/src/components/project/{selectorRegion → regionSelector}/composables/selectorRegion.d.ts +0 -0
  212. /package/src/components/project/{selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue.d.ts → regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue.d.ts} +0 -0
  213. /package/src/components/project/{selectorRegion/dialog_selectorRegions → regionSelector/dialog_regionSelectorRegions}/types.d.ts +0 -0
  214. /package/src/components/project/{selectorRegion/selectorRegion.vue.d.ts → regionSelector/regionSelector.vue.d.ts} +0 -0
  215. /package/src/components/project/{selectorRegion → regionSelector}/types.d.ts +0 -0
  216. /package/src/components/project/{selectorRegion → regionSelector}/utils/consts.d.ts +0 -0
@@ -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\">\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.Cancel }}\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.Cancel }}\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
+ {"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.Cancel }}\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.Cancel }}\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-DXX5M4DO.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,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.topPopupOpenByFocus&&(o.openByFocus=t.dataset.topPopupOpenByFocus==="true"),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-CF4k7j3U.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--2-YQeWM.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,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-c8qgGOCv.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 r=100;for(const s of p){if(s.querySelector(":scope > .top-active"))break;s instanceof HTMLElement&&(r+=s.offsetHeight)}if(e instanceof HTMLElement){const s=e.offsetHeight;r>s?e.scrollTop=r-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 r in o){const s="topPopup"+r.charAt(0).toUpperCase()+r.slice(1);p.dataset[s]=o[r]}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":["/**\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 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\tif (elOpener.dataset.topPopupOpenByFocus) {\n\t\t\toptions.openByFocus = elOpener.dataset.topPopupOpenByFocus === 'true';\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,8EAWAA,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,KAGDA,EAAA,QAAA,4EAOAA,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 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,8EAWAA,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-COXAfg9G.es.js";
1
+ import { C as Core } from "../.chunks/forms-Cwv0JCi5.es.js";
2
2
  import DOM from "../utils/dom.js";
3
3
  class Worker {
4
4
  /**
@@ -42,7 +42,7 @@ class Worker {
42
42
  static async openByOpener(t) {
43
43
  if (!(t instanceof HTMLElement)) return;
44
44
  const o = {};
45
- return o.popup = t.dataset.topPopup, o.id = t.dataset.topPopupId, t.dataset.topPopupP && (o.p = parseInt(t.dataset.topPopupP)), t.dataset.topPopupPos && (o.p = parseInt(t.dataset.topPopupPos)), t.dataset.topPopupNotch && (o.notch = t.dataset.topPopupNotch === "true" || t.dataset.topPopupNotch === "1"), t.dataset.topPopupClass && (o.class = t.dataset.topPopupClass), t.dataset.topPopupPosBy && (o.posBy = t.dataset.topPopupPosBy), t.dataset.topPopupFront && (o.frontSelector = t.dataset.topPopupFront), t.dataset.topPopupInvertX && (o.invertX = t.dataset.topPopupInvertX === "true" || t.dataset.topPopupInvertX === "1"), t.dataset.topPopupOpenByFocus && (o.openByFocus = t.dataset.topPopupOpenByFocus === "true"), 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);
45
+ return o.popup = t.dataset.topPopup, o.id = t.dataset.topPopupId, t.dataset.topPopupP && (o.p = parseInt(t.dataset.topPopupP)), t.dataset.topPopupPos && (o.p = parseInt(t.dataset.topPopupPos)), t.dataset.topPopupNotch && (o.notch = t.dataset.topPopupNotch === "true" || t.dataset.topPopupNotch === "1"), t.dataset.topPopupClass && (o.class = t.dataset.topPopupClass), t.dataset.topPopupPosBy && (o.posBy = t.dataset.topPopupPosBy), t.dataset.topPopupFront && (o.frontSelector = t.dataset.topPopupFront), t.dataset.topPopupInvertX && (o.invertX = t.dataset.topPopupInvertX === "true" || t.dataset.topPopupInvertX === "1"), t.dataset.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);
46
46
  }
47
47
  /**
48
48
  * Создать и открыть Popup
@@ -51,7 +51,7 @@ class Worker {
51
51
  */
52
52
  static async open(elOpener, options) {
53
53
  elOpener instanceof HTMLElement && (elOpener.dataset.topPopupOpened = "opened");
54
- const { TopLibPopup } = await import("../.chunks/popup-G7FYKscC.es.js");
54
+ const { TopLibPopup } = await import("../.chunks/popup-DJMBWRtl.es.js");
55
55
  if (Core.$) {
56
56
  const $elOpener = Core.$(elOpener);
57
57
  if ($elOpener.data("aftershow")) {
@@ -87,15 +87,15 @@ class Worker {
87
87
  return;
88
88
  const e = t.querySelector("ul.top-popup_content"), p = DOM.querySelectorAllVisible(t, "ul.top-popup_content > li");
89
89
  t.classList.add("top-popup-wrapper-no_animate"), setTimeout(() => t.classList.remove("top-popup-wrapper-no_animate"), 100);
90
- let s = 100;
90
+ let r = 100;
91
91
  for (const a of p) {
92
92
  if (a.querySelector(":scope > .top-active"))
93
93
  break;
94
- a instanceof HTMLElement && (s += a.offsetHeight);
94
+ a instanceof HTMLElement && (r += a.offsetHeight);
95
95
  }
96
96
  if (e instanceof HTMLElement) {
97
97
  const a = e.offsetHeight;
98
- s > a ? e.scrollTop = s - a : e.scrollTop = 0;
98
+ r > a ? e.scrollTop = r - a : e.scrollTop = 0;
99
99
  }
100
100
  }
101
101
  static decoratorBeforeOpen(t) {
@@ -129,9 +129,9 @@ class Worker {
129
129
  static genElPopupOpener(t, o, ...e) {
130
130
  const p = DOM.genEl(t, {}, ...e);
131
131
  p.dataset.topPopup = "#" + o.id;
132
- for (let s in o) {
133
- const a = "topPopup" + s.charAt(0).toUpperCase() + s.slice(1);
134
- p.dataset[a] = o[s];
132
+ for (let r in o) {
133
+ const a = "topPopup" + r.charAt(0).toUpperCase() + r.slice(1);
134
+ p.dataset[a] = o[r];
135
135
  }
136
136
  return p.__TopPopupOpenerProps = o, p;
137
137
  }
@@ -1 +1 @@
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 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\tif (elOpener.dataset.topPopupOpenByFocus) {\n\t\t\toptions.openByFocus = elOpener.dataset.topPopupOpenByFocus === 'true';\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
+ {"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 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":";;AA6BA,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,EAKZ,OAAO,UAAU;AAAA;AAAA;AAAA;AAAA,EAKjB,OAAO,gBAAgB,oBAAI,IAAA;AAAA,EAE3B,OAAO,UAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK1B,OAAO,SAASA,GAAmC;AAClD,WAAO,IAAI,QAAQA,GAAS,UAAU;AAAA,EACvC;AAAA,EAEA,OAAO,iBAAiBC,GAAiC;AACxD,WAAOA,EAAG,QAAqB,kBAAkB;AAAA,EAClD;AAAA,EAEA,OAAO,mBAAmBA,GAAqC;AAC9D,UAAMC,IAAW,OAAO,iBAAiBD,CAAE;AAC3C,WAAKC,IAEE,IAAI,QAAQA,GAAU,WAAW,IAFlB;AAAA,EAGvB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,SAAwB;AAC9B,WAAO,IAAI,sBAAsB,UAAU,oBAAoB;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,gBAA+B;AACrC,WAAO,IAAI,wBAAwB,UAAU,oBAAoB;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,aAAaA,GAAyD;AAClF,QAAI,EAAEA,aAAoB,aAAc;AAExC,UAAMC,IAAwB,CAAA;AAE9BA,WAAAA,EAAQ,QAAQD,EAAS,QAAQ,UAEjCC,EAAQ,KAAKD,EAAS,QAAQ,YAK1BA,EAAS,QAAQ,cACpBC,EAAQ,IAAI,SAASD,EAAS,QAAQ,SAAS,IAG5CA,EAAS,QAAQ,gBACpBC,EAAQ,IAAI,SAASD,EAAS,QAAQ,WAAW,IAM9CA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,kBAAkB,UAAUA,EAAS,QAAQ,kBAAkB,MAG7FA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,gBAG9BA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,gBAG9BA,EAAS,QAAQ,kBACpBC,EAAQ,gBAAgBD,EAAS,QAAQ,gBAMtCA,EAAS,QAAQ,oBACpBC,EAAQ,UAAUD,EAAS,QAAQ,oBAAoB,UAAUA,EAAS,QAAQ,oBAAoB,MAMnGA,EAAS,QAAQ,2CACpBC,EAAQ,cAAcD,EAAS,QAAQ,wBAAwB,UAAUA,EAAS,QAAQ,wBAAwB,MAM/GA,EAAS,QAAQ,wBACpBC,EAAQ,cAAcD,EAAS,QAAQ,wBAAwB,UAAUA,EAAS,QAAQ,wBAAwB,MAG5G,MAAM,OAAO,KAAKA,GAAUC,CAAO;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAqB,KAAK,UAAuB,SAA6C;AAC7F,IAAI,oBAAoB,gBAAa,SAAS,QAAQ,iBAAiB;AAEvE,UAAM,EAAE,YAAA,IAAgB,MAAM,OAAO,iCAAS;AAE9C,QAAI,KAAK,GAAG;AACX,YAAM,YAAY,KAAK,EAAE,QAAQ;AAGjC,UAAI,UAAU,KAAK,WAAW,GAAG;AAChC,YAAI,YAAY,UAAU,KAAK,WAAW;AAC1C,QAAI,OAAQ,aAAc,aAGzB,YAAY,KAAK,UAAU,QAAQ,OAAO,EAAE,CAAC,IAG9C,UAAU,IAAI,4BAA4B,SAAS;AAAA,MACpD;AAGA,UAAI,UAAU,KAAK,YAAY,GAAG;AACjC,YAAI,aAAa,UAAU,KAAK,YAAY;AAC5C,QAAI,OAAQ,cAAe,aAG1B,aAAa,KAAK,WAAW,QAAQ,OAAO,EAAE,CAAC,IAGhD,UAAU,IAAI,6BAA6B,UAAU;AAAA,MACtD;AAAA,IACD;AAEA,mBAAQ,eAAe,KAAK,MAAM,UAE3B,IAAI,YAAY,UAAU,OAAO;AAAA,EACzC;AAAA,EAEA,OAAO,MAAMH,GAAsBI,IAAe,IAAa;AAC9D,UAAMC,IAAQ,OAAO,SAASL,CAAO;AAErC,QAAIK,GAAO;AACV,MAAAA,EAAM,MAAA;AAEN,YAAMC,IAAYD,EAAM,GAAG,SAAS,SAAS,aAAa;AAE1D,MAAID,KAAgB,CAACE,KACpB,WAAW,MAAM;AAChB,QAAAD,EAAM,GAAG,MAAA;AAAA,MACV,CAAC;AAAA,IAEH;AAAA,EACD;AAAA,EAEA,OAAO,eAAeL,GAA4B;AACjD,UAAMK,IAAQ,OAAO,SAASL,CAAO;AACrC,IAAIK,KAASA,EAAM,uBAAuB,eACzCA,EAAM,eAAA;AAAA,EAER;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,eAAeL,GAA4B;AAEjD,QAAI,CADiB,IAAI,qBAAqBA,GAAS,yCAAyC;AAE/F;AAGD,UAAMO,IAAOP,EAAQ,cAAc,sBAAsB,GACnDQ,IAAQ,IAAI,wBAAwBR,GAAS,2BAA2B;AAE9E,IAAAA,EAAQ,UAAU,IAAI,8BAA8B,GACpD,WAAW,MAAMA,EAAQ,UAAU,OAAO,8BAA8B,GAAG,GAAG;AAE9E,QAAIS,IAAM;AACV,eAAWC,KAAQF,GAAO;AACzB,UAAIE,EAAK,cAAc,sBAAsB;AAC5C;AAGD,MAAIA,aAAgB,gBAAaD,KAAOC,EAAK;AAAA,IAC9C;AAEA,QAAIH,aAAgB,aAAa;AAChC,YAAMI,IAAgBJ,EAAK;AAC3B,MAAIE,IAAME,IACTJ,EAAK,YAAYE,IAAME,IAEvBJ,EAAK,YAAY;AAAA,IAEnB;AAAA,EACD;AAAA,EAEA,OAAO,oBAAoBF,GAA+B;AACzD,IAAI,KAAK,QAAQ,uBAChB,KAAK,QAAQ,oBAAoBA,CAAK;AAAA,EAExC;AAAA,EAEA,OAAO,mBAAmBA,GAA+B;AACxD,IAAI,KAAK,QAAQ,sBAChB,KAAK,QAAQ,mBAAmBA,CAAK;AAAA,EAEvC;AAAA,EAEA,OAAO,4BAA4BO,GAAwB;AAC1D,WAAI,KAAK,QAAQ,8BACT,KAAK,QAAQ,4BAA4BA,CAAC,IAG3C;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,gBAAgBC,GAAYC,GAAyB;AAC3D,QAAI,OAAO,cAAc,IAAID,CAAE;AAC9B,YAAM,4CAA4CA;AAGnD,WAAO,cAAc,IAAIA,GAAIC,CAAY;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,kBAAkBD,GAAkB;AAC1C,WAAO,cAAc,OAAOA,CAAE;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,iBAAiBE,GAAiBC,MAAuBC,GAAqD;AACpH,UAAMhB,IAAK,IAAI,MAAMc,GAAS,CAAA,GAAI,GAAGE,CAAY;AAEjD,IAAAhB,EAAG,QAAQ,WAAW,MAAMe,EAAM;AAMlC,aAASE,KAAQF,GAAO;AACvB,YAAMG,IAAW,aAAaD,EAAK,OAAO,CAAC,EAAE,gBAAgBA,EAAK,MAAM,CAAC;AAEzE,MAAAjB,EAAG,QAAQkB,CAAQ,IAAIH,EAAME,CAAI;AAAA,IAClC;AAEA,WAAAjB,EAAG,wBAAwBe,GAEpBf;AAAA,EACR;AAED;"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-DXX5M4DO.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-DzV225TL.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-D3OAqOqX.amd","../.chunks/utils-D505nRsu.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd","../require/css.amd!../assets/project.css"],(function(ne,T,e,x,b,oe,le,P,E,ae,re){"use strict";if(typeof e>"u")var e=window.Vue;const ie={class:"top-selectorCompetitors"},ue={class:"top-ellipsis1"},se=e.defineComponent({__name:"selectorCompetitors",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const o=n,r=e.useModel(n,"modelValue"),t=e.computed(()=>{if(o.showSelectAllItem)return{icon:"",title:x.useI18n().Common.Select_all,value:"all",content:""}});return(u,l)=>(e.openBlock(),e.createElementBlock("div",ie,[e.unref(x.Core).state.isMobile?(e.openBlock(),e.createBlock(b._sfc_main,{key:0},{opener:e.withCtx(()=>[e.createVNode(x._sfc_main$1,{class:"top-selectorCompetitors_opener",color:"theme",icon:"",icon2:""},{default:e.withCtx(()=>{var a;return[e.createTextVNode(e.toDisplayString((a=u.items.find(d=>{var v;return d.value===((v=r.value)==null?void 0:v[0])}))==null?void 0:a.content),1)]}),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.items,a=>{var d;return e.openBlock(),e.createBlock(b._sfc_main$1,{class:e.normalizeClass({"top-active":(d=r.value)==null?void 0:d.includes(a.value)}),"data-top-icon":a.icon,title:a.title,onClick:()=>r.value=[a.value]},{default:e.withCtx(()=>[e.createElementVNode("span",ue,e.toDisplayString(a.content),1)]),_:2},1032,["class","data-top-icon","title","onClick"])}),256))]),_:1})):(e.openBlock(),e.createBlock(oe._sfc_main,{key:1,modelValue:r.value,"onUpdate:modelValue":l[0]||(l[0]=a=>r.value=a),items:u.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:t.value},null,8,["modelValue","items","selectAllItem"]))]))}}),de=(n,o)=>e.computed(()=>e.toValue(n).filter(u=>u.on>=0||u.id===o).map(u=>({value:u.id,title:u.url+` [${u.id}]`,icon:u.id===e.toValue(o)?"":"",content:u.name}))),w=-1,p=-2,R=-1,ce={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},J={key:p,name:"--",index:p},G={key:p,name:"--",regions:[J],regionByIndex:new Map([[p,J]])},A={key:p,name:"Autoselect",index:p},U={key:p,name:"Autoselect",regions:[A],regionByIndex:new Map([[p,A]])},Y={countryCode:"00",depth:1,device:0,key:R,index:R,lang:"ru",name:"Without region"},ge=()=>(A.name=x.useI18n().Common.Autoselect,A),fe=()=>(ge(),U.name=x.useI18n().Common.Autoselect,console.log(U),U),me=()=>(Y.name=x.useI18n().Keywords.Without_region,Y),z=(n=!1,o=!1,r=[])=>{let t;return n?t=ve(r):t=W(r),o&&t.set(p,fe()),t.size||t.set(p,G),t},W=(n,o=!0,r=[],t=!1)=>{const u=new Map;return n.forEach(l=>{if(!l.enabled||t&&typeof l.key=="number"&&l.key>1)return;const a={...l};a.regionByIndex=new Map,l.regions&&l.regions.forEach(d=>{if(o&&!d.enabled)return;const v={...d};a.regionByIndex.set(v.index,v)}),!a.regionByIndex.size&&r.length,(!l.regions||a.regionByIndex.size||r.length)&&typeof a.key=="number"&&u.set(a.key,a)}),r.forEach(l=>{if(u.has(l))return;const a={key:l,name:ce[l],regions:[],regionByIndex:new Map};u.set(a.key,a)}),u},ve=n=>{const o=W(n,!1,[0,1],!0);if(o.has(2)){const r=o.get(2);r&&(r.regionByIndex=new Map)}return o.forEach(r=>{if(!r.regionByIndex)return;const t={...me()};r.regionByIndex.set(t.index,t)}),o},H=(n,o,r=[])=>{const t=z(n,!1,r);let u;return t.forEach(l=>{if(!(o.searcher_key!==void 0&&o.searcher_key!=l.key)&&l.regions&&(l.regions.forEach(a=>{if(!u&&!(o.key!==void 0&&o.key!=a.key)&&!(o.index!==void 0&&o.index!=a.index)&&!(!n&&(o.lang!==void 0&&o.lang!=a.lang||o.device!==void 0&&o.device!=a.device)))return a.searcher_key=l.key,u=a,!1}),u))return!1}),u},Q=le.useAsyncTopDialog(()=>new Promise((n,o)=>ne(["../.chunks/dialog_selectorRegions-DzufTzj9.amd"],n,o))),ye=(n,o)=>{const r=x.useI18n(),t=e.ref(o.value.keys().next().value??p),u=e.computed(()=>{const l=new Map;if(o.value.forEach(a=>{let d={value:a.key,title:a.name};n.addSearcherIcon&&(d.icon=P.getSearcherGIcon(a.key)),l.set(a.key,d)}),n.addCompare&&!l.has(p)){const a={value:"",title:"--------------------",disabled:!0};l.set(a.value,a);const d={value:w,title:r.Common.Compare};l.set(d.value,d)}return l});return{searcherKey:t,optionBySearcherKey:u}},pe=(n,o)=>{var l,a,d;const r=x.useI18n(),t=e.ref(p);n.modelValue.length===1&&(t.value=n.modelValue[0]),t.value===p&&(n.forFrequency?t.value=((a=(l=o.value)==null?void 0:l.regionByIndex.values().next().value)==null?void 0:a.key)??p:t.value=((d=o.value)==null?void 0:d.regionByIndex.keys().next().value)??p);const u=e.computed(()=>{var h;const v=new Map;return(h=o.value.regionByIndex)==null||h.forEach(k=>{let i=k.name;if(n.forFrequency){const I={value:k.key,title:i};v.has(k.key)||v.set(k.key,I);return}k.device&&(i+=" ("+r.Common["Device_"+k.device]+")");const f=P.getLangLabel(o.value.key||0,k.lang??"");f&&(i+=" / "+f);const c={value:k.index,title:i,icon:k.device?P.getDeviceGIcon(k.device):void 0};v.set(k.index,c)}),v});return e.watch(u,(v,h)=>{var c;if(n.onlySearcher||t.value!==void 0&&v.get(t.value))return;let k=v.keys().next().value;if(t.value===p||k===p){t.value=k;return}let i=((c=h==null?void 0:h.get(t.value))==null?void 0:c.title)||"",f=-1;for(const[I,C]of v.entries()){const B=C.title;if(typeof B!="string"||typeof I=="string")break;if(B===i){k=I;break}const V=new RegExp(` \\((${r.Common.Device_1}|${r.Common.Device_2})\\)`);let m=i,s=3;B.indexOf(m)===-1&&(m=i.replace(/^[^a-zа-я]/i,"").replace(V,""),s--),B.indexOf(m)===-1&&(m=i.replace(/ \/.*/,""),s--),B.indexOf(m)===-1&&(m=i.replace(/ \/.*/,""),m=m.replace(/^[^a-zа-я]/i,"").replace(V,""),s--),B.indexOf(m)!==-1&&(s<=f||(f=s,k=I))}t.value=k}),{regionIndex:t,optionByRegionIndex:u}},he=(n,o,r)=>{const t=e.ref([]),u=()=>{if(n.onlySearcher&&o.value){t.value=Array.from(o.value.keys());return}let a=[];if(n.modelValue.length>1)a=[...n.modelValue];else try{a=JSON.parse(localStorage.getItem("ui:project:regionSelector"+n.projectId+":regionsIndexes"))??[]}catch{}a.length&&(a=a.filter(d=>r.value.has(d))),a.length||(a=Array.from(r.value)),t.value=[...a]},l=()=>{t.value.length?localStorage.setItem("ui:project:regionSelector:"+n.projectId+":regionsIndexes",JSON.stringify(t.value)):localStorage.removeItem("ui:project:regionSelector:"+n.projectId+":regionsIndexes")};return e.watch(t,()=>{l()}),n.addCompare&&u(),{regionsIndexes:t}},ke=n=>{const o=e.computed(()=>z(n.forFrequency,n.autoRegion,n.searchers)),r=e.computed(()=>o.value.get(u.searcherKey.value)||G),t=e.computed(()=>{const i=new Set;return o.value.forEach(f=>{f.regionByIndex.forEach(c=>{c.index!==R&&c.index!==p&&i.add(c.index)})}),i}),u=ye(n,o),l=pe(n,r),a=he(n,o,t);e.watch(o,()=>{var f,c,I,C;if(n.onlySearcher?a.regionsIndexes.value=Array.from(o.value.keys()):a.regionsIndexes.value=a.regionsIndexes.value.filter(B=>t.value.has(B)),u.searcherKey.value===w)return;let i=o.value.keys().next().value;o.value.forEach(B=>{var V,m,s;if(n.onlySearcher&&B.key===u.searcherKey.value){i=u.searcherKey.value;return}if(l.regionIndex.value&&((V=B.regionByIndex)!=null&&V.has(l.regionIndex.value))&&(i=B.key),!n.onlySearcher){let g;i!==void 0&&(g=(m=o.value.get(i))==null?void 0:m.regionByIndex);const y=(s=o.value.get(B.key))==null?void 0:s.regionByIndex;g!=null&&g.has(p)&&!(y!=null&&y.has(p))&&(i=B.key)}}),i!==void 0&&(u.searcherKey.value=i),l.regionIndex.value!==void 0&&!((c=(f=r.value)==null?void 0:f.regionByIndex)!=null&&c.has(l.regionIndex.value))&&(l.regionIndex.value=(C=(I=r.value)==null?void 0:I.regions)==null?void 0:C.keys().next().value)},{immediate:!0});const d=()=>{if(!(u.searcherKey.value===w||u.searcherKey.value===p))return u.searcherKey.value},v=()=>{if(n.onlySearcher||l.regionIndex.value===p)return;let i=l.regionIndex.value;if(n.forFrequency){const f=l.regionIndex.value,c=H(n.forFrequency,{searcher_key:d(),key:f},n.searchers);i=c==null?void 0:c.index}return i},h=()=>{const i=d();if(i!==void 0)return o.value.get(i)};return{selectSearcher:u,selectRegion:l,compare:a,searcherByKey:o,allRegionsIndexes:t,getSearcher:h,getRegion:()=>{var f,c;const i=v();if(i!==void 0)return(c=(f=h())==null?void 0:f.regionByIndex)==null?void 0:c.get(i)}}},Se=e.defineComponent({__name:"selectorRegion",props:e.mergeModels({projectId:{},searchers:{default:()=>[]},modelValue:{},modelValueSingle:{},addCompare:{type:Boolean},forFrequency:{type:Boolean},autoRegion:{type:Boolean},onlySearcher:{type:Boolean},addChanger:{type:Boolean,default:!0},addSearcherIcon:{type:Boolean,default:!0},addRegionIcon:{type:Boolean,default:!0}},{modelValue:{required:!0},modelModifiers:{},modelValueSingle:{},modelValueSingleModifiers:{}}),emits:["update:modelValue","update:modelValueSingle"],setup(n,{expose:o}){const r=n,t=e.useModel(n,"modelValue"),u=e.useModel(n,"modelValueSingle"),{selectSearcher:l,selectRegion:a,compare:d,searcherByKey:v,allRegionsIndexes:h,getSearcher:k,getRegion:i}=ke(r),f=()=>{const c=[];v.value.forEach(I=>{I.enabled&&I.regions.forEach(C=>{C.enabled&&c.push(C)})}),Q.open("selectorRegions",{regions:c,regionsIndexes:d.regionsIndexes.value,"@update:regionsIndexes":I=>d.regionsIndexes.value=I})};return e.watch([a.regionIndex,l.searcherKey,d.regionsIndexes],()=>{if(l.searcherKey.value===w&&d.regionsIndexes.value.length){if(JSON.stringify(t.value)===JSON.stringify(d.regionsIndexes.value))return;t.value=[...d.regionsIndexes.value]}else r.onlySearcher?(t.value=[l.searcherKey.value],l.searcherKey.value===p&&!r.autoRegion&&(t.value.length=0)):(t.value=[a.regionIndex.value],a.regionIndex.value===p&&!r.autoRegion&&(t.value.length=0));!r.onlySearcher&&!h.value.size&&(l.searcherKey.value=p)}),u.value&&e.watch(u,()=>{u.value&&(t.value=[u.value])},{immediate:!0}),e.watch(t,()=>{var c,I,C,B,V;if(t.value[0]&&(u.value=t.value[0]),r.onlySearcher){if(!t.value.length||t.value.length===1&&!v.value.has(t.value[0])||t.value.length===1&&t.value[0]===p&&!r.autoRegion){let m=v.value.keys().next().value;m===p&&!r.autoRegion&&(m=void 0,u.value=p),m!==void 0?t.value=[m]:t.value.length=0;return}if(t.value.length>1&&JSON.stringify(t.value)!==JSON.stringify(d.regionsIndexes.value)){t.value=[...d.regionsIndexes.value];return}}else{let m=[...new Set(t.value)],s=(I=(c=v.value.values().next().value)==null?void 0:c.regionByIndex)==null?void 0:I.keys().next().value;if(r.forFrequency&&(s=(V=(B=(C=v.value.values().next().value)==null?void 0:C.regionByIndex)==null?void 0:B.values().next().value)==null?void 0:V.key),s===p&&!r.autoRegion&&(s=void 0,u.value=p),!m.length)s!==void 0&&m.push(s);else if(m.length===1){let g=h.value;r.forFrequency&&(g=new Set,v.value.forEach(y=>{y.regionByIndex.forEach(S=>{S.index!==R&&S.index!==p&&g.add(S.key)})})),g.has(m[0])||(m=[],s!==void 0&&m.push(s))}else m=m.filter(g=>h.value.has(g)),!m.length&&s!==void 0&&m.push(s);if(JSON.stringify(t.value)!==JSON.stringify(m)){t.value=m;return}}if(!(t.value.length===1&&t.value[0]===(r.onlySearcher?l.searcherKey.value:a.regionIndex.value)))if(r.onlySearcher){if(t.value.length===1){l.searcherKey.value=t.value[0];return}l.searcherKey.value=w;return}else{if(!t.value.length)return;if(t.value.length===1&&l.searcherKey.value!==w){a.regionIndex.value=t.value[0];let m;for(const s of v.value.values()){for(const g of s.regionByIndex.values())if((r.forFrequency?g.key:g.index)===a.regionIndex.value){m=s.key;break}if(m!==void 0)break}m!==void 0&&(l.searcherKey.value=m)}else l.searcherKey.value=w,d.regionsIndexes.value=[...t.value]}},{immediate:!0}),o({getSearcher:k,getRegion:i}),(c,I)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-selectorRegion":!0,"top-selectorRegion-onlySearcher":c.onlySearcher})},[e.createVNode(x._sfc_main$9,{options:e.unref(l).optionBySearcherKey.value,modelValue:e.unref(l).searcherKey.value,"onUpdate:modelValue":I[0]||(I[0]=C=>e.unref(l).searcherKey.value=C),name:"searcher_key",addChanger:c.addChanger},null,8,["options","modelValue","addChanger"]),!c.onlySearcher&&e.unref(l).searcherKey.value!==e.unref(w)?(e.openBlock(),e.createBlock(x._sfc_main$9,{key:0,class:"top-select-region",options:e.unref(a).optionByRegionIndex.value,modelValue:e.unref(a).regionIndex.value,"onUpdate:modelValue":I[1]||(I[1]=C=>e.unref(a).regionIndex.value=C),name:c.forFrequency?"region_key":"region_index",addChanger:c.addChanger,"data-top-icon":c.addRegionIcon?"":void 0},null,8,["options","modelValue","name","addChanger","data-top-icon"])):e.createCommentVNode("",!0),c.addCompare&&!c.onlySearcher&&e.unref(l).searcherKey.value===e.unref(w)?(e.openBlock(),e.createBlock(x._sfc_main$1,{key:1,name:"compare",onClick:f,"data-count-compare-regions-indexes":e.unref(d).regionsIndexes.value.length},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$i18n.Common.Selected_regions),1)]),_:1},8,["data-count-compare-regions-indexes"])):e.createCommentVNode("",!0)],2))}}),X=n=>"-"+n,K=n=>n[0]==="-"?n.substring(1):n,D=(n,o)=>{n=K(n);const r=o.find(t=>t.id===n);if(r)return r},Ie=(n,o,r)=>{o||(o={id:n.id}),o.id=n.id,o.pos??="3",o.notch??=!0,o.posBy??="fixed";const t=ae.TopPopupWorker.genElPopupOpener("div",o);return t.classList.add("top-tagSelector"),n.useTopButton&&t.classList.add("top-tagSelector-useTopButton","top-button","top-color_theme","top-as-selector"),n.useTopButton||t.classList.add("top-tagSelector-custom"),n.mode==="filter"&&t.classList.add("top-tagSelector-filter"),n.mode==="setter"&&!n.filters&&t.classList.add("top-tagSelector-setter_single"),n.mode==="setter"&&n.filters&&t.classList.add("top-tagSelector-setter_several"),t.onclick=u=>{u.preventDefault(),u.stopPropagation(),t.onclick=null;const l=e.ref(n.modelValue),a={model:l,mode:n.mode,targetId:n.targetId,filters:n.filters,payload:n.payload};E.storage(t,"topTagSelectorTarget",a),delete t.dataset.topPopupDisabled,e.isRef(n.modelValue)||e.watch(l,()=>{n.modelValue=l.value,O(t,n,r)}),t.click()},e.isRef(n.modelValue)?e.watch(n.modelValue,()=>O(t,n,r)):E.storage(t,"topTagSelectorRender",u=>{n.modelValue=u;const l=E.storage(t,"topTagSelectorTarget");l&&(l.model.value=u),O(t,n,r)}),O(t,n,r),t},xe=(n,o)=>{var r;(r=E.storage(n,"topTagSelectorRender"))==null||r(o)},O=(n,o,r)=>{var u;const t=e.unref(o.modelValue);if(n.classList.toggle("top-tagSelector-selectedOne",!t.length||t.length===1),n.classList.toggle("top-tagSelector-toTwoLine",t.length>5),o.mode==="setter"&&o.filters){n.innerHTML=`<div>${r}</div>`;return}if(n.innerHTML="",!t.length&&o.mode==="filter"){const l=Z({id:"all",colorId:"",name:((u=x.useI18n().Common)==null?void 0:u.All_tags)??"",state:""});n.append(l)}t.forEach(l=>{var d,v;const a=Z({id:K(l),colorId:((d=D(l,o.tags))==null?void 0:d.color_id)??"",name:((v=D(l,o.tags))==null?void 0:v.name)??"",state:K(l)===l?"selected":"excluded"});n.append(a)})},Z=n=>{const o=document.createElement("div");return o.classList.add("top-tagSelector_tagIcon"),o.classList.toggle("top-tagSelector-active",!!n.state),o.classList.toggle("top-tagSelector-excluded",n.state==="excluded"),o.dataset.tag_id=n.id,o.dataset.tag_color_id=n.colorId,o.title=n.name,o},Be=[{id:"1",name:"Without Tag",color_id:"1"},{id:"2",name:"Red",color_id:"2"},{id:"3",name:"Orange",color_id:"3"},{id:"4",name:"Yellow",color_id:"4"},{id:"5",name:"Blue",color_id:"5"},{id:"6",name:"Purple",color_id:"6"},{id:"7",name:"Green",color_id:"7"},{id:"8",name:"Magenta",color_id:"8"},{id:"9",name:"Dark blue",color_id:"9"},{id:"10",name:"Turquoise",color_id:"10"}],Ce=["data-tag_id","data-tag_color_id","title"],F=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(n){return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tagSelector_tagIcon":!0,"top-tagSelector-active":!!o.state,"top-tagSelector-excluded":o.state==="excluded"}),"data-tag_id":o.id,"data-tag_color_id":o.colorId,title:o.name},null,10,Ce))}}),Te=["contenteditable","onKeydown"],ee=e.defineComponent({__name:"tagPopupListItem",props:e.mergeModels({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:e.mergeModels(["update:name","unselect","exclude","select"],["update:name"]),setup(n,{emit:o}){const r=n,t=o,u=e.useModel(n,"name"),l=e.ref(null),a=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:d.value,onpaste:f=>f.preventDefault()}:{}),d=e.ref(!1),v=async()=>{var f;d.value=!0,await e.nextTick(),(f=l.value)==null||f.focus()},h=()=>{var c;const f=(c=l.value)==null?void 0:c.innerText;if(!f)return k();l.value&&(l.value.innerText=f),d.value=!1,t("update:name",f)},k=async()=>{l.value&&(l.value.innerText=r.name),d.value=!1},i=f=>{if(d.value||r.disabled)return;let c="selected";r.canExclude&&(f.ctrlKey||f.metaKey)&&(c="excluded"),r.state==c&&(c=""),c===""&&t("unselect"),c==="selected"&&t("select"),c==="excluded"&&t("exclude")};return(f,c)=>(e.openBlock(),e.createBlock(b._sfc_main$1,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":d.value,"top-tagSelector_tagListItem-disabled":f.disabled,"top-tagSelector_tagListItem-canExclude":f.canExclude,"top-tagSelector-active":!!f.state,"top-tagSelector-excluded":f.state==="excluded"}),onClick:e.withModifiers(i,["stop"])},{default:e.withCtx(()=>[e.createVNode(F,{id:f.id,name:u.value,colorId:f.colorId,state:f.state},null,8,["id","name","colorId","state"]),e.createElementVNode("span",e.mergeProps({ref_key:"elName",ref:l,class:"top-tagSelector_tagListItemName",contenteditable:d.value?"plaintext-only":!1},a.value,{onKeydown:[e.withKeys(e.withModifiers(h,["stop"]),["enter"]),e.withKeys(e.withModifiers(k,["stop"]),["esc"])]}),e.toDisplayString(u.value),17,Te),f.editable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[d.value?(e.openBlock(),e.createElementBlock("span",{key:1,"data-top-icon":"",class:"top-tagSelector_edit",onClick:e.withModifiers(h,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:v}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),Ve={key:1},te=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{},styling:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const o=n,r=e.useModel(n,"modelValue"),t=o.useTopButton?x._sfc_main$1:"div",u=o.useTopButton?"html":"default",l={model:r,mode:o.mode,targetId:o.targetId,filters:o.filters,payload:o.payload};return(a,d)=>{const v=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(re._sfc_main,{id:a.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(t)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-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"&&!a.filters,"top-tagSelector-setter_several":o.mode==="setter"&&a.filters,"top-tagSelector-selectedOne":!r.value.length||r.value.length===1,"top-tagSelector-toTwoLine":r.value.length>5},color:"theme",styling:a.styling},a.$attrs),{[e.unref(u)]:e.withCtx(()=>[!r.value.length&&a.mode==="filter"?(e.openBlock(),e.createBlock(F,{key:0,id:"all",colorId:"",name:a.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),a.mode==="setter"&&a.filters?(e.openBlock(),e.createElementBlock("div",Ve,[e.renderSlot(a.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(r.value,h=>{var k,i;return e.openBlock(),e.createBlock(F,{id:e.unref(K)(h),colorId:((k=e.unref(D)(h,a.tags))==null?void 0:k.color_id)??"",name:((i=e.unref(D)(h,a.tags))==null?void 0:i.name)??"",state:e.unref(K)(h)===h?"selected":"excluded"},null,8,["id","colorId","name","state"])}),256))]),_:2},1040,["class","styling"])),[[v,l,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),we=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(Be)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(n,{emit:o}){const r=x.useI18n(),t=n,u=e.useModel(n,"modelValue"),l=e.useModel(n,"tags"),a=o,d=x.debounce((s,g)=>{a(s,g)},t.emitDelay);t.singleMode&&!u.value.length&&(u.value=[l.value[0].id]);const v=t.id??"top-popup-id-"+Math.random(),h=e.ref("add"),k=()=>{var y;const s=" "+((y=r.Common.Tags)==null?void 0:y.toLowerCase()),g=new Map;return g.set("add",{value:"add",title:r.Common.Add+s}),g.set("replace",{value:"replace",title:r.Common.Replace+s}),g.set("delete",{value:"delete",title:r.Common.Delete+s}),g};let i=e.shallowRef({model:u,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(u,()=>{d("selector",u.value)});const f=e.computed(()=>{if(i.value.mode==="setter"&&t.maxTagsForSetter&&!i.value.filters)return i.value.model.value.length>=t.maxTagsForSetter}),c=s=>{if(s!=="all"){if(i.value.model.value.includes(s))return"selected";if(i.value.model.value.includes(X(s)))return"excluded"}return s==="all"&&!i.value.model.value.length?"selected":""},I=(s,g)=>{const y=X(s);let S=i.value.model.value.filter(M=>M!==s&&M!==y);g==="select"&&S.push(s),g==="exclude"&&S.push(y),i.value.mode==="setter"&&i.value.targetId!==void 0&&t.requiredForSetter&&(S.length||S.push("1"),S.length===2&&i.value.model.value.length===1&&i.value.model.value[0]==="1"&&(S=S.filter(M=>M!=="1"))),t.singleMode&&!i.value.filters&&(S.length||(S=i.value.model.value),S.length>1&&(S=[S[S.length-1]])),S.sort((M,N)=>{if(!t.tags)return 0;const q=t.tags.findIndex(_=>_.id===M),L=t.tags.findIndex(_=>_.id===N);return q-L}),i.value.model.value=S,i.value.mode==="setter"&&i.value.targetId!==void 0&&d("setter",{tagsIds:S,targetId:i.value.targetId,payload:i.value.payload})},C=e.computed(()=>{let s="top-tagSelector_popup";return i.value.mode==="filter"&&(s+=" top-tagSelector_popup-filter"),i.value.mode==="setter"&&(s+=" top-tagSelector_popup-setter"),s}),B=()=>{const s=prompt("","New tag");if(!s||s==="New tag")return;const g=l.value.length+1;l.value.push({id:String(g),name:s,color_id:String((g-1)%10+1)}),a("tagsChanged",l.value)},V=s=>{var g;if(i.value=E.storage(s.elPopupOpener,"topTagSelectorTarget"),!i.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(i.value.filters&&(h.value="add",i.value.model.value=[]),!((g=x.Core.$)!=null&&g.ui.sortable)){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}!x.Core.state.isMobile&&!x.Core.state.isMobileUA&&l.value&&$(s.elPopup).sortable({items:'li:has([data-tag_id]:not([data-tag_id="all"]))',cancel:'[contenteditable="plaintext-only"], [contenteditable="true"]',distance:10,stop:function(y,S){if(!l.value)return;const M=$(S.item).parent().find("[data-tag_id]"),N=[];M.each((q,L)=>{if(!l.value)return;const _=$(L).attr("data-tag_id");N.push(_)}),l.value.sort((q,L)=>{const _=N.findIndex(j=>j===q.id),Me=N.findIndex(j=>j===L.id);return _-Me}),d("tagsChanged",l.value)}})},m=s=>{var g;(g=x.Core.$)!=null&&g.ui.sortable&&$(s.elPopup).data("ui-sortable")&&$(s.elPopup).sortable("destroy")};return(s,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(te,{modelValue:u.value,"onUpdate:modelValue":g[0]||(g[0]=y=>u.value=y),id:e.unref(v),tags:l.value,styling:s.styling,mode:"filter",useTopButton:s.useTopButton},null,8,["modelValue","id","tags","styling","useTopButton"]),e.createVNode(b._sfc_main,{id:e.unref(v),class:e.normalizeClass(C.value),onOpen:g[4]||(g[4]=y=>V(y)),onClose:g[5]||(g[5]=y=>m(y)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!s.singleMode?(e.openBlock(),e.createBlock(ee,{key:0,id:"all",colorId:"",name:s.$i18n.Common.All_tags??"",state:e.unref(i).model.value.length?"":"selected",onSelect:g[3]||(g[3]=y=>e.unref(i).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,y=>(e.openBlock(),e.createBlock(ee,{key:y.id,id:y.id,colorId:y.color_id,name:y.name,state:c(y.id),canExclude:e.unref(i).mode==="filter"&&!s.singleMode,editable:s.tagsEditable,disabled:f.value&&c(y.id)==="",onUnselect:S=>I(y.id,"unselect"),onSelect:S=>I(y.id,"select"),onExclude:S=>I(y.id,"exclude"),"onUpdate:name":S=>{y.name=S,e.unref(d)("tagsChanged",l.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),s.tagsEditable&&l.value.length<s.tagsMax&&l.value.length<20?(e.openBlock(),e.createBlock(b._sfc_main$1,{key:1,"data-top-icon":"",onClick:e.withModifiers(B,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.$i18n.Common.Add),1)]),_:1})):e.createCommentVNode("",!0)]),_:2},[e.unref(i).mode==="setter"&&e.unref(i).filters?{name:"header",fn:e.withCtx(()=>[e.createVNode(x._sfc_main$9,{modelValue:h.value,"onUpdate:modelValue":g[1]||(g[1]=y=>h.value=y),options:k()},null,8,["modelValue","options"])]),key:"0"}:void 0,e.unref(i).mode==="setter"&&e.unref(i).filters?{name:"footer",fn:e.withCtx(()=>[e.createVNode(x._sfc_main$1,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(x._sfc_main$1,{onClick:g[2]||(g[2]=y=>e.unref(d)("setter",{tagsIds:e.unref(i).model.value,filters:e.unref(i).filters,filtersAction:h.value,payload:e.unref(i).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.value==="add"?s.$i18n.Common.Add:"")+" "+e.toDisplayString(h.value==="replace"?s.$i18n.Common.Replace:"")+" "+e.toDisplayString(h.value==="delete"?s.$i18n.Common.Delete:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}});T.TopSelectorCompetitors=se,T.TopSelectorRegion=Se,T.TopTagSelector=we,T.TopTagSelectorPopupOpener=te,T.TopTagSelectorTagIcon=F,T.dialogSelectorRegions=Q,T.findRegion=H,T.genElTopTagSelectorPopupOpener=Ie,T.genSearcherByKey=z,T.renderElTopTagSelectorPopupOpener=xe,T.useItemsFromCompetitors=de,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})}));
1
+ define(["require","exports","vue","../.chunks/forms--2-YQeWM.amd","../.chunks/popupHint.vue_vue_type_style_index_0_lang-D42xEF-j.amd","../.chunks/policy.vue_vue_type_style_index_0_lang-BUIBGweg.amd","../.chunks/utils-C6nWu0aQ.amd","../utils/searchers.amd","../.chunks/core-B9TwJi3h.amd","../.chunks/dialogs.vue_vue_type_script_setup_true_lang--Xstly2G.amd","../.chunks/field-Cvv0SRcJ.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],(function(fe,B,e,I,V,C,me,z,Ye,Qe,ve,A,pe){"use strict";if(typeof e>"u")var e=window.Vue;const he={class:"top-competitorSelector"},ye={class:"top-ellipsis1"},X=e.defineComponent({__name:"competitorSelector",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const a=t,n=e.useModel(t,"modelValue"),o=e.computed(()=>{if(a.showSelectAllItem)return{icon:"",title:I.useI18n().Common.Select_all,value:"all",content:""}});return(d,l)=>(e.openBlock(),e.createElementBlock("div",he,[e.unref(I.Core).state.isMobile?(e.openBlock(),e.createBlock(V._sfc_main,{key:0},{opener:e.withCtx(()=>[e.createVNode(I._sfc_main$1,{class:"top-competitorSelector_opener",color:"theme",icon:"",icon2:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.items.find(r=>r.value===n.value?.[0])?.content),1)]),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,r=>(e.openBlock(),e.createBlock(V._sfc_main$2,{class:e.normalizeClass({"top-active":n.value?.includes(r.value)}),"data-top-icon":r.icon,title:r.title,onClick:()=>n.value=[r.value]},{default:e.withCtx(()=>[e.createElementVNode("span",ye,e.toDisplayString(r.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":l[0]||(l[0]=r=>n.value=r),items:t.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:o.value},null,8,["modelValue","items","selectAllItem"]))]))}}),Ie=(t,a)=>e.computed(()=>e.toValue(t).filter(d=>d.on>=0||d.id===a).map(d=>({value:d.id,title:d.url+` [${d.id}]`,icon:d.id===e.toValue(a)?"":"",content:d.name}))),w=-1,h=-2,L=-1,Se={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},Z={key:h,name:"--",index:h},H={key:h,name:"--",regions:[Z],regionByIndex:new Map([[h,Z]])},O={key:h,name:"Autoselect",index:h},W={key:h,name:"Autoselect",regions:[O],regionByIndex:new Map([[h,O]])},_={countryCode:"00",depth:1,device:0,key:L,index:L,lang:"ru",name:"Without region"},ke=()=>(O.name=I.useI18n().Common.Autoselect,O),xe=()=>(ke(),W.name=I.useI18n().Common.Autoselect,console.log(W),W),Be=()=>(_.name=I.useI18n().Keywords.Without_region,_),J=(t=!1,a=!1,n=[])=>{let o;return t?o=Ce(n):o=ee(n),a&&o.set(h,xe()),o.size||o.set(h,H),o},ee=(t,a=!0,n=[],o=!1)=>{const d=new Map;return t.forEach(l=>{if(!l.enabled||o&&typeof l.key=="number"&&l.key>1)return;const r={...l};r.regionByIndex=new Map,l.regions&&l.regions.forEach(u=>{if(a&&!u.enabled)return;const g={...u};r.regionByIndex.set(g.index,g)}),!r.regionByIndex.size&&n.length,(!l.regions||r.regionByIndex.size||n.length)&&typeof r.key=="number"&&d.set(r.key,r)}),n.forEach(l=>{if(d.has(l))return;const r={key:l,name:Se[l],regions:[],regionByIndex:new Map};d.set(r.key,r)}),d},Ce=t=>{const a=ee(t,!1,[0,1],!0);if(a.has(2)){const n=a.get(2);n&&(n.regionByIndex=new Map)}return a.forEach(n=>{if(!n.regionByIndex)return;const o={...Be()};n.regionByIndex.set(o.index,o)}),a},te=(t,a,n=[])=>{const o=J(t,!1,n);let d;return o.forEach(l=>{if(!(a.searcher_key!==void 0&&a.searcher_key!=l.key)&&l.regions&&(l.regions.forEach(r=>{if(!d&&!(a.key!==void 0&&a.key!=r.key)&&!(a.index!==void 0&&a.index!=r.index)&&!(!t&&(a.lang!==void 0&&a.lang!=r.lang||a.device!==void 0&&a.device!=r.device)))return r.searcher_key=l.key,d=r,!1}),d))return!1}),d},oe=me.useAsyncTopDialog(()=>new Promise((t,a)=>fe(["../.chunks/dialog_regionSelectorRegions-Dc-YGZ0l.amd"],t,a))),Te=(t,a)=>{const n=I.useI18n(),o=e.ref(a.value.keys().next().value??h),d=e.computed(()=>{const l=new Map;if(a.value.forEach(r=>{let u={value:r.key,title:r.name};t.addSearcherIcon&&(u.icon=z.getSearcherGIcon(r.key)),l.set(r.key,u)}),t.addCompare&&!l.has(h)){const r={value:"",title:"--------------------",disabled:!0};l.set(r.value,r);const u={value:w,title:n.Common.Compare};l.set(u.value,u)}return l});return{searcherKey:o,optionBySearcherKey:d}},we=(t,a)=>{const n=I.useI18n(),o=e.ref(h);t.modelValue.length===1&&(o.value=t.modelValue[0]),o.value===h&&(t.forFrequency?o.value=a.value?.regionByIndex.values().next().value?.key??h:o.value=a.value?.regionByIndex.keys().next().value??h);const d=e.computed(()=>{const l=new Map;return a.value.regionByIndex?.forEach(r=>{let u=r.name;if(t.forFrequency){const y={value:r.key,title:u};l.has(r.key)||l.set(r.key,y);return}r.device&&(u+=" ("+n.Common["Device_"+r.device]+")");const g=z.getLangLabel(a.value.key||0,r.lang??"");g&&(u+=" / "+g);const m={value:r.index,title:u,icon:r.device?z.getDeviceGIcon(r.device):void 0};l.set(r.index,m)}),l});return e.watch(d,(l,r)=>{if(t.onlySearcher||o.value!==void 0&&l.get(o.value))return;let u=l.keys().next().value;if(o.value===h||u===h){o.value=u;return}let g=r?.get(o.value)?.title||"",m=-1;for(const[y,i]of l.entries()){const v=i.title;if(typeof v!="string"||typeof y=="string")break;if(v===g){u=y;break}const c=new RegExp(` \\((${n.Common.Device_1}|${n.Common.Device_2})\\)`);let s=g,f=3;v.indexOf(s)===-1&&(s=g.replace(/^[^a-zа-я]/i,"").replace(c,""),f--),v.indexOf(s)===-1&&(s=g.replace(/ \/.*/,""),f--),v.indexOf(s)===-1&&(s=g.replace(/ \/.*/,""),s=s.replace(/^[^a-zа-я]/i,"").replace(c,""),f--),v.indexOf(s)!==-1&&(f<=m||(m=f,u=y))}o.value=u}),{regionIndex:o,optionByRegionIndex:d}},Me=(t,a,n)=>{const o=e.ref([]),d=()=>{if(t.onlySearcher&&a.value){o.value=Array.from(a.value.keys());return}let r=[];if(t.modelValue.length>1)r=[...t.modelValue];else try{r=JSON.parse(localStorage.getItem("ui:project:regionSelector"+t.projectId+":regionsIndexes"))??[]}catch{}r.length&&(r=r.filter(u=>n.value.has(u))),r.length||(r=Array.from(n.value)),o.value=[...r]},l=()=>{o.value.length?localStorage.setItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes",JSON.stringify(o.value)):localStorage.removeItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes")};return e.watch(o,()=>{l()}),t.addCompare&&d(),{regionsIndexes:o}},Ve=t=>{const a=e.computed(()=>J(t.forFrequency,t.autoRegion,t.searchers)),n=e.computed(()=>a.value.get(d.searcherKey.value)||H),o=e.computed(()=>{const i=new Set;return a.value.forEach(v=>{v.regionByIndex.forEach(c=>{c.index!==L&&c.index!==h&&i.add(c.index)})}),i}),d=Te(t,a),l=we(t,n),r=Me(t,a,o);e.watch(a,()=>{if(t.onlySearcher?r.regionsIndexes.value=Array.from(a.value.keys()):r.regionsIndexes.value=r.regionsIndexes.value.filter(v=>o.value.has(v)),d.searcherKey.value===w)return;let i=a.value.keys().next().value;a.value.forEach(v=>{if(t.onlySearcher&&v.key===d.searcherKey.value){i=d.searcherKey.value;return}if(l.regionIndex.value&&v.regionByIndex?.has(l.regionIndex.value)&&(i=v.key),!t.onlySearcher){let c;i!==void 0&&(c=a.value.get(i)?.regionByIndex);const s=a.value.get(v.key)?.regionByIndex;c?.has(h)&&!s?.has(h)&&(i=v.key)}}),i!==void 0&&(d.searcherKey.value=i),l.regionIndex.value!==void 0&&!n.value?.regionByIndex?.has(l.regionIndex.value)&&(l.regionIndex.value=n.value?.regions?.keys().next().value)},{immediate:!0});const u=()=>{if(!(d.searcherKey.value===w||d.searcherKey.value===h))return d.searcherKey.value},g=()=>{if(t.onlySearcher||l.regionIndex.value===h)return;let i=l.regionIndex.value;if(t.forFrequency){const v=l.regionIndex.value;i=te(t.forFrequency,{searcher_key:u(),key:v},t.searchers)?.index}return i},m=()=>{const i=u();if(i!==void 0)return a.value.get(i)};return{selectSearcher:d,selectRegion:l,compare:r,searcherByKey:a,allRegionsIndexes:o,getSearcher:m,getRegion:()=>{const i=g();if(i!==void 0)return m()?.regionByIndex?.get(i)}}},ne=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:a}){const n=t,o=e.useModel(t,"modelValue"),d=e.useModel(t,"modelValueSingle"),{selectSearcher:l,selectRegion:r,compare:u,searcherByKey:g,allRegionsIndexes:m,getSearcher:y,getRegion:i}=Ve(n),v=()=>{const c=[];g.value.forEach(s=>{s.enabled&&s.regions.forEach(f=>{f.enabled&&c.push(f)})}),oe.open("regions",{regions:c,regionsIndexes:u.regionsIndexes.value,"@update:regionsIndexes":s=>u.regionsIndexes.value=s})};return e.watch([r.regionIndex,l.searcherKey,u.regionsIndexes],()=>{if(l.searcherKey.value===w&&u.regionsIndexes.value.length){if(JSON.stringify(o.value)===JSON.stringify(u.regionsIndexes.value))return;o.value=[...u.regionsIndexes.value]}else n.onlySearcher?(o.value=[l.searcherKey.value],l.searcherKey.value===h&&!n.autoRegion&&(o.value.length=0)):(o.value=[r.regionIndex.value],r.regionIndex.value===h&&!n.autoRegion&&(o.value.length=0));!n.onlySearcher&&!m.value.size&&(l.searcherKey.value=h)}),d.value&&e.watch(d,()=>{d.value&&(o.value=[d.value])},{immediate:!0}),e.watch(o,()=>{if(o.value[0]&&(d.value=o.value[0]),n.onlySearcher){if(!o.value.length||o.value.length===1&&!g.value.has(o.value[0])||o.value.length===1&&o.value[0]===h&&!n.autoRegion){let c=g.value.keys().next().value;c===h&&!n.autoRegion&&(c=void 0,d.value=h),c!==void 0?o.value=[c]:o.value.length=0;return}if(o.value.length>1&&JSON.stringify(o.value)!==JSON.stringify(u.regionsIndexes.value)){o.value=[...u.regionsIndexes.value];return}}else{let c=[...new Set(o.value)],s=g.value.values().next().value?.regionByIndex?.keys().next().value;if(n.forFrequency&&(s=g.value.values().next().value?.regionByIndex?.values().next().value?.key),s===h&&!n.autoRegion&&(s=void 0,d.value=h),!c.length)s!==void 0&&c.push(s);else if(c.length===1){let f=m.value;n.forFrequency&&(f=new Set,g.value.forEach(q=>{q.regionByIndex.forEach(N=>{N.index!==L&&N.index!==h&&f.add(N.key)})})),f.has(c[0])||(c=[],s!==void 0&&c.push(s))}else c=c.filter(f=>m.value.has(f)),!c.length&&s!==void 0&&c.push(s);if(JSON.stringify(o.value)!==JSON.stringify(c)){o.value=c;return}}if(!(o.value.length===1&&o.value[0]===(n.onlySearcher?l.searcherKey.value:r.regionIndex.value)))if(n.onlySearcher){if(o.value.length===1){l.searcherKey.value=o.value[0];return}l.searcherKey.value=w;return}else{if(!o.value.length)return;if(o.value.length===1&&l.searcherKey.value!==w){r.regionIndex.value=o.value[0];let c;for(const s of g.value.values()){for(const f of s.regionByIndex.values())if((n.forFrequency?f.key:f.index)===r.regionIndex.value){c=s.key;break}if(c!==void 0)break}c!==void 0&&(l.searcherKey.value=c)}else l.searcherKey.value=w,u.regionsIndexes.value=[...o.value]}},{immediate:!0}),a({getSearcher:y,getRegion:i}),(c,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-selectorRegion":!0,"top-selectorRegion-onlySearcher":t.onlySearcher})},[e.createVNode(I._sfc_main$10,{options:e.unref(l).optionBySearcherKey.value,modelValue:e.unref(l).searcherKey.value,"onUpdate:modelValue":s[0]||(s[0]=f=>e.unref(l).searcherKey.value=f),name:"searcher_key",addChanger:t.addChanger},null,8,["options","modelValue","addChanger"]),!t.onlySearcher&&e.unref(l).searcherKey.value!==e.unref(w)?(e.openBlock(),e.createBlock(I._sfc_main$10,{key:0,class:"top-select-region",options:e.unref(r).optionByRegionIndex.value,modelValue:e.unref(r).regionIndex.value,"onUpdate:modelValue":s[1]||(s[1]=f=>e.unref(r).regionIndex.value=f),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(l).searcherKey.value===e.unref(w)?(e.openBlock(),e.createBlock(I._sfc_main$1,{key:1,name:"compare",onClick:v,"data-count-compare-regions-indexes":e.unref(u).regionsIndexes.value.length},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$i18n.Common.Selected_regions),1)]),_:1},8,["data-count-compare-regions-indexes"])):e.createCommentVNode("",!0)],2))}}),M={id:0,name:"/",path:"/"},Ae=(t,a)=>{let n=t?.root[0]??M;return n={...n},n.name=le(a),n};function le(t){return t?I.useI18n()?.Common.All_folders:"/ ("+I.useI18n()?.Keywords.Root_folder+")"}const ae=(t,a,n=new Map,o={id:"root"},d=0)=>(o.childsIds=[],o.id&&(o.countAllGroupsActive=o.count_groups_active),t[o.id]&&t[o.id].forEach(l=>{l={...l},o.childsIds.push(l.id),l.id===0&&(l.name=le(a));const r=d>1?"-".repeat(d-1)+" ":"";r&&!l.name.startsWith(r)&&(l.name=r+l.name),n.set(l.id,l),ae(t,a,n,l,d+1),o.childsIds=o.childsIds.concat(l.childsIds),o.id&&l.count_groups_active&&(o.countAllGroupsActive+=l.count_groups_active)}),n),Ee=t=>t.gen("/get/keywords_2/folders/",["id","parent_id","name","path"]).changeParams({orders:["ord_path"],limit:100}),be=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 a=t,n=e.useModel(t,"folderId"),o=e.useModel(t,"folder"),d=a.client&&!a.folders?Ee(a.client):void 0,l=e.ref(null);e.watch(()=>a.projectId,()=>{d?.changeParams({project_id:a.projectId}),d?.setOptions({checkFingerprint:"TopGroupSelectorFolders:"+a.projectId}),l.value?.resetCache()},{immediate:!0});const r=e.computed(()=>ae(a.folders??{root:[M]},a.canSelectAll));return e.watch(n,()=>{a.folders&&(r.value.get(a.folderId)||(n.value=0))},{immediate:!0}),e.watch(n,()=>{const u=r.value.get(a.folderId);u&&(o.value=u)}),e.watch(o,()=>{n.value=o.value.id}),(u,g)=>(e.openBlock(),e.createBlock(C._sfc_main,{class:"top-groupSelector_folder",modelValue:o.value,"onUpdate:modelValue":g[0]||(g[0]=m=>o.value=m),items:t.folders?[...r.value.values()]:void 0,"search-type":"inline",icon:t.addIcon?"":void 0,api:t.folders?void 0:e.unref(d),apiSetSearchParams:(...m)=>e.unref(C.apiSetSearchParamsFilter)(...m,"name"),addChanger:t.addChanger,useCache:""},null,8,["modelValue","items","icon","api","apiSetSearchParams","addChanger"]))}});function re(t,a,n){const o=Object.keys(t),d=o.map(l=>t[l]);return e.watch(d,(l,r,u)=>{const g={};l.forEach((m,y)=>{if(!Object.is(m,r[y])){const i=o[y];g[i]={old:r[y],new:m}}}),Object.keys(g).length&&a(g,u)},n)}const Y={id:-1,name:"--",folder_id:M.id,folder_path:M.path},D={id:C.ITEM_ID_ALL,name:"All groups",folder_id:M.id,folder_path:M.path},E=()=>(D.name=I.useI18n()?.Common.All_groups,D),de=()=>(D.name=I.useI18n()?.Keywords.Choose_group,D),$e=(t,a)=>(t=[...t],a&&a.id&&a.childsIds&&(t=t.filter(n=>n.folder_id===a.id||a.childsIds.includes(n.folder_id))),t),ie=t=>t.gen("/get/keywords_2/groups/",["id","name","folder_id","folder_path"]).changeParams({folder_id_depth:!0,limit:100}),Ne=t=>t.gen("/add/keywords_2/groups/"),Ge={class:"top-groupSelector_groupItem"},Ke={key:0,class:"top-comment"},Re={key:1,class:"top-groupSelector_groupItemFolderPath"},Le=e.defineComponent({__name:"groups",props:e.mergeModels({groupId:{},group:{},projectId:{},folder:{},groups:{},canAdd:{type:[String,Boolean]},canSelectAll:{type:[Boolean,String]},autoselect:{default:"first"},addChanger:{type:Boolean,default:!0},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:a}){const n=t,o=a,d=e.useModel(t,"groupId"),l=e.useModel(t,"group"),r=n.client&&!n.groups?ie(n.client):void 0,u=n.client?Ne(n.client):void 0,g=e.ref(null),m=e.ref(void 0),y=ve.genFieldFilter("folder_id","EQUALS",[n.folder?.id??0]);r?.changeParams({project_id:n.projectId,filters:[y]});const i=c=>{l.value=c,d.value=c.id};re({projectId:()=>n.projectId,folderId:()=>n.folder?.id,canSelectAll:()=>n.canSelectAll},c=>{if(c.projectId&&(r?.changeParams({project_id:n.projectId}),r?.setOptions({checkFingerprint:"TopGroupSelectorGroups:"+n.projectId})),c.folderId&&(y.values=[n.folder?.id??0],n.groups&&(m.value=$e(n.groups,n.folder))),g.value?.resetCache(),(c.folderId?.old!==void 0||c.canSelectAll?.old!==void 0)&&d.value!==C.ITEM_ID_NEW){let s;n.autoselect==="first"&&(s=m.value?.[0],n.canSelectAll&&(s=e.reactive(E()))),(n.autoselect==="placeholder"||!s)&&(s=de()),i(s)}},{immediate:!0}),re({modelGroup:l,modelGroupId:d},async c=>{if(d.value!==l.value.id){if(c.modelGroup&&!c.modelGroupId){d.value=l.value.id;return}if(!(n.canAdd&&d.value===C.ITEM_ID_NEW)){if(n.groups){let s=m.value?.find(f=>f.id===d.value);if(!s&&n.canSelectAll&&(s=E()),s)i(s);else{const f=m.value?.[0];f&&!d.value?i(f):i(Y)}}if(n.client&&!n.groups&&(d.value||d.value===C.ITEM_ID_ALL&&!n.canSelectAll)){const s=ie(n.client).changeParams({project_id:n.projectId,id:d.value,filters:[y]});s?.setOptions({checkFingerprint:"TopGroupSelectorFindGroup:"+n.projectId});const f=await s.call();if(!f.errors?.length&&!f.result)return;!f.errors&&f.result[0]?i(f.result[0]):i(Y)}}}},{immediate:!0});const v=async c=>{if(n.canAdd!=="api"||!u)return;const s=l.value,f=await u.changeParams({project_id:n.projectId,names:[c.name],to_id:n.folder?.id??M.id,to_type:"in_folder_last"}).call();f.result?(i(f.result),o("addGroup",f.result)):i(s),g.value?.resetCache(!0)};return(c,s)=>(e.openBlock(),e.createBlock(C._sfc_main,{ref_key:"refSelector",ref:g,class:"top-groupSelector_group",modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=f=>l.value=f),items:m.value??t.groups,searchType:"inline",icon:t.addIcon?"":void 0,api:t.groups?void 0:e.unref(r),apiSetSearchParams:(...f)=>e.unref(C.apiSetSearchParamsFilter)(...f,"name"),appendSearchToResult:!!t.canAdd,useAllItem:t.canSelectAll?e.unref(E)().name:!1,addChanger:t.addChanger,useCache:"",onAppendItem:v},{item:e.withCtx(({item:f})=>[e.createElementVNode("div",Ge,[f.id===e.unref(C.ITEM_ID_NEW)?(e.openBlock(),e.createElementBlock("div",Ke,e.toDisplayString(c.$i18n.Common.Add)+": ",1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(f.name),1),f.folder_path?(e.openBlock(),e.createElementBlock("span",Re,e.toDisplayString(f.folder_path),1)):e.createCommentVNode("",!0)])]),_:1},8,["modelValue","items","icon","api","apiSetSearchParams","appendSearchToResult","useAllItem","addChanger"]))}}),Oe={class:"top-groupSelector"},De=e.defineComponent({__name:"groupSelector",props:e.mergeModels({folderId:{},groupId:{},group:{},projectId:{},folders:{},groups:{},onlyOnGroups:{type:Boolean},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:{},groupId:{required:!0},groupIdModifiers:{},group:{},groupModifiers:{}}),emits:e.mergeModels(["update:groups"],["update:folderId","update:groupId","update:group"]),setup(t,{emit:a}){const n=t,o=e.useModel(t,"folderId"),d=e.useModel(t,"groupId"),l=e.useModel(t,"group"),r=a,u=e.ref(Ae(n.folders,n.canSelectAllGroups));let g=n.groups?.find(y=>y.id===d.value);d.value||(g=n.groups?.[0]),n.canSelectAllGroups&&!g&&(g=E()),n.canSelectAllGroups&&!g&&(g=E()),(n.autoselect==="placeholder"||!g)&&(g=de()),g??=Y,l.value??=g;const m=y=>{let i;n.groups&&y&&(i=[...n.groups,y]),r("update:groups",i)};return(y,i)=>(e.openBlock(),e.createElementBlock("div",Oe,[t.showFolders?(e.openBlock(),e.createBlock(be,{key:0,folderId:o.value,"onUpdate:folderId":i[0]||(i[0]=v=>o.value=v),folder:u.value,"onUpdate:folder":i[1]||(i[1]=v=>u.value=v),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(Le,{key:1,groupId:d.value,"onUpdate:groupId":i[2]||(i[2]=v=>d.value=v),group:l.value,"onUpdate:group":i[3]||(i[3]=v=>l.value=v),projectId:t.projectId,folder:u.value,groups:t.groups,canAdd:t.canAddGroup,canSelectAll:t.canSelectAllGroups,autoselect:t.autoselect,addChanger:t.addChanger,addIcon:t.addIcon,client:t.client,onAddGroup:m},null,8,["groupId","group","projectId","folder","groups","canAdd","canSelectAll","autoselect","addChanger","addIcon","client"])):e.createCommentVNode("",!0)]))}}),ue=t=>"-"+t,b=t=>t[0]==="-"?t.substring(1):t,j=(t,a)=>{t=b(t);const n=a.find(o=>o.id===t);if(n)return n},je=(t,a,n)=>{a||(a={id:t.id}),a.id=t.id,a.pos??="3",a.notch??=!0,a.posBy??="fixed";const o=pe.TopPopupWorker.genElPopupOpener("div",a);return o.classList.add("top-tagSelector"),t.useTopButton&&o.classList.add("top-tagSelector-useTopButton","top-button","top-color_theme","top-as-selector"),t.useTopButton||o.classList.add("top-tagSelector-custom"),t.mode==="filter"&&o.classList.add("top-tagSelector-filter"),t.mode==="setter"&&!t.filters&&o.classList.add("top-tagSelector-setter_single"),t.mode==="setter"&&t.filters&&o.classList.add("top-tagSelector-setter_several"),o.onclick=d=>{d.preventDefault(),d.stopPropagation(),o.onclick=null;const l=e.ref(t.modelValue),r={model:l,mode:t.mode,targetId:t.targetId,filters:t.filters,payload:t.payload};A.storage(o,"topTagSelectorTarget",r),delete o.dataset.topPopupDisabled,e.isRef(t.modelValue)||e.watch(l,()=>{t.modelValue=l.value,P(o,t,n)}),o.click()},e.isRef(t.modelValue)?e.watch(t.modelValue,()=>P(o,t,n)):A.storage(o,"topTagSelectorRender",d=>{t.modelValue=d;const l=A.storage(o,"topTagSelectorTarget");l&&(l.model.value=d),P(o,t,n)}),P(o,t,n),o},Pe=(t,a)=>{A.storage(t,"topTagSelectorRender")?.(a)},P=(t,a,n)=>{const o=e.unref(a.modelValue);if(t.classList.toggle("top-tagSelector-selectedOne",!o.length||o.length===1),t.classList.toggle("top-tagSelector-toTwoLine",o.length>5),a.mode==="setter"&&a.filters){t.innerHTML=`<div>${n}</div>`;return}if(t.innerHTML="",!o.length&&a.mode==="filter"){const d=ce({id:"all",colorId:"",name:I.useI18n().Common?.All_tags??"",state:""});t.append(d)}o.forEach(d=>{const l=ce({id:b(d),colorId:j(d,a.tags)?.color_id??"",name:j(d,a.tags)?.name??"",state:b(d)===d?"selected":"excluded"});t.append(l)})},ce=t=>{const a=document.createElement("div");return a.classList.add("top-tagSelector_tagIcon"),a.classList.toggle("top-tagSelector-active",!!t.state),a.classList.toggle("top-tagSelector-excluded",t.state==="excluded"),a.dataset.tag_id=t.id,a.dataset.tag_color_id=t.colorId,a.title=t.name,a},Fe=[{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"}],qe=["data-tag_id","data-tag_color_id","title"],F=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(t){return(a,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,qe))}}),Ue=["contenteditable","onKeydown"],se=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:a}){const n=t,o=a,d=e.useModel(t,"name"),l=e.ref(null),r=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:u.value,onpaste:v=>v.preventDefault()}:{}),u=e.ref(!1),g=async()=>{u.value=!0,await e.nextTick(),l.value?.focus()},m=()=>{const v=l.value?.innerText;if(!v)return y();l.value&&(l.value.innerText=v),u.value=!1,o("update:name",v)},y=async()=>{l.value&&(l.value.innerText=n.name),u.value=!1},i=v=>{if(u.value||n.disabled)return;let c="selected";n.canExclude&&(v.ctrlKey||v.metaKey)&&(c="excluded"),n.state==c&&(c=""),c===""&&o("unselect"),c==="selected"&&o("select"),c==="excluded"&&o("exclude")};return(v,c)=>(e.openBlock(),e.createBlock(V._sfc_main$2,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":u.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(i,["stop"])},{default:e.withCtx(()=>[e.createVNode(F,{id:t.id,name:d.value,colorId:t.colorId,state:t.state},null,8,["id","name","colorId","state"]),e.createElementVNode("span",e.mergeProps({ref_key:"elName",ref:l,class:"top-tagSelector_tagListItemName",contenteditable:u.value?"plaintext-only":!1},r.value,{onKeydown:[e.withKeys(e.withModifiers(m,["stop"]),["enter"]),e.withKeys(e.withModifiers(y,["stop"]),["esc"])]}),e.toDisplayString(d.value),17,Ue),t.editable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[u.value?(e.openBlock(),e.createElementBlock("span",{key:1,"data-top-icon":"",class:"top-tagSelector_edit",onClick:e.withModifiers(m,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:g}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),ze={key:1},ge=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 a=t,n=e.useModel(t,"modelValue"),o=a.useTopButton?I._sfc_main$1:"div",d=a.useTopButton?"html":"default",l={model:n,mode:a.mode,targetId:a.targetId,filters:a.filters,payload:a.payload};return(r,u)=>{const g=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(V._sfc_main$1,{id:t.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(o)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-useTopButton":a.useTopButton,"top-tagSelector-custom":!a.useTopButton,"top-as-selector":a.useTopButton,"top-tagSelector-filter":a.mode==="filter","top-tagSelector-setter_single":a.mode==="setter"&&!t.filters,"top-tagSelector-setter_several":a.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},r.$attrs),{[e.unref(d)]:e.withCtx(()=>[!n.value.length&&t.mode==="filter"?(e.openBlock(),e.createBlock(F,{key:0,id:"all",colorId:"",name:r.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),t.mode==="setter"&&t.filters?(e.openBlock(),e.createElementBlock("div",ze,[e.renderSlot(r.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(n.value,m=>(e.openBlock(),e.createBlock(F,{id:e.unref(b)(m),colorId:e.unref(j)(m,t.tags)?.color_id??"",name:e.unref(j)(m,t.tags)?.name??"",state:e.unref(b)(m)===m?"selected":"excluded"},null,8,["id","colorId","name","state"]))),256))]),_:2},1040,["class","styling"])),[[g,l,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),We=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(Fe)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(t,{emit:a}){const n=I.useI18n(),o=t,d=e.useModel(t,"modelValue"),l=e.useModel(t,"tags"),r=a,u=I.debounce((p,S)=>{r(p,S)},o.emitDelay);o.singleMode&&!d.value.length&&(d.value=[l.value[0].id]);const g=o.id??"top-popup-id-"+Math.random(),m=e.ref("add"),y=()=>{const p=" "+n.Common.Tags?.toLowerCase(),S=new Map;return S.set("add",{value:"add",title:n.Common.Add+p}),S.set("replace",{value:"replace",title:n.Common.Replace+p}),S.set("delete",{value:"delete",title:n.Common.Delete+p}),S};let i=e.shallowRef({model:d,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(d,()=>{u("selector",d.value)});const v=e.computed(()=>{if(i.value.mode==="setter"&&o.maxTagsForSetter&&!i.value.filters)return i.value.model.value.length>=o.maxTagsForSetter}),c=p=>{if(p!=="all"){if(i.value.model.value.includes(p))return"selected";if(i.value.model.value.includes(ue(p)))return"excluded"}return p==="all"&&!i.value.model.value.length?"selected":""},s=(p,S)=>{const k=ue(p);let x=i.value.model.value.filter(T=>T!==p&&T!==k);S==="select"&&x.push(p),S==="exclude"&&x.push(k),i.value.mode==="setter"&&i.value.targetId!==void 0&&o.requiredForSetter&&(x.length||x.push("1"),x.length===2&&i.value.model.value.length===1&&i.value.model.value[0]==="1"&&(x=x.filter(T=>T!=="1"))),o.singleMode&&!i.value.filters&&(x.length||(x=i.value.model.value),x.length>1&&(x=[x[x.length-1]])),x.sort((T,U)=>{if(!o.tags)return 0;const G=o.tags.findIndex(R=>R.id===T),K=o.tags.findIndex(R=>R.id===U);return G-K}),i.value.model.value=x,i.value.mode==="setter"&&i.value.targetId!==void 0&&u("setter",{tagsIds:x,targetId:i.value.targetId,payload:i.value.payload})},f=e.computed(()=>{let p="top-tagSelector_popup";return i.value.mode==="filter"&&(p+=" top-tagSelector_popup-filter"),i.value.mode==="setter"&&(p+=" top-tagSelector_popup-setter"),p}),q=()=>{const p=prompt("","New tag");if(!p||p==="New tag")return;const S=l.value.length+1;l.value.push({id:String(S),name:p,color_id:String((S-1)%10+1)}),r("tagsChanged",l.value)},N=p=>{if(i.value=A.storage(p.elPopupOpener,"topTagSelectorTarget"),!i.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(i.value.filters&&(m.value="add",i.value.model.value=[]),!I.Core.$?.ui.sortable){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}!I.Core.state.isMobile&&!I.Core.state.isMobileUA&&l.value&&$(p.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(!l.value)return;const x=$(k.item).parent().find("[data-tag_id]"),T=[];x.each((U,G)=>{if(!l.value)return;const K=$(G).attr("data-tag_id");T.push(K)}),l.value.sort((U,G)=>{const K=T.findIndex(Q=>Q===U.id),R=T.findIndex(Q=>Q===G.id);return K-R}),u("tagsChanged",l.value)}})},Je=p=>{I.Core.$?.ui.sortable&&$(p.elPopup).data("ui-sortable")&&$(p.elPopup).sortable("destroy")};return(p,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(ge,{modelValue:d.value,"onUpdate:modelValue":S[0]||(S[0]=k=>d.value=k),id:e.unref(g),tags:l.value,styling:t.styling,mode:"filter",useTopButton:t.useTopButton},null,8,["modelValue","id","tags","styling","useTopButton"]),e.createVNode(V._sfc_main,{id:e.unref(g),class:e.normalizeClass(f.value),onOpen:S[4]||(S[4]=k=>N(k)),onClose:S[5]||(S[5]=k=>Je(k)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!t.singleMode?(e.openBlock(),e.createBlock(se,{key:0,id:"all",colorId:"",name:p.$i18n.Common.All_tags??"",state:e.unref(i).model.value.length?"":"selected",onSelect:S[3]||(S[3]=k=>e.unref(i).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,k=>(e.openBlock(),e.createBlock(se,{key:k.id,id:k.id,colorId:k.color_id,name:k.name,state:c(k.id),canExclude:e.unref(i).mode==="filter"&&!t.singleMode,editable:t.tagsEditable,disabled:v.value&&c(k.id)==="",onUnselect:x=>s(k.id,"unselect"),onSelect:x=>s(k.id,"select"),onExclude:x=>s(k.id,"exclude"),"onUpdate:name":x=>{k.name=x,e.unref(u)("tagsChanged",l.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),t.tagsEditable&&l.value.length<t.tagsMax&&l.value.length<20?(e.openBlock(),e.createBlock(V._sfc_main$2,{key:1,"data-top-icon":"",onClick:e.withModifiers(q,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.$i18n.Common.Add),1)]),_:1})):e.createCommentVNode("",!0)]),_:2},[e.unref(i).mode==="setter"&&e.unref(i).filters?{name:"header",fn:e.withCtx(()=>[e.createVNode(I._sfc_main$10,{modelValue:m.value,"onUpdate:modelValue":S[1]||(S[1]=k=>m.value=k),options:y()},null,8,["modelValue","options"])]),key:"0"}:void 0,e.unref(i).mode==="setter"&&e.unref(i).filters?{name:"footer",fn:e.withCtx(()=>[e.createVNode(I._sfc_main$1,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(I._sfc_main$1,{onClick:S[2]||(S[2]=k=>e.unref(u)("setter",{tagsIds:e.unref(i).model.value,filters:e.unref(i).filters,filtersAction:m.value,payload:e.unref(i).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value==="add"?p.$i18n.Common.Add:"")+" "+e.toDisplayString(m.value==="replace"?p.$i18n.Common.Replace:"")+" "+e.toDisplayString(m.value==="delete"?p.$i18n.Common.Delete:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}});B.TopCompetitorSelector=X,B.TopGroupSelector=De,B.TopRegionSelector=ne,B.TopSelectorCompetitors=X,B.TopSelectorRegion=ne,B.TopTagSelector=We,B.TopTagSelectorPopupOpener=ge,B.TopTagSelectorTagIcon=F,B.dialogRegionSelector=oe,B.findRegion=te,B.genElTopTagSelectorPopupOpener=je,B.genSearcherByKey=J,B.renderElTopTagSelectorPopupOpener=Pe,B.useItemsFromCompetitors=Ie,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=project.amd.js.map