@topvisor/ui 0.9.32 → 0.9.33-dev

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 (210) hide show
  1. package/.chunks/datepicker-B2sjxM3R.amd.js +247 -0
  2. package/.chunks/datepicker-B2sjxM3R.amd.js.map +1 -0
  3. package/.chunks/datepicker-V4rjmE4P.es.js +289 -0
  4. package/.chunks/datepicker-V4rjmE4P.es.js.map +1 -0
  5. package/.chunks/forms-Dixfp052.amd.js +4 -0
  6. package/.chunks/forms-Dixfp052.amd.js.map +1 -0
  7. package/.chunks/forms-o7UeMJFf.es.js +1507 -0
  8. package/.chunks/forms-o7UeMJFf.es.js.map +1 -0
  9. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-BfCj7kQR.es.js → listItem.vue_vue_type_script_setup_true_lang-BliXIrA8.es.js} +2 -2
  10. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-BliXIrA8.es.js.map +1 -0
  11. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C7tg-67i.amd.js → listItem.vue_vue_type_script_setup_true_lang-C0tRJmSC.amd.js} +2 -2
  12. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-C0tRJmSC.amd.js.map +1 -0
  13. package/.chunks/{menu-v5knQbeF.es.js → menu-CHczkYl6.es.js} +2 -2
  14. package/.chunks/menu-CHczkYl6.es.js.map +1 -0
  15. package/.chunks/{menu-S1Hk7D3W.amd.js → menu-buQxcAhv.amd.js} +2 -2
  16. package/.chunks/menu-buQxcAhv.amd.js.map +1 -0
  17. package/.chunks/{popup-DncRq57t.amd.js → popup-BMNS1F2G.amd.js} +440 -440
  18. package/.chunks/popup-BMNS1F2G.amd.js.map +1 -0
  19. package/.chunks/{popup-BK3xlBZm.es.js → popup-CJLGyBwQ.es.js} +485 -485
  20. package/.chunks/popup-CJLGyBwQ.es.js.map +1 -0
  21. package/.chunks/store-Bl79G7T_.amd.js.map +1 -1
  22. package/.chunks/store-PoMCiuBr.es.js.map +1 -1
  23. package/.chunks/{widgetInput-CrrUoVPc.amd.js → widgetInput-ASxjfQpi.amd.js} +2 -2
  24. package/.chunks/widgetInput-ASxjfQpi.amd.js.map +1 -0
  25. package/.chunks/{widgetInput-Br5COpvG.es.js → widgetInput-p8fSQGk9.es.js} +2 -2
  26. package/.chunks/widgetInput-p8fSQGk9.es.js.map +1 -0
  27. package/README.md +86 -86
  28. package/assets/core.css +1 -1
  29. package/assets/dark.css +1 -1
  30. package/assets/forms.css +1 -1
  31. package/assets/formsExt.css +1 -1
  32. package/assets/light.css +1 -1
  33. package/core/core.amd.js +1 -1
  34. package/core/core.js +1 -1
  35. package/forms/forms.amd.js +1 -1
  36. package/forms/forms.js +15 -14
  37. package/forms/forms.js.map +1 -1
  38. package/forms/helpers.amd.js.map +1 -1
  39. package/forms/helpers.js.map +1 -1
  40. package/formsExt/formsExt.amd.js +1 -1
  41. package/formsExt/formsExt.amd.js.map +1 -1
  42. package/formsExt/formsExt.js +82 -82
  43. package/formsExt/formsExt.js.map +1 -1
  44. package/icomoon/Read Me.txt +7 -7
  45. package/icomoon/demo-files/demo.css +161 -161
  46. package/icomoon/demo-files/demo.js +30 -30
  47. package/icomoon/demo.html +3379 -3379
  48. package/icomoon/fonts/Topvisor-2.svg +263 -263
  49. package/icomoon/style.css +740 -740
  50. package/package.json +24 -24
  51. package/popup/popup.amd.js +1 -1
  52. package/popup/popup.js +2 -2
  53. package/popup/worker.amd.js +1 -1
  54. package/popup/worker.amd.js.map +1 -1
  55. package/popup/worker.js +2 -2
  56. package/popup/worker.js.map +1 -1
  57. package/project/project.amd.js +1 -1
  58. package/project/project.amd.js.map +1 -1
  59. package/project/project.js +3 -3
  60. package/project/project.js.map +1 -1
  61. package/require/css.amd.js +11 -11
  62. package/src/components/forms/avatar/avatar.stories.d.ts +15 -14
  63. package/src/components/forms/avatar/avatar.vue.d.ts +7 -6
  64. package/src/components/forms/button/button.stories.d.ts +62 -60
  65. package/src/components/forms/button/button.vue.d.ts +14 -14
  66. package/src/components/forms/checkbox/checkbox.stories.d.ts +37 -37
  67. package/src/components/forms/checkbox/checkbox.vue.d.ts +20 -23
  68. package/src/components/forms/controlLabel/controlLabel.stories.d.ts +17 -16
  69. package/src/components/forms/controlLabel/controlLabel.vue.d.ts +5 -6
  70. package/src/components/forms/forms.d.ts +8 -0
  71. package/src/components/forms/hint/hint.stories.d.ts +87 -22
  72. package/src/components/forms/hint/hint.vue.d.ts +4 -3
  73. package/src/components/forms/input/input.stories.d.ts +67 -65
  74. package/src/components/forms/input/input.vue.d.ts +13 -13
  75. package/src/components/forms/inputDate/datepicker.d.ts +2 -0
  76. package/src/components/forms/inputDate/inputDate.stories.d.ts +31 -29
  77. package/src/components/forms/inputDate/inputDate.vue.d.ts +6 -5
  78. package/src/components/forms/inputRange/inputRange.stories.d.ts +124 -89
  79. package/src/components/forms/inputRange/inputRange.vue.d.ts +3 -4
  80. package/src/components/forms/loadbar/loadbar.stories.d.ts +2 -1
  81. package/src/components/forms/loadbar/loadbar.vue.d.ts +2 -1
  82. package/src/components/forms/radio/radio.stories.d.ts +35 -34
  83. package/src/components/forms/radio/radio.vue.d.ts +8 -9
  84. package/src/components/forms/select/select.stories.d.ts +24 -22
  85. package/src/components/forms/select/select.vue.d.ts +25 -24
  86. package/src/components/forms/switcher/switcher.stories.d.ts +35 -34
  87. package/src/components/forms/switcher/switcher.vue.d.ts +8 -9
  88. package/src/components/forms/textarea/textarea.stories.d.ts +24 -23
  89. package/src/components/forms/textarea/textarea.vue.d.ts +6 -5
  90. package/src/components/formsExt/editArea/editArea.stories.d.ts +40 -39
  91. package/src/components/formsExt/editArea/editArea.vue.d.ts +6 -5
  92. package/src/components/formsExt/editInput/editInput.stories.d.ts +25 -22
  93. package/src/components/formsExt/editInput/editInput.vue.d.ts +8 -9
  94. package/src/components/formsExt/menu/menu.stories.d.ts +16 -15
  95. package/src/components/formsExt/menu/menu.vue.d.ts +16 -15
  96. package/src/components/formsExt/radioGroup/radioGroup.stories.d.ts +16 -14
  97. package/src/components/formsExt/radioGroup/radioGroup.vue.d.ts +17 -14
  98. package/src/components/formsExt/selector2/api.d.ts +3 -3
  99. package/src/components/formsExt/selector2/itemMulti.vue.d.ts +5 -4
  100. package/src/components/formsExt/selector2/selector2.stories.d.ts +98 -97
  101. package/src/components/formsExt/selector2/selector2.vue.d.ts +47 -47
  102. package/src/components/popup/popup/listItem.vue.d.ts +9 -10
  103. package/src/components/popup/popup/opener.vue.d.ts +11 -12
  104. package/src/components/popup/popup/popup.stories.d.ts +271 -202
  105. package/src/components/popup/popup/popup.vue.d.ts +17 -18
  106. package/src/components/popup/popup/widgetInput.vue.d.ts +31 -28
  107. package/src/components/project/selectorCompetitors/composables.d.ts +2 -2
  108. package/src/components/project/selectorCompetitors/selectorCompetitors.stories.d.ts +9 -8
  109. package/src/components/project/selectorCompetitors/selectorCompetitors.vue.d.ts +10 -10
  110. package/src/components/project/selectorCompetitors/stories/items.d.ts +2 -1
  111. package/src/components/tabs/tabs/content.vue.d.ts +5 -6
  112. package/src/components/tabs/tabs/tab.vue.d.ts +5 -6
  113. package/src/components/tabs/tabs/tabs.stories.d.ts +244 -177
  114. package/src/components/tabs/tabs/tabs.vue.d.ts +5 -6
  115. package/src/components/tabsView/tabsView/menu.vue.d.ts +10 -11
  116. package/src/components/tabsView/tabsView/menuDelimeter.vue.d.ts +2 -1
  117. package/src/components/tabsView/tabsView/menuItem.vue.d.ts +9 -10
  118. package/src/components/tabsView/tabsView/menuTitle.vue.d.ts +5 -6
  119. package/src/components/tabsView/tabsView/store.d.ts +129 -72
  120. package/src/components/tabsView/tabsView/tabsView.d.ts +1 -1
  121. package/src/components/tabsView/tabsView/tabsView.stories.d.ts +107 -106
  122. package/src/components/tabsView/tabsView/tabsView.vue.d.ts +16 -17
  123. package/src/components/tabsView/tabsView//320/255/320/273/320/265/320/274/320/265/320/275/321/202/321/213/MenuItem.stories.d.ts +102 -101
  124. package/src/components/tabsView/tabsView//320/255/320/273/320/265/320/274/320/265/320/275/321/202/321/213/MenuTitle.stories.d.ts +54 -53
  125. package/src/core/core/core.d.ts +2 -1
  126. package/src/core/core/page.d.ts +4 -0
  127. package/src/core/core/plugin.d.ts +38 -0
  128. package/src/core/core/state.d.ts +4 -0
  129. package/src/core/utils/device.d.ts +9 -0
  130. package/src/core/utils/image.d.ts +12 -0
  131. package/src/core/utils/number.d.ts +7 -0
  132. package/src/core/utils/price.d.ts +1 -1
  133. package/src/core/utils/store/localStorage.d.ts +1 -1
  134. package/src/core/utils/store/plugin.d.ts +2 -1
  135. package/src/core/utils/store/store.d.ts +2 -2
  136. package/src/core/utils/string.d.ts +5 -1
  137. package/tabs/tabs.amd.js +1 -1
  138. package/tabs/tabs.js +1 -1
  139. package/tabsView/tabsView.amd.js +1 -1
  140. package/tabsView/tabsView.amd.js.map +1 -1
  141. package/tabsView/tabsView.js +2 -2
  142. package/tabsView/tabsView.js.map +1 -1
  143. package/utils/check.amd.js +1 -1
  144. package/utils/check.amd.js.map +1 -1
  145. package/utils/check.js +5 -22
  146. package/utils/check.js.map +1 -1
  147. package/utils/css.amd.js.map +1 -1
  148. package/utils/css.js.map +1 -1
  149. package/utils/date.amd.js +1 -1
  150. package/utils/date.js +4 -4
  151. package/utils/device.amd.js +1 -1
  152. package/utils/device.js +7 -6
  153. package/utils/dom.amd.js.map +1 -1
  154. package/utils/dom.js.map +1 -1
  155. package/utils/image.amd.js +2 -0
  156. package/utils/image.amd.js.map +1 -0
  157. package/utils/image.d.ts +1 -0
  158. package/utils/image.js +13 -0
  159. package/utils/image.js.map +1 -0
  160. package/utils/keyboard.amd.js.map +1 -1
  161. package/utils/keyboard.js.map +1 -1
  162. package/utils/number.amd.js +2 -0
  163. package/utils/number.amd.js.map +1 -0
  164. package/utils/number.d.ts +1 -0
  165. package/utils/number.js +9 -0
  166. package/utils/number.js.map +1 -0
  167. package/utils/price.amd.js.map +1 -1
  168. package/utils/price.js.map +1 -1
  169. package/utils/route.amd.js.map +1 -1
  170. package/utils/route.js.map +1 -1
  171. package/utils/scroll.amd.js +1 -1
  172. package/utils/scroll.amd.js.map +1 -1
  173. package/utils/scroll.js +1 -1
  174. package/utils/scroll.js.map +1 -1
  175. package/utils/string.amd.js +1 -1
  176. package/utils/string.amd.js.map +1 -1
  177. package/utils/string.js +17 -128
  178. package/utils/string.js.map +1 -1
  179. package/utils/system.amd.js +1 -1
  180. package/utils/system.amd.js.map +1 -1
  181. package/utils/system.js +8 -8
  182. package/utils/system.js.map +1 -1
  183. package/utils/url.amd.js +1 -2
  184. package/utils/url.amd.js.map +1 -1
  185. package/utils/url.js +8 -173
  186. package/utils/url.js.map +1 -1
  187. package/utils/window.amd.js +1 -1
  188. package/utils/window.js +1 -1
  189. package/.chunks/datepicker-5QMJRJn-.amd.js +0 -247
  190. package/.chunks/datepicker-5QMJRJn-.amd.js.map +0 -1
  191. package/.chunks/datepicker-D1JLNEmV.es.js +0 -289
  192. package/.chunks/datepicker-D1JLNEmV.es.js.map +0 -1
  193. package/.chunks/forms-B2NcBl7S.amd.js +0 -3
  194. package/.chunks/forms-B2NcBl7S.amd.js.map +0 -1
  195. package/.chunks/forms-S36M7cBH.es.js +0 -1170
  196. package/.chunks/forms-S36M7cBH.es.js.map +0 -1
  197. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-BfCj7kQR.es.js.map +0 -1
  198. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-C7tg-67i.amd.js.map +0 -1
  199. package/.chunks/menu-S1Hk7D3W.amd.js.map +0 -1
  200. package/.chunks/menu-v5knQbeF.es.js.map +0 -1
  201. package/.chunks/popup-BK3xlBZm.es.js.map +0 -1
  202. package/.chunks/popup-DncRq57t.amd.js.map +0 -1
  203. package/.chunks/widgetInput-Br5COpvG.es.js.map +0 -1
  204. package/.chunks/widgetInput-CrrUoVPc.amd.js.map +0 -1
  205. package/src/core/utils/common.d.ts +0 -21
  206. package/utils/common.amd.js +0 -2
  207. package/utils/common.amd.js.map +0 -1
  208. package/utils/common.d.ts +0 -1
  209. package/utils/common.js +0 -21
  210. package/utils/common.js.map +0 -1
package/utils/check.js CHANGED
@@ -1,26 +1,9 @@
1
- import { toPuny as t } from "./url.js";
2
- const i = "ru|com|abbott|ac|ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|asia|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|boo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|coop|cr|cs|gb|cu|cv|cx|cy|cyou|cz|dd|de|dj|dk|dm|do|dz|ec|eco|edu|ee|eg|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|icu|id|ie|il|im|in|int|info|io|iq|ir|is|it|je|jm|jo|jobs|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|live|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mh|mil|mg|mk|ml|mm|mn|mo|mobi|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|ng|ni|nl|no|np|nr|nu|nz|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|rs|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vn|vu|wf|ws|ye|yt|za|zm|zw|academy|agency|art|arte|audible|audio|band|bargains|bike|blog|boutique|builders|buzz|cab|camera|camp|cam|careers|center|cheap|clothing|club|codes|coffee|company|computer|condos|construction|contractors|cool|cruises|dance|dating|democrat|diamonds|directory|domains|education|email|enterprises|equipment|estate|events|expert|exposed|farm|flights|florist|foundation|futbol|gallery|gal|gift|glass|graphics|guitars|guru|holdings|holiday|house|immobilien|kitchen|land|lighting|limo|link|maison|management|marketing|menu|men|moe|ninja|partners|photo|photography|photos|pics|plumbing|plus|productions|properties|recipes|rentals|repair|review|reviews|sandvik|sexy|shoes|singles|social|solar|solutions|support|systems|tattoo|technology|tienda|tips|today|training|travel|vacations|ventures|viajes|villas|voyage|watch|works|zone|xxx|ads|associates|booking|business|ceo|ecom|forum|gives|global|gmbh|inc|institute|insure|lifeinsurance|llc|llp|ltd|ltda|mba|new|news|ngo|press|sarl|services|srl|studio|trade|trading|wiki|xin|auction|bid|blackfriday|buy|capital|charity|claims|compare|coupon|coupons|deal|dealer|deals|delivery|discount|exchange|flowers|free|furniture|gifts|gripe|grocery|jewelry|kaufen|lotto|parts|promo|qpon|racing|rsvp|sale|salon|save|seat|shop|shopping|silk|spa|store|supplies|supply|taxi|tickets|tires|tools|toys|watches|college|courses|degree|ged|phd|prof|scholarships|school|schule|science|shiksha|study|translations|university|beer|cafe|catering|cityeats|cooking|diet|food|organic|pet|pizza|pub|rest|restaurant|soy|wine|blue|circle|dot|duck|fast|final|finish|fire|fun|fyi|goo|got|green|here|horse|how|ieee|jot|joy|like|limited|makeup|meme|mint|moi|moto|now|nowruz|ong|onl|ooo|page|pars|pid|pink|play|plus|read|red|reise|reisen|rocks|safe|safety|seek|select|sky|smile|spot|sucks|talk|top|trust|uno|vin|vodka|web|wed|win|winners|wow|wtf|xyz|yamaxun|you|zero|abudhabi|africa|alsace|amsterdam|aquitaine|arab|barcelona|bayern|berlin|boston|broadway|brussels|budapest|bzh|capetown|cologne|corsica|country|cymru|desi|doha|dubai|durban|earth|eus|gent|hamburg|helsinki|international|irish|istanbul|joburg|kiwi|koeln|kyoto|london|madrid|market|melbourne|miami|monster|nagoya|nrw|nyc|okinawa|osaka|paris|persiangulf|place|quebec|rio|roma|ryukyu|saarland|scot|shia|show|stockholm|stream|swiss|sydney|taipei|tatar|thai|tirol|tokyo|vegas|vlaanderen|wales|wanggou|wien|world|yokohama|zuerich|clinic|dental|dentist|docs|doctor|health|healthcare|hiv|hospital|med|medical|pharmacy|physio|rehab|surgery|auto|autos|bio|boats|cars|cleaning|consulting|design|energy|industries|motorcycles|adult|baby|beauty|beknown|best|bet|bingo|bom|cards|community|contact|dad|diy|dog|express|family|fan|fans|fashion|garden|gay|giving|group|guide|hair|halal|hiphop|imamat|jetzt|kid|kids|kim|kinder|latino|lgbt|lifestyle|style|living|love|luxe|luxury|moda|mom|navy|pets|poker|porn|republican|vip|vision|vote|voting|voto|wedding|feedback|film|media|mov|movie|movistar|music|pictures|radio|show|song|theater|theatre|tunes|video|accountant|accountants|analytics|bank|banque|broker|cash|cashbackbonus|cfd|cpa|credit|creditcard|finance|financial|financialaid|fund|gold|gratis|investments|ira|loan|loans|markets|money|mortgage|mutual|mutualfunds|pay|reit|prime|security|yun|abogado|airforce|archi|architect|army|attorney|author|dds|engineer|engineering|esq|law|lawyer|legal|retirement|vet|apartments|casa|case|forsale|haus|homes|lease|property|realestate|realtor|realty|rent|room|baseball|basketball|coach|cricket|fish|fishing|fit|fitness|football|game|games|golf|hockey|juegos|mls|rodeo|rugby|run|ski|soccer|sport|sports|spreadbetting|surf|team|tennis|yoga|app|box|chat|click|cloud|comsec|bot|data|date|dev|digital|download|drive|call|fail|help|host|hosting|map|mobile|network|online|original-tor|phone|report|search|secure|site|software|space|storage|tube|webcam|webs|website|weibo|zip|active|casino|christmas|hangout|hoteis|hotel|hoteles|hotels|meet|party|tech|tour|tours|bible|church|catholic|faith|indians|islam|ismaili|memorial|moscow|actor|bar|black|build|care|city|direct|immo|ink|life|tax|town|work|one|insure|saxo|sex|shell|weber|yandex|rip|car|ist|lat|lol|bond|om|skin|day|quest|wang|sbs|dhl|ing", n = "рф|дети|онлайн|сайт|укр|католик|ком|москва|орг|рус|бел|бг";
3
- let s = "";
4
- const r = () => s || (s = n.split("|").map((e) => t(e)).join("|"), s), c = () => {
5
- const e = `(?:${i})`, a = `(?:${r()})`;
6
- return `(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+(?:${e}|${a})\\/?`;
7
- }, m = (e, a = !1) => {
8
- e += "", e = e.toLowerCase();
9
- let o = "^[-0-9a-z_\\.\\+]+@([-0-9a-z_^\\.]+\\.)+[a-z]{2,20}$";
10
- return a && (o = "^[-0-9a-zа-яё_\\.\\+]+@([-0-9a-zа-яё_^\\.]+\\.)+[a-zа-яё]{2,20}$"), new RegExp(o).test(e);
11
- }, g = (e) => {
12
- if (e = e.trim(), e.includes(" "))
13
- return !1;
14
- const a = e.replace(/^(https?:\/\/)?(www\.)?([^/]+).*/, "$3");
15
- return l(a);
16
- }, l = (e) => (e = t(e), new RegExp(`^${c()}$`).test(e)), p = (e) => new RegExp(
17
- "((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\s*$)|(^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:)(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$))"
18
- ).test(e);
1
+ import { v as i, y as e, w as m, z as o, x as l } from "../.chunks/forms-o7UeMJFf.es.js";
19
2
  export {
20
- c as getDomainRegexp,
21
- l as isDomain,
3
+ i as getDomainRegexp,
4
+ e as isDomain,
22
5
  m as isEmail,
23
- p as isIp,
24
- g as validUrl
6
+ o as isIp,
7
+ l as validUrl
25
8
  };
26
9
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sources":["../../src/core/utils/check.ts"],"sourcesContent":["import { toPuny } from '@/core/utils/url';\r\n\r\nconst domainEn: string = 'ru|com|abbott|ac|ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|asia|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|boo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|coop|cr|cs|gb|cu|cv|cx|cy|cyou|cz|dd|de|dj|dk|dm|do|dz|ec|eco|edu|ee|eg|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|icu|id|ie|il|im|in|int|info|io|iq|ir|is|it|je|jm|jo|jobs|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|live|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mh|mil|mg|mk|ml|mm|mn|mo|mobi|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|ng|ni|nl|no|np|nr|nu|nz|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|rs|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vn|vu|wf|ws|ye|yt|za|zm|zw|academy|agency|art|arte|audible|audio|band|bargains|bike|blog|boutique|builders|buzz|cab|camera|camp|cam|careers|center|cheap|clothing|club|codes|coffee|company|computer|condos|construction|contractors|cool|cruises|dance|dating|democrat|diamonds|directory|domains|education|email|enterprises|equipment|estate|events|expert|exposed|farm|flights|florist|foundation|futbol|gallery|gal|gift|glass|graphics|guitars|guru|holdings|holiday|house|immobilien|kitchen|land|lighting|limo|link|maison|management|marketing|menu|men|moe|ninja|partners|photo|photography|photos|pics|plumbing|plus|productions|properties|recipes|rentals|repair|review|reviews|sandvik|sexy|shoes|singles|social|solar|solutions|support|systems|tattoo|technology|tienda|tips|today|training|travel|vacations|ventures|viajes|villas|voyage|watch|works|zone|xxx|ads|associates|booking|business|ceo|ecom|forum|gives|global|gmbh|inc|institute|insure|lifeinsurance|llc|llp|ltd|ltda|mba|new|news|ngo|press|sarl|services|srl|studio|trade|trading|wiki|xin|auction|bid|blackfriday|buy|capital|charity|claims|compare|coupon|coupons|deal|dealer|deals|delivery|discount|exchange|flowers|free|furniture|gifts|gripe|grocery|jewelry|kaufen|lotto|parts|promo|qpon|racing|rsvp|sale|salon|save|seat|shop|shopping|silk|spa|store|supplies|supply|taxi|tickets|tires|tools|toys|watches|college|courses|degree|ged|phd|prof|scholarships|school|schule|science|shiksha|study|translations|university|beer|cafe|catering|cityeats|cooking|diet|food|organic|pet|pizza|pub|rest|restaurant|soy|wine|blue|circle|dot|duck|fast|final|finish|fire|fun|fyi|goo|got|green|here|horse|how|ieee|jot|joy|like|limited|makeup|meme|mint|moi|moto|now|nowruz|ong|onl|ooo|page|pars|pid|pink|play|plus|read|red|reise|reisen|rocks|safe|safety|seek|select|sky|smile|spot|sucks|talk|top|trust|uno|vin|vodka|web|wed|win|winners|wow|wtf|xyz|yamaxun|you|zero|abudhabi|africa|alsace|amsterdam|aquitaine|arab|barcelona|bayern|berlin|boston|broadway|brussels|budapest|bzh|capetown|cologne|corsica|country|cymru|desi|doha|dubai|durban|earth|eus|gent|hamburg|helsinki|international|irish|istanbul|joburg|kiwi|koeln|kyoto|london|madrid|market|melbourne|miami|monster|nagoya|nrw|nyc|okinawa|osaka|paris|persiangulf|place|quebec|rio|roma|ryukyu|saarland|scot|shia|show|stockholm|stream|swiss|sydney|taipei|tatar|thai|tirol|tokyo|vegas|vlaanderen|wales|wanggou|wien|world|yokohama|zuerich|clinic|dental|dentist|docs|doctor|health|healthcare|hiv|hospital|med|medical|pharmacy|physio|rehab|surgery|auto|autos|bio|boats|cars|cleaning|consulting|design|energy|industries|motorcycles|adult|baby|beauty|beknown|best|bet|bingo|bom|cards|community|contact|dad|diy|dog|express|family|fan|fans|fashion|garden|gay|giving|group|guide|hair|halal|hiphop|imamat|jetzt|kid|kids|kim|kinder|latino|lgbt|lifestyle|style|living|love|luxe|luxury|moda|mom|navy|pets|poker|porn|republican|vip|vision|vote|voting|voto|wedding|feedback|film|media|mov|movie|movistar|music|pictures|radio|show|song|theater|theatre|tunes|video|accountant|accountants|analytics|bank|banque|broker|cash|cashbackbonus|cfd|cpa|credit|creditcard|finance|financial|financialaid|fund|gold|gratis|investments|ira|loan|loans|markets|money|mortgage|mutual|mutualfunds|pay|reit|prime|security|yun|abogado|airforce|archi|architect|army|attorney|author|dds|engineer|engineering|esq|law|lawyer|legal|retirement|vet|apartments|casa|case|forsale|haus|homes|lease|property|realestate|realtor|realty|rent|room|baseball|basketball|coach|cricket|fish|fishing|fit|fitness|football|game|games|golf|hockey|juegos|mls|rodeo|rugby|run|ski|soccer|sport|sports|spreadbetting|surf|team|tennis|yoga|app|box|chat|click|cloud|comsec|bot|data|date|dev|digital|download|drive|call|fail|help|host|hosting|map|mobile|network|online|original-tor|phone|report|search|secure|site|software|space|storage|tube|webcam|webs|website|weibo|zip|active|casino|christmas|hangout|hoteis|hotel|hoteles|hotels|meet|party|tech|tour|tours|bible|church|catholic|faith|indians|islam|ismaili|memorial|moscow|actor|bar|black|build|care|city|direct|immo|ink|life|tax|town|work|one|insure|saxo|sex|shell|weber|yandex|rip|car|ist|lat|lol|bond|om|skin|day|quest|wang|sbs|dhl|ing';\r\nconst domainRu: string = 'рф|дети|онлайн|сайт|укр|католик|ком|москва|орг|рус|бел|бг';\r\nlet punyDomainRu = '';\r\n\r\n/**\r\n * Получить строку национализированных доменов верхнего уровня в ASCII формате\r\n */\r\nconst getPunyDomainRU = (): string => {\r\n\tif (punyDomainRu) return punyDomainRu;\r\n\r\n\tpunyDomainRu = domainRu.split('|').map(domain => toPuny(domain)).join('|');\r\n\r\n\treturn punyDomainRu;\r\n};\r\n\r\n/**\r\n * Получить строку с регулярным выражение для домена\r\n */\r\nexport const getDomainRegexp = (): string => {\r\n\tconst regexp_en = `(?:${domainEn})`;\r\n\tconst regexp_ru = `(?:${getPunyDomainRU()})`;\r\n\r\n\treturn `(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\\\.)+(?:${regexp_en}|${regexp_ru})\\\\/?`;\r\n};\r\n\r\n/**\r\n * Проверка валидности email\r\n * @param email\r\n * @param rus_allow - если true, русскоязычные адреса тоже будут валидны\r\n */\r\nexport const isEmail = (email: string, rus_allow: boolean = false): boolean => {\r\n\temail += '';\r\n\r\n\temail = email.toLowerCase();\r\n\r\n\tlet emailTest = '^[-0-9a-z_\\\\.\\\\+]+@([-0-9a-z_^\\\\.]+\\\\.)+[a-z]{2,20}$';\r\n\r\n\tif (rus_allow) {\r\n\t\temailTest = '^[-0-9a-zа-яё_\\\\.\\\\+]+@([-0-9a-zа-яё_^\\\\.]+\\\\.)+[a-zа-яё]{2,20}$';\r\n\t}\r\n\r\n\tconst regex = new RegExp(emailTest);\r\n\treturn regex.test(email);\r\n};\r\n\r\n/**\r\n * Проверка валидности URL-адреса\r\n */\r\nexport const validUrl = (url: string): boolean => {\r\n\turl = url.trim();\r\n\tif (url.includes(' ')) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst domain = url.replace(/^(https?:\\/\\/)?(www\\.)?([^/]+).*/, '$3');\r\n\r\n\treturn isDomain(domain);\r\n};\r\n\r\n/**\r\n * Проверка валидности домена\r\n */\r\nexport const isDomain = (domain: string): boolean => {\r\n\tdomain = toPuny(domain);\r\n\r\n\tconst regexp = new RegExp(`^${getDomainRegexp()}$`);\r\n\r\n\treturn regexp.test(domain);\r\n};\r\n\r\n/**\r\n * Проверка валидности ip\r\n */\r\nexport const isIp = (ip: string): boolean => {\r\n\tconst regexp = new RegExp(\r\n\t\t'((^\\\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\\\s*$)|(^\\\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:)(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:)))(%.+)?\\\\s*$))');\r\n\r\n\treturn regexp.test(ip);\r\n};\r\n"],"names":["domainEn","domainRu","punyDomainRu","getPunyDomainRU","domain","toPuny","getDomainRegexp","regexp_en","regexp_ru","isEmail","email","rus_allow","emailTest","validUrl","url","isDomain","isIp","ip"],"mappings":";AAEA,MAAMA,IAAmB,k6JACnBC,IAAmB;AACzB,IAAIC,IAAe;AAKnB,MAAMC,IAAkB,MACnBD,MAEWA,IAAAD,EAAS,MAAM,GAAG,EAAE,IAAI,CAAUG,MAAAC,EAAOD,CAAM,CAAC,EAAE,KAAK,GAAG,GAElEF,IAMKI,IAAkB,MAAc;AACtC,QAAAC,IAAY,MAAMP,CAAQ,KAC1BQ,IAAY,MAAML,EAAiB,CAAA;AAElC,SAAA,6CAA6CI,CAAS,IAAIC,CAAS;AAC3E,GAOaC,IAAU,CAACC,GAAeC,IAAqB,OAAmB;AACrE,EAAAD,KAAA,IAETA,IAAQA,EAAM;AAEd,MAAIE,IAAY;AAEhB,SAAID,MACSC,IAAA,qEAGC,IAAI,OAAOA,CAAS,EACrB,KAAKF,CAAK;AACxB,GAKaG,IAAW,CAACC,MAAyB;AAE7C,MADJA,IAAMA,EAAI,QACNA,EAAI,SAAS,GAAG;AACZ,WAAA;AAGR,QAAMV,IAASU,EAAI,QAAQ,oCAAoC,IAAI;AAEnE,SAAOC,EAASX,CAAM;AACvB,GAKaW,IAAW,CAACX,OACxBA,IAASC,EAAOD,CAAM,GAEP,IAAI,OAAO,IAAIE,EAAiB,CAAA,GAAG,EAEpC,KAAKF,CAAM,IAMbY,IAAO,CAACC,MACL,IAAI;AAAA,EAClB;AAAA,EAEa,KAAKA,CAAE;"}
1
+ {"version":3,"file":"check.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +1 @@
1
- {"version":3,"file":"css.amd.js","sources":["../../src/core/utils/css.ts"],"sourcesContent":["/**\r\n * Вставить css стили на страницу с автоматическим определением media\r\n * @param fileNames - список ссылок на css файлы\r\n * @param useSync - использовать синхронную загрузку css, только для css с того же домена, имеет смысл для замены top-level await\r\n */\r\nexport const insertToPage = (fileNames: Array<string>, useSync = false) => {\r\n\tconst cssFilesByOptions = new Map();\r\n\tcssFilesByOptions.set('::', []);\r\n\r\n\tfileNames.forEach(filename => {\r\n\t\tlet m = false;\r\n\t\tlet pc = false;\r\n\r\n\t\tif (filename.match(/\\.m\\./)) {\r\n\t\t\tm = true;\r\n\t\t}\r\n\t\tif (filename.match(/\\.pc\\./)) {\r\n\t\t\tpc = true;\r\n\t\t}\r\n\r\n\t\tconst key = `${m}:${pc}`;\r\n\t\tif (!cssFilesByOptions.has(key)) {\r\n\t\t\tcssFilesByOptions.set(`${m}:${pc}`, []);\r\n\t\t}\r\n\t\tcssFilesByOptions.get(`${m}:${pc}`).push(filename);\r\n\t});\r\n\r\n\tconst promises: Array<Promise<unknown>> = [];\r\n\r\n\tcssFilesByOptions.forEach((fileNames, options: string) => {\r\n\t\tif (!fileNames.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst [m, pc] = options.split(':').map(item => item === 'true');\r\n\r\n\t\tlet media = 'all';\r\n\t\tif (m) {\r\n\t\t\tmedia = '(max-width: 900px)';\r\n\t\t}\r\n\t\tif (pc) {\r\n\t\t\tmedia = '(min-width: 900px)';\r\n\t\t}\r\n\r\n\t\tconst promisesI = _insertToPage(fileNames, media, useSync);\r\n\t\tpromisesI.forEach(promise => promises.push(promise));\r\n\t});\r\n\r\n\treturn Promise.all(promises);\r\n};\r\n\r\nconst _insertToPage = (fileNames: Array<string>, media: string, useSync: boolean) => {\r\n\tconst promises: Array<Promise<unknown>> = [];\r\n\r\n\tfileNames.forEach(fileName => {\r\n\t\t// синхронная загрузка, чтобы функция не выполнилась раньше загрузки стилей\r\n\t\tif (useSync) {\r\n\t\t\tconst request = new XMLHttpRequest();\r\n\t\t\trequest.open('GET', fileName, false);\r\n\t\t\trequest.send();\r\n\t\t}\r\n\r\n\t\tconst id = 'topCSSLink-' + fileName.replace(/\\W/g, '-');\r\n\r\n\t\t// стиль уже загружен\r\n\t\tif (window.hasOwnProperty(id)) return;\r\n\r\n\t\tlet resolve: Function;\r\n\t\tlet reject: Function;\r\n\t\tconst promise = new Promise((_resolve, _reject) => {\r\n\t\t\tresolve = _resolve;\r\n\t\t\treject = _reject;\r\n\t\t});\r\n\t\tpromises.push(promise);\r\n\r\n\t\tconst elLink = document.createElement('link');\r\n\t\telLink.id = id;\r\n\t\telLink.rel = 'stylesheet';\r\n\t\telLink.media = media;\r\n\t\telLink.href = fileName;\r\n\t\telLink.onload = () => resolve();\r\n\t\telLink.onerror = () => reject();\r\n\r\n\t\tdocument.head.append(elLink);\r\n\t});\r\n\r\n\treturn promises;\r\n};"],"names":["insertToPage","fileNames","useSync","cssFilesByOptions","filename","m","pc","key","promises","fileNames2","media","promise","fileName","request","id","elLink","resolve","reject"],"mappings":"yFAKO,MAAAA,EAAA,CAAAC,EAAAC,EAAA,KAAA,CACN,MAAAC,EAAA,IAAA,mBAGAF,EAAA,QAAAG,GAAA,CACC,IAAAC,EAAA,GACAC,EAAA,GAEAF,EAAA,MAAA,OAAA,UAGAA,EAAA,MAAA,QAAA,UAIA,MAAAG,EAAA,GAAAF,CAAA,IAAAC,CAAA,aAECH,EAAA,IAAA,GAAAE,CAAA,IAAAC,CAAA,GAAA,CAAA,CAAA,EAEDH,EAAA,IAAA,GAAAE,CAAA,IAAAC,CAAA,EAAA,EAAA,KAAAF,CAAA,CAAiD,CAAA,EAGlD,MAAAI,EAAA,CAAA,2BAGC,GAAA,CAAAC,EAAA,OACC,kDAKD,IAAAC,EAAA,uEASA,QAAAC,GAAAH,EAAA,KAAAG,CAAA,CAAA,CAAmD,CAAA,EAGpD,QAAA,IAAAH,CAAA,eAIA,MAAAA,EAAA,CAAA,EAEA,OAAAP,EAAA,QAAAW,GAAA,OAGE,MAAAC,EAAA,IAAA,kCAEAA,EAAA,KAAA,EAGD,MAAAC,EAAA,cAAAF,EAAA,QAAA,MAAA,GAAA,gFASU,CAAA,EAEVJ,EAAA,KAAAG,CAAA,yCAGAI,EAAA,GAAAD,EACAC,EAAA,IAAA,aACAA,EAAA,MAAAL,EACAK,EAAA,KAAAH,EACAG,EAAA,OAAA,IAAAC,EAAA,EACAD,EAAA,QAAA,IAAAE,EAAA,yBAE2B,CAAA"}
1
+ {"version":3,"file":"css.amd.js","sources":["../../src/core/utils/css.ts"],"sourcesContent":["/**\n * Вставить css стили на страницу с автоматическим определением media\n * @param fileNames - список ссылок на css файлы\n * @param useSync - использовать синхронную загрузку css, только для css с того же домена, имеет смысл для замены top-level await\n */\nexport const insertToPage = (fileNames: Array<string>, useSync = false) => {\n\tconst cssFilesByOptions = new Map();\n\tcssFilesByOptions.set('::', []);\n\n\tfileNames.forEach(filename => {\n\t\tlet m = false;\n\t\tlet pc = false;\n\n\t\tif (filename.match(/\\.m\\./)) {\n\t\t\tm = true;\n\t\t}\n\t\tif (filename.match(/\\.pc\\./)) {\n\t\t\tpc = true;\n\t\t}\n\n\t\tconst key = `${m}:${pc}`;\n\t\tif (!cssFilesByOptions.has(key)) {\n\t\t\tcssFilesByOptions.set(`${m}:${pc}`, []);\n\t\t}\n\t\tcssFilesByOptions.get(`${m}:${pc}`).push(filename);\n\t});\n\n\tconst promises: Array<Promise<unknown>> = [];\n\n\tcssFilesByOptions.forEach((fileNames, options: string) => {\n\t\tif (!fileNames.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [m, pc] = options.split(':').map(item => item === 'true');\n\n\t\tlet media = 'all';\n\t\tif (m) {\n\t\t\tmedia = '(max-width: 900px)';\n\t\t}\n\t\tif (pc) {\n\t\t\tmedia = '(min-width: 900px)';\n\t\t}\n\n\t\tconst promisesI = _insertToPage(fileNames, media, useSync);\n\t\tpromisesI.forEach(promise => promises.push(promise));\n\t});\n\n\treturn Promise.all(promises);\n};\n\nconst _insertToPage = (fileNames: Array<string>, media: string, useSync: boolean) => {\n\tconst promises: Array<Promise<unknown>> = [];\n\n\tfileNames.forEach(fileName => {\n\t\t// синхронная загрузка, чтобы функция не выполнилась раньше загрузки стилей\n\t\tif (useSync) {\n\t\t\tconst request = new XMLHttpRequest();\n\t\t\trequest.open('GET', fileName, false);\n\t\t\trequest.send();\n\t\t}\n\n\t\tconst id = 'topCSSLink-' + fileName.replace(/\\W/g, '-');\n\n\t\t// стиль уже загружен\n\t\tif (window.hasOwnProperty(id)) return;\n\n\t\tlet resolve: Function;\n\t\tlet reject: Function;\n\t\tconst promise = new Promise((_resolve, _reject) => {\n\t\t\tresolve = _resolve;\n\t\t\treject = _reject;\n\t\t});\n\t\tpromises.push(promise);\n\n\t\tconst elLink = document.createElement('link');\n\t\telLink.id = id;\n\t\telLink.rel = 'stylesheet';\n\t\telLink.media = media;\n\t\telLink.href = fileName;\n\t\telLink.onload = () => resolve();\n\t\telLink.onerror = () => reject();\n\n\t\tdocument.head.append(elLink);\n\t});\n\n\treturn promises;\n};"],"names":["insertToPage","fileNames","useSync","cssFilesByOptions","filename","m","pc","key","promises","fileNames2","media","promise","fileName","request","id","elLink","resolve","reject"],"mappings":"yFAKO,MAAAA,EAAA,CAAAC,EAAAC,EAAA,KAAA,CACN,MAAAC,EAAA,IAAA,mBAGAF,EAAA,QAAAG,GAAA,CACC,IAAAC,EAAA,GACAC,EAAA,GAEAF,EAAA,MAAA,OAAA,UAGAA,EAAA,MAAA,QAAA,UAIA,MAAAG,EAAA,GAAAF,CAAA,IAAAC,CAAA,aAECH,EAAA,IAAA,GAAAE,CAAA,IAAAC,CAAA,GAAA,CAAA,CAAA,EAEDH,EAAA,IAAA,GAAAE,CAAA,IAAAC,CAAA,EAAA,EAAA,KAAAF,CAAA,CAAiD,CAAA,EAGlD,MAAAI,EAAA,CAAA,2BAGC,GAAA,CAAAC,EAAA,OACC,kDAKD,IAAAC,EAAA,uEASA,QAAAC,GAAAH,EAAA,KAAAG,CAAA,CAAA,CAAmD,CAAA,EAGpD,QAAA,IAAAH,CAAA,eAIA,MAAAA,EAAA,CAAA,EAEA,OAAAP,EAAA,QAAAW,GAAA,OAGE,MAAAC,EAAA,IAAA,kCAEAA,EAAA,KAAA,EAGD,MAAAC,EAAA,cAAAF,EAAA,QAAA,MAAA,GAAA,gFASU,CAAA,EAEVJ,EAAA,KAAAG,CAAA,yCAGAI,EAAA,GAAAD,EACAC,EAAA,IAAA,aACAA,EAAA,MAAAL,EACAK,EAAA,KAAAH,EACAG,EAAA,OAAA,IAAAC,EAAA,EACAD,EAAA,QAAA,IAAAE,EAAA,yBAE2B,CAAA"}
package/utils/css.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","sources":["../../src/core/utils/css.ts"],"sourcesContent":["/**\r\n * Вставить css стили на страницу с автоматическим определением media\r\n * @param fileNames - список ссылок на css файлы\r\n * @param useSync - использовать синхронную загрузку css, только для css с того же домена, имеет смысл для замены top-level await\r\n */\r\nexport const insertToPage = (fileNames: Array<string>, useSync = false) => {\r\n\tconst cssFilesByOptions = new Map();\r\n\tcssFilesByOptions.set('::', []);\r\n\r\n\tfileNames.forEach(filename => {\r\n\t\tlet m = false;\r\n\t\tlet pc = false;\r\n\r\n\t\tif (filename.match(/\\.m\\./)) {\r\n\t\t\tm = true;\r\n\t\t}\r\n\t\tif (filename.match(/\\.pc\\./)) {\r\n\t\t\tpc = true;\r\n\t\t}\r\n\r\n\t\tconst key = `${m}:${pc}`;\r\n\t\tif (!cssFilesByOptions.has(key)) {\r\n\t\t\tcssFilesByOptions.set(`${m}:${pc}`, []);\r\n\t\t}\r\n\t\tcssFilesByOptions.get(`${m}:${pc}`).push(filename);\r\n\t});\r\n\r\n\tconst promises: Array<Promise<unknown>> = [];\r\n\r\n\tcssFilesByOptions.forEach((fileNames, options: string) => {\r\n\t\tif (!fileNames.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst [m, pc] = options.split(':').map(item => item === 'true');\r\n\r\n\t\tlet media = 'all';\r\n\t\tif (m) {\r\n\t\t\tmedia = '(max-width: 900px)';\r\n\t\t}\r\n\t\tif (pc) {\r\n\t\t\tmedia = '(min-width: 900px)';\r\n\t\t}\r\n\r\n\t\tconst promisesI = _insertToPage(fileNames, media, useSync);\r\n\t\tpromisesI.forEach(promise => promises.push(promise));\r\n\t});\r\n\r\n\treturn Promise.all(promises);\r\n};\r\n\r\nconst _insertToPage = (fileNames: Array<string>, media: string, useSync: boolean) => {\r\n\tconst promises: Array<Promise<unknown>> = [];\r\n\r\n\tfileNames.forEach(fileName => {\r\n\t\t// синхронная загрузка, чтобы функция не выполнилась раньше загрузки стилей\r\n\t\tif (useSync) {\r\n\t\t\tconst request = new XMLHttpRequest();\r\n\t\t\trequest.open('GET', fileName, false);\r\n\t\t\trequest.send();\r\n\t\t}\r\n\r\n\t\tconst id = 'topCSSLink-' + fileName.replace(/\\W/g, '-');\r\n\r\n\t\t// стиль уже загружен\r\n\t\tif (window.hasOwnProperty(id)) return;\r\n\r\n\t\tlet resolve: Function;\r\n\t\tlet reject: Function;\r\n\t\tconst promise = new Promise((_resolve, _reject) => {\r\n\t\t\tresolve = _resolve;\r\n\t\t\treject = _reject;\r\n\t\t});\r\n\t\tpromises.push(promise);\r\n\r\n\t\tconst elLink = document.createElement('link');\r\n\t\telLink.id = id;\r\n\t\telLink.rel = 'stylesheet';\r\n\t\telLink.media = media;\r\n\t\telLink.href = fileName;\r\n\t\telLink.onload = () => resolve();\r\n\t\telLink.onerror = () => reject();\r\n\r\n\t\tdocument.head.append(elLink);\r\n\t});\r\n\r\n\treturn promises;\r\n};"],"names":["insertToPage","fileNames","useSync","cssFilesByOptions","filename","m","pc","key","promises","options","item","media","_insertToPage","promise","fileName","request","id","resolve","reject","_resolve","_reject","elLink"],"mappings":"AAKO,MAAMA,IAAe,CAACC,GAA0BC,IAAU,OAAU;AACpE,QAAAC,wBAAwB;AACZ,EAAAA,EAAA,IAAI,MAAM,CAAA,CAAE,GAE9BF,EAAU,QAAQ,CAAYG,MAAA;AAC7B,QAAIC,IAAI,IACJC,IAAK;AAEL,IAAAF,EAAS,MAAM,OAAO,MACrBC,IAAA,KAEDD,EAAS,MAAM,QAAQ,MACrBE,IAAA;AAGN,UAAMC,IAAM,GAAGF,CAAC,IAAIC,CAAE;AACtB,IAAKH,EAAkB,IAAII,CAAG,KAC7BJ,EAAkB,IAAI,GAAGE,CAAC,IAAIC,CAAE,IAAI,CAAA,CAAE,GAErBH,EAAA,IAAI,GAAGE,CAAC,IAAIC,CAAE,EAAE,EAAE,KAAKF,CAAQ;AAAA,EAAA,CACjD;AAED,QAAMI,IAAoC,CAAA;AAExB,SAAAL,EAAA,QAAQ,CAACF,GAAWQ,MAAoB;AACrD,QAAA,CAACR,EAAU;AACd;AAGK,UAAA,CAACI,GAAGC,CAAE,IAAIG,EAAQ,MAAM,GAAG,EAAE,IAAI,CAAQC,MAAAA,MAAS,MAAM;AAE9D,QAAIC,IAAQ;AACZ,IAAIN,MACKM,IAAA,uBAELL,MACKK,IAAA,uBAGSC,EAAcX,GAAWU,GAAOT,CAAO,EAC/C,QAAQ,CAAAW,MAAWL,EAAS,KAAKK,CAAO,CAAC;AAAA,EAAA,CACnD,GAEM,QAAQ,IAAIL,CAAQ;AAC5B,GAEMI,IAAgB,CAACX,GAA0BU,GAAeT,MAAqB;AACpF,QAAMM,IAAoC,CAAA;AAE1C,SAAAP,EAAU,QAAQ,CAAYa,MAAA;AAE7B,QAAIZ,GAAS;AACN,YAAAa,IAAU,IAAI;AACZ,MAAAA,EAAA,KAAK,OAAOD,GAAU,EAAK,GACnCC,EAAQ,KAAK;AAAA,IACd;AAEA,UAAMC,IAAK,gBAAgBF,EAAS,QAAQ,OAAO,GAAG;AAGlD,QAAA,OAAO,eAAeE,CAAE,EAAG;AAE3B,QAAAC,GACAC;AACJ,UAAML,IAAU,IAAI,QAAQ,CAACM,GAAUC,MAAY;AACxC,MAAAH,IAAAE,GACDD,IAAAE;AAAA,IAAA,CACT;AACD,IAAAZ,EAAS,KAAKK,CAAO;AAEf,UAAAQ,IAAS,SAAS,cAAc,MAAM;AAC5C,IAAAA,EAAO,KAAKL,GACZK,EAAO,MAAM,cACbA,EAAO,QAAQV,GACfU,EAAO,OAAOP,GACPO,EAAA,SAAS,MAAMJ,KACfI,EAAA,UAAU,MAAMH,KAEd,SAAA,KAAK,OAAOG,CAAM;AAAA,EAAA,CAC3B,GAEMb;AACR;"}
1
+ {"version":3,"file":"css.js","sources":["../../src/core/utils/css.ts"],"sourcesContent":["/**\n * Вставить css стили на страницу с автоматическим определением media\n * @param fileNames - список ссылок на css файлы\n * @param useSync - использовать синхронную загрузку css, только для css с того же домена, имеет смысл для замены top-level await\n */\nexport const insertToPage = (fileNames: Array<string>, useSync = false) => {\n\tconst cssFilesByOptions = new Map();\n\tcssFilesByOptions.set('::', []);\n\n\tfileNames.forEach(filename => {\n\t\tlet m = false;\n\t\tlet pc = false;\n\n\t\tif (filename.match(/\\.m\\./)) {\n\t\t\tm = true;\n\t\t}\n\t\tif (filename.match(/\\.pc\\./)) {\n\t\t\tpc = true;\n\t\t}\n\n\t\tconst key = `${m}:${pc}`;\n\t\tif (!cssFilesByOptions.has(key)) {\n\t\t\tcssFilesByOptions.set(`${m}:${pc}`, []);\n\t\t}\n\t\tcssFilesByOptions.get(`${m}:${pc}`).push(filename);\n\t});\n\n\tconst promises: Array<Promise<unknown>> = [];\n\n\tcssFilesByOptions.forEach((fileNames, options: string) => {\n\t\tif (!fileNames.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [m, pc] = options.split(':').map(item => item === 'true');\n\n\t\tlet media = 'all';\n\t\tif (m) {\n\t\t\tmedia = '(max-width: 900px)';\n\t\t}\n\t\tif (pc) {\n\t\t\tmedia = '(min-width: 900px)';\n\t\t}\n\n\t\tconst promisesI = _insertToPage(fileNames, media, useSync);\n\t\tpromisesI.forEach(promise => promises.push(promise));\n\t});\n\n\treturn Promise.all(promises);\n};\n\nconst _insertToPage = (fileNames: Array<string>, media: string, useSync: boolean) => {\n\tconst promises: Array<Promise<unknown>> = [];\n\n\tfileNames.forEach(fileName => {\n\t\t// синхронная загрузка, чтобы функция не выполнилась раньше загрузки стилей\n\t\tif (useSync) {\n\t\t\tconst request = new XMLHttpRequest();\n\t\t\trequest.open('GET', fileName, false);\n\t\t\trequest.send();\n\t\t}\n\n\t\tconst id = 'topCSSLink-' + fileName.replace(/\\W/g, '-');\n\n\t\t// стиль уже загружен\n\t\tif (window.hasOwnProperty(id)) return;\n\n\t\tlet resolve: Function;\n\t\tlet reject: Function;\n\t\tconst promise = new Promise((_resolve, _reject) => {\n\t\t\tresolve = _resolve;\n\t\t\treject = _reject;\n\t\t});\n\t\tpromises.push(promise);\n\n\t\tconst elLink = document.createElement('link');\n\t\telLink.id = id;\n\t\telLink.rel = 'stylesheet';\n\t\telLink.media = media;\n\t\telLink.href = fileName;\n\t\telLink.onload = () => resolve();\n\t\telLink.onerror = () => reject();\n\n\t\tdocument.head.append(elLink);\n\t});\n\n\treturn promises;\n};"],"names":["insertToPage","fileNames","useSync","cssFilesByOptions","filename","m","pc","key","promises","options","item","media","_insertToPage","promise","fileName","request","id","resolve","reject","_resolve","_reject","elLink"],"mappings":"AAKO,MAAMA,IAAe,CAACC,GAA0BC,IAAU,OAAU;AACpE,QAAAC,wBAAwB;AACZ,EAAAA,EAAA,IAAI,MAAM,CAAA,CAAE,GAE9BF,EAAU,QAAQ,CAAYG,MAAA;AAC7B,QAAIC,IAAI,IACJC,IAAK;AAEL,IAAAF,EAAS,MAAM,OAAO,MACrBC,IAAA,KAEDD,EAAS,MAAM,QAAQ,MACrBE,IAAA;AAGN,UAAMC,IAAM,GAAGF,CAAC,IAAIC,CAAE;AACtB,IAAKH,EAAkB,IAAII,CAAG,KAC7BJ,EAAkB,IAAI,GAAGE,CAAC,IAAIC,CAAE,IAAI,CAAA,CAAE,GAErBH,EAAA,IAAI,GAAGE,CAAC,IAAIC,CAAE,EAAE,EAAE,KAAKF,CAAQ;AAAA,EAAA,CACjD;AAED,QAAMI,IAAoC,CAAA;AAExB,SAAAL,EAAA,QAAQ,CAACF,GAAWQ,MAAoB;AACrD,QAAA,CAACR,EAAU;AACd;AAGK,UAAA,CAACI,GAAGC,CAAE,IAAIG,EAAQ,MAAM,GAAG,EAAE,IAAI,CAAQC,MAAAA,MAAS,MAAM;AAE9D,QAAIC,IAAQ;AACZ,IAAIN,MACKM,IAAA,uBAELL,MACKK,IAAA,uBAGSC,EAAcX,GAAWU,GAAOT,CAAO,EAC/C,QAAQ,CAAAW,MAAWL,EAAS,KAAKK,CAAO,CAAC;AAAA,EAAA,CACnD,GAEM,QAAQ,IAAIL,CAAQ;AAC5B,GAEMI,IAAgB,CAACX,GAA0BU,GAAeT,MAAqB;AACpF,QAAMM,IAAoC,CAAA;AAE1C,SAAAP,EAAU,QAAQ,CAAYa,MAAA;AAE7B,QAAIZ,GAAS;AACN,YAAAa,IAAU,IAAI;AACZ,MAAAA,EAAA,KAAK,OAAOD,GAAU,EAAK,GACnCC,EAAQ,KAAK;AAAA,IACd;AAEA,UAAMC,IAAK,gBAAgBF,EAAS,QAAQ,OAAO,GAAG;AAGlD,QAAA,OAAO,eAAeE,CAAE,EAAG;AAE3B,QAAAC,GACAC;AACJ,UAAML,IAAU,IAAI,QAAQ,CAACM,GAAUC,MAAY;AACxC,MAAAH,IAAAE,GACDD,IAAAE;AAAA,IAAA,CACT;AACD,IAAAZ,EAAS,KAAKK,CAAO;AAEf,UAAAQ,IAAS,SAAS,cAAc,MAAM;AAC5C,IAAAA,EAAO,KAAKL,GACZK,EAAO,MAAM,cACbA,EAAO,QAAQV,GACfU,EAAO,OAAOP,GACPO,EAAA,SAAS,MAAMJ,KACfI,EAAA,UAAU,MAAMH,KAEd,SAAA,KAAK,OAAOG,CAAM;AAAA,EAAA,CAC3B,GAEMb;AACR;"}
package/utils/date.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-B2NcBl7S.amd"],function(n,e,t){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateToString=t.dateToString,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.genDateMoscow=t.genDateMoscow,e.getDayOfWeek=t.getDayOfWeek,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-Dixfp052.amd"],function(n,e,t){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateToString=t.dateToString,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.genDateMoscow=t.genDateMoscow,e.getDayOfWeek=t.getDayOfWeek,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=date.amd.js.map
package/utils/date.js CHANGED
@@ -1,11 +1,11 @@
1
- import { d as t, n as s, q as o, o as n, p as r, m as g, s as d } from "../.chunks/forms-S36M7cBH.es.js";
1
+ import { d as t, X as s, a0 as o, Z as r, $ as g, W as n, Y as d } from "../.chunks/forms-o7UeMJFf.es.js";
2
2
  export {
3
3
  t as dateFormat,
4
4
  s as dateToString,
5
5
  o as dateUnformat,
6
- n as genDate,
7
- r as genDateMoscow,
8
- g as getDayOfWeek,
6
+ r as genDate,
7
+ g as genDateMoscow,
8
+ n as getDayOfWeek,
9
9
  d as stringToDate
10
10
  };
11
11
  //# sourceMappingURL=date.js.map
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-B2NcBl7S.amd"],function(a,e,i){"use strict";if(typeof l>"u")var l=window.Vue;e.get$scroll=i.get$scroll,e.getCommandKeyLabel=i.getCommandKeyLabel,e.getElsScroll=i.getElsScroll,e.getOSAsync=i.getOSAsync,e.getScrollTop=i.getScrollTop,e.isApp=i.isApp,e.isMacOS=i.isMacOS,e.isMobile=i.isMobile,e.isRetina=i.isRetina,e.isSafari=i.isSafari,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-Dixfp052.amd"],function(a,e,i){"use strict";if(typeof l>"u")var l=window.Vue;e.get$scroll=i.get$scroll,e.getCommandKeyLabel=i.getCommandKeyLabel,e.getElsScroll=i.getElsScroll,e.getOS=i.getOS,e.getOSAsync=i.getOSAsync,e.getScrollTop=i.getScrollTop,e.isApp=i.isApp,e.isMacOS=i.isMacOS,e.isMobile=i.isMobile,e.isRetina=i.isRetina,e.isSafari=i.isSafari,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=device.amd.js.map
package/utils/device.js CHANGED
@@ -1,14 +1,15 @@
1
- import { j as e, g as l, k as i, l as o, h as t, e as c, f as g, c as r, b as S, i as p } from "../.chunks/forms-S36M7cBH.es.js";
1
+ import { j as e, g as l, k as i, l as o, m as t, h as g, e as c, f as r, c as S, b as m, i as p } from "../.chunks/forms-o7UeMJFf.es.js";
2
2
  export {
3
3
  e as get$scroll,
4
4
  l as getCommandKeyLabel,
5
5
  i as getElsScroll,
6
- o as getOSAsync,
7
- t as getScrollTop,
6
+ o as getOS,
7
+ t as getOSAsync,
8
+ g as getScrollTop,
8
9
  c as isApp,
9
- g as isMacOS,
10
- r as isMobile,
11
- S as isRetina,
10
+ r as isMacOS,
11
+ S as isMobile,
12
+ m as isRetina,
12
13
  p as isSafari
13
14
  };
14
15
  //# sourceMappingURL=device.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom.amd.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\r\n * Функции для работы с Document Object Model (DOM)\r\n */\r\n\r\n/**\r\n * Создать элемент\r\n * @param tagName\r\n * @param attrs - атрибуты\r\n * @param elsChildrens\r\n * @returns - созданный элемент\r\n */\r\nfunction genEl(tagName: string, attrs: any, ...elsChildrens: Element[] | string[]): Element {\r\n\tconst el: any = document.createElement(tagName);\r\n\r\n\tfor (const name in attrs) {\r\n\t\tif (name.indexOf('on') === 0) {\r\n\t\t\t// events\r\n\t\t\tel[name] = attrs[name];\r\n\t\t} else {\r\n\t\t\tel.setAttribute(name, attrs[name]);\r\n\t\t}\r\n\t}\r\n\r\n\telsChildrens.forEach((elChildren: Element | string) => {\r\n\t\tif (typeof (elChildren) === 'string') {\r\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\r\n\t\t} else {\r\n\t\t\tel.append(elChildren);\r\n\t\t}\r\n\t});\r\n\r\n\treturn el;\r\n}\r\n\r\n/**\r\n * Проверить видимость элемента\r\n * @param el\r\n * @returns - вернет true, если элемент считается видимым\r\n */\r\nfunction isVisible(el?: Element): boolean {\r\n\tif (!el) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\r\n}\r\n\r\n/**\r\n * Получить координаты элемента относительно документа\r\n * @param el\r\n * @returns - координаты элемента относительно документа\r\n */\r\nfunction offset(el: Element): { top: number, left: number } {\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\r\n\treturn {\r\n\t\ttop: boundingClientRect.top + window.scrollY,\r\n\t\tleft: boundingClientRect.left + window.scrollX,\r\n\t};\r\n}\r\n\r\n/**\r\n * Получить значение css свойства элемента\r\n * @param el\r\n * @param property - имя свойства\r\n * @return - значение css стиля\r\n */\r\nfunction css(el: Element, property: string): string {\r\n\treturn window.getComputedStyle(el).getPropertyValue(property);\r\n}\r\n\r\n/**\r\n * Обернуть элемент и вернуть только что созданный элемент\r\n * @param el - элемент, который требуется обернуть\r\n * @param tagName - имя тега элемента, в который треубется обернуть элемент\r\n */\r\nfunction wrap(el: Element, tagName: string): Element {\r\n\tconst elWrapper = document.createElement(tagName);\r\n\tel.after(elWrapper);\r\n\r\n\telWrapper.append(el);\r\n\r\n\treturn elWrapper;\r\n}\r\n\r\n/**\r\n * Найти и вернуть первый видимый элемент\r\n * @param el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n */\r\nfunction querySelectorVisible(el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти и вернуть последний видимый элемент\r\n * @param el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n */\r\nfunction querySelectorVisibleLast(el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти видимые элементы\r\n * @param el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns - обратите внимание, возвращается не NodeList[], а Element[]\r\n */\r\nfunction querySelectorAllVisible(el: Element | Document, selectors: string): Element[] {\r\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\r\n}\r\n\r\n/**\r\n * Найти элементы и вернуть в виде массива\r\n * @param el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n */\r\nfunction querySelectorAllArray(el: Element | Document, selectors: string): Element[] {\r\n\tif (!el) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn [...el.querySelectorAll(selectors)];\r\n}\r\n\r\n/**\r\n * Хранилище данных элемента\r\n * @param el\r\n * @param contextName - контекст, обычно используется имя компонента\r\n * @param contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\r\n * @returns - вернет объект контекста или undefined, если данные контекста не найдены\r\n */\r\nfunction storage(\r\n\tel?: Element & { topData?: any },\r\n\tcontextName: string = 'common',\r\n\tcontextData: object | null | undefined = undefined,\r\n): any | undefined {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!el.topData) {\r\n\t\tel.topData = {};\r\n\t}\r\n\r\n\tif (contextData) {\r\n\t\tel.topData[contextName] = contextData;\r\n\t}\r\n\r\n\tif (contextData === null) {\r\n\t\tdelete el.topData[contextName];\r\n\t}\r\n\r\n\treturn el.topData[contextName];\r\n}\r\n\r\n/**\r\n * Очистить хранилище элемента\r\n */\r\nfunction storageClear(el?: Element & { topData?: any }): void {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdelete el.topData;\r\n}\r\n\r\nexport default {\r\n\tgenEl,\r\n\tisVisible,\r\n\toffset,\r\n\tcss,\r\n\twrap,\r\n\tquerySelectorVisible,\r\n\tquerySelectorVisibleLast,\r\n\tquerySelectorAllVisible,\r\n\tquerySelectorAllArray,\r\n\tstorage,\r\n\tstorageClear,\r\n};\r\n"],"names":["name","attrs","elsChildrens","elChildren","el","boundingClientRect","css","property","wrap","tagName","elWrapper","querySelectorVisible","selectors","querySelectorAllArray","isVisible","querySelectorVisibleLast","querySelectorAllVisible","storage","contextName","contextData","DOM","genEl","offset","storageClear"],"mappings":"gJAcC,UAAAA,KAAAC,uDASA,OAAAC,EAAA,QAAAC,GAAA,CACC,OAAAA,GAAA,6CAGCC,EAAA,OAAAD,CAAA,CACD,CAAA,iCAgBD,MAAAE,EAAAD,EAAA,sBAAA,4CAUA,MAAAC,EAAAD,EAAA,sBAAA,EAEA,MAAA,oDAEwC,EAUzC,SAAAE,EAAAF,EAAAG,EAAA,CACC,OAAA,OAAA,iBAAAH,CAAA,EAAA,iBAAAG,CAAA,EAQD,SAAAC,EAAAJ,EAAAK,EAAA,mCAEC,OAAAL,EAAA,MAAAM,CAAA,EAEAA,EAAA,OAAAN,CAAA,IAUD,SAAAO,EAAAP,EAAAQ,EAAA,CACC,OAAAC,EAAAT,EAAAQ,CAAA,EAAA,KAAAE,CAAA,GAAA,KAQD,SAAAC,EAAAX,EAAAQ,EAAA,CACC,OAAAC,EAAAT,EAAAQ,CAAA,EAAA,SAAAE,CAAA,GAAA,KASD,SAAAE,EAAAZ,EAAAQ,EAAA,CACC,OAAAC,EAAAT,EAAAQ,CAAA,EAAA,OAAAE,CAAA,EAQD,SAAAD,EAAAT,EAAAQ,EAAA,wCAeA,SAAAK,EAAAb,EAAAc,EAAA,SAAAC,EAAA,OAAA,MASC,OAAAf,EAAA,UACCA,EAAA,QAAA,CAAA,uBAODe,IAAA,MACC,OAAAf,EAAA,QAAAc,CAAA,EAGDd,EAAA,QAAAc,CAAA,mBAWA,OAAAd,EAAA,QAGD,MAAAgB,EAAA,CAAe,MAAAC,EACd,UAAAP,EACA,OAAAQ,EACA,IAAAhB,EACA,KAAAE,EACA,qBAAAG,EACA,yBAAAI,EACA,wBAAAC,EACA,sBAAAH,EACA,QAAAI,EACA,aAAAM"}
1
+ {"version":3,"file":"dom.amd.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\n * Функции для работы с Document Object Model (DOM)\n */\n\n/**\n * Создать элемент\n * @param tagName\n * @param attrs - атрибуты\n * @param elsChildrens\n * @returns - созданный элемент\n */\nfunction genEl(tagName: string, attrs: any, ...elsChildrens: Element[] | string[]): Element {\n\tconst el: any = document.createElement(tagName);\n\n\tfor (const name in attrs) {\n\t\tif (name.indexOf('on') === 0) {\n\t\t\t// events\n\t\t\tel[name] = attrs[name];\n\t\t} else {\n\t\t\tel.setAttribute(name, attrs[name]);\n\t\t}\n\t}\n\n\telsChildrens.forEach((elChildren: Element | string) => {\n\t\tif (typeof (elChildren) === 'string') {\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\n\t\t} else {\n\t\t\tel.append(elChildren);\n\t\t}\n\t});\n\n\treturn el;\n}\n\n/**\n * Проверить видимость элемента\n * @param el\n * @returns - вернет true, если элемент считается видимым\n */\nfunction isVisible(el?: Element): boolean {\n\tif (!el) {\n\t\treturn false;\n\t}\n\n\tconst boundingClientRect = el.getBoundingClientRect();\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\n}\n\n/**\n * Получить координаты элемента относительно документа\n * @param el\n * @returns - координаты элемента относительно документа\n */\nfunction offset(el: Element): { top: number, left: number } {\n\tconst boundingClientRect = el.getBoundingClientRect();\n\n\treturn {\n\t\ttop: boundingClientRect.top + window.scrollY,\n\t\tleft: boundingClientRect.left + window.scrollX,\n\t};\n}\n\n/**\n * Получить значение css свойства элемента\n * @param el\n * @param property - имя свойства\n * @return - значение css стиля\n */\nfunction css(el: Element, property: string): string {\n\treturn window.getComputedStyle(el).getPropertyValue(property);\n}\n\n/**\n * Обернуть элемент и вернуть только что созданный элемент\n * @param el - элемент, который требуется обернуть\n * @param tagName - имя тега элемента, в который треубется обернуть элемент\n */\nfunction wrap(el: Element, tagName: string): Element {\n\tconst elWrapper = document.createElement(tagName);\n\tel.after(elWrapper);\n\n\telWrapper.append(el);\n\n\treturn elWrapper;\n}\n\n/**\n * Найти и вернуть первый видимый элемент\n * @param el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n */\nfunction querySelectorVisible(el: Element, selectors: string): Element | null {\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\n}\n\n/**\n * Найти и вернуть последний видимый элемент\n * @param el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n */\nfunction querySelectorVisibleLast(el: Element, selectors: string): Element | null {\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\n}\n\n/**\n * Найти видимые элементы\n * @param el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns - обратите внимание, возвращается не NodeList[], а Element[]\n */\nfunction querySelectorAllVisible(el: Element | Document, selectors: string): Element[] {\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\n}\n\n/**\n * Найти элементы и вернуть в виде массива\n * @param el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n */\nfunction querySelectorAllArray(el: Element | Document, selectors: string): Element[] {\n\tif (!el) {\n\t\treturn [];\n\t}\n\n\treturn [...el.querySelectorAll(selectors)];\n}\n\n/**\n * Хранилище данных элемента\n * @param el\n * @param contextName - контекст, обычно используется имя компонента\n * @param contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\n * @returns - вернет объект контекста или undefined, если данные контекста не найдены\n */\nfunction storage(\n\tel?: Element & { topData?: any },\n\tcontextName: string = 'common',\n\tcontextData: object | null | undefined = undefined,\n): any | undefined {\n\tif (!el) {\n\t\treturn;\n\t}\n\n\tif (!el.topData) {\n\t\tel.topData = {};\n\t}\n\n\tif (contextData) {\n\t\tel.topData[contextName] = contextData;\n\t}\n\n\tif (contextData === null) {\n\t\tdelete el.topData[contextName];\n\t}\n\n\treturn el.topData[contextName];\n}\n\n/**\n * Очистить хранилище элемента\n */\nfunction storageClear(el?: Element & { topData?: any }): void {\n\tif (!el) {\n\t\treturn;\n\t}\n\n\tdelete el.topData;\n}\n\nexport default {\n\tgenEl,\n\tisVisible,\n\toffset,\n\tcss,\n\twrap,\n\tquerySelectorVisible,\n\tquerySelectorVisibleLast,\n\tquerySelectorAllVisible,\n\tquerySelectorAllArray,\n\tstorage,\n\tstorageClear,\n};\n"],"names":["name","attrs","elsChildrens","elChildren","el","boundingClientRect","css","property","wrap","tagName","elWrapper","querySelectorVisible","selectors","querySelectorAllArray","isVisible","querySelectorVisibleLast","querySelectorAllVisible","storage","contextName","contextData","DOM","genEl","offset","storageClear"],"mappings":"gJAcC,UAAAA,KAAAC,uDASA,OAAAC,EAAA,QAAAC,GAAA,CACC,OAAAA,GAAA,6CAGCC,EAAA,OAAAD,CAAA,CACD,CAAA,iCAgBD,MAAAE,EAAAD,EAAA,sBAAA,4CAUA,MAAAC,EAAAD,EAAA,sBAAA,EAEA,MAAA,oDAEwC,EAUzC,SAAAE,EAAAF,EAAAG,EAAA,CACC,OAAA,OAAA,iBAAAH,CAAA,EAAA,iBAAAG,CAAA,EAQD,SAAAC,EAAAJ,EAAAK,EAAA,mCAEC,OAAAL,EAAA,MAAAM,CAAA,EAEAA,EAAA,OAAAN,CAAA,IAUD,SAAAO,EAAAP,EAAAQ,EAAA,CACC,OAAAC,EAAAT,EAAAQ,CAAA,EAAA,KAAAE,CAAA,GAAA,KAQD,SAAAC,EAAAX,EAAAQ,EAAA,CACC,OAAAC,EAAAT,EAAAQ,CAAA,EAAA,SAAAE,CAAA,GAAA,KASD,SAAAE,EAAAZ,EAAAQ,EAAA,CACC,OAAAC,EAAAT,EAAAQ,CAAA,EAAA,OAAAE,CAAA,EAQD,SAAAD,EAAAT,EAAAQ,EAAA,wCAeA,SAAAK,EAAAb,EAAAc,EAAA,SAAAC,EAAA,OAAA,MASC,OAAAf,EAAA,UACCA,EAAA,QAAA,CAAA,uBAODe,IAAA,MACC,OAAAf,EAAA,QAAAc,CAAA,EAGDd,EAAA,QAAAc,CAAA,mBAWA,OAAAd,EAAA,QAGD,MAAAgB,EAAA,CAAe,MAAAC,EACd,UAAAP,EACA,OAAAQ,EACA,IAAAhB,EACA,KAAAE,EACA,qBAAAG,EACA,yBAAAI,EACA,wBAAAC,EACA,sBAAAH,EACA,QAAAI,EACA,aAAAM"}
package/utils/dom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\r\n * Функции для работы с Document Object Model (DOM)\r\n */\r\n\r\n/**\r\n * Создать элемент\r\n * @param tagName\r\n * @param attrs - атрибуты\r\n * @param elsChildrens\r\n * @returns - созданный элемент\r\n */\r\nfunction genEl(tagName: string, attrs: any, ...elsChildrens: Element[] | string[]): Element {\r\n\tconst el: any = document.createElement(tagName);\r\n\r\n\tfor (const name in attrs) {\r\n\t\tif (name.indexOf('on') === 0) {\r\n\t\t\t// events\r\n\t\t\tel[name] = attrs[name];\r\n\t\t} else {\r\n\t\t\tel.setAttribute(name, attrs[name]);\r\n\t\t}\r\n\t}\r\n\r\n\telsChildrens.forEach((elChildren: Element | string) => {\r\n\t\tif (typeof (elChildren) === 'string') {\r\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\r\n\t\t} else {\r\n\t\t\tel.append(elChildren);\r\n\t\t}\r\n\t});\r\n\r\n\treturn el;\r\n}\r\n\r\n/**\r\n * Проверить видимость элемента\r\n * @param el\r\n * @returns - вернет true, если элемент считается видимым\r\n */\r\nfunction isVisible(el?: Element): boolean {\r\n\tif (!el) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\r\n}\r\n\r\n/**\r\n * Получить координаты элемента относительно документа\r\n * @param el\r\n * @returns - координаты элемента относительно документа\r\n */\r\nfunction offset(el: Element): { top: number, left: number } {\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\r\n\treturn {\r\n\t\ttop: boundingClientRect.top + window.scrollY,\r\n\t\tleft: boundingClientRect.left + window.scrollX,\r\n\t};\r\n}\r\n\r\n/**\r\n * Получить значение css свойства элемента\r\n * @param el\r\n * @param property - имя свойства\r\n * @return - значение css стиля\r\n */\r\nfunction css(el: Element, property: string): string {\r\n\treturn window.getComputedStyle(el).getPropertyValue(property);\r\n}\r\n\r\n/**\r\n * Обернуть элемент и вернуть только что созданный элемент\r\n * @param el - элемент, который требуется обернуть\r\n * @param tagName - имя тега элемента, в который треубется обернуть элемент\r\n */\r\nfunction wrap(el: Element, tagName: string): Element {\r\n\tconst elWrapper = document.createElement(tagName);\r\n\tel.after(elWrapper);\r\n\r\n\telWrapper.append(el);\r\n\r\n\treturn elWrapper;\r\n}\r\n\r\n/**\r\n * Найти и вернуть первый видимый элемент\r\n * @param el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n */\r\nfunction querySelectorVisible(el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти и вернуть последний видимый элемент\r\n * @param el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n */\r\nfunction querySelectorVisibleLast(el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти видимые элементы\r\n * @param el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns - обратите внимание, возвращается не NodeList[], а Element[]\r\n */\r\nfunction querySelectorAllVisible(el: Element | Document, selectors: string): Element[] {\r\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\r\n}\r\n\r\n/**\r\n * Найти элементы и вернуть в виде массива\r\n * @param el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n */\r\nfunction querySelectorAllArray(el: Element | Document, selectors: string): Element[] {\r\n\tif (!el) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn [...el.querySelectorAll(selectors)];\r\n}\r\n\r\n/**\r\n * Хранилище данных элемента\r\n * @param el\r\n * @param contextName - контекст, обычно используется имя компонента\r\n * @param contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\r\n * @returns - вернет объект контекста или undefined, если данные контекста не найдены\r\n */\r\nfunction storage(\r\n\tel?: Element & { topData?: any },\r\n\tcontextName: string = 'common',\r\n\tcontextData: object | null | undefined = undefined,\r\n): any | undefined {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!el.topData) {\r\n\t\tel.topData = {};\r\n\t}\r\n\r\n\tif (contextData) {\r\n\t\tel.topData[contextName] = contextData;\r\n\t}\r\n\r\n\tif (contextData === null) {\r\n\t\tdelete el.topData[contextName];\r\n\t}\r\n\r\n\treturn el.topData[contextName];\r\n}\r\n\r\n/**\r\n * Очистить хранилище элемента\r\n */\r\nfunction storageClear(el?: Element & { topData?: any }): void {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdelete el.topData;\r\n}\r\n\r\nexport default {\r\n\tgenEl,\r\n\tisVisible,\r\n\toffset,\r\n\tcss,\r\n\twrap,\r\n\tquerySelectorVisible,\r\n\tquerySelectorVisibleLast,\r\n\tquerySelectorAllVisible,\r\n\tquerySelectorAllArray,\r\n\tstorage,\r\n\tstorageClear,\r\n};\r\n"],"names":["genEl","tagName","attrs","elsChildrens","el","name","elChildren","isVisible","boundingClientRect","offset","css","property","wrap","elWrapper","querySelectorVisible","selectors","querySelectorAllArray","querySelectorVisibleLast","querySelectorAllVisible","storage","contextName","contextData","storageClear","DOM"],"mappings":"AAWA,SAASA,EAAMC,GAAiBC,MAAeC,GAA6C;AACrF,QAAAC,IAAU,SAAS,cAAcH,CAAO;AAE9C,aAAWI,KAAQH;AAClB,IAAIG,EAAK,QAAQ,IAAI,MAAM,IAEvBD,EAAAC,CAAI,IAAIH,EAAMG,CAAI,IAErBD,EAAG,aAAaC,GAAMH,EAAMG,CAAI,CAAC;AAItB,SAAAF,EAAA,QAAQ,CAACG,MAAiC;AAClD,IAAA,OAAQA,KAAgB,WACxBF,EAAA,mBAAmB,aAAaE,CAAU,IAE7CF,EAAG,OAAOE,CAAU;AAAA,EACrB,CACA,GAEMF;AACR;AAOA,SAASG,EAAUH,GAAuB;AACzC,MAAI,CAACA;AACG,WAAA;AAGF,QAAAI,IAAqBJ,EAAG;AAC9B,SAAO,CAAC,EAAEI,EAAmB,SAASA,EAAmB;AAC1D;AAOA,SAASC,EAAOL,GAA4C;AACrD,QAAAI,IAAqBJ,EAAG;AAEvB,SAAA;AAAA,IACN,KAAKI,EAAmB,MAAM,OAAO;AAAA,IACrC,MAAMA,EAAmB,OAAO,OAAO;AAAA,EAAA;AAEzC;AAQA,SAASE,EAAIN,GAAaO,GAA0B;AACnD,SAAO,OAAO,iBAAiBP,CAAE,EAAE,iBAAiBO,CAAQ;AAC7D;AAOA,SAASC,EAAKR,GAAaH,GAA0B;AAC9C,QAAAY,IAAY,SAAS,cAAcZ,CAAO;AAChD,SAAAG,EAAG,MAAMS,CAAS,GAElBA,EAAU,OAAOT,CAAE,GAEZS;AACR;AAOA,SAASC,EAAqBV,GAAaW,GAAmC;AAC7E,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,KAAKR,CAAS,KAAK;AAChE;AAOA,SAASU,EAAyBb,GAAaW,GAAmC;AACjF,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,SAASR,CAAS,KAAK;AACpE;AAQA,SAASW,EAAwBd,GAAwBW,GAA8B;AACtF,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,OAAOR,CAAS;AAC7D;AAOA,SAASS,EAAsBZ,GAAwBW,GAA8B;AACpF,SAAKX,IAIE,CAAC,GAAGA,EAAG,iBAAiBW,CAAS,CAAC,IAHjC;AAIT;AASA,SAASI,EACRf,GACAgB,IAAsB,UACtBC,IAAyC,QACvB;AAClB,MAAKjB;AAID,WAACA,EAAG,YACPA,EAAG,UAAU,KAGViB,MACAjB,EAAA,QAAQgB,CAAW,IAAIC,IAGvBA,MAAgB,QACZ,OAAAjB,EAAG,QAAQgB,CAAW,GAGvBhB,EAAG,QAAQgB,CAAW;AAC9B;AAKA,SAASE,EAAalB,GAAwC;AAC7D,EAAKA,KAIL,OAAOA,EAAG;AACX;AAEA,MAAemB,IAAA;AAAA,EACd,OAAAvB;AAAA,EACA,WAAAO;AAAA,EACA,QAAAE;AAAA,EACA,KAAAC;AAAA,EACA,MAAAE;AAAA,EACA,sBAAAE;AAAA,EACA,0BAAAG;AAAA,EACA,yBAAAC;AAAA,EACA,uBAAAF;AAAA,EACA,SAAAG;AAAA,EACA,cAAAG;AACD;"}
1
+ {"version":3,"file":"dom.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\n * Функции для работы с Document Object Model (DOM)\n */\n\n/**\n * Создать элемент\n * @param tagName\n * @param attrs - атрибуты\n * @param elsChildrens\n * @returns - созданный элемент\n */\nfunction genEl(tagName: string, attrs: any, ...elsChildrens: Element[] | string[]): Element {\n\tconst el: any = document.createElement(tagName);\n\n\tfor (const name in attrs) {\n\t\tif (name.indexOf('on') === 0) {\n\t\t\t// events\n\t\t\tel[name] = attrs[name];\n\t\t} else {\n\t\t\tel.setAttribute(name, attrs[name]);\n\t\t}\n\t}\n\n\telsChildrens.forEach((elChildren: Element | string) => {\n\t\tif (typeof (elChildren) === 'string') {\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\n\t\t} else {\n\t\t\tel.append(elChildren);\n\t\t}\n\t});\n\n\treturn el;\n}\n\n/**\n * Проверить видимость элемента\n * @param el\n * @returns - вернет true, если элемент считается видимым\n */\nfunction isVisible(el?: Element): boolean {\n\tif (!el) {\n\t\treturn false;\n\t}\n\n\tconst boundingClientRect = el.getBoundingClientRect();\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\n}\n\n/**\n * Получить координаты элемента относительно документа\n * @param el\n * @returns - координаты элемента относительно документа\n */\nfunction offset(el: Element): { top: number, left: number } {\n\tconst boundingClientRect = el.getBoundingClientRect();\n\n\treturn {\n\t\ttop: boundingClientRect.top + window.scrollY,\n\t\tleft: boundingClientRect.left + window.scrollX,\n\t};\n}\n\n/**\n * Получить значение css свойства элемента\n * @param el\n * @param property - имя свойства\n * @return - значение css стиля\n */\nfunction css(el: Element, property: string): string {\n\treturn window.getComputedStyle(el).getPropertyValue(property);\n}\n\n/**\n * Обернуть элемент и вернуть только что созданный элемент\n * @param el - элемент, который требуется обернуть\n * @param tagName - имя тега элемента, в который треубется обернуть элемент\n */\nfunction wrap(el: Element, tagName: string): Element {\n\tconst elWrapper = document.createElement(tagName);\n\tel.after(elWrapper);\n\n\telWrapper.append(el);\n\n\treturn elWrapper;\n}\n\n/**\n * Найти и вернуть первый видимый элемент\n * @param el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n */\nfunction querySelectorVisible(el: Element, selectors: string): Element | null {\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\n}\n\n/**\n * Найти и вернуть последний видимый элемент\n * @param el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n */\nfunction querySelectorVisibleLast(el: Element, selectors: string): Element | null {\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\n}\n\n/**\n * Найти видимые элементы\n * @param el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns - обратите внимание, возвращается не NodeList[], а Element[]\n */\nfunction querySelectorAllVisible(el: Element | Document, selectors: string): Element[] {\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\n}\n\n/**\n * Найти элементы и вернуть в виде массива\n * @param el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n */\nfunction querySelectorAllArray(el: Element | Document, selectors: string): Element[] {\n\tif (!el) {\n\t\treturn [];\n\t}\n\n\treturn [...el.querySelectorAll(selectors)];\n}\n\n/**\n * Хранилище данных элемента\n * @param el\n * @param contextName - контекст, обычно используется имя компонента\n * @param contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\n * @returns - вернет объект контекста или undefined, если данные контекста не найдены\n */\nfunction storage(\n\tel?: Element & { topData?: any },\n\tcontextName: string = 'common',\n\tcontextData: object | null | undefined = undefined,\n): any | undefined {\n\tif (!el) {\n\t\treturn;\n\t}\n\n\tif (!el.topData) {\n\t\tel.topData = {};\n\t}\n\n\tif (contextData) {\n\t\tel.topData[contextName] = contextData;\n\t}\n\n\tif (contextData === null) {\n\t\tdelete el.topData[contextName];\n\t}\n\n\treturn el.topData[contextName];\n}\n\n/**\n * Очистить хранилище элемента\n */\nfunction storageClear(el?: Element & { topData?: any }): void {\n\tif (!el) {\n\t\treturn;\n\t}\n\n\tdelete el.topData;\n}\n\nexport default {\n\tgenEl,\n\tisVisible,\n\toffset,\n\tcss,\n\twrap,\n\tquerySelectorVisible,\n\tquerySelectorVisibleLast,\n\tquerySelectorAllVisible,\n\tquerySelectorAllArray,\n\tstorage,\n\tstorageClear,\n};\n"],"names":["genEl","tagName","attrs","elsChildrens","el","name","elChildren","isVisible","boundingClientRect","offset","css","property","wrap","elWrapper","querySelectorVisible","selectors","querySelectorAllArray","querySelectorVisibleLast","querySelectorAllVisible","storage","contextName","contextData","storageClear","DOM"],"mappings":"AAWA,SAASA,EAAMC,GAAiBC,MAAeC,GAA6C;AACrF,QAAAC,IAAU,SAAS,cAAcH,CAAO;AAE9C,aAAWI,KAAQH;AAClB,IAAIG,EAAK,QAAQ,IAAI,MAAM,IAEvBD,EAAAC,CAAI,IAAIH,EAAMG,CAAI,IAErBD,EAAG,aAAaC,GAAMH,EAAMG,CAAI,CAAC;AAItB,SAAAF,EAAA,QAAQ,CAACG,MAAiC;AAClD,IAAA,OAAQA,KAAgB,WACxBF,EAAA,mBAAmB,aAAaE,CAAU,IAE7CF,EAAG,OAAOE,CAAU;AAAA,EACrB,CACA,GAEMF;AACR;AAOA,SAASG,EAAUH,GAAuB;AACzC,MAAI,CAACA;AACG,WAAA;AAGF,QAAAI,IAAqBJ,EAAG;AAC9B,SAAO,CAAC,EAAEI,EAAmB,SAASA,EAAmB;AAC1D;AAOA,SAASC,EAAOL,GAA4C;AACrD,QAAAI,IAAqBJ,EAAG;AAEvB,SAAA;AAAA,IACN,KAAKI,EAAmB,MAAM,OAAO;AAAA,IACrC,MAAMA,EAAmB,OAAO,OAAO;AAAA,EAAA;AAEzC;AAQA,SAASE,EAAIN,GAAaO,GAA0B;AACnD,SAAO,OAAO,iBAAiBP,CAAE,EAAE,iBAAiBO,CAAQ;AAC7D;AAOA,SAASC,EAAKR,GAAaH,GAA0B;AAC9C,QAAAY,IAAY,SAAS,cAAcZ,CAAO;AAChD,SAAAG,EAAG,MAAMS,CAAS,GAElBA,EAAU,OAAOT,CAAE,GAEZS;AACR;AAOA,SAASC,EAAqBV,GAAaW,GAAmC;AAC7E,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,KAAKR,CAAS,KAAK;AAChE;AAOA,SAASU,EAAyBb,GAAaW,GAAmC;AACjF,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,SAASR,CAAS,KAAK;AACpE;AAQA,SAASW,EAAwBd,GAAwBW,GAA8B;AACtF,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,OAAOR,CAAS;AAC7D;AAOA,SAASS,EAAsBZ,GAAwBW,GAA8B;AACpF,SAAKX,IAIE,CAAC,GAAGA,EAAG,iBAAiBW,CAAS,CAAC,IAHjC;AAIT;AASA,SAASI,EACRf,GACAgB,IAAsB,UACtBC,IAAyC,QACvB;AAClB,MAAKjB;AAID,WAACA,EAAG,YACPA,EAAG,UAAU,KAGViB,MACAjB,EAAA,QAAQgB,CAAW,IAAIC,IAGvBA,MAAgB,QACZ,OAAAjB,EAAG,QAAQgB,CAAW,GAGvBhB,EAAG,QAAQgB,CAAW;AAC9B;AAKA,SAASE,EAAalB,GAAwC;AAC7D,EAAKA,KAIL,OAAOA,EAAG;AACX;AAEA,MAAemB,IAAA;AAAA,EACd,OAAAvB;AAAA,EACA,WAAAO;AAAA,EACA,QAAAE;AAAA,EACA,KAAAC;AAAA,EACA,MAAAE;AAAA,EACA,sBAAAE;AAAA,EACA,0BAAAG;AAAA,EACA,yBAAAC;AAAA,EACA,uBAAAF;AAAA,EACA,SAAAG;AAAA,EACA,cAAAG;AACD;"}
@@ -0,0 +1,2 @@
1
+ define(["require","exports","../.chunks/forms-Dixfp052.amd"],function(s,n,a){"use strict";if(typeof c>"u")var c=window.Vue;const i=(e,o="download")=>{const t=document.createElement("a");t.download=o,t.href=e,t.click()},r=(e,o)=>{let t=32;return o&&(t=120),e=e.replace(/^\w+:\/\/|^www\.|\/.*/g,""),e=a.punycode.toASCII(e),'<img src="https://favicon.yandex.net/favicon/'+e+"?size="+t+'" class="top-favicon empty" '+` onload=" var that = this; $.ajax({ type:'get', url:this.src, success:function(res){ if(res.length > 100) that.className='top-favicon'; }, error:function(){ } }); "`+' alt="">'};n.downloadImageFromString=i,n.genFaviconImgHtml=r,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
2
+ //# sourceMappingURL=image.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.amd.js","sources":["../../src/core/utils/image.ts"],"sourcesContent":["import punycode from 'punycode';\n\n/**\n * Скачать изображение, переданное в виде строки\n * @param imageStr - адресс картинки\n * @param imageName - имя файла при загрузке, по умолчанию download\n */\nexport const downloadImageFromString = (imageStr: string, imageName: string = 'download'): void => {\n\tconst a = document.createElement('a');\n\ta.download = imageName;\n\ta.href = imageStr;\n\ta.click();\n};\n\n/**\n * Сгенерировать html картинку с фавиконкой сайта\n * @param url - адрес сайта\n * @param isBig - если true, картинка будет 120px, иначе 32px\n */\nexport const genFaviconImgHtml = (url: string, isBig: boolean): string => {\n\tlet size = 32;\n\tif (isBig) size = 120;\n\n\turl = url.replace(/^\\w+:\\/\\/|^www\\.|\\/.*/g, '');\n\turl = punycode.toASCII(url);\n\n\tconst onloadAttr = '\\\n\t\tonload=\"\\\n\t\t\tvar that = this;\\\n\t\t\t$.ajax({\\\n\t\t\t\ttype:\\'get\\',\\\n\t\t\t\turl:this.src,\\\n\t\t\t\tsuccess:function(res){ if(res.length > 100) that.className=\\'top-favicon\\'; },\\\n\t\t\t\terror:function(){ }\\\n\t\t\t});\\\n\t\t\"';\n\n\t//\treturn '<img src=\"https://www.google.com/s2/favicons?domain=' + url + '\" class=\"top-favicon empty\"> ' + onloadAttr + '>';\n\treturn '<img src=\"https://favicon.yandex.net/favicon/' + url + '?size=' + size + '\" class=\"top-favicon empty\" ' + onloadAttr + ' alt=\"\">';\n};\n"],"names":["downloadImageFromString","imageStr","imageName","a","genFaviconImgHtml","url","isBig","size"],"mappings":"2HAOO,MAAAA,EAAA,CAAAC,EAAAC,EAAA,aAAA,qCAENC,EAAA,SAAAD,EACAC,EAAA,KAAAF,EACAE,EAAA,MAAA,GAQYC,EAAA,CAAAC,EAAAC,IAAA,CACZ,IAAAC,EAAA,GACA,OAAAD,IAAAC,EAAA,sEAiBA,gDAAAF,EAAA,SAAAE,EAAA,+BAZA,2LAYA,UACD"}
@@ -0,0 +1 @@
1
+ export * from '../src/core/utils/image'
package/utils/image.js ADDED
@@ -0,0 +1,13 @@
1
+ import { p as a } from "../.chunks/forms-o7UeMJFf.es.js";
2
+ const s = (t, n = "download") => {
3
+ const o = document.createElement("a");
4
+ o.download = n, o.href = t, o.click();
5
+ }, i = (t, n) => {
6
+ let o = 32;
7
+ return n && (o = 120), t = t.replace(/^\w+:\/\/|^www\.|\/.*/g, ""), t = a.toASCII(t), '<img src="https://favicon.yandex.net/favicon/' + t + "?size=" + o + '" class="top-favicon empty" ' + ` onload=" var that = this; $.ajax({ type:'get', url:this.src, success:function(res){ if(res.length > 100) that.className='top-favicon'; }, error:function(){ } }); "` + ' alt="">';
8
+ };
9
+ export {
10
+ s as downloadImageFromString,
11
+ i as genFaviconImgHtml
12
+ };
13
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sources":["../../src/core/utils/image.ts"],"sourcesContent":["import punycode from 'punycode';\n\n/**\n * Скачать изображение, переданное в виде строки\n * @param imageStr - адресс картинки\n * @param imageName - имя файла при загрузке, по умолчанию download\n */\nexport const downloadImageFromString = (imageStr: string, imageName: string = 'download'): void => {\n\tconst a = document.createElement('a');\n\ta.download = imageName;\n\ta.href = imageStr;\n\ta.click();\n};\n\n/**\n * Сгенерировать html картинку с фавиконкой сайта\n * @param url - адрес сайта\n * @param isBig - если true, картинка будет 120px, иначе 32px\n */\nexport const genFaviconImgHtml = (url: string, isBig: boolean): string => {\n\tlet size = 32;\n\tif (isBig) size = 120;\n\n\turl = url.replace(/^\\w+:\\/\\/|^www\\.|\\/.*/g, '');\n\turl = punycode.toASCII(url);\n\n\tconst onloadAttr = '\\\n\t\tonload=\"\\\n\t\t\tvar that = this;\\\n\t\t\t$.ajax({\\\n\t\t\t\ttype:\\'get\\',\\\n\t\t\t\turl:this.src,\\\n\t\t\t\tsuccess:function(res){ if(res.length > 100) that.className=\\'top-favicon\\'; },\\\n\t\t\t\terror:function(){ }\\\n\t\t\t});\\\n\t\t\"';\n\n\t//\treturn '<img src=\"https://www.google.com/s2/favicons?domain=' + url + '\" class=\"top-favicon empty\"> ' + onloadAttr + '>';\n\treturn '<img src=\"https://favicon.yandex.net/favicon/' + url + '?size=' + size + '\" class=\"top-favicon empty\" ' + onloadAttr + ' alt=\"\">';\n};\n"],"names":["downloadImageFromString","imageStr","imageName","a","genFaviconImgHtml","url","isBig","size","punycode"],"mappings":";AAOO,MAAMA,IAA0B,CAACC,GAAkBC,IAAoB,eAAqB;AAC5F,QAAAC,IAAI,SAAS,cAAc,GAAG;AACpC,EAAAA,EAAE,WAAWD,GACbC,EAAE,OAAOF,GACTE,EAAE,MAAM;AACT,GAOaC,IAAoB,CAACC,GAAaC,MAA2B;AACzE,MAAIC,IAAO;AACX,SAAID,MAAcC,IAAA,MAEZF,IAAAA,EAAI,QAAQ,0BAA0B,EAAE,GACxCA,IAAAG,EAAS,QAAQH,CAAG,GAcnB,kDAAkDA,IAAM,WAAWE,IAAO,iCAZ9D,6LAY4G;AAChI;"}
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.amd.js","sources":["../../src/core/utils/keyboard.ts"],"sourcesContent":["/**\r\n * Перевод строки в другую раскладку\r\n */\r\nexport function invertKeyboardLayout(string: string): string {\r\n\tconst a1 = 'qwertyuiop[]asdfghjkl;\\'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL;\"ZXCVBNM<>?';\r\n\tconst a2 = 'йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДжЭЯЧСМИТЬБЮ,';\r\n\tlet indexFinded: number;\r\n\r\n\tconst chars: Array<string> = string.split('');\r\n\tchars.forEach((char: string, index: number) => {\r\n\t\tindexFinded = a1.indexOf(char);\r\n\t\tif (indexFinded !== -1) {\r\n\t\t\tchars[index] = a2[indexFinded];\r\n\t\t} else {\r\n\t\t\tindexFinded = a2.indexOf(char);\r\n\t\t\tif (indexFinded !== -1) {\r\n\t\t\t\tchars[index] = a1[indexFinded];\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tstring = chars.join('');\r\n\r\n\treturn string;\r\n}"],"names":["a1","a2","indexFinded"],"mappings":"uGAIC,MAAAA,EAAA,qEACAC,EAAA,uIAMCC,IAAA,6BAICA,IAAA,gBAGD,CAAA,gBAKF"}
1
+ {"version":3,"file":"keyboard.amd.js","sources":["../../src/core/utils/keyboard.ts"],"sourcesContent":["/**\n * Перевод строки в другую раскладку\n */\nexport function invertKeyboardLayout(string: string): string {\n\tconst a1 = 'qwertyuiop[]asdfghjkl;\\'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL;\"ZXCVBNM<>?';\n\tconst a2 = 'йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДжЭЯЧСМИТЬБЮ,';\n\tlet indexFinded: number;\n\n\tconst chars: Array<string> = string.split('');\n\tchars.forEach((char: string, index: number) => {\n\t\tindexFinded = a1.indexOf(char);\n\t\tif (indexFinded !== -1) {\n\t\t\tchars[index] = a2[indexFinded];\n\t\t} else {\n\t\t\tindexFinded = a2.indexOf(char);\n\t\t\tif (indexFinded !== -1) {\n\t\t\t\tchars[index] = a1[indexFinded];\n\t\t\t}\n\t\t}\n\t});\n\tstring = chars.join('');\n\n\treturn string;\n}"],"names":["a1","a2","indexFinded"],"mappings":"uGAIC,MAAAA,EAAA,qEACAC,EAAA,uIAMCC,IAAA,6BAICA,IAAA,gBAGD,CAAA,gBAKF"}
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.js","sources":["../../src/core/utils/keyboard.ts"],"sourcesContent":["/**\r\n * Перевод строки в другую раскладку\r\n */\r\nexport function invertKeyboardLayout(string: string): string {\r\n\tconst a1 = 'qwertyuiop[]asdfghjkl;\\'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL;\"ZXCVBNM<>?';\r\n\tconst a2 = 'йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДжЭЯЧСМИТЬБЮ,';\r\n\tlet indexFinded: number;\r\n\r\n\tconst chars: Array<string> = string.split('');\r\n\tchars.forEach((char: string, index: number) => {\r\n\t\tindexFinded = a1.indexOf(char);\r\n\t\tif (indexFinded !== -1) {\r\n\t\t\tchars[index] = a2[indexFinded];\r\n\t\t} else {\r\n\t\t\tindexFinded = a2.indexOf(char);\r\n\t\t\tif (indexFinded !== -1) {\r\n\t\t\t\tchars[index] = a1[indexFinded];\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tstring = chars.join('');\r\n\r\n\treturn string;\r\n}"],"names":["invertKeyboardLayout","string","a1","a2","indexFinded","chars","char","index"],"mappings":"AAGO,SAASA,EAAqBC,GAAwB;AAC5D,QAAMC,IAAK,sEACLC,IAAK;AACP,MAAAC;AAEE,QAAAC,IAAuBJ,EAAO,MAAM,EAAE;AACtC,SAAAI,EAAA,QAAQ,CAACC,GAAcC,MAAkB;AAChC,IAAAH,IAAAF,EAAG,QAAQI,CAAI,GACzBF,MAAgB,KACbC,EAAAE,CAAK,IAAIJ,EAAGC,CAAW,KAEfA,IAAAD,EAAG,QAAQG,CAAI,GACzBF,MAAgB,OACbC,EAAAE,CAAK,IAAIL,EAAGE,CAAW;AAAA,EAE/B,CACA,GACQH,IAAAI,EAAM,KAAK,EAAE,GAEfJ;AACR;"}
1
+ {"version":3,"file":"keyboard.js","sources":["../../src/core/utils/keyboard.ts"],"sourcesContent":["/**\n * Перевод строки в другую раскладку\n */\nexport function invertKeyboardLayout(string: string): string {\n\tconst a1 = 'qwertyuiop[]asdfghjkl;\\'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL;\"ZXCVBNM<>?';\n\tconst a2 = 'йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДжЭЯЧСМИТЬБЮ,';\n\tlet indexFinded: number;\n\n\tconst chars: Array<string> = string.split('');\n\tchars.forEach((char: string, index: number) => {\n\t\tindexFinded = a1.indexOf(char);\n\t\tif (indexFinded !== -1) {\n\t\t\tchars[index] = a2[indexFinded];\n\t\t} else {\n\t\t\tindexFinded = a2.indexOf(char);\n\t\t\tif (indexFinded !== -1) {\n\t\t\t\tchars[index] = a1[indexFinded];\n\t\t\t}\n\t\t}\n\t});\n\tstring = chars.join('');\n\n\treturn string;\n}"],"names":["invertKeyboardLayout","string","a1","a2","indexFinded","chars","char","index"],"mappings":"AAGO,SAASA,EAAqBC,GAAwB;AAC5D,QAAMC,IAAK,sEACLC,IAAK;AACP,MAAAC;AAEE,QAAAC,IAAuBJ,EAAO,MAAM,EAAE;AACtC,SAAAI,EAAA,QAAQ,CAACC,GAAcC,MAAkB;AAChC,IAAAH,IAAAF,EAAG,QAAQI,CAAI,GACzBF,MAAgB,KACbC,EAAAE,CAAK,IAAIJ,EAAGC,CAAW,KAEfA,IAAAD,EAAG,QAAQG,CAAI,GACzBF,MAAgB,OACbC,EAAAE,CAAK,IAAIL,EAAGE,CAAW;AAAA,EAE/B,CACA,GACQH,IAAAI,EAAM,KAAK,EAAE,GAEfJ;AACR;"}
@@ -0,0 +1,2 @@
1
+ define(["require","exports"],function(d,n){"use strict";if(typeof o>"u")var o=window.Vue;const f=(t,u=100,r=0)=>{if(t==="--")return t;let e=u*1?t/u:0;return e*=100,!r&&e<1?e=Math.round(e*Math.pow(10,2))/Math.pow(10,2):e=Math.round(e*Math.pow(10,r))/Math.pow(10,r),e};n.percentOfNumber=f,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
2
+ //# sourceMappingURL=number.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.amd.js","sources":["../../src/core/utils/number.ts"],"sourcesContent":["/**\n * Посчитать процент от числа (сколько процентов составляет part от full)\n * @param part - первое число\n * @param full - второе число\n * @param precision - точность (колличество знаков после запятой)\n */\nexport const percentOfNumber = (part: '--' | number, full: number = 100, precision: number = 0): '--' | number => {\n\tif (part === '--') return part;\n\n\tlet percent = (full * 1) ? part / full : 0;\n\tpercent *= 100;\n\n\t// если десятичные знаки не выводятся и число при округлении может дать ноль, то округляем в большую сторону\n\tif (!precision && percent < 1) {\n\t\tpercent = Math.round(percent * (Math.pow(10, 2))) / (Math.pow(10, 2));\n\t} else {\n\t\tpercent = Math.round(percent * (Math.pow(10, precision))) / (Math.pow(10, precision));\n\t}\n\n\treturn percent;\n};"],"names":["percentOfNumber","part","full","precision","percent"],"mappings":"yFAMO,MAAAA,EAAA,CAAAC,EAAAC,EAAA,IAAAC,EAAA,IAAA,CACN,GAAAF,IAAA,KAAA,OAAAA,EAEA,IAAAG,EAAAF,EAAA,EAAAD,EAAAC,EAAA,gBAIA,CAAAC,GAAAC,EAAA,+FAOD"}
@@ -0,0 +1 @@
1
+ export * from '../src/core/utils/number'
@@ -0,0 +1,9 @@
1
+ const r = (e, o = 100, h = 0) => {
2
+ if (e === "--") return e;
3
+ let t = o * 1 ? e / o : 0;
4
+ return t *= 100, !h && t < 1 ? t = Math.round(t * Math.pow(10, 2)) / Math.pow(10, 2) : t = Math.round(t * Math.pow(10, h)) / Math.pow(10, h), t;
5
+ };
6
+ export {
7
+ r as percentOfNumber
8
+ };
9
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sources":["../../src/core/utils/number.ts"],"sourcesContent":["/**\n * Посчитать процент от числа (сколько процентов составляет part от full)\n * @param part - первое число\n * @param full - второе число\n * @param precision - точность (колличество знаков после запятой)\n */\nexport const percentOfNumber = (part: '--' | number, full: number = 100, precision: number = 0): '--' | number => {\n\tif (part === '--') return part;\n\n\tlet percent = (full * 1) ? part / full : 0;\n\tpercent *= 100;\n\n\t// если десятичные знаки не выводятся и число при округлении может дать ноль, то округляем в большую сторону\n\tif (!precision && percent < 1) {\n\t\tpercent = Math.round(percent * (Math.pow(10, 2))) / (Math.pow(10, 2));\n\t} else {\n\t\tpercent = Math.round(percent * (Math.pow(10, precision))) / (Math.pow(10, precision));\n\t}\n\n\treturn percent;\n};"],"names":["percentOfNumber","part","full","precision","percent"],"mappings":"AAMO,MAAMA,IAAkB,CAACC,GAAqBC,IAAe,KAAKC,IAAoB,MAAqB;AAC7G,MAAAF,MAAS,KAAa,QAAAA;AAE1B,MAAIG,IAAWF,IAAO,IAAKD,IAAOC,IAAO;AAC9B,SAAAE,KAAA,KAGP,CAACD,KAAaC,IAAU,IAC3BA,IAAU,KAAK,MAAMA,IAAW,KAAK,IAAI,IAAI,CAAC,CAAE,IAAK,KAAK,IAAI,IAAI,CAAC,IAEnEA,IAAU,KAAK,MAAMA,IAAW,KAAK,IAAI,IAAID,CAAS,CAAE,IAAK,KAAK,IAAI,IAAIA,CAAS,GAG7EC;AACR;"}
@@ -1 +1 @@
1
- {"version":3,"file":"price.amd.js","sources":["../../src/core/utils/price.ts"],"sourcesContent":["/**\r\n * TODO: mo.user.lang заменить на Core.state.lang\r\n * TODO: mo.user.currency заменить на Core.state.currency\r\n */\r\nconst user = window['mo']?.user ?? {};\r\n\r\n/**\r\n * Сгенерировать строку с суммой и валютой\r\n * @param sum - сумма\r\n * @param lang - язык, берётся из профиля, если не задано\r\n * @param currency - валюта, берётся из профиля, если не задано\r\n * @returns строка с языкозависимым представлением числа sum и знаком валюты\r\n */\r\nexport const genPrice = (sum: number, lang?: 'ru' | 'en', currency?: 'RUB' | 'USD' | 'EUR'): string => {\r\n\tlang = lang ?? user.lang;\r\n\tcurrency = currency ?? user.currency;\r\n\r\n\tlet sumStr = sum.toLocaleString(lang, { style: 'currency', currency: currency ?? user.currency, maximumFractionDigits: 2 });\r\n\tsumStr = sumStr.replace(',', '.');\r\n\r\n\treturn sumStr;\r\n};"],"names":["genPrice","sum","lang","currency","user"],"mappings":"+IAaOA,EAAA,CAAAC,EAAAC,EAAAC,IAAA,CACND,EAAAA,GAAAE,EAAA,KACAD,EAAAA,GAAAC,EAAA,kIAMD"}
1
+ {"version":3,"file":"price.amd.js","sources":["../../src/core/utils/price.ts"],"sourcesContent":["/**\n * TODO: mo.user.lang заменить на Core.state.lang\n * TODO: mo.user.currency заменить на Core.state.currency\n */\nconst user = window['mo']?.user ?? {};\n\n/**\n * Сгенерировать строку с суммой и валютой\n * @param sum - сумма\n * @param lang - язык, берётся из профиля, если не задано\n * @param currency - валюта, берётся из профиля, если не задано\n * @returns строка с языкозависимым представлением числа sum и знаком валюты\n */\nexport const genPrice = (sum: number, lang?: 'ru' | 'en', currency?: 'RUB' | 'USD' | 'EUR'): string => {\n\tlang = lang ?? user.lang;\n\tcurrency = currency ?? user.currency;\n\n\tlet sumStr = sum.toLocaleString(lang, { style: 'currency', currency: currency ?? user.currency, maximumFractionDigits: 2 });\n\tsumStr = sumStr.replace(',', '.');\n\n\treturn sumStr;\n};"],"names":["genPrice","sum","lang","currency","user"],"mappings":"+IAaOA,EAAA,CAAAC,EAAAC,EAAAC,IAAA,CACND,EAAAA,GAAAE,EAAA,KACAD,EAAAA,GAAAC,EAAA,kIAMD"}
@@ -1 +1 @@
1
- {"version":3,"file":"price.js","sources":["../../src/core/utils/price.ts"],"sourcesContent":["/**\r\n * TODO: mo.user.lang заменить на Core.state.lang\r\n * TODO: mo.user.currency заменить на Core.state.currency\r\n */\r\nconst user = window['mo']?.user ?? {};\r\n\r\n/**\r\n * Сгенерировать строку с суммой и валютой\r\n * @param sum - сумма\r\n * @param lang - язык, берётся из профиля, если не задано\r\n * @param currency - валюта, берётся из профиля, если не задано\r\n * @returns строка с языкозависимым представлением числа sum и знаком валюты\r\n */\r\nexport const genPrice = (sum: number, lang?: 'ru' | 'en', currency?: 'RUB' | 'USD' | 'EUR'): string => {\r\n\tlang = lang ?? user.lang;\r\n\tcurrency = currency ?? user.currency;\r\n\r\n\tlet sumStr = sum.toLocaleString(lang, { style: 'currency', currency: currency ?? user.currency, maximumFractionDigits: 2 });\r\n\tsumStr = sumStr.replace(',', '.');\r\n\r\n\treturn sumStr;\r\n};"],"names":["_a","user","genPrice","sum","lang","currency","sumStr"],"mappings":"AAIA,IAAAA;AAAA,MAAMC,MAAOD,IAAA,OAAO,OAAP,gBAAAA,EAAc,SAAQ,CAAA,GAStBE,IAAW,CAACC,GAAaC,GAAoBC,MAA6C;AACtG,EAAAD,IAAOA,KAAQH,EAAK,MACpBI,IAAWA,KAAYJ,EAAK;AAE5B,MAAIK,IAASH,EAAI,eAAeC,GAAM,EAAE,OAAO,YAAY,UAAUC,KAAYJ,EAAK,UAAU,uBAAuB,EAAG,CAAA;AACjH,SAAAK,IAAAA,EAAO,QAAQ,KAAK,GAAG,GAEzBA;AACR;"}
1
+ {"version":3,"file":"price.js","sources":["../../src/core/utils/price.ts"],"sourcesContent":["/**\n * TODO: mo.user.lang заменить на Core.state.lang\n * TODO: mo.user.currency заменить на Core.state.currency\n */\nconst user = window['mo']?.user ?? {};\n\n/**\n * Сгенерировать строку с суммой и валютой\n * @param sum - сумма\n * @param lang - язык, берётся из профиля, если не задано\n * @param currency - валюта, берётся из профиля, если не задано\n * @returns строка с языкозависимым представлением числа sum и знаком валюты\n */\nexport const genPrice = (sum: number, lang?: 'ru' | 'en', currency?: 'RUB' | 'USD' | 'EUR'): string => {\n\tlang = lang ?? user.lang;\n\tcurrency = currency ?? user.currency;\n\n\tlet sumStr = sum.toLocaleString(lang, { style: 'currency', currency: currency ?? user.currency, maximumFractionDigits: 2 });\n\tsumStr = sumStr.replace(',', '.');\n\n\treturn sumStr;\n};"],"names":["_a","user","genPrice","sum","lang","currency","sumStr"],"mappings":"AAIA,IAAAA;AAAA,MAAMC,MAAOD,IAAA,OAAO,OAAP,gBAAAA,EAAc,SAAQ,CAAA,GAStBE,IAAW,CAACC,GAAaC,GAAoBC,MAA6C;AACtG,EAAAD,IAAOA,KAAQH,EAAK,MACpBI,IAAWA,KAAYJ,EAAK;AAE5B,MAAIK,IAASH,EAAI,eAAeC,GAAM,EAAE,OAAO,YAAY,UAAUC,KAAYJ,EAAK,UAAU,uBAAuB,EAAG,CAAA;AACjH,SAAAK,IAAAA,EAAO,QAAQ,KAAK,GAAG,GAEzBA;AACR;"}
@@ -1 +1 @@
1
- {"version":3,"file":"route.amd.js","sources":["../../src/core/utils/route.ts"],"sourcesContent":["/**\r\n * Получить значение хэш параметра страницы\r\n */\r\nexport const getHash = function (name: string, locationHash: string = location.hash): string {\r\n\tconst re = new RegExp('[#?&]' + name + '=([^&]*)');\r\n\tconst value = locationHash.match(re);\r\n\tif (!value || value.length != 2) return '';\r\n\r\n\tvalue[1] = decodeURIComponent(value[1]);\r\n\tvalue[1] = value[1].replace(/\\+/g, ' ');\r\n\r\n\treturn value[1];\r\n};\r\n\r\n/**\r\n * Установить значение в хэш параметр страницы\r\n */\r\nexport const setHash = function (name: string, value: string | null, replaceState: boolean = true): void {\r\n\tlet hash = genHash(name, value);\r\n\tif (hash == '#') hash = '';\r\n\r\n\tif (replaceState) {\r\n\t\thistorySetState(true, hash);\r\n\t} else {\r\n\t\tlocation.hash = hash;\r\n\t}\r\n};\r\n\r\n/**\r\n * Удалить значение из хэш параметра страницы\r\n */\r\nexport const delHash = function (name: string, value: string, replaceState: boolean = true): void {\r\n\tsetHash(name, null, replaceState);\r\n};\r\n\r\n/**\r\n * Сгенерировать новое значение для хэш параметра страницы с указанным параметром\r\n */\r\nexport const genHash = function (name: string, value: string | null, locationHash: string = location.hash): string {\r\n\tconst re = new RegExp('&?' + name + '=[^&]*', 'g');\r\n\r\n\tlocationHash = locationHash.replace(re, '');\r\n\r\n\tif (value !== null) {\r\n\t\tvalue = (value + '').replace(' ', '%20');\r\n\t\tlocationHash = locationHash.replace(re, '&' + name + '=' + value);\r\n\r\n\t\tif (locationHash.indexOf('&' + name + '=') == -1) locationHash += '&' + name + '=' + value;\r\n\t}\r\n\r\n\tlocationHash = locationHash.replace(/&+/g, '&');\r\n\tlocationHash = locationHash.replace(/&$/, '');\r\n\r\n\tlocationHash = '#' + locationHash;\r\n\tlocationHash = locationHash.replace(/^#+/, '#');\r\n\r\n\t// hash страницы не должен быть пустым, чтобы не перекидывало к верху страницы\r\n\tlocationHash = locationHash.replace(/^#:-\\)/, '#');\r\n\tif ((locationHash == '' || locationHash == '#') && location.hash) locationHash = '#:-)';\r\n\r\n\treturn locationHash;\r\n};\r\n\r\n/**\r\n * Установить значения в хэш параметр страницы\r\n */\r\nexport const setHashs = function (data: Map<string, string> | object | any, replaceState: boolean): void {\r\n\tif (data instanceof Map) data = Object.fromEntries(data);\r\n\r\n\tif (replaceState === undefined) replaceState = true;\r\n\tlet hash = location.hash;\r\n\r\n\tfor (const name in data) {\r\n\t\tconst re = new RegExp('&?' + name + '=[^&]*', 'g');\r\n\t\thash = hash.replace(re, '');\r\n\r\n\t\tif (data[name] !== null) {\r\n\t\t\tdata[name] = (data[name] + '').replace(' ', '%20');\r\n\t\t\thash += '&' + name + '=' + data[name];\r\n\t\t}\r\n\t}\r\n\r\n\thash = hash.replace(/&+/g, '&');\r\n\thash = hash.replace(/^(#)?&|&$/g, '$1');\r\n\thash = '#' + hash;\r\n\thash = hash.replace(/^#+/, '#');\r\n\r\n\tif (replaceState) {\r\n\t\tif (hash == '#') hash = '.';\r\n\t\thistorySetState(true, hash);\r\n\t} else {\r\n\t\tlocation.hash = hash;\r\n\t}\r\n};\r\n\r\n/**\r\n * Установть позицию в истории вкладки браузера\r\n * @see history.replaceState\r\n * @see history.pushState\r\n */\r\nexport const historySetState = (replace: boolean = false, hash: string): void => {\r\n\t// if(requirejs.defined('es6!@/component/vue/app/page') && requirejs.defined('@/component/vue/app/spa') && requirejs('es6!@/component/vue/app/page').default.page.url){\r\n\t// \trequirejs('@/component/vue/app/spa').historySetState(replace, hash);\r\n\t// }else{\r\n\t// \tif(replace){\r\n\t// \t\thistory.replaceState(null, null, hash);\r\n\t// \t}else{\r\n\t// \t\thistory.pushState(null, null, hash);\r\n\t// \t}\r\n\t// }\r\n\r\n\tif (replace) {\r\n\t\thistory.replaceState(null, '', hash);\r\n\t} else {\r\n\t\thistory.pushState(null, '', hash);\r\n\t}\r\n};"],"names":["getHash","name","locationHash","re","value","setHash","replaceState","historySetState","hash","delHash","genHash","setHashs","data","replace"],"mappings":"yFAGO,MAAAA,EAAA,SAAAC,EAAAC,EAAA,SAAA,KAAA,CACN,MAAAC,EAAA,IAAA,OAAA,QAAAF,EAAA,UAAA,eAEA,MAAA,CAAAG,GAAAA,EAAA,QAAA,EAAA,IAEAA,EAAA,CAAA,EAAA,mBAAAA,EAAA,CAAA,CAAA,EACAA,EAAA,CAAA,EAAAA,EAAA,CAAA,EAAA,QAAA,MAAA,GAAA,EAEAA,EAAA,CAAA,IAMMC,EAAA,SAAAJ,EAAAG,EAAAE,EAAA,GAAA,+BAKLC,EAAA,GAAAC,CAAA,EAEA,SAAA,KAAAA,GAOKC,EAAA,SAAAR,EAAAG,EAAAE,EAAA,GAAA,cAOAI,EAAA,SAAAT,EAAAG,EAAAF,EAAA,SAAA,KAAA,CACN,MAAAC,EAAA,IAAA,OAAA,KAAAF,EAAA,SAAA,GAAA,2BAIAG,IAAA,OACCA,GAAAA,EAAA,IAAA,QAAA,IAAA,KAAA,EACAF,EAAAA,EAAA,QAAAC,EAAA,IAAAF,EAAA,IAAAG,CAAA,0FAQDF,EAAA,IAAAA,oDAKAA,GAAA,IAAAA,GAAA,MAAA,SAAA,OAAAA,EAAA,WAQYS,EAAA,SAAAC,EAAAN,EAAA,CACZM,aAAA,MAAAA,EAAA,OAAA,YAAAA,CAAA,sBAGA,IAAAJ,EAAA,SAAA,KAEA,UAAAP,KAAAW,EAAA,CACC,MAAAT,EAAA,IAAA,OAAA,KAAAF,EAAA,SAAA,GAAA,oBAGAW,EAAAX,CAAA,IAAA,OACCW,EAAAX,CAAA,GAAAW,EAAAX,CAAA,EAAA,IAAA,QAAA,IAAA,KAAA,EACAO,GAAA,IAAAP,EAAA,IAAAW,EAAAX,CAAA,yDAMFO,EAAA,IAAAA,4CAKCD,EAAA,GAAAC,CAAA,GAEA,SAAA,KAAAA,GASKD,EAAA,CAAAM,EAAA,GAAAL,IAAA,+DAgBP"}
1
+ {"version":3,"file":"route.amd.js","sources":["../../src/core/utils/route.ts"],"sourcesContent":["/**\n * Получить значение хэш параметра страницы\n */\nexport const getHash = function (name: string, locationHash: string = location.hash): string {\n\tconst re = new RegExp('[#?&]' + name + '=([^&]*)');\n\tconst value = locationHash.match(re);\n\tif (!value || value.length != 2) return '';\n\n\tvalue[1] = decodeURIComponent(value[1]);\n\tvalue[1] = value[1].replace(/\\+/g, ' ');\n\n\treturn value[1];\n};\n\n/**\n * Установить значение в хэш параметр страницы\n */\nexport const setHash = function (name: string, value: string | null, replaceState: boolean = true): void {\n\tlet hash = genHash(name, value);\n\tif (hash == '#') hash = '';\n\n\tif (replaceState) {\n\t\thistorySetState(true, hash);\n\t} else {\n\t\tlocation.hash = hash;\n\t}\n};\n\n/**\n * Удалить значение из хэш параметра страницы\n */\nexport const delHash = function (name: string, value: string, replaceState: boolean = true): void {\n\tsetHash(name, null, replaceState);\n};\n\n/**\n * Сгенерировать новое значение для хэш параметра страницы с указанным параметром\n */\nexport const genHash = function (name: string, value: string | null, locationHash: string = location.hash): string {\n\tconst re = new RegExp('&?' + name + '=[^&]*', 'g');\n\n\tlocationHash = locationHash.replace(re, '');\n\n\tif (value !== null) {\n\t\tvalue = (value + '').replace(' ', '%20');\n\t\tlocationHash = locationHash.replace(re, '&' + name + '=' + value);\n\n\t\tif (locationHash.indexOf('&' + name + '=') == -1) locationHash += '&' + name + '=' + value;\n\t}\n\n\tlocationHash = locationHash.replace(/&+/g, '&');\n\tlocationHash = locationHash.replace(/&$/, '');\n\n\tlocationHash = '#' + locationHash;\n\tlocationHash = locationHash.replace(/^#+/, '#');\n\n\t// hash страницы не должен быть пустым, чтобы не перекидывало к верху страницы\n\tlocationHash = locationHash.replace(/^#:-\\)/, '#');\n\tif ((locationHash == '' || locationHash == '#') && location.hash) locationHash = '#:-)';\n\n\treturn locationHash;\n};\n\n/**\n * Установить значения в хэш параметр страницы\n */\nexport const setHashs = function (data: Map<string, string> | object | any, replaceState: boolean): void {\n\tif (data instanceof Map) data = Object.fromEntries(data);\n\n\tif (replaceState === undefined) replaceState = true;\n\tlet hash = location.hash;\n\n\tfor (const name in data) {\n\t\tconst re = new RegExp('&?' + name + '=[^&]*', 'g');\n\t\thash = hash.replace(re, '');\n\n\t\tif (data[name] !== null) {\n\t\t\tdata[name] = (data[name] + '').replace(' ', '%20');\n\t\t\thash += '&' + name + '=' + data[name];\n\t\t}\n\t}\n\n\thash = hash.replace(/&+/g, '&');\n\thash = hash.replace(/^(#)?&|&$/g, '$1');\n\thash = '#' + hash;\n\thash = hash.replace(/^#+/, '#');\n\n\tif (replaceState) {\n\t\tif (hash == '#') hash = '.';\n\t\thistorySetState(true, hash);\n\t} else {\n\t\tlocation.hash = hash;\n\t}\n};\n\n/**\n * Установть позицию в истории вкладки браузера\n * @see history.replaceState\n * @see history.pushState\n */\nexport const historySetState = (replace: boolean = false, hash: string): void => {\n\t// if(requirejs.defined('es6!@/component/vue/app/page') && requirejs.defined('@/component/vue/app/spa') && requirejs('es6!@/component/vue/app/page').default.page.url){\n\t// \trequirejs('@/component/vue/app/spa').historySetState(replace, hash);\n\t// }else{\n\t// \tif(replace){\n\t// \t\thistory.replaceState(null, null, hash);\n\t// \t}else{\n\t// \t\thistory.pushState(null, null, hash);\n\t// \t}\n\t// }\n\n\tif (replace) {\n\t\thistory.replaceState(null, '', hash);\n\t} else {\n\t\thistory.pushState(null, '', hash);\n\t}\n};"],"names":["getHash","name","locationHash","re","value","setHash","replaceState","historySetState","hash","delHash","genHash","setHashs","data","replace"],"mappings":"yFAGO,MAAAA,EAAA,SAAAC,EAAAC,EAAA,SAAA,KAAA,CACN,MAAAC,EAAA,IAAA,OAAA,QAAAF,EAAA,UAAA,eAEA,MAAA,CAAAG,GAAAA,EAAA,QAAA,EAAA,IAEAA,EAAA,CAAA,EAAA,mBAAAA,EAAA,CAAA,CAAA,EACAA,EAAA,CAAA,EAAAA,EAAA,CAAA,EAAA,QAAA,MAAA,GAAA,EAEAA,EAAA,CAAA,IAMMC,EAAA,SAAAJ,EAAAG,EAAAE,EAAA,GAAA,+BAKLC,EAAA,GAAAC,CAAA,EAEA,SAAA,KAAAA,GAOKC,EAAA,SAAAR,EAAAG,EAAAE,EAAA,GAAA,cAOAI,EAAA,SAAAT,EAAAG,EAAAF,EAAA,SAAA,KAAA,CACN,MAAAC,EAAA,IAAA,OAAA,KAAAF,EAAA,SAAA,GAAA,2BAIAG,IAAA,OACCA,GAAAA,EAAA,IAAA,QAAA,IAAA,KAAA,EACAF,EAAAA,EAAA,QAAAC,EAAA,IAAAF,EAAA,IAAAG,CAAA,0FAQDF,EAAA,IAAAA,oDAKAA,GAAA,IAAAA,GAAA,MAAA,SAAA,OAAAA,EAAA,WAQYS,EAAA,SAAAC,EAAAN,EAAA,CACZM,aAAA,MAAAA,EAAA,OAAA,YAAAA,CAAA,sBAGA,IAAAJ,EAAA,SAAA,KAEA,UAAAP,KAAAW,EAAA,CACC,MAAAT,EAAA,IAAA,OAAA,KAAAF,EAAA,SAAA,GAAA,oBAGAW,EAAAX,CAAA,IAAA,OACCW,EAAAX,CAAA,GAAAW,EAAAX,CAAA,EAAA,IAAA,QAAA,IAAA,KAAA,EACAO,GAAA,IAAAP,EAAA,IAAAW,EAAAX,CAAA,yDAMFO,EAAA,IAAAA,4CAKCD,EAAA,GAAAC,CAAA,GAEA,SAAA,KAAAA,GASKD,EAAA,CAAAM,EAAA,GAAAL,IAAA,+DAgBP"}
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sources":["../../src/core/utils/route.ts"],"sourcesContent":["/**\r\n * Получить значение хэш параметра страницы\r\n */\r\nexport const getHash = function (name: string, locationHash: string = location.hash): string {\r\n\tconst re = new RegExp('[#?&]' + name + '=([^&]*)');\r\n\tconst value = locationHash.match(re);\r\n\tif (!value || value.length != 2) return '';\r\n\r\n\tvalue[1] = decodeURIComponent(value[1]);\r\n\tvalue[1] = value[1].replace(/\\+/g, ' ');\r\n\r\n\treturn value[1];\r\n};\r\n\r\n/**\r\n * Установить значение в хэш параметр страницы\r\n */\r\nexport const setHash = function (name: string, value: string | null, replaceState: boolean = true): void {\r\n\tlet hash = genHash(name, value);\r\n\tif (hash == '#') hash = '';\r\n\r\n\tif (replaceState) {\r\n\t\thistorySetState(true, hash);\r\n\t} else {\r\n\t\tlocation.hash = hash;\r\n\t}\r\n};\r\n\r\n/**\r\n * Удалить значение из хэш параметра страницы\r\n */\r\nexport const delHash = function (name: string, value: string, replaceState: boolean = true): void {\r\n\tsetHash(name, null, replaceState);\r\n};\r\n\r\n/**\r\n * Сгенерировать новое значение для хэш параметра страницы с указанным параметром\r\n */\r\nexport const genHash = function (name: string, value: string | null, locationHash: string = location.hash): string {\r\n\tconst re = new RegExp('&?' + name + '=[^&]*', 'g');\r\n\r\n\tlocationHash = locationHash.replace(re, '');\r\n\r\n\tif (value !== null) {\r\n\t\tvalue = (value + '').replace(' ', '%20');\r\n\t\tlocationHash = locationHash.replace(re, '&' + name + '=' + value);\r\n\r\n\t\tif (locationHash.indexOf('&' + name + '=') == -1) locationHash += '&' + name + '=' + value;\r\n\t}\r\n\r\n\tlocationHash = locationHash.replace(/&+/g, '&');\r\n\tlocationHash = locationHash.replace(/&$/, '');\r\n\r\n\tlocationHash = '#' + locationHash;\r\n\tlocationHash = locationHash.replace(/^#+/, '#');\r\n\r\n\t// hash страницы не должен быть пустым, чтобы не перекидывало к верху страницы\r\n\tlocationHash = locationHash.replace(/^#:-\\)/, '#');\r\n\tif ((locationHash == '' || locationHash == '#') && location.hash) locationHash = '#:-)';\r\n\r\n\treturn locationHash;\r\n};\r\n\r\n/**\r\n * Установить значения в хэш параметр страницы\r\n */\r\nexport const setHashs = function (data: Map<string, string> | object | any, replaceState: boolean): void {\r\n\tif (data instanceof Map) data = Object.fromEntries(data);\r\n\r\n\tif (replaceState === undefined) replaceState = true;\r\n\tlet hash = location.hash;\r\n\r\n\tfor (const name in data) {\r\n\t\tconst re = new RegExp('&?' + name + '=[^&]*', 'g');\r\n\t\thash = hash.replace(re, '');\r\n\r\n\t\tif (data[name] !== null) {\r\n\t\t\tdata[name] = (data[name] + '').replace(' ', '%20');\r\n\t\t\thash += '&' + name + '=' + data[name];\r\n\t\t}\r\n\t}\r\n\r\n\thash = hash.replace(/&+/g, '&');\r\n\thash = hash.replace(/^(#)?&|&$/g, '$1');\r\n\thash = '#' + hash;\r\n\thash = hash.replace(/^#+/, '#');\r\n\r\n\tif (replaceState) {\r\n\t\tif (hash == '#') hash = '.';\r\n\t\thistorySetState(true, hash);\r\n\t} else {\r\n\t\tlocation.hash = hash;\r\n\t}\r\n};\r\n\r\n/**\r\n * Установть позицию в истории вкладки браузера\r\n * @see history.replaceState\r\n * @see history.pushState\r\n */\r\nexport const historySetState = (replace: boolean = false, hash: string): void => {\r\n\t// if(requirejs.defined('es6!@/component/vue/app/page') && requirejs.defined('@/component/vue/app/spa') && requirejs('es6!@/component/vue/app/page').default.page.url){\r\n\t// \trequirejs('@/component/vue/app/spa').historySetState(replace, hash);\r\n\t// }else{\r\n\t// \tif(replace){\r\n\t// \t\thistory.replaceState(null, null, hash);\r\n\t// \t}else{\r\n\t// \t\thistory.pushState(null, null, hash);\r\n\t// \t}\r\n\t// }\r\n\r\n\tif (replace) {\r\n\t\thistory.replaceState(null, '', hash);\r\n\t} else {\r\n\t\thistory.pushState(null, '', hash);\r\n\t}\r\n};"],"names":["getHash","name","locationHash","re","value","setHash","replaceState","hash","genHash","historySetState","delHash","setHashs","data","replace"],"mappings":"AAGO,MAAMA,IAAU,SAAUC,GAAcC,IAAuB,SAAS,MAAc;AAC5F,QAAMC,IAAK,IAAI,OAAO,UAAUF,IAAO,UAAU,GAC3CG,IAAQF,EAAa,MAAMC,CAAE;AACnC,SAAI,CAACC,KAASA,EAAM,UAAU,IAAU,MAExCA,EAAM,CAAC,IAAI,mBAAmBA,EAAM,CAAC,CAAC,GACtCA,EAAM,CAAC,IAAIA,EAAM,CAAC,EAAE,QAAQ,OAAO,GAAG,GAE/BA,EAAM,CAAC;AACf,GAKaC,IAAU,SAAUJ,GAAcG,GAAsBE,IAAwB,IAAY;AACpG,MAAAC,IAAOC,EAAQP,GAAMG,CAAK;AAC1B,EAAAG,KAAQ,QAAYA,IAAA,KAEpBD,IACHG,EAAgB,IAAMF,CAAI,IAE1B,SAAS,OAAOA;AAElB,GAKaG,IAAU,SAAUT,GAAcG,GAAeE,IAAwB,IAAY;AACzF,EAAAD,EAAAJ,GAAM,MAAMK,CAAY;AACjC,GAKaE,IAAU,SAAUP,GAAcG,GAAsBF,IAAuB,SAAS,MAAc;AAClH,QAAMC,IAAK,IAAI,OAAO,OAAOF,IAAO,UAAU,GAAG;AAElC,SAAAC,IAAAA,EAAa,QAAQC,GAAI,EAAE,GAEtCC,MAAU,SACbA,KAASA,IAAQ,IAAI,QAAQ,KAAK,KAAK,GACvCF,IAAeA,EAAa,QAAQC,GAAI,MAAMF,IAAO,MAAMG,CAAK,GAE5DF,EAAa,QAAQ,MAAMD,IAAO,GAAG,KAAK,OAAIC,KAAgB,MAAMD,IAAO,MAAMG,KAGvEF,IAAAA,EAAa,QAAQ,OAAO,GAAG,GAC/BA,IAAAA,EAAa,QAAQ,MAAM,EAAE,GAE5CA,IAAe,MAAMA,GACNA,IAAAA,EAAa,QAAQ,OAAO,GAAG,GAG/BA,IAAAA,EAAa,QAAQ,UAAU,GAAG,IAC5CA,KAAgB,MAAMA,KAAgB,QAAQ,SAAS,SAAqBA,IAAA,SAE1EA;AACR,GAKaS,IAAW,SAAUC,GAA0CN,GAA6B;AACxG,EAAIM,aAAgB,QAAYA,IAAA,OAAO,YAAYA,CAAI,IAEnDN,MAAiB,WAA0BA,IAAA;AAC/C,MAAIC,IAAO,SAAS;AAEpB,aAAWN,KAAQW,GAAM;AACxB,UAAMT,IAAK,IAAI,OAAO,OAAOF,IAAO,UAAU,GAAG;AAC1C,IAAAM,IAAAA,EAAK,QAAQJ,GAAI,EAAE,GAEtBS,EAAKX,CAAI,MAAM,SACbW,EAAAX,CAAI,KAAKW,EAAKX,CAAI,IAAI,IAAI,QAAQ,KAAK,KAAK,GACjDM,KAAQ,MAAMN,IAAO,MAAMW,EAAKX,CAAI;AAAA,EAEtC;AAEO,EAAAM,IAAAA,EAAK,QAAQ,OAAO,GAAG,GACvBA,IAAAA,EAAK,QAAQ,cAAc,IAAI,GACtCA,IAAO,MAAMA,GACNA,IAAAA,EAAK,QAAQ,OAAO,GAAG,GAE1BD,KACCC,KAAQ,QAAYA,IAAA,MACxBE,EAAgB,IAAMF,CAAI,KAE1B,SAAS,OAAOA;AAElB,GAOaE,IAAkB,CAACI,IAAmB,IAAON,MAAuB;AAWhF,EAAIM,IACK,QAAA,aAAa,MAAM,IAAIN,CAAI,IAE3B,QAAA,UAAU,MAAM,IAAIA,CAAI;AAElC;"}
1
+ {"version":3,"file":"route.js","sources":["../../src/core/utils/route.ts"],"sourcesContent":["/**\n * Получить значение хэш параметра страницы\n */\nexport const getHash = function (name: string, locationHash: string = location.hash): string {\n\tconst re = new RegExp('[#?&]' + name + '=([^&]*)');\n\tconst value = locationHash.match(re);\n\tif (!value || value.length != 2) return '';\n\n\tvalue[1] = decodeURIComponent(value[1]);\n\tvalue[1] = value[1].replace(/\\+/g, ' ');\n\n\treturn value[1];\n};\n\n/**\n * Установить значение в хэш параметр страницы\n */\nexport const setHash = function (name: string, value: string | null, replaceState: boolean = true): void {\n\tlet hash = genHash(name, value);\n\tif (hash == '#') hash = '';\n\n\tif (replaceState) {\n\t\thistorySetState(true, hash);\n\t} else {\n\t\tlocation.hash = hash;\n\t}\n};\n\n/**\n * Удалить значение из хэш параметра страницы\n */\nexport const delHash = function (name: string, value: string, replaceState: boolean = true): void {\n\tsetHash(name, null, replaceState);\n};\n\n/**\n * Сгенерировать новое значение для хэш параметра страницы с указанным параметром\n */\nexport const genHash = function (name: string, value: string | null, locationHash: string = location.hash): string {\n\tconst re = new RegExp('&?' + name + '=[^&]*', 'g');\n\n\tlocationHash = locationHash.replace(re, '');\n\n\tif (value !== null) {\n\t\tvalue = (value + '').replace(' ', '%20');\n\t\tlocationHash = locationHash.replace(re, '&' + name + '=' + value);\n\n\t\tif (locationHash.indexOf('&' + name + '=') == -1) locationHash += '&' + name + '=' + value;\n\t}\n\n\tlocationHash = locationHash.replace(/&+/g, '&');\n\tlocationHash = locationHash.replace(/&$/, '');\n\n\tlocationHash = '#' + locationHash;\n\tlocationHash = locationHash.replace(/^#+/, '#');\n\n\t// hash страницы не должен быть пустым, чтобы не перекидывало к верху страницы\n\tlocationHash = locationHash.replace(/^#:-\\)/, '#');\n\tif ((locationHash == '' || locationHash == '#') && location.hash) locationHash = '#:-)';\n\n\treturn locationHash;\n};\n\n/**\n * Установить значения в хэш параметр страницы\n */\nexport const setHashs = function (data: Map<string, string> | object | any, replaceState: boolean): void {\n\tif (data instanceof Map) data = Object.fromEntries(data);\n\n\tif (replaceState === undefined) replaceState = true;\n\tlet hash = location.hash;\n\n\tfor (const name in data) {\n\t\tconst re = new RegExp('&?' + name + '=[^&]*', 'g');\n\t\thash = hash.replace(re, '');\n\n\t\tif (data[name] !== null) {\n\t\t\tdata[name] = (data[name] + '').replace(' ', '%20');\n\t\t\thash += '&' + name + '=' + data[name];\n\t\t}\n\t}\n\n\thash = hash.replace(/&+/g, '&');\n\thash = hash.replace(/^(#)?&|&$/g, '$1');\n\thash = '#' + hash;\n\thash = hash.replace(/^#+/, '#');\n\n\tif (replaceState) {\n\t\tif (hash == '#') hash = '.';\n\t\thistorySetState(true, hash);\n\t} else {\n\t\tlocation.hash = hash;\n\t}\n};\n\n/**\n * Установть позицию в истории вкладки браузера\n * @see history.replaceState\n * @see history.pushState\n */\nexport const historySetState = (replace: boolean = false, hash: string): void => {\n\t// if(requirejs.defined('es6!@/component/vue/app/page') && requirejs.defined('@/component/vue/app/spa') && requirejs('es6!@/component/vue/app/page').default.page.url){\n\t// \trequirejs('@/component/vue/app/spa').historySetState(replace, hash);\n\t// }else{\n\t// \tif(replace){\n\t// \t\thistory.replaceState(null, null, hash);\n\t// \t}else{\n\t// \t\thistory.pushState(null, null, hash);\n\t// \t}\n\t// }\n\n\tif (replace) {\n\t\thistory.replaceState(null, '', hash);\n\t} else {\n\t\thistory.pushState(null, '', hash);\n\t}\n};"],"names":["getHash","name","locationHash","re","value","setHash","replaceState","hash","genHash","historySetState","delHash","setHashs","data","replace"],"mappings":"AAGO,MAAMA,IAAU,SAAUC,GAAcC,IAAuB,SAAS,MAAc;AAC5F,QAAMC,IAAK,IAAI,OAAO,UAAUF,IAAO,UAAU,GAC3CG,IAAQF,EAAa,MAAMC,CAAE;AACnC,SAAI,CAACC,KAASA,EAAM,UAAU,IAAU,MAExCA,EAAM,CAAC,IAAI,mBAAmBA,EAAM,CAAC,CAAC,GACtCA,EAAM,CAAC,IAAIA,EAAM,CAAC,EAAE,QAAQ,OAAO,GAAG,GAE/BA,EAAM,CAAC;AACf,GAKaC,IAAU,SAAUJ,GAAcG,GAAsBE,IAAwB,IAAY;AACpG,MAAAC,IAAOC,EAAQP,GAAMG,CAAK;AAC1B,EAAAG,KAAQ,QAAYA,IAAA,KAEpBD,IACHG,EAAgB,IAAMF,CAAI,IAE1B,SAAS,OAAOA;AAElB,GAKaG,IAAU,SAAUT,GAAcG,GAAeE,IAAwB,IAAY;AACzF,EAAAD,EAAAJ,GAAM,MAAMK,CAAY;AACjC,GAKaE,IAAU,SAAUP,GAAcG,GAAsBF,IAAuB,SAAS,MAAc;AAClH,QAAMC,IAAK,IAAI,OAAO,OAAOF,IAAO,UAAU,GAAG;AAElC,SAAAC,IAAAA,EAAa,QAAQC,GAAI,EAAE,GAEtCC,MAAU,SACbA,KAASA,IAAQ,IAAI,QAAQ,KAAK,KAAK,GACvCF,IAAeA,EAAa,QAAQC,GAAI,MAAMF,IAAO,MAAMG,CAAK,GAE5DF,EAAa,QAAQ,MAAMD,IAAO,GAAG,KAAK,OAAIC,KAAgB,MAAMD,IAAO,MAAMG,KAGvEF,IAAAA,EAAa,QAAQ,OAAO,GAAG,GAC/BA,IAAAA,EAAa,QAAQ,MAAM,EAAE,GAE5CA,IAAe,MAAMA,GACNA,IAAAA,EAAa,QAAQ,OAAO,GAAG,GAG/BA,IAAAA,EAAa,QAAQ,UAAU,GAAG,IAC5CA,KAAgB,MAAMA,KAAgB,QAAQ,SAAS,SAAqBA,IAAA,SAE1EA;AACR,GAKaS,IAAW,SAAUC,GAA0CN,GAA6B;AACxG,EAAIM,aAAgB,QAAYA,IAAA,OAAO,YAAYA,CAAI,IAEnDN,MAAiB,WAA0BA,IAAA;AAC/C,MAAIC,IAAO,SAAS;AAEpB,aAAWN,KAAQW,GAAM;AACxB,UAAMT,IAAK,IAAI,OAAO,OAAOF,IAAO,UAAU,GAAG;AAC1C,IAAAM,IAAAA,EAAK,QAAQJ,GAAI,EAAE,GAEtBS,EAAKX,CAAI,MAAM,SACbW,EAAAX,CAAI,KAAKW,EAAKX,CAAI,IAAI,IAAI,QAAQ,KAAK,KAAK,GACjDM,KAAQ,MAAMN,IAAO,MAAMW,EAAKX,CAAI;AAAA,EAEtC;AAEO,EAAAM,IAAAA,EAAK,QAAQ,OAAO,GAAG,GACvBA,IAAAA,EAAK,QAAQ,cAAc,IAAI,GACtCA,IAAO,MAAMA,GACNA,IAAAA,EAAK,QAAQ,OAAO,GAAG,GAE1BD,KACCC,KAAQ,QAAYA,IAAA,MACxBE,EAAgB,IAAMF,CAAI,KAE1B,SAAS,OAAOA;AAElB,GAOaE,IAAkB,CAACI,IAAmB,IAAON,MAAuB;AAWhF,EAAIM,IACK,QAAA,aAAa,MAAM,IAAIN,CAAI,IAE3B,QAAA,UAAU,MAAM,IAAIA,CAAI;AAElC;"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-B2NcBl7S.amd","./dom.amd"],function(d,o,c,i){"use strict";if(typeof r>"u")var r=window.Vue;const l=t=>{if(!t||!t.parentElement)return;if(c._window.dialogs){const s=t.closest(".ui-dialog");s!=null&&s.getBoundingClientRect()&&(s==null?void 0:s.getBoundingClientRect().bottom)>document.documentElement.clientHeight&&setTimeout(c._window.dialogs.onWindowResize)}const e=t.scrollHeight>t.offsetHeight;if(e?(t.parentElement.classList.add("has_scroll_container"),t.classList.add("has_scroll")):(t.parentElement.classList.remove("has_scroll_container"),t.classList.remove("has_scroll")),e){const s=i.default.offset(t).top-i.default.offset(t.parentElement).top;t.style.setProperty("--scroll-offset-top",s+"px");const n=t.offsetHeight;t.style.setProperty("--scroll-height",n+"px"),t.scrollTop>0?t.classList.add("has_scroll-started"):t.classList.remove("has_scroll-started"),t.scrollTop>=t.scrollHeight-t.offsetHeight?t.classList.add("has_scroll-finished"):t.classList.remove("has_scroll-finished")}},a=()=>{const t=document.documentElement.clientHeight,e=document.documentElement.scrollHeight,s=window.scrollY;if(e&&s&&t){const n=e-t;return Math.floor(s/n*100)}};o.amountScrolled=a,o.genHasScroll=l,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-Dixfp052.amd","./dom.amd"],function(d,o,c,i){"use strict";if(typeof r>"u")var r=window.Vue;const l=t=>{if(!t||!t.parentElement)return;if(c._window.dialogs){const s=t.closest(".ui-dialog");s!=null&&s.getBoundingClientRect()&&(s==null?void 0:s.getBoundingClientRect().bottom)>document.documentElement.clientHeight&&setTimeout(c._window.dialogs.onWindowResize)}const e=t.scrollHeight>t.offsetHeight;if(e?(t.parentElement.classList.add("has_scroll_container"),t.classList.add("has_scroll")):(t.parentElement.classList.remove("has_scroll_container"),t.classList.remove("has_scroll")),e){const s=i.default.offset(t).top-i.default.offset(t.parentElement).top;t.style.setProperty("--scroll-offset-top",s+"px");const n=t.offsetHeight;t.style.setProperty("--scroll-height",n+"px"),t.scrollTop>0?t.classList.add("has_scroll-started"):t.classList.remove("has_scroll-started"),t.scrollTop>=t.scrollHeight-t.offsetHeight?t.classList.add("has_scroll-finished"):t.classList.remove("has_scroll-finished")}},a=()=>{const t=document.documentElement.clientHeight,e=document.documentElement.scrollHeight,s=window.scrollY;if(e&&s&&t){const n=e-t;return Math.floor(s/n*100)}};o.amountScrolled=a,o.genHasScroll=l,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=scroll.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.amd.js","sources":["../../src/core/utils/scroll.ts"],"sourcesContent":["import { _window } from '@/core/utils/window';\r\nimport UtilsDOM from '@/core/utils/dom';\r\n\r\n/**\r\n * Добавление модификатора тени при скролле\r\n */\r\nexport const genHasScroll = (el: HTMLElement): void => {\r\n\tif (!el) return;\r\n\tif (!el.parentElement) return;\r\n\r\n\t// _window.dialogs - worker диалоговых окон\r\n\tif (_window.dialogs) {\r\n\t\tconst elDialog = el.closest('.ui-dialog');\r\n\t\tif (elDialog?.getBoundingClientRect() && elDialog?.getBoundingClientRect().bottom > document.documentElement.clientHeight) {\r\n\t\t\tsetTimeout(_window.dialogs.onWindowResize);\r\n\t\t}\r\n\t}\r\n\r\n\tconst hasScroll = (el.scrollHeight > el.offsetHeight);\r\n\tif (hasScroll) {\r\n\t\tel.parentElement.classList.add('has_scroll_container');\r\n\t\tel.classList.add('has_scroll');\r\n\t} else {\r\n\t\tel.parentElement.classList.remove('has_scroll_container');\r\n\t\tel.classList.remove('has_scroll');\r\n\t}\r\n\r\n\tif (hasScroll) {\r\n\t\tconst top: number = UtilsDOM.offset(el).top - UtilsDOM.offset(el.parentElement).top;\r\n\t\tel.style.setProperty('--scroll-offset-top', top + 'px');\r\n\r\n\t\tconst height = el.offsetHeight;\r\n\t\tel.style.setProperty('--scroll-height', height + 'px');\r\n\r\n\t\tif (el.scrollTop > 0) {\r\n\t\t\tel.classList.add('has_scroll-started');\r\n\t\t} else {\r\n\t\t\tel.classList.remove('has_scroll-started');\r\n\t\t}\r\n\r\n\t\tif (el.scrollTop >= el.scrollHeight - el.offsetHeight) {\r\n\t\t\tel.classList.add('has_scroll-finished');\r\n\t\t} else {\r\n\t\t\tel.classList.remove('has_scroll-finished');\r\n\t\t}\r\n\t}\r\n};\r\n\r\n/**\r\n * Посчитать глубину скролла (процент на сколько проскроллена страница)\r\n */\r\nexport const amountScrolled = (): number | undefined => {\r\n\tconst winHeight = document.documentElement.clientHeight;\r\n\tconst docHeight = document.documentElement.scrollHeight;\r\n\tconst scrollTop = window.scrollY;\r\n\r\n\tif (docHeight && scrollTop && winHeight) {\r\n\t\tconst trackLength = docHeight - winHeight;\r\n\r\n\t\treturn Math.floor(scrollTop / trackLength * 100);\r\n\t}\r\n};"],"names":["genHasScroll","el","forms","elDialog","top","height","amountScrolled","scrollTop","docHeight","winHeight","trackLength"],"mappings":"yIAMa,MAAAA,EAAAC,GAAA,CAEZ,GADA,CAAAA,GACA,CAAAA,EAAA,cAAA,OAGA,GAAAC,EAAA,QAAA,QAAA,iCAECC,GAAA,MAAAA,EAAA,0BAAAA,GAAA,YAAAA,EAAA,wBAAA,QAAA,SAAA,gBAAA,iWAgBAF,EAAA,MAAA,YAAA,sBAAAG,EAAA,IAAA,EAEA,MAAAC,EAAAJ,EAAA,aACAA,EAAA,MAAA,YAAA,kBAAAI,EAAA,IAAA,EAEAJ,EAAA,UAAA,iFAMAA,EAAA,WAAAA,EAAA,aAAAA,EAAA,gGAWKK,EAAA,IAAA,uFAGNC,EAAA,OAAA,QAEA,GAAAC,GAAAD,GAAAE,EAAA,CACC,MAAAC,EAAAF,EAAAC,6BAIF"}
1
+ {"version":3,"file":"scroll.amd.js","sources":["../../src/core/utils/scroll.ts"],"sourcesContent":["import { _window } from '@/core/utils/window';\nimport UtilsDOM from '@/core/utils/dom';\n\n/**\n * Добавление модификатора тени при скролле\n */\nexport const genHasScroll = (el: HTMLElement): void => {\n\tif (!el) return;\n\tif (!el.parentElement) return;\n\n\t// _window.dialogs - worker диалоговых окон\n\tif (_window.dialogs) {\n\t\tconst elDialog = el.closest('.ui-dialog');\n\t\tif (elDialog?.getBoundingClientRect() && elDialog?.getBoundingClientRect().bottom > document.documentElement.clientHeight) {\n\t\t\tsetTimeout(_window.dialogs.onWindowResize);\n\t\t}\n\t}\n\n\tconst hasScroll = (el.scrollHeight > el.offsetHeight);\n\tif (hasScroll) {\n\t\tel.parentElement.classList.add('has_scroll_container');\n\t\tel.classList.add('has_scroll');\n\t} else {\n\t\tel.parentElement.classList.remove('has_scroll_container');\n\t\tel.classList.remove('has_scroll');\n\t}\n\n\tif (hasScroll) {\n\t\tconst top: number = UtilsDOM.offset(el).top - UtilsDOM.offset(el.parentElement).top;\n\t\tel.style.setProperty('--scroll-offset-top', top + 'px');\n\n\t\tconst height = el.offsetHeight;\n\t\tel.style.setProperty('--scroll-height', height + 'px');\n\n\t\tif (el.scrollTop > 0) {\n\t\t\tel.classList.add('has_scroll-started');\n\t\t} else {\n\t\t\tel.classList.remove('has_scroll-started');\n\t\t}\n\n\t\tif (el.scrollTop >= el.scrollHeight - el.offsetHeight) {\n\t\t\tel.classList.add('has_scroll-finished');\n\t\t} else {\n\t\t\tel.classList.remove('has_scroll-finished');\n\t\t}\n\t}\n};\n\n/**\n * Посчитать глубину скролла (процент на сколько проскроллена страница)\n */\nexport const amountScrolled = (): number | undefined => {\n\tconst winHeight = document.documentElement.clientHeight;\n\tconst docHeight = document.documentElement.scrollHeight;\n\tconst scrollTop = window.scrollY;\n\n\tif (docHeight && scrollTop && winHeight) {\n\t\tconst trackLength = docHeight - winHeight;\n\n\t\treturn Math.floor(scrollTop / trackLength * 100);\n\t}\n};"],"names":["genHasScroll","el","forms","elDialog","top","height","amountScrolled","scrollTop","docHeight","winHeight","trackLength"],"mappings":"yIAMa,MAAAA,EAAAC,GAAA,CAEZ,GADA,CAAAA,GACA,CAAAA,EAAA,cAAA,OAGA,GAAAC,EAAA,QAAA,QAAA,iCAECC,GAAA,MAAAA,EAAA,0BAAAA,GAAA,YAAAA,EAAA,wBAAA,QAAA,SAAA,gBAAA,iWAgBAF,EAAA,MAAA,YAAA,sBAAAG,EAAA,IAAA,EAEA,MAAAC,EAAAJ,EAAA,aACAA,EAAA,MAAA,YAAA,kBAAAI,EAAA,IAAA,EAEAJ,EAAA,UAAA,iFAMAA,EAAA,WAAAA,EAAA,aAAAA,EAAA,gGAWKK,EAAA,IAAA,uFAGNC,EAAA,OAAA,QAEA,GAAAC,GAAAD,GAAAE,EAAA,CACC,MAAAC,EAAAF,EAAAC,6BAIF"}
package/utils/scroll.js CHANGED
@@ -1,4 +1,4 @@
1
- import { _ as c } from "../.chunks/forms-S36M7cBH.es.js";
1
+ import { _ as c } from "../.chunks/forms-o7UeMJFf.es.js";
2
2
  import n from "./dom.js";
3
3
  const l = (t) => {
4
4
  if (!t || !t.parentElement) return;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sources":["../../src/core/utils/scroll.ts"],"sourcesContent":["import { _window } from '@/core/utils/window';\r\nimport UtilsDOM from '@/core/utils/dom';\r\n\r\n/**\r\n * Добавление модификатора тени при скролле\r\n */\r\nexport const genHasScroll = (el: HTMLElement): void => {\r\n\tif (!el) return;\r\n\tif (!el.parentElement) return;\r\n\r\n\t// _window.dialogs - worker диалоговых окон\r\n\tif (_window.dialogs) {\r\n\t\tconst elDialog = el.closest('.ui-dialog');\r\n\t\tif (elDialog?.getBoundingClientRect() && elDialog?.getBoundingClientRect().bottom > document.documentElement.clientHeight) {\r\n\t\t\tsetTimeout(_window.dialogs.onWindowResize);\r\n\t\t}\r\n\t}\r\n\r\n\tconst hasScroll = (el.scrollHeight > el.offsetHeight);\r\n\tif (hasScroll) {\r\n\t\tel.parentElement.classList.add('has_scroll_container');\r\n\t\tel.classList.add('has_scroll');\r\n\t} else {\r\n\t\tel.parentElement.classList.remove('has_scroll_container');\r\n\t\tel.classList.remove('has_scroll');\r\n\t}\r\n\r\n\tif (hasScroll) {\r\n\t\tconst top: number = UtilsDOM.offset(el).top - UtilsDOM.offset(el.parentElement).top;\r\n\t\tel.style.setProperty('--scroll-offset-top', top + 'px');\r\n\r\n\t\tconst height = el.offsetHeight;\r\n\t\tel.style.setProperty('--scroll-height', height + 'px');\r\n\r\n\t\tif (el.scrollTop > 0) {\r\n\t\t\tel.classList.add('has_scroll-started');\r\n\t\t} else {\r\n\t\t\tel.classList.remove('has_scroll-started');\r\n\t\t}\r\n\r\n\t\tif (el.scrollTop >= el.scrollHeight - el.offsetHeight) {\r\n\t\t\tel.classList.add('has_scroll-finished');\r\n\t\t} else {\r\n\t\t\tel.classList.remove('has_scroll-finished');\r\n\t\t}\r\n\t}\r\n};\r\n\r\n/**\r\n * Посчитать глубину скролла (процент на сколько проскроллена страница)\r\n */\r\nexport const amountScrolled = (): number | undefined => {\r\n\tconst winHeight = document.documentElement.clientHeight;\r\n\tconst docHeight = document.documentElement.scrollHeight;\r\n\tconst scrollTop = window.scrollY;\r\n\r\n\tif (docHeight && scrollTop && winHeight) {\r\n\t\tconst trackLength = docHeight - winHeight;\r\n\r\n\t\treturn Math.floor(scrollTop / trackLength * 100);\r\n\t}\r\n};"],"names":["genHasScroll","el","_window","elDialog","hasScroll","top","UtilsDOM","height","amountScrolled","winHeight","docHeight","scrollTop","trackLength"],"mappings":";;AAMa,MAAAA,IAAe,CAACC,MAA0B;AAElD,MADA,CAACA,KACD,CAACA,EAAG,cAAe;AAGvB,MAAIC,EAAQ,SAAS;AACd,UAAAC,IAAWF,EAAG,QAAQ,YAAY;AACpC,IAAAE,KAAA,QAAAA,EAAU,4BAA2BA,KAAA,gBAAAA,EAAU,wBAAwB,UAAS,SAAS,gBAAgB,gBACjG,WAAAD,EAAQ,QAAQ,cAAc;AAAA,EAE3C;AAEM,QAAAE,IAAaH,EAAG,eAAeA,EAAG;AASxC,MARIG,KACAH,EAAA,cAAc,UAAU,IAAI,sBAAsB,GAClDA,EAAA,UAAU,IAAI,YAAY,MAE1BA,EAAA,cAAc,UAAU,OAAO,sBAAsB,GACrDA,EAAA,UAAU,OAAO,YAAY,IAG7BG,GAAW;AACR,UAAAC,IAAcC,EAAS,OAAOL,CAAE,EAAE,MAAMK,EAAS,OAAOL,EAAG,aAAa,EAAE;AAChF,IAAAA,EAAG,MAAM,YAAY,uBAAuBI,IAAM,IAAI;AAEtD,UAAME,IAASN,EAAG;AAClB,IAAAA,EAAG,MAAM,YAAY,mBAAmBM,IAAS,IAAI,GAEjDN,EAAG,YAAY,IACfA,EAAA,UAAU,IAAI,oBAAoB,IAElCA,EAAA,UAAU,OAAO,oBAAoB,GAGrCA,EAAG,aAAaA,EAAG,eAAeA,EAAG,eACrCA,EAAA,UAAU,IAAI,qBAAqB,IAEnCA,EAAA,UAAU,OAAO,qBAAqB;AAAA,EAE3C;AACD,GAKaO,IAAiB,MAA0B;AACjD,QAAAC,IAAY,SAAS,gBAAgB,cACrCC,IAAY,SAAS,gBAAgB,cACrCC,IAAY,OAAO;AAErB,MAAAD,KAAaC,KAAaF,GAAW;AACxC,UAAMG,IAAcF,IAAYD;AAEhC,WAAO,KAAK,MAAME,IAAYC,IAAc,GAAG;AAAA,EAChD;AACD;"}
1
+ {"version":3,"file":"scroll.js","sources":["../../src/core/utils/scroll.ts"],"sourcesContent":["import { _window } from '@/core/utils/window';\nimport UtilsDOM from '@/core/utils/dom';\n\n/**\n * Добавление модификатора тени при скролле\n */\nexport const genHasScroll = (el: HTMLElement): void => {\n\tif (!el) return;\n\tif (!el.parentElement) return;\n\n\t// _window.dialogs - worker диалоговых окон\n\tif (_window.dialogs) {\n\t\tconst elDialog = el.closest('.ui-dialog');\n\t\tif (elDialog?.getBoundingClientRect() && elDialog?.getBoundingClientRect().bottom > document.documentElement.clientHeight) {\n\t\t\tsetTimeout(_window.dialogs.onWindowResize);\n\t\t}\n\t}\n\n\tconst hasScroll = (el.scrollHeight > el.offsetHeight);\n\tif (hasScroll) {\n\t\tel.parentElement.classList.add('has_scroll_container');\n\t\tel.classList.add('has_scroll');\n\t} else {\n\t\tel.parentElement.classList.remove('has_scroll_container');\n\t\tel.classList.remove('has_scroll');\n\t}\n\n\tif (hasScroll) {\n\t\tconst top: number = UtilsDOM.offset(el).top - UtilsDOM.offset(el.parentElement).top;\n\t\tel.style.setProperty('--scroll-offset-top', top + 'px');\n\n\t\tconst height = el.offsetHeight;\n\t\tel.style.setProperty('--scroll-height', height + 'px');\n\n\t\tif (el.scrollTop > 0) {\n\t\t\tel.classList.add('has_scroll-started');\n\t\t} else {\n\t\t\tel.classList.remove('has_scroll-started');\n\t\t}\n\n\t\tif (el.scrollTop >= el.scrollHeight - el.offsetHeight) {\n\t\t\tel.classList.add('has_scroll-finished');\n\t\t} else {\n\t\t\tel.classList.remove('has_scroll-finished');\n\t\t}\n\t}\n};\n\n/**\n * Посчитать глубину скролла (процент на сколько проскроллена страница)\n */\nexport const amountScrolled = (): number | undefined => {\n\tconst winHeight = document.documentElement.clientHeight;\n\tconst docHeight = document.documentElement.scrollHeight;\n\tconst scrollTop = window.scrollY;\n\n\tif (docHeight && scrollTop && winHeight) {\n\t\tconst trackLength = docHeight - winHeight;\n\n\t\treturn Math.floor(scrollTop / trackLength * 100);\n\t}\n};"],"names":["genHasScroll","el","_window","elDialog","hasScroll","top","UtilsDOM","height","amountScrolled","winHeight","docHeight","scrollTop","trackLength"],"mappings":";;AAMa,MAAAA,IAAe,CAACC,MAA0B;AAElD,MADA,CAACA,KACD,CAACA,EAAG,cAAe;AAGvB,MAAIC,EAAQ,SAAS;AACd,UAAAC,IAAWF,EAAG,QAAQ,YAAY;AACpC,IAAAE,KAAA,QAAAA,EAAU,4BAA2BA,KAAA,gBAAAA,EAAU,wBAAwB,UAAS,SAAS,gBAAgB,gBACjG,WAAAD,EAAQ,QAAQ,cAAc;AAAA,EAE3C;AAEM,QAAAE,IAAaH,EAAG,eAAeA,EAAG;AASxC,MARIG,KACAH,EAAA,cAAc,UAAU,IAAI,sBAAsB,GAClDA,EAAA,UAAU,IAAI,YAAY,MAE1BA,EAAA,cAAc,UAAU,OAAO,sBAAsB,GACrDA,EAAA,UAAU,OAAO,YAAY,IAG7BG,GAAW;AACR,UAAAC,IAAcC,EAAS,OAAOL,CAAE,EAAE,MAAMK,EAAS,OAAOL,EAAG,aAAa,EAAE;AAChF,IAAAA,EAAG,MAAM,YAAY,uBAAuBI,IAAM,IAAI;AAEtD,UAAME,IAASN,EAAG;AAClB,IAAAA,EAAG,MAAM,YAAY,mBAAmBM,IAAS,IAAI,GAEjDN,EAAG,YAAY,IACfA,EAAA,UAAU,IAAI,oBAAoB,IAElCA,EAAA,UAAU,OAAO,oBAAoB,GAGrCA,EAAG,aAAaA,EAAG,eAAeA,EAAG,eACrCA,EAAA,UAAU,IAAI,qBAAqB,IAEnCA,EAAA,UAAU,OAAO,qBAAqB;AAAA,EAE3C;AACD,GAKaO,IAAiB,MAA0B;AACjD,QAAAC,IAAY,SAAS,gBAAgB,cACrCC,IAAY,SAAS,gBAAgB,cACrCC,IAAY,OAAO;AAErB,MAAAD,KAAaC,KAAaF,GAAW;AACxC,UAAMG,IAAcF,IAAYD;AAEhC,WAAO,KAAK,MAAME,IAAYC,IAAc,GAAG;AAAA,EAChD;AACD;"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","./check.amd"],function(j,r,i){"use strict";var p;if(typeof h>"u")var h=window.Vue;const u=((p=window.mo)==null?void 0:p.user)??{},f=e=>{e+="";let l=0;if(!e.length)return l;for(let a=0;a<e.length;a++){const c=e.charCodeAt(a);l=(l<<5)-l+c,l=l&l}return l<0&&(l*=-1),l},s=e=>/^\w+:\/\/([\w-]+\.)+[\w-]+(:\d+)?(\/|$)/.test(e),d=e=>{e+="",e=e.replace("-","–");let l=e.split("."),a=l[0],c=l.length>1?"."+l[1]:"";if(a.replace(/[+–]/,"").length<=4)return e;const o=/(\d+)(\d{3})/;for(;o.test(a);)a=a.replace(o,"$1 $2");return a+c},g=e=>e===void 0?"":e.replace(/\r\n|\r|\n/g,"<br>"),w=(e,l=2,a=1e3,c="")=>{const o=Math.pow(10,l);let n=String(e);return Math.abs(e)>Math.pow(a,3)?n=Math.round(e/Math.pow(a,3)*o)/o+" <small>G"+c+"</small>":Math.abs(e)>Math.pow(a,2)?n=Math.round(e/Math.pow(a,2)*o)/o+" <small>M"+c+"</small>":Math.abs(e)>a&&(n=Math.round(e/a*o)/o+" <small>K"+c+"</small>"),n=n.replace(/^(-?\d+)(\d{3})/,"$1 $2"),n},m=(e,l,a=1)=>{if(e==null)return"";if(e+="",l==null||e.length<=l)return e;if(a===0)e=e.substr(e.length-l,l),e="..."+e;else if(a===1){const c=e.substr(0,l/2),o=e.substr(e.length-l/2,Math.ceil(l/2));e=c+"..."+o}else a===2&&(e=e.substr(0,l),e=e+"...");return e},b=(e,l,a,c)=>{if(u.lang==="en")return e===1?a:l;const o=e%100,n=e%10;return o>=5&&o<=20||n===0?l:n===1?a:n>=2&&n<=4?c:n>=5&&n<=9?l:c},C=e=>{if(u.lang!="ru"||e=="")return e;const l=e.split(" ");return $.map(l,function(a,c){a=a+"а",a=a.replace("оа","о"),a=a.replace("аяа","ой"),a=a.replace("шийа","шого"),a=a.replace("ыйа","ого"),a=a.replace("йа","я"),a=a.replace("ьа","я"),a=a.replace("яа","и"),a=a.replace("оваа","овой"),a=a.replace("аа","ы"),a=a.replace("кия","кого"),a=a.replace("каи","кой"),l[c]=a}),e=l.join(" "),e},M=e=>{const l={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"j",з:"z",и:"i",й:"i",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"h",ц:"c",ч:"ch",ш:"sh",щ:"shch",ъ:"",ы:"y",ь:"",э:"e",ю:"u",я:"ya"},a=e.split(" ");return $.map(a,function(c,o){const n=[];for(let t=0;t<c.length;++t)n.push(l[c[t]]||l[c[t].toLowerCase()]==null&&c[t]||l[c[t].toLowerCase()].replace(/^(.)/,function(R){return R.toUpperCase()}));a[o]=n.join("")}),e=a.join(" "),e},k=e=>(typeof e=="string"&&(e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")),e),y=(e,l)=>{let a=null;switch(l.operator){case"CONTAINS":case"REGEXP":try{let c=l.values[0];l.operator!="REGEXP"&&(c=c.replace(/([()\[\]])/g,"\\$1")),a=new RegExp("("+c+")","gi")}catch{return e}break}return e=e.replace(a,'<b class="found">$1</b>'),e},E=e=>{var l;return(l=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:l.map(a=>a.toLowerCase()).join("_")},v=e=>`/controller/file/?src=${"/cloud/common/flags/"+e.toUpperCase()+".svg"}`,A=e=>{const l=i.getDomainRegexp(),a="(([\\/?\\w&=%+#;:-]*(\\.\\w+)?))*",c=new RegExp(`(^|[\\s>(),])([a-z0-9а-яё_.]+@${l}${a})`,"gui");e=e.replace(c,'$1<a href="mailto:$2" target="_blank" rel="noopener">↑[$2]↓</a>');const o=new RegExp(`(^|[\\s>(),])(https?://)?(${l}${a})`,"gui");return e=e.replace(o,'$1<a href="√$2$3" target="_blank" rel="nofollow noopener">$2$3</a>'),e=e.replaceAll("√http","http"),e=e.replaceAll("√","http://"),e=e.replaceAll(/(↑\[|]↓)/g,""),e},L=e=>e.charAt(0).toUpperCase()+e.slice(1);r.addCommasWhite=d,r.addLinkTags=A,r.camelToSnakeCase=E,r.ellipsis=m,r.genFlagLinkByCountryCode=v,r.genIntHash=f,r.highlightHtml=y,r.htmlspecialchars=k,r.isUrl=s,r.nl2br=g,r.numberEnding=b,r.numberWithWord=w,r.rusToLatin=M,r.toCapitalize=L,r.toRoditPadej=C,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-Dixfp052.amd"],function(e,i,a){"use strict";if(typeof n>"u")var n=window.Vue;i.addCommasWhite=a.addCommasWhite,i.addLinkTags=a.addLinkTags,i.camelToSnakeCase=a.camelToSnakeCase,i.ellipsis=a.ellipsis,i.genFlagLinkByCountryCode=a.genFlagLinkByCountryCode,i.genIntHash=a.genIntHash,i.getRandomHash=a.getRandomHash,i.highlightHtml=a.highlightHtml,i.htmlspecialchars=a.htmlspecialchars,i.isUrl=a.isUrl,i.nl2br=a.nl2br,i.numberEnding=a.numberEnding,i.numberWithWord=a.numberWithWord,i.rusToLatin=a.rusToLatin,i.toCapitalize=a.toCapitalize,i.toRoditPadej=a.toRoditPadej,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=string.amd.js.map