@topvisor/ui 1.5.1-1 → 1.5.1-topProjectSelector.0

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 (126) hide show
  1. package/.chunks/{api-CBMWBeCS.amd.js → api-a3D-SXH-.amd.js} +2 -2
  2. package/.chunks/{api-CBMWBeCS.amd.js.map → api-a3D-SXH-.amd.js.map} +1 -1
  3. package/.chunks/{api-CBMWBeCS.esm.js → api-a3D-SXH-.esm.js} +2 -2
  4. package/.chunks/{api-CBMWBeCS.esm.js.map → api-a3D-SXH-.esm.js.map} +1 -1
  5. package/.chunks/{app-DyAn8Ury.amd.js → app-BDGZ1d0R.amd.js} +2 -2
  6. package/.chunks/{app-DyAn8Ury.amd.js.map → app-BDGZ1d0R.amd.js.map} +1 -1
  7. package/.chunks/{app-DyAn8Ury.esm.js → app-BDGZ1d0R.esm.js} +6 -6
  8. package/.chunks/app-BDGZ1d0R.esm.js.map +1 -0
  9. package/.chunks/{datepicker-BmHkZfBO.amd.js → datepicker-DuOSAFQy.amd.js} +2 -2
  10. package/.chunks/{datepicker-BmHkZfBO.amd.js.map → datepicker-DuOSAFQy.amd.js.map} +1 -1
  11. package/.chunks/{datepicker-BmHkZfBO.esm.js → datepicker-DuOSAFQy.esm.js} +2 -2
  12. package/.chunks/{datepicker-BmHkZfBO.esm.js.map → datepicker-DuOSAFQy.esm.js.map} +1 -1
  13. package/.chunks/{dialog-bIV6Y2PF.amd.js → dialog-ClCAM1nI.amd.js} +2 -2
  14. package/.chunks/{dialog-bIV6Y2PF.amd.js.map → dialog-ClCAM1nI.amd.js.map} +1 -1
  15. package/.chunks/{dialog-bIV6Y2PF.esm.js → dialog-ClCAM1nI.esm.js} +4 -4
  16. package/.chunks/{dialog-bIV6Y2PF.esm.js.map → dialog-ClCAM1nI.esm.js.map} +1 -1
  17. package/.chunks/{dialog_regionSelectorRegions-gPKA93af.amd.js → dialog_regionSelectorRegions-DFZTiYi6.amd.js} +2 -2
  18. package/.chunks/{dialog_regionSelectorRegions-gPKA93af.amd.js.map → dialog_regionSelectorRegions-DFZTiYi6.amd.js.map} +1 -1
  19. package/.chunks/{dialog_regionSelectorRegions-gPKA93af.esm.js → dialog_regionSelectorRegions-DFZTiYi6.esm.js} +5 -5
  20. package/.chunks/{dialog_regionSelectorRegions-gPKA93af.esm.js.map → dialog_regionSelectorRegions-DFZTiYi6.esm.js.map} +1 -1
  21. package/.chunks/{dialogs-CE8F7A0M.amd.js → dialogs-CjrddGh6.amd.js} +2 -2
  22. package/.chunks/{dialogs-CE8F7A0M.amd.js.map → dialogs-CjrddGh6.amd.js.map} +1 -1
  23. package/.chunks/{dialogs-CE8F7A0M.esm.js → dialogs-CjrddGh6.esm.js} +3 -3
  24. package/.chunks/{dialogs-CE8F7A0M.esm.js.map → dialogs-CjrddGh6.esm.js.map} +1 -1
  25. package/.chunks/forms-C2ItFa61.amd.js +2 -0
  26. package/.chunks/forms-C2ItFa61.amd.js.map +1 -0
  27. package/.chunks/{forms-DByj6MWE.esm.js → forms-C2ItFa61.esm.js} +10 -6
  28. package/.chunks/forms-C2ItFa61.esm.js.map +1 -0
  29. package/.chunks/{formsExt-LekJqOck.amd.js → formsExt-6Nz907Ry.amd.js} +2 -2
  30. package/.chunks/formsExt-6Nz907Ry.amd.js.map +1 -0
  31. package/.chunks/{formsExt-LekJqOck.esm.js → formsExt-6Nz907Ry.esm.js} +10 -7
  32. package/.chunks/formsExt-6Nz907Ry.esm.js.map +1 -0
  33. package/.chunks/{notice-Ds5K-ei_.amd.js → notice-CBJBDgby.amd.js} +2 -2
  34. package/.chunks/{notice-Ds5K-ei_.amd.js.map → notice-CBJBDgby.amd.js.map} +1 -1
  35. package/.chunks/{notice-Ds5K-ei_.esm.js → notice-CBJBDgby.esm.js} +2 -2
  36. package/.chunks/{notice-Ds5K-ei_.esm.js.map → notice-CBJBDgby.esm.js.map} +1 -1
  37. package/.chunks/{popup-Cvyqovn6.amd.js → popup-B06vbv6B.amd.js} +2 -2
  38. package/.chunks/{popup-Cvyqovn6.amd.js.map → popup-B06vbv6B.amd.js.map} +1 -1
  39. package/.chunks/{popup-Cvyqovn6.esm.js → popup-B06vbv6B.esm.js} +3 -3
  40. package/.chunks/{popup-Cvyqovn6.esm.js.map → popup-B06vbv6B.esm.js.map} +1 -1
  41. package/.chunks/{popup-BxGYabRi.amd.js → popup-CFYtl5_r.amd.js} +2 -2
  42. package/.chunks/{popup-BxGYabRi.amd.js.map → popup-CFYtl5_r.amd.js.map} +1 -1
  43. package/.chunks/{popup-BxGYabRi.esm.js → popup-CFYtl5_r.esm.js} +3 -3
  44. package/.chunks/{popup-BxGYabRi.esm.js.map → popup-CFYtl5_r.esm.js.map} +1 -1
  45. package/.chunks/{utils-sPSU5tXH.amd.js → utils-BTHruVpQ.amd.js} +2 -2
  46. package/.chunks/{utils-sPSU5tXH.amd.js.map → utils-BTHruVpQ.amd.js.map} +1 -1
  47. package/.chunks/{utils-sPSU5tXH.esm.js → utils-BTHruVpQ.esm.js} +3 -3
  48. package/.chunks/{utils-sPSU5tXH.esm.js.map → utils-BTHruVpQ.esm.js.map} +1 -1
  49. package/.chunks/{utils-mRLC32Uo.amd.js → utils-DJV2mWZE.amd.js} +2 -2
  50. package/.chunks/{utils-mRLC32Uo.amd.js.map → utils-DJV2mWZE.amd.js.map} +1 -1
  51. package/.chunks/{utils-mRLC32Uo.esm.js → utils-DJV2mWZE.esm.js} +4 -4
  52. package/.chunks/{utils-mRLC32Uo.esm.js.map → utils-DJV2mWZE.esm.js.map} +1 -1
  53. package/.chunks/{worker-Cx7e_9o9.amd.js → worker-BIUaZFVX.amd.js} +2 -2
  54. package/.chunks/{worker-Cx7e_9o9.amd.js.map → worker-BIUaZFVX.amd.js.map} +1 -1
  55. package/.chunks/{worker-Cx7e_9o9.esm.js → worker-BIUaZFVX.esm.js} +3 -3
  56. package/.chunks/{worker-Cx7e_9o9.esm.js.map → worker-BIUaZFVX.esm.js.map} +1 -1
  57. package/api/index.amd.js +1 -1
  58. package/api/index.amd.js.map +1 -1
  59. package/api/index.js +1 -1
  60. package/assets/project.css +1 -1
  61. package/autoload-css-manifest.amd.json +4 -4
  62. package/autoload-css-manifest.json +4 -4
  63. package/charts/charts.amd.js +1 -1
  64. package/charts/charts.amd.js.map +1 -1
  65. package/charts/charts.js +1 -1
  66. package/core/app.amd.js +1 -1
  67. package/core/app.amd.js.map +1 -1
  68. package/core/app.js +4 -4
  69. package/dialog/dialog.amd.js +1 -1
  70. package/dialog/dialog.amd.js.map +1 -1
  71. package/dialog/dialog.js +3 -3
  72. package/forms/forms.amd.js +1 -1
  73. package/forms/forms.amd.js.map +1 -1
  74. package/forms/forms.js +1 -1
  75. package/formsExt/formsExt.amd.js +1 -1
  76. package/formsExt/formsExt.amd.js.map +1 -1
  77. package/formsExt/formsExt.js +1 -1
  78. package/layout/layout.amd.js +1 -1
  79. package/layout/layout.amd.js.map +1 -1
  80. package/layout/layout.js +1 -1
  81. package/package.json +1 -1
  82. package/popup/popup.amd.js +1 -1
  83. package/popup/popup.amd.js.map +1 -1
  84. package/popup/popup.js +1 -1
  85. package/popup/worker.amd.js +1 -1
  86. package/popup/worker.amd.js.map +1 -1
  87. package/popup/worker.js +1 -1
  88. package/project/project.amd.js +1 -1
  89. package/project/project.amd.js.map +1 -1
  90. package/project/project.js +57 -63
  91. package/project/project.js.map +1 -1
  92. package/src/api/api/types/api.d.ts +5 -1
  93. package/src/core/core/core.d.ts +2 -0
  94. package/src/core/core/options.d.ts +8 -0
  95. package/src/core/core/state.d.ts +2 -0
  96. package/src/core/plugins/core.d.ts +1 -1
  97. package/tabsView/tabsView.amd.js +1 -1
  98. package/tabsView/tabsView.amd.js.map +1 -1
  99. package/tabsView/tabsView.js +2 -2
  100. package/utils/clipboard.amd.js +1 -1
  101. package/utils/clipboard.amd.js.map +1 -1
  102. package/utils/clipboard.js +1 -1
  103. package/utils/date.amd.js +1 -1
  104. package/utils/date.amd.js.map +1 -1
  105. package/utils/date.js +1 -1
  106. package/utils/device.amd.js +1 -1
  107. package/utils/device.amd.js.map +1 -1
  108. package/utils/device.js +1 -1
  109. package/utils/lodash.amd.js +1 -1
  110. package/utils/lodash.amd.js.map +1 -1
  111. package/utils/lodash.js +1 -1
  112. package/utils/price.amd.js +1 -1
  113. package/utils/price.amd.js.map +1 -1
  114. package/utils/price.js +1 -1
  115. package/utils/searchers.amd.js +1 -1
  116. package/utils/searchers.amd.js.map +1 -1
  117. package/utils/searchers.js +1 -1
  118. package/utils/string.amd.js +1 -1
  119. package/utils/string.amd.js.map +1 -1
  120. package/utils/string.js +1 -1
  121. package/.chunks/app-DyAn8Ury.esm.js.map +0 -1
  122. package/.chunks/forms-DByj6MWE.amd.js +0 -2
  123. package/.chunks/forms-DByj6MWE.amd.js.map +0 -1
  124. package/.chunks/forms-DByj6MWE.esm.js.map +0 -1
  125. package/.chunks/formsExt-LekJqOck.amd.js.map +0 -1
  126. package/.chunks/formsExt-LekJqOck.esm.js.map +0 -1
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`./forms-DByj6MWE.amd`,`vue`],function(e,t,n,r){"use strict";if(i===void 0)var i=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.connectDatepicker=o,t.oninput=d,n.O.insertStyleToPage(`.ui-datepicker{--datepicker-day-color:var(--color-layout-front-1);--datepicker-day-color-hover:var(--color-layer-1);--datepicker-selected-color:var(--color-bg-primary-1);--datepicker-selected-color-hover:var(--color-bg-primary-2);--datepicker-range-color:var(--color-layer-primary-1);--datepicker-range-color-hover:var(--color-layer-primary-2);-webkit-user-select:none;user-select:none;width:auto;padding:0}.ui-datepicker:before,.ui-datepicker:after{display:none}.ui-datepicker-inline{display:inline-block!important}.ui-datepicker:not(.ui-datepicker-inline){background:var(--color-layout-front-1);box-shadow:var(--top-shadow);border-radius:8px;padding:8px;z-index:10000000!important}.ui-datepicker a{text-decoration:none!important}.ui-datepicker option{color:var(--color-text-1);font-size:14px}.ui-datepicker-header{align-items:center;margin:0 0 18px;display:flex;padding:0!important}.ui-datepicker-header>*{justify-content:center;align-items:center;display:flex}.ui-datepicker-title{height:24px;width:100%!important;margin:0!important}.ui-datepicker-month,.ui-datepicker-year{text-align:center;border:none;padding:0;outline:none!important;width:auto!important;margin:0 6px!important;font-size:16px!important}.ui-datepicker-month{color:var(--color-text-1)}.ui-datepicker-year{color:var(--color-text-2)}select.ui-datepicker-month,select.ui-datepicker-year{cursor:pointer}.ui-datepicker-prev,.ui-datepicker-next{cursor:pointer;font-family:Topvisor-2;font-size:24px;width:24px!important;height:24px!important;position:static!important}.ui-datepicker-prev:before{color:var(--color-text-3);content:""}.ui-datepicker-prev-hover:before{color:var(--color-text-1);content:""}.ui-datepicker-next{color:var(--color-text-3);order:1}.ui-datepicker-next-hover{color:var(--color-text-1);order:1}.ui-datepicker-next:before{content:""}.ui-datepicker-prev>*,.ui-datepicker-next>*{display:none!important}.ui-datepicker thead th{color:var(--color-text-3);font-size:14px;width:auto!important;padding:0!important;font-weight:400!important}.ui-datepicker table{font-size:14px;margin:0!important}.ui-datepicker td{color:var(--color-text-1);background:0 0;padding:0!important}.ui-datepicker td span,.ui-datepicker td a{text-align:center;border:none;border-radius:8px;min-width:32px;height:32px;margin:1px;padding:0;line-height:32px;display:block;position:relative;color:var(--color-text-1)!important}.ui-datepicker td a{background:var(--datepicker-day-color)}.ui-datepicker td a:hover{background:var(--datepicker-day-color-hover)}td.ui-datepicker-today span,td.ui-datepicker-today a{background:0 0;position:relative}.ui-datepicker td.selected a{background:var(--datepicker-range-color);margin-left:0;margin-right:1px;padding-left:1px;padding-right:0}.ui-datepicker td.selected a:hover{background:var(--datepicker-range-color-hover)}.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0;padding-left:1px}.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0;padding-right:1px}.ui-datepicker td.selected-start a,.ui-datepicker td.selected-end a,.ui-datepicker td.ui-datepicker-current-day a{background:var(--datepicker-selected-color);color:#fff!important}.ui-datepicker td.selected-start a:hover,.ui-datepicker td.selected-end a:hover,.ui-datepicker td.ui-datepicker-current-day a:hover{background:var(--datepicker-selected-color-hover)}.ui-datepicker-day-marks{justify-content:center;align-items:center;line-height:normal;display:flex;position:absolute;bottom:3px;left:0;right:0}.ui-datepicker-day-marks>i{border:1px solid #fff;border-radius:50%;width:4px;height:4px;margin:0 2px}.ui-datepicker-day-marks-exists{background:var(--color-text-primary)}.ui-datepicker-day-marks-update{background:var(--color-text-negative)}.ui-datepicker-row-break{display:none}`);var a=e=>{if(!n.O.$?.ui?.datepicker){console.info(`Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker`);return}return n.O.$.datepicker.setDefaults({dateFormat:n.O.state.dateFormat.toLowerCase().replace(`m`,`mm`).replace(`y`,`yy`).replace(`d`,`dd`)}),n.O.$(e)};function o(e,t){return a(e)?.datepicker(t)}var s,c,l,u;(0,r.watch)((0,r.toRef)(n.O.state.dateFormat),()=>{s=(0,n._)(`2000-01-01`),c=s.match(/\D/)?.[0]??`-`,l=s.replace(/\D+/g,``).length,u=[];for(let e=0;e<s.length;e++)s[e]===c&&u.push(e)},{immediate:!0});function d(e){let t=e.target.selectionEnd,n=e.target.value,r=n.substring(0,t).replace(/\D+/g,``),i=n.substring(t).replace(/\D+/g,``),a=r.length+i.length-l;if(a>0){r=r.substring(0,l);let e=l-r.length;i=i.substring(i.length-e)}else a<0&&(e.inputType===`deleteContentForward`?r+=`0`.repeat(-a):i=`0`.repeat(-a)+i);t=r.length,n=r+i;for(let e=0;e<u.length;e++){let r=u[e];n=n.substring(0,r)+c+n.substring(r),t>=r&&t++}e.inputType===`deleteContentBackward`&&n[t-1]===c&&t--,n!==e.target.value&&(e.target.value=n,e.target.selectionStart=t,e.target.selectionEnd=t)}});
2
- //# sourceMappingURL=datepicker-BmHkZfBO.amd.js.map
1
+ define([`require`,`exports`,`./forms-C2ItFa61.amd`,`vue`],function(e,t,n,r){"use strict";if(i===void 0)var i=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.connectDatepicker=o,t.oninput=d,n.O.insertStyleToPage(`.ui-datepicker{--datepicker-day-color:var(--color-layout-front-1);--datepicker-day-color-hover:var(--color-layer-1);--datepicker-selected-color:var(--color-bg-primary-1);--datepicker-selected-color-hover:var(--color-bg-primary-2);--datepicker-range-color:var(--color-layer-primary-1);--datepicker-range-color-hover:var(--color-layer-primary-2);-webkit-user-select:none;user-select:none;width:auto;padding:0}.ui-datepicker:before,.ui-datepicker:after{display:none}.ui-datepicker-inline{display:inline-block!important}.ui-datepicker:not(.ui-datepicker-inline){background:var(--color-layout-front-1);box-shadow:var(--top-shadow);border-radius:8px;padding:8px;z-index:10000000!important}.ui-datepicker a{text-decoration:none!important}.ui-datepicker option{color:var(--color-text-1);font-size:14px}.ui-datepicker-header{align-items:center;margin:0 0 18px;display:flex;padding:0!important}.ui-datepicker-header>*{justify-content:center;align-items:center;display:flex}.ui-datepicker-title{height:24px;width:100%!important;margin:0!important}.ui-datepicker-month,.ui-datepicker-year{text-align:center;border:none;padding:0;outline:none!important;width:auto!important;margin:0 6px!important;font-size:16px!important}.ui-datepicker-month{color:var(--color-text-1)}.ui-datepicker-year{color:var(--color-text-2)}select.ui-datepicker-month,select.ui-datepicker-year{cursor:pointer}.ui-datepicker-prev,.ui-datepicker-next{cursor:pointer;font-family:Topvisor-2;font-size:24px;width:24px!important;height:24px!important;position:static!important}.ui-datepicker-prev:before{color:var(--color-text-3);content:""}.ui-datepicker-prev-hover:before{color:var(--color-text-1);content:""}.ui-datepicker-next{color:var(--color-text-3);order:1}.ui-datepicker-next-hover{color:var(--color-text-1);order:1}.ui-datepicker-next:before{content:""}.ui-datepicker-prev>*,.ui-datepicker-next>*{display:none!important}.ui-datepicker thead th{color:var(--color-text-3);font-size:14px;width:auto!important;padding:0!important;font-weight:400!important}.ui-datepicker table{font-size:14px;margin:0!important}.ui-datepicker td{color:var(--color-text-1);background:0 0;padding:0!important}.ui-datepicker td span,.ui-datepicker td a{text-align:center;border:none;border-radius:8px;min-width:32px;height:32px;margin:1px;padding:0;line-height:32px;display:block;position:relative;color:var(--color-text-1)!important}.ui-datepicker td a{background:var(--datepicker-day-color)}.ui-datepicker td a:hover{background:var(--datepicker-day-color-hover)}td.ui-datepicker-today span,td.ui-datepicker-today a{background:0 0;position:relative}.ui-datepicker td.selected a{background:var(--datepicker-range-color);margin-left:0;margin-right:1px;padding-left:1px;padding-right:0}.ui-datepicker td.selected a:hover{background:var(--datepicker-range-color-hover)}.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0;padding-left:1px}.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0;padding-right:1px}.ui-datepicker td.selected-start a,.ui-datepicker td.selected-end a,.ui-datepicker td.ui-datepicker-current-day a{background:var(--datepicker-selected-color);color:#fff!important}.ui-datepicker td.selected-start a:hover,.ui-datepicker td.selected-end a:hover,.ui-datepicker td.ui-datepicker-current-day a:hover{background:var(--datepicker-selected-color-hover)}.ui-datepicker-day-marks{justify-content:center;align-items:center;line-height:normal;display:flex;position:absolute;bottom:3px;left:0;right:0}.ui-datepicker-day-marks>i{border:1px solid #fff;border-radius:50%;width:4px;height:4px;margin:0 2px}.ui-datepicker-day-marks-exists{background:var(--color-text-primary)}.ui-datepicker-day-marks-update{background:var(--color-text-negative)}.ui-datepicker-row-break{display:none}`);var a=e=>{if(!n.O.$?.ui?.datepicker){console.info(`Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker`);return}return n.O.$.datepicker.setDefaults({dateFormat:n.O.state.dateFormat.toLowerCase().replace(`m`,`mm`).replace(`y`,`yy`).replace(`d`,`dd`)}),n.O.$(e)};function o(e,t){return a(e)?.datepicker(t)}var s,c,l,u;(0,r.watch)((0,r.toRef)(n.O.state.dateFormat),()=>{s=(0,n._)(`2000-01-01`),c=s.match(/\D/)?.[0]??`-`,l=s.replace(/\D+/g,``).length,u=[];for(let e=0;e<s.length;e++)s[e]===c&&u.push(e)},{immediate:!0});function d(e){let t=e.target.selectionEnd,n=e.target.value,r=n.substring(0,t).replace(/\D+/g,``),i=n.substring(t).replace(/\D+/g,``),a=r.length+i.length-l;if(a>0){r=r.substring(0,l);let e=l-r.length;i=i.substring(i.length-e)}else a<0&&(e.inputType===`deleteContentForward`?r+=`0`.repeat(-a):i=`0`.repeat(-a)+i);t=r.length,n=r+i;for(let e=0;e<u.length;e++){let r=u[e];n=n.substring(0,r)+c+n.substring(r),t>=r&&t++}e.inputType===`deleteContentBackward`&&n[t-1]===c&&t--,n!==e.target.value&&(e.target.value=n,e.target.selectionStart=t,e.target.selectionEnd=t)}});
2
+ //# sourceMappingURL=datepicker-DuOSAFQy.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[".chunks/datepicker-BmHkZfBO.esm.js","../../src/components/forms/inputDate/datepicker.ts"],"names":["vue","exports","a","u","forms_DByj6MWE_esm_js_1","i","t","o","s","c","l","vue_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,uBAA2B,MAAM,CAAE,SAAU,EAAS,EAAS,EAAyB,EAAO,CACzH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,kBAAoBC,ECG3B,EAAA,QAAAC,EAIHC,EAAa,EAAA,kBAAA,q2HAA2E,CAExF,IAAAC,EAAA,GAAA,CDHM,GAAI,CAACD,EAAwB,EAAE,GAAG,IAAI,WAAY,CCMlD,QAAA,KAAW,2EACiD,CDLxD,OCYJ,OAAOA,EAAmB,EAAA,EAAA,WAAA,YAAA,CAAA,WAAAA,EAAA,EAAA,MAAA,WAAA,aAAA,CAAA,QAAA,IAAA,KAAA,CAAA,QAAA,IAAA,KAAA,CAAA,QAAA,IAAA,KAAA,CAAA,CAAA,CAAAA,EAAA,EAAA,EAAAE,EAAA,EAG9B,SAGAJ,EAAA,EAAA,EAAA,CAEa,OAAMG,EAAA,EAAA,EAAA,WAAmB,EAAA,CAOzC,IAAKE,EAAIC,EAAIC,EAAGC,GAKZ,EAAAC,EAAA,QAAkB,EAAAA,EAAA,OAAAP,EAAA,EAAA,MAAA,WAAA,KAAA,CAKvB,GAAwB,EAAQA,EAAA,GAAA,aAAA,CAAA,EAAAG,EAAA,MAAA,KAAA,GAAA,IAAA,IAAA,EAAAA,EAAA,QAAA,OAAA,GAAA,CAAA,OAAA,EAAA,EAAA,CAC3B,IAAiB,IAAA,EAAO,EAAA,EAAAA,EAAA,OACd,IAQaA,EAAA,KAAAC,GAAAE,EAAA,KAAA,EAAA,EAET,CAAe,UAAU,CAAG,EAAiB,CAAA,CAE9D,SAAiCP,EAAmB,EAAe,CACjC,IAAA,EAAA,EAAU,OAAgB,aAAkC,EAAA,EAAA,OAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAA,QAAA,OAAA,GAAA,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,QAAA,OAAA,GAAA,CAAA,EAAA,EAAA,OAAA,EAAA,OAAAM,EACpF,GAAoB,EAAA,EAE1B,CAQyB,EAC9B,EAAA,UAAyB,EAAAA,EAAA,CAGhB,IAAI,EAAGA,EAAsB,EAAA,OACI,EAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAWpC,EAAA,IAAc,EAAA,YAAA,uBACnB,GAIG,IAAA,OAAY,CAAA,EAAO,CAAA,EAAA,IACtB,OAAE,CAAO,EAAA,CAAA,GD/DH,EAAI,EAAE,OAAQ,EAAI,EAAI,EACtB,IAAK,IAAI,EAAI,EAAG,EAAIC,EAAE,OAAQ,IAAK,CAC/B,IAAI,EAAIA,EAAE,GACV,EAAI,EAAE,UAAU,EAAG,EAAE,CAAGF,EAAI,EAAE,UAAU,EAAE,CAAE,GAAK,GAAK,IAE1D,EAAE,YAAc,yBAA2B,EAAE,EAAI,KAAOA,GAAK,IAAK,IAAM,EAAE,OAAO,QAAU,EAAE,OAAO,MAAQ,EAAG,EAAE,OAAO,eAAiB,EAAG,EAAE,OAAO,aAAe,KAE1K","sourcesContent":["define([\"require\", \"exports\", \"./forms-DByj6MWE.esm.js\", \"vue\"], function (require, exports, forms_DByj6MWE_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.connectDatepicker = a;\n exports.oninput = u;\n //#endregion\n //#region src/components/forms/inputDate/datepicker.ts\n forms_DByj6MWE_esm_js_1.O.insertStyleToPage(\".ui-datepicker{--datepicker-day-color:var(--color-layout-front-1);--datepicker-day-color-hover:var(--color-layer-1);--datepicker-selected-color:var(--color-bg-primary-1);--datepicker-selected-color-hover:var(--color-bg-primary-2);--datepicker-range-color:var(--color-layer-primary-1);--datepicker-range-color-hover:var(--color-layer-primary-2);-webkit-user-select:none;user-select:none;width:auto;padding:0}.ui-datepicker:before,.ui-datepicker:after{display:none}.ui-datepicker-inline{display:inline-block!important}.ui-datepicker:not(.ui-datepicker-inline){background:var(--color-layout-front-1);box-shadow:var(--top-shadow);border-radius:8px;padding:8px;z-index:10000000!important}.ui-datepicker a{text-decoration:none!important}.ui-datepicker option{color:var(--color-text-1);font-size:14px}.ui-datepicker-header{align-items:center;margin:0 0 18px;display:flex;padding:0!important}.ui-datepicker-header>*{justify-content:center;align-items:center;display:flex}.ui-datepicker-title{height:24px;width:100%!important;margin:0!important}.ui-datepicker-month,.ui-datepicker-year{text-align:center;border:none;padding:0;outline:none!important;width:auto!important;margin:0 6px!important;font-size:16px!important}.ui-datepicker-month{color:var(--color-text-1)}.ui-datepicker-year{color:var(--color-text-2)}select.ui-datepicker-month,select.ui-datepicker-year{cursor:pointer}.ui-datepicker-prev,.ui-datepicker-next{cursor:pointer;font-family:Topvisor-2;font-size:24px;width:24px!important;height:24px!important;position:static!important}.ui-datepicker-prev:before{color:var(--color-text-3);content:\\\"\\\"}.ui-datepicker-prev-hover:before{color:var(--color-text-1);content:\\\"\\\"}.ui-datepicker-next{color:var(--color-text-3);order:1}.ui-datepicker-next-hover{color:var(--color-text-1);order:1}.ui-datepicker-next:before{content:\\\"\\\"}.ui-datepicker-prev>*,.ui-datepicker-next>*{display:none!important}.ui-datepicker thead th{color:var(--color-text-3);font-size:14px;width:auto!important;padding:0!important;font-weight:400!important}.ui-datepicker table{font-size:14px;margin:0!important}.ui-datepicker td{color:var(--color-text-1);background:0 0;padding:0!important}.ui-datepicker td span,.ui-datepicker td a{text-align:center;border:none;border-radius:8px;min-width:32px;height:32px;margin:1px;padding:0;line-height:32px;display:block;position:relative;color:var(--color-text-1)!important}.ui-datepicker td a{background:var(--datepicker-day-color)}.ui-datepicker td a:hover{background:var(--datepicker-day-color-hover)}td.ui-datepicker-today span,td.ui-datepicker-today a{background:0 0;position:relative}.ui-datepicker td.selected a{background:var(--datepicker-range-color);margin-left:0;margin-right:1px;padding-left:1px;padding-right:0}.ui-datepicker td.selected a:hover{background:var(--datepicker-range-color-hover)}.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0;padding-left:1px}.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0;padding-right:1px}.ui-datepicker td.selected-start a,.ui-datepicker td.selected-end a,.ui-datepicker td.ui-datepicker-current-day a{background:var(--datepicker-selected-color);color:#fff!important}.ui-datepicker td.selected-start a:hover,.ui-datepicker td.selected-end a:hover,.ui-datepicker td.ui-datepicker-current-day a:hover{background:var(--datepicker-selected-color-hover)}.ui-datepicker-day-marks{justify-content:center;align-items:center;line-height:normal;display:flex;position:absolute;bottom:3px;left:0;right:0}.ui-datepicker-day-marks>i{border:1px solid #fff;border-radius:50%;width:4px;height:4px;margin:0 2px}.ui-datepicker-day-marks-exists{background:var(--color-text-primary)}.ui-datepicker-day-marks-update{background:var(--color-text-negative)}.ui-datepicker-row-break{display:none}\");\n var i = (t) => {\n if (!forms_DByj6MWE_esm_js_1.O.$?.ui?.datepicker) {\n console.info(\"Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker\");\n return;\n }\n return forms_DByj6MWE_esm_js_1.O.$.datepicker.setDefaults({ dateFormat: forms_DByj6MWE_esm_js_1.O.state.dateFormat.toLowerCase().replace(\"m\", \"mm\").replace(\"y\", \"yy\").replace(\"d\", \"dd\") }), forms_DByj6MWE_esm_js_1.O.$(t);\n };\n function a(e, t) {\n return i(e)?.datepicker(t);\n }\n var o, s, c, l;\n (0, vue_1.watch)((0, vue_1.toRef)(forms_DByj6MWE_esm_js_1.O.state.dateFormat), () => {\n o = (0, forms_DByj6MWE_esm_js_1._)(\"2000-01-01\"), s = o.match(/\\D/)?.[0] ?? \"-\", c = o.replace(/\\D+/g, \"\").length, l = [];\n for (let e = 0; e < o.length; e++)\n o[e] === s && l.push(e);\n }, { immediate: !0 });\n function u(e) {\n let t = e.target.selectionEnd, n = e.target.value, r = n.substring(0, t).replace(/\\D+/g, \"\"), i = n.substring(t).replace(/\\D+/g, \"\"), a = r.length + i.length - c;\n if (a > 0) {\n r = r.substring(0, c);\n let e = c - r.length;\n i = i.substring(i.length - e);\n }\n else\n a < 0 && (e.inputType === \"deleteContentForward\" ? r += \"0\".repeat(-a) : i = \"0\".repeat(-a) + i);\n t = r.length, n = r + i;\n for (let e = 0; e < l.length; e++) {\n let r = l[e];\n n = n.substring(0, r) + s + n.substring(r), t >= r && t++;\n }\n e.inputType === \"deleteContentBackward\" && n[t - 1] === s && t--, n !== e.target.value && (e.target.value = n, e.target.selectionStart = t, e.target.selectionEnd = t);\n }\n});\n//# sourceMappingURL=datepicker-BmHkZfBO.esm.js.map\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\tlet 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"]}
1
+ {"version":3,"sources":[".chunks/datepicker-DuOSAFQy.esm.js","../../src/components/forms/inputDate/datepicker.ts"],"names":["vue","exports","a","u","forms_C2ItFa61_esm_js_1","i","t","o","s","c","l","vue_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,uBAA2B,MAAM,CAAE,SAAU,EAAS,EAAS,EAAyB,EAAO,CACzH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,kBAAoBC,ECG3B,EAAA,QAAAC,EAIHC,EAAa,EAAA,kBAAA,q2HAA2E,CAExF,IAAAC,EAAA,GAAA,CDHM,GAAI,CAACD,EAAwB,EAAE,GAAG,IAAI,WAAY,CCMlD,QAAA,KAAW,2EACiD,CDLxD,OCYJ,OAAOA,EAAmB,EAAA,EAAA,WAAA,YAAA,CAAA,WAAAA,EAAA,EAAA,MAAA,WAAA,aAAA,CAAA,QAAA,IAAA,KAAA,CAAA,QAAA,IAAA,KAAA,CAAA,QAAA,IAAA,KAAA,CAAA,CAAA,CAAAA,EAAA,EAAA,EAAAE,EAAA,EAG9B,SAGAJ,EAAA,EAAA,EAAA,CAEa,OAAMG,EAAA,EAAA,EAAA,WAAmB,EAAA,CAOzC,IAAKE,EAAIC,EAAIC,EAAGC,GAKZ,EAAAC,EAAA,QAAkB,EAAAA,EAAA,OAAAP,EAAA,EAAA,MAAA,WAAA,KAAA,CAKvB,GAAwB,EAAQA,EAAA,GAAA,aAAA,CAAA,EAAAG,EAAA,MAAA,KAAA,GAAA,IAAA,IAAA,EAAAA,EAAA,QAAA,OAAA,GAAA,CAAA,OAAA,EAAA,EAAA,CAC3B,IAAiB,IAAA,EAAO,EAAA,EAAAA,EAAA,OACd,IAQaA,EAAA,KAAAC,GAAAE,EAAA,KAAA,EAAA,EAET,CAAe,UAAU,CAAG,EAAiB,CAAA,CAE9D,SAAiCP,EAAmB,EAAe,CACjC,IAAA,EAAA,EAAU,OAAgB,aAAkC,EAAA,EAAA,OAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAA,QAAA,OAAA,GAAA,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,QAAA,OAAA,GAAA,CAAA,EAAA,EAAA,OAAA,EAAA,OAAAM,EACpF,GAAoB,EAAA,EAE1B,CAQyB,EAC9B,EAAA,UAAyB,EAAAA,EAAA,CAGhB,IAAI,EAAGA,EAAsB,EAAA,OACI,EAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAWpC,EAAA,IAAc,EAAA,YAAA,uBACnB,GAIG,IAAA,OAAY,CAAA,EAAO,CAAA,EAAA,IACtB,OAAE,CAAO,EAAA,CAAA,GD/DH,EAAI,EAAE,OAAQ,EAAI,EAAI,EACtB,IAAK,IAAI,EAAI,EAAG,EAAIC,EAAE,OAAQ,IAAK,CAC/B,IAAI,EAAIA,EAAE,GACV,EAAI,EAAE,UAAU,EAAG,EAAE,CAAGF,EAAI,EAAE,UAAU,EAAE,CAAE,GAAK,GAAK,IAE1D,EAAE,YAAc,yBAA2B,EAAE,EAAI,KAAOA,GAAK,IAAK,IAAM,EAAE,OAAO,QAAU,EAAE,OAAO,MAAQ,EAAG,EAAE,OAAO,eAAiB,EAAG,EAAE,OAAO,aAAe,KAE1K","sourcesContent":["define([\"require\", \"exports\", \"./forms-C2ItFa61.esm.js\", \"vue\"], function (require, exports, forms_C2ItFa61_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.connectDatepicker = a;\n exports.oninput = u;\n //#endregion\n //#region src/components/forms/inputDate/datepicker.ts\n forms_C2ItFa61_esm_js_1.O.insertStyleToPage(\".ui-datepicker{--datepicker-day-color:var(--color-layout-front-1);--datepicker-day-color-hover:var(--color-layer-1);--datepicker-selected-color:var(--color-bg-primary-1);--datepicker-selected-color-hover:var(--color-bg-primary-2);--datepicker-range-color:var(--color-layer-primary-1);--datepicker-range-color-hover:var(--color-layer-primary-2);-webkit-user-select:none;user-select:none;width:auto;padding:0}.ui-datepicker:before,.ui-datepicker:after{display:none}.ui-datepicker-inline{display:inline-block!important}.ui-datepicker:not(.ui-datepicker-inline){background:var(--color-layout-front-1);box-shadow:var(--top-shadow);border-radius:8px;padding:8px;z-index:10000000!important}.ui-datepicker a{text-decoration:none!important}.ui-datepicker option{color:var(--color-text-1);font-size:14px}.ui-datepicker-header{align-items:center;margin:0 0 18px;display:flex;padding:0!important}.ui-datepicker-header>*{justify-content:center;align-items:center;display:flex}.ui-datepicker-title{height:24px;width:100%!important;margin:0!important}.ui-datepicker-month,.ui-datepicker-year{text-align:center;border:none;padding:0;outline:none!important;width:auto!important;margin:0 6px!important;font-size:16px!important}.ui-datepicker-month{color:var(--color-text-1)}.ui-datepicker-year{color:var(--color-text-2)}select.ui-datepicker-month,select.ui-datepicker-year{cursor:pointer}.ui-datepicker-prev,.ui-datepicker-next{cursor:pointer;font-family:Topvisor-2;font-size:24px;width:24px!important;height:24px!important;position:static!important}.ui-datepicker-prev:before{color:var(--color-text-3);content:\\\"\\\"}.ui-datepicker-prev-hover:before{color:var(--color-text-1);content:\\\"\\\"}.ui-datepicker-next{color:var(--color-text-3);order:1}.ui-datepicker-next-hover{color:var(--color-text-1);order:1}.ui-datepicker-next:before{content:\\\"\\\"}.ui-datepicker-prev>*,.ui-datepicker-next>*{display:none!important}.ui-datepicker thead th{color:var(--color-text-3);font-size:14px;width:auto!important;padding:0!important;font-weight:400!important}.ui-datepicker table{font-size:14px;margin:0!important}.ui-datepicker td{color:var(--color-text-1);background:0 0;padding:0!important}.ui-datepicker td span,.ui-datepicker td a{text-align:center;border:none;border-radius:8px;min-width:32px;height:32px;margin:1px;padding:0;line-height:32px;display:block;position:relative;color:var(--color-text-1)!important}.ui-datepicker td a{background:var(--datepicker-day-color)}.ui-datepicker td a:hover{background:var(--datepicker-day-color-hover)}td.ui-datepicker-today span,td.ui-datepicker-today a{background:0 0;position:relative}.ui-datepicker td.selected a{background:var(--datepicker-range-color);margin-left:0;margin-right:1px;padding-left:1px;padding-right:0}.ui-datepicker td.selected a:hover{background:var(--datepicker-range-color-hover)}.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0;padding-left:1px}.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0;padding-right:1px}.ui-datepicker td.selected-start a,.ui-datepicker td.selected-end a,.ui-datepicker td.ui-datepicker-current-day a{background:var(--datepicker-selected-color);color:#fff!important}.ui-datepicker td.selected-start a:hover,.ui-datepicker td.selected-end a:hover,.ui-datepicker td.ui-datepicker-current-day a:hover{background:var(--datepicker-selected-color-hover)}.ui-datepicker-day-marks{justify-content:center;align-items:center;line-height:normal;display:flex;position:absolute;bottom:3px;left:0;right:0}.ui-datepicker-day-marks>i{border:1px solid #fff;border-radius:50%;width:4px;height:4px;margin:0 2px}.ui-datepicker-day-marks-exists{background:var(--color-text-primary)}.ui-datepicker-day-marks-update{background:var(--color-text-negative)}.ui-datepicker-row-break{display:none}\");\n var i = (t) => {\n if (!forms_C2ItFa61_esm_js_1.O.$?.ui?.datepicker) {\n console.info(\"Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker\");\n return;\n }\n return forms_C2ItFa61_esm_js_1.O.$.datepicker.setDefaults({ dateFormat: forms_C2ItFa61_esm_js_1.O.state.dateFormat.toLowerCase().replace(\"m\", \"mm\").replace(\"y\", \"yy\").replace(\"d\", \"dd\") }), forms_C2ItFa61_esm_js_1.O.$(t);\n };\n function a(e, t) {\n return i(e)?.datepicker(t);\n }\n var o, s, c, l;\n (0, vue_1.watch)((0, vue_1.toRef)(forms_C2ItFa61_esm_js_1.O.state.dateFormat), () => {\n o = (0, forms_C2ItFa61_esm_js_1._)(\"2000-01-01\"), s = o.match(/\\D/)?.[0] ?? \"-\", c = o.replace(/\\D+/g, \"\").length, l = [];\n for (let e = 0; e < o.length; e++)\n o[e] === s && l.push(e);\n }, { immediate: !0 });\n function u(e) {\n let t = e.target.selectionEnd, n = e.target.value, r = n.substring(0, t).replace(/\\D+/g, \"\"), i = n.substring(t).replace(/\\D+/g, \"\"), a = r.length + i.length - c;\n if (a > 0) {\n r = r.substring(0, c);\n let e = c - r.length;\n i = i.substring(i.length - e);\n }\n else\n a < 0 && (e.inputType === \"deleteContentForward\" ? r += \"0\".repeat(-a) : i = \"0\".repeat(-a) + i);\n t = r.length, n = r + i;\n for (let e = 0; e < l.length; e++) {\n let r = l[e];\n n = n.substring(0, r) + s + n.substring(r), t >= r && t++;\n }\n e.inputType === \"deleteContentBackward\" && n[t - 1] === s && t--, n !== e.target.value && (e.target.value = n, e.target.selectionStart = t, e.target.selectionEnd = t);\n }\n});\n//# sourceMappingURL=datepicker-DuOSAFQy.esm.js.map\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\tlet 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"]}
@@ -1,4 +1,4 @@
1
- import { O as e, _ as t } from "./forms-DByj6MWE.esm.js";
1
+ import { O as e, _ as t } from "./forms-C2ItFa61.esm.js";
2
2
  import { toRef as n, watch as r } from "vue";
3
3
  //#endregion
4
4
  //#region src/components/forms/inputDate/datepicker.ts
@@ -35,4 +35,4 @@ function u(e) {
35
35
  //#endregion
36
36
  export { a as connectDatepicker, u as oninput };
37
37
 
38
- //# sourceMappingURL=datepicker-BmHkZfBO.esm.js.map
38
+ //# sourceMappingURL=datepicker-DuOSAFQy.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker-BmHkZfBO.esm.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\tlet 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,63HAAsB;AAE3B,IAAM,KAAK,MAAyB;AACnC,KAAI,CAAC,EAAK,GAAG,IAAI,YAAY;AAC5B,UAAQ,KAAK,2EAA2E;AAExF;;AAOD,QAJA,EAAK,EAAE,WAAW,YAAY,EAC7B,YAAY,EAAK,MAAM,WAAW,aAAa,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,EACxG,CAAC,EAEK,EAAK,EAAE,EAAG;;AAGlB,SAAgB,EAAkB,GAAsB,GAAc;AACrE,QAAO,EAAE,EAAG,EAAE,WAAW,EAAQ;;AAGlC,IAAI,GACA,GACA,GACA;AAEJ,EAAM,EAAM,EAAK,MAAM,WAAW,QAAQ;AAKzC,CAHA,IAAgB,EAAW,aAAa,EACxC,IAAY,EAAc,MAAM,KAAK,GAAG,MAAM,KAC9C,IAAmB,EAAc,QAAQ,QAAQ,GAAG,CAAC,QACrD,IAAoB,EAAE;AAEtB,MAAK,IAAI,IAAI,GAAG,IAAI,EAAc,QAAQ,IACzC,CAAI,EAAc,OAAO,KACxB,EAAkB,KAAK,EAAE;GAGzB,EAAE,WAAW,IAAM,CAAC;AAKvB,SAAgB,EAAQ,GAAQ;CAC/B,IAAI,IAAe,EAAE,OAAO,cACxB,IAAQ,EAAE,OAAO,OAIjB,IAAiB,EAAM,UAAU,GAAG,EAAa,CAAC,QAAQ,QAAQ,GAAG,EACrE,IAAkB,EAAM,UAAU,EAAa,CAAC,QAAQ,QAAQ,GAAG,EAEnE,IAAoB,EAAe,SAAS,EAAgB,SAAS;AACzE,KAAI,IAAoB,GAAG;AAE1B,MAAiB,EAAe,UAAU,GAAG,EAAiB;EAE9D,IAAM,IAA2B,IAAmB,EAAe;AACnE,MAAkB,EAAgB,UAAU,EAAgB,SAAS,EAAyB;QACpF,IAAoB,MAE1B,EAAE,cAAc,yBAEnB,KAAkB,IAAI,OAAO,CAAC,EAAkB,GAEhD,IAAkB,IAAI,OAAO,CAAC,EAAkB,GAAG;AAKrD,CADA,IAAe,EAAe,QAC9B,IAAQ,IAAiB;AAGzB,MAAK,IAAI,IAAI,GAAG,IAAI,EAAkB,QAAQ,KAAK;EAClD,IAAM,IAAiB,EAAkB;AAKzC,EAHA,IAAQ,EAAM,UAAU,GAAG,EAAe,GAAG,IAAY,EAAM,UAAU,EAAe,EAGpF,KAAgB,KACnB;;AAUF,CALI,EAAE,cAAc,2BAA2B,EAAM,IAAe,OAAO,KAC1E,KAIG,MAAU,EAAE,OAAO,UACtB,EAAE,OAAO,QAAQ,GACjB,EAAE,OAAO,iBAAiB,GAC1B,EAAE,OAAO,eAAe"}
1
+ {"version":3,"file":"datepicker-DuOSAFQy.esm.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\tlet 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,63HAAsB;AAE3B,IAAM,KAAK,MAAyB;AACnC,KAAI,CAAC,EAAK,GAAG,IAAI,YAAY;AAC5B,UAAQ,KAAK,2EAA2E;AAExF;;AAOD,QAJA,EAAK,EAAE,WAAW,YAAY,EAC7B,YAAY,EAAK,MAAM,WAAW,aAAa,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,EACxG,CAAC,EAEK,EAAK,EAAE,EAAG;;AAGlB,SAAgB,EAAkB,GAAsB,GAAc;AACrE,QAAO,EAAE,EAAG,EAAE,WAAW,EAAQ;;AAGlC,IAAI,GACA,GACA,GACA;AAEJ,EAAM,EAAM,EAAK,MAAM,WAAW,QAAQ;AAKzC,CAHA,IAAgB,EAAW,aAAa,EACxC,IAAY,EAAc,MAAM,KAAK,GAAG,MAAM,KAC9C,IAAmB,EAAc,QAAQ,QAAQ,GAAG,CAAC,QACrD,IAAoB,EAAE;AAEtB,MAAK,IAAI,IAAI,GAAG,IAAI,EAAc,QAAQ,IACzC,CAAI,EAAc,OAAO,KACxB,EAAkB,KAAK,EAAE;GAGzB,EAAE,WAAW,IAAM,CAAC;AAKvB,SAAgB,EAAQ,GAAQ;CAC/B,IAAI,IAAe,EAAE,OAAO,cACxB,IAAQ,EAAE,OAAO,OAIjB,IAAiB,EAAM,UAAU,GAAG,EAAa,CAAC,QAAQ,QAAQ,GAAG,EACrE,IAAkB,EAAM,UAAU,EAAa,CAAC,QAAQ,QAAQ,GAAG,EAEnE,IAAoB,EAAe,SAAS,EAAgB,SAAS;AACzE,KAAI,IAAoB,GAAG;AAE1B,MAAiB,EAAe,UAAU,GAAG,EAAiB;EAE9D,IAAM,IAA2B,IAAmB,EAAe;AACnE,MAAkB,EAAgB,UAAU,EAAgB,SAAS,EAAyB;QACpF,IAAoB,MAE1B,EAAE,cAAc,yBAEnB,KAAkB,IAAI,OAAO,CAAC,EAAkB,GAEhD,IAAkB,IAAI,OAAO,CAAC,EAAkB,GAAG;AAKrD,CADA,IAAe,EAAe,QAC9B,IAAQ,IAAiB;AAGzB,MAAK,IAAI,IAAI,GAAG,IAAI,EAAkB,QAAQ,KAAK;EAClD,IAAM,IAAiB,EAAkB;AAKzC,EAHA,IAAQ,EAAM,UAAU,GAAG,EAAe,GAAG,IAAY,EAAM,UAAU,EAAe,EAGpF,KAAgB,KACnB;;AAUF,CALI,EAAE,cAAc,2BAA2B,EAAM,IAAe,OAAO,KAC1E,KAIG,MAAU,EAAE,OAAO,UACtB,EAAE,OAAO,QAAQ,GACjB,EAAE,OAAO,iBAAiB,GAC1B,EAAE,OAAO,eAAe"}
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`./forms-DByj6MWE.amd`,`./utils-sPSU5tXH.amd`,`vue`,`./dialogs-CE8F7A0M.amd`],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}},setup(e){let t=e,a=(0,r.r)(),h=(0,i.computed)(()=>({active:a.pageActive?.value===t.name,"i-load-data":t.isLoading||a.isLoadingPage.value}));return(t,r)=>{let g=(0,i.resolveDirective)(`top-scroll-shadow`);return(0,i.unref)(a).isReady.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,o,[((0,i.openBlock)(),(0,i.createBlock)(i.Teleport,{to:`#`+(0,i.unref)(a).idAttr+` .modal-layer-header`,disabled:!(0,i.unref)(a).needShowPage(e.name)},[(0,i.createElementVNode)(`div`,{"data-order":e.order,"data-view-page":e.name,class:(0,i.normalizeClass)(h.value)},[(0,i.createElementVNode)(`div`,c,[(0,i.createElementVNode)(`div`,l,[(0,i.renderSlot)(t.$slots,`header`)]),(0,i.createElementVNode)(`div`,u,[(0,i.renderSlot)(t.$slots,`headerButtons`)]),(0,i.unref)(n.O).state.isMobile&&e.prevName?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:`close`,title:t.$i18n.Common.Back,"data-top-icon":``,onClick:r[0]||=t=>(0,i.unref)(a).open(e.prevName)},null,8,d)):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:1,class:`close`,title:t.$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)(a).idAttr+` .modal-layer-body`,disabled:!(0,i.unref)(a).needShowPage(e.name)},[(0,i.createElementVNode)(`div`,{"data-order":e.order,"data-view-page":e.name,class:(0,i.normalizeClass)([`has_scroll_container`,h.value]),style:(0,i.normalizeStyle)({"--top-dialog-footer-height":t.$slots.footer?void 0:`0px`})},[(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`div`,m,[(0,i.renderSlot)(t.$slots,`body`)])),[[g]]),t.$slots.footer?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:(0,i.normalizeClass)([`modal-footer`,{"modal-footer-fullWith":e.footerFullWith}])},[(0,i.renderSlot)(t.$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},_=(0,i.defineComponent)({__name:`pageComponent`,props:{component:{},keepAlive:{type:Boolean,default:!0},props:{},name:{},order:{},prevName:{},footerFullWith:{type:Boolean}},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-bIV6Y2PF.amd.js.map
1
+ define([`require`,`exports`,`./forms-C2ItFa61.amd`,`./utils-BTHruVpQ.amd`,`vue`,`./dialogs-CjrddGh6.amd`],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}},setup(e){let t=e,a=(0,r.r)(),h=(0,i.computed)(()=>({active:a.pageActive?.value===t.name,"i-load-data":t.isLoading||a.isLoadingPage.value}));return(t,r)=>{let g=(0,i.resolveDirective)(`top-scroll-shadow`);return(0,i.unref)(a).isReady.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,o,[((0,i.openBlock)(),(0,i.createBlock)(i.Teleport,{to:`#`+(0,i.unref)(a).idAttr+` .modal-layer-header`,disabled:!(0,i.unref)(a).needShowPage(e.name)},[(0,i.createElementVNode)(`div`,{"data-order":e.order,"data-view-page":e.name,class:(0,i.normalizeClass)(h.value)},[(0,i.createElementVNode)(`div`,c,[(0,i.createElementVNode)(`div`,l,[(0,i.renderSlot)(t.$slots,`header`)]),(0,i.createElementVNode)(`div`,u,[(0,i.renderSlot)(t.$slots,`headerButtons`)]),(0,i.unref)(n.O).state.isMobile&&e.prevName?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:`close`,title:t.$i18n.Common.Back,"data-top-icon":``,onClick:r[0]||=t=>(0,i.unref)(a).open(e.prevName)},null,8,d)):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:1,class:`close`,title:t.$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)(a).idAttr+` .modal-layer-body`,disabled:!(0,i.unref)(a).needShowPage(e.name)},[(0,i.createElementVNode)(`div`,{"data-order":e.order,"data-view-page":e.name,class:(0,i.normalizeClass)([`has_scroll_container`,h.value]),style:(0,i.normalizeStyle)({"--top-dialog-footer-height":t.$slots.footer?void 0:`0px`})},[(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`div`,m,[(0,i.renderSlot)(t.$slots,`body`)])),[[g]]),t.$slots.footer?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:(0,i.normalizeClass)([`modal-footer`,{"modal-footer-fullWith":e.footerFullWith}])},[(0,i.renderSlot)(t.$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},_=(0,i.defineComponent)({__name:`pageComponent`,props:{component:{},keepAlive:{type:Boolean,default:!0},props:{},name:{},order:{},prevName:{},footerFullWith:{type:Boolean}},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-ClCAM1nI.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[".chunks/dialog-bIV6Y2PF.esm.js","../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/types.ts","../../src/components/dialog/dialog/pageComponent/pageComponent.vue"],"names":["vue","exports","x","S","C","w","T","E","D","O","k","A","vue_1","l","n","u","utils_sPSU5tXH_esm_js_1","p","forms_DByj6MWE_esm_js_1","$slots","j","M","r","i","s","t"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-DByj6MWE.esm.js\", \"./utils-sPSU5tXH.esm.js\", \"vue\", \"./dialogs-CE8F7A0M.esm.js\"], function (require, exports, forms_DByj6MWE_esm_js_1, utils_sPSU5tXH_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.r = exports.n = void 0;\n //#region src/components/dialog/dialog/page/page.vue?vue&type=script&setup=true&lang.ts\n var x = {\n key: 0,\n style: { display: \"none\" }\n }, S = [\"data-order\", \"data-view-page\"], C = { class: \"modal-header\" }, w = { class: \"top-title\" }, T = { class: \"buttons\" }, E = [\"title\"], D = [\"title\"], O = [\"data-order\", \"data-view-page\"], k = { class: \"modal-body\" }, A = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"page\",\n props: {\n isLoading: { type: Boolean },\n name: {},\n order: { default: 0 },\n prevName: {},\n footerFullWith: { type: Boolean }\n },\n setup(n) {\n let l = n, u = (0, utils_sPSU5tXH_esm_js_1.r)(), p = (0, vue_1.computed)(() => ({\n active: u.pageActive?.value === l.name,\n \"i-load-data\": l.isLoading || u.isLoadingPage.value\n }));\n return (t, i) => {\n let l = (0, vue_1.resolveDirective)(\"top-scroll-shadow\");\n return (0, vue_1.unref)(u).isReady.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", x, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(u).idAttr + \" .modal-layer-header\",\n disabled: !(0, vue_1.unref)(u).needShowPage(n.name)\n }, [(0, vue_1.createElementVNode)(\"div\", {\n \"data-order\": n.order,\n \"data-view-page\": n.name,\n class: (0, vue_1.normalizeClass)(p.value)\n }, [(0, vue_1.createElementVNode)(\"div\", C, [\n (0, vue_1.createElementVNode)(\"div\", w, [(0, vue_1.renderSlot)(t.$slots, \"header\")]),\n (0, vue_1.createElementVNode)(\"div\", T, [(0, vue_1.renderSlot)(t.$slots, \"headerButtons\")]),\n (0, vue_1.unref)(forms_DByj6MWE_esm_js_1.O).state.isMobile && n.prevName ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"close\",\n title: t.$i18n.Common.Back,\n \"data-top-icon\": \"\",\n onClick: i[0] ||= (e) => (0, vue_1.unref)(u).open(n.prevName)\n }, null, 8, E)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 1,\n class: \"close\",\n title: t.$i18n.Common.Close,\n \"data-top-icon\": \"\",\n \"data-action\": \"top-dialog-close\"\n }, null, 8, D))\n ])], 10, S)], 8, [\"to\", \"disabled\"])), ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(u).idAttr + \" .modal-layer-body\",\n disabled: !(0, vue_1.unref)(u).needShowPage(n.name)\n }, [(0, vue_1.createElementVNode)(\"div\", {\n \"data-order\": n.order,\n \"data-view-page\": n.name,\n class: (0, vue_1.normalizeClass)([\"has_scroll_container\", p.value]),\n style: (0, vue_1.normalizeStyle)({ \"--top-dialog-footer-height\": t.$slots.footer ? void 0 : \"0px\" })\n }, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", k, [(0, vue_1.renderSlot)(t.$slots, \"body\")])), [[l]]), t.$slots.footer ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: (0, vue_1.normalizeClass)([\"modal-footer\", { \"modal-footer-fullWith\": n.footerFullWith }])\n }, [(0, vue_1.renderSlot)(t.$slots, \"footer\")], 2)) : (0, vue_1.createCommentVNode)(\"\", !0)], 14, O)], 8, [\"to\", \"disabled\"]))])) : (0, vue_1.createCommentVNode)(\"\", !0);\n };\n }\n }), j = {\n name: {\n type: String,\n required: !0\n },\n order: {\n type: Number,\n required: !0\n },\n prevName: String,\n footerFullWith: Boolean\n }, M = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"pageComponent\",\n props: {\n component: {},\n keepAlive: {\n type: Boolean,\n default: !0\n },\n props: {},\n name: {},\n order: {},\n prevName: {},\n footerFullWith: { type: Boolean }\n },\n setup(e) {\n let r = e, i = (0, utils_sPSU5tXH_esm_js_1.r)(), s = (e, t) => {\n if (!t.value) {\n if (e.name !== \"AsyncComponentWrapper\") {\n t.value = !0;\n return;\n }\n i.needShowPage(r.name) && (i.isLoadingPage.value = !0, e.__asyncResolved && (t.value = !0, i.isLoadingPage.value = !1));\n }\n };\n if (r.component.name === \"AsyncComponentWrapper\") {\n let e = (0, vue_1.ref)(!1);\n (0, vue_1.onUpdated)(() => {\n s(r.component, e);\n });\n }\n return (t, s) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.KeepAlive, { include: e.keepAlive ? \"\" : \"none\" }, [(0, vue_1.unref)(i).needShowPage(e.name) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(e.component), (0, vue_1.mergeProps)({ key: 0 }, r, {\n name: e.name,\n order: e.order,\n prevName: e.prevName\n }), null, 16, [\n \"name\",\n \"order\",\n \"prevName\"\n ])) : (0, vue_1.createCommentVNode)(\"\", !0)], 1032, [\"include\"]));\n }\n });\n exports.r = A;\n exports.n = j;\n exports.t = M;\n});\n//# sourceMappingURL=dialog-bIV6Y2PF.esm.js.map\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","export interface Props extends PropsCommon {\n\t/**\n\t * Статус загрузки страницы диалогового окна\n\t *\n\t * При включении взаимодействие со страницей блокируется, отображается анимация загрузки\n\t */\n\tisLoading?: boolean;\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n */\nexport interface PropsCommon {\n\t/**\n\t * Имя страницы для диалогового окна\n\t *\n\t * Имя страницы нужно для навигации между страницами в одном диалоговом окне\n\t */\n\tname: string,\n\n\t/**\n\t * Порядкой номер страницы в диалоговом окне\n\t *\n\t * Одна и та же страница может быть подключена в разные диалоговые окна и иметь разный порядковый номер\n\t */\n\torder: number,\n\n\t/**\n\t * Имя предыдущей страницы\n\t *\n\t * Для кнопки Назад / Закрыть в мобильной версии\n\t */\n\tprevName?: string,\n\n\t/**\n\t * Стиль отображения футера, при котороым элементы растягиваются на всю ширину\n\t *\n\t * Разрешены переносы\n\t */\n\tfooterFullWith?: boolean,\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n *\n * Для не SFC компонентов\n */\nexport const propsPageCommon = {\n\tname: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\n\torder: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\n\tprevName: String,\n\n\tfooterFullWith: Boolean,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: {}): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: {}): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: {}): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: {}): any;\n}\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n"]}
1
+ {"version":3,"sources":[".chunks/dialog-ClCAM1nI.esm.js","../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/types.ts","../../src/components/dialog/dialog/pageComponent/pageComponent.vue"],"names":["vue","exports","x","S","C","w","T","E","D","O","k","A","vue_1","l","n","u","utils_BTHruVpQ_esm_js_1","p","forms_C2ItFa61_esm_js_1","$slots","j","M","r","i","s","t"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-C2ItFa61.esm.js\", \"./utils-BTHruVpQ.esm.js\", \"vue\", \"./dialogs-CjrddGh6.esm.js\"], function (require, exports, forms_C2ItFa61_esm_js_1, utils_BTHruVpQ_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.r = exports.n = void 0;\n //#region src/components/dialog/dialog/page/page.vue?vue&type=script&setup=true&lang.ts\n var x = {\n key: 0,\n style: { display: \"none\" }\n }, S = [\"data-order\", \"data-view-page\"], C = { class: \"modal-header\" }, w = { class: \"top-title\" }, T = { class: \"buttons\" }, E = [\"title\"], D = [\"title\"], O = [\"data-order\", \"data-view-page\"], k = { class: \"modal-body\" }, A = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"page\",\n props: {\n isLoading: { type: Boolean },\n name: {},\n order: { default: 0 },\n prevName: {},\n footerFullWith: { type: Boolean }\n },\n setup(n) {\n let l = n, u = (0, utils_BTHruVpQ_esm_js_1.r)(), p = (0, vue_1.computed)(() => ({\n active: u.pageActive?.value === l.name,\n \"i-load-data\": l.isLoading || u.isLoadingPage.value\n }));\n return (t, i) => {\n let l = (0, vue_1.resolveDirective)(\"top-scroll-shadow\");\n return (0, vue_1.unref)(u).isReady.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", x, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(u).idAttr + \" .modal-layer-header\",\n disabled: !(0, vue_1.unref)(u).needShowPage(n.name)\n }, [(0, vue_1.createElementVNode)(\"div\", {\n \"data-order\": n.order,\n \"data-view-page\": n.name,\n class: (0, vue_1.normalizeClass)(p.value)\n }, [(0, vue_1.createElementVNode)(\"div\", C, [\n (0, vue_1.createElementVNode)(\"div\", w, [(0, vue_1.renderSlot)(t.$slots, \"header\")]),\n (0, vue_1.createElementVNode)(\"div\", T, [(0, vue_1.renderSlot)(t.$slots, \"headerButtons\")]),\n (0, vue_1.unref)(forms_C2ItFa61_esm_js_1.O).state.isMobile && n.prevName ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"close\",\n title: t.$i18n.Common.Back,\n \"data-top-icon\": \"\",\n onClick: i[0] ||= (e) => (0, vue_1.unref)(u).open(n.prevName)\n }, null, 8, E)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 1,\n class: \"close\",\n title: t.$i18n.Common.Close,\n \"data-top-icon\": \"\",\n \"data-action\": \"top-dialog-close\"\n }, null, 8, D))\n ])], 10, S)], 8, [\"to\", \"disabled\"])), ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n to: \"#\" + (0, vue_1.unref)(u).idAttr + \" .modal-layer-body\",\n disabled: !(0, vue_1.unref)(u).needShowPage(n.name)\n }, [(0, vue_1.createElementVNode)(\"div\", {\n \"data-order\": n.order,\n \"data-view-page\": n.name,\n class: (0, vue_1.normalizeClass)([\"has_scroll_container\", p.value]),\n style: (0, vue_1.normalizeStyle)({ \"--top-dialog-footer-height\": t.$slots.footer ? void 0 : \"0px\" })\n }, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", k, [(0, vue_1.renderSlot)(t.$slots, \"body\")])), [[l]]), t.$slots.footer ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: (0, vue_1.normalizeClass)([\"modal-footer\", { \"modal-footer-fullWith\": n.footerFullWith }])\n }, [(0, vue_1.renderSlot)(t.$slots, \"footer\")], 2)) : (0, vue_1.createCommentVNode)(\"\", !0)], 14, O)], 8, [\"to\", \"disabled\"]))])) : (0, vue_1.createCommentVNode)(\"\", !0);\n };\n }\n }), j = {\n name: {\n type: String,\n required: !0\n },\n order: {\n type: Number,\n required: !0\n },\n prevName: String,\n footerFullWith: Boolean\n }, M = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"pageComponent\",\n props: {\n component: {},\n keepAlive: {\n type: Boolean,\n default: !0\n },\n props: {},\n name: {},\n order: {},\n prevName: {},\n footerFullWith: { type: Boolean }\n },\n setup(e) {\n let r = e, i = (0, utils_BTHruVpQ_esm_js_1.r)(), s = (e, t) => {\n if (!t.value) {\n if (e.name !== \"AsyncComponentWrapper\") {\n t.value = !0;\n return;\n }\n i.needShowPage(r.name) && (i.isLoadingPage.value = !0, e.__asyncResolved && (t.value = !0, i.isLoadingPage.value = !1));\n }\n };\n if (r.component.name === \"AsyncComponentWrapper\") {\n let e = (0, vue_1.ref)(!1);\n (0, vue_1.onUpdated)(() => {\n s(r.component, e);\n });\n }\n return (t, s) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.KeepAlive, { include: e.keepAlive ? \"\" : \"none\" }, [(0, vue_1.unref)(i).needShowPage(e.name) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(e.component), (0, vue_1.mergeProps)({ key: 0 }, r, {\n name: e.name,\n order: e.order,\n prevName: e.prevName\n }), null, 16, [\n \"name\",\n \"order\",\n \"prevName\"\n ])) : (0, vue_1.createCommentVNode)(\"\", !0)], 1032, [\"include\"]));\n }\n });\n exports.r = A;\n exports.n = j;\n exports.t = M;\n});\n//# sourceMappingURL=dialog-ClCAM1nI.esm.js.map\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","export interface Props extends PropsCommon {\n\t/**\n\t * Статус загрузки страницы диалогового окна\n\t *\n\t * При включении взаимодействие со страницей блокируется, отображается анимация загрузки\n\t */\n\tisLoading?: boolean;\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n */\nexport interface PropsCommon {\n\t/**\n\t * Имя страницы для диалогового окна\n\t *\n\t * Имя страницы нужно для навигации между страницами в одном диалоговом окне\n\t */\n\tname: string,\n\n\t/**\n\t * Порядкой номер страницы в диалоговом окне\n\t *\n\t * Одна и та же страница может быть подключена в разные диалоговые окна и иметь разный порядковый номер\n\t */\n\torder: number,\n\n\t/**\n\t * Имя предыдущей страницы\n\t *\n\t * Для кнопки Назад / Закрыть в мобильной версии\n\t */\n\tprevName?: string,\n\n\t/**\n\t * Стиль отображения футера, при котороым элементы растягиваются на всю ширину\n\t *\n\t * Разрешены переносы\n\t */\n\tfooterFullWith?: boolean,\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n *\n * Для не SFC компонентов\n */\nexport const propsPageCommon = {\n\tname: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\n\torder: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\n\tprevName: String,\n\n\tfooterFullWith: Boolean,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: {}): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: {}): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: {}): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: {}): any;\n}\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n"]}
@@ -1,6 +1,6 @@
1
- import { O as e } from "./forms-DByj6MWE.esm.js";
2
- import "./dialogs-CE8F7A0M.esm.js";
3
- import { r as t } from "./utils-sPSU5tXH.esm.js";
1
+ import { O as e } from "./forms-C2ItFa61.esm.js";
2
+ import "./dialogs-CjrddGh6.esm.js";
3
+ import { r as t } from "./utils-BTHruVpQ.esm.js";
4
4
  import { KeepAlive as n, Teleport as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, defineComponent as l, mergeProps as u, normalizeClass as d, normalizeStyle as f, onUpdated as p, openBlock as m, ref as h, renderSlot as g, resolveDirective as _, resolveDynamicComponent as v, unref as y, withDirectives as b } from "vue";
5
5
  //#region src/components/dialog/dialog/page/page.vue?vue&type=script&setup=true&lang.ts
6
6
  var x = {
@@ -114,4 +114,4 @@ var x = {
114
114
  //#endregion
115
115
  export { j as n, A as r, M as t };
116
116
 
117
- //# sourceMappingURL=dialog-bIV6Y2PF.esm.js.map
117
+ //# sourceMappingURL=dialog-ClCAM1nI.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-bIV6Y2PF.esm.js","names":["$i18n","$slots"],"sources":["../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/types.ts","../../src/components/dialog/dialog/pageComponent/pageComponent.vue","../../src/components/dialog/dialog/pageComponent/pageComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","export interface Props extends PropsCommon {\n\t/**\n\t * Статус загрузки страницы диалогового окна\n\t *\n\t * При включении взаимодействие со страницей блокируется, отображается анимация загрузки\n\t */\n\tisLoading?: boolean;\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n */\nexport interface PropsCommon {\n\t/**\n\t * Имя страницы для диалогового окна\n\t *\n\t * Имя страницы нужно для навигации между страницами в одном диалоговом окне\n\t */\n\tname: string,\n\n\t/**\n\t * Порядкой номер страницы в диалоговом окне\n\t *\n\t * Одна и та же страница может быть подключена в разные диалоговые окна и иметь разный порядковый номер\n\t */\n\torder: number,\n\n\t/**\n\t * Имя предыдущей страницы\n\t *\n\t * Для кнопки Назад / Закрыть в мобильной версии\n\t */\n\tprevName?: string,\n\n\t/**\n\t * Стиль отображения футера, при котороым элементы растягиваются на всю ширину\n\t *\n\t * Разрешены переносы\n\t */\n\tfooterFullWith?: boolean,\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n *\n * Для не SFC компонентов\n */\nexport const propsPageCommon = {\n\tname: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\n\torder: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\n\tprevName: String,\n\n\tfooterFullWith: Boolean,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: {}): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: {}): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: {}): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: {}): any;\n}\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"dialog-ClCAM1nI.esm.js","names":["$i18n","$slots"],"sources":["../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/page.vue","../../src/components/dialog/dialog/page/types.ts","../../src/components/dialog/dialog/pageComponent/pageComponent.vue","../../src/components/dialog/dialog/pageComponent/pageComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n","export interface Props extends PropsCommon {\n\t/**\n\t * Статус загрузки страницы диалогового окна\n\t *\n\t * При включении взаимодействие со страницей блокируется, отображается анимация загрузки\n\t */\n\tisLoading?: boolean;\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n */\nexport interface PropsCommon {\n\t/**\n\t * Имя страницы для диалогового окна\n\t *\n\t * Имя страницы нужно для навигации между страницами в одном диалоговом окне\n\t */\n\tname: string,\n\n\t/**\n\t * Порядкой номер страницы в диалоговом окне\n\t *\n\t * Одна и та же страница может быть подключена в разные диалоговые окна и иметь разный порядковый номер\n\t */\n\torder: number,\n\n\t/**\n\t * Имя предыдущей страницы\n\t *\n\t * Для кнопки Назад / Закрыть в мобильной версии\n\t */\n\tprevName?: string,\n\n\t/**\n\t * Стиль отображения футера, при котороым элементы растягиваются на всю ширину\n\t *\n\t * Разрешены переносы\n\t */\n\tfooterFullWith?: boolean,\n}\n\n/**\n * Общие props для компонентов реализуюущих TopDialogPage\n *\n * Для не SFC компонентов\n */\nexport const propsPageCommon = {\n\tname: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\n\torder: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\n\tprevName: String,\n\n\tfooterFullWith: Boolean,\n};\n\nexport interface Slots {\n\t/**\n\t * Шапка страницы\n\t */\n\theader(props: {}): any;\n\n\t/**\n\t * Кнопки для шапки страницы\n\t */\n\theaderButtons?(props: {}): any;\n\n\t/**\n\t * Контент страницы\n\t */\n\tbody(props: {}): any;\n\n\t/**\n\t * Футер страницы\n\t */\n\tfooter?(props: {}): any;\n}\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n","<script setup lang=\"ts\">\nimport { type Component, onUpdated, ref, type Ref } from 'vue';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tkeepAlive: true,\n});\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Статус загрузи асинхронного компонента страницы диалогового окна\n */\nconst updateIsLoadingAsyncPage = (component: Component, isLoaded: Ref) => {\n\tif (isLoaded.value) return;\n\n\tif (component.name !== 'AsyncComponentWrapper') {\n\t\tisLoaded.value = true;\n\n\t\treturn;\n\t}\n\n\tif (!dialog.needShowPage(props.name as string)) return;\n\n\tdialog.isLoadingPage.value = true;\n\n\t// @ts-ignore\n\tif (component.__asyncResolved) {\n\t\tisLoaded.value = true;\n\n\t\tdialog.isLoadingPage.value = false;\n\t}\n};\n\nif (props.component.name === 'AsyncComponentWrapper') {\n\tconst isLoaded = ref(false);\n\n\tonUpdated(() => {\n\t\tupdateIsLoadingAsyncPage(props.component, isLoaded);\n\t});\n}\n</script>\n\n<template>\n\t<!-- Teleport внутри при keepAlive размонитроваться не будет, см. TopDialogPage -->\n\t<KeepAlive :include=\"keepAlive ? '' : 'none'\">\n\t\t<Component\n\t\t\t:is=\"component\"\n\t\t\tv-if=\"dialog.needShowPage(name)\"\n\t\t\t:=\"props\"\n\t\t\t:name=\"name\"\n\t\t\t:order=\"order\"\n\t\t\t:prevName=\"prevName\"\n\t\t/>\n\t</KeepAlive>\n</template>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`./forms-DByj6MWE.amd`,`./dialogs-CE8F7A0M.amd`,`../utils/string.amd`,`./utils-sPSU5tXH.amd`,`../utils/searchers.amd`,`./dialog-bIV6Y2PF.amd`,`vue`,`../require/css.amd!../assets/dialog_regionSelectorRegions.css`],function(e,t,n,r,i,a,o,s,c){"use strict";if(l===void 0)var l=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.default=void 0;var u={class:`dialog_regionSelectorRegions_header`},d=[`data-top-icon`],f=[`src`,`alt`],p={class:`top-ellipsis`},m={class:`dialog_regionSelectorRegions_regionAreaName`},h={key:1},g=[`data-top-icon`];t.default=(0,c.defineComponent)({id:`regionSelectorRegions`,__name:`dialog_regionSelectorRegions`,props:{regions:{},regionsIndexes:{},"@update:regionsIndexes":{type:Function}},setup(e){let t=e,l=(0,a.r)(),_=(0,c.ref)([]),v=(0,c.ref)(null),y=(0,c.reactive)({searcher_key:-1,key:-1,name:-1}),b=(0,c.computed)({get(){return _.value.every(e=>e.selected)},set(e){_.value=_.value.map(t=>({...t,selected:e}))}}),x=e=>{y[e]=-y[e],_.value.sort((t,n)=>!t[e]||!n[e]?-1:t[e]>=n[e]?y[e]:-y[e])},S=()=>{if(!_.value.some(e=>e.selected))return;let e=_.value.filter(e=>e.selected).map(e=>e.index);t[`@update:regionsIndexes`]?.(e),l.close()};(0,c.watch)([()=>t.regions,()=>t.regionsIndexes],()=>{if(_.value=[],!t.regions||!t.regionsIndexes)return;let e=[...t.regions],n=new Map(t.regionsIndexes.map((e,t)=>[e,t]));e.sort((e,t)=>(n.get(e.index)??Number.MAX_VALUE)-(n.get(t.index)??Number.MAX_VALUE)),e.forEach(e=>{let n=e.name;e.areaName&&(n+=` (${e.areaName})`);let r=t.regionsIndexes?.includes(e.index)??!1,a=(0,o.getSearcherGIcon)(e.searcher_key),s=e.lang===void 0?void 0:(0,o.getLangLabel)(e.searcher_key??999,e.lang),c=e.device===void 0?void 0:(0,o.getDeviceGIcon)(e.device),l=e.countryCode===void 0?void 0:(0,i.genFlagLinkByCountryCode)(e.countryCode),u={...e,selected:r,title:n,searcherIcon:a,langLabel:s,deviceIcon:c,flagLink:l};_.value.push(u)})});let C=()=>{if(!n.O.$?.ui.sortable){console.info(`Для работы сортировки требуется глобальная загрузка jQuery UI Sortable`);return}v.value&&$(v.value).sortable({distance:10,stop:()=>{let e=[...v.value.children].map(e=>Number(e.getAttribute(`data-region-index`)));_.value.sort((t,n)=>e.indexOf(t.index)-e.indexOf(n.index))}})},w=()=>{n.O.$?.ui.sortable&&v.value&&$(v.value).sortable(`destroy`)};return(e,t)=>{let n=(0,c.resolveComponent)(`TopCheckbox`),i=(0,c.resolveComponent)(`TopButton`);return(0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(r.a),{id:(0,c.unref)(l).id,pageActive:`regions`,class:`dialog_regionSelectorRegions`,height:`600px`,width:`600px`,onOpen:C,onClose:w},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(s.r),{name:`regions`,order:0},{header:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,u,[(0,c.createVNode)(n,{modelValue:b.value,"onUpdate:modelValue":t[0]||=e=>b.value=e},null,8,[`modelValue`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[1]||=e=>x(`searcher_key`),title:e.$i18n.Projects?.Sort_by_search_engine},null,8,[`title`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[2]||=e=>x(`key`),title:e.$i18n.Projects?.Sort_by_yande_region_code},null,8,[`title`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[3]||=e=>x(`name`),title:e.$i18n.Projects?.Sort_by_lphabetically},null,8,[`title`])])]),body:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{ref_key:`elRegions`,ref:v},[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(_.value,e=>((0,c.openBlock)(),(0,c.createBlock)(n,{key:e.index,modelValue:e.selected,"onUpdate:modelValue":t=>e.selected=t,class:`dialog_regionSelectorRegions_region`,"data-region-index":e.index},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{class:`dialog_regionSelectorRegions_regionSearcherIcon`,"data-top-icon":e.searcherIcon},null,8,d),e.flagLink?((0,c.openBlock)(),(0,c.createElementBlock)(`img`,{key:0,class:`top-flag`,src:`//topvisor.dev`+e.flagLink,alt:e.countryCode},null,8,f)):(0,c.createCommentVNode)(``,!0),(0,c.createElementVNode)(`div`,p,[(0,c.createTextVNode)((0,c.toDisplayString)(e.name)+` `,1),(0,c.createElementVNode)(`span`,m,(0,c.toDisplayString)(e.areaName),1)]),e.langLabel?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,h,` [`+(0,c.toDisplayString)(e.langLabel)+`] `,1)):(0,c.createCommentVNode)(``,!0),e.deviceIcon?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:2,"data-top-icon":e.deviceIcon},null,8,g)):(0,c.createCommentVNode)(``,!0)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`data-region-index`]))),128))],512)]),footer:(0,c.withCtx)(()=>[(0,c.createVNode)(i,{onClick:S},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)(e.$i18n.Common?.Apply),1)]),_:1})]),_:1})]),_:1},8,[`id`])}}})});
2
- //# sourceMappingURL=dialog_regionSelectorRegions-gPKA93af.amd.js.map
1
+ define([`require`,`exports`,`./forms-C2ItFa61.amd`,`./dialogs-CjrddGh6.amd`,`../utils/string.amd`,`./utils-BTHruVpQ.amd`,`../utils/searchers.amd`,`./dialog-ClCAM1nI.amd`,`vue`,`../require/css.amd!../assets/dialog_regionSelectorRegions.css`],function(e,t,n,r,i,a,o,s,c){"use strict";if(l===void 0)var l=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.default=void 0;var u={class:`dialog_regionSelectorRegions_header`},d=[`data-top-icon`],f=[`src`,`alt`],p={class:`top-ellipsis`},m={class:`dialog_regionSelectorRegions_regionAreaName`},h={key:1},g=[`data-top-icon`];t.default=(0,c.defineComponent)({id:`regionSelectorRegions`,__name:`dialog_regionSelectorRegions`,props:{regions:{},regionsIndexes:{},"@update:regionsIndexes":{type:Function}},setup(e){let t=e,l=(0,a.r)(),_=(0,c.ref)([]),v=(0,c.ref)(null),y=(0,c.reactive)({searcher_key:-1,key:-1,name:-1}),b=(0,c.computed)({get(){return _.value.every(e=>e.selected)},set(e){_.value=_.value.map(t=>({...t,selected:e}))}}),x=e=>{y[e]=-y[e],_.value.sort((t,n)=>!t[e]||!n[e]?-1:t[e]>=n[e]?y[e]:-y[e])},S=()=>{if(!_.value.some(e=>e.selected))return;let e=_.value.filter(e=>e.selected).map(e=>e.index);t[`@update:regionsIndexes`]?.(e),l.close()};(0,c.watch)([()=>t.regions,()=>t.regionsIndexes],()=>{if(_.value=[],!t.regions||!t.regionsIndexes)return;let e=[...t.regions],n=new Map(t.regionsIndexes.map((e,t)=>[e,t]));e.sort((e,t)=>(n.get(e.index)??Number.MAX_VALUE)-(n.get(t.index)??Number.MAX_VALUE)),e.forEach(e=>{let n=e.name;e.areaName&&(n+=` (${e.areaName})`);let r=t.regionsIndexes?.includes(e.index)??!1,a=(0,o.getSearcherGIcon)(e.searcher_key),s=e.lang===void 0?void 0:(0,o.getLangLabel)(e.searcher_key??999,e.lang),c=e.device===void 0?void 0:(0,o.getDeviceGIcon)(e.device),l=e.countryCode===void 0?void 0:(0,i.genFlagLinkByCountryCode)(e.countryCode),u={...e,selected:r,title:n,searcherIcon:a,langLabel:s,deviceIcon:c,flagLink:l};_.value.push(u)})});let C=()=>{if(!n.O.$?.ui.sortable){console.info(`Для работы сортировки требуется глобальная загрузка jQuery UI Sortable`);return}v.value&&$(v.value).sortable({distance:10,stop:()=>{let e=[...v.value.children].map(e=>Number(e.getAttribute(`data-region-index`)));_.value.sort((t,n)=>e.indexOf(t.index)-e.indexOf(n.index))}})},w=()=>{n.O.$?.ui.sortable&&v.value&&$(v.value).sortable(`destroy`)};return(e,t)=>{let n=(0,c.resolveComponent)(`TopCheckbox`),i=(0,c.resolveComponent)(`TopButton`);return(0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(r.a),{id:(0,c.unref)(l).id,pageActive:`regions`,class:`dialog_regionSelectorRegions`,height:`600px`,width:`600px`,onOpen:C,onClose:w},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(s.r),{name:`regions`,order:0},{header:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,u,[(0,c.createVNode)(n,{modelValue:b.value,"onUpdate:modelValue":t[0]||=e=>b.value=e},null,8,[`modelValue`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[1]||=e=>x(`searcher_key`),title:e.$i18n.Projects?.Sort_by_search_engine},null,8,[`title`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[2]||=e=>x(`key`),title:e.$i18n.Projects?.Sort_by_yande_region_code},null,8,[`title`]),(0,c.createVNode)(i,{class:`dialog_regionSelectorRegions_sortButton`,color:`theme`,"data-top-icon":``,onClick:t[3]||=e=>x(`name`),title:e.$i18n.Projects?.Sort_by_lphabetically},null,8,[`title`])])]),body:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{ref_key:`elRegions`,ref:v},[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(_.value,e=>((0,c.openBlock)(),(0,c.createBlock)(n,{key:e.index,modelValue:e.selected,"onUpdate:modelValue":t=>e.selected=t,class:`dialog_regionSelectorRegions_region`,"data-region-index":e.index},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{class:`dialog_regionSelectorRegions_regionSearcherIcon`,"data-top-icon":e.searcherIcon},null,8,d),e.flagLink?((0,c.openBlock)(),(0,c.createElementBlock)(`img`,{key:0,class:`top-flag`,src:`//topvisor.dev`+e.flagLink,alt:e.countryCode},null,8,f)):(0,c.createCommentVNode)(``,!0),(0,c.createElementVNode)(`div`,p,[(0,c.createTextVNode)((0,c.toDisplayString)(e.name)+` `,1),(0,c.createElementVNode)(`span`,m,(0,c.toDisplayString)(e.areaName),1)]),e.langLabel?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,h,` [`+(0,c.toDisplayString)(e.langLabel)+`] `,1)):(0,c.createCommentVNode)(``,!0),e.deviceIcon?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:2,"data-top-icon":e.deviceIcon},null,8,g)):(0,c.createCommentVNode)(``,!0)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`data-region-index`]))),128))],512)]),footer:(0,c.withCtx)(()=>[(0,c.createVNode)(i,{onClick:S},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)(e.$i18n.Common?.Apply),1)]),_:1})]),_:1})]),_:1},8,[`id`])}}})});
2
+ //# sourceMappingURL=dialog_regionSelectorRegions-DFZTiYi6.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[".chunks/dialog_regionSelectorRegions-gPKA93af.esm.js","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue"],"names":["vue","exports","E","D","O","k","A","j","M","vue_1","N","g","P","utils_sPSU5tXH_esm_js_1","F","I","L","R","z","B","t","n","s","searchers_js_1","c","l","u","string_js_1","d","V","forms_DByj6MWE_esm_js_1","H","r","dialogs_CE8F7A0M_esm_js_1","dialog_bIV6Y2PF_esm_js_1"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-DByj6MWE.esm.js\", \"./dialogs-CE8F7A0M.esm.js\", \"../utils/string.js\", \"./utils-sPSU5tXH.esm.js\", \"../utils/searchers.js\", \"./dialog-bIV6Y2PF.esm.js\", \"vue\"], function (require, exports, forms_DByj6MWE_esm_js_1, dialogs_CE8F7A0M_esm_js_1, string_js_1, utils_sPSU5tXH_esm_js_1, searchers_js_1, dialog_bIV6Y2PF_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = void 0;\n //#region src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue?vue&type=script&setup=true&lang.ts\n var E = { class: \"dialog_regionSelectorRegions_header\" }, D = [\"data-top-icon\"], O = [\"src\", \"alt\"], k = { class: \"top-ellipsis\" }, A = { class: \"dialog_regionSelectorRegions_regionAreaName\" }, j = { key: 1 }, M = [\"data-top-icon\"], N = /* @__PURE__ */ (0, vue_1.defineComponent)({\n id: \"regionSelectorRegions\",\n __name: \"dialog_regionSelectorRegions\",\n props: {\n regions: {},\n regionsIndexes: {},\n \"@update:regionsIndexes\": { type: Function }\n },\n setup(g) {\n let N = g, P = (0, utils_sPSU5tXH_esm_js_1.r)(), F = (0, vue_1.ref)([]), I = (0, vue_1.ref)(null), L = (0, vue_1.reactive)({\n searcher_key: -1,\n key: -1,\n name: -1\n }), R = (0, vue_1.computed)({\n get() {\n return F.value.every((e) => e.selected);\n },\n set(e) {\n F.value = F.value.map((t) => ({\n ...t,\n selected: e\n }));\n }\n }), z = (e) => {\n L[e] = -L[e], F.value.sort((t, n) => !t[e] || !n[e] ? -1 : t[e] >= n[e] ? L[e] : -L[e]);\n }, B = () => {\n if (!F.value.some((e) => e.selected))\n return;\n let e = F.value.filter((e) => e.selected).map((e) => e.index);\n N[\"@update:regionsIndexes\"]?.(e), P.close();\n };\n (0, vue_1.watch)([() => N.regions, () => N.regionsIndexes], () => {\n if (F.value = [], !N.regions || !N.regionsIndexes)\n return;\n let e = [...N.regions], t = new Map(N.regionsIndexes.map((e, t) => [e, t]));\n e.sort((e, n) => (t.get(e.index) ?? Number.MAX_VALUE) - (t.get(n.index) ?? Number.MAX_VALUE)), e.forEach((e) => {\n let t = e.name;\n e.areaName && (t += ` (${e.areaName})`);\n let r = N.regionsIndexes?.includes(e.index) ?? !1, s = (0, searchers_js_1.getSearcherGIcon)(e.searcher_key), c = e.lang === void 0 ? void 0 : (0, searchers_js_1.getLangLabel)(e.searcher_key ?? 999, e.lang), l = e.device === void 0 ? void 0 : (0, searchers_js_1.getDeviceGIcon)(e.device), u = e.countryCode === void 0 ? void 0 : (0, string_js_1.genFlagLinkByCountryCode)(e.countryCode), d = {\n ...e,\n selected: r,\n title: t,\n searcherIcon: s,\n langLabel: c,\n deviceIcon: l,\n flagLink: u\n };\n F.value.push(d);\n });\n });\n let V = () => {\n if (!forms_DByj6MWE_esm_js_1.O.$?.ui.sortable) {\n console.info(\"Для работы сортировки требуется глобальная загрузка jQuery UI Sortable\");\n return;\n }\n I.value && $(I.value).sortable({\n distance: 10,\n stop: () => {\n let e = [...I.value.children].map((e) => Number(e.getAttribute(\"data-region-index\")));\n F.value.sort((t, n) => e.indexOf(t.index) - e.indexOf(n.index));\n }\n });\n }, H = () => {\n forms_DByj6MWE_esm_js_1.O.$?.ui.sortable && I.value && $(I.value).sortable(\"destroy\");\n };\n return (e, n) => {\n let r = (0, vue_1.resolveComponent)(\"TopCheckbox\"), i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.unref)(dialogs_CE8F7A0M_esm_js_1.a), {\n id: (0, vue_1.unref)(P).id,\n pageActive: \"regions\",\n class: \"dialog_regionSelectorRegions\",\n height: \"600px\",\n width: \"600px\",\n onOpen: V,\n onClose: H\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)((0, vue_1.unref)(dialog_bIV6Y2PF_esm_js_1.r), {\n name: \"regions\",\n order: 0\n }, {\n header: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", E, [\n (0, vue_1.createVNode)(r, {\n modelValue: R.value,\n \"onUpdate:modelValue\": n[0] ||= (e) => R.value = e\n }, null, 8, [\"modelValue\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[1] ||= (e) => z(\"searcher_key\"),\n title: e.$i18n.Projects?.Sort_by_search_engine\n }, null, 8, [\"title\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[2] ||= (e) => z(\"key\"),\n title: e.$i18n.Projects?.Sort_by_yande_region_code\n }, null, 8, [\"title\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[3] ||= (e) => z(\"name\"),\n title: e.$i18n.Projects?.Sort_by_lphabetically\n }, null, 8, [\"title\"])\n ])]),\n body: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", {\n ref_key: \"elRegions\",\n ref: I\n }, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(F.value, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(r, {\n key: e.index,\n modelValue: e.selected,\n \"onUpdate:modelValue\": (t) => e.selected = t,\n class: \"dialog_regionSelectorRegions_region\",\n \"data-region-index\": e.index\n }, {\n default: (0, vue_1.withCtx)(() => [\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"dialog_regionSelectorRegions_regionSearcherIcon\",\n \"data-top-icon\": e.searcherIcon\n }, null, 8, D),\n e.flagLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"img\", {\n key: 0,\n class: \"top-flag\",\n src: \"//topvisor.dev\" + e.flagLink,\n alt: e.countryCode\n }, null, 8, O)) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.createElementVNode)(\"div\", k, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.name) + \" \", 1), (0, vue_1.createElementVNode)(\"span\", A, (0, vue_1.toDisplayString)(e.areaName), 1)]),\n e.langLabel ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", j, \" [\" + (0, vue_1.toDisplayString)(e.langLabel) + \"] \", 1)) : (0, vue_1.createCommentVNode)(\"\", !0),\n e.deviceIcon ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 2,\n \"data-top-icon\": e.deviceIcon\n }, null, 8, M)) : (0, vue_1.createCommentVNode)(\"\", !0)\n ]),\n _: 2\n }, 1032, [\n \"modelValue\",\n \"onUpdate:modelValue\",\n \"data-region-index\"\n ]))), 128))], 512)]),\n footer: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)(i, { onClick: B }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.$i18n.Common?.Apply), 1)]),\n _: 1\n })]),\n _: 1\n })]),\n _: 1\n }, 8, [\"id\"]);\n };\n }\n });\n exports.default = N;\n});\n//# sourceMappingURL=dialog_regionSelectorRegions-gPKA93af.esm.js.map\n","<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'regionSelectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_regionSelectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"]}
1
+ {"version":3,"sources":[".chunks/dialog_regionSelectorRegions-DFZTiYi6.esm.js","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue"],"names":["vue","exports","E","D","O","k","A","j","M","vue_1","N","g","P","utils_BTHruVpQ_esm_js_1","F","I","L","R","z","B","t","n","s","searchers_js_1","c","l","u","string_js_1","d","V","forms_C2ItFa61_esm_js_1","H","r","dialogs_CjrddGh6_esm_js_1","dialog_ClCAM1nI_esm_js_1"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-C2ItFa61.esm.js\", \"./dialogs-CjrddGh6.esm.js\", \"../utils/string.js\", \"./utils-BTHruVpQ.esm.js\", \"../utils/searchers.js\", \"./dialog-ClCAM1nI.esm.js\", \"vue\"], function (require, exports, forms_C2ItFa61_esm_js_1, dialogs_CjrddGh6_esm_js_1, string_js_1, utils_BTHruVpQ_esm_js_1, searchers_js_1, dialog_ClCAM1nI_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = void 0;\n //#region src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue?vue&type=script&setup=true&lang.ts\n var E = { class: \"dialog_regionSelectorRegions_header\" }, D = [\"data-top-icon\"], O = [\"src\", \"alt\"], k = { class: \"top-ellipsis\" }, A = { class: \"dialog_regionSelectorRegions_regionAreaName\" }, j = { key: 1 }, M = [\"data-top-icon\"], N = /* @__PURE__ */ (0, vue_1.defineComponent)({\n id: \"regionSelectorRegions\",\n __name: \"dialog_regionSelectorRegions\",\n props: {\n regions: {},\n regionsIndexes: {},\n \"@update:regionsIndexes\": { type: Function }\n },\n setup(g) {\n let N = g, P = (0, utils_BTHruVpQ_esm_js_1.r)(), F = (0, vue_1.ref)([]), I = (0, vue_1.ref)(null), L = (0, vue_1.reactive)({\n searcher_key: -1,\n key: -1,\n name: -1\n }), R = (0, vue_1.computed)({\n get() {\n return F.value.every((e) => e.selected);\n },\n set(e) {\n F.value = F.value.map((t) => ({\n ...t,\n selected: e\n }));\n }\n }), z = (e) => {\n L[e] = -L[e], F.value.sort((t, n) => !t[e] || !n[e] ? -1 : t[e] >= n[e] ? L[e] : -L[e]);\n }, B = () => {\n if (!F.value.some((e) => e.selected))\n return;\n let e = F.value.filter((e) => e.selected).map((e) => e.index);\n N[\"@update:regionsIndexes\"]?.(e), P.close();\n };\n (0, vue_1.watch)([() => N.regions, () => N.regionsIndexes], () => {\n if (F.value = [], !N.regions || !N.regionsIndexes)\n return;\n let e = [...N.regions], t = new Map(N.regionsIndexes.map((e, t) => [e, t]));\n e.sort((e, n) => (t.get(e.index) ?? Number.MAX_VALUE) - (t.get(n.index) ?? Number.MAX_VALUE)), e.forEach((e) => {\n let t = e.name;\n e.areaName && (t += ` (${e.areaName})`);\n let r = N.regionsIndexes?.includes(e.index) ?? !1, s = (0, searchers_js_1.getSearcherGIcon)(e.searcher_key), c = e.lang === void 0 ? void 0 : (0, searchers_js_1.getLangLabel)(e.searcher_key ?? 999, e.lang), l = e.device === void 0 ? void 0 : (0, searchers_js_1.getDeviceGIcon)(e.device), u = e.countryCode === void 0 ? void 0 : (0, string_js_1.genFlagLinkByCountryCode)(e.countryCode), d = {\n ...e,\n selected: r,\n title: t,\n searcherIcon: s,\n langLabel: c,\n deviceIcon: l,\n flagLink: u\n };\n F.value.push(d);\n });\n });\n let V = () => {\n if (!forms_C2ItFa61_esm_js_1.O.$?.ui.sortable) {\n console.info(\"Для работы сортировки требуется глобальная загрузка jQuery UI Sortable\");\n return;\n }\n I.value && $(I.value).sortable({\n distance: 10,\n stop: () => {\n let e = [...I.value.children].map((e) => Number(e.getAttribute(\"data-region-index\")));\n F.value.sort((t, n) => e.indexOf(t.index) - e.indexOf(n.index));\n }\n });\n }, H = () => {\n forms_C2ItFa61_esm_js_1.O.$?.ui.sortable && I.value && $(I.value).sortable(\"destroy\");\n };\n return (e, n) => {\n let r = (0, vue_1.resolveComponent)(\"TopCheckbox\"), i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.unref)(dialogs_CjrddGh6_esm_js_1.a), {\n id: (0, vue_1.unref)(P).id,\n pageActive: \"regions\",\n class: \"dialog_regionSelectorRegions\",\n height: \"600px\",\n width: \"600px\",\n onOpen: V,\n onClose: H\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)((0, vue_1.unref)(dialog_ClCAM1nI_esm_js_1.r), {\n name: \"regions\",\n order: 0\n }, {\n header: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", E, [\n (0, vue_1.createVNode)(r, {\n modelValue: R.value,\n \"onUpdate:modelValue\": n[0] ||= (e) => R.value = e\n }, null, 8, [\"modelValue\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[1] ||= (e) => z(\"searcher_key\"),\n title: e.$i18n.Projects?.Sort_by_search_engine\n }, null, 8, [\"title\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[2] ||= (e) => z(\"key\"),\n title: e.$i18n.Projects?.Sort_by_yande_region_code\n }, null, 8, [\"title\"]),\n (0, vue_1.createVNode)(i, {\n class: \"dialog_regionSelectorRegions_sortButton\",\n color: \"theme\",\n \"data-top-icon\": \"\",\n onClick: n[3] ||= (e) => z(\"name\"),\n title: e.$i18n.Projects?.Sort_by_lphabetically\n }, null, 8, [\"title\"])\n ])]),\n body: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", {\n ref_key: \"elRegions\",\n ref: I\n }, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(F.value, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(r, {\n key: e.index,\n modelValue: e.selected,\n \"onUpdate:modelValue\": (t) => e.selected = t,\n class: \"dialog_regionSelectorRegions_region\",\n \"data-region-index\": e.index\n }, {\n default: (0, vue_1.withCtx)(() => [\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"dialog_regionSelectorRegions_regionSearcherIcon\",\n \"data-top-icon\": e.searcherIcon\n }, null, 8, D),\n e.flagLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"img\", {\n key: 0,\n class: \"top-flag\",\n src: \"//topvisor.dev\" + e.flagLink,\n alt: e.countryCode\n }, null, 8, O)) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.createElementVNode)(\"div\", k, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.name) + \" \", 1), (0, vue_1.createElementVNode)(\"span\", A, (0, vue_1.toDisplayString)(e.areaName), 1)]),\n e.langLabel ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", j, \" [\" + (0, vue_1.toDisplayString)(e.langLabel) + \"] \", 1)) : (0, vue_1.createCommentVNode)(\"\", !0),\n e.deviceIcon ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 2,\n \"data-top-icon\": e.deviceIcon\n }, null, 8, M)) : (0, vue_1.createCommentVNode)(\"\", !0)\n ]),\n _: 2\n }, 1032, [\n \"modelValue\",\n \"onUpdate:modelValue\",\n \"data-region-index\"\n ]))), 128))], 512)]),\n footer: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)(i, { onClick: B }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.$i18n.Common?.Apply), 1)]),\n _: 1\n })]),\n _: 1\n })]),\n _: 1\n }, 8, [\"id\"]);\n };\n }\n });\n exports.default = N;\n});\n//# sourceMappingURL=dialog_regionSelectorRegions-DFZTiYi6.esm.js.map\n","<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'regionSelectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_regionSelectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_regionSelectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"]}
@@ -5,12 +5,12 @@
5
5
  _autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
6
6
  /* end import css */
7
7
 
8
- import { O as e } from "./forms-DByj6MWE.esm.js";
9
- import { a as t } from "./dialogs-CE8F7A0M.esm.js";
8
+ import { O as e } from "./forms-C2ItFa61.esm.js";
9
+ import { a as t } from "./dialogs-CjrddGh6.esm.js";
10
10
  import { genFlagLinkByCountryCode as n } from "../utils/string.js";
11
- import { r } from "./utils-sPSU5tXH.esm.js";
11
+ import { r } from "./utils-BTHruVpQ.esm.js";
12
12
  import { getDeviceGIcon as i, getLangLabel as a, getSearcherGIcon as o } from "../utils/searchers.js";
13
- import { r as s } from "./dialog-bIV6Y2PF.esm.js";
13
+ import { r as s } from "./dialog-ClCAM1nI.esm.js";
14
14
  import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createTextVNode as m, createVNode as h, defineComponent as g, openBlock as _, reactive as v, ref as y, renderList as b, resolveComponent as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
15
15
  //#region src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue?vue&type=script&setup=true&lang.ts
16
16
  var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"], O = ["src", "alt"], k = { class: "top-ellipsis" }, A = { class: "dialog_regionSelectorRegions_regionAreaName" }, j = { key: 1 }, M = ["data-top-icon"], N = /* @__PURE__ */ g({
@@ -166,4 +166,4 @@ var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"],
166
166
  //#endregion
167
167
  export { N as default };
168
168
 
169
- //# sourceMappingURL=dialog_regionSelectorRegions-gPKA93af.esm.js.map
169
+ //# sourceMappingURL=dialog_regionSelectorRegions-DFZTiYi6.esm.js.map