@topvisor/ui 1.5.10-colorTableAi.0 → 1.5.10-help.1

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 (124) hide show
  1. package/.chunks/{app-2jFVHyen.es.amd.js → app-D89H7wLS.es.amd.js} +2 -2
  2. package/.chunks/app-D89H7wLS.es.amd.js.map +1 -0
  3. package/.chunks/{app-2jFVHyen.es.js → app-D89H7wLS.es.js} +12 -6
  4. package/.chunks/app-D89H7wLS.es.js.map +1 -0
  5. package/.chunks/{datepicker-CpnGeB5y.es.amd.js → datepicker-DtdAe-rf.es.amd.js} +2 -2
  6. package/.chunks/{datepicker-CpnGeB5y.es.amd.js.map → datepicker-DtdAe-rf.es.amd.js.map} +1 -1
  7. package/.chunks/{datepicker-CpnGeB5y.es.js → datepicker-DtdAe-rf.es.js} +2 -2
  8. package/.chunks/{datepicker-CpnGeB5y.es.js.map → datepicker-DtdAe-rf.es.js.map} +1 -1
  9. package/.chunks/dialog-WEQO33BZ.es.amd.js +2 -0
  10. package/.chunks/dialog-WEQO33BZ.es.amd.js.map +1 -0
  11. package/.chunks/{dialog-BKJg54Dh.es.js → dialog-WEQO33BZ.es.js} +41 -29
  12. package/.chunks/dialog-WEQO33BZ.es.js.map +1 -0
  13. package/.chunks/dialog_regionSelectorRegions-BML7I8Qt.es.amd.js +2 -0
  14. package/.chunks/dialog_regionSelectorRegions-BML7I8Qt.es.amd.js.map +1 -0
  15. package/.chunks/{dialog_regionSelectorRegions-Dq81iORJ.es.js → dialog_regionSelectorRegions-BML7I8Qt.es.js} +41 -40
  16. package/.chunks/dialog_regionSelectorRegions-BML7I8Qt.es.js.map +1 -0
  17. package/.chunks/forms-DrY7Q_VD.es.amd.js +2 -0
  18. package/.chunks/forms-DrY7Q_VD.es.amd.js.map +1 -0
  19. package/.chunks/{forms-CjJD60m3.es.js → forms-DrY7Q_VD.es.js} +138 -133
  20. package/.chunks/forms-DrY7Q_VD.es.js.map +1 -0
  21. package/.chunks/{formsExt-B9hGGznb.es.amd.js → formsExt-BgtDJL34.es.amd.js} +2 -2
  22. package/.chunks/{formsExt-B9hGGznb.es.amd.js.map → formsExt-BgtDJL34.es.amd.js.map} +1 -1
  23. package/.chunks/{formsExt-B9hGGznb.es.js → formsExt-BgtDJL34.es.js} +3 -3
  24. package/.chunks/{formsExt-B9hGGznb.es.js.map → formsExt-BgtDJL34.es.js.map} +1 -1
  25. package/.chunks/{notice-BSVUBQ4B.es.amd.js → notice-qj8gI3Vn.es.amd.js} +2 -2
  26. package/.chunks/{notice-BSVUBQ4B.es.amd.js.map → notice-qj8gI3Vn.es.amd.js.map} +1 -1
  27. package/.chunks/{notice-BSVUBQ4B.es.js → notice-qj8gI3Vn.es.js} +2 -2
  28. package/.chunks/{notice-BSVUBQ4B.es.js.map → notice-qj8gI3Vn.es.js.map} +1 -1
  29. package/.chunks/{popup-BoCCkzOM.es.amd.js → popup-CWtDQcwo.es.amd.js} +2 -2
  30. package/.chunks/{popup-BoCCkzOM.es.amd.js.map → popup-CWtDQcwo.es.amd.js.map} +1 -1
  31. package/.chunks/{popup-BoCCkzOM.es.js → popup-CWtDQcwo.es.js} +3 -3
  32. package/.chunks/{popup-BoCCkzOM.es.js.map → popup-CWtDQcwo.es.js.map} +1 -1
  33. package/.chunks/{popup-q1PRZblX.es.amd.js → popup-DQDuBLfC.es.amd.js} +2 -2
  34. package/.chunks/{popup-q1PRZblX.es.amd.js.map → popup-DQDuBLfC.es.amd.js.map} +1 -1
  35. package/.chunks/{popup-q1PRZblX.es.js → popup-DQDuBLfC.es.js} +3 -3
  36. package/.chunks/{popup-q1PRZblX.es.js.map → popup-DQDuBLfC.es.js.map} +1 -1
  37. package/.chunks/{utils-Dy_MqCAH.es.amd.js → utils-CpxXlmWP.es.amd.js} +2 -2
  38. package/.chunks/{utils-Dy_MqCAH.es.amd.js.map → utils-CpxXlmWP.es.amd.js.map} +1 -1
  39. package/.chunks/{utils-Dy_MqCAH.es.js → utils-CpxXlmWP.es.js} +2 -2
  40. package/.chunks/utils-CpxXlmWP.es.js.map +1 -0
  41. package/.chunks/utils-DnMJnOWz.es.amd.js +2 -0
  42. package/.chunks/utils-DnMJnOWz.es.amd.js.map +1 -0
  43. package/.chunks/{utils-BudW09A0.es.js → utils-DnMJnOWz.es.js} +5 -5
  44. package/.chunks/utils-DnMJnOWz.es.js.map +1 -0
  45. package/.chunks/{worker-F-Y1IEi2.es.amd.js → worker-C6E8GqL6.es.amd.js} +2 -2
  46. package/.chunks/{worker-F-Y1IEi2.es.amd.js.map → worker-C6E8GqL6.es.amd.js.map} +1 -1
  47. package/.chunks/{worker-F-Y1IEi2.es.js → worker-C6E8GqL6.es.js} +3 -3
  48. package/.chunks/{worker-F-Y1IEi2.es.js.map → worker-C6E8GqL6.es.js.map} +1 -1
  49. package/assets/forms.css +1 -1
  50. package/autoload-css-manifest.amd.json +4 -4
  51. package/autoload-css-manifest.json +4 -4
  52. package/charts/charts.amd.js +1 -1
  53. package/charts/charts.amd.js.map +1 -1
  54. package/charts/charts.js +1 -1
  55. package/core/app.amd.js +1 -1
  56. package/core/app.amd.js.map +1 -1
  57. package/core/app.js +3 -3
  58. package/dialog/dialog.amd.js +1 -1
  59. package/dialog/dialog.amd.js.map +1 -1
  60. package/dialog/dialog.js +2 -2
  61. package/forms/forms.amd.js +1 -1
  62. package/forms/forms.amd.js.map +1 -1
  63. package/forms/forms.js +1 -1
  64. package/formsExt/formsExt.amd.js +1 -1
  65. package/formsExt/formsExt.amd.js.map +1 -1
  66. package/formsExt/formsExt.js +1 -1
  67. package/layout/layout.amd.js +1 -1
  68. package/layout/layout.amd.js.map +1 -1
  69. package/layout/layout.js +1 -1
  70. package/package.json +1 -1
  71. package/popup/popup.amd.js +1 -1
  72. package/popup/popup.amd.js.map +1 -1
  73. package/popup/popup.js +1 -1
  74. package/popup/worker.amd.js +1 -1
  75. package/popup/worker.amd.js.map +1 -1
  76. package/popup/worker.js +1 -1
  77. package/project/project.amd.js +1 -1
  78. package/project/project.amd.js.map +1 -1
  79. package/project/project.js +16 -14
  80. package/project/project.js.map +1 -1
  81. package/schedule/schedule.amd.js +1 -1
  82. package/schedule/schedule.amd.js.map +1 -1
  83. package/schedule/schedule.js +2 -2
  84. package/src/components/dialog/dialog/page/types.d.ts +10 -0
  85. package/src/components/project/regionSelector/types.d.ts +4 -0
  86. package/src/core/core/core.d.ts +17 -0
  87. package/src/core/core/options.d.ts +4 -0
  88. package/src/core/plugins/core.d.ts +1 -1
  89. package/tabsView/tabsView.amd.js +1 -1
  90. package/tabsView/tabsView.amd.js.map +1 -1
  91. package/tabsView/tabsView.js +2 -2
  92. package/utils/clipboard.amd.js +1 -1
  93. package/utils/clipboard.amd.js.map +1 -1
  94. package/utils/clipboard.js +1 -1
  95. package/utils/date.amd.js +1 -1
  96. package/utils/date.amd.js.map +1 -1
  97. package/utils/date.js +1 -1
  98. package/utils/device.amd.js +1 -1
  99. package/utils/device.amd.js.map +1 -1
  100. package/utils/device.js +1 -1
  101. package/utils/lodash.amd.js +1 -1
  102. package/utils/lodash.amd.js.map +1 -1
  103. package/utils/lodash.js +1 -1
  104. package/utils/price.amd.js +1 -1
  105. package/utils/price.amd.js.map +1 -1
  106. package/utils/price.js +1 -1
  107. package/utils/string.amd.js +1 -1
  108. package/utils/string.amd.js.map +1 -1
  109. package/utils/string.js +1 -1
  110. package/.chunks/app-2jFVHyen.es.amd.js.map +0 -1
  111. package/.chunks/app-2jFVHyen.es.js.map +0 -1
  112. package/.chunks/dialog-BKJg54Dh.es.amd.js +0 -2
  113. package/.chunks/dialog-BKJg54Dh.es.amd.js.map +0 -1
  114. package/.chunks/dialog-BKJg54Dh.es.js.map +0 -1
  115. package/.chunks/dialog_regionSelectorRegions-Dq81iORJ.es.amd.js +0 -2
  116. package/.chunks/dialog_regionSelectorRegions-Dq81iORJ.es.amd.js.map +0 -1
  117. package/.chunks/dialog_regionSelectorRegions-Dq81iORJ.es.js.map +0 -1
  118. package/.chunks/forms-CjJD60m3.es.amd.js +0 -2
  119. package/.chunks/forms-CjJD60m3.es.amd.js.map +0 -1
  120. package/.chunks/forms-CjJD60m3.es.js.map +0 -1
  121. package/.chunks/utils-BudW09A0.es.amd.js +0 -2
  122. package/.chunks/utils-BudW09A0.es.amd.js.map +0 -1
  123. package/.chunks/utils-BudW09A0.es.js.map +0 -1
  124. package/.chunks/utils-Dy_MqCAH.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker-CpnGeB5y.es.js","names":[],"sources":["../../src/components/forms/inputDate/datepicker.css?inline","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["/* ui-datepicker */\n.ui-datepicker {\n\t--datepicker-day-color: var(--color-layout-front-1);\n\t--datepicker-day-color-hover: var(--color-layer-1);\n\t--datepicker-selected-color: var(--color-bg-primary-1);\n\t--datepicker-selected-color-hover: var(--color-bg-primary-2);\n\t--datepicker-range-color: var(--color-layer-primary-1);\n\t--datepicker-range-color-hover: var(--color-layer-primary-2);\n\n\tuser-select: none;\n\twidth: auto;\n\tpadding: 0;\n}\n\n.ui-datepicker:before,\n.ui-datepicker:after {\n\tdisplay: none;\n}\n\n/* на странице */\n.ui-datepicker-inline {\n\tdisplay: inline-block !important;\n}\n\n/* в popup */\n.ui-datepicker:not(.ui-datepicker-inline) {\n\tborder-radius: 8px;\n\tbackground: var(--color-layout-front-1);\n\tbox-shadow: var(--top-shadow);\n\tz-index: 10000000 !important;\n\tpadding: 8px;\n}\n\n.ui-datepicker a {\n\ttext-decoration: none !important;\n}\n\n.ui-datepicker option {\n\tcolor: var(--color-text-1);\n\tfont-size: 14px;\n}\n\n.ui-datepicker-header {\n\tpadding: 0 !important;\n\tmargin: 0 0 18px 0;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.ui-datepicker-header > * {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.ui-datepicker-title {\n\twidth: 100% !important;\n\theight: 24px;\n\tmargin: 0 !important;\n}\n\n.ui-datepicker-month,\n.ui-datepicker-year {\n\toutline: none !important;\n\twidth: auto !important;\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0 6px !important;\n\ttext-align: center;\n\tfont-size: 16px !important;\n}\n\n.ui-datepicker-month {\n\tcolor: var(--color-text-1);\n}\n\n.ui-datepicker-year {\n\tcolor: var(--color-text-2);\n}\n\n/*\tselect.ui-datepicker-month,\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\nselect.ui-datepicker-month,\nselect.ui-datepicker-year {\n\tcursor: pointer;\n}\n\n.ui-datepicker-prev,\n.ui-datepicker-next {\n\tcursor: pointer;\n\twidth: 24px !important;\n\theight: 24px !important;\n\tfont-size: 24px;\n\tfont-family: \"Topvisor-2\";\n\tposition: static !important;\n}\n\n.ui-datepicker-prev:before {\n\tcolor: var(--color-text-3);\n\tcontent: \"\";\n}\n\n.ui-datepicker-prev-hover:before {\n\tcolor: var(--color-text-1);\n\tcontent: \"\";\n}\n\n.ui-datepicker-next {\n\tcolor: var(--color-text-3);\n\torder: 1;\n}\n\n.ui-datepicker-next-hover {\n\tcolor: var(--color-text-1);\n\torder: 1;\n}\n\n.ui-datepicker-next:before {\n\tcontent: \"\";\n}\n\n.ui-datepicker-prev > *,\n.ui-datepicker-next > * {\n\tdisplay: none !important;\n}\n\n.ui-datepicker thead th {\n\twidth: auto !important;\n\tpadding: 0 !important;\n\tcolor: var(--color-text-3);\n\tfont-size: 14px;\n\tfont-weight: 400 !important;\n}\n\n.ui-datepicker table {\n\tmargin: 0 !important;\n\tfont-size: 14px;\n}\n\n.ui-datepicker td {\n\tcolor: var(--color-text-1);\n\tbackground: none;\n\tpadding: 0 !important;\n}\n\n.ui-datepicker td span,\n.ui-datepicker td a {\n\tborder-radius: 8px;\n\tborder: none;\n\tmin-width: 32px;\n\theight: 32px;\n\tpadding: 0;\n\tmargin: 1px;\n\tcolor: var(--color-text-1) !important;\n\tline-height: 32px;\n\ttext-align: center;\n\tposition: relative;\n\tdisplay: block;\n}\n\n/* обычные даты */\n.ui-datepicker td a {\n\tbackground: var(--datepicker-day-color);\n}\n\n.ui-datepicker td a:hover {\n\tbackground: var(--datepicker-day-color-hover);\n}\n\n/* текущий день */\ntd.ui-datepicker-today span,\ntd.ui-datepicker-today a {\n\tbackground: none;\n\tposition: relative;\n}\n\n/* выбранные даты */\n.ui-datepicker td.selected a {\n\tbackground: var(--datepicker-range-color);\n\tpadding-right: 0;\n\tpadding-left: 1px;\n\tmargin-right: 1px;\n\tmargin-left: 0;\n}\n\n.ui-datepicker td.selected a:hover {\n\tbackground: var(--datepicker-range-color-hover);\n}\n\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\n\tborder-top-left-radius: 0;\n\tborder-bottom-left-radius: 0;\n\tpadding-left: 1px;\n\tmargin-left: 0;\n}\n\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n\tpadding-right: 1px;\n\tmargin-right: 0;\n}\n\n.ui-datepicker td.selected-start a,\n.ui-datepicker td.selected-end a,\n.ui-datepicker td.ui-datepicker-current-day a {\n\tbackground: var(--datepicker-selected-color);\n\tcolor: #FFF !important;\n}\n\n.ui-datepicker td.selected-start a:hover,\n.ui-datepicker td.selected-end a:hover,\n.ui-datepicker td.ui-datepicker-current-day a:hover {\n\tbackground: var(--datepicker-selected-color-hover);\n}\n\n.ui-datepicker-day-marks {\n\tline-height: normal;\n\tposition: absolute;\n\tright: 0;\n\tbottom: 3px;\n\tleft: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.ui-datepicker-day-marks > i {\n\tborder-radius: 50%;\n\tborder: 1px solid #FFF;\n\twidth: 4px;\n\theight: 4px;\n\tmargin: 0 2px;\n}\n\n.ui-datepicker-day-marks-exists {\n\tbackground: var(--color-text-primary);\n}\n\n.ui-datepicker-day-marks-update {\n\tbackground: var(--color-text-negative);\n}\n\n.ui-datepicker-row-break {\n\tdisplay: none;\n}\n","import { toRef, watch } from 'vue';\nimport Core from '@/core/core/core';\nimport { dateFormat } from '@/core/utils/date';\n\nimport css from '@/components/forms/inputDate/datepicker.css?inline';\n\nCore.insertStyleToPage(css);\n\nconst $ = (el: HTMLInputElement) => {\n\tif (!Core.$?.ui?.datepicker) {\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\n\n\t\treturn;\n\t}\n\n\tCore.$.datepicker.setDefaults({\n\t\tdateFormat: Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd'),\n\t});\n\n\treturn Core.$(el);\n};\n\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\n\treturn $(el)?.datepicker(options);\n}\n\nlet dateFormatted;\nlet delimiter: string;\nlet dateNumbersCount: number;\nlet delimitersIndexes: number[];\n\nwatch(toRef(Core.state.dateFormat), () => {\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\n\tdateFormatted = dateFormat('2000-01-01');\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\n\tdelimitersIndexes = [];\n\n\tfor (let i = 0; i < dateFormatted.length; i++) {\n\t\tif (dateFormatted[i] === delimiter) {\n\t\t\tdelimitersIndexes.push(i);\n\t\t}\n\t}\n}, { immediate: true });\n\n/**\n * Автоформат при вводе в поле с датой\n */\nexport function oninput(e: any) {\n\tlet selectionPos = e.target.selectionEnd;\n\tlet value = e.target.value;\n\n\t// разбить занчение на две половины - до и после каретки\n\t// удалить все символы, кроме цифр\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\n\n\tconst extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\n\tif (extraNumbersCount > 0) {\n\t\t// // количество цифр больше требуемого - удалить лишние\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\n\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\n\t} else if (extraNumbersCount < 0) {\n\t\t// количество цифр меньше требуемого - добавить 0\n\t\tif (e.inputType === 'deleteContentForward') {\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\n\t\t} else {\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\n\t\t}\n\t}\n\n\tselectionPos = valueChunkLeft.length;\n\tvalue = valueChunkLeft + valueChunkRight;\n\n\t// вставить разделители\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\n\t\tconst delimiterIndex = delimitersIndexes[i];\n\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\n\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\n\t\tif (selectionPos >= delimiterIndex) {\n\t\t\tselectionPos++;\n\t\t}\n\t}\n\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\n\t\tselectionPos--;\n\t}\n\n\t// если значение изменилось - вставить его и переместить каретку\n\tif (value !== e.target.value) {\n\t\te.target.value = value;\n\t\te.target.selectionStart = selectionPos;\n\t\te.target.selectionEnd = selectionPos;\n\t}\n}\n"],"mappings":";;;;ACMA,EAAK,kBAAkB,02HAAG;AAE1B,IAAM,KAAK,MAAyB;CACnC,IAAI,CAAC,EAAK,GAAG,IAAI,YAAY;EAC5B,QAAQ,KAAK,0EAA0E;EAEvF;CACD;CAMA,OAJA,EAAK,EAAE,WAAW,YAAY,EAC7B,YAAY,EAAK,MAAM,WAAW,YAAY,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EACxG,CAAC,GAEM,EAAK,EAAE,CAAE;AACjB;AAEA,SAAgB,EAAkB,GAAsB,GAAc;CACrE,OAAO,EAAE,CAAE,CAAC,EAAE,WAAW,CAAO;AACjC;AAEA,IAAI,GACA,GACA,GACA;AAEJ,EAAM,EAAM,EAAK,MAAM,UAAU,SAAS;CAKzC,AAHA,IAAgB,EAAW,YAAY,GACvC,IAAY,EAAc,MAAM,IAAI,CAAC,GAAG,MAAM,KAC9C,IAAmB,EAAc,QAAQ,QAAQ,EAAE,CAAC,CAAC,QACrD,IAAoB,CAAC;CAErB,KAAK,IAAI,IAAI,GAAG,IAAI,EAAc,QAAQ,KACzC,AAAI,EAAc,OAAO,KACxB,EAAkB,KAAK,CAAC;AAG3B,GAAG,EAAE,WAAW,GAAK,CAAC;AAKtB,SAAgB,EAAQ,GAAQ;CAC/B,IAAI,IAAe,EAAE,OAAO,cACxB,IAAQ,EAAE,OAAO,OAIjB,IAAiB,EAAM,UAAU,GAAG,CAAY,CAAC,CAAC,QAAQ,QAAQ,EAAE,GACpE,IAAkB,EAAM,UAAU,CAAY,CAAC,CAAC,QAAQ,QAAQ,EAAE,GAEhE,IAAoB,EAAe,SAAS,EAAgB,SAAS;CAC3E,IAAI,IAAoB,GAAG;EAE1B,IAAiB,EAAe,UAAU,GAAG,CAAgB;EAE7D,IAAM,IAA2B,IAAmB,EAAe;EACnE,IAAkB,EAAgB,UAAU,EAAgB,SAAS,CAAwB;CAC9F,OAAO,AAAI,IAAoB,MAE1B,EAAE,cAAc,yBAEnB,KAAkB,IAAI,OAAO,CAAC,CAAiB,IAE/C,IAAkB,IAAI,OAAO,CAAC,CAAiB,IAAI;CAKrD,AADA,IAAe,EAAe,QAC9B,IAAQ,IAAiB;CAGzB,KAAK,IAAI,IAAI,GAAG,IAAI,EAAkB,QAAQ,KAAK;EAClD,IAAM,IAAiB,EAAkB;EAKzC,AAHA,IAAQ,EAAM,UAAU,GAAG,CAAc,IAAI,IAAY,EAAM,UAAU,CAAc,GAGnF,KAAgB,KACnB;CAEF;CAQA,AALI,EAAE,cAAc,2BAA2B,EAAM,IAAe,OAAO,KAC1E,KAIG,MAAU,EAAE,OAAO,UACtB,EAAE,OAAO,QAAQ,GACjB,EAAE,OAAO,iBAAiB,GAC1B,EAAE,OAAO,eAAe;AAE1B"}
1
+ {"version":3,"file":"datepicker-DtdAe-rf.es.js","names":[],"sources":["../../src/components/forms/inputDate/datepicker.css?inline","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["/* ui-datepicker */\n.ui-datepicker {\n\t--datepicker-day-color: var(--color-layout-front-1);\n\t--datepicker-day-color-hover: var(--color-layer-1);\n\t--datepicker-selected-color: var(--color-bg-primary-1);\n\t--datepicker-selected-color-hover: var(--color-bg-primary-2);\n\t--datepicker-range-color: var(--color-layer-primary-1);\n\t--datepicker-range-color-hover: var(--color-layer-primary-2);\n\n\tuser-select: none;\n\twidth: auto;\n\tpadding: 0;\n}\n\n.ui-datepicker:before,\n.ui-datepicker:after {\n\tdisplay: none;\n}\n\n/* на странице */\n.ui-datepicker-inline {\n\tdisplay: inline-block !important;\n}\n\n/* в popup */\n.ui-datepicker:not(.ui-datepicker-inline) {\n\tborder-radius: 8px;\n\tbackground: var(--color-layout-front-1);\n\tbox-shadow: var(--top-shadow);\n\tz-index: 10000000 !important;\n\tpadding: 8px;\n}\n\n.ui-datepicker a {\n\ttext-decoration: none !important;\n}\n\n.ui-datepicker option {\n\tcolor: var(--color-text-1);\n\tfont-size: 14px;\n}\n\n.ui-datepicker-header {\n\tpadding: 0 !important;\n\tmargin: 0 0 18px 0;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.ui-datepicker-header > * {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.ui-datepicker-title {\n\twidth: 100% !important;\n\theight: 24px;\n\tmargin: 0 !important;\n}\n\n.ui-datepicker-month,\n.ui-datepicker-year {\n\toutline: none !important;\n\twidth: auto !important;\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0 6px !important;\n\ttext-align: center;\n\tfont-size: 16px !important;\n}\n\n.ui-datepicker-month {\n\tcolor: var(--color-text-1);\n}\n\n.ui-datepicker-year {\n\tcolor: var(--color-text-2);\n}\n\n/*\tselect.ui-datepicker-month,\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\nselect.ui-datepicker-month,\nselect.ui-datepicker-year {\n\tcursor: pointer;\n}\n\n.ui-datepicker-prev,\n.ui-datepicker-next {\n\tcursor: pointer;\n\twidth: 24px !important;\n\theight: 24px !important;\n\tfont-size: 24px;\n\tfont-family: \"Topvisor-2\";\n\tposition: static !important;\n}\n\n.ui-datepicker-prev:before {\n\tcolor: var(--color-text-3);\n\tcontent: \"\";\n}\n\n.ui-datepicker-prev-hover:before {\n\tcolor: var(--color-text-1);\n\tcontent: \"\";\n}\n\n.ui-datepicker-next {\n\tcolor: var(--color-text-3);\n\torder: 1;\n}\n\n.ui-datepicker-next-hover {\n\tcolor: var(--color-text-1);\n\torder: 1;\n}\n\n.ui-datepicker-next:before {\n\tcontent: \"\";\n}\n\n.ui-datepicker-prev > *,\n.ui-datepicker-next > * {\n\tdisplay: none !important;\n}\n\n.ui-datepicker thead th {\n\twidth: auto !important;\n\tpadding: 0 !important;\n\tcolor: var(--color-text-3);\n\tfont-size: 14px;\n\tfont-weight: 400 !important;\n}\n\n.ui-datepicker table {\n\tmargin: 0 !important;\n\tfont-size: 14px;\n}\n\n.ui-datepicker td {\n\tcolor: var(--color-text-1);\n\tbackground: none;\n\tpadding: 0 !important;\n}\n\n.ui-datepicker td span,\n.ui-datepicker td a {\n\tborder-radius: 8px;\n\tborder: none;\n\tmin-width: 32px;\n\theight: 32px;\n\tpadding: 0;\n\tmargin: 1px;\n\tcolor: var(--color-text-1) !important;\n\tline-height: 32px;\n\ttext-align: center;\n\tposition: relative;\n\tdisplay: block;\n}\n\n/* обычные даты */\n.ui-datepicker td a {\n\tbackground: var(--datepicker-day-color);\n}\n\n.ui-datepicker td a:hover {\n\tbackground: var(--datepicker-day-color-hover);\n}\n\n/* текущий день */\ntd.ui-datepicker-today span,\ntd.ui-datepicker-today a {\n\tbackground: none;\n\tposition: relative;\n}\n\n/* выбранные даты */\n.ui-datepicker td.selected a {\n\tbackground: var(--datepicker-range-color);\n\tpadding-right: 0;\n\tpadding-left: 1px;\n\tmargin-right: 1px;\n\tmargin-left: 0;\n}\n\n.ui-datepicker td.selected a:hover {\n\tbackground: var(--datepicker-range-color-hover);\n}\n\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\n\tborder-top-left-radius: 0;\n\tborder-bottom-left-radius: 0;\n\tpadding-left: 1px;\n\tmargin-left: 0;\n}\n\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n\tpadding-right: 1px;\n\tmargin-right: 0;\n}\n\n.ui-datepicker td.selected-start a,\n.ui-datepicker td.selected-end a,\n.ui-datepicker td.ui-datepicker-current-day a {\n\tbackground: var(--datepicker-selected-color);\n\tcolor: #FFF !important;\n}\n\n.ui-datepicker td.selected-start a:hover,\n.ui-datepicker td.selected-end a:hover,\n.ui-datepicker td.ui-datepicker-current-day a:hover {\n\tbackground: var(--datepicker-selected-color-hover);\n}\n\n.ui-datepicker-day-marks {\n\tline-height: normal;\n\tposition: absolute;\n\tright: 0;\n\tbottom: 3px;\n\tleft: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.ui-datepicker-day-marks > i {\n\tborder-radius: 50%;\n\tborder: 1px solid #FFF;\n\twidth: 4px;\n\theight: 4px;\n\tmargin: 0 2px;\n}\n\n.ui-datepicker-day-marks-exists {\n\tbackground: var(--color-text-primary);\n}\n\n.ui-datepicker-day-marks-update {\n\tbackground: var(--color-text-negative);\n}\n\n.ui-datepicker-row-break {\n\tdisplay: none;\n}\n","import { toRef, watch } from 'vue';\nimport Core from '@/core/core/core';\nimport { dateFormat } from '@/core/utils/date';\n\nimport css from '@/components/forms/inputDate/datepicker.css?inline';\n\nCore.insertStyleToPage(css);\n\nconst $ = (el: HTMLInputElement) => {\n\tif (!Core.$?.ui?.datepicker) {\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\n\n\t\treturn;\n\t}\n\n\tCore.$.datepicker.setDefaults({\n\t\tdateFormat: Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd'),\n\t});\n\n\treturn Core.$(el);\n};\n\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\n\treturn $(el)?.datepicker(options);\n}\n\nlet dateFormatted;\nlet delimiter: string;\nlet dateNumbersCount: number;\nlet delimitersIndexes: number[];\n\nwatch(toRef(Core.state.dateFormat), () => {\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\n\tdateFormatted = dateFormat('2000-01-01');\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\n\tdelimitersIndexes = [];\n\n\tfor (let i = 0; i < dateFormatted.length; i++) {\n\t\tif (dateFormatted[i] === delimiter) {\n\t\t\tdelimitersIndexes.push(i);\n\t\t}\n\t}\n}, { immediate: true });\n\n/**\n * Автоформат при вводе в поле с датой\n */\nexport function oninput(e: any) {\n\tlet selectionPos = e.target.selectionEnd;\n\tlet value = e.target.value;\n\n\t// разбить занчение на две половины - до и после каретки\n\t// удалить все символы, кроме цифр\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\n\n\tconst extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\n\tif (extraNumbersCount > 0) {\n\t\t// // количество цифр больше требуемого - удалить лишние\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\n\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\n\t} else if (extraNumbersCount < 0) {\n\t\t// количество цифр меньше требуемого - добавить 0\n\t\tif (e.inputType === 'deleteContentForward') {\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\n\t\t} else {\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\n\t\t}\n\t}\n\n\tselectionPos = valueChunkLeft.length;\n\tvalue = valueChunkLeft + valueChunkRight;\n\n\t// вставить разделители\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\n\t\tconst delimiterIndex = delimitersIndexes[i];\n\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\n\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\n\t\tif (selectionPos >= delimiterIndex) {\n\t\t\tselectionPos++;\n\t\t}\n\t}\n\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\n\t\tselectionPos--;\n\t}\n\n\t// если значение изменилось - вставить его и переместить каретку\n\tif (value !== e.target.value) {\n\t\te.target.value = value;\n\t\te.target.selectionStart = selectionPos;\n\t\te.target.selectionEnd = selectionPos;\n\t}\n}\n"],"mappings":";;;;ACMA,EAAK,kBAAkB,02HAAG;AAE1B,IAAM,KAAK,MAAyB;CACnC,IAAI,CAAC,EAAK,GAAG,IAAI,YAAY;EAC5B,QAAQ,KAAK,0EAA0E;EAEvF;CACD;CAMA,OAJA,EAAK,EAAE,WAAW,YAAY,EAC7B,YAAY,EAAK,MAAM,WAAW,YAAY,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EACxG,CAAC,GAEM,EAAK,EAAE,CAAE;AACjB;AAEA,SAAgB,EAAkB,GAAsB,GAAc;CACrE,OAAO,EAAE,CAAE,CAAC,EAAE,WAAW,CAAO;AACjC;AAEA,IAAI,GACA,GACA,GACA;AAEJ,EAAM,EAAM,EAAK,MAAM,UAAU,SAAS;CAKzC,AAHA,IAAgB,EAAW,YAAY,GACvC,IAAY,EAAc,MAAM,IAAI,CAAC,GAAG,MAAM,KAC9C,IAAmB,EAAc,QAAQ,QAAQ,EAAE,CAAC,CAAC,QACrD,IAAoB,CAAC;CAErB,KAAK,IAAI,IAAI,GAAG,IAAI,EAAc,QAAQ,KACzC,AAAI,EAAc,OAAO,KACxB,EAAkB,KAAK,CAAC;AAG3B,GAAG,EAAE,WAAW,GAAK,CAAC;AAKtB,SAAgB,EAAQ,GAAQ;CAC/B,IAAI,IAAe,EAAE,OAAO,cACxB,IAAQ,EAAE,OAAO,OAIjB,IAAiB,EAAM,UAAU,GAAG,CAAY,CAAC,CAAC,QAAQ,QAAQ,EAAE,GACpE,IAAkB,EAAM,UAAU,CAAY,CAAC,CAAC,QAAQ,QAAQ,EAAE,GAEhE,IAAoB,EAAe,SAAS,EAAgB,SAAS;CAC3E,IAAI,IAAoB,GAAG;EAE1B,IAAiB,EAAe,UAAU,GAAG,CAAgB;EAE7D,IAAM,IAA2B,IAAmB,EAAe;EACnE,IAAkB,EAAgB,UAAU,EAAgB,SAAS,CAAwB;CAC9F,OAAO,AAAI,IAAoB,MAE1B,EAAE,cAAc,yBAEnB,KAAkB,IAAI,OAAO,CAAC,CAAiB,IAE/C,IAAkB,IAAI,OAAO,CAAC,CAAiB,IAAI;CAKrD,AADA,IAAe,EAAe,QAC9B,IAAQ,IAAiB;CAGzB,KAAK,IAAI,IAAI,GAAG,IAAI,EAAkB,QAAQ,KAAK;EAClD,IAAM,IAAiB,EAAkB;EAKzC,AAHA,IAAQ,EAAM,UAAU,GAAG,CAAc,IAAI,IAAY,EAAM,UAAU,CAAc,GAGnF,KAAgB,KACnB;CAEF;CAQA,AALI,EAAE,cAAc,2BAA2B,EAAM,IAAe,OAAO,KAC1E,KAIG,MAAU,EAAE,OAAO,UACtB,EAAE,OAAO,QAAQ,GACjB,EAAE,OAAO,iBAAiB,GAC1B,EAAE,OAAO,eAAe;AAE1B"}
@@ -0,0 +1,2 @@
1
+ define([`require`,`exports`,`./forms-DrY7Q_VD.es.amd`,`./utils-CpxXlmWP.es.amd`,`vue`],function(e,t,n,r,i){"use strict";if(a===void 0)var a=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.t=t.r=t.n=void 0;var o={key:0,style:{display:`none`}},s=[`data-order`,`data-view-page`],c={class:`modal-header`},l={class:`top-title`},u={class:`buttons`},d=[`title`],f=[`title`],p=[`data-order`,`data-view-page`],m={class:`modal-body`},h=(0,i.defineComponent)({__name:`page`,props:{isLoading:{type:Boolean},name:{},order:{default:0},prevName:{},footerFullWith:{type:Boolean},helpUrl:{},helpTitle:{}},setup(e,{slots:t}){let a=e,h=(0,r.r)(),g=(0,i.computed)(()=>({active:h.pageActive?.value===a.name,"i-load-data":a.isLoading||h.isLoadingPage.value}));return(r,a)=>{let _=(0,i.resolveComponent)(`TopButton`),v=(0,i.resolveDirective)(`top-scroll-shadow`);return(0,i.unref)(h).isReady.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,o,[((0,i.openBlock)(),(0,i.createBlock)(i.Teleport,{to:`#`+(0,i.unref)(h).idAttr+` .modal-layer-header`,disabled:!(0,i.unref)(h).needShowPage(e.name)},[(0,i.createElementVNode)(`div`,{"data-order":e.order,"data-view-page":e.name,class:(0,i.normalizeClass)(g.value)},[(0,i.createElementVNode)(`div`,c,[(0,i.createElementVNode)(`div`,l,[(0,i.renderSlot)(r.$slots,`header`)]),(0,i.createElementVNode)(`div`,u,[(0,i.renderSlot)(r.$slots,`headerButtons`),e.helpUrl?((0,i.openBlock)(),(0,i.createBlock)(_,{key:0,title:e.helpTitle??r.$i18n.Common.How_to_use,href:e.helpUrl,color:`theme`,icon:``},null,8,[`title`,`href`])):(0,i.createCommentVNode)(``,!0)]),(0,i.unref)(n.O).state.isMobile&&e.prevName?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:`close`,title:r.$i18n.Common.Back,"data-top-icon":``,onClick:a[0]||=t=>(0,i.unref)(h).open(e.prevName)},null,8,d)):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:1,class:`close`,title:r.$i18n.Common.Close,"data-top-icon":``,"data-action":`top-dialog-close`},null,8,f))])],10,s)],8,[`to`,`disabled`])),((0,i.openBlock)(),(0,i.createBlock)(i.Teleport,{to:`#`+(0,i.unref)(h).idAttr+` .modal-layer-body`,disabled:!(0,i.unref)(h).needShowPage(e.name)},[(0,i.createElementVNode)(`div`,{"data-order":e.order,"data-view-page":e.name,class:(0,i.normalizeClass)([`has_scroll_container`,g.value]),style:(0,i.normalizeStyle)({"--top-dialog-footer-height":t.footer?void 0:`0px`})},[(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`div`,m,[(0,i.renderSlot)(r.$slots,`body`)])),[[v]]),t.footer?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:(0,i.normalizeClass)([`modal-footer`,{"modal-footer-fullWith":e.footerFullWith}])},[(0,i.renderSlot)(r.$slots,`footer`)],2)):(0,i.createCommentVNode)(``,!0)],14,p)],8,[`to`,`disabled`]))])):(0,i.createCommentVNode)(``,!0)}}}),g={name:{type:String,required:!0},order:{type:Number,required:!0},prevName:String,footerFullWith:Boolean,helpUrl:String,helpTitle:String},_=(0,i.defineComponent)({__name:`pageComponent`,props:{component:{},keepAlive:{type:Boolean,default:!0},props:{},name:{},order:{},prevName:{},footerFullWith:{type:Boolean},helpUrl:{},helpTitle:{}},setup(e){let t=e,n=(0,r.r)(),a=(e,r)=>{if(!r.value){if(e.name!==`AsyncComponentWrapper`){r.value=!0;return}n.needShowPage(t.name)&&(n.isLoadingPage.value=!0,e.__asyncResolved&&(r.value=!0,n.isLoadingPage.value=!1))}};if(t.component.name===`AsyncComponentWrapper`){let e=(0,i.ref)(!1);(0,i.onUpdated)(()=>{a(t.component,e)})}return(r,a)=>((0,i.openBlock)(),(0,i.createBlock)(i.KeepAlive,{include:e.keepAlive?``:`none`},[(0,i.unref)(n).needShowPage(e.name)?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e.component),(0,i.mergeProps)({key:0},t,{name:e.name,order:e.order,prevName:e.prevName}),null,16,[`name`,`order`,`prevName`])):(0,i.createCommentVNode)(``,!0)],1032,[`include`]))}});t.r=h,t.n=g,t.t=_});
2
+ //# sourceMappingURL=dialog-WEQO33BZ.es.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[".chunks/dialog-WEQO33BZ.es.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","S","C","w","T","E","D","O","k","A","j","vue_1","l","u","n","p","utils_CpxXlmWP_es_js_1","h","y","t","forms_DrY7Q_VD_es_js_1","M","N","r","i","s"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-DrY7Q_VD.es.js\", \"./utils-CpxXlmWP.es.js\", \"vue\"], function (require, exports, forms_DrY7Q_VD_es_js_1, utils_CpxXlmWP_es_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 S = {\n key: 0,\n style: { display: \"none\" }\n }, C = [\"data-order\", \"data-view-page\"], w = { class: \"modal-header\" }, T = { class: \"top-title\" }, E = { class: \"buttons\" }, D = [\"title\"], O = [\"title\"], k = [\"data-order\", \"data-view-page\"], A = { class: \"modal-body\" }, j = /* @__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 helpUrl: {},\n helpTitle: {}\n },\n setup(n, { slots: l }) {\n let u = n, p = (0, utils_CpxXlmWP_es_js_1.r)(), h = (0, vue_1.computed)(() => ({\n active: p.pageActive?.value === u.name,\n \"i-load-data\": u.isLoading || p.isLoadingPage.value\n }));\n return (t, i) => {\n let u = (0, vue_1.resolveComponent)(\"TopButton\"), y = (0, vue_1.resolveDirective)(\"top-scroll-shadow\");\n return (0, vue_1.unref)(p).isReady.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", S, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(p).idAttr + \" .modal-layer-header\",\n disabled: !(0, vue_1.unref)(p).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)(h.value)\n }, [(0, vue_1.createElementVNode)(\"div\", w, [\n (0, vue_1.createElementVNode)(\"div\", T, [(0, vue_1.renderSlot)(t.$slots, \"header\")]),\n (0, vue_1.createElementVNode)(\"div\", E, [(0, vue_1.renderSlot)(t.$slots, \"headerButtons\"), n.helpUrl ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(u, {\n key: 0,\n title: n.helpTitle ?? t.$i18n.Common.How_to_use,\n href: n.helpUrl,\n color: \"theme\",\n icon: \"\"\n }, null, 8, [\"title\", \"href\"])) : (0, vue_1.createCommentVNode)(\"\", !0)]),\n (0, vue_1.unref)(forms_DrY7Q_VD_es_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)(p).open(n.prevName)\n }, null, 8, D)) : ((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, O))\n ])], 10, C)], 8, [\"to\", \"disabled\"])), ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(p).idAttr + \" .modal-layer-body\",\n disabled: !(0, vue_1.unref)(p).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\", h.value]),\n style: (0, vue_1.normalizeStyle)({ \"--top-dialog-footer-height\": l.footer ? void 0 : \"0px\" })\n }, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", A, [(0, vue_1.renderSlot)(t.$slots, \"body\")])), [[y]]), l.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, k)], 8, [\"to\", \"disabled\"]))])) : (0, vue_1.createCommentVNode)(\"\", !0);\n };\n }\n }), M = {\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 helpUrl: String,\n helpTitle: String\n }, N = /* @__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 helpUrl: {},\n helpTitle: {}\n },\n setup(e) {\n let r = e, i = (0, utils_CpxXlmWP_es_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 = j;\n exports.n = M;\n exports.t = N;\n});\n//# sourceMappingURL=dialog-WEQO33BZ.es.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\n\t\t\t\t\t\t<TopButton\n\t\t\t\t\t\t\tv-if=\"helpUrl\"\n\t\t\t\t\t\t\t:title=\"helpTitle ?? $i18n.Common.How_to_use\"\n\t\t\t\t\t\t\t:href=\"helpUrl\"\n\t\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\t\ticon=\"\"\n\t\t\t\t\t\t/>\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\t/**\n\t * Ссылка на страницу справки\n\t */\n\thelpUrl?: string,\n\n\t/**\n\t * title кнопки открытия справки\n\t */\n\thelpTitle?: string,\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\thelpUrl: String,\n\n\thelpTitle: String,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: Record<string, unknown>): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: Record<string, unknown>): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: Record<string, unknown>): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: Record<string, unknown>): 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,18 +1,20 @@
1
- import { O as e } from "./forms-CjJD60m3.es.js";
2
- import { r as t } from "./utils-Dy_MqCAH.es.js";
3
- 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";
1
+ import { O as e } from "./forms-DrY7Q_VD.es.js";
2
+ import { r as t } from "./utils-CpxXlmWP.es.js";
3
+ 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, resolveComponent as _, resolveDirective as v, resolveDynamicComponent as y, unref as b, withDirectives as x } from "vue";
4
4
  //#region src/components/dialog/dialog/page/page.vue?vue&type=script&setup=true&lang.ts
5
- var x = {
5
+ var S = {
6
6
  key: 0,
7
7
  style: { display: "none" }
8
- }, 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__ */ l({
8
+ }, C = ["data-order", "data-view-page"], w = { class: "modal-header" }, T = { class: "top-title" }, E = { class: "buttons" }, D = ["title"], O = ["title"], k = ["data-order", "data-view-page"], A = { class: "modal-body" }, j = /* @__PURE__ */ l({
9
9
  __name: "page",
10
10
  props: {
11
11
  isLoading: { type: Boolean },
12
12
  name: {},
13
13
  order: { default: 0 },
14
14
  prevName: {},
15
- footerFullWith: { type: Boolean }
15
+ footerFullWith: { type: Boolean },
16
+ helpUrl: {},
17
+ helpTitle: {}
16
18
  },
17
19
  setup(n, { slots: l }) {
18
20
  let u = n, p = t(), h = i(() => ({
@@ -20,45 +22,51 @@ var x = {
20
22
  "i-load-data": u.isLoading || p.isLoadingPage.value
21
23
  }));
22
24
  return (t, i) => {
23
- let u = _("top-scroll-shadow");
24
- return y(p).isReady.value ? (m(), s("div", x, [(m(), a(r, {
25
- to: "#" + y(p).idAttr + " .modal-layer-header",
26
- disabled: !y(p).needShowPage(n.name)
25
+ let u = _("TopButton"), y = v("top-scroll-shadow");
26
+ return b(p).isReady.value ? (m(), s("div", S, [(m(), a(r, {
27
+ to: "#" + b(p).idAttr + " .modal-layer-header",
28
+ disabled: !b(p).needShowPage(n.name)
27
29
  }, [c("div", {
28
30
  "data-order": n.order,
29
31
  "data-view-page": n.name,
30
32
  class: d(h.value)
31
- }, [c("div", C, [
32
- c("div", w, [g(t.$slots, "header")]),
33
- c("div", T, [g(t.$slots, "headerButtons")]),
34
- y(e).state.isMobile && n.prevName ? (m(), s("div", {
33
+ }, [c("div", w, [
34
+ c("div", T, [g(t.$slots, "header")]),
35
+ c("div", E, [g(t.$slots, "headerButtons"), n.helpUrl ? (m(), a(u, {
36
+ key: 0,
37
+ title: n.helpTitle ?? t.$i18n.Common.How_to_use,
38
+ href: n.helpUrl,
39
+ color: "theme",
40
+ icon: ""
41
+ }, null, 8, ["title", "href"])) : o("", !0)]),
42
+ b(e).state.isMobile && n.prevName ? (m(), s("div", {
35
43
  key: 0,
36
44
  class: "close",
37
45
  title: t.$i18n.Common.Back,
38
46
  "data-top-icon": "",
39
- onClick: i[0] ||= (e) => y(p).open(n.prevName)
40
- }, null, 8, E)) : (m(), s("div", {
47
+ onClick: i[0] ||= (e) => b(p).open(n.prevName)
48
+ }, null, 8, D)) : (m(), s("div", {
41
49
  key: 1,
42
50
  class: "close",
43
51
  title: t.$i18n.Common.Close,
44
52
  "data-top-icon": "",
45
53
  "data-action": "top-dialog-close"
46
- }, null, 8, D))
47
- ])], 10, S)], 8, ["to", "disabled"])), (m(), a(r, {
48
- to: "#" + y(p).idAttr + " .modal-layer-body",
49
- disabled: !y(p).needShowPage(n.name)
54
+ }, null, 8, O))
55
+ ])], 10, C)], 8, ["to", "disabled"])), (m(), a(r, {
56
+ to: "#" + b(p).idAttr + " .modal-layer-body",
57
+ disabled: !b(p).needShowPage(n.name)
50
58
  }, [c("div", {
51
59
  "data-order": n.order,
52
60
  "data-view-page": n.name,
53
61
  class: d(["has_scroll_container", h.value]),
54
62
  style: f({ "--top-dialog-footer-height": l.footer ? void 0 : "0px" })
55
- }, [b((m(), s("div", k, [g(t.$slots, "body")])), [[u]]), l.footer ? (m(), s("div", {
63
+ }, [x((m(), s("div", A, [g(t.$slots, "body")])), [[y]]), l.footer ? (m(), s("div", {
56
64
  key: 0,
57
65
  class: d(["modal-footer", { "modal-footer-fullWith": n.footerFullWith }])
58
- }, [g(t.$slots, "footer")], 2)) : o("", !0)], 14, O)], 8, ["to", "disabled"]))])) : o("", !0);
66
+ }, [g(t.$slots, "footer")], 2)) : o("", !0)], 14, k)], 8, ["to", "disabled"]))])) : o("", !0);
59
67
  };
60
68
  }
61
- }), j = {
69
+ }), M = {
62
70
  name: {
63
71
  type: String,
64
72
  required: !0
@@ -68,8 +76,10 @@ var x = {
68
76
  required: !0
69
77
  },
70
78
  prevName: String,
71
- footerFullWith: Boolean
72
- }, M = /* @__PURE__ */ l({
79
+ footerFullWith: Boolean,
80
+ helpUrl: String,
81
+ helpTitle: String
82
+ }, N = /* @__PURE__ */ l({
73
83
  __name: "pageComponent",
74
84
  props: {
75
85
  component: {},
@@ -81,7 +91,9 @@ var x = {
81
91
  name: {},
82
92
  order: {},
83
93
  prevName: {},
84
- footerFullWith: { type: Boolean }
94
+ footerFullWith: { type: Boolean },
95
+ helpUrl: {},
96
+ helpTitle: {}
85
97
  },
86
98
  setup(e) {
87
99
  let r = e, i = t(), s = (e, t) => {
@@ -99,7 +111,7 @@ var x = {
99
111
  s(r.component, e);
100
112
  });
101
113
  }
102
- return (t, s) => (m(), a(n, { include: e.keepAlive ? "" : "none" }, [y(i).needShowPage(e.name) ? (m(), a(v(e.component), u({ key: 0 }, r, {
114
+ return (t, s) => (m(), a(n, { include: e.keepAlive ? "" : "none" }, [b(i).needShowPage(e.name) ? (m(), a(y(e.component), u({ key: 0 }, r, {
103
115
  name: e.name,
104
116
  order: e.order,
105
117
  prevName: e.prevName
@@ -111,6 +123,6 @@ var x = {
111
123
  }
112
124
  });
113
125
  //#endregion
114
- export { j as n, A as r, M as t };
126
+ export { M as n, j as r, N as t };
115
127
 
116
- //# sourceMappingURL=dialog-BKJg54Dh.es.js.map
128
+ //# sourceMappingURL=dialog-WEQO33BZ.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-WEQO33BZ.es.js","names":[],"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\n\t\t\t\t\t\t<TopButton\n\t\t\t\t\t\t\tv-if=\"helpUrl\"\n\t\t\t\t\t\t\t:title=\"helpTitle ?? $i18n.Common.How_to_use\"\n\t\t\t\t\t\t\t:href=\"helpUrl\"\n\t\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\t\ticon=\"\"\n\t\t\t\t\t\t/>\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\n\t\t\t\t\t\t<TopButton\n\t\t\t\t\t\t\tv-if=\"helpUrl\"\n\t\t\t\t\t\t\t:title=\"helpTitle ?? $i18n.Common.How_to_use\"\n\t\t\t\t\t\t\t:href=\"helpUrl\"\n\t\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\t\ticon=\"\"\n\t\t\t\t\t\t/>\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\t/**\n\t * Ссылка на страницу справки\n\t */\n\thelpUrl?: string,\n\n\t/**\n\t * title кнопки открытия справки\n\t */\n\thelpTitle?: string,\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\thelpUrl: String,\n\n\thelpTitle: String,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: Record<string, unknown>): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: Record<string, unknown>): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: Record<string, unknown>): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: Record<string, unknown>): 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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"}
@@ -0,0 +1,2 @@
1
+ define([`require`,`exports`,`./forms-DrY7Q_VD.es.amd`,`./utils-CpxXlmWP.es.amd`,`../utils/string.amd`,`../utils/searchers.amd`,`./dialog-WEQO33BZ.es.amd`,`vue`,`../require/css.amd!../assets/dialog_regionSelectorRegions.css`],function(e,t,n,r,i,a,o,s){"use strict";if(c===void 0)var c=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var l={class:`dialog_regionSelectorRegions_header`},u=[`data-top-icon`],d=[`src`,`alt`],f={class:`top-ellipsis`},p={class:`dialog_regionSelectorRegions_regionAreaName`},m={key:1},h={key:2},g=[`data-top-icon`];t.default=(0,s.defineComponent)({id:`regionSelectorRegions`,__name:`dialog_regionSelectorRegions`,props:{regions:{},regionsIndexes:{},"@update:regionsIndexes":{type:Function}},setup(e){let t=e,c=(0,r.r)(),_=(0,s.ref)([]),v=(0,s.ref)(null),y=(0,s.reactive)({searcher_key:-1,key:-1,name:-1}),b=(0,s.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),c.close()};(0,s.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,o=(0,a.getSearcherGIcon)(e.searcher_key),s=e.lang===void 0?void 0:(0,a.getLangLabel)(e.searcher_key??999,e.lang),c=e.device===void 0?void 0:(0,a.getDeviceGIcon)(e.device),l=e.countryCode===void 0?void 0:(0,i.genFlagLinkByCountryCode)(e.countryCode),u={...e,selected:r,title:n,searcherIcon:o,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,s.resolveComponent)(`TopCheckbox`),i=(0,s.resolveComponent)(`TopButton`);return(0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(r.s),{id:(0,s.unref)(c).id,pageActive:`regions`,class:`dialog_regionSelectorRegions`,height:`600px`,width:`600px`,onOpen:C,onClose:w},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(o.r),{name:`regions`,order:0},{header:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,l,[(0,s.createVNode)(n,{modelValue:b.value,"onUpdate:modelValue":t[0]||=e=>b.value=e},null,8,[`modelValue`]),(0,s.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,s.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[2]||=e=>x(`key`),title:e.$i18n.Projects?.Sort_by_yandex_region_code},null,8,[`title`]),(0,s.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[3]||=e=>x(`name`),title:e.$i18n.Projects?.Sort_by_alphabetically},null,8,[`title`])])]),body:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{ref_key:`elRegions`,ref:v},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(_.value,e=>((0,s.openBlock)(),(0,s.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,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{class:`dialog_regionSelectorRegions_regionSearcherIcon`,"data-top-icon":e.searcherIcon},null,8,u),e.flagLink?((0,s.openBlock)(),(0,s.createElementBlock)(`img`,{key:0,class:`top-flag`,src:`//topvisor.dev`+e.flagLink,alt:e.countryCode},null,8,d)):(0,s.createCommentVNode)(``,!0),(0,s.createElementVNode)(`div`,f,[(0,s.createTextVNode)((0,s.toDisplayString)(e.name)+` `,1),(0,s.createElementVNode)(`span`,p,(0,s.toDisplayString)(e.areaName),1)]),e.langLabel?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,m,` [`+(0,s.toDisplayString)(e.langLabel)+`] `,1)):(0,s.createCommentVNode)(``,!0),e.alt?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,h,(0,s.toDisplayString)(e.alt),1)):(0,s.createCommentVNode)(``,!0),e.deviceIcon?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:3,"data-top-icon":e.deviceIcon},null,8,g)):(0,s.createCommentVNode)(``,!0)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`data-region-index`]))),128))],512)]),footer:(0,s.withCtx)(()=>[(0,s.createVNode)(i,{onClick:S},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.$i18n.Common?.Apply),1)]),_:1})]),_:1})]),_:1},8,[`id`])}}})});
2
+ //# sourceMappingURL=dialog_regionSelectorRegions-BML7I8Qt.es.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[".chunks/dialog_regionSelectorRegions-BML7I8Qt.es.js","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue"],"names":["vue","exports","E","D","O","k","A","j","M","N","vue_1","P","g","F","utils_CpxXlmWP_es_js_1","I","L","R","z","B","V","t","n","s","searchers_js_1","c","l","u","string_js_1","d","H","forms_DrY7Q_VD_es_js_1","U","r","dialog_WEQO33BZ_es_js_1"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-DrY7Q_VD.es.js\", \"./utils-CpxXlmWP.es.js\", \"../utils/string.js\", \"../utils/searchers.js\", \"./dialog-WEQO33BZ.es.js\", \"vue\"], function (require, exports, forms_DrY7Q_VD_es_js_1, utils_CpxXlmWP_es_js_1, string_js_1, searchers_js_1, dialog_WEQO33BZ_es_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 = { key: 2 }, N = [\"data-top-icon\"], P = /* @__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 P = g, F = (0, utils_CpxXlmWP_es_js_1.r)(), I = (0, vue_1.ref)([]), L = (0, vue_1.ref)(null), R = (0, vue_1.reactive)({\n searcher_key: -1,\n key: -1,\n name: -1\n }), z = (0, vue_1.computed)({\n get() {\n return I.value.every((e) => e.selected);\n },\n set(e) {\n I.value = I.value.map((t) => ({\n ...t,\n selected: e\n }));\n }\n }), B = (e) => {\n R[e] = -R[e], I.value.sort((t, n) => !t[e] || !n[e] ? -1 : t[e] >= n[e] ? R[e] : -R[e]);\n }, V = () => {\n if (!I.value.some((e) => e.selected))\n return;\n let e = I.value.filter((e) => e.selected).map((e) => e.index);\n P[\"@update:regionsIndexes\"]?.(e), F.close();\n };\n (0, vue_1.watch)([() => P.regions, () => P.regionsIndexes], () => {\n if (I.value = [], !P.regions || !P.regionsIndexes)\n return;\n let e = [...P.regions], t = new Map(P.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 n = P.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: n,\n title: t,\n searcherIcon: s,\n langLabel: c,\n deviceIcon: l,\n flagLink: u\n };\n I.value.push(d);\n });\n });\n let H = () => {\n if (!forms_DrY7Q_VD_es_js_1.O.$?.ui.sortable) {\n console.info(\"Для работы сортировки требуется глобальная загрузка jQuery UI Sortable\");\n return;\n }\n L.value && $(L.value).sortable({\n distance: 10,\n stop: () => {\n let e = [...L.value.children].map((e) => Number(e.getAttribute(\"data-region-index\")));\n I.value.sort((t, n) => e.indexOf(t.index) - e.indexOf(n.index));\n }\n });\n }, U = () => {\n forms_DrY7Q_VD_es_js_1.O.$?.ui.sortable && L.value && $(L.value).sortable(\"destroy\");\n };\n return (e, t) => {\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)(utils_CpxXlmWP_es_js_1.s), {\n id: (0, vue_1.unref)(F).id,\n pageActive: \"regions\",\n class: \"dialog_regionSelectorRegions\",\n height: \"600px\",\n width: \"600px\",\n onOpen: H,\n onClose: U\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)((0, vue_1.unref)(dialog_WEQO33BZ_es_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: z.value,\n \"onUpdate:modelValue\": t[0] ||= (e) => z.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: t[1] ||= (e) => B(\"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: t[2] ||= (e) => B(\"key\"),\n title: e.$i18n.Projects?.Sort_by_yandex_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: t[3] ||= (e) => B(\"name\"),\n title: e.$i18n.Projects?.Sort_by_alphabetically\n }, null, 8, [\"title\"])\n ])]),\n body: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", {\n ref_key: \"elRegions\",\n ref: L\n }, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(I.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.alt ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", M, (0, vue_1.toDisplayString)(e.alt), 1)) : (0, vue_1.createCommentVNode)(\"\", !0),\n e.deviceIcon ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 3,\n \"data-top-icon\": e.deviceIcon\n }, null, 8, N)) : (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: V }, {\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 = P;\n});\n//# sourceMappingURL=dialog_regionSelectorRegions-BML7I8Qt.es.js.map\n","<script setup lang=\"ts\">\n/* global $ */\n\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\tconst 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_yandex_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_alphabetically\"\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 v-if=\"region.alt\">\n\t\t\t\t\t\t\t{{ region.alt }}\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,14 +5,14 @@
5
5
  _autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
6
6
  /* end import css */
7
7
 
8
- import { O as e } from "./forms-CjJD60m3.es.js";
9
- import { r as t, s as n } from "./utils-Dy_MqCAH.es.js";
8
+ import { O as e } from "./forms-DrY7Q_VD.es.js";
9
+ import { r as t, s as n } from "./utils-CpxXlmWP.es.js";
10
10
  import { genFlagLinkByCountryCode as r } from "../utils/string.js";
11
11
  import { getDeviceGIcon as i, getLangLabel as a, getSearcherGIcon as o } from "../utils/searchers.js";
12
- import { r as s } from "./dialog-BKJg54Dh.es.js";
12
+ import { r as s } from "./dialog-WEQO33BZ.es.js";
13
13
  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";
14
14
  //#region src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue?vue&type=script&setup=true&lang.ts
15
- 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({
15
+ 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 = { key: 2 }, N = ["data-top-icon"], P = /* @__PURE__ */ g({
16
16
  id: "regionSelectorRegions",
17
17
  __name: "dialog_regionSelectorRegions",
18
18
  props: {
@@ -21,34 +21,34 @@ var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"],
21
21
  "@update:regionsIndexes": { type: Function }
22
22
  },
23
23
  setup(g) {
24
- let N = g, P = t(), F = y([]), I = y(null), L = v({
24
+ let P = g, F = t(), I = y([]), L = y(null), R = v({
25
25
  searcher_key: -1,
26
26
  key: -1,
27
27
  name: -1
28
- }), R = l({
28
+ }), z = l({
29
29
  get() {
30
- return F.value.every((e) => e.selected);
30
+ return I.value.every((e) => e.selected);
31
31
  },
32
32
  set(e) {
33
- F.value = F.value.map((t) => ({
33
+ I.value = I.value.map((t) => ({
34
34
  ...t,
35
35
  selected: e
36
36
  }));
37
37
  }
38
- }), z = (e) => {
39
- L[e] = -L[e], F.value.sort((t, n) => !t[e] || !n[e] ? -1 : t[e] >= n[e] ? L[e] : -L[e]);
40
- }, B = () => {
41
- if (!F.value.some((e) => e.selected)) return;
42
- let e = F.value.filter((e) => e.selected).map((e) => e.index);
43
- N["@update:regionsIndexes"]?.(e), P.close();
38
+ }), B = (e) => {
39
+ R[e] = -R[e], I.value.sort((t, n) => !t[e] || !n[e] ? -1 : t[e] >= n[e] ? R[e] : -R[e]);
40
+ }, V = () => {
41
+ if (!I.value.some((e) => e.selected)) return;
42
+ let e = I.value.filter((e) => e.selected).map((e) => e.index);
43
+ P["@update:regionsIndexes"]?.(e), F.close();
44
44
  };
45
- w([() => N.regions, () => N.regionsIndexes], () => {
46
- if (F.value = [], !N.regions || !N.regionsIndexes) return;
47
- let e = [...N.regions], t = new Map(N.regionsIndexes.map((e, t) => [e, t]));
45
+ w([() => P.regions, () => P.regionsIndexes], () => {
46
+ if (I.value = [], !P.regions || !P.regionsIndexes) return;
47
+ let e = [...P.regions], t = new Map(P.regionsIndexes.map((e, t) => [e, t]));
48
48
  e.sort((e, n) => (t.get(e.index) ?? Number.MAX_VALUE) - (t.get(n.index) ?? Number.MAX_VALUE)), e.forEach((e) => {
49
49
  let t = e.name;
50
50
  e.areaName && (t += ` (${e.areaName})`);
51
- let n = N.regionsIndexes?.includes(e.index) ?? !1, s = o(e.searcher_key), c = e.lang === void 0 ? void 0 : a(e.searcher_key ?? 999, e.lang), l = e.device === void 0 ? void 0 : i(e.device), u = e.countryCode === void 0 ? void 0 : r(e.countryCode), d = {
51
+ let n = P.regionsIndexes?.includes(e.index) ?? !1, s = o(e.searcher_key), c = e.lang === void 0 ? void 0 : a(e.searcher_key ?? 999, e.lang), l = e.device === void 0 ? void 0 : i(e.device), u = e.countryCode === void 0 ? void 0 : r(e.countryCode), d = {
52
52
  ...e,
53
53
  selected: n,
54
54
  title: t,
@@ -57,34 +57,34 @@ var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"],
57
57
  deviceIcon: l,
58
58
  flagLink: u
59
59
  };
60
- F.value.push(d);
60
+ I.value.push(d);
61
61
  });
62
62
  });
63
- let V = () => {
63
+ let H = () => {
64
64
  if (!e.$?.ui.sortable) {
65
65
  console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");
66
66
  return;
67
67
  }
68
- I.value && $(I.value).sortable({
68
+ L.value && $(L.value).sortable({
69
69
  distance: 10,
70
70
  stop: () => {
71
- let e = [...I.value.children].map((e) => Number(e.getAttribute("data-region-index")));
72
- F.value.sort((t, n) => e.indexOf(t.index) - e.indexOf(n.index));
71
+ let e = [...L.value.children].map((e) => Number(e.getAttribute("data-region-index")));
72
+ I.value.sort((t, n) => e.indexOf(t.index) - e.indexOf(n.index));
73
73
  }
74
74
  });
75
- }, H = () => {
76
- e.$?.ui.sortable && I.value && $(I.value).sortable("destroy");
75
+ }, U = () => {
76
+ e.$?.ui.sortable && L.value && $(L.value).sortable("destroy");
77
77
  };
78
78
  return (e, t) => {
79
79
  let r = x("TopCheckbox"), i = x("TopButton");
80
80
  return _(), u(C(n), {
81
- id: C(P).id,
81
+ id: C(F).id,
82
82
  pageActive: "regions",
83
83
  class: "dialog_regionSelectorRegions",
84
84
  height: "600px",
85
85
  width: "600px",
86
- onOpen: V,
87
- onClose: H
86
+ onOpen: H,
87
+ onClose: U
88
88
  }, {
89
89
  default: T(() => [h(C(s), {
90
90
  name: "regions",
@@ -92,35 +92,35 @@ var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"],
92
92
  }, {
93
93
  header: T(() => [p("div", E, [
94
94
  h(r, {
95
- modelValue: R.value,
96
- "onUpdate:modelValue": t[0] ||= (e) => R.value = e
95
+ modelValue: z.value,
96
+ "onUpdate:modelValue": t[0] ||= (e) => z.value = e
97
97
  }, null, 8, ["modelValue"]),
98
98
  h(i, {
99
99
  class: "dialog_regionSelectorRegions_sortButton",
100
100
  color: "theme",
101
101
  "data-top-icon": "",
102
- onClick: t[1] ||= (e) => z("searcher_key"),
102
+ onClick: t[1] ||= (e) => B("searcher_key"),
103
103
  title: e.$i18n.Projects?.Sort_by_search_engine
104
104
  }, null, 8, ["title"]),
105
105
  h(i, {
106
106
  class: "dialog_regionSelectorRegions_sortButton",
107
107
  color: "theme",
108
108
  "data-top-icon": "",
109
- onClick: t[2] ||= (e) => z("key"),
109
+ onClick: t[2] ||= (e) => B("key"),
110
110
  title: e.$i18n.Projects?.Sort_by_yandex_region_code
111
111
  }, null, 8, ["title"]),
112
112
  h(i, {
113
113
  class: "dialog_regionSelectorRegions_sortButton",
114
114
  color: "theme",
115
115
  "data-top-icon": "",
116
- onClick: t[3] ||= (e) => z("name"),
116
+ onClick: t[3] ||= (e) => B("name"),
117
117
  title: e.$i18n.Projects?.Sort_by_alphabetically
118
118
  }, null, 8, ["title"])
119
119
  ])]),
120
120
  body: T(() => [p("div", {
121
121
  ref_key: "elRegions",
122
- ref: I
123
- }, [(_(!0), f(c, null, b(F.value, (e) => (_(), u(r, {
122
+ ref: L
123
+ }, [(_(!0), f(c, null, b(I.value, (e) => (_(), u(r, {
124
124
  key: e.index,
125
125
  modelValue: e.selected,
126
126
  "onUpdate:modelValue": (t) => e.selected = t,
@@ -140,10 +140,11 @@ var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"],
140
140
  }, null, 8, O)) : d("", !0),
141
141
  p("div", k, [m(S(e.name) + " ", 1), p("span", A, S(e.areaName), 1)]),
142
142
  e.langLabel ? (_(), f("div", j, " [" + S(e.langLabel) + "] ", 1)) : d("", !0),
143
+ e.alt ? (_(), f("div", M, S(e.alt), 1)) : d("", !0),
143
144
  e.deviceIcon ? (_(), f("div", {
144
- key: 2,
145
+ key: 3,
145
146
  "data-top-icon": e.deviceIcon
146
- }, null, 8, M)) : d("", !0)
147
+ }, null, 8, N)) : d("", !0)
147
148
  ]),
148
149
  _: 2
149
150
  }, 1032, [
@@ -151,7 +152,7 @@ var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"],
151
152
  "onUpdate:modelValue",
152
153
  "data-region-index"
153
154
  ]))), 128))], 512)]),
154
- footer: T(() => [h(i, { onClick: B }, {
155
+ footer: T(() => [h(i, { onClick: V }, {
155
156
  default: T(() => [m(S(e.$i18n.Common?.Apply), 1)]),
156
157
  _: 1
157
158
  })]),
@@ -163,6 +164,6 @@ var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"],
163
164
  }
164
165
  });
165
166
  //#endregion
166
- export { N as default };
167
+ export { P as default };
167
168
 
168
- //# sourceMappingURL=dialog_regionSelectorRegions-Dq81iORJ.es.js.map
169
+ //# sourceMappingURL=dialog_regionSelectorRegions-BML7I8Qt.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog_regionSelectorRegions-BML7I8Qt.es.js","names":[],"sources":["../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/* global $ */\n\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\tconst 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_yandex_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_alphabetically\"\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 v-if=\"region.alt\">\n\t\t\t\t\t\t\t{{ region.alt }}\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\">\n/* global $ */\n\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\tconst 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_yandex_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_alphabetically\"\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 v-if=\"region.alt\">\n\t\t\t\t\t\t\t{{ region.alt }}\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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"}