@topvisor/ui 1.0.19 → 1.0.20-focus-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/.chunks/{datepicker-B8O5mg_G.es.js → datepicker-BbASdlXo.es.js} +2 -2
  2. package/.chunks/datepicker-BbASdlXo.es.js.map +1 -0
  3. package/.chunks/{datepicker-CFiizYlZ.amd.js → datepicker-CSpzAz1a.amd.js} +2 -2
  4. package/.chunks/datepicker-CSpzAz1a.amd.js.map +1 -0
  5. package/.chunks/{forms-DW_XLzg8.es.js → forms-BciWy0wX.es.js} +723 -749
  6. package/.chunks/forms-BciWy0wX.es.js.map +1 -0
  7. package/.chunks/forms-Dh0QU6P9.amd.js +3 -0
  8. package/.chunks/forms-Dh0QU6P9.amd.js.map +1 -0
  9. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-saYIC17M.es.js → listItem.vue_vue_type_script_setup_true_lang-CZqS-tRD.es.js} +12 -12
  10. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CZqS-tRD.es.js.map +1 -0
  11. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-naMiJruI.amd.js → listItem.vue_vue_type_script_setup_true_lang-Del8bjSk.amd.js} +2 -2
  12. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-Del8bjSk.amd.js.map +1 -0
  13. package/.chunks/{menu.vue_vue_type_style_index_0_lang-06YUloqb.amd.js → menu.vue_vue_type_style_index_0_lang-B8-UPDGJ.amd.js} +2 -2
  14. package/.chunks/menu.vue_vue_type_style_index_0_lang-B8-UPDGJ.amd.js.map +1 -0
  15. package/.chunks/{menu.vue_vue_type_style_index_0_lang-CcspstQc.es.js → menu.vue_vue_type_style_index_0_lang-yNOWbXpd.es.js} +25 -25
  16. package/.chunks/menu.vue_vue_type_style_index_0_lang-yNOWbXpd.es.js.map +1 -0
  17. package/.chunks/{notice-zADfJ5TR.amd.js → notice-DEcP2RCJ.amd.js} +2 -2
  18. package/.chunks/notice-DEcP2RCJ.amd.js.map +1 -0
  19. package/.chunks/{notice-BQyuy4nF.es.js → notice-DQSQs6yC.es.js} +3 -3
  20. package/.chunks/notice-DQSQs6yC.es.js.map +1 -0
  21. package/.chunks/{popup-CPS-7fSX.amd.js → popup-BdJJx21M.amd.js} +2 -2
  22. package/.chunks/popup-BdJJx21M.amd.js.map +1 -0
  23. package/.chunks/{popup-DsVptZvL.es.js → popup-D-6PIelY.es.js} +3 -2
  24. package/.chunks/popup-D-6PIelY.es.js.map +1 -0
  25. package/.chunks/store-CX_6ZXhO.es.js.map +1 -1
  26. package/.chunks/store-esTid5oI.amd.js.map +1 -1
  27. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-BkBYW0yR.es.js → utils-9b7woobj.es.js} +147 -75
  28. package/.chunks/utils-9b7woobj.es.js.map +1 -0
  29. package/.chunks/{utils-DIP-BdDy.es.js → utils-BvHwHAyQ.es.js} +64 -64
  30. package/.chunks/utils-BvHwHAyQ.es.js.map +1 -0
  31. package/.chunks/utils-CPty_L5T.amd.js +2 -0
  32. package/.chunks/utils-CPty_L5T.amd.js.map +1 -0
  33. package/.chunks/utils-DAfofcEq.amd.js +2 -0
  34. package/.chunks/utils-DAfofcEq.amd.js.map +1 -0
  35. package/README.md +82 -82
  36. package/assets/forms.css +1 -1
  37. package/assets/layout.css +1 -1
  38. package/charts/charts.amd.js +1 -1
  39. package/charts/charts.amd.js.map +1 -1
  40. package/charts/charts.js +8 -8
  41. package/charts/charts.js.map +1 -1
  42. package/components/dialog/dialog/dialog.vue.d.ts +1 -1
  43. package/components/forms/checkbox/checkbox.d.ts +5 -3
  44. package/components/forms/checkbox/checkbox.vue.d.ts +2 -2
  45. package/components/forms/radio/radio.d.ts +1 -1
  46. package/components/forms/radio/radio.vue.d.ts +2 -2
  47. package/core/app.amd.js +1 -1
  48. package/core/app.amd.js.map +1 -1
  49. package/core/app.d.ts +2 -2
  50. package/core/app.js +32 -32
  51. package/core/app.js.map +1 -1
  52. package/core/plugins/i18n.d.ts +0 -10
  53. package/dialog/dialog.amd.js +1 -1
  54. package/dialog/dialog.amd.js.map +1 -1
  55. package/dialog/dialog.js +32 -33
  56. package/dialog/dialog.js.map +1 -1
  57. package/forms/forms.amd.js +1 -1
  58. package/forms/forms.js +1 -1
  59. package/forms/helpers.amd.js.map +1 -1
  60. package/forms/helpers.js.map +1 -1
  61. package/formsExt/formsExt.amd.js +1 -1
  62. package/formsExt/formsExt.amd.js.map +1 -1
  63. package/formsExt/formsExt.js +91 -91
  64. package/formsExt/formsExt.js.map +1 -1
  65. package/icomoon/Read Me.txt +7 -7
  66. package/icomoon/Topvisor icons.json +6259 -6144
  67. package/icomoon/demo-files/demo.css +158 -158
  68. package/icomoon/demo-files/demo.js +30 -30
  69. package/icomoon/demo.html +3558 -3488
  70. package/icomoon/fonts/Topvisor-2.eot +0 -0
  71. package/icomoon/fonts/Topvisor-2.svg +276 -271
  72. package/icomoon/fonts/Topvisor-2.ttf +0 -0
  73. package/icomoon/fonts/Topvisor-2.woff +0 -0
  74. package/icomoon/selection.json +1 -1
  75. package/icomoon/style.css +780 -765
  76. package/jquery-ui.min.css +5 -5
  77. package/layout/layout.amd.js +1 -1
  78. package/layout/layout.amd.js.map +1 -1
  79. package/layout/layout.js +7 -7
  80. package/layout/layout.js.map +1 -1
  81. package/package.json +33 -34
  82. package/popup/popup.amd.js +1 -1
  83. package/popup/popup.amd.js.map +1 -1
  84. package/popup/popup.js +17 -17
  85. package/popup/popup.js.map +1 -1
  86. package/popup/worker.amd.js +1 -1
  87. package/popup/worker.amd.js.map +1 -1
  88. package/popup/worker.js +2 -2
  89. package/popup/worker.js.map +1 -1
  90. package/project/project.amd.js +1 -1
  91. package/project/project.amd.js.map +1 -1
  92. package/project/project.js +311 -311
  93. package/project/project.js.map +1 -1
  94. package/require/css.amd.js +12 -12
  95. package/tabs/tabs.amd.js.map +1 -1
  96. package/tabs/tabs.js +5 -5
  97. package/tabs/tabs.js.map +1 -1
  98. package/tabsView/tabsView.amd.js +1 -1
  99. package/tabsView/tabsView.amd.js.map +1 -1
  100. package/tabsView/tabsView.js +40 -40
  101. package/tabsView/tabsView.js.map +1 -1
  102. package/utils/check.amd.js.map +1 -1
  103. package/utils/check.js.map +1 -1
  104. package/utils/clipboard.amd.js +1 -1
  105. package/utils/clipboard.amd.js.map +1 -1
  106. package/utils/clipboard.js +1 -1
  107. package/utils/clipboard.js.map +1 -1
  108. package/utils/date.amd.js +1 -1
  109. package/utils/date.js +1 -1
  110. package/utils/device.amd.js +1 -1
  111. package/utils/device.js +1 -1
  112. package/utils/dom.amd.js +1 -1
  113. package/utils/dom.amd.js.map +1 -1
  114. package/utils/dom.js +30 -30
  115. package/utils/dom.js.map +1 -1
  116. package/utils/image.amd.js.map +1 -1
  117. package/utils/image.js.map +1 -1
  118. package/utils/keyboard.amd.js.map +1 -1
  119. package/utils/keyboard.js.map +1 -1
  120. package/utils/lodash.amd.js +1 -1
  121. package/utils/lodash.js +1 -1
  122. package/utils/number.amd.js.map +1 -1
  123. package/utils/number.js.map +1 -1
  124. package/utils/price.amd.js +1 -1
  125. package/utils/price.amd.js.map +1 -1
  126. package/utils/price.js +3 -3
  127. package/utils/price.js.map +1 -1
  128. package/utils/route.amd.js +1 -1
  129. package/utils/route.amd.js.map +1 -1
  130. package/utils/route.js +5 -5
  131. package/utils/route.js.map +1 -1
  132. package/utils/scroll.amd.js.map +1 -1
  133. package/utils/scroll.js.map +1 -1
  134. package/utils/searchers.amd.js.map +1 -1
  135. package/utils/searchers.js +2 -0
  136. package/utils/searchers.js.map +1 -1
  137. package/utils/string.amd.js +1 -1
  138. package/utils/string.amd.js.map +1 -1
  139. package/utils/string.js +29 -29
  140. package/utils/string.js.map +1 -1
  141. package/utils/system.amd.js.map +1 -1
  142. package/utils/system.js.map +1 -1
  143. package/utils/url.amd.js.map +1 -1
  144. package/utils/url.js.map +1 -1
  145. package/web-types.json +130 -130
  146. package/.chunks/datepicker-B8O5mg_G.es.js.map +0 -1
  147. package/.chunks/datepicker-CFiizYlZ.amd.js.map +0 -1
  148. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-B55gllXV.amd.js +0 -2
  149. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-B55gllXV.amd.js.map +0 -1
  150. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BkBYW0yR.es.js.map +0 -1
  151. package/.chunks/forms-BWc2kMFD.amd.js +0 -3
  152. package/.chunks/forms-BWc2kMFD.amd.js.map +0 -1
  153. package/.chunks/forms-DW_XLzg8.es.js.map +0 -1
  154. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-naMiJruI.amd.js.map +0 -1
  155. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-saYIC17M.es.js.map +0 -1
  156. package/.chunks/menu.vue_vue_type_style_index_0_lang-06YUloqb.amd.js.map +0 -1
  157. package/.chunks/menu.vue_vue_type_style_index_0_lang-CcspstQc.es.js.map +0 -1
  158. package/.chunks/notice-BQyuy4nF.es.js.map +0 -1
  159. package/.chunks/notice-zADfJ5TR.amd.js.map +0 -1
  160. package/.chunks/popup-CPS-7fSX.amd.js.map +0 -1
  161. package/.chunks/popup-DsVptZvL.es.js.map +0 -1
  162. package/.chunks/utils-B75aamxF.amd.js +0 -2
  163. package/.chunks/utils-B75aamxF.amd.js.map +0 -1
  164. package/.chunks/utils-DIP-BdDy.es.js.map +0 -1
  165. package/.chunks/utils-DfYj3r9i.amd.js +0 -2
  166. package/.chunks/utils-DfYj3r9i.amd.js.map +0 -1
  167. package/.chunks/utils-h5v4GPgp.es.js +0 -79
  168. package/.chunks/utils-h5v4GPgp.es.js.map +0 -1
package/utils/url.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sources":["../../src/core/utils/url.ts"],"sourcesContent":["/**\n * Работа с урлами\n * @packageDocumentation\n */\n\nimport punycode from 'punycode';\n\n/**\n * Раскодировать все не ASCII символы в домене URL\n * @param url - домен в ASCII формате\n * @return домен в Unicode формате\n */\nexport const fromPuny = (url: string = ''): string => {\n\turl = url.replace(/[\\r\\n]/g, ' ').trim();\n\n\tif (url.indexOf('xn--') === -1) return url;\n\tif (url.indexOf('/') === -1) return punycode.toUnicode(url);\n\n\tconst host = getHost(url);\n\n\tlet hostNormal = host.toLowerCase();\n\thostNormal = punycode.toUnicode(hostNormal);\n\n\tif (host !== hostNormal) url = url.replace(host, hostNormal);\n\n\treturn url;\n};\n\n/**\n * Закодировать все не ASCII символы в домене URL\n * @param url - домен в Unicode формате\n * @return домен в ASCII формате\n */\nexport const toPuny = (url: string): string => {\n\turl = url.replace(/[\\r\\n]/g, ' ').trim();\n\n\tif (url.indexOf('/') === -1) return punycode.toASCII(url);\n\n\tconst host = getHost(url);\n\n\tlet hostNormal = host.toLowerCase();\n\thostNormal = punycode.toASCII(hostNormal);\n\n\tif (host !== hostNormal) url = url.replace(host, hostNormal);\n\n\treturn url;\n};\n\n/**\n * Получить имя хоста из URL\n */\nexport const getHost = (url: string): string => {\n\treturn url.replace(/(?:^\\w+:\\/\\/)?([^:/]+).*/i, '$1');\n};\n\n/**\n * Привести url к стандартному виду (не в пуникоде и хост в нижнем регистре)\n */\nexport const normalize = (url: string): string => {\n\turl = fromPuny(url);\n\turl = hostToLowerCase(url);\n\n\treturn url;\n};\n\n/**\n * Перевести в url имя хоста в нижний регистр\n */\nexport const hostToLowerCase = (url: string): string => {\n\tconst host = getHost(url);\n\tconst hostNormal = host.toLowerCase();\n\tif (host !== hostNormal) url = url.replace(host, hostNormal);\n\n\treturn url;\n};\n\n/**\n * Получить закодированную строку\n */\nexport const encode = (string: string): string => { return escape(utf8Encode(string)); };\n\n/**\n * Раскодировать строку, полученную функцией encode\n */\nexport const decode = (string: string): string => { return utf8Decode(unescape(string)); };\n\nconst utf8Encode = (string: string): string => {\n\tstring = string.replace(/\\r\\n/g, '\\n');\n\tlet utftext = '';\n\n\tfor (let n = 0; n < string.length; n++) {\n\t\tconst c = string.charCodeAt(n);\n\n\t\tif (c < 128) {\n\t\t\tutftext += String.fromCharCode(c);\n\t\t} else if ((c > 127) && (c < 2048)) {\n\t\t\tutftext += String.fromCharCode((c >> 6) | 192);\n\t\t\tutftext += String.fromCharCode((c & 63) | 128);\n\t\t} else {\n\t\t\tutftext += String.fromCharCode((c >> 12) | 224);\n\t\t\tutftext += String.fromCharCode(((c >> 6) & 63) | 128);\n\t\t\tutftext += String.fromCharCode((c & 63) | 128);\n\t\t}\n\t}\n\n\treturn utftext;\n};\n\n/**\n * private method for UTF-8 decoding\n */\nconst utf8Decode = (utftext: string): string => {\n\tlet string = '';\n\tlet i = 0;\n\tlet c = 0,\n\t\tc1 = 0,\n\t\tc2 = 0;\n\n\twhile (i < utftext.length) {\n\t\tc = utftext.charCodeAt(i);\n\n\t\tif (c < 128) {\n\t\t\tstring += String.fromCharCode(c);\n\t\t\ti++;\n\t\t} else if ((c > 191) && (c < 224)) {\n\t\t\tc2 = utftext.charCodeAt(i + 1);\n\t\t\tstring += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\ti += 2;\n\t\t} else {\n\t\t\tc2 = utftext.charCodeAt(i + 1);\n\t\t\tlet c3 = utftext.charCodeAt(i + 2);\n\t\t\tstring += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn string;\n};\n"],"names":["fromPuny","url","punycode","host","getHost","hostNormal","toPuny","normalize","hostToLowerCase","encode","string","utf8Encode","decode","utf8Decode","utftext","n","c","i","c2","c3"],"mappings":";AAYa,MAAAA,IAAW,CAACC,IAAc,OAAe;AAGrD,MAFAA,IAAMA,EAAI,QAAQ,WAAW,GAAG,EAAE,KAAK,GAEnCA,EAAI,QAAQ,MAAM,MAAM,GAAW,QAAAA;AACnC,MAAAA,EAAI,QAAQ,GAAG,MAAM,GAAW,QAAAC,EAAS,UAAUD,CAAG;AAEpD,QAAAE,IAAOC,EAAQH,CAAG;AAEpB,MAAAI,IAAaF,EAAK,YAAY;AACrB,SAAAE,IAAAH,EAAS,UAAUG,CAAU,GAEtCF,MAASE,MAAYJ,IAAMA,EAAI,QAAQE,GAAME,CAAU,IAEpDJ;AACR,GAOaK,IAAS,CAACL,MAAwB;AAG1C,MAFJA,IAAMA,EAAI,QAAQ,WAAW,GAAG,EAAE,KAAK,GAEnCA,EAAI,QAAQ,GAAG,MAAM,GAAW,QAAAC,EAAS,QAAQD,CAAG;AAElD,QAAAE,IAAOC,EAAQH,CAAG;AAEpB,MAAAI,IAAaF,EAAK,YAAY;AACrB,SAAAE,IAAAH,EAAS,QAAQG,CAAU,GAEpCF,MAASE,MAAYJ,IAAMA,EAAI,QAAQE,GAAME,CAAU,IAEpDJ;AACR,GAKaG,IAAU,CAACH,MAChBA,EAAI,QAAQ,6BAA6B,IAAI,GAMxCM,IAAY,CAACN,OACzBA,IAAMD,EAASC,CAAG,GAClBA,IAAMO,EAAgBP,CAAG,GAElBA,IAMKO,IAAkB,CAACP,MAAwB;AACjD,QAAAE,IAAOC,EAAQH,CAAG,GAClBI,IAAaF,EAAK,YAAY;AACpC,SAAIA,MAASE,MAAYJ,IAAMA,EAAI,QAAQE,GAAME,CAAU,IAEpDJ;AACR,GAKaQ,IAAS,CAACC,MAAoC,OAAOC,EAAWD,CAAM,CAAC,GAKvEE,IAAS,CAACF,MAAoCG,EAAW,SAASH,CAAM,CAAC,GAEhFC,IAAa,CAACD,MAA2B;AACrC,EAAAA,IAAAA,EAAO,QAAQ,SAAS;AAAA,CAAI;AACrC,MAAII,IAAU;AAEd,WAASC,IAAI,GAAGA,IAAIL,EAAO,QAAQK,KAAK;AACjC,UAAAC,IAAIN,EAAO,WAAWK,CAAC;AAE7B,IAAIC,IAAI,MACIF,KAAA,OAAO,aAAaE,CAAC,IACrBA,IAAI,OAASA,IAAI,QAC5BF,KAAW,OAAO,aAAcE,KAAK,IAAK,GAAG,GAC7CF,KAAW,OAAO,aAAcE,IAAI,KAAM,GAAG,MAE7CF,KAAW,OAAO,aAAcE,KAAK,KAAM,GAAG,GAC9CF,KAAW,OAAO,aAAeE,KAAK,IAAK,KAAM,GAAG,GACpDF,KAAW,OAAO,aAAcE,IAAI,KAAM,GAAG;AAAA,EAC9C;AAGM,SAAAF;AACR,GAKMD,IAAa,CAACC,MAA4B;AAC/C,MAAIJ,IAAS,IACTO,IAAI,GACJD,IAAI,GAEPE,IAAK;AAEC,SAAAD,IAAIH,EAAQ;AAGlB,QAFIE,IAAAF,EAAQ,WAAWG,CAAC,GAEpBD,IAAI;AACG,MAAAN,KAAA,OAAO,aAAaM,CAAC,GAC/BC;AAAA,aACWD,IAAI,OAASA,IAAI;AACvB,MAAAE,IAAAJ,EAAQ,WAAWG,IAAI,CAAC,GAC7BP,KAAU,OAAO,cAAeM,IAAI,OAAO,IAAME,IAAK,EAAG,GACpDD,KAAA;AAAA,SACC;AACD,MAAAC,IAAAJ,EAAQ,WAAWG,IAAI,CAAC;AAC7B,UAAIE,IAAKL,EAAQ,WAAWG,IAAI,CAAC;AACvB,MAAAP,KAAA,OAAO,cAAeM,IAAI,OAAO,MAAQE,IAAK,OAAO,IAAMC,IAAK,EAAG,GACxEF,KAAA;AAAA,IAAA;AAIA,SAAAP;AACR;"}
1
+ {"version":3,"file":"url.js","sources":["../../src/core/utils/url.ts"],"sourcesContent":["/**\r\n * Работа с урлами\r\n * @packageDocumentation\r\n */\r\n\r\nimport punycode from 'punycode';\r\n\r\n/**\r\n * Раскодировать все не ASCII символы в домене URL\r\n * @param url - домен в ASCII формате\r\n * @return домен в Unicode формате\r\n */\r\nexport const fromPuny = (url: string = ''): string => {\r\n\turl = url.replace(/[\\r\\n]/g, ' ').trim();\r\n\r\n\tif (url.indexOf('xn--') === -1) return url;\r\n\tif (url.indexOf('/') === -1) return punycode.toUnicode(url);\r\n\r\n\tconst host = getHost(url);\r\n\r\n\tlet hostNormal = host.toLowerCase();\r\n\thostNormal = punycode.toUnicode(hostNormal);\r\n\r\n\tif (host !== hostNormal) url = url.replace(host, hostNormal);\r\n\r\n\treturn url;\r\n};\r\n\r\n/**\r\n * Закодировать все не ASCII символы в домене URL\r\n * @param url - домен в Unicode формате\r\n * @return домен в ASCII формате\r\n */\r\nexport const toPuny = (url: string): string => {\r\n\turl = url.replace(/[\\r\\n]/g, ' ').trim();\r\n\r\n\tif (url.indexOf('/') === -1) return punycode.toASCII(url);\r\n\r\n\tconst host = getHost(url);\r\n\r\n\tlet hostNormal = host.toLowerCase();\r\n\thostNormal = punycode.toASCII(hostNormal);\r\n\r\n\tif (host !== hostNormal) url = url.replace(host, hostNormal);\r\n\r\n\treturn url;\r\n};\r\n\r\n/**\r\n * Получить имя хоста из URL\r\n */\r\nexport const getHost = (url: string): string => {\r\n\treturn url.replace(/(?:^\\w+:\\/\\/)?([^:/]+).*/i, '$1');\r\n};\r\n\r\n/**\r\n * Привести url к стандартному виду (не в пуникоде и хост в нижнем регистре)\r\n */\r\nexport const normalize = (url: string): string => {\r\n\turl = fromPuny(url);\r\n\turl = hostToLowerCase(url);\r\n\r\n\treturn url;\r\n};\r\n\r\n/**\r\n * Перевести в url имя хоста в нижний регистр\r\n */\r\nexport const hostToLowerCase = (url: string): string => {\r\n\tconst host = getHost(url);\r\n\tconst hostNormal = host.toLowerCase();\r\n\tif (host !== hostNormal) url = url.replace(host, hostNormal);\r\n\r\n\treturn url;\r\n};\r\n\r\n/**\r\n * Получить закодированную строку\r\n */\r\nexport const encode = (string: string): string => { return escape(utf8Encode(string)); };\r\n\r\n/**\r\n * Раскодировать строку, полученную функцией encode\r\n */\r\nexport const decode = (string: string): string => { return utf8Decode(unescape(string)); };\r\n\r\nconst utf8Encode = (string: string): string => {\r\n\tstring = string.replace(/\\r\\n/g, '\\n');\r\n\tlet utftext = '';\r\n\r\n\tfor (let n = 0; n < string.length; n++) {\r\n\t\tconst c = string.charCodeAt(n);\r\n\r\n\t\tif (c < 128) {\r\n\t\t\tutftext += String.fromCharCode(c);\r\n\t\t} else if ((c > 127) && (c < 2048)) {\r\n\t\t\tutftext += String.fromCharCode((c >> 6) | 192);\r\n\t\t\tutftext += String.fromCharCode((c & 63) | 128);\r\n\t\t} else {\r\n\t\t\tutftext += String.fromCharCode((c >> 12) | 224);\r\n\t\t\tutftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n\t\t\tutftext += String.fromCharCode((c & 63) | 128);\r\n\t\t}\r\n\t}\r\n\r\n\treturn utftext;\r\n};\r\n\r\n/**\r\n * private method for UTF-8 decoding\r\n */\r\nconst utf8Decode = (utftext: string): string => {\r\n\tlet string = '';\r\n\tlet i = 0;\r\n\tlet c = 0,\r\n\t\tc1 = 0,\r\n\t\tc2 = 0;\r\n\r\n\twhile (i < utftext.length) {\r\n\t\tc = utftext.charCodeAt(i);\r\n\r\n\t\tif (c < 128) {\r\n\t\t\tstring += String.fromCharCode(c);\r\n\t\t\ti++;\r\n\t\t} else if ((c > 191) && (c < 224)) {\r\n\t\t\tc2 = utftext.charCodeAt(i + 1);\r\n\t\t\tstring += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\r\n\t\t\ti += 2;\r\n\t\t} else {\r\n\t\t\tc2 = utftext.charCodeAt(i + 1);\r\n\t\t\tlet c3 = utftext.charCodeAt(i + 2);\r\n\t\t\tstring += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n\t\t\ti += 3;\r\n\t\t}\r\n\t}\r\n\r\n\treturn string;\r\n};\r\n"],"names":["fromPuny","url","punycode","host","getHost","hostNormal","toPuny","normalize","hostToLowerCase","encode","string","utf8Encode","decode","utf8Decode","utftext","n","c","i","c2","c3"],"mappings":";AAYa,MAAAA,IAAW,CAACC,IAAc,OAAe;AAGrD,MAFAA,IAAMA,EAAI,QAAQ,WAAW,GAAG,EAAE,KAAK,GAEnCA,EAAI,QAAQ,MAAM,MAAM,GAAW,QAAAA;AACnC,MAAAA,EAAI,QAAQ,GAAG,MAAM,GAAW,QAAAC,EAAS,UAAUD,CAAG;AAEpD,QAAAE,IAAOC,EAAQH,CAAG;AAEpB,MAAAI,IAAaF,EAAK,YAAY;AACrB,SAAAE,IAAAH,EAAS,UAAUG,CAAU,GAEtCF,MAASE,MAAYJ,IAAMA,EAAI,QAAQE,GAAME,CAAU,IAEpDJ;AACR,GAOaK,IAAS,CAACL,MAAwB;AAG1C,MAFJA,IAAMA,EAAI,QAAQ,WAAW,GAAG,EAAE,KAAK,GAEnCA,EAAI,QAAQ,GAAG,MAAM,GAAW,QAAAC,EAAS,QAAQD,CAAG;AAElD,QAAAE,IAAOC,EAAQH,CAAG;AAEpB,MAAAI,IAAaF,EAAK,YAAY;AACrB,SAAAE,IAAAH,EAAS,QAAQG,CAAU,GAEpCF,MAASE,MAAYJ,IAAMA,EAAI,QAAQE,GAAME,CAAU,IAEpDJ;AACR,GAKaG,IAAU,CAACH,MAChBA,EAAI,QAAQ,6BAA6B,IAAI,GAMxCM,IAAY,CAACN,OACzBA,IAAMD,EAASC,CAAG,GAClBA,IAAMO,EAAgBP,CAAG,GAElBA,IAMKO,IAAkB,CAACP,MAAwB;AACjD,QAAAE,IAAOC,EAAQH,CAAG,GAClBI,IAAaF,EAAK,YAAY;AACpC,SAAIA,MAASE,MAAYJ,IAAMA,EAAI,QAAQE,GAAME,CAAU,IAEpDJ;AACR,GAKaQ,IAAS,CAACC,MAAoC,OAAOC,EAAWD,CAAM,CAAC,GAKvEE,IAAS,CAACF,MAAoCG,EAAW,SAASH,CAAM,CAAC,GAEhFC,IAAa,CAACD,MAA2B;AACrC,EAAAA,IAAAA,EAAO,QAAQ,SAAS;AAAA,CAAI;AACrC,MAAII,IAAU;AAEd,WAASC,IAAI,GAAGA,IAAIL,EAAO,QAAQK,KAAK;AACjC,UAAAC,IAAIN,EAAO,WAAWK,CAAC;AAE7B,IAAIC,IAAI,MACIF,KAAA,OAAO,aAAaE,CAAC,IACrBA,IAAI,OAASA,IAAI,QAC5BF,KAAW,OAAO,aAAcE,KAAK,IAAK,GAAG,GAC7CF,KAAW,OAAO,aAAcE,IAAI,KAAM,GAAG,MAE7CF,KAAW,OAAO,aAAcE,KAAK,KAAM,GAAG,GAC9CF,KAAW,OAAO,aAAeE,KAAK,IAAK,KAAM,GAAG,GACpDF,KAAW,OAAO,aAAcE,IAAI,KAAM,GAAG;AAAA,EAC9C;AAGM,SAAAF;AACR,GAKMD,IAAa,CAACC,MAA4B;AAC/C,MAAIJ,IAAS,IACTO,IAAI,GACJD,IAAI,GAEPE,IAAK;AAEC,SAAAD,IAAIH,EAAQ;AAGlB,QAFIE,IAAAF,EAAQ,WAAWG,CAAC,GAEpBD,IAAI;AACG,MAAAN,KAAA,OAAO,aAAaM,CAAC,GAC/BC;AAAA,aACWD,IAAI,OAASA,IAAI;AACvB,MAAAE,IAAAJ,EAAQ,WAAWG,IAAI,CAAC,GAC7BP,KAAU,OAAO,cAAeM,IAAI,OAAO,IAAME,IAAK,EAAG,GACpDD,KAAA;AAAA,SACC;AACD,MAAAC,IAAAJ,EAAQ,WAAWG,IAAI,CAAC;AAC7B,UAAIE,IAAKL,EAAQ,WAAWG,IAAI,CAAC;AACvB,MAAAP,KAAA,OAAO,cAAeM,IAAI,OAAO,MAAQE,IAAK,OAAO,IAAMC,IAAK,EAAG,GACxEF,KAAA;AAAA,IAAA;AAIA,SAAAP;AACR;"}
package/web-types.json CHANGED
@@ -1,130 +1,130 @@
1
- {
2
- "name": "@topvisor/ui",
3
- "version": "1.0.0",
4
- "js-types-syntax": "typescript",
5
- "description-markup": "markdown",
6
- "contributions": {
7
- "html": {
8
- "vue-directives": [
9
- {
10
- "name": "top-data",
11
- "source": {
12
- "module": "@topvisor/ui/core/directives/data",
13
- "symbol": "default"
14
- },
15
- "description": "Сохранить данные в элементе",
16
- "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-data--docs",
17
- "argument": {
18
- "name": "name",
19
- "description": "Имя для сохранения данных"
20
- },
21
- "attribute-value": {
22
- "kind": "plain",
23
- "type": "object"
24
- }
25
- },
26
- {
27
- "name": "top-focus",
28
- "source": {
29
- "module": "@topvisor/ui/core/directives/focus",
30
- "symbol": "default"
31
- },
32
- "modifiers": [
33
- {
34
- "name": "onupdate",
35
- "description": "Выполнять фокусировку при динамической установке значения",
36
- "type": "boolean"
37
- }
38
- ],
39
- "description": "Фокусировка на элементе сразу после его отображения",
40
- "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-focus--docs",
41
- "attribute-value": {
42
- "kind": "plain",
43
- "type": "boolean",
44
- "default": true
45
- }
46
- },
47
- {
48
- "name": "top-scroll-into-view",
49
- "source": {
50
- "module": "@topvisor/ui/core/directives/scrollIntoView",
51
- "symbol": "default"
52
- },
53
- "modifiers": [
54
- {
55
- "name": "immediate",
56
- "description": "При использовании скролл будет произведен сразу, иначе скролл будет произведен при после смены видимости элемента, например через v-show",
57
- "type": "boolean"
58
- }
59
- ],
60
- "description": "Произвести автоскролл к элементу",
61
- "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-scrollIntoView--docs",
62
- "attribute-value": {
63
- "kind": "plain",
64
- "type": "object"
65
- }
66
- },
67
- {
68
- "name": "top-scroll-shadow",
69
- "source": {
70
- "module": "@topvisor/ui/core/directives/scrollShadow",
71
- "symbol": "default"
72
- },
73
- "description": "Добавить отображение тени при появлении скролла у элемента",
74
- "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-scrollshadow--docs",
75
- "attribute-value": {
76
- "kind": "plain",
77
- "type": "object"
78
- }
79
- },
80
- {
81
- "name": "top-sticky",
82
- "source": {
83
- "module": "@topvisor/ui/core/directives/sticky",
84
- "symbol": "default"
85
- },
86
- "description": "Добавлять элементу класс-модификатор, если он перейдет в режим sticky",
87
- "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-sticky--docs",
88
- "modifiers": [
89
- {
90
- "name": "bottom",
91
- "description": "Когда область видимости будет ниже элемента, дополнительный класс удалится",
92
- "type": "boolean"
93
- }
94
- ],
95
- "attribute-value": {
96
- "kind": "plain",
97
- "type": "string",
98
- "default": "top-sticky"
99
- }
100
- },
101
- {
102
- "name": "top-swim-up",
103
- "source": {
104
- "module": "@topvisor/ui/core/directives/swimUp",
105
- "symbol": "default"
106
- },
107
- "description": "Реализует анимацию подплытия блоков при скролле",
108
- "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-swimup--docs",
109
- "attribute-value": {
110
- "kind": "plain",
111
- "type": "object"
112
- }
113
- },
114
- {
115
- "name": "top-tooltip",
116
- "source": {
117
- "module": "@topvisor/ui/core/directives/tooltip",
118
- "symbol": "default"
119
- },
120
- "description": "Добавление всплывающей подсказки к элементу",
121
- "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-tooltip--docs",
122
- "attribute-value": {
123
- "kind": "expression",
124
- "type": "object"
125
- }
126
- }
127
- ]
128
- }
129
- }
130
- }
1
+ {
2
+ "name": "@topvisor/ui",
3
+ "version": "1.0.0",
4
+ "js-types-syntax": "typescript",
5
+ "description-markup": "markdown",
6
+ "contributions": {
7
+ "html": {
8
+ "vue-directives": [
9
+ {
10
+ "name": "top-data",
11
+ "source": {
12
+ "module": "@topvisor/ui/core/directives/data",
13
+ "symbol": "default"
14
+ },
15
+ "description": "Сохранить данные в элементе",
16
+ "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-data--docs",
17
+ "argument": {
18
+ "name": "name",
19
+ "description": "Имя для сохранения данных"
20
+ },
21
+ "attribute-value": {
22
+ "kind": "plain",
23
+ "type": "object"
24
+ }
25
+ },
26
+ {
27
+ "name": "top-focus",
28
+ "source": {
29
+ "module": "@topvisor/ui/core/directives/focus",
30
+ "symbol": "default"
31
+ },
32
+ "modifiers": [
33
+ {
34
+ "name": "onupdate",
35
+ "description": "Выполнять фокусировку при динамической установке значения",
36
+ "type": "boolean"
37
+ }
38
+ ],
39
+ "description": "Фокусировка на элементе сразу после его отображения",
40
+ "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-focus--docs",
41
+ "attribute-value": {
42
+ "kind": "plain",
43
+ "type": "boolean",
44
+ "default": true
45
+ }
46
+ },
47
+ {
48
+ "name": "top-scroll-into-view",
49
+ "source": {
50
+ "module": "@topvisor/ui/core/directives/scrollIntoView",
51
+ "symbol": "default"
52
+ },
53
+ "modifiers": [
54
+ {
55
+ "name": "immediate",
56
+ "description": "При использовании скролл будет произведен сразу, иначе скролл будет произведен при после смены видимости элемента, например через v-show",
57
+ "type": "boolean"
58
+ }
59
+ ],
60
+ "description": "Произвести автоскролл к элементу",
61
+ "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-scrollIntoView--docs",
62
+ "attribute-value": {
63
+ "kind": "plain",
64
+ "type": "object"
65
+ }
66
+ },
67
+ {
68
+ "name": "top-scroll-shadow",
69
+ "source": {
70
+ "module": "@topvisor/ui/core/directives/scrollShadow",
71
+ "symbol": "default"
72
+ },
73
+ "description": "Добавить отображение тени при появлении скролла у элемента",
74
+ "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-scrollshadow--docs",
75
+ "attribute-value": {
76
+ "kind": "plain",
77
+ "type": "object"
78
+ }
79
+ },
80
+ {
81
+ "name": "top-sticky",
82
+ "source": {
83
+ "module": "@topvisor/ui/core/directives/sticky",
84
+ "symbol": "default"
85
+ },
86
+ "description": "Добавлять элементу класс-модификатор, если он перейдет в режим sticky",
87
+ "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-sticky--docs",
88
+ "modifiers": [
89
+ {
90
+ "name": "bottom",
91
+ "description": "Когда область видимости будет ниже элемента, дополнительный класс удалится",
92
+ "type": "boolean"
93
+ }
94
+ ],
95
+ "attribute-value": {
96
+ "kind": "plain",
97
+ "type": "string",
98
+ "default": "top-sticky"
99
+ }
100
+ },
101
+ {
102
+ "name": "top-swim-up",
103
+ "source": {
104
+ "module": "@topvisor/ui/core/directives/swimUp",
105
+ "symbol": "default"
106
+ },
107
+ "description": "Реализует анимацию подплытия блоков при скролле",
108
+ "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-swimup--docs",
109
+ "attribute-value": {
110
+ "kind": "plain",
111
+ "type": "object"
112
+ }
113
+ },
114
+ {
115
+ "name": "top-tooltip",
116
+ "source": {
117
+ "module": "@topvisor/ui/core/directives/tooltip",
118
+ "symbol": "default"
119
+ },
120
+ "description": "Добавление всплывающей подсказки к элементу",
121
+ "doc-url": "https://ui.topvisor.com/?path=/docs/core-directives-tooltip--docs",
122
+ "attribute-value": {
123
+ "kind": "expression",
124
+ "type": "object"
125
+ }
126
+ }
127
+ ]
128
+ }
129
+ }
130
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"datepicker-B8O5mg_G.es.js","sources":["../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["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"],"names":["Core","css","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","toRef","dateFormat","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":";;;AAMAA,EAAK,kBAAkBC,CAAG;AAE1B,MAAMC,IAAI,CAACC,MAAyB;;AACnC,MAAI,GAACC,KAAAC,IAAAL,EAAK,MAAL,gBAAAK,EAAQ,OAAR,QAAAD,EAAY,aAAY;AAC5B,YAAQ,KAAK,0EAA0E;AAEvF;AAAA,EAAA;AAGI,SAAAJ,EAAA,EAAE,WAAW,YAAY;AAAA,IAC7B,YAAYA,EAAK,MAAM,WAAW,YAAA,EAAc,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI;AAAA,EAAA,CACvG,GAEMA,EAAK,EAAEG,CAAE;AACjB;AAEgB,SAAAG,EAAkBH,GAAsBI,GAAc;;AACrE,UAAOF,IAAAH,EAAEC,CAAE,MAAJ,gBAAAE,EAAO,WAAWE;AAC1B;AAEA,IAAIC,GACAC,GACAC,GACAC;AAEJC,EAAMC,EAAMb,EAAK,MAAM,UAAU,GAAG,MAAM;;AAEzC,EAAAQ,IAAgBM,EAAW,YAAY,GACvCL,MAAYJ,IAAAG,EAAc,MAAM,IAAI,MAAxB,gBAAAH,EAA4B,OAAM,KAC9CK,IAAmBF,EAAc,QAAQ,QAAQ,EAAE,EAAE,QACrDG,IAAoB,CAAC;AAErB,WAASI,IAAI,GAAGA,IAAIP,EAAc,QAAQO;AACrC,IAAAP,EAAcO,CAAC,MAAMN,KACxBE,EAAkB,KAAKI,CAAC;AAG3B,GAAG,EAAE,WAAW,IAAM;AAKf,SAASC,EAAQC,GAAQ;AAC3B,MAAAC,IAAeD,EAAE,OAAO,cACxBE,IAAQF,EAAE,OAAO,OAIjBG,IAAiBD,EAAM,UAAU,GAAGD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GACpEG,IAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GAElEI,IAAoBF,EAAe,SAASC,EAAgB,SAASX;AACzE,MAAIY,IAAoB,GAAG;AAET,IAAAF,IAAAA,EAAe,UAAU,GAAGV,CAAgB;AAEvD,UAAAa,IAA2Bb,IAAmBU,EAAe;AACnE,IAAAC,IAAkBA,EAAgB,UAAUA,EAAgB,SAASE,CAAwB;AAAA,EAAA,MAC9F,CAAWD,IAAoB,MAE1BL,EAAE,cAAc,yBAEDG,KAAA,IAAI,OAAO,CAACE,CAAiB,IAE/CD,IAAkB,IAAI,OAAO,CAACC,CAAiB,IAAID;AAIrD,EAAAH,IAAeE,EAAe,QAC9BD,IAAQC,IAAiBC;AAGzB,WAASN,IAAI,GAAGA,IAAIJ,EAAkB,QAAQI,KAAK;AAC5C,UAAAS,IAAiBb,EAAkBI,CAAC;AAElC,IAAAI,IAAAA,EAAM,UAAU,GAAGK,CAAc,IAAIf,IAAYU,EAAM,UAAUK,CAAc,GAGnFN,KAAgBM,KACnBN;AAAA,EACD;AAID,EAAID,EAAE,cAAc,2BAA2BE,EAAMD,IAAe,CAAC,MAAMT,KAC1ES,KAIGC,MAAUF,EAAE,OAAO,UACtBA,EAAE,OAAO,QAAQE,GACjBF,EAAE,OAAO,iBAAiBC,GAC1BD,EAAE,OAAO,eAAeC;AAE1B;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"datepicker-CFiizYlZ.amd.js","sources":["../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["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"],"names":["Core","$","el","forms","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","_a","i","selectionPos","e","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":"0HAMAA,EAAAA,KAAAA,83HAAAA,EAEA,MAAAC,EAAAC,GAAA,uEAEE,QAAA,KAAA,0EAAA,QAEA,CAGD,OAAAC,EAAA,KAAA,EAAA,WAAA,YAAA,CAA8B,WAAAA,EAAA,KAAA,MAAA,WAAA,YAAA,EAAA,QAAA,IAAA,IAAA,EAAA,QAAA,IAAA,IAAA,EAAA,QAAA,IAAA,IAAA,CAC0E,CAAA,EAGxGA,EAAA,KAAA,EAAAD,CAAA,GAGe,SAAAE,EAAAF,EAAAG,EAAA,kDAEhB,CAEA,IAAAC,EACAC,EACAC,EACAC,EAEAC,EAAAA,MAAAA,EAAAA,MAAAA,EAAAA,KAAAA,MAAAA,UAAAA,EAAAA,IAAAA,OAECJ,EAAAH,EAAA,WAAA,YAAA,EACAI,IAAAI,EAAAL,EAAA,MAAA,IAAA,IAAA,YAAAK,EAAA,KAAA,uCAIA,QAAAC,EAAA,EAAAA,EAAAN,EAAA,OAAAM,IACCN,EAAAM,CAAA,IAAAL,GACCE,EAAA,KAAAG,CAAA,CAGH,EAAA,CAAA,UAAA,EAAA,CAAA,gBAMC,IAAAC,EAAAC,EAAA,OAAA,aACAC,EAAAD,EAAA,OAAA,MAIAE,EAAAD,EAAA,UAAA,EAAAF,CAAA,EAAA,QAAA,OAAA,EAAA,EACAI,EAAAF,EAAA,UAAAF,CAAA,EAAA,QAAA,OAAA,EAAA,wBAGA,GAAAK,EAAA,EAAA,oBAIC,MAAAC,EAAAX,EAAAQ,EAAA,gCAC6F,MAAAE,EAAA,IAG7FJ,EAAA,YAAA,6DAQDD,EAAAG,EAAA,OACAD,EAAAC,EAAAC,EAGA,QAAAL,EAAA,EAAAA,EAAAH,EAAA,OAAAG,IAAA,CACC,MAAAQ,EAAAX,EAAAG,CAAA,EAEAG,EAAAA,EAAA,UAAA,EAAAK,CAAA,EAAAb,EAAAQ,EAAA,UAAAK,CAAA,EAGAP,GAAAO,GACCP,GACD,CAIDC,EAAA,YAAA,yBAAAC,EAAAF,EAAA,CAAA,IAAAN,GACCM,yBAKAC,EAAA,OAAA,MAAAC,EACAD,EAAA,OAAA,eAAAD,EACAC,EAAA,OAAA,aAAAD,EAEF"}
@@ -1,2 +0,0 @@
1
- define(["require","exports","vue","../utils/system.amd","../utils/route.amd"],function(p,w,s,y,h){"use strict";if(typeof s>"u")var s=window.Vue;class c{static state={load:void 0,decoratorOnCreate:void 0,viewPageN:0,locationHashPrev:""};static inited=!1;static init(e){if(this.inited)return;this.inited=!0,this.state.load=e==null?void 0:e.load,this.state.decoratorOnCreate=e==null?void 0:e.decoratorOnCreate;const t=(e==null?void 0:e.autoInitDelay)??5e3;$(window).on("hashchange.dialogs",()=>{this.compareStates(location.hash,this.state.locationHashPrev)&&this.opendDialogsFromUrl()}),$(window).trigger("hashchange.dialogs"),$(document).on("mousedown","a[data-to-view]",async i=>{const a=i.target.closest("[data-to-view]"),n=a.dataset.toView.split("-")[0],l=$("#"+n);$("> .modal-layer",l);let d="next";a.dataset.action==="top-dialog-close"&&(d="prev"),a.href=c.genViewPageHash(a.dataset.toView,d)}),$(document).on("click","[data-to-view]",async i=>{const a=i.target.closest("[data-to-view]");if(a.href==="."){i.preventDefault(),a.mousedown(),setTimeout(()=>a.click());return}const r=await this.getDialogsUtils(),n=a.dataset.toView,l=n.split("-")[0],d=$("#"+l),v=$("> .modal-layer",d),m=$("> .active",v),x=!!d.data("data-to-view-replace");let u="next";if(m.length){const A=n.split("-")[1].split(":")[0];$('> [data-view-page="'+A+'"]',v).data("order")<m.data("order")&&(u="prev")}a.dataset.action==="top-dialog-close"&&(u="prev");const f=c.genViewPageHash(n,u);if(a.tagName==="A"){if(!d.is(":visible"))return;if(location.hash.indexOf(n.replace("-","="))!==-1){await r.toViewDirty(n);return}}x?(i.preventDefault(),h.historySetState(!0,f),await r.toViewDirty(n),u=="next"?c.state.viewPageN++:c.state.viewPageN--):a.tagName!=="A"&&(this.compareStates(f,location.hash)?location.hash=f:await r.toViewDirty(n))}),setTimeout(()=>this.getDialogsUtils(),t)}static async getDialogsUtils(){const{TopDialogUtils:e}=await new Promise((t,i)=>p(["./utils-B75aamxF.amd"],t,i));return e}static get$dialog(e){return e.closest(".ui-dialog-content")}static get$page(e){return e.closest("[data-view-page]")}static get$pairPage(e){const t=c.get$dialog(e),a=c.get$page(e).data("view-page");return $('[data-view-page="'+a+'"]',t)}static close(e){const t=$("#"+e);t.dialog("instance")&&t.dialog("close")}static destroy(e){const t=$("#"+e);t.dialog("instance")&&(t.dialog("close"),t.dialog("destroy"))}static genViewPageHash(e,t="next"){var i=this.state.viewPageN;t=="prev"?i--:i++;var a=e.split("-"),r=a.shift(),n=a.join("-"),l=h.genHash("vpn",i),l=h.genHash("view-"+r,n,l);return l}static compareStates(e,t){const i=e.match(/[#&]view-[^&]+/g)||[],a=t.match(/[#&]view-[^&]+/g)||[];return!!(i.length!==a.length||i.filter((n,l)=>{const d=a[l]||"";return n!==d}).length)}static opendDialogsFromUrl=async()=>{const e=Number(h.getHash("vpn"))||0;this.state.locationHashPrev=location.hash;let t;const i=new RegExp("view-((\\w+)=([\\w-]+)(?::([\\w.:-]+))?)","g");for(;t=i.exec(location.hash);){var a="next";return e<this.state.viewPageN&&(a="prev"),(await this.getDialogsUtils()).toViewDirty(t[1],a)}return $(".ui-dialog-content[data-view-page-active]:visible").each((r,n)=>{var l=$(n),d=l.attr("id"),v=h.getHash("view-"+d);v||l.dialog("close")}),this.state.viewPageN=e,!0}}class P{id;idAttr;Component;isMounted=s.ref(!1);isReady=s.ref(!1);isOpened=s.ref(!1);pageActive=s.ref("");isLoadingPage=s.ref(!1);pageActiveNext=s.ref("");props;emit;onCloseOnce;constructor(e){this.id=e.id,this.idAttr="dialog_"+e.id,this.Component=s.markRaw(e)}onMounted(e,t){this.isMounted.value=!0,this.props=e.props,this.emit=t.emit}async open(e="main",t,i=[],a,r){t&&await this.setProps(t),a&&(this.onCloseOnce=a),await(await c.getDialogsUtils()).toView(this.idAttr,e,i,r)}async openAsLink(e="main",t,i=[],a,r){t&&await this.setProps(t),a&&(this.onCloseOnce=a);const n=this.idAttr+"-"+e;location.hash=c.genViewPageHash(n,r)}async close(){c.close(this.idAttr)}async destroy(){c.destroy(this.idAttr)}async setProps(e={}){this.isMounted||await y.waitWhile(()=>!this.props);for(const t in this.props)this.props[t]=e[t]}needShowPage(e){return this.isOpened.value?this.pageActive.value===e||this.pageActiveNext.value===e:!1}}const N={class:"top-dialogs",style:{display:"none"}},g=s.shallowReactive(new Map),V=o=>(o=o.replace(/^dialog_/,""),g.get(o)),D=o=>{if(!(o!=null&&o.id))throw console.log({TopDialogComponent:o}),new Error("Expected TopDialogComponent");return g.has(o.id)||g.set(o.id,new P(o)),g.get(o.id)},k=s.defineComponent({name:"DialogWrapper",__name:"dialogs",setup(o){return s.onUnmounted(()=>{g.forEach(e=>e.destroy()),g.clear()}),(e,t)=>(s.openBlock(),s.createElementBlock("div",N,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(g),([i,a])=>(s.openBlock(),s.createBlock(s.resolveDynamicComponent(a.Component),{key:i}))),128))]))}});w.TopDialogWorker=c,w._sfc_main=k,w.addDialogWorker=D,w.getDialogWorker=V});
2
- //# sourceMappingURL=dialogs.vue_vue_type_script_setup_true_lang-B55gllXV.amd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialogs.vue_vue_type_script_setup_true_lang-B55gllXV.amd.js","sources":["../../src/components/dialog/lib/worker.ts","../../src/components/dialog/dialog/composables/dialogHandle.ts","../../src/components/dialog/dialog/dialogs/dialogs.vue"],"sourcesContent":["import { genHash, getHash, historySetState } from '@/core/utils/route';\nimport type { MoveDirection, TopDialogOptions } from './types';\nimport type { $el } from '@/components/types';\n\nexport abstract class TopDialogWorker {\n\tstatic state = {\n\t\tload: undefined as TopDialogOptions['load'] | undefined,\n\t\tdecoratorOnCreate: undefined as TopDialogOptions['decoratorOnCreate'] | undefined,\n\n\t\t/**\n\t\t * Порядковай номер перехода в диалоговых окнах\n\t\t *\n\t\t * Для расчета направления Вперед / Назад\n\t\t */\n\t\tviewPageN: 0,\n\t\tlocationHashPrev: '',\n\t};\n\n\tprivate static inited = false;\n\n\t/**\n\t * Инициировать события слежения за парамтерами url\n\t *\n\t * Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу\n\t */\n\tstatic init(options?: TopDialogOptions) {\n\t\tif (this.inited) return;\n\t\tthis.inited = true;\n\n\t\tthis.state.load = options?.load;\n\t\tthis.state.decoratorOnCreate = options?.decoratorOnCreate;\n\n\t\tconst autoInitDelay = options?.autoInitDelay ?? 5000;\n\n\t\t$(window).on('hashchange.dialogs', () => {\n\t\t\tconst dialogsStateChanged = this.compareStates(location.hash, this.state.locationHashPrev);\n\t\t\tif (dialogsStateChanged) this.opendDialogsFromUrl();\n\t\t});\n\n\t\t$(window).trigger('hashchange.dialogs');\n\n\t\t/**\n\t\t * Сгенерировать ссылку для перехода к странице диалогового окна\n\t\t */\n\t\t$(document).on('mousedown', 'a[data-to-view]', async (e) => {\n\t\t\tconst el = e.target.closest('[data-to-view]');\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\t\t\tconst $toDialog = $('#' + viewName);\n\t\t\tconst $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\t// const $currentPage = $('> .active', $modalLayers);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\t// /**\n\t\t\t// * Данный алгоритм определения направления работает не корректно, так как для чтения свойства order менят состояние через getDialogsUtils()\n\t\t\t// */\n\t\t\t// if ($currentPage.length) {\n\t\t\t// \tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t//\n\t\t\t// \tconst TopDialogUtils = await this.getDialogsUtils();\n\t\t\t//\n\t\t\t// \tawait TopDialogUtils.updatePageVue(viewName, undefined, pageName);\n\t\t\t//\n\t\t\t// \tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t// \tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t// }\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tel.href = TopDialogWorker.genViewPageHash(el.dataset.toView, moveDirection);\n\t\t});\n\n\t\t/**\n\t\t * Осуществить переход по ссылке с учетом historyType\n\t\t */\n\t\t$(document).on('click', '[data-to-view]', async (e) => {\n\t\t\tconst el = e.target.closest('[data-to-view]');\n\n\t\t\t// Подождать генерацию ссылки\n\t\t\tif (el.href === '.') {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tel.mousedown();\n\n\t\t\t\tsetTimeout(() => el.click());\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\t\t\tconst $toDialog = $('#' + viewName);\n\t\t\tconst $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\tconst $currentPage = $('> .active', $modalLayers);\n\n\t\t\tconst replaceHistory = !!$toDialog.data('data-to-view-replace');\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\t\t\tif ($currentPage.length) {\n\t\t\t\tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t\tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t\tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t}\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, moveDirection);\n\n\t\t\tif (el.tagName === 'A') {\n\t\t\t\t// диалоговое окно еще не открыто, произвести переход по ссылке\n\t\t\t\tif (!$toDialog.is(':visible')) return;\n\n\t\t\t\t// в адресе уже указана эта страница, необходимсо явно запросить ее открытие\n\t\t\t\tif (location.hash.indexOf(toView.replace('-', '=')) !== -1) {\n\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (replaceHistory) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\thistorySetState(true, hash);\n\n\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\tif (moveDirection == 'next') {\n\t\t\t\t\tTopDialogWorker.state.viewPageN++;\n\t\t\t\t} else {\n\t\t\t\t\tTopDialogWorker.state.viewPageN--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (el.tagName !== 'A') {\n\t\t\t\t\tif (this.compareStates(hash, location.hash)) {\n\t\t\t\t\t\tlocation.hash = hash;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => this.getDialogsUtils(), autoInitDelay);\n\t}\n\n\tstatic async getDialogsUtils() {\n\t\tconst { TopDialogUtils } = await import('./utils');\n\n\t\treturn TopDialogUtils;\n\t}\n\n\tstatic get$dialog($el: $el) {\n\t\treturn $el.closest('.ui-dialog-content');\n\t};\n\n\tstatic get$page($el: $el) {\n\t\treturn $el.closest('[data-view-page]');\n\t};\n\n\t/**\n\t * Получить элементы страницы в шапке и в контенте\n\t */\n\tstatic get$pairPage($el: $el) {\n\t\tconst $dialog = TopDialogWorker.get$dialog($el);\n\n\t\tconst $page = TopDialogWorker.get$page($el);\n\t\tconst pageName = $page.data('view-page');\n\n\t\treturn $('[data-view-page=\"' + pageName + '\"]', $dialog);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t */\n\tstatic close(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif (!$dialog.dialog('instance')) return;\n\n\t\t$dialog.dialog('close');\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tstatic destroy(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif (!$dialog.dialog('instance')) return;\n\n\t\t$dialog.dialog('close');\n\t\t$dialog.dialog('destroy');\n\t};\n\n\t/**\n\t * Сгенерировать ссылку на страницу в диалоговом окне\n\t * @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}\n\t * @param moveDirection\n\t */\n\tstatic genViewPageHash(toView: string, moveDirection: MoveDirection = 'next') {\n\t\tvar toViewPageN = this.state.viewPageN;\n\t\tif (moveDirection == 'prev') {\n\t\t\ttoViewPageN--;\n\t\t} else {\n\t\t\ttoViewPageN++;\n\t\t}\n\n\t\tvar viewNameAndPageLink = toView.split('-');\n\t\tvar viewName = viewNameAndPageLink.shift();\n\t\tvar pageLink = viewNameAndPageLink.join('-');\n\t\tvar hash = genHash('vpn', toViewPageN);\n\t\tvar hash = genHash('view-' + viewName, pageLink, hash);\n\n\t\treturn hash;\n\t};\n\n\t/**\n\t * Сравнить версию открытых диалоговых окон\n\t * @returns вернет true, если состояния открытых окон изменилось\n\t */\n\tstatic compareStates(hash: string, hash2: string) {\n\t\tconst mathes = hash.match(/[#&]view-[^&]+/g) || [];\n\t\tconst mathes2 = hash2.match(/[#&]view-[^&]+/g) || [];\n\n\t\tif (mathes.length !== mathes2.length) return true;\n\n\t\tconst mathesChanged = mathes.filter((math, n) => {\n\t\t\tconst math2 = mathes2[n] || '';\n\n\t\t\treturn math !== math2;\n\t\t});\n\n\t\tif (mathesChanged.length) return true;\n\n\t\treturn false;\n\t};\n\n\tstatic opendDialogsFromUrl = async () => {\n\t\tconst toViewPageN = Number(getHash('vpn')) || 0;\n\n\t\tthis.state.locationHashPrev = location.hash;\n\n\t\t// Открыть диалоговое окно\n\t\tlet view: RegExpExecArray | null;\n\t\t// const regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)' + '(' + Math.random() + ')?', 'g'); // fix babel minify regexp\n\t\tconst regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)', 'g');\n\t\twhile (view = regexp.exec(location.hash)) {\n\t\t\tvar moveDirection: MoveDirection = 'next';\n\t\t\tif (toViewPageN < this.state.viewPageN) moveDirection = 'prev';\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\treturn TopDialogUtils.toViewDirty(view[1], moveDirection);\n\t\t}\n\n\t\t// Закрыть ненужные view\n\t\t$('.ui-dialog-content[data-view-page-active]:visible').each((_index: number, dialog: HTMLElement) => {\n\t\t\tvar $dialog = $(dialog);\n\n\t\t\tvar viewName = $dialog.attr('id');\n\t\t\tvar pageName = getHash('view-' + viewName);\n\t\t\tif (!pageName) $dialog.dialog('close');\n\t\t});\n\n\t\tthis.state.viewPageN = toViewPageN;\n\n\t\treturn true;\n\t};\n}\n","import { type ComponentInstance, type ComponentInternalInstance, markRaw, ref } from 'vue';\nimport { waitWhile } from '@/core/utils/system';\nimport TopDialog from '../dialog.vue';\nimport { TopDialogWorker } from '@/components/dialog/lib/worker';\nimport type { MoveDirection } from '@/components/dialog/lib/types';\nimport type { TopDialogComponent } from './types';\n\n/**\n * Объект для работы с диалоговым окном\n *\n * Каждое окно уникально и может быть открыто одновременно только один раз\n *\n * Можно определить много окон, после чего с ними можно вести работу в любой части приложения\n */\nexport class TopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Индентификатор, определяется на уровне компонента TopDialogComponent\n\t *\n\t * Может использоваться в навигации для открытия нужных окон с нужными настройками\n\t */\n\tid: string;\n\n\t/**\n\t * ID, используемый в верстке диалогового окна\n\t */\n\tidAttr: string;\n\n\t/**\n\t * Пользовательский компонент диалогового окна\n\t */\n\tComponent: T;\n\n\t/**\n\t * Компонент инициирован\n\t *\n\t * Устанавливается после первого вызова useTopDialog()\n\t */\n\tisMounted = ref(false);\n\n\t/**\n\t * Компонент готов к использованию\n\t *\n\t * Используется для внутренних преобразований после отрисовки\n\t */\n\tisReady = ref(false);\n\n\t/**\n\t * Диалоговое окно открыто\n\t */\n\tisOpened = ref(false);\n\n\t/**\n\t * Имя активной страницы дилогового окна\n\t */\n\tpageActive = ref('');\n\n\t/**\n\t * Диалоговое окно находится в состоянии загрузки своей страницы\n\t */\n\tisLoadingPage = ref(false);\n\n\t/**\n\t * Следующая активная страница\n\t *\n\t * В один момент времени может потребоваться отобразить две страницы, чтобы воспроизвести анимацию\n\t */\n\tpageActiveNext = ref('');\n\n\t/**\n\t * props компонента, доступны после инициализации\n\t */\n\tprops?: ComponentInstance<T>['$props'];\n\n\t/**\n\t * emit базового компонента `TopDialog`\n\t */\n\temit?: ComponentInstance<typeof TopDialog>['$emit'];\n\n\t/**\n\t * Одноразовое событие на закрытие диалогового окна\n\t *\n\t * Используется для привязки окна к сценариям использования\n\t */\n\tonCloseOnce?: (props: typeof this.props, pageName: string) => void;\n\n\tconstructor(TopDialogComponent: T) {\n\t\tthis.id = TopDialogComponent.id!;\n\t\tthis.idAttr = 'dialog_' + TopDialogComponent.id;\n\t\tthis.Component = markRaw(TopDialogComponent);\n\t}\n\n\t/**\n\t * Событие - компонент инициирован\n\t */\n\tonMounted(topDialogComponent: ComponentInternalInstance, topDialogBaseComponent: ComponentInternalInstance) {\n\t\tthis.isMounted.value = true;\n\t\tthis.props = topDialogComponent.props;\n\t\tthis.emit = topDialogBaseComponent.emit;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t *\n\t * Учтите, что props в диалоговом окне будут доступны не сразу, а только после инициализации vue компонента\n\t */\n\tasync open(pageName: string = 'main', props?: {}, args: [] = [], onCloseOnce?: typeof this.onCloseOnce, moveDirection?: MoveDirection) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst TopDialogUtils = await TopDialogWorker.getDialogsUtils();\n\n\t\tawait TopDialogUtils.toView(this.idAttr, pageName, args, moveDirection);\n\t};\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Диалоговые окна загружаются по имени, см. настройку плагина Core topDialogLoader\n\t */\n\tasync openAsLink(\n\t\tpageName: string = 'main',\n\t\tprops?: {},\n\t\t_args: string[] = [],\n\t\tonCloseOnce?: typeof this.onCloseOnce,\n\t\tmoveDirection?: MoveDirection,\n\t) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst viewName = this.idAttr + '-' + pageName;\n\n\t\tlocation.hash = TopDialogWorker.genViewPageHash(viewName, moveDirection);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close() {\n\t\tTopDialogWorker.close(this.idAttr);\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tasync destroy() {\n\t\tTopDialogWorker.destroy(this.idAttr);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(props: ComponentInstance<T>['$props'] = {}) {\n\t\t// ожидание инициализации компонента\n\t\tif (!this.isMounted) {\n\t\t\tawait waitWhile(() => !this.props);\n\t\t}\n\n\t\tfor (const name in this.props) {\n\t\t\tthis.props[name] = props[name];\n\t\t}\n\t}\n\n\t/**\n\t * Проверить, есть ли необходимость отрисовки страницы диалогового окна\n\t */\n\tneedShowPage(pageName: string): boolean {\n\t\tif (!this.isOpened.value) return false;\n\n\t\treturn this.pageActive.value === pageName || this.pageActiveNext.value === pageName;\n\t}\n}\n","<script lang=\"ts\">\nimport { shallowReactive } from 'vue';\nimport { TopDialogHandle } from '@/components/dialog/dialog/composables/dialogHandle';\nimport type { TopDialogComponent } from '@/components/dialog/dialog/composables/types';\n\n/**\n * Словарь всех используемых диалоговых окон\n *\n * В других компонентах не использовать\n */\nconst dialogsWorkers = shallowReactive(new Map<string, TopDialogHandle<TopDialogComponent>>());\n\nexport const getDialogWorker = (id: string) => {\n\tid = id.replace(/^dialog_/, '');\n\n\treturn dialogsWorkers.get(id);\n};\n\n/**\n * Добавить компонент диалогового окна для использования\n */\nexport const addDialogWorker = <T extends TopDialogComponent>(TopDialogComponent: T): TopDialogHandle<T> => {\n\tif (!TopDialogComponent?.id) {\n\t\tconsole.log({ TopDialogComponent: TopDialogComponent });\n\n\t\tthrow new Error('Expected TopDialogComponent');\n\t}\n\n\tif (!dialogsWorkers.has(TopDialogComponent.id)) {\n\t\tdialogsWorkers.set(TopDialogComponent.id, new TopDialogHandle(TopDialogComponent));\n\t}\n\n\treturn dialogsWorkers.get(TopDialogComponent.id) as TopDialogHandle<T>;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { onUnmounted } from 'vue';\n\ndefineOptions({\n\tname: 'DialogWrapper',\n});\n\nonUnmounted(() => {\n\tdialogsWorkers.forEach(dialog => dialog.destroy());\n\tdialogsWorkers.clear();\n});\n</script>\n\n<template>\n\t<div class=\"top-dialogs\" style=\"display: none;\">\n\t\t<component\n\t\t\tv-for=\"[dialogId, dialog] in dialogsWorkers\"\n\t\t\t:is=\"dialog.Component\"\n\t\t\t:key=\"dialogId\"\n\t\t/>\n\t</div>\n</template>\n"],"names":["TopDialogWorker","options","autoInitDelay","e","el","$toDialog","moveDirection","TopDialogUtils","toView","$currentPage","pageName","$modalLayers","utils_route","hash","$el","dialogId","$dialog","toViewPageN","viewName","viewNameAndPageLink","pageLink","hash2","view","dialog","TopDialogHandle","vue","TopDialogComponent","topDialogComponent","topDialogBaseComponent","props","args","onCloseOnce","_args","name","dialogsWorkers","getDialogWorker","id","addDialogWorker"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialogs.vue_vue_type_script_setup_true_lang-BkBYW0yR.es.js","sources":["../../src/components/dialog/lib/worker.ts","../../src/components/dialog/dialog/composables/dialogHandle.ts","../../src/components/dialog/dialog/dialogs/dialogs.vue"],"sourcesContent":["import { genHash, getHash, historySetState } from '@/core/utils/route';\nimport type { MoveDirection, TopDialogOptions } from './types';\nimport type { $el } from '@/components/types';\n\nexport abstract class TopDialogWorker {\n\tstatic state = {\n\t\tload: undefined as TopDialogOptions['load'] | undefined,\n\t\tdecoratorOnCreate: undefined as TopDialogOptions['decoratorOnCreate'] | undefined,\n\n\t\t/**\n\t\t * Порядковай номер перехода в диалоговых окнах\n\t\t *\n\t\t * Для расчета направления Вперед / Назад\n\t\t */\n\t\tviewPageN: 0,\n\t\tlocationHashPrev: '',\n\t};\n\n\tprivate static inited = false;\n\n\t/**\n\t * Инициировать события слежения за парамтерами url\n\t *\n\t * Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу\n\t */\n\tstatic init(options?: TopDialogOptions) {\n\t\tif (this.inited) return;\n\t\tthis.inited = true;\n\n\t\tthis.state.load = options?.load;\n\t\tthis.state.decoratorOnCreate = options?.decoratorOnCreate;\n\n\t\tconst autoInitDelay = options?.autoInitDelay ?? 5000;\n\n\t\t$(window).on('hashchange.dialogs', () => {\n\t\t\tconst dialogsStateChanged = this.compareStates(location.hash, this.state.locationHashPrev);\n\t\t\tif (dialogsStateChanged) this.opendDialogsFromUrl();\n\t\t});\n\n\t\t$(window).trigger('hashchange.dialogs');\n\n\t\t/**\n\t\t * Сгенерировать ссылку для перехода к странице диалогового окна\n\t\t */\n\t\t$(document).on('mousedown', 'a[data-to-view]', async (e) => {\n\t\t\tconst el = e.target.closest('[data-to-view]');\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\t\t\tconst $toDialog = $('#' + viewName);\n\t\t\tconst $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\t// const $currentPage = $('> .active', $modalLayers);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\t// /**\n\t\t\t// * Данный алгоритм определения направления работает не корректно, так как для чтения свойства order менят состояние через getDialogsUtils()\n\t\t\t// */\n\t\t\t// if ($currentPage.length) {\n\t\t\t// \tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t//\n\t\t\t// \tconst TopDialogUtils = await this.getDialogsUtils();\n\t\t\t//\n\t\t\t// \tawait TopDialogUtils.updatePageVue(viewName, undefined, pageName);\n\t\t\t//\n\t\t\t// \tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t// \tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t// }\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tel.href = TopDialogWorker.genViewPageHash(el.dataset.toView, moveDirection);\n\t\t});\n\n\t\t/**\n\t\t * Осуществить переход по ссылке с учетом historyType\n\t\t */\n\t\t$(document).on('click', '[data-to-view]', async (e) => {\n\t\t\tconst el = e.target.closest('[data-to-view]');\n\n\t\t\t// Подождать генерацию ссылки\n\t\t\tif (el.href === '.') {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tel.mousedown();\n\n\t\t\t\tsetTimeout(() => el.click());\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\t\t\tconst $toDialog = $('#' + viewName);\n\t\t\tconst $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\tconst $currentPage = $('> .active', $modalLayers);\n\n\t\t\tconst replaceHistory = !!$toDialog.data('data-to-view-replace');\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\t\t\tif ($currentPage.length) {\n\t\t\t\tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t\tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t\tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t}\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, moveDirection);\n\n\t\t\tif (el.tagName === 'A') {\n\t\t\t\t// диалоговое окно еще не открыто, произвести переход по ссылке\n\t\t\t\tif (!$toDialog.is(':visible')) return;\n\n\t\t\t\t// в адресе уже указана эта страница, необходимсо явно запросить ее открытие\n\t\t\t\tif (location.hash.indexOf(toView.replace('-', '=')) !== -1) {\n\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (replaceHistory) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\thistorySetState(true, hash);\n\n\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\tif (moveDirection == 'next') {\n\t\t\t\t\tTopDialogWorker.state.viewPageN++;\n\t\t\t\t} else {\n\t\t\t\t\tTopDialogWorker.state.viewPageN--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (el.tagName !== 'A') {\n\t\t\t\t\tif (this.compareStates(hash, location.hash)) {\n\t\t\t\t\t\tlocation.hash = hash;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => this.getDialogsUtils(), autoInitDelay);\n\t}\n\n\tstatic async getDialogsUtils() {\n\t\tconst { TopDialogUtils } = await import('./utils');\n\n\t\treturn TopDialogUtils;\n\t}\n\n\tstatic get$dialog($el: $el) {\n\t\treturn $el.closest('.ui-dialog-content');\n\t};\n\n\tstatic get$page($el: $el) {\n\t\treturn $el.closest('[data-view-page]');\n\t};\n\n\t/**\n\t * Получить элементы страницы в шапке и в контенте\n\t */\n\tstatic get$pairPage($el: $el) {\n\t\tconst $dialog = TopDialogWorker.get$dialog($el);\n\n\t\tconst $page = TopDialogWorker.get$page($el);\n\t\tconst pageName = $page.data('view-page');\n\n\t\treturn $('[data-view-page=\"' + pageName + '\"]', $dialog);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t */\n\tstatic close(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif (!$dialog.dialog('instance')) return;\n\n\t\t$dialog.dialog('close');\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tstatic destroy(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif (!$dialog.dialog('instance')) return;\n\n\t\t$dialog.dialog('close');\n\t\t$dialog.dialog('destroy');\n\t};\n\n\t/**\n\t * Сгенерировать ссылку на страницу в диалоговом окне\n\t * @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}\n\t * @param moveDirection\n\t */\n\tstatic genViewPageHash(toView: string, moveDirection: MoveDirection = 'next') {\n\t\tvar toViewPageN = this.state.viewPageN;\n\t\tif (moveDirection == 'prev') {\n\t\t\ttoViewPageN--;\n\t\t} else {\n\t\t\ttoViewPageN++;\n\t\t}\n\n\t\tvar viewNameAndPageLink = toView.split('-');\n\t\tvar viewName = viewNameAndPageLink.shift();\n\t\tvar pageLink = viewNameAndPageLink.join('-');\n\t\tvar hash = genHash('vpn', toViewPageN);\n\t\tvar hash = genHash('view-' + viewName, pageLink, hash);\n\n\t\treturn hash;\n\t};\n\n\t/**\n\t * Сравнить версию открытых диалоговых окон\n\t * @returns вернет true, если состояния открытых окон изменилось\n\t */\n\tstatic compareStates(hash: string, hash2: string) {\n\t\tconst mathes = hash.match(/[#&]view-[^&]+/g) || [];\n\t\tconst mathes2 = hash2.match(/[#&]view-[^&]+/g) || [];\n\n\t\tif (mathes.length !== mathes2.length) return true;\n\n\t\tconst mathesChanged = mathes.filter((math, n) => {\n\t\t\tconst math2 = mathes2[n] || '';\n\n\t\t\treturn math !== math2;\n\t\t});\n\n\t\tif (mathesChanged.length) return true;\n\n\t\treturn false;\n\t};\n\n\tstatic opendDialogsFromUrl = async () => {\n\t\tconst toViewPageN = Number(getHash('vpn')) || 0;\n\n\t\tthis.state.locationHashPrev = location.hash;\n\n\t\t// Открыть диалоговое окно\n\t\tlet view: RegExpExecArray | null;\n\t\t// const regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)' + '(' + Math.random() + ')?', 'g'); // fix babel minify regexp\n\t\tconst regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)', 'g');\n\t\twhile (view = regexp.exec(location.hash)) {\n\t\t\tvar moveDirection: MoveDirection = 'next';\n\t\t\tif (toViewPageN < this.state.viewPageN) moveDirection = 'prev';\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\treturn TopDialogUtils.toViewDirty(view[1], moveDirection);\n\t\t}\n\n\t\t// Закрыть ненужные view\n\t\t$('.ui-dialog-content[data-view-page-active]:visible').each((_index: number, dialog: HTMLElement) => {\n\t\t\tvar $dialog = $(dialog);\n\n\t\t\tvar viewName = $dialog.attr('id');\n\t\t\tvar pageName = getHash('view-' + viewName);\n\t\t\tif (!pageName) $dialog.dialog('close');\n\t\t});\n\n\t\tthis.state.viewPageN = toViewPageN;\n\n\t\treturn true;\n\t};\n}\n","import { type ComponentInstance, type ComponentInternalInstance, markRaw, ref } from 'vue';\nimport { waitWhile } from '@/core/utils/system';\nimport TopDialog from '../dialog.vue';\nimport { TopDialogWorker } from '@/components/dialog/lib/worker';\nimport type { MoveDirection } from '@/components/dialog/lib/types';\nimport type { TopDialogComponent } from './types';\n\n/**\n * Объект для работы с диалоговым окном\n *\n * Каждое окно уникально и может быть открыто одновременно только один раз\n *\n * Можно определить много окон, после чего с ними можно вести работу в любой части приложения\n */\nexport class TopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Индентификатор, определяется на уровне компонента TopDialogComponent\n\t *\n\t * Может использоваться в навигации для открытия нужных окон с нужными настройками\n\t */\n\tid: string;\n\n\t/**\n\t * ID, используемый в верстке диалогового окна\n\t */\n\tidAttr: string;\n\n\t/**\n\t * Пользовательский компонент диалогового окна\n\t */\n\tComponent: T;\n\n\t/**\n\t * Компонент инициирован\n\t *\n\t * Устанавливается после первого вызова useTopDialog()\n\t */\n\tisMounted = ref(false);\n\n\t/**\n\t * Компонент готов к использованию\n\t *\n\t * Используется для внутренних преобразований после отрисовки\n\t */\n\tisReady = ref(false);\n\n\t/**\n\t * Диалоговое окно открыто\n\t */\n\tisOpened = ref(false);\n\n\t/**\n\t * Имя активной страницы дилогового окна\n\t */\n\tpageActive = ref('');\n\n\t/**\n\t * Диалоговое окно находится в состоянии загрузки своей страницы\n\t */\n\tisLoadingPage = ref(false);\n\n\t/**\n\t * Следующая активная страница\n\t *\n\t * В один момент времени может потребоваться отобразить две страницы, чтобы воспроизвести анимацию\n\t */\n\tpageActiveNext = ref('');\n\n\t/**\n\t * props компонента, доступны после инициализации\n\t */\n\tprops?: ComponentInstance<T>['$props'];\n\n\t/**\n\t * emit базового компонента `TopDialog`\n\t */\n\temit?: ComponentInstance<typeof TopDialog>['$emit'];\n\n\t/**\n\t * Одноразовое событие на закрытие диалогового окна\n\t *\n\t * Используется для привязки окна к сценариям использования\n\t */\n\tonCloseOnce?: (props: typeof this.props, pageName: string) => void;\n\n\tconstructor(TopDialogComponent: T) {\n\t\tthis.id = TopDialogComponent.id!;\n\t\tthis.idAttr = 'dialog_' + TopDialogComponent.id;\n\t\tthis.Component = markRaw(TopDialogComponent);\n\t}\n\n\t/**\n\t * Событие - компонент инициирован\n\t */\n\tonMounted(topDialogComponent: ComponentInternalInstance, topDialogBaseComponent: ComponentInternalInstance) {\n\t\tthis.isMounted.value = true;\n\t\tthis.props = topDialogComponent.props;\n\t\tthis.emit = topDialogBaseComponent.emit;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t *\n\t * Учтите, что props в диалоговом окне будут доступны не сразу, а только после инициализации vue компонента\n\t */\n\tasync open(pageName: string = 'main', props?: {}, args: [] = [], onCloseOnce?: typeof this.onCloseOnce, moveDirection?: MoveDirection) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst TopDialogUtils = await TopDialogWorker.getDialogsUtils();\n\n\t\tawait TopDialogUtils.toView(this.idAttr, pageName, args, moveDirection);\n\t};\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Диалоговые окна загружаются по имени, см. настройку плагина Core topDialogLoader\n\t */\n\tasync openAsLink(\n\t\tpageName: string = 'main',\n\t\tprops?: {},\n\t\t_args: string[] = [],\n\t\tonCloseOnce?: typeof this.onCloseOnce,\n\t\tmoveDirection?: MoveDirection,\n\t) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst viewName = this.idAttr + '-' + pageName;\n\n\t\tlocation.hash = TopDialogWorker.genViewPageHash(viewName, moveDirection);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close() {\n\t\tTopDialogWorker.close(this.idAttr);\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tasync destroy() {\n\t\tTopDialogWorker.destroy(this.idAttr);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(props: ComponentInstance<T>['$props'] = {}) {\n\t\t// ожидание инициализации компонента\n\t\tif (!this.isMounted) {\n\t\t\tawait waitWhile(() => !this.props);\n\t\t}\n\n\t\tfor (const name in this.props) {\n\t\t\tthis.props[name] = props[name];\n\t\t}\n\t}\n\n\t/**\n\t * Проверить, есть ли необходимость отрисовки страницы диалогового окна\n\t */\n\tneedShowPage(pageName: string): boolean {\n\t\tif (!this.isOpened.value) return false;\n\n\t\treturn this.pageActive.value === pageName || this.pageActiveNext.value === pageName;\n\t}\n}\n","<script lang=\"ts\">\nimport { shallowReactive } from 'vue';\nimport { TopDialogHandle } from '@/components/dialog/dialog/composables/dialogHandle';\nimport type { TopDialogComponent } from '@/components/dialog/dialog/composables/types';\n\n/**\n * Словарь всех используемых диалоговых окон\n *\n * В других компонентах не использовать\n */\nconst dialogsWorkers = shallowReactive(new Map<string, TopDialogHandle<TopDialogComponent>>());\n\nexport const getDialogWorker = (id: string) => {\n\tid = id.replace(/^dialog_/, '');\n\n\treturn dialogsWorkers.get(id);\n};\n\n/**\n * Добавить компонент диалогового окна для использования\n */\nexport const addDialogWorker = <T extends TopDialogComponent>(TopDialogComponent: T): TopDialogHandle<T> => {\n\tif (!TopDialogComponent?.id) {\n\t\tconsole.log({ TopDialogComponent: TopDialogComponent });\n\n\t\tthrow new Error('Expected TopDialogComponent');\n\t}\n\n\tif (!dialogsWorkers.has(TopDialogComponent.id)) {\n\t\tdialogsWorkers.set(TopDialogComponent.id, new TopDialogHandle(TopDialogComponent));\n\t}\n\n\treturn dialogsWorkers.get(TopDialogComponent.id) as TopDialogHandle<T>;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { onUnmounted } from 'vue';\n\ndefineOptions({\n\tname: 'DialogWrapper',\n});\n\nonUnmounted(() => {\n\tdialogsWorkers.forEach(dialog => dialog.destroy());\n\tdialogsWorkers.clear();\n});\n</script>\n\n<template>\n\t<div class=\"top-dialogs\" style=\"display: none;\">\n\t\t<component\n\t\t\tv-for=\"[dialogId, dialog] in dialogsWorkers\"\n\t\t\t:is=\"dialog.Component\"\n\t\t\t:key=\"dialogId\"\n\t\t/>\n\t</div>\n</template>\n"],"names":["TopDialogWorker","options","autoInitDelay","e","el","viewName","$toDialog","moveDirection","TopDialogUtils","toView","$modalLayers","$currentPage","replaceHistory","pageName","hash","historySetState","$el","$dialog","dialogId","toViewPageN","viewNameAndPageLink","pageLink","genHash","hash2","mathes","mathes2","math","n","math2","getHash","view","regexp","_index","dialog","TopDialogHandle","ref","TopDialogComponent","markRaw","topDialogComponent","topDialogBaseComponent","props","args","onCloseOnce","_args","waitWhile","name","dialogsWorkers","shallowReactive","getDialogWorker","id","addDialogWorker","onUnmounted"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- define(["require","exports","vue"],function(N,u,r){"use strict";var zt;if(typeof r>"u")var r=window.Vue;function je(){return"devicePixelRatio"in window&&window.devicePixelRatio>1}function Me(){return!!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i)}function De(){return navigator.userAgent.indexOf("Topvisor_App")!=-1}function Ie(){return navigator.userAgent.indexOf("Mac OS X")!==-1}function Ut(){const e=/Chrome|Android/.test(navigator.userAgent);let t=/Safari/.test(navigator.userAgent);return e&&t&&(t=!1),t}function Ht(){return Ie()?"⌘":"Ctrl"}const Gt=()=>$(document).scrollTop(),Kt=()=>$(document),Xt=()=>[document],Le=()=>{const e=[["iOS",/(iPhone|iPad)/i],["Android",/(Android)/i],["Windows Phone",/(IEMobile)/i],["Windows 3.11",/Win16/i],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/i],["Windows 98",/(Windows 98)|(Win98)/i],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/i],["Windows XP",/(Windows NT 5.1)|(Windows XP)/i],["Windows Server 2003",/(Windows NT 5.2)/i],["Windows Vista",/(Windows NT 6.0)/i],["Windows 7",/(Windows NT 6.1)/i],["Windows 8",/(Windows NT 6.[23])|(Windows 8)/i],["Windows 10",/(Windows NT 10)/i],["Windows NT 4.0",/(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)/i],["Windows ME",/Windows ME/i],["Windows",/Windows/i],["Open BSD",/OpenBSD/i],["Sun OS",/SunOS/i],["Linux",/(Linux)|(X11)/i],["Macintosh",/(Mac_PowerPC)|(Macintosh)|(Mac OS X 10.4)|(Mac OS X 10.5)|(Mac OS X 10.6)/i],["QNX",/QNX/i],["BeOS",/BeOS/i],["OS/2",/OS\/2/i]];let t="";for(let n=0;n<e.length;n++)if(e[n][1].test(navigator.userAgent)){t=e[n][0];break}return t},Yt=async()=>{var t;let e=Le();if(e==="Windows 10"){const n=await((t=navigator==null?void 0:navigator.userAgentData)==null?void 0:t.getHighEntropyValues(["platformVersion"]));n&&n.platformVersion>="13"&&(e="Windows 11")}return e};function w(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ne=typeof global=="object"&&global&&global.Object===Object&&global,qt=typeof self=="object"&&self&&self.Object===Object&&self,S=Ne||qt||Function("return this")(),ie=function(){return S.Date.now()},Qt=/\s/;function Jt(e){for(var t=e.length;t--&&Qt.test(e.charAt(t)););return t}var Zt=/^\s+/;function xt(e){return e&&e.slice(0,Jt(e)+1).replace(Zt,"")}var V=S.Symbol,Ve=Object.prototype,en=Ve.hasOwnProperty,tn=Ve.toString,F=V?V.toStringTag:void 0;function nn(e){var t=en.call(e,F),n=e[F];try{e[F]=void 0;var o=!0}catch{}var i=tn.call(e);return o&&(t?e[F]=n:delete e[F]),i}var rn=Object.prototype,on=rn.toString;function an(e){return on.call(e)}var sn="[object Null]",ln="[object Undefined]",We=V?V.toStringTag:void 0;function A(e){return e==null?e===void 0?ln:sn:We&&We in Object(e)?nn(e):an(e)}function O(e){return e!=null&&typeof e=="object"}var cn="[object Symbol]";function dn(e){return typeof e=="symbol"||O(e)&&A(e)==cn}var ze=NaN,un=/^[-+]0x[0-9a-f]+$/i,fn=/^0b[01]+$/i,pn=/^0o[0-7]+$/i,mn=parseInt;function Fe(e){if(typeof e=="number")return e;if(dn(e))return ze;if(w(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=w(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=xt(e);var n=fn.test(e);return n||pn.test(e)?mn(e.slice(2),n?2:8):un.test(e)?ze:+e}var gn="Expected a function",hn=Math.max,bn=Math.min;function se(e,t,n){var o,i,a,l,s,c,d=0,f=!1,p=!1,m=!0;if(typeof e!="function")throw new TypeError(gn);t=Fe(t)||0,w(n)&&(f=!!n.leading,p="maxWait"in n,a=p?hn(Fe(n.maxWait)||0,t):a,m="trailing"in n?!!n.trailing:m);function h(v){var k=o,q=i;return o=i=void 0,d=v,l=e.apply(q,k),l}function _(v){return d=v,s=setTimeout(T,t),f?h(v):l}function ae(v){var k=v-c,q=v-d,Rt=t-k;return p?bn(Rt,a-q):Rt}function E(v){var k=v-c,q=v-d;return c===void 0||k>=t||k<0||p&&q>=a}function T(){var v=ie();if(E(v))return Ft(v);s=setTimeout(T,ae(v))}function Ft(v){return s=void 0,m&&o?h(v):(o=i=void 0,l)}function fs(){s!==void 0&&clearTimeout(s),d=0,o=c=i=s=void 0}function ps(){return s===void 0?l:Ft(ie())}function Ae(){var v=ie(),k=E(v);if(o=arguments,i=this,c=v,k){if(s===void 0)return _(c);if(p)return clearTimeout(s),s=setTimeout(T,t),h(c)}return s===void 0&&(s=setTimeout(T,t)),l}return Ae.cancel=fs,Ae.flush=ps,Ae}function yn(){this.__data__=[],this.size=0}function Q(e,t){return e===t||e!==e&&t!==t}function J(e,t){for(var n=e.length;n--;)if(Q(e[n][0],t))return n;return-1}var vn=Array.prototype,wn=vn.splice;function Tn(e){var t=this.__data__,n=J(t,e);if(n<0)return!1;var o=t.length-1;return n==o?t.pop():wn.call(t,n,1),--this.size,!0}function $n(e){var t=this.__data__,n=J(t,e);return n<0?void 0:t[n][1]}function Sn(e){return J(this.__data__,e)>-1}function _n(e,t){var n=this.__data__,o=J(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function B(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}B.prototype.clear=yn,B.prototype.delete=Tn,B.prototype.get=$n,B.prototype.has=Sn,B.prototype.set=_n;function En(){this.__data__=new B,this.size=0}function Bn(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Cn(e){return this.__data__.get(e)}function On(e){return this.__data__.has(e)}var Pn="[object AsyncFunction]",kn="[object Function]",An="[object GeneratorFunction]",jn="[object Proxy]";function le(e){if(!w(e))return!1;var t=A(e);return t==kn||t==An||t==Pn||t==jn}var ce=S["__core-js_shared__"],Re=function(){var e=/[^.]+$/.exec(ce&&ce.keys&&ce.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Mn(e){return!!Re&&Re in e}var Dn=Function.prototype,In=Dn.toString;function j(e){if(e!=null){try{return In.call(e)}catch{}try{return e+""}catch{}}return""}var Ln=/[\\^$.*+?()[\]{}|]/g,Nn=/^\[object .+?Constructor\]$/,Vn=Function.prototype,Wn=Object.prototype,zn=Vn.toString,Fn=Wn.hasOwnProperty,Rn=RegExp("^"+zn.call(Fn).replace(Ln,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Un(e){if(!w(e)||Mn(e))return!1;var t=le(e)?Rn:Nn;return t.test(j(e))}function Hn(e,t){return e==null?void 0:e[t]}function M(e,t){var n=Hn(e,t);return Un(n)?n:void 0}var R=M(S,"Map"),U=M(Object,"create");function Gn(){this.__data__=U?U(null):{},this.size=0}function Kn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Xn="__lodash_hash_undefined__",Yn=Object.prototype,qn=Yn.hasOwnProperty;function Qn(e){var t=this.__data__;if(U){var n=t[e];return n===Xn?void 0:n}return qn.call(t,e)?t[e]:void 0}var Jn=Object.prototype,Zn=Jn.hasOwnProperty;function xn(e){var t=this.__data__;return U?t[e]!==void 0:Zn.call(t,e)}var er="__lodash_hash_undefined__";function tr(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=U&&t===void 0?er:t,this}function D(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}D.prototype.clear=Gn,D.prototype.delete=Kn,D.prototype.get=Qn,D.prototype.has=xn,D.prototype.set=tr;function nr(){this.size=0,this.__data__={hash:new D,map:new(R||B),string:new D}}function rr(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Z(e,t){var n=e.__data__;return rr(t)?n[typeof t=="string"?"string":"hash"]:n.map}function or(e){var t=Z(this,e).delete(e);return this.size-=t?1:0,t}function ar(e){return Z(this,e).get(e)}function ir(e){return Z(this,e).has(e)}function sr(e,t){var n=Z(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}function P(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}P.prototype.clear=nr,P.prototype.delete=or,P.prototype.get=ar,P.prototype.has=ir,P.prototype.set=sr;var lr=200;function cr(e,t){var n=this.__data__;if(n instanceof B){var o=n.__data__;if(!R||o.length<lr-1)return o.push([e,t]),this.size=++n.size,this;n=this.__data__=new P(o)}return n.set(e,t),this.size=n.size,this}function I(e){var t=this.__data__=new B(e);this.size=t.size}I.prototype.clear=En,I.prototype.delete=Bn,I.prototype.get=Cn,I.prototype.has=On,I.prototype.set=cr;function dr(e,t){for(var n=-1,o=e==null?0:e.length;++n<o&&t(e[n],n,e)!==!1;);return e}var x=function(){try{var e=M(Object,"defineProperty");return e({},"",{}),e}catch{}}();function de(e,t,n){t=="__proto__"&&x?x(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var ur=Object.prototype,fr=ur.hasOwnProperty;function Ue(e,t,n){var o=e[t];(!(fr.call(e,t)&&Q(o,n))||n===void 0&&!(t in e))&&de(e,t,n)}function H(e,t,n,o){var i=!n;n||(n={});for(var a=-1,l=t.length;++a<l;){var s=t[a],c=void 0;c===void 0&&(c=e[s]),i?de(n,s,c):Ue(n,s,c)}return n}function pr(e,t){for(var n=-1,o=Array(e);++n<e;)o[n]=t(n);return o}var mr="[object Arguments]";function He(e){return O(e)&&A(e)==mr}var Ge=Object.prototype,gr=Ge.hasOwnProperty,hr=Ge.propertyIsEnumerable,ue=He(function(){return arguments}())?He:function(e){return O(e)&&gr.call(e,"callee")&&!hr.call(e,"callee")},G=Array.isArray;function br(){return!1}var Ke=typeof u=="object"&&u&&!u.nodeType&&u,Xe=Ke&&typeof module=="object"&&module&&!module.nodeType&&module,yr=Xe&&Xe.exports===Ke,Ye=yr?S.Buffer:void 0,vr=Ye?Ye.isBuffer:void 0,fe=vr||br,wr=9007199254740991,Tr=/^(?:0|[1-9]\d*)$/;function qe(e,t){var n=typeof e;return t=t??wr,!!t&&(n=="number"||n!="symbol"&&Tr.test(e))&&e>-1&&e%1==0&&e<t}var $r=9007199254740991;function Qe(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$r}var Sr="[object Arguments]",_r="[object Array]",Er="[object Boolean]",Br="[object Date]",Cr="[object Error]",Or="[object Function]",Pr="[object Map]",kr="[object Number]",Ar="[object Object]",jr="[object RegExp]",Mr="[object Set]",Dr="[object String]",Ir="[object WeakMap]",Lr="[object ArrayBuffer]",Nr="[object DataView]",Vr="[object Float32Array]",Wr="[object Float64Array]",zr="[object Int8Array]",Fr="[object Int16Array]",Rr="[object Int32Array]",Ur="[object Uint8Array]",Hr="[object Uint8ClampedArray]",Gr="[object Uint16Array]",Kr="[object Uint32Array]",y={};y[Vr]=y[Wr]=y[zr]=y[Fr]=y[Rr]=y[Ur]=y[Hr]=y[Gr]=y[Kr]=!0,y[Sr]=y[_r]=y[Lr]=y[Er]=y[Nr]=y[Br]=y[Cr]=y[Or]=y[Pr]=y[kr]=y[Ar]=y[jr]=y[Mr]=y[Dr]=y[Ir]=!1;function Xr(e){return O(e)&&Qe(e.length)&&!!y[A(e)]}function pe(e){return function(t){return e(t)}}var Je=typeof u=="object"&&u&&!u.nodeType&&u,K=Je&&typeof module=="object"&&module&&!module.nodeType&&module,Yr=K&&K.exports===Je,me=Yr&&Ne.process,W=function(){try{var e=K&&K.require&&K.require("util").types;return e||me&&me.binding&&me.binding("util")}catch{}}(),Ze=W&&W.isTypedArray,xe=Ze?pe(Ze):Xr,qr=Object.prototype,Qr=qr.hasOwnProperty;function et(e,t){var n=G(e),o=!n&&ue(e),i=!n&&!o&&fe(e),a=!n&&!o&&!i&&xe(e),l=n||o||i||a,s=l?pr(e.length,String):[],c=s.length;for(var d in e)(t||Qr.call(e,d))&&!(l&&(d=="length"||i&&(d=="offset"||d=="parent")||a&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||qe(d,c)))&&s.push(d);return s}var Jr=Object.prototype;function ge(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||Jr;return e===n}function tt(e,t){return function(n){return e(t(n))}}var Zr=tt(Object.keys,Object),xr=Object.prototype,eo=xr.hasOwnProperty;function to(e){if(!ge(e))return Zr(e);var t=[];for(var n in Object(e))eo.call(e,n)&&n!="constructor"&&t.push(n);return t}function ee(e){return e!=null&&Qe(e.length)&&!le(e)}function he(e){return ee(e)?et(e):to(e)}function no(e,t){return e&&H(t,he(t),e)}function ro(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var oo=Object.prototype,ao=oo.hasOwnProperty;function io(e){if(!w(e))return ro(e);var t=ge(e),n=[];for(var o in e)o=="constructor"&&(t||!ao.call(e,o))||n.push(o);return n}function X(e){return ee(e)?et(e,!0):io(e)}function so(e,t){return e&&H(t,X(t),e)}var nt=typeof u=="object"&&u&&!u.nodeType&&u,rt=nt&&typeof module=="object"&&module&&!module.nodeType&&module,lo=rt&&rt.exports===nt,ot=lo?S.Buffer:void 0,at=ot?ot.allocUnsafe:void 0;function it(e,t){if(t)return e.slice();var n=e.length,o=at?at(n):new e.constructor(n);return e.copy(o),o}function st(e,t){var n=-1,o=e.length;for(t||(t=Array(o));++n<o;)t[n]=e[n];return t}function co(e,t){for(var n=-1,o=e==null?0:e.length,i=0,a=[];++n<o;){var l=e[n];t(l,n,e)&&(a[i++]=l)}return a}function lt(){return[]}var uo=Object.prototype,fo=uo.propertyIsEnumerable,ct=Object.getOwnPropertySymbols,be=ct?function(e){return e==null?[]:(e=Object(e),co(ct(e),function(t){return fo.call(e,t)}))}:lt;function po(e,t){return H(e,be(e),t)}function dt(e,t){for(var n=-1,o=t.length,i=e.length;++n<o;)e[i+n]=t[n];return e}var ye=tt(Object.getPrototypeOf,Object),go=Object.getOwnPropertySymbols,ut=go?function(e){for(var t=[];e;)dt(t,be(e)),e=ye(e);return t}:lt;function ho(e,t){return H(e,ut(e),t)}function ft(e,t,n){var o=t(e);return G(e)?o:dt(o,n(e))}function bo(e){return ft(e,he,be)}function yo(e){return ft(e,X,ut)}var ve=M(S,"DataView"),we=M(S,"Promise"),Te=M(S,"Set"),$e=M(S,"WeakMap"),pt="[object Map]",vo="[object Object]",mt="[object Promise]",gt="[object Set]",ht="[object WeakMap]",bt="[object DataView]",wo=j(ve),To=j(R),$o=j(we),So=j(Te),_o=j($e),C=A;(ve&&C(new ve(new ArrayBuffer(1)))!=bt||R&&C(new R)!=pt||we&&C(we.resolve())!=mt||Te&&C(new Te)!=gt||$e&&C(new $e)!=ht)&&(C=function(e){var t=A(e),n=t==vo?e.constructor:void 0,o=n?j(n):"";if(o)switch(o){case wo:return bt;case To:return pt;case $o:return mt;case So:return gt;case _o:return ht}return t});var Eo=Object.prototype,Bo=Eo.hasOwnProperty;function Co(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]=="string"&&Bo.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var yt=S.Uint8Array;function Se(e){var t=new e.constructor(e.byteLength);return new yt(t).set(new yt(e)),t}function Oo(e,t){var n=t?Se(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Po=/\w*$/;function ko(e){var t=new e.constructor(e.source,Po.exec(e));return t.lastIndex=e.lastIndex,t}var vt=V?V.prototype:void 0,wt=vt?vt.valueOf:void 0;function Ao(e){return wt?Object(wt.call(e)):{}}function Tt(e,t){var n=t?Se(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var jo="[object Boolean]",Mo="[object Date]",Do="[object Map]",Io="[object Number]",Lo="[object RegExp]",No="[object Set]",Vo="[object String]",Wo="[object Symbol]",zo="[object ArrayBuffer]",Fo="[object DataView]",Ro="[object Float32Array]",Uo="[object Float64Array]",Ho="[object Int8Array]",Go="[object Int16Array]",Ko="[object Int32Array]",Xo="[object Uint8Array]",Yo="[object Uint8ClampedArray]",qo="[object Uint16Array]",Qo="[object Uint32Array]";function Jo(e,t,n){var o=e.constructor;switch(t){case zo:return Se(e);case jo:case Mo:return new o(+e);case Fo:return Oo(e,n);case Ro:case Uo:case Ho:case Go:case Ko:case Xo:case Yo:case qo:case Qo:return Tt(e,n);case Do:return new o;case Io:case Vo:return new o(e);case Lo:return ko(e);case No:return new o;case Wo:return Ao(e)}}var $t=Object.create,Zo=function(){function e(){}return function(t){if(!w(t))return{};if($t)return $t(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function St(e){return typeof e.constructor=="function"&&!ge(e)?Zo(ye(e)):{}}var xo="[object Map]";function ea(e){return O(e)&&C(e)==xo}var _t=W&&W.isMap,ta=_t?pe(_t):ea,na="[object Set]";function ra(e){return O(e)&&C(e)==na}var Et=W&&W.isSet,oa=Et?pe(Et):ra,aa=1,ia=2,sa=4,Bt="[object Arguments]",la="[object Array]",ca="[object Boolean]",da="[object Date]",ua="[object Error]",Ct="[object Function]",fa="[object GeneratorFunction]",pa="[object Map]",ma="[object Number]",Ot="[object Object]",ga="[object RegExp]",ha="[object Set]",ba="[object String]",ya="[object Symbol]",va="[object WeakMap]",wa="[object ArrayBuffer]",Ta="[object DataView]",$a="[object Float32Array]",Sa="[object Float64Array]",_a="[object Int8Array]",Ea="[object Int16Array]",Ba="[object Int32Array]",Ca="[object Uint8Array]",Oa="[object Uint8ClampedArray]",Pa="[object Uint16Array]",ka="[object Uint32Array]",b={};b[Bt]=b[la]=b[wa]=b[Ta]=b[ca]=b[da]=b[$a]=b[Sa]=b[_a]=b[Ea]=b[Ba]=b[pa]=b[ma]=b[Ot]=b[ga]=b[ha]=b[ba]=b[ya]=b[Ca]=b[Oa]=b[Pa]=b[ka]=!0,b[ua]=b[Ct]=b[va]=!1;function te(e,t,n,o,i,a){var l,s=t&aa,c=t&ia,d=t&sa;if(l!==void 0)return l;if(!w(e))return e;var f=G(e);if(f){if(l=Co(e),!s)return st(e,l)}else{var p=C(e),m=p==Ct||p==fa;if(fe(e))return it(e,s);if(p==Ot||p==Bt||m&&!i){if(l=c||m?{}:St(e),!s)return c?ho(e,so(l,e)):po(e,no(l,e))}else{if(!b[p])return i?e:{};l=Jo(e,p,s)}}a||(a=new I);var h=a.get(e);if(h)return h;a.set(e,l),oa(e)?e.forEach(function(E){l.add(te(E,t,n,E,e,a))}):ta(e)&&e.forEach(function(E,T){l.set(T,te(E,t,n,T,e,a))});var _=d?c?yo:bo:c?X:he,ae=f?void 0:_(e);return dr(ae||e,function(E,T){ae&&(T=E,E=e[T]),Ue(l,T,te(E,t,n,T,e,a))}),l}var Aa=1,ja=4;function Ma(e){return te(e,Aa|ja)}var Da="Expected a function";function _e(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Da);var n=function(){var o=arguments,i=t?t.apply(this,o):o[0],a=n.cache;if(a.has(i))return a.get(i);var l=e.apply(this,o);return n.cache=a.set(i,l)||a,l};return n.cache=new(_e.Cache||P),n}_e.Cache=P;var Ia="Expected a function";function La(e,t,n){var o=!0,i=!0;if(typeof e!="function")throw new TypeError(Ia);return w(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),se(e,t,{leading:o,maxWait:t,trailing:i})}function Ee(e,t,n){(n!==void 0&&!Q(e[t],n)||n===void 0&&!(t in e))&&de(e,t,n)}function Na(e){return function(t,n,o){for(var i=-1,a=Object(t),l=o(t),s=l.length;s--;){var c=l[++i];if(n(a[c],c,a)===!1)break}return t}}var Va=Na();function Wa(e){return O(e)&&ee(e)}var za="[object Object]",Fa=Function.prototype,Ra=Object.prototype,Pt=Fa.toString,Ua=Ra.hasOwnProperty,Ha=Pt.call(Object);function Ga(e){if(!O(e)||A(e)!=za)return!1;var t=ye(e);if(t===null)return!0;var n=Ua.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Pt.call(n)==Ha}function Be(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function Ka(e){return H(e,X(e))}function Xa(e,t,n,o,i,a,l){var s=Be(e,n),c=Be(t,n),d=l.get(c);if(d){Ee(e,n,d);return}var f=a?a(s,c,n+"",e,t,l):void 0,p=f===void 0;if(p){var m=G(c),h=!m&&fe(c),_=!m&&!h&&xe(c);f=c,m||h||_?G(s)?f=s:Wa(s)?f=st(s):h?(p=!1,f=it(c,!0)):_?(p=!1,f=Tt(c,!0)):f=[]:Ga(c)||ue(c)?(f=s,ue(s)?f=Ka(s):(!w(s)||le(s))&&(f=St(c))):p=!1}p&&(l.set(c,f),i(f,c,o,a,l),l.delete(c)),Ee(e,n,f)}function kt(e,t,n,o,i){e!==t&&Va(t,function(a,l){if(i||(i=new I),w(a))Xa(e,t,l,n,kt,o,i);else{var s=o?o(Be(e,l),a,l+"",e,t,i):void 0;s===void 0&&(s=a),Ee(e,l,s)}},X)}function At(e){return e}function Ya(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var jt=Math.max;function qa(e,t,n){return t=jt(t===void 0?e.length-1:t,0),function(){for(var o=arguments,i=-1,a=jt(o.length-t,0),l=Array(a);++i<a;)l[i]=o[t+i];i=-1;for(var s=Array(t+1);++i<t;)s[i]=o[i];return s[t]=n(l),Ya(e,this,s)}}function Qa(e){return function(){return e}}var Ja=x?function(e,t){return x(e,"toString",{configurable:!0,enumerable:!1,value:Qa(t),writable:!0})}:At,Za=800,xa=16,ei=Date.now;function ti(e){var t=0,n=0;return function(){var o=ei(),i=xa-(o-n);if(n=o,i>0){if(++t>=Za)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var ni=ti(Ja);function ri(e,t){return ni(qa(e,t,At),e+"")}function oi(e,t,n){if(!w(n))return!1;var o=typeof t;return(o=="number"?ee(n)&&qe(t,n.length):o=="string"&&t in n)?Q(n[t],e):!1}function ai(e){return ri(function(t,n){var o=-1,i=n.length,a=i>1?n[i-1]:void 0,l=i>2?n[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,l&&oi(n[0],n[1],l)&&(a=i<3?void 0:a,i=1),t=Object(t);++o<i;){var s=n[o];s&&e(t,s,o,a)}return t})}var ii=ai(function(e,t,n){kt(e,t,n)});const si=100,Ce=new Map,ne={width:window.innerWidth,height:window.innerHeight},li=e=>{Ce.set(e,e)},ci=e=>{Ce.delete(e)},di=se(e=>{const t=e;t.topEvent={widthDiff:ne.width-window.innerWidth,hightDiff:ne.height-window.innerHeight},ne.width=window.innerWidth,ne.height=window.innerHeight,Ce.forEach(n=>n(t))},si);window.addEventListener("resize",di);const Mt={addOnReize:li,removeOnResize:ci},z={themeName:"light",documentClassModificators:new Map,widthForMobile:900,dateFormat:"Y-m-d",currency:"USD",gmt:(zt=new Date().toString().match(/GMT(\S+)/))==null?void 0:zt[1]},ui={documentClassModificators:z.documentClassModificators,dateFormat:z.dateFormat,currency:z.currency,gmt:z.gmt,isMobile:!1,isMobileUA:!1,isRetina:!1,isApp:!1,isLandscape:!0,isPortrait:!1,size:0,isHidden:!1};class fi{static async TopNotice(){await new Promise((t,n)=>N(["./notice-zADfJ5TR.amd"],t,n))}static async TopPopup(){await new Promise((t,n)=>N(["./popup-CPS-7fSX.amd"],t,n))}static async TopDialog(){const t=new Promise((o,i)=>N(["../dialog/dialog.amd"],o,i)),n=new Promise((o,i)=>N(["./utils-B75aamxF.amd"],o,i));await Promise.all([t,n])}}class g{static state=r.reactive({...ui});static preloaders=fi;static widthForMobile=z.widthForMobile;static themeName=z.themeName;static matchMediaIsMobile;static $=$;static Events=Mt;static flags=r.reactive({needLoadNotice:!1});static _setState(){this.$=$,g.matchMediaIsMobile=window.matchMedia(`(max-width: ${g.widthForMobile}px)`),g.state.isMobileUA=Me(),g.state.isRetina=je(),g.state.isApp=De(),g.useDocumentClassModificators(),g.useIsHidden(),g.setStateByWindowSize(),g.Events.addOnReize(g.onResize),g.onResize(),g.saveToCookie(),g.useCtrlClasses()}static useDocumentClassModificators(){r.watch(()=>[...g.state.documentClassModificators],(t,n)=>{let o=new Set;n==null||n.forEach(([i,a])=>o.add(a)),t.forEach(([i,a])=>o.delete(a)),o.forEach(i=>document.documentElement.classList.remove(i)),t.forEach(([i,a])=>document.documentElement.classList.add(a))},{immediate:!0})}static useIsHidden(){document.addEventListener("visibilitychange",()=>{g.state.isHidden=document.hidden}),g.state.isHidden=document.hidden}static setStateByWindowSize(){var t;g.state.isMobile=!!((t=g.matchMediaIsMobile)!=null&&t.matches),g.state.isLandscape=window.innerWidth>window.innerHeight,g.state.isPortrait=!g.state.isLandscape,g.state.size=window.innerWidth>window.innerHeight?window.innerWidth:window.innerHeight,g.saveToCookie()}static onResize(){g.setStateByWindowSize()}static saveToCookie(){const t=[1,window.innerWidth,window.innerHeight,window.devicePixelRatio,Number(g.state.isMobile),Number(g.state.isRetina)];document.cookie="device="+t.join(",")+"; path=/;"}static useCtrlClasses(){const t=document.body.classList;document.addEventListener("keydown",n=>{(n.ctrlKey||n.metaKey)&&t.add("top-body-press_ctrl"),n.altKey&&t.add("top-body-press_alt")}),document.addEventListener("keyup",()=>t.remove("top-body-press_ctrl","top-body-press_alt")),document.addEventListener("keypress",()=>t.remove("top-body-press_ctrl","top-body-press_alt")),window.addEventListener("blur",()=>t.remove("top-body-press_ctrl","top-body-press_alt"))}static notice=async(t,n,o)=>(g.flags.needLoadNotice=!0,(await new Promise((a,l)=>N(["./notice-zADfJ5TR.amd"],a,l))).show(t,n,o));static insertCSSLinkToPage=(t,n=!1)=>{const o=new Map;o.set("::",[]),t.forEach(a=>{let l=!1,s=!1;a.match(/\.m\./)&&(l=!0),a.match(/\.pc\./)&&(s=!0);const c=`${l}:${s}`;o.has(c)||o.set(`${l}:${s}`,[]),o.get(`${l}:${s}`).push(a)});const i=[];return o.forEach((a,l)=>{if(!a.length)return;const[s,c]=l.split(":").map(p=>p==="true");let d="all";s&&(d="(max-width: "+g.widthForMobile+"px)"),c&&(d="(min-width: "+g.widthForMobile+"px)"),g._insertToPage(a,d,n).forEach(p=>i.push(p))}),Promise.all(i)};static _insertToPage=(t,n,o)=>{const i=[];return t.forEach(a=>{if(o){const p=new XMLHttpRequest;p.open("GET",a,!1),p.send()}const l="topCSSLink-"+a.replace(/\W/g,"-");if(window.hasOwnProperty(l))return;let s,c;const d=new Promise((p,m)=>{s=p,c=m});i.push(d);const f=document.createElement("link");f.id=l,f.rel="stylesheet",f.media=n,f.href=a,f.onload=()=>s(),f.onerror=()=>c(),document.head.append(f)}),i};static insertStyleToPage=(t,n="")=>{let o="all";n==="m"&&(o="(max-width: "+g.widthForMobile+"px)"),n==="pc"&&(o="(min-width: "+g.widthForMobile+"px)");const i=document.createElement("style");i.innerHTML=t,i.media=o,document.head.append(i)}}const pi={install:(e,t)=>{const n=(o,i,a)=>e.config.globalProperties.$i18n[o][i]?Object.entries(a).reduce((l,[s,c])=>l.replaceAll(new RegExp(`{{ ${s} }}`,"g"),c),e.config.globalProperties.$i18n[o][i]):"";Object.setPrototypeOf(n,r.reactive(t.i18n)),e.config.globalProperties.$i18n=n,e.config.globalProperties.$i18nLang=r.ref(t.lang),e.config.globalProperties.$i18nSetLang=()=>{},e.config.globalProperties.i18n=e.config.globalProperties.$i18n,typeof window<"u"&&window.requirejs&&(e.config.globalProperties.$i18nSetLang=async(o,i)=>{await window.requirejs("i18n").setLang(o,i);const a=window.requirejs("i18n").categories[o];Object.keys(a).forEach(l=>{e.config.globalProperties.$i18n[l]=a[l]}),e.config.globalProperties.$i18nLang.value=o}),typeof window<"u"&&!window.requirejs&&(globalThis.$i18n=e.config.globalProperties.$i18n),e.provide("$i18n",e.config.globalProperties.$i18n),e.provide("$i18nLang",e.config.globalProperties.$i18nLang),e.provide("$i18nSetLang",e.config.globalProperties.$i18nSetLang),e.provide("$i18nRender",e.config.globalProperties.$i18nRender),e.provide("i18n",e.config.globalProperties.i18n)}},Y=()=>{var e,t;return!r.getCurrentInstance()&&((t=(e=window.mo)==null?void 0:e.user)!=null&&t.lang)?requirejs("i18n").categories[mo.user.lang]:!r.getCurrentInstance()&&globalThis.$i18n?globalThis.$i18n:r.inject("$i18n")},mi=()=>{var e,t;return!r.getCurrentInstance()&&((t=(e=window.mo)==null?void 0:e.user)!=null&&t.lang)?r.ref(mo.user.lang):r.inject("$i18nLang")},gi=()=>r.inject("$i18nSetLang"),hi=(e,t,n)=>{const o=Y().Calendar;switch(new Date(e,--t,n).getDay()){case 0:return o.Dw_1+".";case 1:return o.Dw_2+".";case 2:return o.Dw_3+".";case 3:return o.Dw_4+".";case 4:return o.Dw_5+".";case 5:return o.Dw_6+".";case 6:return o.Dw_7+".";default:return""}},bi=(e,t=!0,n=2)=>{let o=String(e.getFullYear()),i=String(e.getDate()).padStart(2,"0"),a=String(e.getMonth()+1).padStart(2,"0"),l=String(e.getHours()).padStart(2,"0"),s=String(e.getMinutes()).padStart(2,"0"),c=String(e.getSeconds()).padStart(2,"0"),d=o+"-"+a+"-"+i;return n>=1&&(d+=" "+l),n>=2&&(d+=":"+s),n===3&&(d+=":"+c),t&&(d=L(d,n)),d};function yi(e){return e.indexOf("T")===-1&&(e.length==10&&(e+=" 00:00:00"),e=e.replace(" ","T")+g.state.gmt),new Date(e)}function Dt(e,t=!0,n=0){e||(e=new Date().getTime());const o=new Date(e),i=o.getFullYear(),a=String(o.getMonth()+1).padStart(2,"0"),l=o.getDate().toString().padStart(2,"0"),s=o.getHours().toString().padStart(2,"0"),c=o.getMinutes().toString().padStart(2,"0"),d=o.getSeconds().toString().padStart(2,"0");n==="auto"&&(n=0,o.getHours()&&(n=1),o.getMinutes()&&(n=2),o.getSeconds()&&(n=3));let f=i+"-"+a+"-"+l;return n&&(f+=" "),n>=1&&(f+=s),n>=2&&(f+=":"+c),n>=3&&(f+=":"+d),t&&(f=L(o,n)),f}function vi(e,t=!0){const o=new Date().getTimezoneOffset()/60*-1*60*60*1e3,i=3*60*60*1e3;let a;e!==void 0?a=new Date(e):a=new Date,a.setTime(a.getTime()-o+i);let l=String(a.getFullYear()),s=String(a.getDate()).padStart(2,"0"),c=String(a.getMonth()+1).padStart(2,"0"),d=String(a.getHours()).padStart(2,"0"),f=String(a.getMinutes()).padStart(2,"0"),p=String(a.getSeconds()).padStart(2,"0"),m=l+"-"+c+"-"+s+" "+d+":"+f+":"+p;return t&&(m=L(m)),m}function L(e,t=2,n,o){if(o||(o=Y().Common.Not_date),typeof e=="string"&&(!e||e.substring(0,10)==="0000-00-00")&&o&&o!=="0000-00-00"||!e)return o;n||(n=g.state.dateFormat),n=n.toLowerCase().replace("m","mm").replace("y","yy").replace("d","dd");let i;if(e instanceof Date)i=e;else{let l=e.substring(0,10);if(l.length===7&&(l+="-01"),l+=" 00:00",l=l.replace(/-/g,"/"),i=new Date(l),isNaN(Number(i)))return o}let a="";if(n&&window.$&&(a=$.datepicker.formatDate(n,i)),t&&typeof e=="string"&&e.length>10||t&&e instanceof Date){let l="";if(e instanceof Date)l=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"numeric",minute:t>=2?"numeric":void 0,second:t>=3?"numeric":void 0});else switch(t){case 1:l=e.substring(11,13);break;case 2:l=e.substring(11,16);break;case 3:l=e.substring(11,19);break}a+=" "+l}return a=a.trim(),a}function Oe(e,t){if(t||(t=Y().Common.Not_date),!e)return t;if(e.match(/\d\d\d\d-\d\d-\d\d/))return e;const n=g.state.dateFormat.toLowerCase(),o=e.split(/\W/),i=n.split(/\W/);let a="",l="",s="";i.forEach((d,f)=>{switch(d){case"d":a=o[f];break;case"m":l=o[f];break;case"y":s=o[f];break}});let c=s+"-"+l+"-"+a;return c.match(/\d\d\d\d-\d\d-\d\d/)||(console.info("Неверный формат даты, будет возращена текущая дата, "+c),c=Dt(new Date().getTime(),!1).substring(0,10)),c}const wi={class:"top-avatar"},Ti=["src","title"],$i=["title"],Si=r.defineComponent({__name:"avatar",props:{size:{default:64},image:{},nickname:{},isOnline:{type:Boolean},lastActiveTime:{},i18n:{default:()=>({Online:"Online",LastSeen:"Last seen"})}},setup(e){r.useCssVars(i=>({62448408:i.size+"px"}));const t=e,n=r.computed(()=>{var i,a;if(t.isOnline)return(i=t.i18n)==null?void 0:i.Online;if(t.lastActiveTime)return((a=t.i18n)==null?void 0:a.LastSeen)+": "+L(t.lastActiveTime,2)}),o=r.computed(()=>t.nickname?t.nickname+(n.value?`
2
- ${n.value}`:""):n.value);return(i,a)=>(r.openBlock(),r.createElementBlock("div",wi,[r.createElementVNode("img",{class:"top-avatar_image",src:i.image,title:o.value,alt:""},null,8,Ti),i.isOnline?(r.openBlock(),r.createElementBlock("div",{key:0,class:"top-avatar_status",title:n.value},null,8,$i)):r.createCommentVNode("",!0)]))}}),_i=["data-top-badge"],Ei={key:1,class:"top-ellipsis"},It=r.defineComponent({__name:"button",props:{color:{default:"blue"},styling:{default:""},size:{default:"s"},name:{},title:{},icon:{},icon2:{},href:{},badgeNumber:{},badgePosAfterText:{type:Boolean},disabled:{type:Boolean},isSubmit:{type:Boolean},isActive:{type:Boolean},isProgress:{type:Boolean}},setup(e){const t=e,n=r.computed(()=>t.href?"a":"button"),o=r.computed(()=>t.isSubmit?"submit":void 0);return(i,a)=>(r.openBlock(),r.createBlock(r.resolveDynamicComponent(n.value),{class:r.normalizeClass({"top-active":i.isActive,"top-disabled":i.disabled,"top-forms-focusable":!i.disabled,"top-button":!0,"top-button-progress":i.isProgress,[`top-size_${i.size}`]:!!i.size,[`top-color_${i.color}`]:!0,[`top-style_${i.styling}`]:!!i.styling,"top-button-withoutText":!i.$slots.default}),name:i.name,title:i.title,href:i.href,type:o.value,"data-top-icon":i.icon||void 0,"data-top-icon2":i.icon2||void 0,disabled:i.disabled||void 0,inProgress:i.isProgress},{default:r.withCtx(()=>[i.badgeNumber?(r.openBlock(),r.createElementBlock("span",{key:0,"data-top-badge":i.badgeNumber,class:r.normalizeClass(["top-button_badge",{"top-button_badge-afterText":i.badgePosAfterText}])},null,10,_i)):r.createCommentVNode("",!0),i.$slots.default?(r.openBlock(),r.createElementBlock("span",Ei,[r.renderSlot(i.$slots,"default",{},()=>[r.createTextVNode(r.toDisplayString(i.icon?"":"Button"),1)])])):r.createCommentVNode("",!0),r.renderSlot(i.$slots,"html")]),_:3},8,["class","name","title","href","type","data-top-icon","data-top-icon2","disabled","inProgress"]))}}),Bi={class:"top-forms-optionLabel"},re=r.defineComponent({__name:"controlLabel",props:{description:{},disabled:{type:Boolean}},setup(e){return(t,n)=>(r.openBlock(),r.createElementBlock("div",Bi,[r.createElementVNode("div",{class:r.normalizeClass({"top-forms-optionLabel_title":!0,"top-forms-optionLabel_title-disabled":t.disabled})},[r.renderSlot(t.$slots,"default")],2),t.description?(r.openBlock(),r.createElementBlock("div",{key:0,class:r.normalizeClass(["top-forms-optionLabel_description",{"top-forms-optionLabel_description-disabled":t.disabled}])},r.toDisplayString(t.description),3)):r.createCommentVNode("",!0)]))}}),Ci=["name","value","indeterminate","disabled"],Oi=r.defineComponent({__name:"checkbox",props:r.mergeModels({modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},indeterminate:{type:Boolean},isError:{type:Boolean}},{modelValue:{type:[Boolean,Array,Set]},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=r.useModel(e,"modelValue");return(n,o)=>{const i=r.resolveDirective("top-focus");return r.openBlock(),r.createElementBlock("label",{class:r.normalizeClass({"top-forms-optionWrapper":!0,"top-checkbox":!0,["top-checkbox_"+n.name]:!!n.name,"top-disabled":n.disabled,"top-error":n.isError&&!n.disabled})},[r.withDirectives(r.createElementVNode("input",{type:"checkbox",class:r.normalizeClass({"top-forms-focusable":!n.disabled,"top-forms-option":!0,"top-checkbox_input":!0,"top-error":n.isError&&!n.disabled}),name:n.name,"onUpdate:modelValue":o[0]||(o[0]=a=>t.value=a),value:n.value,indeterminate:n.indeterminate,disabled:n.disabled},null,10,Ci),[[i,n.isError,void 0,{onupdate:!0}],[r.vModelCheckbox,t.value]]),n.$slots.default?(r.openBlock(),r.createBlock(re,{key:0,description:n.description,disabled:n.disabled},{default:r.withCtx(()=>[r.renderSlot(n.$slots,"default")]),_:3},8,["description","disabled"])):r.createCommentVNode("",!0)],2)}}}),Pi=["title"],Pe=r.defineComponent({__name:"hint",props:{hint:{}},setup(e){return(t,n)=>(r.openBlock(),r.createElementBlock("span",{class:"top-hint","data-top-icon":"",title:t.hint},null,8,Pi))}}),Lt=(e,t)=>{const n=e.__vccOpts||e;for(const[o,i]of t)n[o]=i;return n},ki={},Ai={class:"top-loadbar"};function ji(e,t){return r.openBlock(),r.createElementBlock("div",Ai)}const ke=Lt(ki,[["render",ji]]),Mi=["data-top-icon","data-top-icon2"],Di=["name","title","placeholder","disabled","readonly"],Ii={key:2,class:"top-formsCaption"},oe=r.defineComponent({inheritAttrs:!1,__name:"input",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{default:"s"},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{},addCleaner:{type:Boolean},title:{},captionType:{default:""}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,i=r.computed({get(){return n.modelValue},set(s){o("update:modelValue",s)}}),a=r.computed(()=>n.addCleaner&&!n.title||n.captionType!==""?"":n.title),l=s=>{n.modelValue&&s.stopPropagation(),o("update:modelValue","")};return(s,c)=>{const d=r.resolveDirective("top-focus");return r.openBlock(),r.createElementBlock("label",{class:r.normalizeClass({"top-input":!0,["top-size_"+s.size]:!0,"top-disabled":s.disabled,["top-input-"+s.modificator]:!!s.modificator,"top-input-withCleaner":s.addCleaner&&i.value&&i.value!=="0000-00-00","top-formsCaptionWrapper":s.captionType!=="","top-formsCaptionWrapper-always":s.captionType==="top"}),"data-top-icon":s.icon,"data-top-icon2":s.icon2},[s.isLoading?(r.openBlock(),r.createBlock(ke,{key:0})):r.createCommentVNode("",!0),r.withDirectives(r.createElementVNode("input",r.mergeProps({type:"text",class:{"top-input_input":!0,["top-input_input-"+s.modificator]:!!s.modificator,"top-forms-focusable":!s.disabled,"top-error":s.isError},autocomplete:"off_always",name:s.name,"onUpdate:modelValue":c[0]||(c[0]=f=>i.value=f),title:s.title,placeholder:a.value,disabled:s.disabled,readonly:s.readonly,onKeydown:c[1]||(c[1]=r.withKeys(f=>(s.addCleaner||!!s.$slots.btn)&&l(f),["esc"]))},s.$attrs),null,16,Di),[[d,s.isError,void 0,{onupdate:!0}],[r.vModelText,i.value]]),s.addCleaner&&i.value&&i.value!=="0000-00-00"?(r.openBlock(),r.createElementBlock("span",{key:1,class:"top-input_cleaner","data-top-icon":"",onClick:r.withModifiers(l,["prevent"])})):r.createCommentVNode("",!0),s.captionType!==""?(r.openBlock(),r.createElementBlock("span",Ii,r.toDisplayString(s.title),1)):r.createCommentVNode("",!0),r.renderSlot(s.$slots,"default")],10,Mi)}}}),Li=["modelValue"],Ni=!!document.documentElement.ontouchstart&&!!document.createElement("input").showPicker;let Nt=e=>{};const Vi=r.defineComponent({__name:"inputDate",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{default:""},addCleaner:{type:Boolean},title:{},captionType:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=Y(),o=e,i=t;r.onUnmounted(()=>{l&&l.datepicker("destroy")});const a=r.ref();let l;const s=r.computed({get(){return L(o.modelValue,2,void 0,"0000-00-00")},set(p){p=Oe(p,"0000-00-00"),i("update:modelValue",p)}});let c=p=>{Nt(p)},d=p=>{const m=Oe(p.target.value),h=L(m);if(!h||h===n.Common.Not_date||p.target.value!==h){p.target.value=s.value;return}s.value=p.target.value};async function f(p){const m=await new Promise((h,_)=>N(["./datepicker-CFiizYlZ.amd"],h,_));Nt=m.oninput,l=m.connectDatepicker(p.target,{onSelect:()=>d(p)}),l&&l.datepicker("show")}return(p,m)=>r.unref(Ni)?(r.openBlock(),r.createBlock(oe,r.mergeProps({key:0},p.$props,{modelValue:s.value,readonly:"",onClick:m[1]||(m[1]=h=>a.value.showPicker())}),{default:r.withCtx(()=>[r.createElementVNode("input",{ref_key:"el",ref:a,type:"date",class:"top-input_input-date",modelValue:p.modelValue,onChange:m[0]||(m[0]=h=>s.value=h.target.value),tabindex:"-1"},null,40,Li)]),_:1},16,["modelValue"])):(r.openBlock(),r.createBlock(oe,r.mergeProps({key:1},p.$props,{modelValue:s.value,"onUpdate:modelValue":m[2]||(m[2]=h=>h===""?s.value="":""),onInput:r.unref(c),onFocusOnce:f,onChange:r.unref(d),modificator:"datepicker"}),null,16,["modelValue","onInput","onChange"]))}}),Wi={class:"top-inputRange"},zi=r.defineComponent({__name:"inputRange",setup(e){return(t,n)=>(r.openBlock(),r.createElementBlock("div",Wi,[r.renderSlot(t.$slots,"from"),n[0]||(n[0]=r.createElementVNode("span",{class:"top-inputRange_dash"}," — ",-1)),r.renderSlot(t.$slots,"to")]))}}),Fi=["name","value","disabled"],Ri=r.defineComponent({__name:"radio",props:{modelValue:{},value:{},name:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,i=r.computed({get(){return n.modelValue},set(a){o("update:modelValue",a)}});return(a,l)=>{const s=r.resolveDirective("top-focus");return r.openBlock(),r.createElementBlock("label",{class:r.normalizeClass({"top-forms-optionWrapper":!0,"top-radio":!0,["top-radio_"+a.name]:a.name!=="","top-disabled":a.disabled,"top-error":a.isError&&!a.disabled})},[r.withDirectives(r.createElementVNode("input",{type:"radio",class:r.normalizeClass({"top-forms-focusable":!a.disabled,"top-forms-option":!0,"top-radio_input":!0,"top-error":a.isError&&!a.disabled}),"onUpdate:modelValue":l[0]||(l[0]=c=>i.value=c),name:a.name,value:a.value,disabled:a.disabled},null,10,Fi),[[s,a.isError,void 0,{onupdate:!0}],[r.vModelRadio,i.value]]),a.$slots.default?(r.openBlock(),r.createBlock(re,{key:0,description:a.description,disabled:a.disabled},{default:r.withCtx(()=>[r.renderSlot(a.$slots,"default")]),_:3},8,["description","disabled"])):r.createCommentVNode("",!0)],2)}}}),Ui=["name","value","disabled"],Hi=r.defineComponent({__name:"switcher",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,i=r.computed({get(){return n.modelValue},set(a){o("update:modelValue",a)}});return(a,l)=>{const s=r.resolveDirective("top-focus");return r.openBlock(),r.createElementBlock("label",{class:r.normalizeClass({"top-forms-optionWrapper":!0,"top-checkboxSwitcher":!0,"top-disabled":a.disabled,"top-error":a.isError&&!a.disabled})},[r.withDirectives(r.createElementVNode("input",{type:"checkbox",class:r.normalizeClass({"top-forms-focusable":!a.disabled,"top-forms-option":!0,"top-checkboxSwitcher_input":!0,"top-error":a.isError&&!a.disabled}),"onUpdate:modelValue":l[0]||(l[0]=c=>i.value=c),name:a.name,value:a.value,disabled:a.disabled},null,10,Ui),[[s,a.isError,void 0,{onupdate:!0}],[r.vModelCheckbox,i.value]]),a.$slots.default?(r.openBlock(),r.createBlock(re,{key:0,description:a.description,disabled:a.disabled},{default:r.withCtx(()=>[r.renderSlot(a.$slots,"default")]),_:3},8,["description","disabled"])):r.createCommentVNode("",!0)],2)}}}),Gi=["name","placeholder","disabled","readonly","rows"],Ki={key:0,class:"top-textarea_pseudoContent"},Vt=r.defineComponent({inheritAttrs:!1,__name:"textarea",props:{modelValue:{},name:{},placeholder:{},rows:{default:5},minHeight:{default:120},expandable:{type:Boolean},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["update:modelValue"],setup(e,{emit:t}){r.useCssVars(a=>({"47deeda3":a.minHeight+"px"}));const n=e,o=t,i=r.computed({get(){return n.modelValue},set(a){o("update:modelValue",a)}});return(a,l)=>{const s=r.resolveDirective("top-focus"),c=r.resolveDirective("top-tooltip");return r.openBlock(),r.createElementBlock("label",{class:r.normalizeClass({"top-textarea":!0,["top-textarea-"+a.name]:a.name,"top-disabled":a.disabled})},[r.withDirectives(r.createElementVNode("textarea",r.mergeProps({type:"text",class:{"top-forms-focusable":!a.disabled,"top-textarea_textarea":!0,"top-textarea_textarea-expandable":a.expandable,"top-error":a.isError},autocomplete:"off_always",name:a.name,placeholder:a.placeholder,disabled:a.disabled,readonly:a.readonly,rows:a.expandable?void 0:a.rows},a.$attrs,{"onUpdate:modelValue":l[0]||(l[0]=d=>i.value=d)}),null,16,Gi),[[s,a.isError,void 0,{onupdate:!0}],[r.vModelText,i.value]]),a.expandable?(r.openBlock(),r.createElementBlock("div",Ki,r.toDisplayString(i.value+" "),1)):r.createCommentVNode("",!0),a.hint?r.withDirectives((r.openBlock(),r.createBlock(Pe,{key:1,class:"top-textarea_hint",hint:a.hint},null,8,["hint"])),[[c]]):r.createCommentVNode("",!0)],2)}}}),Xi=["data-value","data-top-icon","data-top-icon2"],Yi=["name","disabled"],qi=["label","disabled"],Qi=["value","selected","disabled"],Ji=["value","selected","disabled"],Zi={key:1,class:"top-formsCaption"},Wt=r.defineComponent({__name:"select",props:r.mergeModels({modelValue:{},options:{},name:{},disabled:{type:Boolean},icon:{},size:{default:"s"},addChanger:{type:Boolean},title:{},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:r.mergeModels(["update:modelValue"],["update:modelValue"]),setup(e){const t=e,n=r.useModel(e,"modelValue"),o=r.computed(()=>{const c=new Map;return t.options.forEach((d,f)=>{if(typeof d=="string"&&(d=a(f,d)),d.children){const p=new Map;d.children.forEach((m,h)=>{typeof m=="string"&&(m=a(h,m)),p.set(m.value,m)}),d={...d},d.children=p,c.set(d.value,d)}else c.set(d.value,d)}),c}),i=r.computed(()=>{const c=new Map;return o.value.forEach(d=>{if(!d.disabled){if(d.children){d.children.forEach(f=>{f.disabled||c.set(f.value,f)});return}c.set(d.value,d)}}),c}),a=(c,d)=>({value:c,title:d});r.watch([()=>t.modelValue,i],()=>{(n.value===null||n.value===void 0)&&i.value.size&&(console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"),n.value=i.value.keys().next().value)},{immediate:!0});const l=r.computed(()=>{var c;return(c=i.value.get(n.value))==null?void 0:c.icon}),s=()=>{const c=[...i.value.keys()],f=(c.indexOf(n.value)+1)%c.length;n.value=c[f]};return(c,d)=>{const f=r.resolveDirective("top-focus");return r.openBlock(),r.createElementBlock("label",{class:r.normalizeClass({"top-select":!0,["top-select-"+c.name]:c.name,["top-size_"+c.size]:!0,"top-formsCaptionWrapper":!!c.title,"top-select-error":c.isError,"top-disabled":c.disabled}),"data-value":n.value,"data-top-icon":c.icon,"data-top-icon2":l.value},[r.withDirectives((r.openBlock(),r.createElementBlock("select",{class:r.normalizeClass({"top-forms-focusable":!c.disabled,"top-select_select":!0,"top-select_arrow":!0,"top-error":c.isError}),name:c.name,disabled:c.disabled,"onUpdate:modelValue":d[0]||(d[0]=p=>n.value=p)},[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(o.value,([p,m])=>(r.openBlock(),r.createElementBlock(r.Fragment,null,[m.children?(r.openBlock(),r.createElementBlock("optgroup",{key:"group_"+p,label:m.title,disabled:m.disabled},[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(m.children,([h,_])=>(r.openBlock(),r.createElementBlock("option",{key:h,value:h,selected:h===n.value,disabled:_.disabled},r.toDisplayString(_.title),9,Qi))),128))],8,qi)):(r.openBlock(),r.createElementBlock("option",{key:p??void 0,value:p,selected:p===n.value,disabled:m.disabled},r.toDisplayString(m.title),9,Ji))],64))),256))],10,Yi)),[[f,c.isError,void 0,{onupdate:!0}],[r.vModelSelect,n.value]]),c.addChanger&&i.value.size&&!c.disabled?(r.openBlock(),r.createElementBlock("span",{key:0,class:"top-changer",onClick:s})):r.createCommentVNode("",!0),c.title?(r.openBlock(),r.createElementBlock("span",Zi,r.toDisplayString(c.title),1)):r.createCommentVNode("",!0)],10,Xi)}}}),xi=Si,es=It,ts=Oi,ns=re,rs=Pe,os=oe,as=Vi,is=zi,ss=Ri,ls=Hi,cs=Vt,ds=Wt,us=ke;u.Core=g,u.Events=Mt,u.TopAvatar=xi,u.TopButton=es,u.TopCheckbox=ts,u.TopControlLabel=ns,u.TopHint=rs,u.TopInput=os,u.TopInputDate=as,u.TopInputRange=is,u.TopLoadbar=us,u.TopLoadbar$1=ke,u.TopRadio=ss,u.TopSelect=ds,u.TopSwitcher=ls,u.TopTextarea=cs,u._export_sfc=Lt,u._sfc_main=It,u._sfc_main$1=Pe,u._sfc_main$2=oe,u._sfc_main$3=Vt,u._sfc_main$4=Wt,u.cloneDeep=Ma,u.dateFormat=L,u.dateToString=bi,u.dateUnformat=Oe,u.debounce=se,u.genDate=Dt,u.genDateMoscow=vi,u.get$scroll=Kt,u.getCommandKeyLabel=Ht,u.getDayOfWeek=hi,u.getElsScroll=Xt,u.getOS=Le,u.getOSAsync=Yt,u.getScrollTop=Gt,u.i18n=pi,u.isApp=De,u.isMacOS=Ie,u.isMobile=Me,u.isRetina=je,u.isSafari=Ut,u.memoize=_e,u.merge=ii,u.stringToDate=yi,u.throttle=La,u.useI18n=Y,u.useI18nLang=mi,u.useI18nSetLang=gi});
3
- //# sourceMappingURL=forms-BWc2kMFD.amd.js.map