@topvisor/ui 1.0.18 → 1.0.20

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 (208) hide show
  1. package/.chunks/{datepicker-DKvr3NYw.amd.js → datepicker-BpcIQBQx.amd.js} +2 -2
  2. package/.chunks/{datepicker-DKvr3NYw.amd.js.map → datepicker-BpcIQBQx.amd.js.map} +1 -1
  3. package/.chunks/{datepicker-EJRX31J1.es.js → datepicker-BwpUPRh5.es.js} +2 -2
  4. package/.chunks/{datepicker-EJRX31J1.es.js.map → datepicker-BwpUPRh5.es.js.map} +1 -1
  5. package/.chunks/forms-CqYQQ4oo.amd.js +3 -0
  6. package/.chunks/forms-CqYQQ4oo.amd.js.map +1 -0
  7. package/.chunks/{forms-DDIlFXbF.es.js → forms-UBLh4e8-.es.js} +650 -584
  8. package/.chunks/forms-UBLh4e8-.es.js.map +1 -0
  9. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-3UaZvDrd.es.js → listItem.vue_vue_type_script_setup_true_lang-B0jhkmeG.es.js} +10 -10
  10. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-3UaZvDrd.es.js.map → listItem.vue_vue_type_script_setup_true_lang-B0jhkmeG.es.js.map} +1 -1
  11. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-CnEbgJbu.amd.js → listItem.vue_vue_type_script_setup_true_lang-BbSoFbg2.amd.js} +2 -2
  12. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-BbSoFbg2.amd.js.map +1 -0
  13. package/.chunks/{menu.vue_vue_type_style_index_0_lang-C4q81rOQ.es.js → menu.vue_vue_type_style_index_0_lang-CF3aS3nJ.es.js} +24 -24
  14. package/.chunks/{menu.vue_vue_type_style_index_0_lang-C4q81rOQ.es.js.map → menu.vue_vue_type_style_index_0_lang-CF3aS3nJ.es.js.map} +1 -1
  15. package/.chunks/{menu.vue_vue_type_style_index_0_lang-DcFQyQgs.amd.js → menu.vue_vue_type_style_index_0_lang-CPtzi4v1.amd.js} +2 -2
  16. package/.chunks/{menu.vue_vue_type_style_index_0_lang-DcFQyQgs.amd.js.map → menu.vue_vue_type_style_index_0_lang-CPtzi4v1.amd.js.map} +1 -1
  17. package/.chunks/{notice-CYeec0mu.amd.js → notice-CiJb1Cdk.amd.js} +2 -2
  18. package/.chunks/{notice-CYeec0mu.amd.js.map → notice-CiJb1Cdk.amd.js.map} +1 -1
  19. package/.chunks/{notice-CtXmQ8xM.es.js → notice-Dj71_6Fi.es.js} +2 -2
  20. package/.chunks/{notice-CtXmQ8xM.es.js.map → notice-Dj71_6Fi.es.js.map} +1 -1
  21. package/.chunks/{popup-38TbXxcV.amd.js → popup-Cw2abdjh.amd.js} +2 -2
  22. package/.chunks/popup-Cw2abdjh.amd.js.map +1 -0
  23. package/.chunks/{popup-BzCXSDdA.es.js → popup-DbEAZSBK.es.js} +6 -7
  24. package/.chunks/popup-DbEAZSBK.es.js.map +1 -0
  25. package/.chunks/punycode.es6-C2yitnNb.amd.js.map +1 -1
  26. package/.chunks/punycode.es6-CNI-zL6U.es.js.map +1 -1
  27. package/.chunks/store-CX_6ZXhO.es.js.map +1 -1
  28. package/.chunks/store-esTid5oI.amd.js.map +1 -1
  29. package/.chunks/utils-3FaaPSyL.es.js +225 -0
  30. package/.chunks/utils-3FaaPSyL.es.js.map +1 -0
  31. package/.chunks/utils-DF6k2YnU.amd.js +2 -0
  32. package/.chunks/utils-DF6k2YnU.amd.js.map +1 -0
  33. package/.chunks/{utils-CI9JyH64.amd.js → utils-DSzOIsFV.amd.js} +2 -2
  34. package/.chunks/{utils-CI9JyH64.amd.js.map → utils-DSzOIsFV.amd.js.map} +1 -1
  35. package/.chunks/{utils-DXI6F7F9.es.js → utils-zcyFDsBL.es.js} +78 -78
  36. package/.chunks/{utils-DXI6F7F9.es.js.map → utils-zcyFDsBL.es.js.map} +1 -1
  37. package/assets/charts.css +1 -1
  38. package/assets/core.css +1 -1
  39. package/assets/forms.css +1 -1
  40. package/assets/formsExt.css +1 -1
  41. package/assets/layout.css +1 -1
  42. package/assets/notice.css +1 -1
  43. package/charts/charts.amd.js +1 -1
  44. package/charts/charts.amd.js.map +1 -1
  45. package/charts/charts.js +1 -1
  46. package/components/charts/miniChart/miniChart.vue.d.ts +5 -5
  47. package/components/charts/miniCharts/miniCharts.vue.d.ts +9 -6
  48. package/components/core/notice/item/item.vue.d.ts +1 -1
  49. package/components/dialog/dialog/dialog.vue.d.ts +3 -2
  50. package/components/dialog/dialog/dialogs/dialogs.vue.d.ts +1 -1
  51. package/components/dialog/dialog/page/page.vue.d.ts +2 -1
  52. package/components/dialog/dialog/page/types.d.ts +7 -0
  53. package/components/forms/avatar/avatar.vue.d.ts +1 -1
  54. package/components/forms/button/button.vue.d.ts +2 -1
  55. package/components/forms/checkbox/checkbox.vue.d.ts +7 -6
  56. package/components/forms/controlLabel/controlLabel.vue.d.ts +3 -2
  57. package/components/forms/hint/hint.vue.d.ts +1 -1
  58. package/components/forms/input/input.vue.d.ts +2 -1
  59. package/components/forms/inputDate/inputDate.vue.d.ts +3 -1
  60. package/components/forms/inputRange/inputRange.vue.d.ts +3 -2
  61. package/components/forms/loadbar/loadbar.vue.d.ts +1 -1
  62. package/components/forms/radio/radio.vue.d.ts +3 -2
  63. package/components/forms/select/select.vue.d.ts +5 -5
  64. package/components/forms/switcher/switcher.vue.d.ts +3 -2
  65. package/components/formsExt/editArea/editArea.vue.d.ts +1 -1
  66. package/components/formsExt/editInput/editInput.vue.d.ts +1 -1
  67. package/components/formsExt/formsExt.d.ts +2 -0
  68. package/components/formsExt/info/info.vue.d.ts +20 -0
  69. package/components/formsExt/info/types.d.ts +21 -0
  70. package/components/formsExt/menu/menu.vue.d.ts +7 -5
  71. package/components/formsExt/radioGroup/radioGroup.vue.d.ts +7 -5
  72. package/components/formsExt/selector2/itemMulti.vue.d.ts +1 -1
  73. package/components/formsExt/selector2/selector2.vue.d.ts +98 -8
  74. package/components/layout/islandRows/islandRows.vue.d.ts +3 -2
  75. package/components/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +3 -2
  76. package/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue.d.ts +3 -2
  77. package/components/layout/rows/rows.vue.d.ts +3 -2
  78. package/components/popup/alert/alert.vue.d.ts +2 -1
  79. package/components/popup/confirm/confirm.vue.d.ts +2 -1
  80. package/components/popup/lib/popup.d.ts +2 -3
  81. package/components/popup/lib/worker.d.ts +7 -7
  82. package/components/popup/popup/listItem.vue.d.ts +2 -1
  83. package/components/popup/popup/opener.vue.d.ts +2 -1
  84. package/components/popup/popup/popup.vue.d.ts +2 -1
  85. package/components/popup/popup/widgetInput.vue.d.ts +4 -4
  86. package/components/popup/prompt/prompt.vue.d.ts +2 -1
  87. package/components/project/selectorCompetitors/selectorCompetitors.vue.d.ts +5 -5
  88. package/components/project/selectorRegion/selectorRegion.vue.d.ts +7 -7
  89. package/components/project/selectorRegion/utils/consts.d.ts +0 -2
  90. package/components/project/tagSelector/popupListItem/tagPopupListItem.vue.d.ts +5 -3
  91. package/components/project/tagSelector/popupOpener/popupOpener.vue.d.ts +6 -5
  92. package/components/project/tagSelector/tagIcon/tagIcon.vue.d.ts +1 -1
  93. package/components/project/tagSelector/tagSelector.vue.d.ts +6 -6
  94. package/components/tabs/tabs/content.vue.d.ts +3 -2
  95. package/components/tabs/tabs/tab.vue.d.ts +2 -1
  96. package/components/tabs/tabs/tabs.vue.d.ts +3 -2
  97. package/components/tabsView/tabsView/menu.vue.d.ts +9 -6
  98. package/components/tabsView/tabsView/menuDelimeter.vue.d.ts +1 -1
  99. package/components/tabsView/tabsView/menuItem.vue.d.ts +2 -1
  100. package/components/tabsView/tabsView/menuTitle.vue.d.ts +2 -1
  101. package/components/tabsView/tabsView/store.d.ts +5 -5
  102. package/components/tabsView/tabsView/tabsView.vue.d.ts +9 -6
  103. package/core/app.amd.js +1 -1
  104. package/core/app.amd.js.map +1 -1
  105. package/core/app.d.ts +2 -2
  106. package/core/app.js +147 -127
  107. package/core/app.js.map +1 -1
  108. package/core/core/core.d.ts +2 -0
  109. package/core/core/preloaders.d.ts +19 -0
  110. package/core/directives/focus.d.ts +3 -1
  111. package/core/directives/scrollIntoView.d.ts +3 -0
  112. package/core/directives/scrollShadow.d.ts +2 -2
  113. package/core/plugins/i18n.d.ts +13 -13
  114. package/core/utils/scroll.d.ts +18 -0
  115. package/core/utils/searchers.d.ts +0 -2
  116. package/dialog/dialog.amd.js +1 -1
  117. package/dialog/dialog.amd.js.map +1 -1
  118. package/dialog/dialog.js +47 -42
  119. package/dialog/dialog.js.map +1 -1
  120. package/forms/forms.amd.js +1 -1
  121. package/forms/forms.js +1 -1
  122. package/forms/helpers.amd.js.map +1 -1
  123. package/formsExt/formsExt.amd.js +1 -1
  124. package/formsExt/formsExt.amd.js.map +1 -1
  125. package/formsExt/formsExt.js +344 -301
  126. package/formsExt/formsExt.js.map +1 -1
  127. package/icomoon/Topvisor icons.json +233 -118
  128. package/icomoon/demo.html +71 -1
  129. package/icomoon/fonts/Topvisor-2.eot +0 -0
  130. package/icomoon/fonts/Topvisor-2.svg +5 -0
  131. package/icomoon/fonts/Topvisor-2.ttf +0 -0
  132. package/icomoon/fonts/Topvisor-2.woff +0 -0
  133. package/icomoon/selection.json +1 -1
  134. package/icomoon/style.css +20 -5
  135. package/layout/layout.amd.js +1 -1
  136. package/layout/layout.amd.js.map +1 -1
  137. package/layout/layout.js +27 -26
  138. package/layout/layout.js.map +1 -1
  139. package/package.json +31 -31
  140. package/popup/popup.amd.js +1 -1
  141. package/popup/popup.amd.js.map +1 -1
  142. package/popup/popup.js +17 -17
  143. package/popup/worker.amd.js +1 -1
  144. package/popup/worker.amd.js.map +1 -1
  145. package/popup/worker.js +3 -3
  146. package/popup/worker.js.map +1 -1
  147. package/project/project.amd.js +1 -1
  148. package/project/project.amd.js.map +1 -1
  149. package/project/project.js +315 -317
  150. package/project/project.js.map +1 -1
  151. package/tabsView/tabsView.amd.js +1 -1
  152. package/tabsView/tabsView.amd.js.map +1 -1
  153. package/tabsView/tabsView.js +23 -23
  154. package/utils/check.amd.js.map +1 -1
  155. package/utils/check.js.map +1 -1
  156. package/utils/clipboard.amd.js +1 -1
  157. package/utils/clipboard.amd.js.map +1 -1
  158. package/utils/clipboard.js +1 -1
  159. package/utils/clipboard.js.map +1 -1
  160. package/utils/date.amd.js +1 -1
  161. package/utils/date.js +1 -1
  162. package/utils/device.amd.js +1 -1
  163. package/utils/device.js +1 -1
  164. package/utils/dom.amd.js +1 -1
  165. package/utils/dom.amd.js.map +1 -1
  166. package/utils/dom.js +30 -30
  167. package/utils/dom.js.map +1 -1
  168. package/utils/image.amd.js.map +1 -1
  169. package/utils/keyboard.amd.js.map +1 -1
  170. package/utils/lodash.amd.js +1 -1
  171. package/utils/lodash.js +5 -5
  172. package/utils/number.amd.js.map +1 -1
  173. package/utils/price.amd.js +1 -1
  174. package/utils/price.amd.js.map +1 -1
  175. package/utils/price.js +1 -1
  176. package/utils/price.js.map +1 -1
  177. package/utils/route.amd.js +1 -1
  178. package/utils/route.amd.js.map +1 -1
  179. package/utils/route.js +5 -5
  180. package/utils/route.js.map +1 -1
  181. package/utils/scroll.amd.js +1 -1
  182. package/utils/scroll.amd.js.map +1 -1
  183. package/utils/scroll.js +39 -7
  184. package/utils/scroll.js.map +1 -1
  185. package/utils/searchers.amd.js +1 -1
  186. package/utils/searchers.amd.js.map +1 -1
  187. package/utils/searchers.js +0 -2
  188. package/utils/searchers.js.map +1 -1
  189. package/utils/string.amd.js +1 -1
  190. package/utils/string.amd.js.map +1 -1
  191. package/utils/string.js +29 -29
  192. package/utils/string.js.map +1 -1
  193. package/utils/system.amd.js.map +1 -1
  194. package/utils/system.js.map +1 -1
  195. package/utils/url.amd.js.map +1 -1
  196. package/utils/url.js.map +1 -1
  197. package/web-types.json +28 -0
  198. package/.chunks/forms-CmlWMEyk.amd.js +0 -3
  199. package/.chunks/forms-CmlWMEyk.amd.js.map +0 -1
  200. package/.chunks/forms-DDIlFXbF.es.js.map +0 -1
  201. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CnEbgJbu.amd.js.map +0 -1
  202. package/.chunks/popup-38TbXxcV.amd.js.map +0 -1
  203. package/.chunks/popup-BzCXSDdA.es.js.map +0 -1
  204. package/.chunks/utils-CFCfvsI8.es.js +0 -223
  205. package/.chunks/utils-CFCfvsI8.es.js.map +0 -1
  206. package/.chunks/utils-lvXB5hbW.amd.js +0 -2
  207. package/.chunks/utils-lvXB5hbW.amd.js.map +0 -1
  208. package/components/formsExt/info/info.d.ts +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управлеяет работой Popup\n *\n * Должен грузить Popup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { Popup, PopupOptions } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/popup';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (TopPopupInstance: Popup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (TopPopupInstance: Popup) => 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): Popup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as Popup;\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<Popup | 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.topPopupOpenByHover) {\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<Popup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { default: Popup } = 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 Popup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.close();\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: Popup): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: Popup): 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);\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\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","elOpener","options","popup","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","tagName","props","elsChildrens","el","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 { TopLibPopup, PopupOptions } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/popup';\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\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.topPopupOpenByHover) {\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): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.close();\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): 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): 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);\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\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","elOpener","options","popup","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","tagName","props","elsChildrens","el","name","attrName"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-CmlWMEyk.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-CnEbgJbu.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-DcFQyQgs.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],function(Me,w,e,I,E,Z,q,_,ee){"use strict";if(typeof e>"u")var e=window.Vue;const te={class:"top-selectorCompetitors"},ne={class:"top-ellipsis1"},oe=e.defineComponent({__name:"selectorCompetitors",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,d=e.useModel(t,"modelValue"),n=e.computed(()=>{if(o.showSelectAllItem)return{icon:"",title:I.useI18n().Common.Select_all,value:"all",content:""}});return(l,a)=>(e.openBlock(),e.createElementBlock("div",te,[e.unref(I.Core).state.isMobile?(e.openBlock(),e.createBlock(E._sfc_main,{key:0},{opener:e.withCtx(()=>[e.createVNode(I._sfc_main,{class:"top-selectorCompetitors_opener",color:"theme",icon:"",icon2:""},{default:e.withCtx(()=>{var r;return[e.createTextVNode(e.toDisplayString((r=l.items.find(u=>{var f;return u.value===((f=d.value)==null?void 0:f[0])}))==null?void 0:r.content),1)]}),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.items,(r,u)=>{var f;return e.openBlock(),e.createBlock(E._sfc_main$2,{class:e.normalizeClass({"top-active":(f=d.value)==null?void 0:f.includes(r.value)}),"data-top-icon":r.icon,title:r.title,onClick:()=>d.value=[r.value]},{default:e.withCtx(()=>[e.createElementVNode("span",ne,e.toDisplayString(r.content),1)]),_:2},1032,["class","data-top-icon","title","onClick"])}),256))]),_:1})):(e.openBlock(),e.createBlock(Z._sfc_main,{key:1,modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=r=>d.value=r),items:l.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:n.value},null,8,["modelValue","items","selectAllItem"]))]))}}),k=-2,le={0:"Yandex",1:"Google",2:"go.Mail",4:"YouTube",5:"Bing",6:"Yahoo",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},L={key:k,name:"--",index:k},j={key:k,name:"--",regions:[L],regionByIndex:new Map([[k,L]])},A={key:k,name:"Autoselect",index:k},P={key:k,name:"Autoselect",regions:[A],regionByIndex:new Map([[k,A]])},J={countryCode:"00",depth:1,device:0,key:-1,index:-1,lang:"ru",name:"Without region"},ae=()=>(A.name=I.useI18n().Common.Autoselect,A),re=()=>(ae(),P.name=I.useI18n().Common.Autoselect,console.log(P),P),ie=()=>(J.name=I.useI18n().Keywords.Without_region,J),U=(t=!1,o=!1,d=[])=>{let n;return t?n=de(d):n=G(d),o&&n.set(k,re()),n.size||n.set(k,j),n},G=(t,o=!0,d=[],n=!1)=>{const l=new Map;return t.forEach(a=>{if(!a.enabled||n&&typeof a.key=="number"&&a.key>1)return;const r={...a};r.regionByIndex=new Map,a.regions&&a.regions.forEach(u=>{if(o&&!u.enabled)return;const f={...u};r.regionByIndex&&r.regionByIndex.set(f.index,f)}),!r.regionByIndex.size&&!d.length&&r.regionByIndex.set(L.index,L),typeof r.key=="number"&&l.set(r.key,r)}),d.forEach(a=>{if(l.has(a))return;const r={key:a,name:le[a],regions:[],regionByIndex:new Map};l.set(r.key,r)}),l},de=t=>{const o=G(t,!1,[0,1],!0);if(o.has(2)){const d=o.get(2);d&&(d.regionByIndex=new Map)}return o.forEach(d=>{if(!d.regionByIndex)return;const n={...ie()};d.regionByIndex.set(n.index,n)}),o},Y=(t,o,d=[])=>{const n=U(t,!1,d);let l;return n.forEach(a=>{if(!(o.searcher_key!==void 0&&o.searcher_key!=a.key)&&a.regions&&(a.regions.forEach(r=>{if(!l&&!(o.key!==void 0&&o.key!=r.key)&&!(o.index!==void 0&&o.index!=r.index)&&!(!t&&(o.lang!==void 0&&o.lang!=r.lang||o.device!==void 0&&o.device!=r.device)))return r.searcher_key=a.key,l=r,!1}),l))return!1}),l},se=(t,o)=>{const d=I.useI18n(),n=e.ref(o.value.keys().next().value??k),l=e.computed(()=>{const a=new Map;if(o.value.forEach(r=>{let u={value:r.key,title:r.name};t.addSearcherIcon&&(u.icon=q.getSearcherGIcon(r.key)),a.set(r.key,u)}),t.addCompare&&!a.has(k)){const r={value:"",title:"--------------------",disabled:!0};a.set(r.value,r);const u={value:-1,title:d.Common.Compare};a.set(u.value,u)}return a});return{searcherKey:n,optionBySearcherKey:l}},ue=(t,o)=>{var a,r,u;const d=I.useI18n(),n=e.ref(k);t.modelValue.length===1&&(n.value=t.modelValue[0]),n.value===k&&(t.forFrequency?n.value=((r=(a=o.value)==null?void 0:a.regionByIndex.values().next().value)==null?void 0:r.key)??k:n.value=((u=o.value)==null?void 0:u.regionByIndex.keys().next().value)??k);const l=e.computed(()=>{var v;const f=new Map;return(v=o.value.regionByIndex)==null||v.forEach(p=>{let i=p.name;if(t.forFrequency){const C={value:p.key,title:i};f.has(p.key)||f.set(p.key,C);return}p.device&&(i+=" ("+d.Common["Device_"+p.device]+")");const g=q.getLangLabel(o.value.key||0,p.lang??"");g&&(i+=" / "+g);const y={value:p.index,title:i,icon:p.device?q.getDeviceGIcon(p.device):void 0};f.set(p.index,y)}),f});return e.watch(l,(f,v)=>{var y;if(t.onlySearcher||n.value!==void 0&&f.get(n.value))return;let p=f.keys().next().value;if(n.value===k||p===k){n.value=p;return}let i=((y=v==null?void 0:v.get(n.value))==null?void 0:y.title)||"",g=-1;for(const[C,x]of f.entries()){const S=x.title;if(typeof S!="string"||typeof C=="string")break;if(S===i){p=C;break}const T=new RegExp(` \\((${d.Common.Device_1}|${d.Common.Device_2})\\)`);let B=i,c=3;S.indexOf(B)===-1&&(B=i.replace(/^[^a-zа-я]/i,"").replace(T,""),c--),S.indexOf(B)===-1&&(B=i.replace(/ \/.*/,""),c--),S.indexOf(B)===-1&&(B=i.replace(/ \/.*/,""),B=B.replace(/^[^a-zа-я]/i,"").replace(T,""),c--),S.indexOf(B)!==-1&&(c<=g||(g=c,p=C))}n.value=p}),{regionIndex:n,optionByRegionIndex:l}},ce=(t,o,d)=>{const n=e.ref([]),l=()=>{if(t.onlySearcher&&o.value){n.value=Array.from(o.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=>d.value.has(u))),r.length||(r=Array.from(d.value)),n.value=[...r]},a=()=>{n.value.length?localStorage.setItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes",JSON.stringify(n.value)):localStorage.removeItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes")};return e.watch(n,()=>{a()}),t.addCompare&&l(),{regionsIndexes:n}},me=t=>{const o=e.computed(()=>U(t.forFrequency,t.autoRegion,t.searchers)),d=e.computed(()=>o.value.get(l.searcherKey.value)||j),n=e.computed(()=>{const i=new Set;return o.value.forEach(g=>{var y;(y=g.regions)==null||y.forEach(C=>{C.index!==-1&&C.index!==k&&i.add(C.index)})}),i}),l=se(t,o),a=ue(t,d),r=ce(t,o,n);e.watch(o,()=>{var g,y,C,x;if(t.onlySearcher?r.regionsIndexes.value=Array.from(o.value.keys()):r.regionsIndexes.value=r.regionsIndexes.value.filter(S=>n.value.has(S)),l.searcherKey.value===-1)return;let i=o.value.keys().next().value;o.value.forEach(S=>{var T,B,c;if(t.onlySearcher&&S.key===l.searcherKey.value){i=l.searcherKey.value;return}if(a.regionIndex.value&&((T=S.regionByIndex)!=null&&T.has(a.regionIndex.value))&&(i=S.key),!t.onlySearcher){let s;i!==void 0&&(s=(B=o.value.get(i))==null?void 0:B.regionByIndex);const m=(c=o.value.get(S.key))==null?void 0:c.regionByIndex;s!=null&&s.has(k)&&!(m!=null&&m.has(k))&&(i=S.key)}}),i!==void 0&&(l.searcherKey.value=i),a.regionIndex.value!==void 0&&!((y=(g=d.value)==null?void 0:g.regionByIndex)!=null&&y.has(a.regionIndex.value))&&(a.regionIndex.value=(x=(C=d.value)==null?void 0:C.regions)==null?void 0:x.keys().next().value)},{immediate:!0});const u=()=>{if(!(l.searcherKey.value===-1||l.searcherKey.value===k))return l.searcherKey.value},f=()=>{if(t.onlySearcher||a.regionIndex.value===k)return;let i=a.regionIndex.value;if(t.forFrequency){const g=a.regionIndex.value,y=Y(t.forFrequency,{searcher_key:u(),key:g},t.searchers);i=y==null?void 0:y.index}return i},v=()=>{const i=u();if(i!==void 0)return o.value.get(i)};return{selectSearcher:l,selectRegion:a,compare:r,searcherByKey:o,allRegionsIndexes:n,getSearcher:v,getRegion:()=>{var g,y;const i=f();if(i!==void 0)return(y=(g=v())==null?void 0:g.regionByIndex)==null?void 0:y.get(i)}}},ge=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:e.mergeModels(["compareRegions"],["update:modelValue","update:modelValueSingle"]),setup(t,{expose:o,emit:d}){const n=t,l=e.useModel(t,"modelValue"),a=e.useModel(t,"modelValueSingle"),r=d,{selectSearcher:u,selectRegion:f,compare:v,searcherByKey:p,allRegionsIndexes:i,getSearcher:g,getRegion:y}=me(n),C=()=>{var x;if(window.fieldTemplates&&((x=window.fieldTemplates)!=null&&x.openSelectorRegions)){window.fieldTemplates.openSelectorRegions(p.value,v.regionsIndexes.value,S=>v.regionsIndexes.value=S);return}r("compareRegions",p.value)};return e.watch([f.regionIndex,u.searcherKey,v.regionsIndexes],()=>{if(u.searcherKey.value===-1&&v.regionsIndexes.value.length){if(JSON.stringify(l.value)===JSON.stringify(v.regionsIndexes.value))return;l.value=[...v.regionsIndexes.value]}else l.value=[n.onlySearcher?u.searcherKey.value:f.regionIndex.value];!n.onlySearcher&&!i.value.size&&(u.searcherKey.value=k)}),a.value&&e.watch(a,()=>{l.value=[a.value]},{immediate:!0}),e.watch(l,()=>{var x,S,T,B,c;if(l.value[0]&&(a.value=l.value[0]),n.onlySearcher){if(!l.value.length||l.value.length===1&&!p.value.has(l.value[0])){let s=p.value.keys().next().value;s!==void 0&&(l.value=[s]);return}if(l.value.length>1&&JSON.stringify(l.value)!==JSON.stringify(v.regionsIndexes.value)){l.value=[...v.regionsIndexes.value];return}}else{let s=[...new Set(l.value)],m=(S=(x=p.value.values().next().value)==null?void 0:x.regionByIndex)==null?void 0:S.keys().next().value;if(n.forFrequency&&(m=(c=(B=(T=p.value.values().next().value)==null?void 0:T.regionByIndex)==null?void 0:B.values().next().value)==null?void 0:c.key),!s.length)m!==void 0&&s.push(m);else if(s.length===1){let h=i.value;n.forFrequency&&(h=new Set,p.value.forEach(V=>{V.regionByIndex.forEach(M=>{M.index!==-1&&M.index!==k&&h.add(M.key)})})),!h.has(s[0])&&s[0]!==-2&&(s=[],m!==void 0&&s.push(m))}else s=s.filter(h=>i.value.has(h)),!s.length&&m!==void 0&&s.push(m);if(JSON.stringify(l.value)!==JSON.stringify(s)){l.value=s;return}}if(!(l.value.length===1&&l.value[0]===(n.onlySearcher?u.searcherKey.value:f.regionIndex.value)))if(n.onlySearcher){if(l.value.length===1){u.searcherKey.value=l.value[0];return}u.searcherKey.value=-1;return}else if(l.value.length===1&&u.searcherKey.value!==-1){f.regionIndex.value=l.value[0];let s;for(const m of p.value.values()){for(const h of m.regionByIndex.values())if((n.forFrequency?h.key:h.index)===f.regionIndex.value){s=m.key;break}if(s!==void 0)break}s!==void 0&&(u.searcherKey.value=s)}else u.searcherKey.value=-1,v.regionsIndexes.value=[...l.value]},{immediate:!0}),o({getSearcher:g,getRegion:y}),(x,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-selectorRegion":!0,"top-selectorRegion-onlySearcher":x.onlySearcher})},[e.createVNode(I._sfc_main$4,{options:e.unref(u).optionBySearcherKey.value,modelValue:e.unref(u).searcherKey.value,"onUpdate:modelValue":S[0]||(S[0]=T=>e.unref(u).searcherKey.value=T),name:"searcher_key",addChanger:x.addChanger},null,8,["options","modelValue","addChanger"]),!x.onlySearcher&&e.unref(u).searcherKey.value!==-1?(e.openBlock(),e.createBlock(I._sfc_main$4,{key:0,class:"top-select-region",options:e.unref(f).optionByRegionIndex.value,modelValue:e.unref(f).regionIndex.value,"onUpdate:modelValue":S[1]||(S[1]=T=>e.unref(f).regionIndex.value=T),name:x.forFrequency?"region_key":"region_index",addChanger:x.addChanger,"data-top-icon":x.addRegionIcon?"":void 0},null,8,["options","modelValue","name","addChanger","data-top-icon"])):e.createCommentVNode("",!0),x.addCompare&&!x.onlySearcher&&e.unref(u).searcherKey.value===-1?(e.openBlock(),e.createBlock(I._sfc_main,{key:1,name:"compare",onClick:C,"data-count-compare-regions-indexes":e.unref(v).regionsIndexes.value.length},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.$i18n.Common.Selected_regions),1)]),_:1},8,["data-count-compare-regions-indexes"])):e.createCommentVNode("",!0)],2))}}),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"}],W=t=>"-"+t,K=t=>t[0]==="-"?t.substring(1):t,O=(t,o)=>{t=K(t);const d=o.find(n=>n.id===t);if(d)return d},ve=["data-tag_id","data-tag_color_id","title"],R=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(t){return(o,d)=>(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,ve))}}),pe=["contenteditable","onKeydown"],H=e.defineComponent({__name:"tagPopupListItem",props:e.mergeModels({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:e.mergeModels(["update:name","unselect","exclude","select"],["update:name"]),setup(t,{emit:o}){const d=t,n=o,l=e.useModel(t,"name"),a=e.ref(null),r=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:u.value,onpaste:g=>g.preventDefault()}:{}),u=e.ref(!1),f=async()=>{var g;u.value=!0,await e.nextTick(),(g=a.value)==null||g.focus()},v=()=>{var y;const g=(y=a.value)==null?void 0:y.innerText;if(!g)return p();a.value&&(a.value.innerText=g),u.value=!1,n("update:name",g)},p=async()=>{a.value&&(a.value.innerText=d.name),u.value=!1},i=g=>{if(u.value||d.disabled)return;let y="selected";d.canExclude&&(g.ctrlKey||g.metaKey)&&(y="excluded"),d.state==y&&(y=""),y===""&&n("unselect"),y==="selected"&&n("select"),y==="excluded"&&n("exclude")};return(g,y)=>(e.openBlock(),e.createBlock(E._sfc_main$2,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":u.value,"top-tagSelector_tagListItem-disabled":g.disabled,"top-tagSelector_tagListItem-canExclude":g.canExclude,"top-tagSelector-active":!!g.state,"top-tagSelector-excluded":g.state==="excluded"}),onClick:e.withModifiers(i,["stop"])},{default:e.withCtx(()=>[e.createVNode(R,{id:g.id,name:l.value,colorId:g.colorId,state:g.state},null,8,["id","name","colorId","state"]),e.createElementVNode("span",e.mergeProps({ref_key:"elName",ref:a,class:"top-tagSelector_tagListItemName",contenteditable:u.value?"plaintext-only":!1},r.value,{onKeydown:[e.withKeys(e.withModifiers(v,["stop"]),["enter"]),e.withKeys(e.withModifiers(p,["stop"]),["esc"])]}),e.toDisplayString(l.value),17,pe),g.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(v,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:f}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),ye={key:1},Q=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,d=e.useModel(t,"modelValue"),n=o.useTopButton?I._sfc_main:"div",l=o.useTopButton?"html":"default",a={model:d,mode:o.mode,targetId:o.targetId,filters:o.filters,payload:o.payload};return(r,u)=>{const f=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(E._sfc_main$1,{id:r.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(n)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-filter":o.mode==="filter","top-tagSelector-setter_single":o.mode==="setter"&&!r.filters,"top-tagSelector-setter_several":o.mode==="setter"&&r.filters,"top-tagSelector-selectedOne":!d.value.length||d.value.length===1,"top-tagSelector-toTwoLine":d.value.length>5},color:"theme",styling:""},r.$attrs),{[e.unref(l)]:e.withCtx(()=>[!d.value.length&&r.mode==="filter"?(e.openBlock(),e.createBlock(R,{key:0,id:"all",colorId:"",name:r.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),r.mode==="setter"&&r.filters?(e.openBlock(),e.createElementBlock("div",ye,[e.renderSlot(r.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(d.value,v=>{var p,i;return e.openBlock(),e.createBlock(R,{id:e.unref(K)(v),colorId:((p=e.unref(O)(v,r.tags))==null?void 0:p.color_id)??"",name:((i=e.unref(O)(v,r.tags))==null?void 0:i.name)??"",state:e.unref(K)(v)===v?"selected":"excluded"},null,8,["id","colorId","name","state"])}),256))]),_:2},1040,["class"])),[[f,a,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),he=e.defineComponent({__name:"tagSelector",props:e.mergeModels({modelValue:{},tags:{},tagsEditable:{type:Boolean},tagsMax:{default:10},id:{},singleMode:{type:Boolean},requiredForSetter:{type:Boolean,default:!0},maxTagsForSetter:{},emitDelay:{default:500}},{modelValue:{required:!0},modelModifiers:{},tags:{default:e.reactive(fe)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(t,{emit:o}){const d=I.useI18n(),n=t,l=e.useModel(t,"modelValue"),a=e.useModel(t,"tags"),r=o,u=I.debounce((c,s)=>{r(c,s)},n.emitDelay);n.singleMode&&!l.value.length&&(l.value=[a.value[0].id]);const f=n.id??"top-popup-id-"+Math.random(),v=e.ref("add"),p=()=>{var m;const c=" "+((m=d.Common.Tags)==null?void 0:m.toLowerCase()),s=new Map;return s.set("add",{value:"add",title:d.Common.Add+c}),s.set("replace",{value:"replace",title:d.Common.Replace+c}),s.set("delete",{value:"delete",title:d.Common.Delete+c}),s};let i=e.shallowRef({model:l,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(l,()=>{u("selector",l.value)});const g=e.computed(()=>{if(i.value.mode==="setter"&&n.maxTagsForSetter&&!i.value.filters)return i.value.model.value.length>=n.maxTagsForSetter}),y=c=>{if(c!=="all"){if(i.value.model.value.includes(c))return"selected";if(i.value.model.value.includes(W(c)))return"excluded"}return c==="all"&&!i.value.model.value.length?"selected":""},C=(c,s)=>{const m=W(c);let h=i.value.model.value.filter(V=>V!==c&&V!==m);s==="select"&&h.push(c),s==="exclude"&&h.push(m),i.value.mode==="setter"&&i.value.targetId!==void 0&&n.requiredForSetter&&(h.length||h.push("1"),h.length===2&&i.value.model.value.length===1&&i.value.model.value[0]==="1"&&(h=h.filter(V=>V!=="1"))),n.singleMode&&!i.value.filters&&(h.length||(h=i.value.model.value),h.length>1&&(h=[h[h.length-1]])),h.sort((V,M)=>{if(!n.tags)return 0;const F=n.tags.findIndex(b=>b.id===V),N=n.tags.findIndex(b=>b.id===M);return F-N}),i.value.model.value=h,i.value.mode==="setter"&&i.value.targetId!==void 0&&u("setter",{tagsIds:h,targetId:i.value.targetId,payload:i.value.payload})},x=e.computed(()=>{let c="top-tagSelector_popup";return i.value.mode==="filter"&&(c+=" top-tagSelector_popup-filter"),i.value.mode==="setter"&&(c+=" top-tagSelector_popup-setter"),c}),S=()=>{const c=prompt("","New tag");if(!c||c==="New tag")return;const s=a.value.length+1;a.value.push({id:String(s),name:c,color_id:String((s-1)%10+1)}),r("tagsChanged",a.value)},T=c=>{var s;if(i.value=_.storage(c.elPopupOpener,"topTagSelectorTarget"),!i.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(i.value.filters&&(v.value="add",i.value.model.value=[]),!((s=I.Core.$)!=null&&s.ui.sortable)){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}!I.Core.state.isMobile&&!I.Core.state.isMobileUA&&a.value&&$(c.elPopup).sortable({items:'li:has([data-tag_id]:not([data-tag_id="all"]))',cancel:'[contenteditable="plaintext-only"], [contenteditable="true"]',distance:10,stop:function(m,h){if(!a.value)return;const V=$(h.item).parent().find("[data-tag_id]"),M=[];V.each((F,N)=>{if(!a.value)return;const b=$(N).attr("data-tag_id");M.push(b)}),a.value.sort((F,N)=>{const b=M.findIndex(z=>z===F.id),Ve=M.findIndex(z=>z===N.id);return b-Ve}),u("tagsChanged",a.value)}})},B=c=>{var s;(s=I.Core.$)!=null&&s.ui.sortable&&$(c.elPopup).data("ui-sortable")&&$(c.elPopup).sortable("destroy")};return(c,s)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(Q,{class:"top-select_arrow",modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=m=>l.value=m),id:e.unref(f),tags:a.value,mode:"filter",useTopButton:""},null,8,["modelValue","id","tags"]),e.createVNode(E._sfc_main,{id:e.unref(f),class:e.normalizeClass(x.value),onOpen:s[4]||(s[4]=m=>T(m)),onClose:s[5]||(s[5]=m=>B(m)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!c.singleMode?(e.openBlock(),e.createBlock(H,{key:0,id:"all",colorId:"",name:c.$i18n.Common.All_tags??"",state:e.unref(i).model.value.length?"":"selected",onSelect:s[3]||(s[3]=m=>e.unref(i).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,m=>(e.openBlock(),e.createBlock(H,{key:m.id,id:m.id,colorId:m.color_id,name:m.name,state:y(m.id),canExclude:e.unref(i).mode==="filter"&&!c.singleMode,editable:c.tagsEditable,disabled:g.value&&y(m.id)==="",onUnselect:h=>C(m.id,"unselect"),onSelect:h=>C(m.id,"select"),onExclude:h=>C(m.id,"exclude"),"onUpdate:name":h=>{m.name=h,e.unref(u)("tagsChanged",a.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),c.tagsEditable&&a.value.length<c.tagsMax&&a.value.length<20?(e.openBlock(),e.createBlock(E._sfc_main$2,{key:1,"data-top-icon":"",onClick:e.withModifiers(S,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$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$4,{modelValue:v.value,"onUpdate:modelValue":s[1]||(s[1]=m=>v.value=m),options:p()},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,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(I._sfc_main,{onClick:s[2]||(s[2]=m=>e.unref(u)("setter",{tagsIds:e.unref(i).model.value,filters:e.unref(i).filters,filtersAction:v.value,payload:e.unref(i).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.value==="add"?c.$i18n.Common.Add:"")+" "+e.toDisplayString(v.value==="replace"?c.$i18n.Common.Replace:"")+" "+e.toDisplayString(v.value==="delete"?c.$i18n.Common.Remove:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}}),Se=(t,o)=>e.computed(()=>e.toValue(t).filter(l=>l.on>=0||l.id===o).map(l=>({value:l.id,title:l.url+` [${l.id}]`,icon:l.id===e.toValue(o)?"":"",content:l.name}))),ke=(t,o,d)=>{o||(o={id:t.id}),o.id=t.id;const n=ee.TopPopupWorker.genElPopupOpener("div",o);return n.classList.add("top-tagSelector"),t.useTopButton&&n.classList.add("top-button","top-color_theme"),t.mode==="filter"&&n.classList.add("top-tagSelector-filter"),t.mode==="setter"&&!t.filters&&n.classList.add("top-tagSelector-setter_single"),t.mode==="setter"&&t.filters&&n.classList.add("top-tagSelector-setter_several"),n.onclick=l=>{l.preventDefault(),l.stopPropagation(),n.onclick=null;const a=e.ref(t.modelValue),r={model:a,mode:t.mode,targetId:t.targetId,filters:t.filters,payload:t.payload};_.storage(n,"topTagSelectorTarget",r),delete n.dataset.topPopupDisabled,e.isRef(t.modelValue)||e.watch(a,()=>{t.modelValue=a.value,D(n,t,d)}),n.click()},e.isRef(t.modelValue)?e.watch(t.modelValue,()=>D(n,t,d)):_.storage(n,"topTagSelectorRender",l=>{t.modelValue=l;const a=_.storage(n,"topTagSelectorTarget");a&&(a.model.value=l),D(n,t,d)}),D(n,t,d),n},Ie=(t,o)=>{var d;(d=_.storage(t,"topTagSelectorRender"))==null||d(o)},D=(t,o,d)=>{var l;const n=e.unref(o.modelValue);if(t.classList.toggle("top-tagSelector-selectedOne",!n.length||n.length===1),t.classList.toggle("top-tagSelector-toTwoLine",n.length>5),o.mode==="setter"&&o.filters){t.innerHTML=`<div>${d}</div>`;return}if(t.innerHTML="",!n.length&&o.mode==="filter"){const a=X({id:"all",colorId:"",name:((l=I.useI18n().Common)==null?void 0:l.All_tags)??"",state:""});t.append(a)}n.forEach(a=>{var u,f;const r=X({id:K(a),colorId:((u=O(a,o.tags))==null?void 0:u.color_id)??"",name:((f=O(a,o.tags))==null?void 0:f.name)??"",state:K(a)===a?"selected":"excluded"});t.append(r)})},X=t=>{const o=document.createElement("div");return o.classList.add("top-tagSelector_tagIcon"),o.classList.toggle("top-tagSelector-active",!!t.state),o.classList.toggle("top-tagSelector-excluded",t.state==="excluded"),o.dataset.tag_id=t.id,o.dataset.tag_color_id=t.colorId,o.title=t.name,o},xe=oe,Ce=ge,Be=he,Te=Q,we=R;w.TopSelectorCompetitors=xe,w.TopSelectorRegion=Ce,w.TopTagSelector=Be,w.TopTagSelectorPopupOpener=Te,w.TopTagSelectorTagIcon=we,w.findRegion=Y,w.genElTopTagSelectorPopupOpener=ke,w.genSearcherByKey=U,w.renderElTopTagSelectorPopupOpener=Ie,w.useItemsFromCompetitors=Se,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-CqYQQ4oo.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-BbSoFbg2.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-CPtzi4v1.amd","../utils/searchers.amd","../utils/dom.amd","../popup/worker.amd","../require/css.amd!../assets/project.css"],function(Me,w,e,I,E,Z,q,_,ee){"use strict";if(typeof e>"u")var e=window.Vue;const te={class:"top-selectorCompetitors"},ne={class:"top-ellipsis1"},oe=e.defineComponent({__name:"selectorCompetitors",props:e.mergeModels({modelValue:{},items:{},showSelectAllItem:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,d=e.useModel(t,"modelValue"),n=e.computed(()=>{if(o.showSelectAllItem)return{icon:"",title:I.useI18n().Common.Select_all,value:"all",content:""}});return(l,a)=>(e.openBlock(),e.createElementBlock("div",te,[e.unref(I.Core).state.isMobile?(e.openBlock(),e.createBlock(E._sfc_main,{key:0},{opener:e.withCtx(()=>[e.createVNode(I._sfc_main,{class:"top-selectorCompetitors_opener",color:"theme",icon:"",icon2:""},{default:e.withCtx(()=>{var r;return[e.createTextVNode(e.toDisplayString((r=l.items.find(s=>{var g;return s.value===((g=d.value)==null?void 0:g[0])}))==null?void 0:r.content),1)]}),_:1})]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.items,(r,s)=>{var g;return e.openBlock(),e.createBlock(E._sfc_main$2,{class:e.normalizeClass({"top-active":(g=d.value)==null?void 0:g.includes(r.value)}),"data-top-icon":r.icon,title:r.title,onClick:()=>d.value=[r.value]},{default:e.withCtx(()=>[e.createElementVNode("span",ne,e.toDisplayString(r.content),1)]),_:2},1032,["class","data-top-icon","title","onClick"])}),256))]),_:1})):(e.openBlock(),e.createBlock(Z._sfc_main,{key:1,modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=r=>d.value=r),items:l.items,isMultiple:!0,styling:"bar",canBeEmptyMultiple:!1,selectAllItem:n.value},null,8,["modelValue","items","selectAllItem"]))]))}}),k=-2,le={0:"Yandex",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GoogleStore",20:"Yandex.com",21:"Yandex.com.tr"},L={key:k,name:"--",index:k},j={key:k,name:"--",regions:[L],regionByIndex:new Map([[k,L]])},A={key:k,name:"Autoselect",index:k},P={key:k,name:"Autoselect",regions:[A],regionByIndex:new Map([[k,A]])},J={countryCode:"00",depth:1,device:0,key:-1,index:-1,lang:"ru",name:"Without region"},ae=()=>(A.name=I.useI18n().Common.Autoselect,A),re=()=>(ae(),P.name=I.useI18n().Common.Autoselect,console.log(P),P),ie=()=>(J.name=I.useI18n().Keywords.Without_region,J),U=(t=!1,o=!1,d=[])=>{let n;return t?n=de(d):n=G(d),o&&n.set(k,re()),n.size||n.set(k,j),n},G=(t,o=!0,d=[],n=!1)=>{const l=new Map;return t.forEach(a=>{if(!a.enabled||n&&typeof a.key=="number"&&a.key>1)return;const r={...a};r.regionByIndex=new Map,a.regions&&a.regions.forEach(s=>{if(o&&!s.enabled)return;const g={...s};r.regionByIndex&&r.regionByIndex.set(g.index,g)}),!r.regionByIndex.size&&!d.length&&r.regionByIndex.set(L.index,L),typeof r.key=="number"&&l.set(r.key,r)}),d.forEach(a=>{if(l.has(a))return;const r={key:a,name:le[a],regions:[],regionByIndex:new Map};l.set(r.key,r)}),l},de=t=>{const o=G(t,!1,[0,1],!0);if(o.has(2)){const d=o.get(2);d&&(d.regionByIndex=new Map)}return o.forEach(d=>{if(!d.regionByIndex)return;const n={...ie()};d.regionByIndex.set(n.index,n)}),o},Y=(t,o,d=[])=>{const n=U(t,!1,d);let l;return n.forEach(a=>{if(!(o.searcher_key!==void 0&&o.searcher_key!=a.key)&&a.regions&&(a.regions.forEach(r=>{if(!l&&!(o.key!==void 0&&o.key!=r.key)&&!(o.index!==void 0&&o.index!=r.index)&&!(!t&&(o.lang!==void 0&&o.lang!=r.lang||o.device!==void 0&&o.device!=r.device)))return r.searcher_key=a.key,l=r,!1}),l))return!1}),l},ue=(t,o)=>{const d=I.useI18n(),n=e.ref(o.value.keys().next().value??k),l=e.computed(()=>{const a=new Map;if(o.value.forEach(r=>{let s={value:r.key,title:r.name};t.addSearcherIcon&&(s.icon=q.getSearcherGIcon(r.key)),a.set(r.key,s)}),t.addCompare&&!a.has(k)){const r={value:"",title:"--------------------",disabled:!0};a.set(r.value,r);const s={value:-1,title:d.Common.Compare};a.set(s.value,s)}return a});return{searcherKey:n,optionBySearcherKey:l}},se=(t,o)=>{var a,r,s;const d=I.useI18n(),n=e.ref(k);t.modelValue.length===1&&(n.value=t.modelValue[0]),n.value===k&&(t.forFrequency?n.value=((r=(a=o.value)==null?void 0:a.regionByIndex.values().next().value)==null?void 0:r.key)??k:n.value=((s=o.value)==null?void 0:s.regionByIndex.keys().next().value)??k);const l=e.computed(()=>{var v;const g=new Map;return(v=o.value.regionByIndex)==null||v.forEach(p=>{let i=p.name;if(t.forFrequency){const C={value:p.key,title:i};g.has(p.key)||g.set(p.key,C);return}p.device&&(i+=" ("+d.Common["Device_"+p.device]+")");const m=q.getLangLabel(o.value.key||0,p.lang??"");m&&(i+=" / "+m);const y={value:p.index,title:i,icon:p.device?q.getDeviceGIcon(p.device):void 0};g.set(p.index,y)}),g});return e.watch(l,(g,v)=>{var y;if(t.onlySearcher||n.value!==void 0&&g.get(n.value))return;let p=g.keys().next().value;if(n.value===k||p===k){n.value=p;return}let i=((y=v==null?void 0:v.get(n.value))==null?void 0:y.title)||"",m=-1;for(const[C,x]of g.entries()){const S=x.title;if(typeof S!="string"||typeof C=="string")break;if(S===i){p=C;break}const T=new RegExp(` \\((${d.Common.Device_1}|${d.Common.Device_2})\\)`);let B=i,c=3;S.indexOf(B)===-1&&(B=i.replace(/^[^a-zа-я]/i,"").replace(T,""),c--),S.indexOf(B)===-1&&(B=i.replace(/ \/.*/,""),c--),S.indexOf(B)===-1&&(B=i.replace(/ \/.*/,""),B=B.replace(/^[^a-zа-я]/i,"").replace(T,""),c--),S.indexOf(B)!==-1&&(c<=m||(m=c,p=C))}n.value=p}),{regionIndex:n,optionByRegionIndex:l}},ce=(t,o,d)=>{const n=e.ref([]),l=()=>{if(t.onlySearcher&&o.value){n.value=Array.from(o.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(s=>d.value.has(s))),r.length||(r=Array.from(d.value)),n.value=[...r]},a=()=>{n.value.length?localStorage.setItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes",JSON.stringify(n.value)):localStorage.removeItem("ui:project:regionSelector:"+t.projectId+":regionsIndexes")};return e.watch(n,()=>{a()}),t.addCompare&&l(),{regionsIndexes:n}},fe=t=>{const o=e.computed(()=>U(t.forFrequency,t.autoRegion,t.searchers)),d=e.computed(()=>o.value.get(l.searcherKey.value)||j),n=e.computed(()=>{const i=new Set;return o.value.forEach(m=>{var y;(y=m.regions)==null||y.forEach(C=>{C.index!==-1&&C.index!==k&&i.add(C.index)})}),i}),l=ue(t,o),a=se(t,d),r=ce(t,o,n);e.watch(o,()=>{var m,y,C,x;if(t.onlySearcher?r.regionsIndexes.value=Array.from(o.value.keys()):r.regionsIndexes.value=r.regionsIndexes.value.filter(S=>n.value.has(S)),l.searcherKey.value===-1)return;let i=o.value.keys().next().value;o.value.forEach(S=>{var T,B,c;if(t.onlySearcher&&S.key===l.searcherKey.value){i=l.searcherKey.value;return}if(a.regionIndex.value&&((T=S.regionByIndex)!=null&&T.has(a.regionIndex.value))&&(i=S.key),!t.onlySearcher){let u;i!==void 0&&(u=(B=o.value.get(i))==null?void 0:B.regionByIndex);const f=(c=o.value.get(S.key))==null?void 0:c.regionByIndex;u!=null&&u.has(k)&&!(f!=null&&f.has(k))&&(i=S.key)}}),i!==void 0&&(l.searcherKey.value=i),a.regionIndex.value!==void 0&&!((y=(m=d.value)==null?void 0:m.regionByIndex)!=null&&y.has(a.regionIndex.value))&&(a.regionIndex.value=(x=(C=d.value)==null?void 0:C.regions)==null?void 0:x.keys().next().value)},{immediate:!0});const s=()=>{if(!(l.searcherKey.value===-1||l.searcherKey.value===k))return l.searcherKey.value},g=()=>{if(t.onlySearcher||a.regionIndex.value===k)return;let i=a.regionIndex.value;if(t.forFrequency){const m=a.regionIndex.value,y=Y(t.forFrequency,{searcher_key:s(),key:m},t.searchers);i=y==null?void 0:y.index}return i},v=()=>{const i=s();if(i!==void 0)return o.value.get(i)};return{selectSearcher:l,selectRegion:a,compare:r,searcherByKey:o,allRegionsIndexes:n,getSearcher:v,getRegion:()=>{var m,y;const i=g();if(i!==void 0)return(y=(m=v())==null?void 0:m.regionByIndex)==null?void 0:y.get(i)}}},me=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:e.mergeModels(["compareRegions"],["update:modelValue","update:modelValueSingle"]),setup(t,{expose:o,emit:d}){const n=t,l=e.useModel(t,"modelValue"),a=e.useModel(t,"modelValueSingle"),r=d,{selectSearcher:s,selectRegion:g,compare:v,searcherByKey:p,allRegionsIndexes:i,getSearcher:m,getRegion:y}=fe(n),C=()=>{var x;if(window.fieldTemplates&&((x=window.fieldTemplates)!=null&&x.openSelectorRegions)){window.fieldTemplates.openSelectorRegions(p.value,v.regionsIndexes.value,S=>v.regionsIndexes.value=S);return}r("compareRegions",p.value)};return e.watch([g.regionIndex,s.searcherKey,v.regionsIndexes],()=>{if(s.searcherKey.value===-1&&v.regionsIndexes.value.length){if(JSON.stringify(l.value)===JSON.stringify(v.regionsIndexes.value))return;l.value=[...v.regionsIndexes.value]}else l.value=[n.onlySearcher?s.searcherKey.value:g.regionIndex.value];!n.onlySearcher&&!i.value.size&&(s.searcherKey.value=k)}),a.value&&e.watch(a,()=>{l.value=[a.value]},{immediate:!0}),e.watch(l,()=>{var x,S,T,B,c;if(l.value[0]&&(a.value=l.value[0]),n.onlySearcher){if(!l.value.length||l.value.length===1&&!p.value.has(l.value[0])){let u=p.value.keys().next().value;u!==void 0&&(l.value=[u]);return}if(l.value.length>1&&JSON.stringify(l.value)!==JSON.stringify(v.regionsIndexes.value)){l.value=[...v.regionsIndexes.value];return}}else{let u=[...new Set(l.value)],f=(S=(x=p.value.values().next().value)==null?void 0:x.regionByIndex)==null?void 0:S.keys().next().value;if(n.forFrequency&&(f=(c=(B=(T=p.value.values().next().value)==null?void 0:T.regionByIndex)==null?void 0:B.values().next().value)==null?void 0:c.key),!u.length)f!==void 0&&u.push(f);else if(u.length===1){let h=i.value;n.forFrequency&&(h=new Set,p.value.forEach(V=>{V.regionByIndex.forEach(M=>{M.index!==-1&&M.index!==k&&h.add(M.key)})})),!h.has(u[0])&&u[0]!==-2&&(u=[],f!==void 0&&u.push(f))}else u=u.filter(h=>i.value.has(h)),!u.length&&f!==void 0&&u.push(f);if(JSON.stringify(l.value)!==JSON.stringify(u)){l.value=u;return}}if(!(l.value.length===1&&l.value[0]===(n.onlySearcher?s.searcherKey.value:g.regionIndex.value)))if(n.onlySearcher){if(l.value.length===1){s.searcherKey.value=l.value[0];return}s.searcherKey.value=-1;return}else if(l.value.length===1&&s.searcherKey.value!==-1){g.regionIndex.value=l.value[0];let u;for(const f of p.value.values()){for(const h of f.regionByIndex.values())if((n.forFrequency?h.key:h.index)===g.regionIndex.value){u=f.key;break}if(u!==void 0)break}u!==void 0&&(s.searcherKey.value=u)}else s.searcherKey.value=-1,v.regionsIndexes.value=[...l.value]},{immediate:!0}),o({getSearcher:m,getRegion:y}),(x,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-selectorRegion":!0,"top-selectorRegion-onlySearcher":x.onlySearcher})},[e.createVNode(I._sfc_main$4,{options:e.unref(s).optionBySearcherKey.value,modelValue:e.unref(s).searcherKey.value,"onUpdate:modelValue":S[0]||(S[0]=T=>e.unref(s).searcherKey.value=T),name:"searcher_key",addChanger:x.addChanger},null,8,["options","modelValue","addChanger"]),!x.onlySearcher&&e.unref(s).searcherKey.value!==-1?(e.openBlock(),e.createBlock(I._sfc_main$4,{key:0,class:"top-select-region",options:e.unref(g).optionByRegionIndex.value,modelValue:e.unref(g).regionIndex.value,"onUpdate:modelValue":S[1]||(S[1]=T=>e.unref(g).regionIndex.value=T),name:x.forFrequency?"region_key":"region_index",addChanger:x.addChanger,"data-top-icon":x.addRegionIcon?"":void 0},null,8,["options","modelValue","name","addChanger","data-top-icon"])):e.createCommentVNode("",!0),x.addCompare&&!x.onlySearcher&&e.unref(s).searcherKey.value===-1?(e.openBlock(),e.createBlock(I._sfc_main,{key:1,name:"compare",onClick:C,"data-count-compare-regions-indexes":e.unref(v).regionsIndexes.value.length},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.$i18n.Common.Selected_regions),1)]),_:1},8,["data-count-compare-regions-indexes"])):e.createCommentVNode("",!0)],2))}}),ge=[{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"}],W=t=>"-"+t,K=t=>t[0]==="-"?t.substring(1):t,O=(t,o)=>{t=K(t);const d=o.find(n=>n.id===t);if(d)return d},ve=["data-tag_id","data-tag_color_id","title"],R=e.defineComponent({__name:"tagIcon",props:{id:{},colorId:{},name:{},state:{}},setup(t){return(o,d)=>(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,ve))}}),pe=["contenteditable","onKeydown"],H=e.defineComponent({__name:"tagPopupListItem",props:e.mergeModels({editable:{type:Boolean},disabled:{type:Boolean},canExclude:{type:Boolean},id:{},colorId:{},name:{},state:{}},{name:{required:!0},nameModifiers:{}}),emits:e.mergeModels(["update:name","unselect","exclude","select"],["update:name"]),setup(t,{emit:o}){const d=t,n=o,l=e.useModel(t,"name"),a=e.ref(null),r=e.computed(()=>navigator.userAgent.indexOf("Firefox")!=-1?{contenteditable:s.value,onpaste:m=>m.preventDefault()}:{}),s=e.ref(!1),g=async()=>{var m;s.value=!0,await e.nextTick(),(m=a.value)==null||m.focus()},v=()=>{var y;const m=(y=a.value)==null?void 0:y.innerText;if(!m)return p();a.value&&(a.value.innerText=m),s.value=!1,n("update:name",m)},p=async()=>{a.value&&(a.value.innerText=d.name),s.value=!1},i=m=>{if(s.value||d.disabled)return;let y="selected";d.canExclude&&(m.ctrlKey||m.metaKey)&&(y="excluded"),d.state==y&&(y=""),y===""&&n("unselect"),y==="selected"&&n("select"),y==="excluded"&&n("exclude")};return(m,y)=>(e.openBlock(),e.createBlock(E._sfc_main$2,{class:e.normalizeClass({"top-tagSelector_tagListItem":!0,"top-tagSelector_tagListItem-inEdit":s.value,"top-tagSelector_tagListItem-disabled":m.disabled,"top-tagSelector_tagListItem-canExclude":m.canExclude,"top-tagSelector-active":!!m.state,"top-tagSelector-excluded":m.state==="excluded"}),onClick:e.withModifiers(i,["stop"])},{default:e.withCtx(()=>[e.createVNode(R,{id:m.id,name:l.value,colorId:m.colorId,state:m.state},null,8,["id","name","colorId","state"]),e.createElementVNode("span",e.mergeProps({ref_key:"elName",ref:a,class:"top-tagSelector_tagListItemName",contenteditable:s.value?"plaintext-only":!1},r.value,{onKeydown:[e.withKeys(e.withModifiers(v,["stop"]),["enter"]),e.withKeys(e.withModifiers(p,["stop"]),["esc"])]}),e.toDisplayString(l.value),17,pe),m.editable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[s.value?(e.openBlock(),e.createElementBlock("span",{key:1,"data-top-icon":"",class:"top-tagSelector_edit",onClick:e.withModifiers(v,["stop"])})):(e.openBlock(),e.createElementBlock("span",{key:0,"data-top-icon":"",class:"top-tagSelector_edit",onClick:g}))],64)):e.createCommentVNode("",!0)]),_:1},8,["class"]))}}),ye={key:1},Q=e.defineComponent({inheritAttrs:!1,__name:"popupOpener",props:e.mergeModels({modelValue:{},id:{},tags:{},mode:{},targetId:{},filters:{},useTopButton:{type:Boolean},payload:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=t,d=e.useModel(t,"modelValue"),n=o.useTopButton?I._sfc_main:"div",l=o.useTopButton?"html":"default",a={model:d,mode:o.mode,targetId:o.targetId,filters:o.filters,payload:o.payload};return(r,s)=>{const g=e.resolveDirective("top-data");return e.openBlock(),e.createBlock(E._sfc_main$1,{id:r.id},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(n)),e.mergeProps({class:{"top-tagSelector":!0,"top-tagSelector-filter":o.mode==="filter","top-tagSelector-setter_single":o.mode==="setter"&&!r.filters,"top-tagSelector-setter_several":o.mode==="setter"&&r.filters,"top-tagSelector-selectedOne":!d.value.length||d.value.length===1,"top-tagSelector-toTwoLine":d.value.length>5},color:"theme",styling:""},r.$attrs),{[e.unref(l)]:e.withCtx(()=>[!d.value.length&&r.mode==="filter"?(e.openBlock(),e.createBlock(R,{key:0,id:"all",colorId:"",name:r.$i18n.Common.All_tags??"",state:""},null,8,["name"])):e.createCommentVNode("",!0),r.mode==="setter"&&r.filters?(e.openBlock(),e.createElementBlock("div",ye,[e.renderSlot(r.$slots,"default")])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(d.value,v=>{var p,i;return e.openBlock(),e.createBlock(R,{id:e.unref(K)(v),colorId:((p=e.unref(O)(v,r.tags))==null?void 0:p.color_id)??"",name:((i=e.unref(O)(v,r.tags))==null?void 0:i.name)??"",state:e.unref(K)(v)===v?"selected":"excluded"},null,8,["id","colorId","name","state"])}),256))]),_:2},1040,["class"])),[[g,a,"topTagSelectorTarget"]])]),_:3},8,["id"])}}}),he=e.defineComponent({__name:"tagSelector",props:e.mergeModels({modelValue:{},tags:{},tagsEditable:{type:Boolean},tagsMax:{default:10},id:{},singleMode:{type:Boolean},requiredForSetter:{type:Boolean,default:!0},maxTagsForSetter:{},emitDelay:{default:500}},{modelValue:{required:!0},modelModifiers:{},tags:{default:e.reactive(ge)},tagsModifiers:{}}),emits:e.mergeModels(["selector","setter","tagsChanged"],["update:modelValue","update:tags"]),setup(t,{emit:o}){const d=I.useI18n(),n=t,l=e.useModel(t,"modelValue"),a=e.useModel(t,"tags"),r=o,s=I.debounce((c,u)=>{r(c,u)},n.emitDelay);n.singleMode&&!l.value.length&&(l.value=[a.value[0].id]);const g=n.id??"top-popup-id-"+Math.random(),v=e.ref("add"),p=()=>{var f;const c=" "+((f=d.Common.Tags)==null?void 0:f.toLowerCase()),u=new Map;return u.set("add",{value:"add",title:d.Common.Add+c}),u.set("replace",{value:"replace",title:d.Common.Replace+c}),u.set("delete",{value:"delete",title:d.Common.Delete+c}),u};let i=e.shallowRef({model:l,mode:"filter",targetId:void 0,filters:void 0,payload:void 0});e.watch(l,()=>{s("selector",l.value)});const m=e.computed(()=>{if(i.value.mode==="setter"&&n.maxTagsForSetter&&!i.value.filters)return i.value.model.value.length>=n.maxTagsForSetter}),y=c=>{if(c!=="all"){if(i.value.model.value.includes(c))return"selected";if(i.value.model.value.includes(W(c)))return"excluded"}return c==="all"&&!i.value.model.value.length?"selected":""},C=(c,u)=>{const f=W(c);let h=i.value.model.value.filter(V=>V!==c&&V!==f);u==="select"&&h.push(c),u==="exclude"&&h.push(f),i.value.mode==="setter"&&i.value.targetId!==void 0&&n.requiredForSetter&&(h.length||h.push("1"),h.length===2&&i.value.model.value.length===1&&i.value.model.value[0]==="1"&&(h=h.filter(V=>V!=="1"))),n.singleMode&&!i.value.filters&&(h.length||(h=i.value.model.value),h.length>1&&(h=[h[h.length-1]])),h.sort((V,M)=>{if(!n.tags)return 0;const F=n.tags.findIndex(b=>b.id===V),N=n.tags.findIndex(b=>b.id===M);return F-N}),i.value.model.value=h,i.value.mode==="setter"&&i.value.targetId!==void 0&&s("setter",{tagsIds:h,targetId:i.value.targetId,payload:i.value.payload})},x=e.computed(()=>{let c="top-tagSelector_popup";return i.value.mode==="filter"&&(c+=" top-tagSelector_popup-filter"),i.value.mode==="setter"&&(c+=" top-tagSelector_popup-setter"),c}),S=()=>{const c=prompt("","New tag");if(!c||c==="New tag")return;const u=a.value.length+1;a.value.push({id:String(u),name:c,color_id:String((u-1)%10+1)}),r("tagsChanged",a.value)},T=c=>{var u;if(i.value=_.storage(c.elPopupOpener,"topTagSelectorTarget"),!i.value)throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");if(i.value.filters&&(v.value="add",i.value.model.value=[]),!((u=I.Core.$)!=null&&u.ui.sortable)){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}!I.Core.state.isMobile&&!I.Core.state.isMobileUA&&a.value&&$(c.elPopup).sortable({items:'li:has([data-tag_id]:not([data-tag_id="all"]))',cancel:'[contenteditable="plaintext-only"], [contenteditable="true"]',distance:10,stop:function(f,h){if(!a.value)return;const V=$(h.item).parent().find("[data-tag_id]"),M=[];V.each((F,N)=>{if(!a.value)return;const b=$(N).attr("data-tag_id");M.push(b)}),a.value.sort((F,N)=>{const b=M.findIndex(z=>z===F.id),Ve=M.findIndex(z=>z===N.id);return b-Ve}),s("tagsChanged",a.value)}})},B=c=>{var u;(u=I.Core.$)!=null&&u.ui.sortable&&$(c.elPopup).data("ui-sortable")&&$(c.elPopup).sortable("destroy")};return(c,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(Q,{class:"top-select_arrow",modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=f=>l.value=f),id:e.unref(g),tags:a.value,mode:"filter",useTopButton:""},null,8,["modelValue","id","tags"]),e.createVNode(E._sfc_main,{id:e.unref(g),class:e.normalizeClass(x.value),onOpen:u[4]||(u[4]=f=>T(f)),onClose:u[5]||(u[5]=f=>B(f)),"transition-duration":50},e.createSlots({contentList:e.withCtx(()=>[e.unref(i).mode==="filter"&&!c.singleMode?(e.openBlock(),e.createBlock(H,{key:0,id:"all",colorId:"",name:c.$i18n.Common.All_tags??"",state:e.unref(i).model.value.length?"":"selected",onSelect:u[3]||(u[3]=f=>e.unref(i).model.value=[])},null,8,["name","state"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,f=>(e.openBlock(),e.createBlock(H,{key:f.id,id:f.id,colorId:f.color_id,name:f.name,state:y(f.id),canExclude:e.unref(i).mode==="filter"&&!c.singleMode,editable:c.tagsEditable,disabled:m.value&&y(f.id)==="",onUnselect:h=>C(f.id,"unselect"),onSelect:h=>C(f.id,"select"),onExclude:h=>C(f.id,"exclude"),"onUpdate:name":h=>{f.name=h,e.unref(s)("tagsChanged",a.value)}},null,8,["id","colorId","name","state","canExclude","editable","disabled","onUnselect","onSelect","onExclude","onUpdate:name"]))),128)),c.tagsEditable&&a.value.length<c.tagsMax&&a.value.length<20?(e.openBlock(),e.createBlock(E._sfc_main$2,{key:1,"data-top-icon":"",onClick:e.withModifiers(S,["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$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$4,{modelValue:v.value,"onUpdate:modelValue":u[1]||(u[1]=f=>v.value=f),options:p()},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,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(I._sfc_main,{onClick:u[2]||(u[2]=f=>e.unref(s)("setter",{tagsIds:e.unref(i).model.value,filters:e.unref(i).filters,filtersAction:v.value,payload:e.unref(i).payload}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.value==="add"?c.$i18n.Common.Add:"")+" "+e.toDisplayString(v.value==="replace"?c.$i18n.Common.Replace:"")+" "+e.toDisplayString(v.value==="delete"?c.$i18n.Common.Remove:""),1)]),_:1})]),key:"1"}:void 0]),1032,["id","class"])],64))}}),Se=(t,o)=>e.computed(()=>e.toValue(t).filter(l=>l.on>=0||l.id===o).map(l=>({value:l.id,title:l.url+` [${l.id}]`,icon:l.id===e.toValue(o)?"":"",content:l.name}))),ke=(t,o,d)=>{o||(o={id:t.id}),o.id=t.id;const n=ee.TopPopupWorker.genElPopupOpener("div",o);return n.classList.add("top-tagSelector"),t.useTopButton&&n.classList.add("top-button","top-color_theme"),t.mode==="filter"&&n.classList.add("top-tagSelector-filter"),t.mode==="setter"&&!t.filters&&n.classList.add("top-tagSelector-setter_single"),t.mode==="setter"&&t.filters&&n.classList.add("top-tagSelector-setter_several"),n.onclick=l=>{l.preventDefault(),l.stopPropagation(),n.onclick=null;const a=e.ref(t.modelValue),r={model:a,mode:t.mode,targetId:t.targetId,filters:t.filters,payload:t.payload};_.storage(n,"topTagSelectorTarget",r),delete n.dataset.topPopupDisabled,e.isRef(t.modelValue)||e.watch(a,()=>{t.modelValue=a.value,D(n,t,d)}),n.click()},e.isRef(t.modelValue)?e.watch(t.modelValue,()=>D(n,t,d)):_.storage(n,"topTagSelectorRender",l=>{t.modelValue=l;const a=_.storage(n,"topTagSelectorTarget");a&&(a.model.value=l),D(n,t,d)}),D(n,t,d),n},Ie=(t,o)=>{var d;(d=_.storage(t,"topTagSelectorRender"))==null||d(o)},D=(t,o,d)=>{var l;const n=e.unref(o.modelValue);if(t.classList.toggle("top-tagSelector-selectedOne",!n.length||n.length===1),t.classList.toggle("top-tagSelector-toTwoLine",n.length>5),o.mode==="setter"&&o.filters){t.innerHTML=`<div>${d}</div>`;return}if(t.innerHTML="",!n.length&&o.mode==="filter"){const a=X({id:"all",colorId:"",name:((l=I.useI18n().Common)==null?void 0:l.All_tags)??"",state:""});t.append(a)}n.forEach(a=>{var s,g;const r=X({id:K(a),colorId:((s=O(a,o.tags))==null?void 0:s.color_id)??"",name:((g=O(a,o.tags))==null?void 0:g.name)??"",state:K(a)===a?"selected":"excluded"});t.append(r)})},X=t=>{const o=document.createElement("div");return o.classList.add("top-tagSelector_tagIcon"),o.classList.toggle("top-tagSelector-active",!!t.state),o.classList.toggle("top-tagSelector-excluded",t.state==="excluded"),o.dataset.tag_id=t.id,o.dataset.tag_color_id=t.colorId,o.title=t.name,o},xe=oe,Ce=me,Be=he,Te=Q,we=R;w.TopSelectorCompetitors=xe,w.TopSelectorRegion=Ce,w.TopTagSelector=Be,w.TopTagSelectorPopupOpener=Te,w.TopTagSelectorTagIcon=we,w.findRegion=Y,w.genElTopTagSelectorPopupOpener=ke,w.genSearcherByKey=U,w.renderElTopTagSelectorPopupOpener=Ie,w.useItemsFromCompetitors=Se,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=project.amd.js.map