@topvisor/ui 1.0.13-fix-dialog-scroll → 1.0.14
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.
- package/.chunks/{datepicker-BLuImSNi.amd.js → datepicker-DW_EVh8-.amd.js} +2 -2
- package/.chunks/{datepicker-BLuImSNi.amd.js.map → datepicker-DW_EVh8-.amd.js.map} +1 -1
- package/.chunks/{datepicker-B8syh3Uk.es.js → datepicker-Ri3BN3-Y.es.js} +2 -2
- package/.chunks/{datepicker-B8syh3Uk.es.js.map → datepicker-Ri3BN3-Y.es.js.map} +1 -1
- package/.chunks/{forms-C4-jc5q2.es.js → forms-CHyoeELv.es.js} +21 -21
- package/.chunks/{forms-C4-jc5q2.es.js.map → forms-CHyoeELv.es.js.map} +1 -1
- package/.chunks/{forms-CiwhEtPE.amd.js → forms-CORLOoYZ.amd.js} +3 -3
- package/.chunks/{forms-CiwhEtPE.amd.js.map → forms-CORLOoYZ.amd.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-sNbmDi34.amd.js → listItem.vue_vue_type_script_setup_true_lang-BZar2z_p.amd.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-sNbmDi34.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-BZar2z_p.amd.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-CtqSJHeU.es.js → listItem.vue_vue_type_script_setup_true_lang-Dvz76-gx.es.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-CtqSJHeU.es.js.map → listItem.vue_vue_type_script_setup_true_lang-Dvz76-gx.es.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-jctlBjKS.amd.js → menu.vue_vue_type_style_index_0_lang-Chd1ygyG.amd.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-jctlBjKS.amd.js.map → menu.vue_vue_type_style_index_0_lang-Chd1ygyG.amd.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-BCFxRsJ_.es.js → menu.vue_vue_type_style_index_0_lang-Rex3a5_T.es.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-BCFxRsJ_.es.js.map → menu.vue_vue_type_style_index_0_lang-Rex3a5_T.es.js.map} +1 -1
- package/.chunks/notice-Bh-LvHpR.es.js +175 -0
- package/.chunks/notice-Bh-LvHpR.es.js.map +1 -0
- package/.chunks/notice-BnvlWLlj.amd.js +4 -0
- package/.chunks/notice-BnvlWLlj.amd.js.map +1 -0
- package/.chunks/{popup-DEG8x2yE.es.js → popup-0nFCdjiM.es.js} +3 -3
- package/.chunks/popup-0nFCdjiM.es.js.map +1 -0
- package/.chunks/{popup-D6LvyJ7M.amd.js → popup-B285SUGc.amd.js} +2 -2
- package/.chunks/popup-B285SUGc.amd.js.map +1 -0
- package/.chunks/{utils-BiyYJ_AB.es.js → utils-B3neE-vU.es.js} +52 -44
- package/.chunks/utils-B3neE-vU.es.js.map +1 -0
- package/.chunks/{utils-B3ycYRqM.amd.js → utils-COOeS9rk.amd.js} +2 -2
- package/.chunks/utils-COOeS9rk.amd.js.map +1 -0
- package/.chunks/utils-k0wIxxij.amd.js +2 -0
- package/.chunks/utils-k0wIxxij.amd.js.map +1 -0
- package/.chunks/{utils-DdsRxaK5.es.js → utils-tB3V9IWe.es.js} +59 -54
- package/.chunks/utils-tB3V9IWe.es.js.map +1 -0
- package/assets/core.css +1 -1
- package/assets/layout.css +1 -0
- package/charts/charts.amd.js +1 -1
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.js +47 -42
- package/charts/charts.js.map +1 -1
- package/components/charts/miniChart/miniChart.d.ts +5 -0
- package/components/core/notice/item/item.vue.d.ts +3 -1
- package/components/core/notice/item/types.d.ts +4 -0
- package/components/core/notice/utils.d.ts +1 -0
- package/components/dialog/dialog/composables/{asyncDialogWorker.d.ts → asyncDialogHandle.d.ts} +1 -1
- package/components/dialog/dialog/composables/utils.d.ts +2 -2
- package/components/dialog/dialog/dialogs/dialogs.vue.d.ts +1 -1
- package/components/dialog/lib/types.d.ts +6 -1
- package/components/dialog/lib/worker.d.ts +5 -0
- package/components/layout/islandRows/islandRows.vue.d.ts +16 -0
- package/components/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +17 -0
- package/components/layout/islandRows/islandRowsRow/types.d.ts +2 -0
- package/components/layout/islandRows/types.d.ts +10 -0
- package/components/layout/layout.d.ts +7 -0
- package/components/layout/rows/rows.vue.d.ts +20 -0
- package/components/layout/rows/types.d.ts +6 -0
- package/components/project/project.d.ts +1 -0
- package/core/app.amd.js +1 -1
- package/core/app.amd.js.map +1 -1
- package/core/app.js +14 -15
- package/core/app.js.map +1 -1
- package/core/utils/check.d.ts +1 -1
- package/dialog/dialog.amd.js +1 -1
- package/dialog/dialog.js +2 -2
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +1 -1
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.js +54 -54
- package/icomoon/Topvisor icons.json +1421 -1193
- package/icomoon/demo-files/demo.css +0 -3
- package/icomoon/demo.html +578 -511
- package/icomoon/fonts/Topvisor-2.eot +0 -0
- package/icomoon/fonts/Topvisor-2.svg +8 -3
- package/icomoon/fonts/Topvisor-2.ttf +0 -0
- package/icomoon/fonts/Topvisor-2.woff +0 -0
- package/icomoon/selection.json +1 -1
- package/icomoon/style.css +259 -243
- package/layout/layout.amd.js +2 -0
- package/layout/layout.amd.js.map +1 -0
- package/layout/layout.d.ts +2 -0
- package/layout/layout.js +54 -0
- package/layout/layout.js.map +1 -0
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.js +2 -2
- package/popup/worker.amd.js +1 -1
- package/popup/worker.js +2 -2
- package/project/project.amd.js +1 -1
- package/project/project.amd.js.map +1 -1
- package/project/project.js +482 -469
- package/project/project.js.map +1 -1
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.js +16 -16
- package/utils/check.amd.js +1 -1
- package/utils/check.amd.js.map +1 -1
- package/utils/check.js +12 -12
- package/utils/check.js.map +1 -1
- package/utils/date.amd.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/lodash.amd.js +1 -1
- package/utils/lodash.js +5 -5
- package/utils/price.amd.js +1 -1
- package/utils/price.js +1 -1
- package/utils/string.amd.js +1 -1
- package/utils/string.js +1 -1
- package/.chunks/notice-Dgu-SIPq.es.js +0 -172
- package/.chunks/notice-Dgu-SIPq.es.js.map +0 -1
- package/.chunks/notice-DkCLhqSq.amd.js +0 -4
- package/.chunks/notice-DkCLhqSq.amd.js.map +0 -1
- package/.chunks/popup-D6LvyJ7M.amd.js.map +0 -1
- package/.chunks/popup-DEG8x2yE.es.js.map +0 -1
- package/.chunks/utils-B3ycYRqM.amd.js.map +0 -1
- package/.chunks/utils-BiyYJ_AB.es.js.map +0 -1
- package/.chunks/utils-DdsRxaK5.es.js.map +0 -1
- package/.chunks/utils-DpejCylJ.amd.js +0 -2
- package/.chunks/utils-DpejCylJ.amd.js.map +0 -1
- /package/components/dialog/dialog/composables/{dialogWorker.d.ts → dialogHandle.d.ts} +0 -0
package/tabsView/tabsView.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Core as U } from "../core/app.js";
|
|
2
|
-
import { watch as k, computed as I, ref as f, defineComponent as M, openBlock as l, createBlock as m, resolveDynamicComponent as O, normalizeClass as
|
|
3
|
-
import { C as $,
|
|
2
|
+
import { watch as k, computed as I, ref as f, defineComponent as M, openBlock as l, createBlock as m, resolveDynamicComponent as O, normalizeClass as w, unref as i, withCtx as b, renderSlot as v, createElementBlock as d, createCommentVNode as y, mergeModels as z, useModel as D, useSlots as G, onMounted as Q, onUnmounted as H, createElementVNode as S, toDisplayString as R, Fragment as X, createTextVNode as Y, markRaw as Z, createVNode as x, KeepAlive as ee } from "vue";
|
|
3
|
+
import { C as $, x as te, e as oe } from "../.chunks/forms-CHyoeELv.es.js";
|
|
4
4
|
import { getHash as K, genHash as ae, setHash as se, delHash as ne } from "../utils/route.js";
|
|
5
5
|
import { d as ie, u as re } from "../.chunks/store-CX_6ZXhO.es.js";
|
|
6
6
|
import { TopPopupListItem as A, TopPopup as le } from "../popup/popup.js";
|
|
@@ -71,7 +71,7 @@ const W = Symbol(), de = (t, o) => {
|
|
|
71
71
|
};
|
|
72
72
|
return (n, r) => (l(), m(O(u.value), {
|
|
73
73
|
target: "_self",
|
|
74
|
-
class:
|
|
74
|
+
class: w({
|
|
75
75
|
"top-tabsView_menuItem": !i(e).showMenuInPopup,
|
|
76
76
|
"top-active": n.name && i(e).activeItemName === n.name,
|
|
77
77
|
"top-disabled": n.disabled,
|
|
@@ -85,7 +85,7 @@ const W = Symbol(), de = (t, o) => {
|
|
|
85
85
|
default: b(() => [
|
|
86
86
|
i(e).showMenuInPopup ? v(n.$slots, "default", { key: 0 }) : n.$slots.default && !i(e).isShort ? (l(), d("span", me, [
|
|
87
87
|
v(n.$slots, "default")
|
|
88
|
-
])) :
|
|
88
|
+
])) : y("", !0)
|
|
89
89
|
]),
|
|
90
90
|
_: 3
|
|
91
91
|
}, 8, ["class", "href", "data-top-icon", "disabled"]));
|
|
@@ -167,7 +167,7 @@ const W = Symbol(), de = (t, o) => {
|
|
|
167
167
|
}), (c, s) => (l(), d("div", {
|
|
168
168
|
ref_key: "elRef",
|
|
169
169
|
ref: h,
|
|
170
|
-
class:
|
|
170
|
+
class: w({
|
|
171
171
|
"top-tabsView_menu": !0,
|
|
172
172
|
"top-tabsView_menu-inPopup_0": !i(e).showMenuInPopup,
|
|
173
173
|
"top-tabsView_menu-inPopup_1": i(e).showMenuInPopup,
|
|
@@ -183,7 +183,7 @@ const W = Symbol(), de = (t, o) => {
|
|
|
183
183
|
"data-top-icon": r.value.icon
|
|
184
184
|
}, [
|
|
185
185
|
S("span", he, R(r.value.title), 1)
|
|
186
|
-
], 8, _e)) :
|
|
186
|
+
], 8, _e)) : y("", !0),
|
|
187
187
|
s[1] || (s[1] = S("div", {
|
|
188
188
|
class: "top-tabsView_menuOpenerIcon",
|
|
189
189
|
"data-top-icon": ""
|
|
@@ -208,12 +208,12 @@ const W = Symbol(), de = (t, o) => {
|
|
|
208
208
|
Y(R(i(e).isShort ? "" : "Свернуть"), 1)
|
|
209
209
|
]),
|
|
210
210
|
_: 1
|
|
211
|
-
}, 8, ["icon"])) :
|
|
212
|
-
])) :
|
|
211
|
+
}, 8, ["icon"])) : y("", !0)
|
|
212
|
+
])) : y("", !0)
|
|
213
213
|
], 64))
|
|
214
214
|
], 2));
|
|
215
215
|
}
|
|
216
|
-
}),
|
|
216
|
+
}), ye = /* @__PURE__ */ M({
|
|
217
217
|
__name: "tabsView",
|
|
218
218
|
props: /* @__PURE__ */ z({
|
|
219
219
|
modelValue: {},
|
|
@@ -235,7 +235,7 @@ const W = Symbol(), de = (t, o) => {
|
|
|
235
235
|
return k([p, () => a.component], () => {
|
|
236
236
|
n.value = J(a.component);
|
|
237
237
|
}, { immediate: !0 }), (r, _) => (l(), d("div", {
|
|
238
|
-
class:
|
|
238
|
+
class: w({
|
|
239
239
|
"top-tabsView": !0,
|
|
240
240
|
"top-tabsView-pageMod": o.pageMod,
|
|
241
241
|
"top-tabsView-inPopup": i(a).showMenuInPopup
|
|
@@ -252,13 +252,13 @@ const W = Symbol(), de = (t, o) => {
|
|
|
252
252
|
_: 3
|
|
253
253
|
}, 8, ["isShortable", "isLoading"]),
|
|
254
254
|
S("div", {
|
|
255
|
-
class:
|
|
255
|
+
class: w({
|
|
256
256
|
"top-tabsView_contents": !0,
|
|
257
257
|
"top-tabsView_contents-isLoading": n.value,
|
|
258
258
|
"top-tabsView_contents-noScrollable": !i(a).scrollable
|
|
259
259
|
})
|
|
260
260
|
}, [
|
|
261
|
-
n.value ? (l(), m(te, { key: 0 })) :
|
|
261
|
+
n.value ? (l(), m(te, { key: 0 })) : y("", !0),
|
|
262
262
|
(l(), m(ee, null, [
|
|
263
263
|
(l(), m(O(i(a).component), {
|
|
264
264
|
ref_key: "componentRef",
|
|
@@ -268,11 +268,11 @@ const W = Symbol(), de = (t, o) => {
|
|
|
268
268
|
], 2)
|
|
269
269
|
], 2));
|
|
270
270
|
}
|
|
271
|
-
}),
|
|
271
|
+
}), we = {}, Ie = { class: "top-tabsView_menuDelimeter" };
|
|
272
272
|
function Me(t, o) {
|
|
273
273
|
return l(), d("div", Ie);
|
|
274
274
|
}
|
|
275
|
-
const Ve = /* @__PURE__ */ oe(
|
|
275
|
+
const Ve = /* @__PURE__ */ oe(we, [["render", Me]]), $e = /* @__PURE__ */ M({
|
|
276
276
|
__name: "menuTitle",
|
|
277
277
|
props: {
|
|
278
278
|
isSubtitle: { type: Boolean }
|
|
@@ -289,7 +289,7 @@ const Ve = /* @__PURE__ */ oe(ye, [["render", Me]]), $e = /* @__PURE__ */ M({
|
|
|
289
289
|
_: 3
|
|
290
290
|
})) : i(o).isShort ? (l(), m(Ve, { key: 1 })) : (l(), d("div", {
|
|
291
291
|
key: 2,
|
|
292
|
-
class:
|
|
292
|
+
class: w({
|
|
293
293
|
"top-tabsView_menuTitle": !0,
|
|
294
294
|
"top-tabsView_menuTitle-subtitle": e.isSubtitle
|
|
295
295
|
})
|
|
@@ -297,7 +297,7 @@ const Ve = /* @__PURE__ */ oe(ye, [["render", Me]]), $e = /* @__PURE__ */ M({
|
|
|
297
297
|
v(e.$slots, "default")
|
|
298
298
|
], 2));
|
|
299
299
|
}
|
|
300
|
-
}), Re =
|
|
300
|
+
}), Re = ye, Ee = g, Oe = $e;
|
|
301
301
|
export {
|
|
302
302
|
Re as TopTabsView,
|
|
303
303
|
Ee as TopTabsViewMenuItem,
|
package/utils/check.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","./url.amd"],function(b,i,
|
|
1
|
+
define(["require","exports","./url.amd"],function(b,i,t){"use strict";if(typeof d>"u")var d=window.Vue;const l="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|yachts|gdn",u="рф|дети|онлайн|сайт|укр|католик|ком|москва|орг|рус|бел|бг|ישראל";let o="";const m=()=>o||(o=u.split("|").map(e=>t.toPuny(e)).join("|"),o),n=()=>{const e=`(?:${l})`,a=`(?:${m()})`;return`(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+(?:${e}|${a})\\/?`},g=(e,a=!1)=>{e+="",e=e.toLowerCase();let s="^[-0-9a-z_\\.\\+]+@([-0-9a-z_^\\.]+\\.)+[a-z]{2,20}$";return a&&(s="^[-0-9a-zа-яё_\\.\\+]+@([-0-9a-zа-яё_^\\.]+\\.)+[a-zа-яё]{2,20}$"),new RegExp(s).test(e)},p=(e,a=!1)=>{if(e=e.trim(),e.includes(" "))return!1;const s=e.replace(/^(https?:\/\/)?(www\.)?([^/]+).*/,"$3");return a&&c(s)?!0:r(s)},r=e=>(e=t.toPuny(e),new RegExp(`^${n()}$`).test(e)),c=e=>new RegExp("((^\\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*$))").test(e);i.getDomainRegexp=n,i.isDomain=r,i.isEmail=g,i.isIp=c,i.validUrl=p,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=check.amd.js.map
|
package/utils/check.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.amd.js","sources":["../../src/core/utils/check.ts"],"sourcesContent":["/**\r\n * Функции для проверки данных\r\n * @packageDocumentation\r\n */\r\n\r\nimport { toPuny } from '@/core/utils/url';\r\n\r\nconst domainASCII: 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|yachts|gdn';\r\nconst domainUnicode: string = 'рф|дети|онлайн|сайт|укр|католик|ком|москва|орг|рус|бел|бг|ישראל';\r\nlet punyDomainUnicode = '';\r\n\r\n/**\r\n * Получить строку национализированных доменов верхнего уровня в ASCII формате\r\n */\r\nconst getPunyDomainUnicode = (): string => {\r\n\tif (punyDomainUnicode) return punyDomainUnicode;\r\n\r\n\tpunyDomainUnicode = domainUnicode.split('|').map(domain => toPuny(domain)).join('|');\r\n\r\n\treturn punyDomainUnicode;\r\n};\r\n\r\n/**\r\n * Получить строку с регулярным выражение для домена\r\n */\r\nexport const getDomainRegexp = (): string => {\r\n\tconst regexpASCII = `(?:${domainASCII})`;\r\n\tconst regexpUnicode = `(?:${getPunyDomainUnicode()})`;\r\n\r\n\treturn `(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\\\.)+(?:${regexpASCII}|${regexpUnicode})\\\\/?`;\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":["punyDomainUnicode","getDomainRegexp","regexpASCII","regexpUnicode","isEmail","email","rus_allow","emailTest","validUrl","url","isDomain","domain","utils_url","isIp","ip"],"mappings":"onKAeCA,oDAUMC,EAAA,IAAA,mCAIN,MAAA,6CAAAC,CAAA,IAAAC,CAAA,SAQMC,EAAA,CAAAC,EAAAC,EAAA,KAAA,OAGND,EAAAA,EAAA,YAAA,EAEA,IAAAE,EAAA,sJAOA,KAAAF,CAAA,
|
|
1
|
+
{"version":3,"file":"check.amd.js","sources":["../../src/core/utils/check.ts"],"sourcesContent":["/**\r\n * Функции для проверки данных\r\n * @packageDocumentation\r\n */\r\n\r\nimport { toPuny } from '@/core/utils/url';\r\n\r\nconst domainASCII: 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|yachts|gdn';\r\nconst domainUnicode: string = 'рф|дети|онлайн|сайт|укр|католик|ком|москва|орг|рус|бел|бг|ישראל';\r\nlet punyDomainUnicode = '';\r\n\r\n/**\r\n * Получить строку национализированных доменов верхнего уровня в ASCII формате\r\n */\r\nconst getPunyDomainUnicode = (): string => {\r\n\tif (punyDomainUnicode) return punyDomainUnicode;\r\n\r\n\tpunyDomainUnicode = domainUnicode.split('|').map(domain => toPuny(domain)).join('|');\r\n\r\n\treturn punyDomainUnicode;\r\n};\r\n\r\n/**\r\n * Получить строку с регулярным выражение для домена\r\n */\r\nexport const getDomainRegexp = (): string => {\r\n\tconst regexpASCII = `(?:${domainASCII})`;\r\n\tconst regexpUnicode = `(?:${getPunyDomainUnicode()})`;\r\n\r\n\treturn `(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\\\.)+(?:${regexpASCII}|${regexpUnicode})\\\\/?`;\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, allowIP = false): 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\tif (allowIP && isIp(domain)) return true;\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":["punyDomainUnicode","getDomainRegexp","regexpASCII","regexpUnicode","isEmail","email","rus_allow","emailTest","validUrl","url","allowIP","isDomain","domain","utils_url","isIp","ip"],"mappings":"onKAeCA,oDAUMC,EAAA,IAAA,mCAIN,MAAA,6CAAAC,CAAA,IAAAC,CAAA,SAQMC,EAAA,CAAAC,EAAAC,EAAA,KAAA,OAGND,EAAAA,EAAA,YAAA,EAEA,IAAAE,EAAA,sJAOA,KAAAF,CAAA,GAMMG,EAAA,CAAAC,EAAAC,EAAA,KAAA,CAEN,GADAD,EAAAA,EAAA,KAAA,EACAA,EAAA,SAAA,GAAA,wFAQAE,EAAAC,CAAA,GAMYD,EAAAC,IACZA,EAAAC,EAAA,OAAAD,CAAA,EAEA,IAAA,OAAA,IAAAX,EAAA,CAAA,GAAA,EAEA,KAAAW,CAAA,GAMYE,EAAAC,GACZ,IAAA,OAAmB,kvCAClB,EAED,KAAAA,CAAA"}
|
package/utils/check.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { toPuny as t } from "./url.js";
|
|
2
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|yachts|gdn", n = "рф|дети|онлайн|сайт|укр|католик|ком|москва|орг|рус|бел|бг|ישראל";
|
|
3
|
-
let
|
|
4
|
-
const r = () =>
|
|
3
|
+
let o = "";
|
|
4
|
+
const r = () => o || (o = n.split("|").map((e) => t(e)).join("|"), o), c = () => {
|
|
5
5
|
const e = `(?:${i})`, a = `(?:${r()})`;
|
|
6
6
|
return `(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+(?:${e}|${a})\\/?`;
|
|
7
|
-
},
|
|
7
|
+
}, g = (e, a = !1) => {
|
|
8
8
|
e += "", e = e.toLowerCase();
|
|
9
|
-
let
|
|
10
|
-
return a && (
|
|
11
|
-
},
|
|
9
|
+
let s = "^[-0-9a-z_\\.\\+]+@([-0-9a-z_^\\.]+\\.)+[a-z]{2,20}$";
|
|
10
|
+
return a && (s = "^[-0-9a-zа-яё_\\.\\+]+@([-0-9a-zа-яё_^\\.]+\\.)+[a-zа-яё]{2,20}$"), new RegExp(s).test(e);
|
|
11
|
+
}, p = (e, a = !1) => {
|
|
12
12
|
if (e = e.trim(), e.includes(" "))
|
|
13
13
|
return !1;
|
|
14
|
-
const
|
|
15
|
-
return d(
|
|
16
|
-
}, d = (e) => (e = t(e), new RegExp(`^${c()}$`).test(e)),
|
|
14
|
+
const s = e.replace(/^(https?:\/\/)?(www\.)?([^/]+).*/, "$3");
|
|
15
|
+
return a && l(s) ? !0 : d(s);
|
|
16
|
+
}, d = (e) => (e = t(e), new RegExp(`^${c()}$`).test(e)), l = (e) => new RegExp(
|
|
17
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
18
|
).test(e);
|
|
19
19
|
export {
|
|
20
20
|
c as getDomainRegexp,
|
|
21
21
|
d as isDomain,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
g as isEmail,
|
|
23
|
+
l as isIp,
|
|
24
|
+
p as validUrl
|
|
25
25
|
};
|
|
26
26
|
//# sourceMappingURL=check.js.map
|
package/utils/check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sources":["../../src/core/utils/check.ts"],"sourcesContent":["/**\r\n * Функции для проверки данных\r\n * @packageDocumentation\r\n */\r\n\r\nimport { toPuny } from '@/core/utils/url';\r\n\r\nconst domainASCII: 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|yachts|gdn';\r\nconst domainUnicode: string = 'рф|дети|онлайн|сайт|укр|католик|ком|москва|орг|рус|бел|бг|ישראל';\r\nlet punyDomainUnicode = '';\r\n\r\n/**\r\n * Получить строку национализированных доменов верхнего уровня в ASCII формате\r\n */\r\nconst getPunyDomainUnicode = (): string => {\r\n\tif (punyDomainUnicode) return punyDomainUnicode;\r\n\r\n\tpunyDomainUnicode = domainUnicode.split('|').map(domain => toPuny(domain)).join('|');\r\n\r\n\treturn punyDomainUnicode;\r\n};\r\n\r\n/**\r\n * Получить строку с регулярным выражение для домена\r\n */\r\nexport const getDomainRegexp = (): string => {\r\n\tconst regexpASCII = `(?:${domainASCII})`;\r\n\tconst regexpUnicode = `(?:${getPunyDomainUnicode()})`;\r\n\r\n\treturn `(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\\\.)+(?:${regexpASCII}|${regexpUnicode})\\\\/?`;\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":["domainASCII","domainUnicode","punyDomainUnicode","getPunyDomainUnicode","domain","toPuny","getDomainRegexp","regexpASCII","regexpUnicode","isEmail","email","rus_allow","emailTest","validUrl","url","
|
|
1
|
+
{"version":3,"file":"check.js","sources":["../../src/core/utils/check.ts"],"sourcesContent":["/**\r\n * Функции для проверки данных\r\n * @packageDocumentation\r\n */\r\n\r\nimport { toPuny } from '@/core/utils/url';\r\n\r\nconst domainASCII: 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|yachts|gdn';\r\nconst domainUnicode: string = 'рф|дети|онлайн|сайт|укр|католик|ком|москва|орг|рус|бел|бг|ישראל';\r\nlet punyDomainUnicode = '';\r\n\r\n/**\r\n * Получить строку национализированных доменов верхнего уровня в ASCII формате\r\n */\r\nconst getPunyDomainUnicode = (): string => {\r\n\tif (punyDomainUnicode) return punyDomainUnicode;\r\n\r\n\tpunyDomainUnicode = domainUnicode.split('|').map(domain => toPuny(domain)).join('|');\r\n\r\n\treturn punyDomainUnicode;\r\n};\r\n\r\n/**\r\n * Получить строку с регулярным выражение для домена\r\n */\r\nexport const getDomainRegexp = (): string => {\r\n\tconst regexpASCII = `(?:${domainASCII})`;\r\n\tconst regexpUnicode = `(?:${getPunyDomainUnicode()})`;\r\n\r\n\treturn `(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\\\.)+(?:${regexpASCII}|${regexpUnicode})\\\\/?`;\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, allowIP = false): 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\tif (allowIP && isIp(domain)) return true;\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":["domainASCII","domainUnicode","punyDomainUnicode","getPunyDomainUnicode","domain","toPuny","getDomainRegexp","regexpASCII","regexpUnicode","isEmail","email","rus_allow","emailTest","validUrl","url","allowIP","isIp","isDomain","ip"],"mappings":";AAOA,MAAMA,IAAsB,66JACtBC,IAAwB;AAC9B,IAAIC,IAAoB;AAKxB,MAAMC,IAAuB,MACxBD,MAEgBA,IAAAD,EAAc,MAAM,GAAG,EAAE,IAAI,CAAUG,MAAAC,EAAOD,CAAM,CAAC,EAAE,KAAK,GAAG,GAE5EF,IAMKI,IAAkB,MAAc;AACtC,QAAAC,IAAc,MAAMP,CAAW,KAC/BQ,IAAgB,MAAML,EAAsB,CAAA;AAE3C,SAAA,6CAA6CI,CAAW,IAAIC,CAAa;AACjF,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,GAAaC,IAAU,OAAmB;AAE9D,MADJD,IAAMA,EAAI,QACNA,EAAI,SAAS,GAAG;AACZ,WAAA;AAGR,QAAMV,IAASU,EAAI,QAAQ,oCAAoC,IAAI;AAEnE,SAAIC,KAAWC,EAAKZ,CAAM,IAAU,KAE7Ba,EAASb,CAAM;AACvB,GAKaa,IAAW,CAACb,OACxBA,IAASC,EAAOD,CAAM,GAEP,IAAI,OAAO,IAAIE,EAAiB,CAAA,GAAG,EAEpC,KAAKF,CAAM,IAMbY,IAAO,CAACE,MACL,IAAI;AAAA,EAClB;AAAA,EAEa,KAAKA,CAAE;"}
|
package/utils/date.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-CORLOoYZ.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
package/utils/device.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-CORLOoYZ.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,4 +1,4 @@
|
|
|
1
|
-
import { H as e, F as i, I as l, J as o, K as t, G as g, B as r, D as S, A as c, z as p, i as m } from "../.chunks/forms-
|
|
1
|
+
import { H as e, F as i, I as l, J as o, K as t, G as g, B as r, D as S, A as c, z as p, i as m } from "../.chunks/forms-CHyoeELv.es.js";
|
|
2
2
|
export {
|
|
3
3
|
e as get$scroll,
|
|
4
4
|
i as getCommandKeyLabel,
|
package/utils/lodash.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-CORLOoYZ.amd"],function(u,e,n){"use strict";if(typeof i>"u")var i=window.Vue;e.cloneDeep=n.cloneDeep,e.debounce=n.debounce,e.memoize=n.memoize,e.merge=n.merge,e.throttle=n.throttle,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=lodash.amd.js.map
|
package/utils/lodash.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { L as
|
|
1
|
+
import { L as s, s as a, M as m, O as r, N as t } from "../.chunks/forms-CHyoeELv.es.js";
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
s as cloneDeep,
|
|
4
|
+
a as debounce,
|
|
5
|
+
m as memoize,
|
|
6
|
+
r as merge,
|
|
7
7
|
t as throttle
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=lodash.js.map
|
package/utils/price.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-CORLOoYZ.amd"],function(a,t,i){"use strict";if(typeof n>"u")var n=window.Vue;const u=(c,e,o=i.Core.state.currency)=>{e=e??i.useI18nLang().value;let r=c.toLocaleString(e,{style:"currency",currency:o,maximumFractionDigits:2});return r=r.replace(",","."),r};t.genPrice=u,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=price.amd.js.map
|
package/utils/price.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as o, C as s } from "../.chunks/forms-
|
|
1
|
+
import { u as o, C as s } from "../.chunks/forms-CHyoeELv.es.js";
|
|
2
2
|
const a = (t, e, c = s.state.currency) => {
|
|
3
3
|
e = e ?? o().value;
|
|
4
4
|
let r = t.toLocaleString(e, { style: "currency", currency: c, maximumFractionDigits: 2 });
|
package/utils/string.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","./check.amd","../.chunks/forms-
|
|
1
|
+
define(["require","exports","./check.amd","../.chunks/forms-CORLOoYZ.amd"],function(j,c,i,u){"use strict";if(typeof p>"u")var p=window.Vue;const h=e=>{e+="";let l=0;if(!e.length)return l;for(let a=0;a<e.length;a++){const n=e.charCodeAt(a);l=(l<<5)-l+n,l=l&l}return l<0&&(l*=-1),l},s=e=>/^\w+:\/\/([\w-]+\.)+[\w-]+(:\d+)?(\/|$)/.test(e),f=e=>{e+="",e=e.replace("-","–");let l=e.split("."),a=l[0],n=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+n},d=e=>e===void 0?"":e.replace(/\r\n|\r|\n/g,"<br>"),g=(e,l=2,a=1e3,n="")=>{const o=Math.pow(10,l);let r=String(e);return Math.abs(e)>Math.pow(a,3)?r=Math.round(e/Math.pow(a,3)*o)/o+" <small>G"+n+"</small>":Math.abs(e)>Math.pow(a,2)?r=Math.round(e/Math.pow(a,2)*o)/o+" <small>M"+n+"</small>":Math.abs(e)>a&&(r=Math.round(e/a*o)/o+" <small>K"+n+"</small>"),r=r.replace(/^(-?\d+)(\d{3})/,"$1 $2"),r},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 n=e.substr(0,l/2),o=e.substr(e.length-l/2,Math.ceil(l/2));e=n+"..."+o}else a===2&&(e=e.substr(0,l),e=e+"...");return e},w=(e,l,a,n)=>{if(u.useI18nLang().value==="en")return e===1?a:l;const o=e%100,r=e%10;return o>=5&&o<=20||r===0?l:r===1?a:r>=2&&r<=4?n:r>=5&&r<=9?l:n},b=e=>{if(u.useI18nLang().value!="ru"||e=="")return e;const l=e.split(" ");return $.map(l,function(a,n){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[n]=a}),e=l.join(" "),e},C=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(n,o){const r=[];for(let t=0;t<n.length;++t)r.push(l[n[t]]||l[n[t].toLowerCase()]==null&&n[t]||l[n[t].toLowerCase()].replace(/^(.)/,function(A){return A.toUpperCase()}));a[o]=r.join("")}),e=a.join(" "),e},M=e=>(typeof e=="string"&&(e=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")),e),k=(e,l)=>{let a=null;switch(l.operator){case"CONTAINS":case"REGEXP":try{let n=l.values[0];l.operator!="REGEXP"&&(n=n.replace(/([()\[\]])/g,"\\$1")),a=new RegExp("("+n+")","gi")}catch{return e}break}return e=e.replace(a,'<b class="found">$1</b>'),e},y=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"}`,L=e=>{const l=i.getDomainRegexp(),a="(([\\/?\\w&=%+#;:-]*(\\.\\w+)?))*",n=new RegExp(`(^|[\\s>(),])([a-z0-9а-яё_.]+@${l}${a})`,"gui");e=e.replace(n,'$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},R=e=>e.charAt(0).toUpperCase()+e.slice(1),E=(e=20)=>{const l="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";let a="";for(let n=0;n<e;n++)a+=l[Math.floor(Math.random()*l.length)];return a};c.addCommasWhite=f,c.addLinkTags=L,c.camelToSnakeCase=y,c.ellipsis=m,c.genFlagLinkByCountryCode=v,c.genIntHash=h,c.getRandomHash=E,c.highlightHtml=k,c.htmlspecialchars=M,c.isUrl=s,c.nl2br=d,c.numberEnding=w,c.numberWithWord=g,c.rusToLatin=C,c.toCapitalize=R,c.toRoditPadej=b,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=string.amd.js.map
|
package/utils/string.js
CHANGED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { Core as w } from "../core/app.js";
|
|
2
|
-
import { reactive as N, defineComponent as k, ref as T, computed as S, resolveComponent as z, withDirectives as D, openBlock as r, createElementBlock as g, normalizeClass as E, createElementVNode as _, createCommentVNode as h, createBlock as C, mergeProps as j, Teleport as x, Fragment as V, renderList as A, unref as F, normalizeStyle as J } from "vue";
|
|
3
|
-
import { C as p } from "./forms-C4-jc5q2.es.js";
|
|
4
|
-
import { genIntHash as O, nl2br as W } from "../utils/string.js";
|
|
5
|
-
const I = ["../assets/notice.css"].map((e) => import.meta.resolve(e));
|
|
6
|
-
w.insertCSSLinkToPage(I, !0);
|
|
7
|
-
const v = 300, u = N(/* @__PURE__ */ new Map()), q = (e, n, t) => "top-notice_" + O(e + n + JSON.stringify(t)), ne = (e, n = "info", t) => {
|
|
8
|
-
let i = "";
|
|
9
|
-
e = String(e);
|
|
10
|
-
const d = q(e, n, t);
|
|
11
|
-
if (t != null && t.title)
|
|
12
|
-
i = t.title;
|
|
13
|
-
else {
|
|
14
|
-
const c = e.split(`
|
|
15
|
-
`);
|
|
16
|
-
c.length && (i = String(c.shift()), e = c.join(`
|
|
17
|
-
`));
|
|
18
|
-
}
|
|
19
|
-
const s = u.get(d);
|
|
20
|
-
if (s) {
|
|
21
|
-
G(s);
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const a = {
|
|
25
|
-
id: d,
|
|
26
|
-
title: i,
|
|
27
|
-
text: e,
|
|
28
|
-
style: n,
|
|
29
|
-
buttonProps: t == null ? void 0 : t.buttonProps,
|
|
30
|
-
metaText: t == null ? void 0 : t.metaText,
|
|
31
|
-
isSafeHTML: t == null ? void 0 : t.isSafeHTML,
|
|
32
|
-
onClose: t == null ? void 0 : t.onClose
|
|
33
|
-
};
|
|
34
|
-
if (u.set(a.id, a), u.size > 5) {
|
|
35
|
-
const [c, f] = [...u].at(0) || [];
|
|
36
|
-
f && y(f);
|
|
37
|
-
}
|
|
38
|
-
p.state.isMobile && $("input").one("click", () => y(a));
|
|
39
|
-
}, G = (e) => {
|
|
40
|
-
e.hightlight = !0, setTimeout(() => e.hightlight = !1, v);
|
|
41
|
-
}, y = (e) => {
|
|
42
|
-
e.forceClosed = !0, setTimeout(() => {
|
|
43
|
-
var n;
|
|
44
|
-
(n = e.onClose) == null || n.call(e), u.delete(e.id);
|
|
45
|
-
}, v);
|
|
46
|
-
}, H = (e) => {
|
|
47
|
-
const n = "hacking was detected";
|
|
48
|
-
return e = e.replace(/<script/g, n), e = e.replace(/<img/g, n), e = e.replace(/<iframe/g, n), e = e.replace(/javascript:/g, n), e = e.replace(/<[^>]+ (@|on)\w+=[^>]+>?/g, n), e;
|
|
49
|
-
}, K = { class: "top-notice_itemTextWrapper" }, Q = ["innerHTML"], R = ["innerHTML"], U = ["innerHTML"], X = ["title"], Y = /* @__PURE__ */ k({
|
|
50
|
-
__name: "item",
|
|
51
|
-
props: {
|
|
52
|
-
id: {},
|
|
53
|
-
title: {},
|
|
54
|
-
text: {},
|
|
55
|
-
style: {},
|
|
56
|
-
metaText: {},
|
|
57
|
-
buttonProps: {},
|
|
58
|
-
isSafeHTML: { type: Boolean },
|
|
59
|
-
hightlight: { type: Boolean },
|
|
60
|
-
forceClosed: { type: Boolean }
|
|
61
|
-
},
|
|
62
|
-
emits: ["close"],
|
|
63
|
-
setup(e, { emit: n }) {
|
|
64
|
-
const t = e, i = n, d = T(!1);
|
|
65
|
-
setTimeout(() => d.value = !0, 10);
|
|
66
|
-
const s = T(!1), a = T("right"), c = S(() => {
|
|
67
|
-
let o = t.title.replace(/ {2}/g, " ");
|
|
68
|
-
return t.isSafeHTML || (o = H(o)), o;
|
|
69
|
-
}), f = S(() => {
|
|
70
|
-
let o = W(t.text);
|
|
71
|
-
return o = o.replace(/ {2}/g, " "), t.isSafeHTML || (o = H(o)), o;
|
|
72
|
-
}), m = (o) => {
|
|
73
|
-
s.value = !0, o && (a.value = o), setTimeout(() => i("close"), v);
|
|
74
|
-
}, P = (o) => {
|
|
75
|
-
const { tagName: l } = o.target;
|
|
76
|
-
l === "A" && m();
|
|
77
|
-
}, B = {
|
|
78
|
-
mounted: (o) => {
|
|
79
|
-
if (!p.state.isMobile || !p.$ || !p.$.ui.draggable) return;
|
|
80
|
-
let l = "right";
|
|
81
|
-
p.$(o).draggable({
|
|
82
|
-
revert: !1,
|
|
83
|
-
axis: "x",
|
|
84
|
-
drag: (b, L) => {
|
|
85
|
-
l = L.position.left > 0 ? "right" : "left";
|
|
86
|
-
},
|
|
87
|
-
stop: (b, L) => {
|
|
88
|
-
m(l);
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
return (o, l) => {
|
|
94
|
-
const M = z("TopButton");
|
|
95
|
-
return D((r(), g("div", {
|
|
96
|
-
class: E(["top-notice_item", {
|
|
97
|
-
["top-notice_item-" + o.style]: !0,
|
|
98
|
-
"top-notice_item-hightlight": o.hightlight,
|
|
99
|
-
"top-notice_item-showed": d.value,
|
|
100
|
-
"top-notice_item-closed": s.value || o.forceClosed,
|
|
101
|
-
["top-notice_item-closed_" + a.value]: s.value
|
|
102
|
-
}]),
|
|
103
|
-
onClick: P
|
|
104
|
-
}, [
|
|
105
|
-
_("div", K, [
|
|
106
|
-
c.value ? (r(), g("div", {
|
|
107
|
-
key: 0,
|
|
108
|
-
class: "top-notice_itemTitle",
|
|
109
|
-
innerHTML: c.value
|
|
110
|
-
}, null, 8, Q)) : h("", !0),
|
|
111
|
-
f.value ? (r(), g("div", {
|
|
112
|
-
key: 1,
|
|
113
|
-
class: "top-notice_itemText",
|
|
114
|
-
innerHTML: f.value
|
|
115
|
-
}, null, 8, R)) : h("", !0)
|
|
116
|
-
]),
|
|
117
|
-
o.buttonProps ? (r(), C(M, j({
|
|
118
|
-
key: 0,
|
|
119
|
-
class: "top-notice_itemButton",
|
|
120
|
-
size: "s"
|
|
121
|
-
}, o.buttonProps, {
|
|
122
|
-
title: o.buttonProps.title,
|
|
123
|
-
innerHTML: o.buttonProps.default,
|
|
124
|
-
onClick: l[0] || (l[0] = (b) => m())
|
|
125
|
-
}), null, 16, ["title", "innerHTML"])) : h("", !0),
|
|
126
|
-
o.metaText ? (r(), g("div", {
|
|
127
|
-
key: 1,
|
|
128
|
-
class: "top-notice_itemMetaText",
|
|
129
|
-
innerHTML: o.metaText
|
|
130
|
-
}, null, 8, U)) : h("", !0),
|
|
131
|
-
_("div", {
|
|
132
|
-
class: "top-notice_itemClose",
|
|
133
|
-
"data-top-icon": "",
|
|
134
|
-
title: o.$i18n.Common.Close,
|
|
135
|
-
onClick: l[1] || (l[1] = () => m())
|
|
136
|
-
}, null, 8, X)
|
|
137
|
-
], 2)), [
|
|
138
|
-
[B]
|
|
139
|
-
]);
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
}), Z = { class: "top-notice" }, ie = /* @__PURE__ */ k({
|
|
143
|
-
__name: "notice",
|
|
144
|
-
setup(e) {
|
|
145
|
-
const n = (t) => {
|
|
146
|
-
var i;
|
|
147
|
-
(i = t.onClose) == null || i.call(t), u.delete(t.id);
|
|
148
|
-
};
|
|
149
|
-
return (t, i) => (r(), C(x, { to: "body" }, [
|
|
150
|
-
_("div", Z, [
|
|
151
|
-
(r(!0), g(V, null, A(F(u), ([d, s]) => (r(), C(Y, {
|
|
152
|
-
key: s.id,
|
|
153
|
-
id: s.id,
|
|
154
|
-
title: s.title,
|
|
155
|
-
text: s.text,
|
|
156
|
-
style: J(s.style),
|
|
157
|
-
buttonProps: s.buttonProps,
|
|
158
|
-
metaText: s.metaText,
|
|
159
|
-
isSafeHTML: s.isSafeHTML,
|
|
160
|
-
forceClosed: s.forceClosed,
|
|
161
|
-
hightlight: s.hightlight,
|
|
162
|
-
onClose: (a) => n(s)
|
|
163
|
-
}, null, 8, ["id", "title", "text", "style", "buttonProps", "metaText", "isSafeHTML", "forceClosed", "hightlight", "onClose"]))), 128))
|
|
164
|
-
])
|
|
165
|
-
]));
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
export {
|
|
169
|
-
ie as default,
|
|
170
|
-
ne as show
|
|
171
|
-
};
|
|
172
|
-
//# sourceMappingURL=notice-Dgu-SIPq.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notice-Dgu-SIPq.es.js","sources":["../../src/components/core/notice/utils.ts","../../src/components/core/notice/item/item.vue","../../src/components/core/notice/notice.vue"],"sourcesContent":["import { reactive } from 'vue';\r\nimport type { Props as ItemProps, Props, Style } from '@/components/core/notice/item/types';\r\nimport Core from '@/core/core/core';\r\nimport { genIntHash } from '@/core/utils/string';\r\n\r\nexport const transitionDuration = 300;\r\n\r\nexport type Item = Props & { onClose?: Function };\r\n\r\nexport const itemById = reactive(new Map<string, Item>());\r\n\r\nconst genItemId = (text: ItemProps['text'], style: ItemProps['style'], options?: Options) => {\r\n\treturn 'top-notice_' + genIntHash(text + style + JSON.stringify(options));\r\n};\r\n\r\nexport type Options = {\r\n\ttitle?: ItemProps['title'],\r\n\tmetaText?: ItemProps['metaText'],\r\n\tbuttonProps?: ItemProps['buttonProps'],\r\n\tisSafeHTML?: ItemProps['isSafeHTML'],\r\n\tonClose?: Function\r\n}\r\n\r\n/**\r\n * Показать сообщением в стиле push уведомления\r\n *\r\n * title будет получен из первой строки text\r\n *\r\n * Если в options указан title, он будет взят оттуда\r\n */\r\nexport const show = (text: string, style: Style = 'info', options?: Options) => {\r\n\tlet title = '';\r\n\r\n\ttext = String(text);\r\n\r\n\tconst id = genItemId(text, style, options);\r\n\r\n\tif (options?.title) {\r\n\t\ttitle = options.title;\r\n\t} else {\r\n\t\tconst chunks = text.split('\\n');\r\n\r\n\t\tif (chunks.length) {\r\n\t\t\ttitle = String(chunks.shift());\r\n\t\t\ttext = chunks.join('\\n');\r\n\t\t}\r\n\t}\r\n\r\n\tconst itemExists = itemById.get(id);\r\n\tif (itemExists) {\r\n\t\thightlight(itemExists);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst item: Item = {\r\n\t\tid,\r\n\t\ttitle,\r\n\t\ttext,\r\n\t\tstyle,\r\n\t\tbuttonProps: options?.buttonProps,\r\n\t\tmetaText: options?.metaText,\r\n\t\tisSafeHTML: options?.isSafeHTML,\r\n\t\tonClose: options?.onClose,\r\n\t};\r\n\r\n\titemById.set(item.id, item);\r\n\r\n\tif (itemById.size > 5) {\r\n\t\tconst [_firstId, firstItem] = [...itemById].at(0) || [];\r\n\t\tif (firstItem) close(firstItem);\r\n\t}\r\n\r\n\t/**\r\n\t * Автозакрытие ошибок форм\r\n\t *\r\n\t * Добавляет\r\n\t */\r\n\tif (Core.state.isMobile) {\r\n\t\t$('input').one('click', () => close(item));\r\n\t}\r\n};\r\n\r\nconst hightlight = (item: Item) => {\r\n\titem.hightlight = true;\r\n\r\n\tsetTimeout(() => item.hightlight = false, transitionDuration);\r\n};\r\n\r\nconst close = (item: Item) => {\r\n\titem.forceClosed = true;\r\n\r\n\tsetTimeout(() => {\r\n\t\titem.onClose?.();\r\n\r\n\t\titemById.delete(item.id);\r\n\t}, transitionDuration);\r\n};\r\n\r\n/**\r\n * Убрать подозрительный html код\r\n */\r\nexport const prepareText = (text: string) => {\r\n\tconst textNoSafety = 'hacking was detected';\r\n\r\n\ttext = text.replace(/<script/g, textNoSafety);\r\n\ttext = text.replace(/<img/g, textNoSafety);\r\n\ttext = text.replace(/<iframe/g, textNoSafety);\r\n\ttext = text.replace(/javascript:/g, textNoSafety);\r\n\ttext = text.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, textNoSafety);\r\n\r\n\treturn text;\r\n};\r\n","<script setup lang=\"ts\">\r\nimport { computed, ref } from 'vue';\r\n\r\nimport Core from '@/core/core/core';\r\nimport { nl2br } from '@/core/utils/string';\r\n\r\nimport type { Emits, Props } from './types';\r\nimport { prepareText, transitionDuration } from '@/components/core/notice/utils';\r\n\r\nconst props = defineProps<Props>();\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\n// анимация появления\r\nconst showed = ref(false);\r\nsetTimeout(() => showed.value = true, 10);\r\n\r\n// анимация закрытия\r\nconst closed = ref(false);\r\nconst closedDirection = ref<'top' | 'right' | 'bottom' | 'left'>('right');\r\n\r\nconst title = computed(() => {\r\n\tlet res = props.title.replace(/ {2}/g, ' ');\r\n\r\n\tif (!props.isSafeHTML) res = prepareText(res);\r\n\r\n\treturn res;\r\n});\r\n\r\nconst text = computed(() => {\r\n\tlet res = nl2br(props.text);\r\n\r\n\tres = res.replace(/ {2}/g, ' ');\r\n\r\n\tif (!props.isSafeHTML) res = prepareText(res);\r\n\r\n\treturn res;\r\n});\r\n\r\nconst close = (direction?: typeof closedDirection.value) => {\r\n\tclosed.value = true;\r\n\r\n\tif (direction) {\r\n\t\tclosedDirection.value = direction;\r\n\t}\r\n\r\n\tsetTimeout(() => emit('close'), transitionDuration);\r\n};\r\n\r\nconst onClick = (e: MouseEvent) => {\r\n\tconst { tagName } = e.target as HTMLElement;\r\n\r\n\tif (tagName === 'A') close();\r\n};\r\n\r\nconst vSwipe = {\r\n\tmounted: (el: HTMLElement) => {\r\n\t\tif (!Core.state.isMobile) return;\r\n\r\n\t\tif (!Core.$ || !Core.$.ui['draggable']) return;\r\n\r\n\t\tlet direction: typeof closedDirection.value = 'right';\r\n\r\n\t\tlet axis = 'x';\r\n\t\t// if (getOS() === 'iOS') axis = 'y';\r\n\r\n\t\tCore.$(el).draggable({\r\n\t\t\trevert: false,\r\n\t\t\taxis,\r\n\t\t\tdrag: (e, ui) => {\r\n\t\t\t\tif (axis == 'x') {\r\n\t\t\t\t\tdirection = ui.position.left > 0 ? 'right' : 'left';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdirection = ui.position.top > 0 ? 'bottom' : 'top';\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tstop: (_e, _ui) => {\r\n\t\t\t\tclose(direction);\r\n\t\t\t},\r\n\t\t});\r\n\t},\r\n};\r\n\r\n// const vSwipe = {\r\n// \tmounted: (el: HTMLElement) => {\r\n// \t\tconst { distanceX, direction } = usePointerSwipe(el, {\r\n// \t\t\tdisableTextSelect: true,\r\n// \t\t\tonSwipe(e: PointerEvent) {\r\n// \t\t\t\tleft.value = -distanceX.value + 'px';\r\n// \t\t\t},\r\n// \t\t\tonSwipeEnd: (_e, direction) => {\r\n// \t\t\t\tclose(direction);\r\n// \t\t\t},\r\n// \t\t});\r\n// \t},\r\n// };\r\n</script>\r\n\r\n<template>\r\n\t<div\r\n\t\tclass=\"top-notice_item\"\r\n\t\t:class=\"{\r\n\t\t\t['top-notice_item-' + style]: true,\r\n\t\t\t'top-notice_item-hightlight': hightlight,\r\n\t\t\t'top-notice_item-showed': showed,\r\n\t\t\t'top-notice_item-closed': closed || forceClosed,\r\n\t\t\t['top-notice_item-closed_' + closedDirection]: closed,\r\n\t\t}\"\r\n\t\t@click=\"onClick\"\r\n\t\tv-swipe\r\n\t>\r\n\t\t<div class=\"top-notice_itemTextWrapper\">\r\n\t\t\t<div v-if=\"title\" class=\"top-notice_itemTitle\" v-html=\"title\"></div>\r\n\t\t\t<div v-if=\"text\" class=\"top-notice_itemText\" v-html=\"text\"></div>\r\n\t\t</div>\r\n\r\n\t\t<TopButton\r\n\t\t\tv-if=\"buttonProps\"\r\n\t\t\tclass=\"top-notice_itemButton\"\r\n\t\t\tsize=\"s\"\r\n\t\t\t:=\"buttonProps\"\r\n\t\t\t:title=\"buttonProps.title\"\r\n\t\t\tv-html=\"buttonProps.default\"\r\n\t\t\t@click=\"close()\"\r\n\t\t/>\r\n\r\n\t\t<div v-if=\"metaText\" class=\"top-notice_itemMetaText\" v-html=\"metaText\"></div>\r\n\r\n\t\t<div\r\n\t\t\tclass=\"top-notice_itemClose\"\r\n\t\t\tdata-top-icon=\"\"\r\n\t\t\t:title=\"$i18n.Common.Close\"\r\n\t\t\t@click=\"() => close()\"\r\n\t\t></div>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n@import \"style.css\";\r\n</style>\r\n","<!-- performance all in one file component, для Core.notice() -->\r\n<script lang=\"ts\">\r\nexport { show } from './utils';\r\n</script>\r\n\r\n<script setup lang=\"ts\">\r\nimport type { Item } from './utils';\r\nimport { itemById } from './utils';\r\n\r\nimport type { Props } from './types';\r\nimport TopNoticeItem from './item/item.vue';\r\n\r\ndefineProps<Props>();\r\n\r\nconst onCloseItem = (item: Item) => {\r\n\titem.onClose?.();\r\n\r\n\titemById.delete(item.id);\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<teleport to=\"body\">\r\n\t\t<div class=\"top-notice\">\r\n\t\t\t<TopNoticeItem\r\n\t\t\t\tv-for=\"[_index, item] in itemById\"\r\n\t\t\t\t:key=\"item.id\"\r\n\t\t\t\t:id=\"item.id\"\r\n\t\t\t\t:title=\"item.title\"\r\n\t\t\t\t:text=\"item.text\"\r\n\t\t\t\t:style=\"item.style\"\r\n\t\t\t\t:buttonProps=\"item.buttonProps\"\r\n\t\t\t\t:metaText=\"item.metaText\"\r\n\t\t\t\t:isSafeHTML=\"item.isSafeHTML\"\r\n\t\t\t\t:forceClosed=\"item.forceClosed\"\r\n\t\t\t\t:hightlight=\"item.hightlight\"\r\n\t\t\t\t@close=\"onCloseItem(item)\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</teleport>\r\n</template>\r\n\r\n<style>\r\n:root {\r\n\t--top-notice-top: var(--top-padding-4);\r\n\t--top-notice-right: var(--top-padding-4);\r\n}\r\n\r\n.top-notice {\r\n\twidth: 400px;\r\n\tfont-size: 14px;\r\n\tposition: fixed; top: var(--top-notice-top); right: var(--top-notice-right);\r\n\tz-index: 1000010;\r\n\tdisplay: flex; flex-direction: column-reverse; gap: var(--top-gap-2);\r\n}\r\n\r\n.top-notice ul {\r\n\tpadding: 0 0 0 var(--top-padding-5);\r\n}\r\n\r\n@media only screen and (max-width: 600px) {\r\n\t:root {\r\n\t\t--top-notice-top: var(--top-padding-4);\r\n\t\t--top-notice-right: var(--top-padding-4);\r\n\t}\r\n\r\n\t.top-notice { width: auto; left: var(--top-notice-right); }\r\n}\r\n</style>\r\n"],"names":["transitionDuration","itemById","reactive","genItemId","text","style","options","genIntHash","show","title","id","chunks","itemExists","hightlight","item","_firstId","firstItem","close","Core","_a","prepareText","textNoSafety","props","__props","emit","__emit","showed","ref","closed","closedDirection","computed","res","nl2br","direction","onClick","e","tagName","vSwipe","el","ui","_e","_ui","onCloseItem"],"mappings":";;;;;;AAKO,MAAAA,IAAA,KAIAC,IAAAC,EAAA,oBAAA,IAAA,CAAA,GAEPC,IAAA,CAAAC,GAAAC,GAAAC,MACC,gBAAAC,EAAAH,IAAAC,IAAA,KAAA,UAAAC,CAAA,CAAA,GAkBME,KAAA,CAAAJ,GAAAC,IAAA,QAAAC,MAAA;AACN,MAAAG,IAAA;AAEA,EAAAL,IAAA,OAAAA,CAAA;AAEA,QAAAM,IAAAP,EAAAC,GAAAC,GAAAC,CAAA;AAEA,MAAAA,KAAA,QAAAA,EAAA;AACC,IAAAG,IAAAH,EAAA;AAAA,OAAgB;AAEhB,UAAAK,IAAAP,EAAA,MAAA;AAAA,CAAA;AAEA,IAAAO,EAAA,WACCF,IAAA,OAAAE,EAAA,MAAA,CAAA,GACAP,IAAAO,EAAA,KAAA;AAAA,CAAA;AAAA,EACD;AAGD,QAAAC,IAAAX,EAAA,IAAAS,CAAA;AACA,MAAAE,GAAA;AACC,IAAAC,EAAAD,CAAA;AAEA;AAAA,EAAA;AAGD,QAAAE,IAAA;AAAA,IAAmB,IAAAJ;AAAA,IAClB,OAAAD;AAAA,IACA,MAAAL;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC,KAAA,gBAAAA,EAAA;AAAA,IACsB,UAAAA,KAAA,gBAAAA,EAAA;AAAA,IACH,YAAAA,KAAA,gBAAAA,EAAA;AAAA,IACE,SAAAA,KAAA,gBAAAA,EAAA;AAAA,EACH;AAKnB,MAFAL,EAAA,IAAAa,EAAA,IAAAA,CAAA,GAEAb,EAAA,OAAA,GAAA;AACC,UAAA,CAAAc,GAAAC,CAAA,IAAA,CAAA,GAAAf,CAAA,EAAA,GAAA,CAAA,KAAA,CAAA;AACA,IAAAe,KAAAC,EAAAD,CAAA;AAAA,EAA8B;AAQ/B,EAAAE,EAAA,MAAA,YACC,EAAA,OAAA,EAAA,IAAA,SAAA,MAAAD,EAAAH,CAAA,CAAA;AAEF,GAEAD,IAAA,CAAAC,MAAA;AACC,EAAAA,EAAA,aAAA,IAEA,WAAA,MAAAA,EAAA,aAAA,IAAAd,CAAA;AACD,GAEAiB,IAAA,CAAAH,MAAA;AACC,EAAAA,EAAA,cAAA,IAEA,WAAA,MAAA;;AACC,KAAAK,IAAAL,EAAA,YAAA,QAAAK,EAAA,KAAAL,IAEAb,EAAA,OAAAa,EAAA,EAAA;AAAA,EAAuB,GAAAd,CAAA;AAEzB,GAKaoB,IAAA,CAAAhB,MAAA;AACZ,QAAAiB,IAAA;AAEA,SAAAjB,IAAAA,EAAA,QAAA,YAAAiB,CAAA,GACAjB,IAAAA,EAAA,QAAA,SAAAiB,CAAA,GACAjB,IAAAA,EAAA,QAAA,YAAAiB,CAAA,GACAjB,IAAAA,EAAA,QAAA,gBAAAiB,CAAA,GACAjB,IAAAA,EAAA,QAAA,6BAAAiB,CAAA,GAEAjB;AACD;;;;;;;;;;;;;;;ACvGA,UAAAkB,IAAAC,GAEAC,IAAAC,GAGAC,IAAAC,EAAA,EAAA;AACA,eAAA,MAAAD,EAAA,QAAA,IAAA,EAAA;AAGA,UAAAE,IAAAD,EAAA,EAAA,GACAE,IAAAF,EAAA,OAAA,GAEAlB,IAAAqB,EAAA,MAAA;AACC,UAAAC,IAAAT,EAAA,MAAA,QAAA,SAAA,QAAA;AAEA,aAAAA,EAAA,eAAAS,IAAAX,EAAAW,CAAA,IAEAA;AAAA,IAAO,CAAA,GAGR3B,IAAA0B,EAAA,MAAA;AACC,UAAAC,IAAAC,EAAAV,EAAA,IAAA;AAEA,aAAAS,IAAAA,EAAA,QAAA,SAAA,QAAA,GAEAT,EAAA,eAAAS,IAAAX,EAAAW,CAAA,IAEAA;AAAA,IAAO,CAAA,GAGRd,IAAA,CAAAgB,MAAA;AACC,MAAAL,EAAA,QAAA,IAEAK,MACCJ,EAAA,QAAAI,IAGD,WAAA,MAAAT,EAAA,OAAA,GAAAxB,CAAA;AAAA,IAAkD,GAGnDkC,IAAA,CAAAC,MAAA;AACC,YAAA,EAAA,SAAAC,EAAA,IAAAD,EAAA;AAEA,MAAAC,MAAA,OAAAnB,EAAA;AAAA,IAA2B,GAG5BoB,IAAA;AAAA,MAAe,SAAA,CAAAC,MAAA;AAIb,YAFA,CAAApB,EAAA,MAAA,YAEA,CAAAA,EAAA,KAAA,CAAAA,EAAA,EAAA,GAAA,UAAA;AAEA,YAAAe,IAAA;AAKA,QAAAf,EAAA,EAAAoB,CAAA,EAAA,UAAA;AAAA,UAAqB,QAAA;AAAA,UACZ,MAJT;AAAA,UAKC,MAAA,CAAAH,GAAAI,MAAA;AAGE,YAAAN,IAAAM,EAAA,SAAA,OAAA,IAAA,UAAA;AAAA,UAGD;AAAA,UACD,MAAA,CAAAC,GAAAC,MAAA;AAEC,YAAAxB,EAAAgB,CAAA;AAAA,UAAe;AAAA,QAChB,CAAA;AAAA,MACA;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClED,UAAAS,IAAA,CAAA5B,MAAA;;AACC,OAAAK,IAAAL,EAAA,YAAA,QAAAK,EAAA,KAAAL,IAEAb,EAAA,OAAAa,EAAA,EAAA;AAAA,IAAuB;;;;;;;;;;;;;;;;;;;;"}
|