@topvisor/ui 1.5.1-topRegionSelector.4 → 1.5.3

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 (117) hide show
  1. package/.chunks/{api-a3D-SXH-.amd.js → api-B10YYgLm.amd.js} +2 -2
  2. package/.chunks/{api-a3D-SXH-.amd.js.map → api-B10YYgLm.amd.js.map} +1 -1
  3. package/.chunks/{api-a3D-SXH-.esm.js → api-B10YYgLm.esm.js} +2 -2
  4. package/.chunks/{api-a3D-SXH-.esm.js.map → api-B10YYgLm.esm.js.map} +1 -1
  5. package/.chunks/{app-B8VpVm8U.amd.js → app-BCUpND3O.amd.js} +2 -2
  6. package/.chunks/app-BCUpND3O.amd.js.map +1 -0
  7. package/.chunks/{app-B8VpVm8U.esm.js → app-BCUpND3O.esm.js} +7 -7
  8. package/.chunks/app-BCUpND3O.esm.js.map +1 -0
  9. package/.chunks/{datepicker-DuOSAFQy.amd.js → datepicker-LevMEoIA.amd.js} +2 -2
  10. package/.chunks/{datepicker-DuOSAFQy.amd.js.map → datepicker-LevMEoIA.amd.js.map} +1 -1
  11. package/.chunks/{datepicker-DuOSAFQy.esm.js → datepicker-LevMEoIA.esm.js} +2 -2
  12. package/.chunks/{datepicker-DuOSAFQy.esm.js.map → datepicker-LevMEoIA.esm.js.map} +1 -1
  13. package/.chunks/{dialog-ClCAM1nI.amd.js → dialog-DiALIK6w.amd.js} +2 -2
  14. package/.chunks/{dialog-ClCAM1nI.amd.js.map → dialog-DiALIK6w.amd.js.map} +1 -1
  15. package/.chunks/{dialog-ClCAM1nI.esm.js → dialog-DiALIK6w.esm.js} +4 -4
  16. package/.chunks/{dialog-ClCAM1nI.esm.js.map → dialog-DiALIK6w.esm.js.map} +1 -1
  17. package/.chunks/{dialog_regionSelectorRegions-DFZTiYi6.amd.js → dialog_regionSelectorRegions-Bs7v6bLi.amd.js} +2 -2
  18. package/.chunks/{dialog_regionSelectorRegions-DFZTiYi6.amd.js.map → dialog_regionSelectorRegions-Bs7v6bLi.amd.js.map} +1 -1
  19. package/.chunks/{dialog_regionSelectorRegions-DFZTiYi6.esm.js → dialog_regionSelectorRegions-Bs7v6bLi.esm.js} +5 -5
  20. package/.chunks/{dialog_regionSelectorRegions-DFZTiYi6.esm.js.map → dialog_regionSelectorRegions-Bs7v6bLi.esm.js.map} +1 -1
  21. package/.chunks/{dialogs-CjrddGh6.amd.js → dialogs-dXQrzbvl.amd.js} +2 -2
  22. package/.chunks/{dialogs-CjrddGh6.amd.js.map → dialogs-dXQrzbvl.amd.js.map} +1 -1
  23. package/.chunks/{dialogs-CjrddGh6.esm.js → dialogs-dXQrzbvl.esm.js} +3 -3
  24. package/.chunks/{dialogs-CjrddGh6.esm.js.map → dialogs-dXQrzbvl.esm.js.map} +1 -1
  25. package/.chunks/{forms-C2ItFa61.amd.js → forms-Dh7-1Uy3.amd.js} +2 -2
  26. package/.chunks/{forms-C2ItFa61.amd.js.map → forms-Dh7-1Uy3.amd.js.map} +1 -1
  27. package/.chunks/{forms-C2ItFa61.esm.js → forms-Dh7-1Uy3.esm.js} +7 -7
  28. package/.chunks/forms-Dh7-1Uy3.esm.js.map +1 -0
  29. package/.chunks/{formsExt-6Nz907Ry.amd.js → formsExt-Cq-kiHyl.amd.js} +2 -2
  30. package/.chunks/{formsExt-6Nz907Ry.amd.js.map → formsExt-Cq-kiHyl.amd.js.map} +1 -1
  31. package/.chunks/{formsExt-6Nz907Ry.esm.js → formsExt-Cq-kiHyl.esm.js} +4 -4
  32. package/.chunks/{formsExt-6Nz907Ry.esm.js.map → formsExt-Cq-kiHyl.esm.js.map} +1 -1
  33. package/.chunks/{notice-CBJBDgby.amd.js → notice-DM-e_WCY.amd.js} +2 -2
  34. package/.chunks/{notice-CBJBDgby.amd.js.map → notice-DM-e_WCY.amd.js.map} +1 -1
  35. package/.chunks/{notice-CBJBDgby.esm.js → notice-DM-e_WCY.esm.js} +2 -2
  36. package/.chunks/{notice-CBJBDgby.esm.js.map → notice-DM-e_WCY.esm.js.map} +1 -1
  37. package/.chunks/{popup-CFYtl5_r.amd.js → popup-CsWaer8b.amd.js} +2 -2
  38. package/.chunks/{popup-CFYtl5_r.amd.js.map → popup-CsWaer8b.amd.js.map} +1 -1
  39. package/.chunks/{popup-CFYtl5_r.esm.js → popup-CsWaer8b.esm.js} +3 -3
  40. package/.chunks/{popup-CFYtl5_r.esm.js.map → popup-CsWaer8b.esm.js.map} +1 -1
  41. package/.chunks/{popup-B06vbv6B.amd.js → popup-vNj9Xmym.amd.js} +2 -2
  42. package/.chunks/{popup-B06vbv6B.amd.js.map → popup-vNj9Xmym.amd.js.map} +1 -1
  43. package/.chunks/{popup-B06vbv6B.esm.js → popup-vNj9Xmym.esm.js} +3 -3
  44. package/.chunks/{popup-B06vbv6B.esm.js.map → popup-vNj9Xmym.esm.js.map} +1 -1
  45. package/.chunks/{utils-DJV2mWZE.amd.js → utils-C92VWjGL.amd.js} +2 -2
  46. package/.chunks/{utils-DJV2mWZE.amd.js.map → utils-C92VWjGL.amd.js.map} +1 -1
  47. package/.chunks/{utils-DJV2mWZE.esm.js → utils-C92VWjGL.esm.js} +4 -4
  48. package/.chunks/{utils-DJV2mWZE.esm.js.map → utils-C92VWjGL.esm.js.map} +1 -1
  49. package/.chunks/{utils-BTHruVpQ.amd.js → utils-p44qUhkI.amd.js} +2 -2
  50. package/.chunks/{utils-BTHruVpQ.amd.js.map → utils-p44qUhkI.amd.js.map} +1 -1
  51. package/.chunks/{utils-BTHruVpQ.esm.js → utils-p44qUhkI.esm.js} +3 -3
  52. package/.chunks/{utils-BTHruVpQ.esm.js.map → utils-p44qUhkI.esm.js.map} +1 -1
  53. package/.chunks/{worker-BIUaZFVX.amd.js → worker-BcZMXB0d.amd.js} +2 -2
  54. package/.chunks/{worker-BIUaZFVX.amd.js.map → worker-BcZMXB0d.amd.js.map} +1 -1
  55. package/.chunks/{worker-BIUaZFVX.esm.js → worker-BcZMXB0d.esm.js} +3 -3
  56. package/.chunks/{worker-BIUaZFVX.esm.js.map → worker-BcZMXB0d.esm.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 +1 -1
  60. package/autoload-css-manifest.amd.json +4 -4
  61. package/autoload-css-manifest.json +4 -4
  62. package/charts/charts.amd.js +1 -1
  63. package/charts/charts.amd.js.map +1 -1
  64. package/charts/charts.js +1 -1
  65. package/core/app.amd.js +1 -1
  66. package/core/app.amd.js.map +1 -1
  67. package/core/app.js +4 -4
  68. package/dialog/dialog.amd.js +1 -1
  69. package/dialog/dialog.amd.js.map +1 -1
  70. package/dialog/dialog.js +3 -3
  71. package/forms/forms.amd.js +1 -1
  72. package/forms/forms.amd.js.map +1 -1
  73. package/forms/forms.js +1 -1
  74. package/formsExt/formsExt.amd.js +1 -1
  75. package/formsExt/formsExt.amd.js.map +1 -1
  76. package/formsExt/formsExt.js +1 -1
  77. package/layout/layout.amd.js +1 -1
  78. package/layout/layout.amd.js.map +1 -1
  79. package/layout/layout.js +1 -1
  80. package/package.json +1 -1
  81. package/popup/popup.amd.js +1 -1
  82. package/popup/popup.amd.js.map +1 -1
  83. package/popup/popup.js +1 -1
  84. package/popup/worker.amd.js +1 -1
  85. package/popup/worker.amd.js.map +1 -1
  86. package/popup/worker.js +1 -1
  87. package/project/project.amd.js +1 -1
  88. package/project/project.amd.js.map +1 -1
  89. package/project/project.js +11 -13
  90. package/project/project.js.map +1 -1
  91. package/tabsView/tabsView.amd.js +1 -1
  92. package/tabsView/tabsView.amd.js.map +1 -1
  93. package/tabsView/tabsView.js +2 -2
  94. package/utils/clipboard.amd.js +1 -1
  95. package/utils/clipboard.amd.js.map +1 -1
  96. package/utils/clipboard.js +1 -1
  97. package/utils/date.amd.js +1 -1
  98. package/utils/date.amd.js.map +1 -1
  99. package/utils/date.js +1 -1
  100. package/utils/device.amd.js +1 -1
  101. package/utils/device.amd.js.map +1 -1
  102. package/utils/device.js +1 -1
  103. package/utils/lodash.amd.js +1 -1
  104. package/utils/lodash.amd.js.map +1 -1
  105. package/utils/lodash.js +1 -1
  106. package/utils/price.amd.js +1 -1
  107. package/utils/price.amd.js.map +1 -1
  108. package/utils/price.js +1 -1
  109. package/utils/searchers.amd.js +1 -1
  110. package/utils/searchers.amd.js.map +1 -1
  111. package/utils/searchers.js +1 -1
  112. package/utils/string.amd.js +1 -1
  113. package/utils/string.amd.js.map +1 -1
  114. package/utils/string.js +1 -1
  115. package/.chunks/app-B8VpVm8U.amd.js.map +0 -1
  116. package/.chunks/app-B8VpVm8U.esm.js.map +0 -1
  117. package/.chunks/forms-C2ItFa61.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":[".chunks/dialog-ClCAM1nI.esm.js","../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/types.ts","../../src/components/dialog/dialog/pageComponent/pageComponent.vue"],"names":["vue","exports","x","S","C","w","T","E","D","O","k","A","vue_1","l","n","u","utils_BTHruVpQ_esm_js_1","p","forms_C2ItFa61_esm_js_1","$slots","j","M","r","i","s","t"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-C2ItFa61.esm.js\", \"./utils-BTHruVpQ.esm.js\", \"vue\", \"./dialogs-CjrddGh6.esm.js\"], function (require, exports, forms_C2ItFa61_esm_js_1, utils_BTHruVpQ_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.r = exports.n = void 0;\n //#region src/components/dialog/dialog/page/page.vue?vue&type=script&setup=true&lang.ts\n var x = {\n key: 0,\n style: { display: \"none\" }\n }, S = [\"data-order\", \"data-view-page\"], C = { class: \"modal-header\" }, w = { class: \"top-title\" }, T = { class: \"buttons\" }, E = [\"title\"], D = [\"title\"], O = [\"data-order\", \"data-view-page\"], k = { class: \"modal-body\" }, A = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"page\",\n props: {\n isLoading: { type: Boolean },\n name: {},\n order: { default: 0 },\n prevName: {},\n footerFullWith: { type: Boolean }\n },\n setup(n) {\n let l = n, u = (0, utils_BTHruVpQ_esm_js_1.r)(), p = (0, vue_1.computed)(() => ({\n active: u.pageActive?.value === l.name,\n \"i-load-data\": l.isLoading || u.isLoadingPage.value\n }));\n return (t, i) => {\n let l = (0, vue_1.resolveDirective)(\"top-scroll-shadow\");\n return (0, vue_1.unref)(u).isReady.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", x, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(u).idAttr + \" .modal-layer-header\",\n disabled: !(0, vue_1.unref)(u).needShowPage(n.name)\n }, [(0, vue_1.createElementVNode)(\"div\", {\n \"data-order\": n.order,\n \"data-view-page\": n.name,\n class: (0, vue_1.normalizeClass)(p.value)\n }, [(0, vue_1.createElementVNode)(\"div\", C, [\n (0, vue_1.createElementVNode)(\"div\", w, [(0, vue_1.renderSlot)(t.$slots, \"header\")]),\n (0, vue_1.createElementVNode)(\"div\", T, [(0, vue_1.renderSlot)(t.$slots, \"headerButtons\")]),\n (0, vue_1.unref)(forms_C2ItFa61_esm_js_1.O).state.isMobile && n.prevName ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"close\",\n title: t.$i18n.Common.Back,\n \"data-top-icon\": \"\",\n onClick: i[0] ||= (e) => (0, vue_1.unref)(u).open(n.prevName)\n }, null, 8, E)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 1,\n class: \"close\",\n title: t.$i18n.Common.Close,\n \"data-top-icon\": \"\",\n \"data-action\": \"top-dialog-close\"\n }, null, 8, D))\n ])], 10, S)], 8, [\"to\", \"disabled\"])), ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(u).idAttr + \" .modal-layer-body\",\n disabled: !(0, vue_1.unref)(u).needShowPage(n.name)\n }, [(0, vue_1.createElementVNode)(\"div\", {\n \"data-order\": n.order,\n \"data-view-page\": n.name,\n class: (0, vue_1.normalizeClass)([\"has_scroll_container\", p.value]),\n style: (0, vue_1.normalizeStyle)({ \"--top-dialog-footer-height\": t.$slots.footer ? void 0 : \"0px\" })\n }, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", k, [(0, vue_1.renderSlot)(t.$slots, \"body\")])), [[l]]), t.$slots.footer ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: (0, vue_1.normalizeClass)([\"modal-footer\", { \"modal-footer-fullWith\": n.footerFullWith }])\n }, [(0, vue_1.renderSlot)(t.$slots, \"footer\")], 2)) : (0, vue_1.createCommentVNode)(\"\", !0)], 14, O)], 8, [\"to\", \"disabled\"]))])) : (0, vue_1.createCommentVNode)(\"\", !0);\n };\n }\n }), j = {\n name: {\n type: String,\n required: !0\n },\n order: {\n type: Number,\n required: !0\n },\n prevName: String,\n footerFullWith: Boolean\n }, M = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"pageComponent\",\n props: {\n component: {},\n keepAlive: {\n type: Boolean,\n default: !0\n },\n props: {},\n name: {},\n order: {},\n prevName: {},\n footerFullWith: { type: Boolean }\n },\n setup(e) {\n let r = e, i = (0, utils_BTHruVpQ_esm_js_1.r)(), s = (e, t) => {\n if (!t.value) {\n if (e.name !== \"AsyncComponentWrapper\") {\n t.value = !0;\n return;\n }\n i.needShowPage(r.name) && (i.isLoadingPage.value = !0, e.__asyncResolved && (t.value = !0, i.isLoadingPage.value = !1));\n }\n };\n if (r.component.name === \"AsyncComponentWrapper\") {\n let e = (0, vue_1.ref)(!1);\n (0, vue_1.onUpdated)(() => {\n s(r.component, e);\n });\n }\n return (t, s) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.KeepAlive, { include: e.keepAlive ? \"\" : \"none\" }, [(0, vue_1.unref)(i).needShowPage(e.name) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(e.component), (0, vue_1.mergeProps)({ key: 0 }, r, {\n name: e.name,\n order: e.order,\n prevName: e.prevName\n }), null, 16, [\n \"name\",\n \"order\",\n \"prevName\"\n ])) : (0, vue_1.createCommentVNode)(\"\", !0)], 1032, [\"include\"]));\n }\n });\n exports.r = A;\n exports.n = j;\n exports.t = M;\n});\n//# sourceMappingURL=dialog-ClCAM1nI.esm.js.map\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","export interface Props extends PropsCommon {\n\t/**\n\t * Статус загрузки страницы диалогового окна\n\t *\n\t * При включении взаимодействие со страницей блокируется, отображается анимация загрузки\n\t */\n\tisLoading?: boolean;\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n */\nexport interface PropsCommon {\n\t/**\n\t * Имя страницы для диалогового окна\n\t *\n\t * Имя страницы нужно для навигации между страницами в одном диалоговом окне\n\t */\n\tname: string,\n\n\t/**\n\t * Порядкой номер страницы в диалоговом окне\n\t *\n\t * Одна и та же страница может быть подключена в разные диалоговые окна и иметь разный порядковый номер\n\t */\n\torder: number,\n\n\t/**\n\t * Имя предыдущей страницы\n\t *\n\t * Для кнопки Назад / Закрыть в мобильной версии\n\t */\n\tprevName?: string,\n\n\t/**\n\t * Стиль отображения футера, при котороым элементы растягиваются на всю ширину\n\t *\n\t * Разрешены переносы\n\t */\n\tfooterFullWith?: boolean,\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n *\n * Для не SFC компонентов\n */\nexport const propsPageCommon = {\n\tname: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\n\torder: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\n\tprevName: String,\n\n\tfooterFullWith: Boolean,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: {}): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: {}): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: {}): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: {}): any;\n}\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n"]}
1
+ {"version":3,"sources":[".chunks/dialog-DiALIK6w.esm.js","../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/types.ts","../../src/components/dialog/dialog/pageComponent/pageComponent.vue"],"names":["vue","exports","x","S","C","w","T","E","D","O","k","A","vue_1","l","n","u","utils_p44qUhkI_esm_js_1","p","forms_Dh7_1Uy3_esm_js_1","$slots","j","M","r","i","s","t"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-Dh7-1Uy3.esm.js\", \"./utils-p44qUhkI.esm.js\", \"vue\", \"./dialogs-dXQrzbvl.esm.js\"], function (require, exports, forms_Dh7_1Uy3_esm_js_1, utils_p44qUhkI_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.r = exports.n = void 0;\n //#region src/components/dialog/dialog/page/page.vue?vue&type=script&setup=true&lang.ts\n var x = {\n key: 0,\n style: { display: \"none\" }\n }, S = [\"data-order\", \"data-view-page\"], C = { class: \"modal-header\" }, w = { class: \"top-title\" }, T = { class: \"buttons\" }, E = [\"title\"], D = [\"title\"], O = [\"data-order\", \"data-view-page\"], k = { class: \"modal-body\" }, A = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"page\",\n props: {\n isLoading: { type: Boolean },\n name: {},\n order: { default: 0 },\n prevName: {},\n footerFullWith: { type: Boolean }\n },\n setup(n) {\n let l = n, u = (0, utils_p44qUhkI_esm_js_1.r)(), p = (0, vue_1.computed)(() => ({\n active: u.pageActive?.value === l.name,\n \"i-load-data\": l.isLoading || u.isLoadingPage.value\n }));\n return (t, i) => {\n let l = (0, vue_1.resolveDirective)(\"top-scroll-shadow\");\n return (0, vue_1.unref)(u).isReady.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", x, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(u).idAttr + \" .modal-layer-header\",\n disabled: !(0, vue_1.unref)(u).needShowPage(n.name)\n }, [(0, vue_1.createElementVNode)(\"div\", {\n \"data-order\": n.order,\n \"data-view-page\": n.name,\n class: (0, vue_1.normalizeClass)(p.value)\n }, [(0, vue_1.createElementVNode)(\"div\", C, [\n (0, vue_1.createElementVNode)(\"div\", w, [(0, vue_1.renderSlot)(t.$slots, \"header\")]),\n (0, vue_1.createElementVNode)(\"div\", T, [(0, vue_1.renderSlot)(t.$slots, \"headerButtons\")]),\n (0, vue_1.unref)(forms_Dh7_1Uy3_esm_js_1.O).state.isMobile && n.prevName ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"close\",\n title: t.$i18n.Common.Back,\n \"data-top-icon\": \"\",\n onClick: i[0] ||= (e) => (0, vue_1.unref)(u).open(n.prevName)\n }, null, 8, E)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 1,\n class: \"close\",\n title: t.$i18n.Common.Close,\n \"data-top-icon\": \"\",\n \"data-action\": \"top-dialog-close\"\n }, null, 8, D))\n ])], 10, S)], 8, [\"to\", \"disabled\"])), ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(u).idAttr + \" .modal-layer-body\",\n disabled: !(0, vue_1.unref)(u).needShowPage(n.name)\n }, [(0, vue_1.createElementVNode)(\"div\", {\n \"data-order\": n.order,\n \"data-view-page\": n.name,\n class: (0, vue_1.normalizeClass)([\"has_scroll_container\", p.value]),\n style: (0, vue_1.normalizeStyle)({ \"--top-dialog-footer-height\": t.$slots.footer ? void 0 : \"0px\" })\n }, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", k, [(0, vue_1.renderSlot)(t.$slots, \"body\")])), [[l]]), t.$slots.footer ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: (0, vue_1.normalizeClass)([\"modal-footer\", { \"modal-footer-fullWith\": n.footerFullWith }])\n }, [(0, vue_1.renderSlot)(t.$slots, \"footer\")], 2)) : (0, vue_1.createCommentVNode)(\"\", !0)], 14, O)], 8, [\"to\", \"disabled\"]))])) : (0, vue_1.createCommentVNode)(\"\", !0);\n };\n }\n }), j = {\n name: {\n type: String,\n required: !0\n },\n order: {\n type: Number,\n required: !0\n },\n prevName: String,\n footerFullWith: Boolean\n }, M = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"pageComponent\",\n props: {\n component: {},\n keepAlive: {\n type: Boolean,\n default: !0\n },\n props: {},\n name: {},\n order: {},\n prevName: {},\n footerFullWith: { type: Boolean }\n },\n setup(e) {\n let r = e, i = (0, utils_p44qUhkI_esm_js_1.r)(), s = (e, t) => {\n if (!t.value) {\n if (e.name !== \"AsyncComponentWrapper\") {\n t.value = !0;\n return;\n }\n i.needShowPage(r.name) && (i.isLoadingPage.value = !0, e.__asyncResolved && (t.value = !0, i.isLoadingPage.value = !1));\n }\n };\n if (r.component.name === \"AsyncComponentWrapper\") {\n let e = (0, vue_1.ref)(!1);\n (0, vue_1.onUpdated)(() => {\n s(r.component, e);\n });\n }\n return (t, s) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.KeepAlive, { include: e.keepAlive ? \"\" : \"none\" }, [(0, vue_1.unref)(i).needShowPage(e.name) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(e.component), (0, vue_1.mergeProps)({ key: 0 }, r, {\n name: e.name,\n order: e.order,\n prevName: e.prevName\n }), null, 16, [\n \"name\",\n \"order\",\n \"prevName\"\n ])) : (0, vue_1.createCommentVNode)(\"\", !0)], 1032, [\"include\"]));\n }\n });\n exports.r = A;\n exports.n = j;\n exports.t = M;\n});\n//# sourceMappingURL=dialog-DiALIK6w.esm.js.map\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","export interface Props extends PropsCommon {\n\t/**\n\t * Статус загрузки страницы диалогового окна\n\t *\n\t * При включении взаимодействие со страницей блокируется, отображается анимация загрузки\n\t */\n\tisLoading?: boolean;\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n */\nexport interface PropsCommon {\n\t/**\n\t * Имя страницы для диалогового окна\n\t *\n\t * Имя страницы нужно для навигации между страницами в одном диалоговом окне\n\t */\n\tname: string,\n\n\t/**\n\t * Порядкой номер страницы в диалоговом окне\n\t *\n\t * Одна и та же страница может быть подключена в разные диалоговые окна и иметь разный порядковый номер\n\t */\n\torder: number,\n\n\t/**\n\t * Имя предыдущей страницы\n\t *\n\t * Для кнопки Назад / Закрыть в мобильной версии\n\t */\n\tprevName?: string,\n\n\t/**\n\t * Стиль отображения футера, при котороым элементы растягиваются на всю ширину\n\t *\n\t * Разрешены переносы\n\t */\n\tfooterFullWith?: boolean,\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n *\n * Для не SFC компонентов\n */\nexport const propsPageCommon = {\n\tname: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\n\torder: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\n\tprevName: String,\n\n\tfooterFullWith: Boolean,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: {}): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: {}): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: {}): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: {}): any;\n}\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n"]}
@@ -1,6 +1,6 @@
1
- import { O as e } from "./forms-C2ItFa61.esm.js";
2
- import "./dialogs-CjrddGh6.esm.js";
3
- import { r as t } from "./utils-BTHruVpQ.esm.js";
1
+ import { O as e } from "./forms-Dh7-1Uy3.esm.js";
2
+ import "./dialogs-dXQrzbvl.esm.js";
3
+ import { r as t } from "./utils-p44qUhkI.esm.js";
4
4
  import { KeepAlive as n, Teleport as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, defineComponent as l, mergeProps as u, normalizeClass as d, normalizeStyle as f, onUpdated as p, openBlock as m, ref as h, renderSlot as g, resolveDirective as _, resolveDynamicComponent as v, unref as y, withDirectives as b } from "vue";
5
5
  //#region src/components/dialog/dialog/page/page.vue?vue&type=script&setup=true&lang.ts
6
6
  var x = {
@@ -114,4 +114,4 @@ var x = {
114
114
  //#endregion
115
115
  export { j as n, A as r, M as t };
116
116
 
117
- //# sourceMappingURL=dialog-ClCAM1nI.esm.js.map
117
+ //# sourceMappingURL=dialog-DiALIK6w.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-ClCAM1nI.esm.js","names":["$i18n","$slots"],"sources":["../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/types.ts","../../src/components/dialog/dialog/pageComponent/pageComponent.vue","../../src/components/dialog/dialog/pageComponent/pageComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","export interface Props extends PropsCommon {\n\t/**\n\t * Статус загрузки страницы диалогового окна\n\t *\n\t * При включении взаимодействие со страницей блокируется, отображается анимация загрузки\n\t */\n\tisLoading?: boolean;\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n */\nexport interface PropsCommon {\n\t/**\n\t * Имя страницы для диалогового окна\n\t *\n\t * Имя страницы нужно для навигации между страницами в одном диалоговом окне\n\t */\n\tname: string,\n\n\t/**\n\t * Порядкой номер страницы в диалоговом окне\n\t *\n\t * Одна и та же страница может быть подключена в разные диалоговые окна и иметь разный порядковый номер\n\t */\n\torder: number,\n\n\t/**\n\t * Имя предыдущей страницы\n\t *\n\t * Для кнопки Назад / Закрыть в мобильной версии\n\t */\n\tprevName?: string,\n\n\t/**\n\t * Стиль отображения футера, при котороым элементы растягиваются на всю ширину\n\t *\n\t * Разрешены переносы\n\t */\n\tfooterFullWith?: boolean,\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n *\n * Для не SFC компонентов\n */\nexport const propsPageCommon = {\n\tname: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\n\torder: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\n\tprevName: String,\n\n\tfooterFullWith: Boolean,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: {}): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: {}): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: {}): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: {}): any;\n}\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"dialog-DiALIK6w.esm.js","names":["$i18n","$slots"],"sources":["../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/types.ts","../../src/components/dialog/dialog/pageComponent/pageComponent.vue","../../src/components/dialog/dialog/pageComponent/pageComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","export interface Props extends PropsCommon {\n\t/**\n\t * Статус загрузки страницы диалогового окна\n\t *\n\t * При включении взаимодействие со страницей блокируется, отображается анимация загрузки\n\t */\n\tisLoading?: boolean;\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n */\nexport interface PropsCommon {\n\t/**\n\t * Имя страницы для диалогового окна\n\t *\n\t * Имя страницы нужно для навигации между страницами в одном диалоговом окне\n\t */\n\tname: string,\n\n\t/**\n\t * Порядкой номер страницы в диалоговом окне\n\t *\n\t * Одна и та же страница может быть подключена в разные диалоговые окна и иметь разный порядковый номер\n\t */\n\torder: number,\n\n\t/**\n\t * Имя предыдущей страницы\n\t *\n\t * Для кнопки Назад / Закрыть в мобильной версии\n\t */\n\tprevName?: string,\n\n\t/**\n\t * Стиль отображения футера, при котороым элементы растягиваются на всю ширину\n\t *\n\t * Разрешены переносы\n\t */\n\tfooterFullWith?: boolean,\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n *\n * Для не SFC компонентов\n */\nexport const propsPageCommon = {\n\tname: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\n\torder: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\n\tprevName: String,\n\n\tfooterFullWith: Boolean,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: {}): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: {}): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: {}): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: {}): any;\n}\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`./forms-C2ItFa61.amd`,`./dialogs-CjrddGh6.amd`,`../utils/string.amd`,`./utils-BTHruVpQ.amd`,`../utils/searchers.amd`,`./dialog-ClCAM1nI.amd`,`vue`,`../require/css.amd!../assets/dialog_regionSelectorRegions.css`],function(e,t,n,r,i,a,o,s,c){"use strict";if(l===void 0)var l=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.default=void 0;var u={class:`dialog_regionSelectorRegions_header`},d=[`data-top-icon`],f=[`src`,`alt`],p={class:`top-ellipsis`},m={class:`dialog_regionSelectorRegions_regionAreaName`},h={key:1},g=[`data-top-icon`];t.default=(0,c.defineComponent)({id:`regionSelectorRegions`,__name:`dialog_regionSelectorRegions`,props:{regions:{},regionsIndexes:{},"@update:regionsIndexes":{type:Function}},setup(e){let t=e,l=(0,a.r)(),_=(0,c.ref)([]),v=(0,c.ref)(null),y=(0,c.reactive)({searcher_key:-1,key:-1,name:-1}),b=(0,c.computed)({get(){return _.value.every(e=>e.selected)},set(e){_.value=_.value.map(t=>({...t,selected:e}))}}),x=e=>{y[e]=-y[e],_.value.sort((t,n)=>!t[e]||!n[e]?-1:t[e]>=n[e]?y[e]:-y[e])},S=()=>{if(!_.value.some(e=>e.selected))return;let e=_.value.filter(e=>e.selected).map(e=>e.index);t[`@update:regionsIndexes`]?.(e),l.close()};(0,c.watch)([()=>t.regions,()=>t.regionsIndexes],()=>{if(_.value=[],!t.regions||!t.regionsIndexes)return;let e=[...t.regions],n=new Map(t.regionsIndexes.map((e,t)=>[e,t]));e.sort((e,t)=>(n.get(e.index)??Number.MAX_VALUE)-(n.get(t.index)??Number.MAX_VALUE)),e.forEach(e=>{let n=e.name;e.areaName&&(n+=` (${e.areaName})`);let r=t.regionsIndexes?.includes(e.index)??!1,a=(0,o.getSearcherGIcon)(e.searcher_key),s=e.lang===void 0?void 0:(0,o.getLangLabel)(e.searcher_key??999,e.lang),c=e.device===void 0?void 0:(0,o.getDeviceGIcon)(e.device),l=e.countryCode===void 0?void 0:(0,i.genFlagLinkByCountryCode)(e.countryCode),u={...e,selected:r,title:n,searcherIcon:a,langLabel:s,deviceIcon:c,flagLink:l};_.value.push(u)})});let C=()=>{if(!n.O.$?.ui.sortable){console.info(`Для работы сортировки требуется глобальная загрузка jQuery UI Sortable`);return}v.value&&$(v.value).sortable({distance:10,stop:()=>{let e=[...v.value.children].map(e=>Number(e.getAttribute(`data-region-index`)));_.value.sort((t,n)=>e.indexOf(t.index)-e.indexOf(n.index))}})},w=()=>{n.O.$?.ui.sortable&&v.value&&$(v.value).sortable(`destroy`)};return(e,t)=>{let n=(0,c.resolveComponent)(`TopCheckbox`),i=(0,c.resolveComponent)(`TopButton`);return(0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(r.a),{id:(0,c.unref)(l).id,pageActive:`regions`,class:`dialog_regionSelectorRegions`,height:`600px`,width:`600px`,onOpen:C,onClose:w},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(s.r),{name:`regions`,order:0},{header:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,u,[(0,c.createVNode)(n,{modelValue:b.value,"onUpdate:modelValue":t[0]||=e=>b.value=e},null,8,[`modelValue`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[1]||=e=>x(`searcher_key`),title:e.$i18n.Projects?.Sort_by_search_engine},null,8,[`title`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[2]||=e=>x(`key`),title:e.$i18n.Projects?.Sort_by_yande_region_code},null,8,[`title`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[3]||=e=>x(`name`),title:e.$i18n.Projects?.Sort_by_lphabetically},null,8,[`title`])])]),body:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{ref_key:`elRegions`,ref:v},[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(_.value,e=>((0,c.openBlock)(),(0,c.createBlock)(n,{key:e.index,modelValue:e.selected,"onUpdate:modelValue":t=>e.selected=t,class:`dialog_regionSelectorRegions_region`,"data-region-index":e.index},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{class:`dialog_regionSelectorRegions_regionSearcherIcon`,"data-top-icon":e.searcherIcon},null,8,d),e.flagLink?((0,c.openBlock)(),(0,c.createElementBlock)(`img`,{key:0,class:`top-flag`,src:`//topvisor.dev`+e.flagLink,alt:e.countryCode},null,8,f)):(0,c.createCommentVNode)(``,!0),(0,c.createElementVNode)(`div`,p,[(0,c.createTextVNode)((0,c.toDisplayString)(e.name)+` `,1),(0,c.createElementVNode)(`span`,m,(0,c.toDisplayString)(e.areaName),1)]),e.langLabel?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,h,` [`+(0,c.toDisplayString)(e.langLabel)+`] `,1)):(0,c.createCommentVNode)(``,!0),e.deviceIcon?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:2,"data-top-icon":e.deviceIcon},null,8,g)):(0,c.createCommentVNode)(``,!0)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`data-region-index`]))),128))],512)]),footer:(0,c.withCtx)(()=>[(0,c.createVNode)(i,{onClick:S},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)(e.$i18n.Common?.Apply),1)]),_:1})]),_:1})]),_:1},8,[`id`])}}})});
2
- //# sourceMappingURL=dialog_regionSelectorRegions-DFZTiYi6.amd.js.map
1
+ define([`require`,`exports`,`./forms-Dh7-1Uy3.amd`,`./dialogs-dXQrzbvl.amd`,`../utils/string.amd`,`./utils-p44qUhkI.amd`,`../utils/searchers.amd`,`./dialog-DiALIK6w.amd`,`vue`,`../require/css.amd!../assets/dialog_regionSelectorRegions.css`],function(e,t,n,r,i,a,o,s,c){"use strict";if(l===void 0)var l=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.default=void 0;var u={class:`dialog_regionSelectorRegions_header`},d=[`data-top-icon`],f=[`src`,`alt`],p={class:`top-ellipsis`},m={class:`dialog_regionSelectorRegions_regionAreaName`},h={key:1},g=[`data-top-icon`];t.default=(0,c.defineComponent)({id:`regionSelectorRegions`,__name:`dialog_regionSelectorRegions`,props:{regions:{},regionsIndexes:{},"@update:regionsIndexes":{type:Function}},setup(e){let t=e,l=(0,a.r)(),_=(0,c.ref)([]),v=(0,c.ref)(null),y=(0,c.reactive)({searcher_key:-1,key:-1,name:-1}),b=(0,c.computed)({get(){return _.value.every(e=>e.selected)},set(e){_.value=_.value.map(t=>({...t,selected:e}))}}),x=e=>{y[e]=-y[e],_.value.sort((t,n)=>!t[e]||!n[e]?-1:t[e]>=n[e]?y[e]:-y[e])},S=()=>{if(!_.value.some(e=>e.selected))return;let e=_.value.filter(e=>e.selected).map(e=>e.index);t[`@update:regionsIndexes`]?.(e),l.close()};(0,c.watch)([()=>t.regions,()=>t.regionsIndexes],()=>{if(_.value=[],!t.regions||!t.regionsIndexes)return;let e=[...t.regions],n=new Map(t.regionsIndexes.map((e,t)=>[e,t]));e.sort((e,t)=>(n.get(e.index)??Number.MAX_VALUE)-(n.get(t.index)??Number.MAX_VALUE)),e.forEach(e=>{let n=e.name;e.areaName&&(n+=` (${e.areaName})`);let r=t.regionsIndexes?.includes(e.index)??!1,a=(0,o.getSearcherGIcon)(e.searcher_key),s=e.lang===void 0?void 0:(0,o.getLangLabel)(e.searcher_key??999,e.lang),c=e.device===void 0?void 0:(0,o.getDeviceGIcon)(e.device),l=e.countryCode===void 0?void 0:(0,i.genFlagLinkByCountryCode)(e.countryCode),u={...e,selected:r,title:n,searcherIcon:a,langLabel:s,deviceIcon:c,flagLink:l};_.value.push(u)})});let C=()=>{if(!n.O.$?.ui.sortable){console.info(`Для работы сортировки требуется глобальная загрузка jQuery UI Sortable`);return}v.value&&$(v.value).sortable({distance:10,stop:()=>{let e=[...v.value.children].map(e=>Number(e.getAttribute(`data-region-index`)));_.value.sort((t,n)=>e.indexOf(t.index)-e.indexOf(n.index))}})},w=()=>{n.O.$?.ui.sortable&&v.value&&$(v.value).sortable(`destroy`)};return(e,t)=>{let n=(0,c.resolveComponent)(`TopCheckbox`),i=(0,c.resolveComponent)(`TopButton`);return(0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(r.a),{id:(0,c.unref)(l).id,pageActive:`regions`,class:`dialog_regionSelectorRegions`,height:`600px`,width:`600px`,onOpen:C,onClose:w},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(s.r),{name:`regions`,order:0},{header:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,u,[(0,c.createVNode)(n,{modelValue:b.value,"onUpdate:modelValue":t[0]||=e=>b.value=e},null,8,[`modelValue`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[1]||=e=>x(`searcher_key`),title:e.$i18n.Projects?.Sort_by_search_engine},null,8,[`title`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[2]||=e=>x(`key`),title:e.$i18n.Projects?.Sort_by_yande_region_code},null,8,[`title`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[3]||=e=>x(`name`),title:e.$i18n.Projects?.Sort_by_lphabetically},null,8,[`title`])])]),body:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{ref_key:`elRegions`,ref:v},[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(_.value,e=>((0,c.openBlock)(),(0,c.createBlock)(n,{key:e.index,modelValue:e.selected,"onUpdate:modelValue":t=>e.selected=t,class:`dialog_regionSelectorRegions_region`,"data-region-index":e.index},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{class:`dialog_regionSelectorRegions_regionSearcherIcon`,"data-top-icon":e.searcherIcon},null,8,d),e.flagLink?((0,c.openBlock)(),(0,c.createElementBlock)(`img`,{key:0,class:`top-flag`,src:`//topvisor.dev`+e.flagLink,alt:e.countryCode},null,8,f)):(0,c.createCommentVNode)(``,!0),(0,c.createElementVNode)(`div`,p,[(0,c.createTextVNode)((0,c.toDisplayString)(e.name)+` `,1),(0,c.createElementVNode)(`span`,m,(0,c.toDisplayString)(e.areaName),1)]),e.langLabel?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,h,` [`+(0,c.toDisplayString)(e.langLabel)+`] `,1)):(0,c.createCommentVNode)(``,!0),e.deviceIcon?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:2,"data-top-icon":e.deviceIcon},null,8,g)):(0,c.createCommentVNode)(``,!0)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`data-region-index`]))),128))],512)]),footer:(0,c.withCtx)(()=>[(0,c.createVNode)(i,{onClick:S},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)(e.$i18n.Common?.Apply),1)]),_:1})]),_:1})]),_:1},8,[`id`])}}})});
2
+ //# sourceMappingURL=dialog_regionSelectorRegions-Bs7v6bLi.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[".chunks/dialog_regionSelectorRegions-DFZTiYi6.esm.js","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue"],"names":["vue","exports","E","D","O","k","A","j","M","vue_1","N","g","P","utils_BTHruVpQ_esm_js_1","F","I","L","R","z","B","t","n","s","searchers_js_1","c","l","u","string_js_1","d","V","forms_C2ItFa61_esm_js_1","H","r","dialogs_CjrddGh6_esm_js_1","dialog_ClCAM1nI_esm_js_1"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-C2ItFa61.esm.js\", \"./dialogs-CjrddGh6.esm.js\", \"../utils/string.js\", \"./utils-BTHruVpQ.esm.js\", \"../utils/searchers.js\", \"./dialog-ClCAM1nI.esm.js\", \"vue\"], function (require, exports, forms_C2ItFa61_esm_js_1, dialogs_CjrddGh6_esm_js_1, string_js_1, utils_BTHruVpQ_esm_js_1, searchers_js_1, dialog_ClCAM1nI_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = void 0;\n //#region src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue?vue&type=script&setup=true&lang.ts\n var E = { class: \"dialog_regionSelectorRegions_header\" }, D = [\"data-top-icon\"], O = [\"src\", \"alt\"], k = { class: \"top-ellipsis\" }, A = { class: \"dialog_regionSelectorRegions_regionAreaName\" }, j = { key: 1 }, M = [\"data-top-icon\"], N = /* @__PURE__ */ (0, vue_1.defineComponent)({\n id: \"regionSelectorRegions\",\n __name: \"dialog_regionSelectorRegions\",\n props: {\n regions: {},\n regionsIndexes: {},\n \"@update:regionsIndexes\": { type: Function }\n },\n setup(g) {\n let N = g, P = (0, utils_BTHruVpQ_esm_js_1.r)(), F = (0, vue_1.ref)([]), I = (0, vue_1.ref)(null), L = (0, vue_1.reactive)({\n searcher_key: -1,\n key: -1,\n name: -1\n }), R = (0, vue_1.computed)({\n get() {\n return F.value.every((e) => e.selected);\n },\n set(e) {\n F.value = F.value.map((t) => ({\n ...t,\n selected: e\n }));\n }\n }), z = (e) => {\n L[e] = -L[e], F.value.sort((t, n) => !t[e] || !n[e] ? -1 : t[e] >= n[e] ? L[e] : -L[e]);\n }, B = () => {\n if (!F.value.some((e) => e.selected))\n return;\n let e = F.value.filter((e) => e.selected).map((e) => e.index);\n N[\"@update:regionsIndexes\"]?.(e), P.close();\n };\n (0, vue_1.watch)([() => N.regions, () => N.regionsIndexes], () => {\n if (F.value = [], !N.regions || !N.regionsIndexes)\n return;\n let e = [...N.regions], t = new Map(N.regionsIndexes.map((e, t) => [e, t]));\n e.sort((e, n) => (t.get(e.index) ?? Number.MAX_VALUE) - (t.get(n.index) ?? Number.MAX_VALUE)), e.forEach((e) => {\n let t = e.name;\n e.areaName && (t += ` (${e.areaName})`);\n let r = N.regionsIndexes?.includes(e.index) ?? !1, s = (0, searchers_js_1.getSearcherGIcon)(e.searcher_key), c = e.lang === void 0 ? void 0 : (0, searchers_js_1.getLangLabel)(e.searcher_key ?? 999, e.lang), l = e.device === void 0 ? void 0 : (0, searchers_js_1.getDeviceGIcon)(e.device), u = e.countryCode === void 0 ? void 0 : (0, string_js_1.genFlagLinkByCountryCode)(e.countryCode), d = {\n ...e,\n selected: r,\n title: t,\n searcherIcon: s,\n langLabel: c,\n deviceIcon: l,\n flagLink: u\n };\n F.value.push(d);\n });\n });\n let V = () => {\n if (!forms_C2ItFa61_esm_js_1.O.$?.ui.sortable) {\n console.info(\"Для работы сортировки требуется глобальная загрузка jQuery UI Sortable\");\n return;\n }\n I.value && $(I.value).sortable({\n distance: 10,\n stop: () => {\n let e = [...I.value.children].map((e) => Number(e.getAttribute(\"data-region-index\")));\n F.value.sort((t, n) => e.indexOf(t.index) - e.indexOf(n.index));\n }\n });\n }, H = () => {\n forms_C2ItFa61_esm_js_1.O.$?.ui.sortable && I.value && $(I.value).sortable(\"destroy\");\n };\n return (e, n) => {\n let r = (0, vue_1.resolveComponent)(\"TopCheckbox\"), i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.unref)(dialogs_CjrddGh6_esm_js_1.a), {\n id: (0, vue_1.unref)(P).id,\n pageActive: \"regions\",\n class: \"dialog_regionSelectorRegions\",\n height: \"600px\",\n width: \"600px\",\n onOpen: V,\n onClose: H\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)((0, vue_1.unref)(dialog_ClCAM1nI_esm_js_1.r), {\n name: \"regions\",\n order: 0\n }, {\n header: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", E, [\n (0, vue_1.createVNode)(r, {\n modelValue: R.value,\n \"onUpdate:modelValue\": n[0] ||= (e) => R.value = e\n }, null, 8, [\"modelValue\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[1] ||= (e) => z(\"searcher_key\"),\n title: e.$i18n.Projects?.Sort_by_search_engine\n }, null, 8, [\"title\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[2] ||= (e) => z(\"key\"),\n title: e.$i18n.Projects?.Sort_by_yande_region_code\n }, null, 8, [\"title\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[3] ||= (e) => z(\"name\"),\n title: e.$i18n.Projects?.Sort_by_lphabetically\n }, null, 8, [\"title\"])\n ])]),\n body: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", {\n ref_key: \"elRegions\",\n ref: I\n }, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(F.value, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(r, {\n key: e.index,\n modelValue: e.selected,\n \"onUpdate:modelValue\": (t) => e.selected = t,\n class: \"dialog_regionSelectorRegions_region\",\n \"data-region-index\": e.index\n }, {\n default: (0, vue_1.withCtx)(() => [\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"dialog_regionSelectorRegions_regionSearcherIcon\",\n \"data-top-icon\": e.searcherIcon\n }, null, 8, D),\n e.flagLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"img\", {\n key: 0,\n class: \"top-flag\",\n src: \"//topvisor.dev\" + e.flagLink,\n alt: e.countryCode\n }, null, 8, O)) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.createElementVNode)(\"div\", k, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.name) + \" \", 1), (0, vue_1.createElementVNode)(\"span\", A, (0, vue_1.toDisplayString)(e.areaName), 1)]),\n e.langLabel ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", j, \" [\" + (0, vue_1.toDisplayString)(e.langLabel) + \"] \", 1)) : (0, vue_1.createCommentVNode)(\"\", !0),\n e.deviceIcon ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 2,\n \"data-top-icon\": e.deviceIcon\n }, null, 8, M)) : (0, vue_1.createCommentVNode)(\"\", !0)\n ]),\n _: 2\n }, 1032, [\n \"modelValue\",\n \"onUpdate:modelValue\",\n \"data-region-index\"\n ]))), 128))], 512)]),\n footer: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)(i, { onClick: B }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.$i18n.Common?.Apply), 1)]),\n _: 1\n })]),\n _: 1\n })]),\n _: 1\n }, 8, [\"id\"]);\n };\n }\n });\n exports.default = N;\n});\n//# sourceMappingURL=dialog_regionSelectorRegions-DFZTiYi6.esm.js.map\n","<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'regionSelectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_regionSelectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"]}
1
+ {"version":3,"sources":[".chunks/dialog_regionSelectorRegions-Bs7v6bLi.esm.js","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue"],"names":["vue","exports","E","D","O","k","A","j","M","vue_1","N","g","P","utils_p44qUhkI_esm_js_1","F","I","L","R","z","B","t","n","s","searchers_js_1","c","l","u","string_js_1","d","V","forms_Dh7_1Uy3_esm_js_1","H","r","dialogs_dXQrzbvl_esm_js_1","dialog_DiALIK6w_esm_js_1"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-Dh7-1Uy3.esm.js\", \"./dialogs-dXQrzbvl.esm.js\", \"../utils/string.js\", \"./utils-p44qUhkI.esm.js\", \"../utils/searchers.js\", \"./dialog-DiALIK6w.esm.js\", \"vue\"], function (require, exports, forms_Dh7_1Uy3_esm_js_1, dialogs_dXQrzbvl_esm_js_1, string_js_1, utils_p44qUhkI_esm_js_1, searchers_js_1, dialog_DiALIK6w_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = void 0;\n //#region src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue?vue&type=script&setup=true&lang.ts\n var E = { class: \"dialog_regionSelectorRegions_header\" }, D = [\"data-top-icon\"], O = [\"src\", \"alt\"], k = { class: \"top-ellipsis\" }, A = { class: \"dialog_regionSelectorRegions_regionAreaName\" }, j = { key: 1 }, M = [\"data-top-icon\"], N = /* @__PURE__ */ (0, vue_1.defineComponent)({\n id: \"regionSelectorRegions\",\n __name: \"dialog_regionSelectorRegions\",\n props: {\n regions: {},\n regionsIndexes: {},\n \"@update:regionsIndexes\": { type: Function }\n },\n setup(g) {\n let N = g, P = (0, utils_p44qUhkI_esm_js_1.r)(), F = (0, vue_1.ref)([]), I = (0, vue_1.ref)(null), L = (0, vue_1.reactive)({\n searcher_key: -1,\n key: -1,\n name: -1\n }), R = (0, vue_1.computed)({\n get() {\n return F.value.every((e) => e.selected);\n },\n set(e) {\n F.value = F.value.map((t) => ({\n ...t,\n selected: e\n }));\n }\n }), z = (e) => {\n L[e] = -L[e], F.value.sort((t, n) => !t[e] || !n[e] ? -1 : t[e] >= n[e] ? L[e] : -L[e]);\n }, B = () => {\n if (!F.value.some((e) => e.selected))\n return;\n let e = F.value.filter((e) => e.selected).map((e) => e.index);\n N[\"@update:regionsIndexes\"]?.(e), P.close();\n };\n (0, vue_1.watch)([() => N.regions, () => N.regionsIndexes], () => {\n if (F.value = [], !N.regions || !N.regionsIndexes)\n return;\n let e = [...N.regions], t = new Map(N.regionsIndexes.map((e, t) => [e, t]));\n e.sort((e, n) => (t.get(e.index) ?? Number.MAX_VALUE) - (t.get(n.index) ?? Number.MAX_VALUE)), e.forEach((e) => {\n let t = e.name;\n e.areaName && (t += ` (${e.areaName})`);\n let r = N.regionsIndexes?.includes(e.index) ?? !1, s = (0, searchers_js_1.getSearcherGIcon)(e.searcher_key), c = e.lang === void 0 ? void 0 : (0, searchers_js_1.getLangLabel)(e.searcher_key ?? 999, e.lang), l = e.device === void 0 ? void 0 : (0, searchers_js_1.getDeviceGIcon)(e.device), u = e.countryCode === void 0 ? void 0 : (0, string_js_1.genFlagLinkByCountryCode)(e.countryCode), d = {\n ...e,\n selected: r,\n title: t,\n searcherIcon: s,\n langLabel: c,\n deviceIcon: l,\n flagLink: u\n };\n F.value.push(d);\n });\n });\n let V = () => {\n if (!forms_Dh7_1Uy3_esm_js_1.O.$?.ui.sortable) {\n console.info(\"Для работы сортировки требуется глобальная загрузка jQuery UI Sortable\");\n return;\n }\n I.value && $(I.value).sortable({\n distance: 10,\n stop: () => {\n let e = [...I.value.children].map((e) => Number(e.getAttribute(\"data-region-index\")));\n F.value.sort((t, n) => e.indexOf(t.index) - e.indexOf(n.index));\n }\n });\n }, H = () => {\n forms_Dh7_1Uy3_esm_js_1.O.$?.ui.sortable && I.value && $(I.value).sortable(\"destroy\");\n };\n return (e, n) => {\n let r = (0, vue_1.resolveComponent)(\"TopCheckbox\"), i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.unref)(dialogs_dXQrzbvl_esm_js_1.a), {\n id: (0, vue_1.unref)(P).id,\n pageActive: \"regions\",\n class: \"dialog_regionSelectorRegions\",\n height: \"600px\",\n width: \"600px\",\n onOpen: V,\n onClose: H\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)((0, vue_1.unref)(dialog_DiALIK6w_esm_js_1.r), {\n name: \"regions\",\n order: 0\n }, {\n header: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", E, [\n (0, vue_1.createVNode)(r, {\n modelValue: R.value,\n \"onUpdate:modelValue\": n[0] ||= (e) => R.value = e\n }, null, 8, [\"modelValue\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[1] ||= (e) => z(\"searcher_key\"),\n title: e.$i18n.Projects?.Sort_by_search_engine\n }, null, 8, [\"title\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[2] ||= (e) => z(\"key\"),\n title: e.$i18n.Projects?.Sort_by_yande_region_code\n }, null, 8, [\"title\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[3] ||= (e) => z(\"name\"),\n title: e.$i18n.Projects?.Sort_by_lphabetically\n }, null, 8, [\"title\"])\n ])]),\n body: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", {\n ref_key: \"elRegions\",\n ref: I\n }, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(F.value, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(r, {\n key: e.index,\n modelValue: e.selected,\n \"onUpdate:modelValue\": (t) => e.selected = t,\n class: \"dialog_regionSelectorRegions_region\",\n \"data-region-index\": e.index\n }, {\n default: (0, vue_1.withCtx)(() => [\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"dialog_regionSelectorRegions_regionSearcherIcon\",\n \"data-top-icon\": e.searcherIcon\n }, null, 8, D),\n e.flagLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"img\", {\n key: 0,\n class: \"top-flag\",\n src: \"//topvisor.dev\" + e.flagLink,\n alt: e.countryCode\n }, null, 8, O)) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.createElementVNode)(\"div\", k, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.name) + \" \", 1), (0, vue_1.createElementVNode)(\"span\", A, (0, vue_1.toDisplayString)(e.areaName), 1)]),\n e.langLabel ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", j, \" [\" + (0, vue_1.toDisplayString)(e.langLabel) + \"] \", 1)) : (0, vue_1.createCommentVNode)(\"\", !0),\n e.deviceIcon ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 2,\n \"data-top-icon\": e.deviceIcon\n }, null, 8, M)) : (0, vue_1.createCommentVNode)(\"\", !0)\n ]),\n _: 2\n }, 1032, [\n \"modelValue\",\n \"onUpdate:modelValue\",\n \"data-region-index\"\n ]))), 128))], 512)]),\n footer: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)(i, { onClick: B }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.$i18n.Common?.Apply), 1)]),\n _: 1\n })]),\n _: 1\n })]),\n _: 1\n }, 8, [\"id\"]);\n };\n }\n });\n exports.default = N;\n});\n//# sourceMappingURL=dialog_regionSelectorRegions-Bs7v6bLi.esm.js.map\n","<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'regionSelectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_regionSelectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"]}
@@ -5,12 +5,12 @@
5
5
  _autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
6
6
  /* end import css */
7
7
 
8
- import { O as e } from "./forms-C2ItFa61.esm.js";
9
- import { a as t } from "./dialogs-CjrddGh6.esm.js";
8
+ import { O as e } from "./forms-Dh7-1Uy3.esm.js";
9
+ import { a as t } from "./dialogs-dXQrzbvl.esm.js";
10
10
  import { genFlagLinkByCountryCode as n } from "../utils/string.js";
11
- import { r } from "./utils-BTHruVpQ.esm.js";
11
+ import { r } from "./utils-p44qUhkI.esm.js";
12
12
  import { getDeviceGIcon as i, getLangLabel as a, getSearcherGIcon as o } from "../utils/searchers.js";
13
- import { r as s } from "./dialog-ClCAM1nI.esm.js";
13
+ import { r as s } from "./dialog-DiALIK6w.esm.js";
14
14
  import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createTextVNode as m, createVNode as h, defineComponent as g, openBlock as _, reactive as v, ref as y, renderList as b, resolveComponent as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
15
15
  //#region src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue?vue&type=script&setup=true&lang.ts
16
16
  var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"], O = ["src", "alt"], k = { class: "top-ellipsis" }, A = { class: "dialog_regionSelectorRegions_regionAreaName" }, j = { key: 1 }, M = ["data-top-icon"], N = /* @__PURE__ */ g({
@@ -166,4 +166,4 @@ var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"],
166
166
  //#endregion
167
167
  export { N as default };
168
168
 
169
- //# sourceMappingURL=dialog_regionSelectorRegions-DFZTiYi6.esm.js.map
169
+ //# sourceMappingURL=dialog_regionSelectorRegions-Bs7v6bLi.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog_regionSelectorRegions-DFZTiYi6.esm.js","names":["$i18n"],"sources":["../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'regionSelectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_regionSelectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'regionSelectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_regionSelectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"dialog_regionSelectorRegions-Bs7v6bLi.esm.js","names":["$i18n"],"sources":["../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'regionSelectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_regionSelectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'regionSelectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_regionSelectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=n(r),o=0;o<a.length;o++)a[o]!==`default`&&__createBinding(i,r,a[o]);return __setModuleDefault(i,r),i}})();define([`require`,`exports`,`./forms-C2ItFa61.amd`,`../utils/dom.amd`,`../utils/system.amd`,`../utils/route.amd`,`vue`],function(e,t,r,i,a,o,s){"use strict";if(c===void 0)var c=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.t=t.r=t.n=t.i=t.a=void 0;var l=[`id`,`data-view-page-active`,`data-modal`,`data-position`],u=(0,s.defineComponent)({__name:`dialog`,props:{id:{},pageActive:{},width:{default:`600px`},height:{default:`auto`},modal:{type:Boolean,default:!0},position:{},historyType:{default:`push`},classes:{}},emits:[`open`,`close`],setup(e){let t=g(e.id);if(!t)throw Error(`TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()`);return(0,s.provide)(`dialogWorker`,t),(0,s.onMounted)(()=>{let e=(0,s.getCurrentInstance)(),n=e.parent;if(n?.parent?.type.name!==`DialogWrapper`)throw Error(`TopDialog cannot be used in a template, use useTopDialog()`);if(Array.isArray(n.subTree.children)&&n.subTree.children.length!==1)throw Error(`TopDialog can has only one root element`);t.onMounted(n,e)}),(0,s.watch)(t.isOpened,()=>{t.isReady.value=!0},{flush:`post`,once:!0}),(n,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{id:(0,s.unref)(t).idAttr,class:(0,s.normalizeClass)([`top-dialog`,e.classes]),style:(0,s.normalizeStyle)({"--top-dialog-width":e.width,"--top-dialog-height":e.height}),tabindex:`-1`,"data-view-page-active":(0,s.unref)(t).pageActive.value,"data-modal":e.modal,"data-position":e.position},[r[0]||=(0,s.createElementVNode)(`div`,{class:`modal-layer modal-layer-header`},null,-1),(0,s.createElementVNode)(`div`,{class:`modal-layer modal-layer-body`,style:(0,s.normalizeStyle)({"min-height":e.height+`px`})},null,4),(0,s.renderSlot)(n.$slots,`default`)],14,l))}}),d,f=class t{static init(e){if(this.inited)return;this.inited=!0,this.state.load=e?.load,this.state.decoratorOnCreate=e?.decoratorOnCreate;let n=e?.autoInitDelay??5e3;window.addEventListener(`hashchange`,e=>{this.opendDialogsFromChangeUrl(e.oldURL,e.newURL)}),this.opendDialogsFromChangeUrl(``,location.href),document.addEventListener(`mousedown`,async e=>{if(!(e.target instanceof HTMLElement))return;let n=e.target.closest(`a[data-to-view]`);if(!n)return;let r=`next`;n.dataset.action===`top-dialog-close`&&(r=`prev`),n.href=t.genViewPageHash(n.dataset.toView,r)}),document.addEventListener(`click`,async e=>{if(!(e.target instanceof HTMLElement))return;let n=e.target.closest(`[data-to-view]`);if(!n)return;if(n instanceof HTMLAnchorElement&&n.href===`.`){e.preventDefault();let t=new MouseEvent(`mousedown`,{bubbles:!0,cancelable:!0,view:window});n.dispatchEvent(t),setTimeout(()=>n.click());return}let r=await this.getDialogsUtils(),a=n.dataset.toView,s=a.split(`-`)[0],c=r.getElDialogById(s),l=`next`;if(c){let e=(0,i.querySelectorAllArray)(c,`.modal-layer`),t=e.reduce((e,t)=>{let n=t.querySelector(`:scope > .active`);return n&&e.push(n),e},[]);if(t.length){let n=a.split(`-`)[1].split(`:`)[0];(e.reduce((e,t)=>{let r=t?.querySelector(`:scope > [data-view-page="${n}"]`);return r&&e.push(r),e},[])[0]?.dataset.order??0)<(t[0]?.dataset.order??0)&&(l=`prev`)}}n.dataset.action===`top-dialog-close`&&(l=`prev`);let u=t.genViewPageHash(a,l);if(n instanceof HTMLAnchorElement){if(!c||!(0,i.isVisible)(c))return;if(location.hash.indexOf(a.replace(`-`,`=`))!==-1){await r.toViewDirty(a);return}}c?.dataset.toViewReplace?(e.preventDefault(),(0,o.historySetState)(!0,u),await r.toViewDirty(a),l==`next`?t.state.viewPageN++:t.state.viewPageN--):n.tagName!==`A`&&(this.compareStates(u,location.hash)?(0,o.historySetState)(!1,u):await r.toViewDirty(a))}),setTimeout(()=>this.getDialogsUtils(),n)}static opendDialogsFromChangeUrl(e,t){let n=e.replace(/.*?#/,`#`),r=t.replace(/.*?#/,`#`);this.compareStates(n,r)&&this.opendDialogsFromUrl()}static async getDialogsUtils(){let{TopDialogUtils:t}=await new Promise((t,n)=>{e([`./utils-DJV2mWZE.amd`],t,n)}).then(__importStar);return t}static getDialog(e){return e.closest(`.ui-dialog-content`)}static get$dialog(e){return e.closest(`.ui-dialog-content`)}static getPage(e){return e.closest(`[data-view-page]`)}static get$page(e){return e.closest(`[data-view-page]`)}static get$pairPage(e){let n=t.get$dialog(e),r=t.get$page(e).data(`view-page`);return $(`[data-view-page="`+r+`"]`,n)}static getPairPage(e){let n=t.getDialog(e);if(!n)return;let r=t.getPage(e)?.dataset.viewPage;return(0,i.querySelectorAllArray)(n,`[data-view-page="${r}"]`)}static close(e){let t=$(`#`+e);if(t.dialog(`instance`)){t.dialog(`close`);return}let n=document.getElementById(e);n instanceof HTMLDialogElement&&n.close()}static destroy(e){let t=$(`#`+e);if(t.dialog(`instance`)){t.dialog(`close`),t.dialog(`destroy`);return}let n=document.getElementById(e);n instanceof HTMLDialogElement&&n.close()}static genViewPageHash(e,t=`next`){let n=this.state.viewPageN;t==`prev`?n--:n++;let r=e.split(`-`),i=r.shift(),a=r.join(`-`),s=(0,o.genHash)(`vpn`,n);return s=(0,o.genHash)(`view-`+i,a,s),s}static compareStates(e,t){let n=e.match(/[#&]view-[^&]+/g)||[],r=t.match(/[#&]view-[^&]+/g)||[];return!!(n.length!==r.length||n.filter((e,t)=>e!==(r[t]||``)).length)}};t.a=u,t.i=f,d=f,(0,r.K)(f,`state`,{load:void 0,decoratorOnCreate:void 0,viewPageN:0}),(0,r.K)(f,`inited`,!1),(0,r.K)(f,`opendDialogsFromUrl`,async()=>{let e=Number((0,o.getHash)(`vpn`))||0,t,n=RegExp(`view-((\\w+)=([\\w-]+)(?::([\\w.:-]+))?)`,`g`);for(;t=n.exec(location.hash);){let n=`next`;return e<d.state.viewPageN&&(n=`prev`),(await d.getDialogsUtils()).toViewDirty(t[1],n)}return(0,i.querySelectorAllArray)(document,`.ui-dialog-content[data-view-page-active]`).filter(e=>(0,i.isVisible)(e)).forEach(e=>{let t=e.getAttribute(`id`);if(!t)throw`Диалоговое окно не содержит id`;(0,o.getHash)(`view-`+t)||$(e).dialog(`close`)}),d.state.viewPageN=e,!0});var p=class{constructor(e){(0,r.K)(this,`id`,void 0),(0,r.K)(this,`idAttr`,void 0),(0,r.K)(this,`Component`,void 0),(0,r.K)(this,`isMounted`,(0,s.ref)(!1)),(0,r.K)(this,`isReady`,(0,s.ref)(!1)),(0,r.K)(this,`isOpened`,(0,s.ref)(!1)),(0,r.K)(this,`pageActive`,(0,s.ref)(``)),(0,r.K)(this,`isLoadingPage`,(0,s.ref)(!1)),(0,r.K)(this,`pageActiveNext`,(0,s.ref)(``)),(0,r.K)(this,`props`,void 0),(0,r.K)(this,`emit`,void 0),(0,r.K)(this,`onCloseOnce`,void 0),this.id=e.id,this.idAttr=`dialog_`+e.id,this.Component=(0,s.markRaw)(e)}onMounted(e,t){this.isMounted.value=!0,this.props=e.props,this.emit=t.emit}async open(e=`main`,t,n=[],r,i){t&&await this.setProps(t),r&&(this.onCloseOnce=r),await(await f.getDialogsUtils()).toView(this.idAttr,e,n,i)}async openAsLink(e=`main`,t,n=[],r,i){t&&await this.setProps(t),r&&(this.onCloseOnce=r);let a=this.idAttr+`-`+e;(0,o.historySetState)(!1,f.genViewPageHash(a,i))}async close(){f.close(this.idAttr)}async destroy(){f.destroy(this.idAttr)}async setProps(e={}){this.isMounted||await(0,a.waitWhile)(()=>!this.props);for(let t in this.props)this.props[t]=e[t]}needShowPage(e){return this.isOpened.value?this.pageActive.value===e||this.pageActiveNext.value===e:!1}},m={class:`top-dialogs`,style:{display:`none`}},h=(0,s.shallowReactive)(new Map),g=e=>(e=e.replace(/^dialog_/,``),h.get(e)),_=e=>{if(!e?.id)throw console.log({TopDialogComponent:e}),Error(`Expected TopDialogComponent`);return h.has(e.id)||h.set(e.id,new p(e)),h.get(e.id)},v=(0,s.defineComponent)({name:`DialogWrapper`,__name:`dialogs`,setup(e){return(0,s.onUnmounted)(()=>{h.forEach(e=>e.destroy()),h.clear()}),(e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,m,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)((0,s.unref)(h),([e,t])=>((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)(t.Component),{key:e}))),128))]))}});t.r=g,t.n=_,t.t=v});
2
- //# sourceMappingURL=dialogs-CjrddGh6.amd.js.map
1
+ var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=n(r),o=0;o<a.length;o++)a[o]!==`default`&&__createBinding(i,r,a[o]);return __setModuleDefault(i,r),i}})();define([`require`,`exports`,`./forms-Dh7-1Uy3.amd`,`../utils/dom.amd`,`../utils/system.amd`,`../utils/route.amd`,`vue`],function(e,t,r,i,a,o,s){"use strict";if(c===void 0)var c=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.t=t.r=t.n=t.i=t.a=void 0;var l=[`id`,`data-view-page-active`,`data-modal`,`data-position`],u=(0,s.defineComponent)({__name:`dialog`,props:{id:{},pageActive:{},width:{default:`600px`},height:{default:`auto`},modal:{type:Boolean,default:!0},position:{},historyType:{default:`push`},classes:{}},emits:[`open`,`close`],setup(e){let t=g(e.id);if(!t)throw Error(`TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()`);return(0,s.provide)(`dialogWorker`,t),(0,s.onMounted)(()=>{let e=(0,s.getCurrentInstance)(),n=e.parent;if(n?.parent?.type.name!==`DialogWrapper`)throw Error(`TopDialog cannot be used in a template, use useTopDialog()`);if(Array.isArray(n.subTree.children)&&n.subTree.children.length!==1)throw Error(`TopDialog can has only one root element`);t.onMounted(n,e)}),(0,s.watch)(t.isOpened,()=>{t.isReady.value=!0},{flush:`post`,once:!0}),(n,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{id:(0,s.unref)(t).idAttr,class:(0,s.normalizeClass)([`top-dialog`,e.classes]),style:(0,s.normalizeStyle)({"--top-dialog-width":e.width,"--top-dialog-height":e.height}),tabindex:`-1`,"data-view-page-active":(0,s.unref)(t).pageActive.value,"data-modal":e.modal,"data-position":e.position},[r[0]||=(0,s.createElementVNode)(`div`,{class:`modal-layer modal-layer-header`},null,-1),(0,s.createElementVNode)(`div`,{class:`modal-layer modal-layer-body`,style:(0,s.normalizeStyle)({"min-height":e.height+`px`})},null,4),(0,s.renderSlot)(n.$slots,`default`)],14,l))}}),d,f=class t{static init(e){if(this.inited)return;this.inited=!0,this.state.load=e?.load,this.state.decoratorOnCreate=e?.decoratorOnCreate;let n=e?.autoInitDelay??5e3;window.addEventListener(`hashchange`,e=>{this.opendDialogsFromChangeUrl(e.oldURL,e.newURL)}),this.opendDialogsFromChangeUrl(``,location.href),document.addEventListener(`mousedown`,async e=>{if(!(e.target instanceof HTMLElement))return;let n=e.target.closest(`a[data-to-view]`);if(!n)return;let r=`next`;n.dataset.action===`top-dialog-close`&&(r=`prev`),n.href=t.genViewPageHash(n.dataset.toView,r)}),document.addEventListener(`click`,async e=>{if(!(e.target instanceof HTMLElement))return;let n=e.target.closest(`[data-to-view]`);if(!n)return;if(n instanceof HTMLAnchorElement&&n.href===`.`){e.preventDefault();let t=new MouseEvent(`mousedown`,{bubbles:!0,cancelable:!0,view:window});n.dispatchEvent(t),setTimeout(()=>n.click());return}let r=await this.getDialogsUtils(),a=n.dataset.toView,s=a.split(`-`)[0],c=r.getElDialogById(s),l=`next`;if(c){let e=(0,i.querySelectorAllArray)(c,`.modal-layer`),t=e.reduce((e,t)=>{let n=t.querySelector(`:scope > .active`);return n&&e.push(n),e},[]);if(t.length){let n=a.split(`-`)[1].split(`:`)[0];(e.reduce((e,t)=>{let r=t?.querySelector(`:scope > [data-view-page="${n}"]`);return r&&e.push(r),e},[])[0]?.dataset.order??0)<(t[0]?.dataset.order??0)&&(l=`prev`)}}n.dataset.action===`top-dialog-close`&&(l=`prev`);let u=t.genViewPageHash(a,l);if(n instanceof HTMLAnchorElement){if(!c||!(0,i.isVisible)(c))return;if(location.hash.indexOf(a.replace(`-`,`=`))!==-1){await r.toViewDirty(a);return}}c?.dataset.toViewReplace?(e.preventDefault(),(0,o.historySetState)(!0,u),await r.toViewDirty(a),l==`next`?t.state.viewPageN++:t.state.viewPageN--):n.tagName!==`A`&&(this.compareStates(u,location.hash)?(0,o.historySetState)(!1,u):await r.toViewDirty(a))}),setTimeout(()=>this.getDialogsUtils(),n)}static opendDialogsFromChangeUrl(e,t){let n=e.replace(/.*?#/,`#`),r=t.replace(/.*?#/,`#`);this.compareStates(n,r)&&this.opendDialogsFromUrl()}static async getDialogsUtils(){let{TopDialogUtils:t}=await new Promise((t,n)=>{e([`./utils-C92VWjGL.amd`],t,n)}).then(__importStar);return t}static getDialog(e){return e.closest(`.ui-dialog-content`)}static get$dialog(e){return e.closest(`.ui-dialog-content`)}static getPage(e){return e.closest(`[data-view-page]`)}static get$page(e){return e.closest(`[data-view-page]`)}static get$pairPage(e){let n=t.get$dialog(e),r=t.get$page(e).data(`view-page`);return $(`[data-view-page="`+r+`"]`,n)}static getPairPage(e){let n=t.getDialog(e);if(!n)return;let r=t.getPage(e)?.dataset.viewPage;return(0,i.querySelectorAllArray)(n,`[data-view-page="${r}"]`)}static close(e){let t=$(`#`+e);if(t.dialog(`instance`)){t.dialog(`close`);return}let n=document.getElementById(e);n instanceof HTMLDialogElement&&n.close()}static destroy(e){let t=$(`#`+e);if(t.dialog(`instance`)){t.dialog(`close`),t.dialog(`destroy`);return}let n=document.getElementById(e);n instanceof HTMLDialogElement&&n.close()}static genViewPageHash(e,t=`next`){let n=this.state.viewPageN;t==`prev`?n--:n++;let r=e.split(`-`),i=r.shift(),a=r.join(`-`),s=(0,o.genHash)(`vpn`,n);return s=(0,o.genHash)(`view-`+i,a,s),s}static compareStates(e,t){let n=e.match(/[#&]view-[^&]+/g)||[],r=t.match(/[#&]view-[^&]+/g)||[];return!!(n.length!==r.length||n.filter((e,t)=>e!==(r[t]||``)).length)}};t.a=u,t.i=f,d=f,(0,r.K)(f,`state`,{load:void 0,decoratorOnCreate:void 0,viewPageN:0}),(0,r.K)(f,`inited`,!1),(0,r.K)(f,`opendDialogsFromUrl`,async()=>{let e=Number((0,o.getHash)(`vpn`))||0,t,n=RegExp(`view-((\\w+)=([\\w-]+)(?::([\\w.:-]+))?)`,`g`);for(;t=n.exec(location.hash);){let n=`next`;return e<d.state.viewPageN&&(n=`prev`),(await d.getDialogsUtils()).toViewDirty(t[1],n)}return(0,i.querySelectorAllArray)(document,`.ui-dialog-content[data-view-page-active]`).filter(e=>(0,i.isVisible)(e)).forEach(e=>{let t=e.getAttribute(`id`);if(!t)throw`Диалоговое окно не содержит id`;(0,o.getHash)(`view-`+t)||$(e).dialog(`close`)}),d.state.viewPageN=e,!0});var p=class{constructor(e){(0,r.K)(this,`id`,void 0),(0,r.K)(this,`idAttr`,void 0),(0,r.K)(this,`Component`,void 0),(0,r.K)(this,`isMounted`,(0,s.ref)(!1)),(0,r.K)(this,`isReady`,(0,s.ref)(!1)),(0,r.K)(this,`isOpened`,(0,s.ref)(!1)),(0,r.K)(this,`pageActive`,(0,s.ref)(``)),(0,r.K)(this,`isLoadingPage`,(0,s.ref)(!1)),(0,r.K)(this,`pageActiveNext`,(0,s.ref)(``)),(0,r.K)(this,`props`,void 0),(0,r.K)(this,`emit`,void 0),(0,r.K)(this,`onCloseOnce`,void 0),this.id=e.id,this.idAttr=`dialog_`+e.id,this.Component=(0,s.markRaw)(e)}onMounted(e,t){this.isMounted.value=!0,this.props=e.props,this.emit=t.emit}async open(e=`main`,t,n=[],r,i){t&&await this.setProps(t),r&&(this.onCloseOnce=r),await(await f.getDialogsUtils()).toView(this.idAttr,e,n,i)}async openAsLink(e=`main`,t,n=[],r,i){t&&await this.setProps(t),r&&(this.onCloseOnce=r);let a=this.idAttr+`-`+e;(0,o.historySetState)(!1,f.genViewPageHash(a,i))}async close(){f.close(this.idAttr)}async destroy(){f.destroy(this.idAttr)}async setProps(e={}){this.isMounted||await(0,a.waitWhile)(()=>!this.props);for(let t in this.props)this.props[t]=e[t]}needShowPage(e){return this.isOpened.value?this.pageActive.value===e||this.pageActiveNext.value===e:!1}},m={class:`top-dialogs`,style:{display:`none`}},h=(0,s.shallowReactive)(new Map),g=e=>(e=e.replace(/^dialog_/,``),h.get(e)),_=e=>{if(!e?.id)throw console.log({TopDialogComponent:e}),Error(`Expected TopDialogComponent`);return h.has(e.id)||h.set(e.id,new p(e)),h.get(e.id)},v=(0,s.defineComponent)({name:`DialogWrapper`,__name:`dialogs`,setup(e){return(0,s.onUnmounted)(()=>{h.forEach(e=>e.destroy()),h.clear()}),(e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,m,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)((0,s.unref)(h),([e,t])=>((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)(t.Component),{key:e}))),128))]))}});t.r=g,t.n=_,t.t=v});
2
+ //# sourceMappingURL=dialogs-dXQrzbvl.amd.js.map