@topvisor/ui 1.5.0-updates.7 → 1.5.0-updates.9
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/dialog_regionSelectorRegions-CYrmaDt3.amd.js.map +1 -1
- package/.chunks/formsExt-CrTmBhja.amd.js.map +1 -1
- package/.chunks/notice-CslVdVNm.amd.js.map +1 -1
- package/.chunks/popup-DrByVU-k.amd.js.map +1 -1
- package/charts/charts.amd.js.map +1 -1
- package/extra/extra.amd.js +1 -1
- package/extra/extra.amd.js.map +1 -1
- package/icomoon/Topvisor icons.json +259 -231
- package/icomoon/demo.html +15 -1
- package/icomoon/fonts/Topvisor-2.eot +0 -0
- package/icomoon/fonts/Topvisor-2.svg +1 -0
- 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 +8 -5
- package/layout/layout.amd.js.map +1 -1
- package/package.json +1 -1
- package/project/project.amd.js +1 -1
- package/project/project.amd.js.map +1 -1
- package/project/project.js +13 -1
- package/project/project.js.map +1 -1
- package/tabs/tabs.amd.js.map +1 -1
- package/tabsView/tabsView.amd.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[".chunks/notice-CslVdVNm.esm.js","../../src/components/core/notice/utils.ts","../../src/components/core/notice/item/item.vue","../../src/components/core/notice/notice.vue"],"names":["vue","exports","x","vue_1","S","string_js_1","n","r","C","t","e","o","w","s","T","forms_CbUt_6Ff_esm_js_1","E","D","O","k","A","j","M","N","i","u","p","h","y","P","F"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-CbUt-6Ff.esm.js\", \"../utils/string.js\", \"vue\"], function (require, exports, forms_CbUt_6Ff_esm_js_1, string_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.show = exports.default = void 0;\n var x = (0, vue_1.reactive)(/* @__PURE__ */ new Map()), S = (e, n, r) => \"top-notice_\" + (0, string_js_1.genIntHash)(e + n + JSON.stringify(r)), C = (t, n = \"info\", r) => {\n let i = \"\";\n t = String(t);\n let a = S(t, n, r);\n if (r?.title)\n i = r.title;\n else {\n let e = t.split(\"\\n\");\n e.length && (i = String(e.shift()), t = e.join(\"\\n\"));\n }\n let o = x.get(a);\n if (o) {\n w(o);\n return;\n }\n let s = {\n id: a,\n title: i,\n text: t,\n style: n,\n buttonProps: r?.buttonProps,\n buttonsProps: r?.buttonsProps,\n metaText: r?.metaText,\n isSafeHTML: r?.isSafeHTML,\n selectToClose: r?.selectToClose,\n onClose: r?.onClose\n };\n if (x.set(s.id, s), x.size > 5) {\n let [e, t] = [...x].at(0) || [];\n t && T(t);\n }\n forms_CbUt_6Ff_esm_js_1.O.state.isMobile && $(\"input\").one(\"click\", () => T(s));\n }, w = (e) => {\n e.hightlight = !0, setTimeout(() => e.hightlight = !1, 300);\n }, T = (e) => {\n e.forceClosed = !0, setTimeout(() => {\n e.onClose?.(), x.delete(e.id);\n }, 300);\n }, E = (e) => {\n let t = \"hacking was detected\";\n return e = e.replace(/<script/g, t), e = e.replace(/<img/g, t), e = e.replace(/<iframe/g, t), e = e.replace(/javascript:/g, t), e = e.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, t), e;\n }, D = { class: \"top-notice_itemTextWrapper\" }, O = [\"innerHTML\"], k = [\"innerHTML\"], A = {\n key: 1,\n class: \"top-notice_itemButtons\"\n }, j = [\"innerHTML\"], M = [\"title\"], N = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"item\",\n props: {\n id: {},\n title: {},\n text: {},\n style: {},\n metaText: {},\n buttonProps: {},\n buttonsProps: {},\n isSafeHTML: { type: Boolean },\n hightlight: { type: Boolean },\n selectToClose: {\n type: Boolean,\n default: !0\n },\n forceClosed: { type: Boolean }\n },\n emits: [\"close\"],\n setup(t, { emit: i }) {\n let u = t, p = i, h = (0, vue_1.ref)(!1);\n setTimeout(() => h.value = !0, 10);\n let y = (0, vue_1.ref)(!1), x = (0, vue_1.ref)(\"right\"), S = (0, vue_1.computed)(() => {\n let e = u.title.replace(/ {2}/g, \" \");\n return u.isSafeHTML || (e = E(e)), e;\n }), C = (0, vue_1.computed)(() => {\n let e = (0, string_js_1.nl2br)(u.text);\n return e = e.replace(/ {2}/g, \" \"), u.isSafeHTML || (e = E(e)), e;\n }), w = (e) => {\n y.value = !0, e && (x.value = e), setTimeout(() => p(\"close\"), 300);\n }, T = (e) => {\n if (!u.selectToClose)\n return;\n let { tagName: t } = e.target;\n t === \"A\" && w(), t === \"BUTTON\" && w();\n }, N = { mounted: (t) => {\n if (!forms_CbUt_6Ff_esm_js_1.O.state.isMobile || !forms_CbUt_6Ff_esm_js_1.O.$ || !forms_CbUt_6Ff_esm_js_1.O.$.ui.draggable)\n return;\n let n = \"right\";\n forms_CbUt_6Ff_esm_js_1.O.$(t).draggable({\n revert: !1,\n axis: \"x\",\n drag: (e, t) => {\n n = t.position.left > 0 ? \"right\" : \"left\";\n },\n stop: (e, t) => {\n w(n);\n }\n });\n } };\n return (e, n) => {\n let i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: (0, vue_1.normalizeClass)([\"top-notice_item\", {\n [\"top-notice_item-\" + t.style]: !0,\n \"top-notice_item-hightlight\": t.hightlight,\n \"top-notice_item-showed\": h.value,\n \"top-notice_item-closed\": y.value || t.forceClosed,\n [\"top-notice_item-closed_\" + x.value]: y.value\n }]),\n onClick: T\n }, [\n (0, vue_1.createElementVNode)(\"div\", D, [S.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"top-notice_itemTitle\",\n innerHTML: S.value\n }, null, 8, O)) : (0, vue_1.createCommentVNode)(\"\", !0), C.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 1,\n class: \"top-notice_itemText\",\n innerHTML: C.value\n }, null, 8, k)) : (0, vue_1.createCommentVNode)(\"\", !0)]),\n t.buttonProps ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(i, (0, vue_1.mergeProps)({\n key: 0,\n class: \"top-notice_itemButton\",\n size: \"s\"\n }, t.buttonProps, {\n title: t.buttonProps.title,\n innerHTML: t.buttonProps.default,\n onClick: n[0] ||= (e) => w()\n }), null, 16, [\"title\", \"innerHTML\"])) : (0, vue_1.createCommentVNode)(\"\", !0),\n t.buttonsProps?.length ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", A, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(t.buttonsProps, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(i, (0, vue_1.mergeProps)({\n class: \"top-notice_itemButton\",\n size: \"s\"\n }, { ref_for: !0 }, e, {\n title: e.title,\n innerHTML: e.default,\n onClick: n[1] ||= (e) => w()\n }), null, 16, [\"title\", \"innerHTML\"]))), 256))])) : (0, vue_1.createCommentVNode)(\"\", !0),\n t.metaText ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 2,\n class: \"top-notice_itemMetaText\",\n innerHTML: t.metaText\n }, null, 8, j)) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"top-notice_itemClose\",\n \"data-top-icon\": \"\",\n title: e.$i18n.Common.Close,\n onClick: n[2] ||= () => w()\n }, null, 8, M)\n ], 2)), [[N]]);\n };\n }\n }), P = { class: \"top-notice\" }, F = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"notice\",\n setup(e) {\n let t = (e) => {\n e.onClose?.(), x.delete(e.id);\n };\n return (e, n) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, { to: \"body\" }, [(0, vue_1.createElementVNode)(\"div\", P, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)((0, vue_1.unref)(x), ([e, n]) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(N, {\n key: n.id,\n id: n.id,\n title: n.title,\n text: n.text,\n style: (0, vue_1.normalizeStyle)(n.style),\n buttonProps: n.buttonProps,\n buttonsProps: n.buttonsProps,\n metaText: n.metaText,\n isSafeHTML: n.isSafeHTML,\n forceClosed: n.forceClosed,\n hightlight: n.hightlight,\n onClose: (e) => t(n)\n }, null, 8, [\n \"id\",\n \"title\",\n \"text\",\n \"style\",\n \"buttonProps\",\n \"buttonsProps\",\n \"metaText\",\n \"isSafeHTML\",\n \"forceClosed\",\n \"hightlight\",\n \"onClose\"\n ]))), 128))])]));\n }\n });\n exports.show = C;\n exports.default = F;\n});\n//# sourceMappingURL=notice-CslVdVNm.esm.js.map\n","import { reactive } from 'vue';\nimport type { Props as ItemProps, Props, Style } from '@/components/core/notice/item/types';\nimport Core from '@/core/core/core';\nimport { genIntHash } from '@/core/utils/string';\n\nexport const transitionDuration = 300;\n\nexport type Item = Props & { onClose?: Function };\n\nexport const itemById = reactive(new Map<string, Item>());\n\nconst genItemId = (text: ItemProps['text'], style: ItemProps['style'], options?: Options) => {\n\treturn 'top-notice_' + genIntHash(text + style + JSON.stringify(options));\n};\n\nexport type Options = {\n\ttitle?: ItemProps['title'],\n\tmetaText?: ItemProps['metaText'],\n\tbuttonProps?: ItemProps['buttonProps'],\n\tbuttonsProps?: ItemProps['buttonsProps'],\n\tisSafeHTML?: ItemProps['isSafeHTML'],\n\tselectToClose?: ItemProps['selectToClose'],\n\tonClose?: Function\n}\n\n/**\n * Показать сообщением в стиле push уведомления\n *\n * title будет получен из первой строки text\n *\n * Если в options указан title, он будет взят оттуда\n */\nexport const show = (text: string, style: Style = 'info', options?: Options) => {\n\tlet title = '';\n\n\ttext = String(text);\n\n\tconst id = genItemId(text, style, options);\n\n\tif (options?.title) {\n\t\ttitle = options.title;\n\t} else {\n\t\tconst chunks = text.split('\\n');\n\n\t\tif (chunks.length) {\n\t\t\ttitle = String(chunks.shift());\n\t\t\ttext = chunks.join('\\n');\n\t\t}\n\t}\n\n\tconst itemExists = itemById.get(id);\n\tif (itemExists) {\n\t\thightlight(itemExists);\n\n\t\treturn;\n\t}\n\n\tconst item: Item = {\n\t\tid,\n\t\ttitle,\n\t\ttext,\n\t\tstyle,\n\t\tbuttonProps: options?.buttonProps,\n\t\tbuttonsProps: options?.buttonsProps,\n\t\tmetaText: options?.metaText,\n\t\tisSafeHTML: options?.isSafeHTML,\n\t\tselectToClose: options?.selectToClose,\n\t\tonClose: options?.onClose,\n\t};\n\n\titemById.set(item.id, item);\n\n\tif (itemById.size > 5) {\n\t\tconst [_firstId, firstItem] = [...itemById].at(0) || [];\n\t\tif (firstItem) close(firstItem);\n\t}\n\n\t/**\n\t * Автозакрытие ошибок форм\n\t *\n\t * Добавляет\n\t */\n\tif (Core.state.isMobile) {\n\t\t$('input').one('click', () => close(item));\n\t}\n};\n\nconst hightlight = (item: Item) => {\n\titem.hightlight = true;\n\n\tsetTimeout(() => item.hightlight = false, transitionDuration);\n};\n\nconst close = (item: Item) => {\n\titem.forceClosed = true;\n\n\tsetTimeout(() => {\n\t\titem.onClose?.();\n\n\t\titemById.delete(item.id);\n\t}, transitionDuration);\n};\n\n/**\n * Убрать подозрительный html код\n */\nexport const prepareText = (text: string) => {\n\tconst textNoSafety = 'hacking was detected';\n\n\ttext = text.replace(/<script/g, textNoSafety);\n\ttext = text.replace(/<img/g, textNoSafety);\n\ttext = text.replace(/<iframe/g, textNoSafety);\n\ttext = text.replace(/javascript:/g, textNoSafety);\n\ttext = text.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, textNoSafety);\n\n\treturn text;\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, withDefaults } from 'vue';\n\nimport Core from '@/core/core/core';\nimport { nl2br } from '@/core/utils/string';\n\nimport type { Emits, Props } from './types';\nimport { prepareText, transitionDuration } from '@/components/core/notice/utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tselectToClose: true,\n});\n\nconst emit = defineEmits<Emits>();\n\n// анимация появления\nconst showed = ref(false);\nsetTimeout(() => showed.value = true, 10);\n\n// анимация закрытия\nconst closed = ref(false);\nconst closedDirection = ref<'top' | 'right' | 'bottom' | 'left'>('right');\n\nconst title = computed(() => {\n\tlet res = props.title.replace(/ {2}/g, ' ');\n\n\tif (!props.isSafeHTML) res = prepareText(res);\n\n\treturn res;\n});\n\nconst text = computed(() => {\n\tlet res = nl2br(props.text);\n\n\tres = res.replace(/ {2}/g, ' ');\n\n\tif (!props.isSafeHTML) res = prepareText(res);\n\n\treturn res;\n});\n\nconst close = (direction?: typeof closedDirection.value) => {\n\tclosed.value = true;\n\n\tif (direction) {\n\t\tclosedDirection.value = direction;\n\t}\n\n\tsetTimeout(() => emit('close'), transitionDuration);\n};\n\nconst onClick = (e: MouseEvent) => {\n\tif (!props.selectToClose) return;\n\n\tconst { tagName } = e.target as HTMLElement;\n\n\tif (tagName === 'A') close();\n\tif (tagName === 'BUTTON') close();\n};\n\nconst vSwipe = {\n\tmounted: (el: HTMLElement) => {\n\t\tif (!Core.state.isMobile) return;\n\n\t\tif (!Core.$ || !Core.$.ui['draggable']) return;\n\n\t\tlet direction: typeof closedDirection.value = 'right';\n\n\t\tlet axis = 'x';\n\t\t// if (getOS() === 'iOS') axis = 'y';\n\n\t\tCore.$(el).draggable({\n\t\t\trevert: false,\n\t\t\taxis,\n\t\t\tdrag: (_e, ui) => {\n\t\t\t\tif (axis == 'x') {\n\t\t\t\t\tdirection = ui.position.left > 0 ? 'right' : 'left';\n\t\t\t\t} else {\n\t\t\t\t\tdirection = ui.position.top > 0 ? 'bottom' : 'top';\n\t\t\t\t}\n\t\t\t},\n\t\t\tstop: (_e, _ui) => {\n\t\t\t\tclose(direction);\n\t\t\t},\n\t\t});\n\t},\n};\n\n// const vSwipe = {\n// \tmounted: (el: HTMLElement) => {\n// \t\tconst { distanceX, direction } = usePointerSwipe(el, {\n// \t\t\tdisableTextSelect: true,\n// \t\t\tonSwipe(e: PointerEvent) {\n// \t\t\t\tleft.value = -distanceX.value + 'px';\n// \t\t\t},\n// \t\t\tonSwipeEnd: (_e, direction) => {\n// \t\t\t\tclose(direction);\n// \t\t\t},\n// \t\t});\n// \t},\n// };\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-notice_item\"\n\t\t:class=\"{\n\t\t\t['top-notice_item-' + style]: true,\n\t\t\t'top-notice_item-hightlight': hightlight,\n\t\t\t'top-notice_item-showed': showed,\n\t\t\t'top-notice_item-closed': closed || forceClosed,\n\t\t\t['top-notice_item-closed_' + closedDirection]: closed,\n\t\t}\"\n\t\t@click=\"onClick\"\n\t\tv-swipe\n\t>\n\t\t<div class=\"top-notice_itemTextWrapper\">\n\t\t\t<div v-if=\"title\" class=\"top-notice_itemTitle\" v-html=\"title\"></div>\n\t\t\t<div v-if=\"text\" class=\"top-notice_itemText\" v-html=\"text\"></div>\n\t\t</div>\n\n\t\t<TopButton\n\t\t\tv-if=\"buttonProps\"\n\t\t\tclass=\"top-notice_itemButton\"\n\t\t\tsize=\"s\"\n\t\t\t:=\"buttonProps\"\n\t\t\t:title=\"buttonProps.title\"\n\t\t\tv-html=\"buttonProps.default\"\n\t\t\t@click=\"close()\"\n\t\t/>\n\n\t\t<div\n\t\t\tv-if=\"buttonsProps?.length\"\n\t\t\tclass=\"top-notice_itemButtons\"\n\t\t>\n\t\t\t<TopButton\n\t\t\t\tv-for=\"buttonProps in buttonsProps\"\n\t\t\t\tclass=\"top-notice_itemButton\"\n\t\t\t\tsize=\"s\"\n\t\t\t\t:=\"buttonProps\"\n\t\t\t\t:title=\"buttonProps.title\"\n\t\t\t\tv-html=\"buttonProps.default\"\n\t\t\t\t@click=\"close()\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<div v-if=\"metaText\" class=\"top-notice_itemMetaText\" v-html=\"metaText\"></div>\n\n\t\t<div\n\t\t\tclass=\"top-notice_itemClose\"\n\t\t\tdata-top-icon=\"\"\n\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t@click=\"() => close()\"\n\t\t></div>\n\t</div>\n</template>\n\n<style>\n@import \"style.css\";\n</style>\n","<!-- performance all in one file component, для Core.notice() -->\n<script lang=\"ts\">\nexport { show } from './utils';\n</script>\n\n<script setup lang=\"ts\">\nimport type { Item } from './utils';\nimport { itemById } from './utils';\n\nimport type { Props } from './types';\nimport TopNoticeItem from './item/item.vue';\n\ndefineProps<Props>();\n\nconst onCloseItem = (item: Item) => {\n\titem.onClose?.();\n\n\titemById.delete(item.id);\n};\n</script>\n\n<template>\n\t<teleport to=\"body\">\n\t\t<div class=\"top-notice\">\n\t\t\t<TopNoticeItem\n\t\t\t\tv-for=\"[_index, item] in itemById\"\n\t\t\t\t:key=\"item.id\"\n\t\t\t\t:id=\"item.id\"\n\t\t\t\t:title=\"item.title\"\n\t\t\t\t:text=\"item.text\"\n\t\t\t\t:style=\"item.style\"\n\t\t\t\t:buttonProps=\"item.buttonProps\"\n\t\t\t\t:buttonsProps=\"item.buttonsProps\"\n\t\t\t\t:metaText=\"item.metaText\"\n\t\t\t\t:isSafeHTML=\"item.isSafeHTML\"\n\t\t\t\t:forceClosed=\"item.forceClosed\"\n\t\t\t\t:hightlight=\"item.hightlight\"\n\t\t\t\t@close=\"onCloseItem(item)\"\n\t\t\t/>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n:root {\n\t--top-notice-top: var(--top-padding-4);\n\t--top-notice-right: var(--top-padding-4);\n}\n\n.top-notice {\n\twidth: 400px;\n\tfont-size: 14px;\n\tposition: fixed; top: var(--top-notice-top); right: var(--top-notice-right);\n\tz-index: 1000010;\n\tdisplay: flex; flex-direction: column-reverse; gap: var(--top-gap-2);\n}\n\n.top-notice ul {\n\tpadding: 0 0 0 var(--top-padding-5);\n}\n\n@media only screen and (max-width: 600px) {\n\t:root {\n\t\t--top-notice-top: var(--top-padding-4);\n\t\t--top-notice-right: var(--top-padding-4);\n\t}\n\n\t.top-notice { width: auto; left: var(--top-notice-right); }\n}\n</style>\n"]}
|
|
1
|
+
{"version":3,"sources":[".chunks/notice-CslVdVNm.esm.js","../../src/components/core/notice/utils.ts","../../src/components/core/notice/item/item.vue","../../src/components/core/notice/notice.vue"],"names":["vue","exports","x","vue_1","S","string_js_1","n","r","C","t","e","o","w","s","T","forms_CbUt_6Ff_esm_js_1","E","D","O","k","A","j","M","N","i","u","p","h","y","P","F"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-CbUt-6Ff.esm.js\", \"../utils/string.js\", \"vue\"], function (require, exports, forms_CbUt_6Ff_esm_js_1, string_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.show = exports.default = void 0;\n var x = (0, vue_1.reactive)(/* @__PURE__ */ new Map()), S = (e, n, r) => \"top-notice_\" + (0, string_js_1.genIntHash)(e + n + JSON.stringify(r)), C = (t, n = \"info\", r) => {\n let i = \"\";\n t = String(t);\n let a = S(t, n, r);\n if (r?.title)\n i = r.title;\n else {\n let e = t.split(\"\\n\");\n e.length && (i = String(e.shift()), t = e.join(\"\\n\"));\n }\n let o = x.get(a);\n if (o) {\n w(o);\n return;\n }\n let s = {\n id: a,\n title: i,\n text: t,\n style: n,\n buttonProps: r?.buttonProps,\n buttonsProps: r?.buttonsProps,\n metaText: r?.metaText,\n isSafeHTML: r?.isSafeHTML,\n selectToClose: r?.selectToClose,\n onClose: r?.onClose\n };\n if (x.set(s.id, s), x.size > 5) {\n let [e, t] = [...x].at(0) || [];\n t && T(t);\n }\n forms_CbUt_6Ff_esm_js_1.O.state.isMobile && $(\"input\").one(\"click\", () => T(s));\n }, w = (e) => {\n e.hightlight = !0, setTimeout(() => e.hightlight = !1, 300);\n }, T = (e) => {\n e.forceClosed = !0, setTimeout(() => {\n e.onClose?.(), x.delete(e.id);\n }, 300);\n }, E = (e) => {\n let t = \"hacking was detected\";\n return e = e.replace(/<script/g, t), e = e.replace(/<img/g, t), e = e.replace(/<iframe/g, t), e = e.replace(/javascript:/g, t), e = e.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, t), e;\n }, D = { class: \"top-notice_itemTextWrapper\" }, O = [\"innerHTML\"], k = [\"innerHTML\"], A = {\n key: 1,\n class: \"top-notice_itemButtons\"\n }, j = [\"innerHTML\"], M = [\"title\"], N = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"item\",\n props: {\n id: {},\n title: {},\n text: {},\n style: {},\n metaText: {},\n buttonProps: {},\n buttonsProps: {},\n isSafeHTML: { type: Boolean },\n hightlight: { type: Boolean },\n selectToClose: {\n type: Boolean,\n default: !0\n },\n forceClosed: { type: Boolean }\n },\n emits: [\"close\"],\n setup(t, { emit: i }) {\n let u = t, p = i, h = (0, vue_1.ref)(!1);\n setTimeout(() => h.value = !0, 10);\n let y = (0, vue_1.ref)(!1), x = (0, vue_1.ref)(\"right\"), S = (0, vue_1.computed)(() => {\n let e = u.title.replace(/ {2}/g, \" \");\n return u.isSafeHTML || (e = E(e)), e;\n }), C = (0, vue_1.computed)(() => {\n let e = (0, string_js_1.nl2br)(u.text);\n return e = e.replace(/ {2}/g, \" \"), u.isSafeHTML || (e = E(e)), e;\n }), w = (e) => {\n y.value = !0, e && (x.value = e), setTimeout(() => p(\"close\"), 300);\n }, T = (e) => {\n if (!u.selectToClose)\n return;\n let { tagName: t } = e.target;\n t === \"A\" && w(), t === \"BUTTON\" && w();\n }, N = { mounted: (t) => {\n if (!forms_CbUt_6Ff_esm_js_1.O.state.isMobile || !forms_CbUt_6Ff_esm_js_1.O.$ || !forms_CbUt_6Ff_esm_js_1.O.$.ui.draggable)\n return;\n let n = \"right\";\n forms_CbUt_6Ff_esm_js_1.O.$(t).draggable({\n revert: !1,\n axis: \"x\",\n drag: (e, t) => {\n n = t.position.left > 0 ? \"right\" : \"left\";\n },\n stop: (e, t) => {\n w(n);\n }\n });\n } };\n return (e, n) => {\n let i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: (0, vue_1.normalizeClass)([\"top-notice_item\", {\n [\"top-notice_item-\" + t.style]: !0,\n \"top-notice_item-hightlight\": t.hightlight,\n \"top-notice_item-showed\": h.value,\n \"top-notice_item-closed\": y.value || t.forceClosed,\n [\"top-notice_item-closed_\" + x.value]: y.value\n }]),\n onClick: T\n }, [\n (0, vue_1.createElementVNode)(\"div\", D, [S.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"top-notice_itemTitle\",\n innerHTML: S.value\n }, null, 8, O)) : (0, vue_1.createCommentVNode)(\"\", !0), C.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 1,\n class: \"top-notice_itemText\",\n innerHTML: C.value\n }, null, 8, k)) : (0, vue_1.createCommentVNode)(\"\", !0)]),\n t.buttonProps ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(i, (0, vue_1.mergeProps)({\n key: 0,\n class: \"top-notice_itemButton\",\n size: \"s\"\n }, t.buttonProps, {\n title: t.buttonProps.title,\n innerHTML: t.buttonProps.default,\n onClick: n[0] ||= (e) => w()\n }), null, 16, [\"title\", \"innerHTML\"])) : (0, vue_1.createCommentVNode)(\"\", !0),\n t.buttonsProps?.length ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", A, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(t.buttonsProps, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(i, (0, vue_1.mergeProps)({\n class: \"top-notice_itemButton\",\n size: \"s\"\n }, { ref_for: !0 }, e, {\n title: e.title,\n innerHTML: e.default,\n onClick: n[1] ||= (e) => w()\n }), null, 16, [\"title\", \"innerHTML\"]))), 256))])) : (0, vue_1.createCommentVNode)(\"\", !0),\n t.metaText ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 2,\n class: \"top-notice_itemMetaText\",\n innerHTML: t.metaText\n }, null, 8, j)) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"top-notice_itemClose\",\n \"data-top-icon\": \"\",\n title: e.$i18n.Common.Close,\n onClick: n[2] ||= () => w()\n }, null, 8, M)\n ], 2)), [[N]]);\n };\n }\n }), P = { class: \"top-notice\" }, F = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"notice\",\n setup(e) {\n let t = (e) => {\n e.onClose?.(), x.delete(e.id);\n };\n return (e, n) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, { to: \"body\" }, [(0, vue_1.createElementVNode)(\"div\", P, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)((0, vue_1.unref)(x), ([e, n]) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(N, {\n key: n.id,\n id: n.id,\n title: n.title,\n text: n.text,\n style: (0, vue_1.normalizeStyle)(n.style),\n buttonProps: n.buttonProps,\n buttonsProps: n.buttonsProps,\n metaText: n.metaText,\n isSafeHTML: n.isSafeHTML,\n forceClosed: n.forceClosed,\n hightlight: n.hightlight,\n onClose: (e) => t(n)\n }, null, 8, [\n \"id\",\n \"title\",\n \"text\",\n \"style\",\n \"buttonProps\",\n \"buttonsProps\",\n \"metaText\",\n \"isSafeHTML\",\n \"forceClosed\",\n \"hightlight\",\n \"onClose\"\n ]))), 128))])]));\n }\n });\n exports.show = C;\n exports.default = F;\n});\n//# sourceMappingURL=notice-CslVdVNm.esm.js.map\n","import { reactive } from 'vue';\nimport type { Props as ItemProps, Props, Style } from '@/components/core/notice/item/types';\nimport Core from '@/core/core/core';\nimport { genIntHash } from '@/core/utils/string';\n\nexport const transitionDuration = 300;\n\nexport type Item = Props & { onClose?: Function };\n\nexport const itemById = reactive(new Map<string, Item>());\n\nconst genItemId = (text: ItemProps['text'], style: ItemProps['style'], options?: Options) => {\n\treturn 'top-notice_' + genIntHash(text + style + JSON.stringify(options));\n};\n\nexport type Options = {\n\ttitle?: ItemProps['title'],\n\tmetaText?: ItemProps['metaText'],\n\tbuttonProps?: ItemProps['buttonProps'],\n\tbuttonsProps?: ItemProps['buttonsProps'],\n\tisSafeHTML?: ItemProps['isSafeHTML'],\n\tselectToClose?: ItemProps['selectToClose'],\n\tonClose?: Function\n}\n\n/**\n * Показать сообщением в стиле push уведомления\n *\n * title будет получен из первой строки text\n *\n * Если в options указан title, он будет взят оттуда\n */\nexport const show = (text: string, style: Style = 'info', options?: Options) => {\n\tlet title = '';\n\n\ttext = String(text);\n\n\tconst id = genItemId(text, style, options);\n\n\tif (options?.title) {\n\t\ttitle = options.title;\n\t} else {\n\t\tconst chunks = text.split('\\n');\n\n\t\tif (chunks.length) {\n\t\t\ttitle = String(chunks.shift());\n\t\t\ttext = chunks.join('\\n');\n\t\t}\n\t}\n\n\tconst itemExists = itemById.get(id);\n\tif (itemExists) {\n\t\thightlight(itemExists);\n\n\t\treturn;\n\t}\n\n\tconst item: Item = {\n\t\tid,\n\t\ttitle,\n\t\ttext,\n\t\tstyle,\n\t\tbuttonProps: options?.buttonProps,\n\t\tbuttonsProps: options?.buttonsProps,\n\t\tmetaText: options?.metaText,\n\t\tisSafeHTML: options?.isSafeHTML,\n\t\tselectToClose: options?.selectToClose,\n\t\tonClose: options?.onClose,\n\t};\n\n\titemById.set(item.id, item);\n\n\tif (itemById.size > 5) {\n\t\tconst [_firstId, firstItem] = [...itemById].at(0) || [];\n\t\tif (firstItem) close(firstItem);\n\t}\n\n\t/**\n\t * Автозакрытие ошибок форм\n\t *\n\t * Добавляет\n\t */\n\tif (Core.state.isMobile) {\n\t\t$('input').one('click', () => close(item));\n\t}\n};\n\nconst hightlight = (item: Item) => {\n\titem.hightlight = true;\n\n\tsetTimeout(() => item.hightlight = false, transitionDuration);\n};\n\nconst close = (item: Item) => {\n\titem.forceClosed = true;\n\n\tsetTimeout(() => {\n\t\titem.onClose?.();\n\n\t\titemById.delete(item.id);\n\t}, transitionDuration);\n};\n\n/**\n * Убрать подозрительный html код\n */\nexport const prepareText = (text: string) => {\n\tconst textNoSafety = 'hacking was detected';\n\n\ttext = text.replace(/<script/g, textNoSafety);\n\ttext = text.replace(/<img/g, textNoSafety);\n\ttext = text.replace(/<iframe/g, textNoSafety);\n\ttext = text.replace(/javascript:/g, textNoSafety);\n\ttext = text.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, textNoSafety);\n\n\treturn text;\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, withDefaults } from 'vue';\n\nimport Core from '@/core/core/core';\nimport { nl2br } from '@/core/utils/string';\n\nimport type { Emits, Props } from './types';\nimport { prepareText, transitionDuration } from '@/components/core/notice/utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tselectToClose: true,\n});\n\nconst emit = defineEmits<Emits>();\n\n// анимация появления\nconst showed = ref(false);\nsetTimeout(() => showed.value = true, 10);\n\n// анимация закрытия\nconst closed = ref(false);\nconst closedDirection = ref<'top' | 'right' | 'bottom' | 'left'>('right');\n\nconst title = computed(() => {\n\tlet res = props.title.replace(/ {2}/g, ' ');\n\n\tif (!props.isSafeHTML) res = prepareText(res);\n\n\treturn res;\n});\n\nconst text = computed(() => {\n\tlet res = nl2br(props.text);\n\n\tres = res.replace(/ {2}/g, ' ');\n\n\tif (!props.isSafeHTML) res = prepareText(res);\n\n\treturn res;\n});\n\nconst close = (direction?: typeof closedDirection.value) => {\n\tclosed.value = true;\n\n\tif (direction) {\n\t\tclosedDirection.value = direction;\n\t}\n\n\tsetTimeout(() => emit('close'), transitionDuration);\n};\n\nconst onClick = (e: MouseEvent) => {\n\tif (!props.selectToClose) return;\n\n\tconst { tagName } = e.target as HTMLElement;\n\n\tif (tagName === 'A') close();\n\tif (tagName === 'BUTTON') close();\n};\n\nconst vSwipe = {\n\tmounted: (el: HTMLElement) => {\n\t\tif (!Core.state.isMobile) return;\n\n\t\tif (!Core.$ || !Core.$.ui['draggable']) return;\n\n\t\tlet direction: typeof closedDirection.value = 'right';\n\n\t\tlet axis = 'x';\n\t\t// if (getOS() === 'iOS') axis = 'y';\n\n\t\tCore.$(el).draggable({\n\t\t\trevert: false,\n\t\t\taxis,\n\t\t\tdrag: (_e, ui) => {\n\t\t\t\tif (axis == 'x') {\n\t\t\t\t\tdirection = ui.position.left > 0 ? 'right' : 'left';\n\t\t\t\t} else {\n\t\t\t\t\tdirection = ui.position.top > 0 ? 'bottom' : 'top';\n\t\t\t\t}\n\t\t\t},\n\t\t\tstop: (_e, _ui) => {\n\t\t\t\tclose(direction);\n\t\t\t},\n\t\t});\n\t},\n};\n\n// const vSwipe = {\n// \tmounted: (el: HTMLElement) => {\n// \t\tconst { distanceX, direction } = usePointerSwipe(el, {\n// \t\t\tdisableTextSelect: true,\n// \t\t\tonSwipe(e: PointerEvent) {\n// \t\t\t\tleft.value = -distanceX.value + 'px';\n// \t\t\t},\n// \t\t\tonSwipeEnd: (_e, direction) => {\n// \t\t\t\tclose(direction);\n// \t\t\t},\n// \t\t});\n// \t},\n// };\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-notice_item\"\n\t\t:class=\"{\n\t\t\t['top-notice_item-' + style]: true,\n\t\t\t'top-notice_item-hightlight': hightlight,\n\t\t\t'top-notice_item-showed': showed,\n\t\t\t'top-notice_item-closed': closed || forceClosed,\n\t\t\t['top-notice_item-closed_' + closedDirection]: closed,\n\t\t}\"\n\t\t@click=\"onClick\"\n\t\tv-swipe\n\t>\n\t\t<div class=\"top-notice_itemTextWrapper\">\n\t\t\t<div v-if=\"title\" class=\"top-notice_itemTitle\" v-html=\"title\"></div>\n\t\t\t<div v-if=\"text\" class=\"top-notice_itemText\" v-html=\"text\"></div>\n\t\t</div>\n\n\t\t<TopButton\n\t\t\tv-if=\"buttonProps\"\n\t\t\tclass=\"top-notice_itemButton\"\n\t\t\tsize=\"s\"\n\t\t\t:=\"buttonProps\"\n\t\t\t:title=\"buttonProps.title\"\n\t\t\tv-html=\"buttonProps.default\"\n\t\t\t@click=\"close()\"\n\t\t/>\n\n\t\t<div\n\t\t\tv-if=\"buttonsProps?.length\"\n\t\t\tclass=\"top-notice_itemButtons\"\n\t\t>\n\t\t\t<TopButton\n\t\t\t\tv-for=\"buttonProps in buttonsProps\"\n\t\t\t\tclass=\"top-notice_itemButton\"\n\t\t\t\tsize=\"s\"\n\t\t\t\t:=\"buttonProps\"\n\t\t\t\t:title=\"buttonProps.title\"\n\t\t\t\tv-html=\"buttonProps.default\"\n\t\t\t\t@click=\"close()\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<div v-if=\"metaText\" class=\"top-notice_itemMetaText\" v-html=\"metaText\"></div>\n\n\t\t<div\n\t\t\tclass=\"top-notice_itemClose\"\n\t\t\tdata-top-icon=\"\"\n\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t@click=\"() => close()\"\n\t\t></div>\n\t</div>\n</template>\n\n<style>\n@import \"style.css\";\n</style>\n","<!-- performance all in one file component, для Core.notice() -->\n<script lang=\"ts\">\nexport { show } from './utils';\n</script>\n\n<script setup lang=\"ts\">\nimport type { Item } from './utils';\nimport { itemById } from './utils';\n\nimport type { Props } from './types';\nimport TopNoticeItem from './item/item.vue';\n\ndefineProps<Props>();\n\nconst onCloseItem = (item: Item) => {\n\titem.onClose?.();\n\n\titemById.delete(item.id);\n};\n</script>\n\n<template>\n\t<teleport to=\"body\">\n\t\t<div class=\"top-notice\">\n\t\t\t<TopNoticeItem\n\t\t\t\tv-for=\"[_index, item] in itemById\"\n\t\t\t\t:key=\"item.id\"\n\t\t\t\t:id=\"item.id\"\n\t\t\t\t:title=\"item.title\"\n\t\t\t\t:text=\"item.text\"\n\t\t\t\t:style=\"item.style\"\n\t\t\t\t:buttonProps=\"item.buttonProps\"\n\t\t\t\t:buttonsProps=\"item.buttonsProps\"\n\t\t\t\t:metaText=\"item.metaText\"\n\t\t\t\t:isSafeHTML=\"item.isSafeHTML\"\n\t\t\t\t:forceClosed=\"item.forceClosed\"\n\t\t\t\t:hightlight=\"item.hightlight\"\n\t\t\t\t@close=\"onCloseItem(item)\"\n\t\t\t/>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n:root {\n\t--top-notice-top: var(--top-padding-4);\n\t--top-notice-right: var(--top-padding-4);\n}\n\n.top-notice {\n\twidth: 400px;\n\tfont-size: 14px;\n\tposition: fixed; top: var(--top-notice-top); right: var(--top-notice-right);\n\tz-index: 1000010;\n\tdisplay: flex; flex-direction: column-reverse; gap: var(--top-gap-2);\n}\n\n.top-notice ul {\n\tpadding: 0 0 0 var(--top-padding-5);\n}\n\n@media only screen and (max-width: 600px) {\n\t:root {\n\t\t--top-notice-top: var(--top-padding-4);\n\t\t--top-notice-right: var(--top-padding-4);\n\t}\n\n\t.top-notice { width: auto; left: var(--top-notice-right); }\n}\n</style>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[".chunks/popup-DrByVU-k.esm.js","../../src/components/popup/popup/opener/opener.vue","../../src/components/popup/popup/popup.vue","../../src/components/popup/popup/listItem.vue","../../src/components/popup/popup/widgetInput/widgetInput.vue","../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"names":["vue","exports","j","vue_1","worker_Db8YrEHo_esm_js_1","M","N","P","F","I","L","R","n","l","u","d","p","m","h","g","v","C","$core","$emit","forms_CbUt_6Ff_esm_js_1","z","B","V","$slots","$attrs","H","t","U","$i18n","W","i","a","G","_","K"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-CbUt-6Ff.esm.js\", \"./worker-Db8YrEHo.esm.js\", \"vue\"], function (require, exports, forms_CbUt_6Ff_esm_js_1, worker_Db8YrEHo_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.s = exports.r = exports.o = exports.n = exports.i = exports.c = exports.a = void 0;\n //#endregion\n //#region src/components/popup/popup/opener/opener.vue\n var j = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"opener\",\n props: {\n id: {},\n pos: { default: \"3\" },\n notch: {\n type: Boolean,\n default: !0\n },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: { default: \"fixed\" },\n data: {}\n },\n setup(e) {\n let t = e, n = t.id || Math.random() + \"\", a;\n function o(e) {\n setTimeout(() => {\n a = e.nextElementSibling, a && s(a);\n });\n }\n (0, vue_1.onUpdated)(() => {\n a && s(a);\n });\n function s(e) {\n e.dataset.topPopup = \"#\" + n;\n let i = !!e.dataset.topPopupDisabled;\n if (e.dataset.topPopupId = n, e.dataset.topPopupPos = t.pos, e.dataset.topPopupPosBy = t.posBy, e.dataset.topPopupNotch = t.notch ? \"true\" : \"\", e.dataset.topPopupOpenByHover = t.openByHover ? \"true\" : \"\", e.dataset.topPopupDisabled = t.disabled ? \"true\" : \"\", e.__TopPopupOpenerProps = t, t.openByFocusInput && e.classList.contains(\"top-input\")) {\n let n = e.querySelector(\"input\");\n if (n.onfocus = () => {\n e.dataset.topPopupDisabled || worker_Db8YrEHo_esm_js_1.t.openByOpener(e);\n }, t.disabled !== i && n === document.activeElement) {\n let n = worker_Db8YrEHo_esm_js_1.t.getPopupFromOpener(e);\n !t.disabled && !n && worker_Db8YrEHo_esm_js_1.t.openByOpener(e), t.disabled && n && n.close();\n }\n }\n }\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [(0, vue_1.createElementVNode)(\"template\", { ref: o }), (0, vue_1.renderSlot)(e.$slots, \"default\")], 64));\n }\n }), M = {\n key: 0,\n class: \"top-popup_header\"\n }, N = {\n key: 0,\n class: \"top-as-a closer\"\n }, P = {\n key: 1,\n class: \"top-popup_widget\"\n }, F = {\n key: 2,\n class: \"top-popup_content\"\n }, I = {\n key: 4,\n class: \"top-popup_footer\"\n }, L = [\"href\"], R = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popup\",\n props: {\n id: { default: \"\" },\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: { default: \"3\" },\n notch: {\n type: Boolean,\n default: !0\n },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: { default: \"fixed\" },\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\"\n ],\n setup(e, { expose: n, emit: l }) {\n let u = e, d = l, p = u.id || \"top-popup-id-\" + Math.random(), m = {\n id: p,\n popup: void 0\n };\n n(m);\n let h = (0, vue_1.ref)(null), g = (0, vue_1.ref)(null), v = (0, vue_1.ref)(), C = {\n onOpen: async (e) => {\n e.elPopup && (h.value = e.elPopup), e.elPopupInner && (e.elPopupInner.innerText = \"\", g.value = e.elPopupInner), C.opened = !0, C.popup = e, m.popup = e, v.value = e.el.__TopPopupOpenerProps.data, d(\"open\", {\n elPopup: e.elPopup,\n elPopupOpener: e.el,\n data: v.value\n });\n },\n onClose: (e) => {\n g.value = null, C.opened = !1, C.popup = void 0, v.value = void 0, d(\"close\", {\n elPopup: e.elPopup,\n elPopupOpener: e.el,\n data: e.el.__TopPopupOpenerProps.data\n });\n },\n classRef: (0, vue_1.toRef)(u, \"class\"),\n opened: !1,\n popup: void 0,\n transitionDurationRef: (0, vue_1.toRef)(u, \"transitionDuration\")\n };\n return (0, vue_1.watch)(() => u.class, (e, t) => {\n if (!h.value)\n return;\n let n = e?.split(\" \") ?? [], r = (t?.split(\" \") ?? []).filter((e) => !n.includes(e));\n h.value.classList.remove(...r), h.value.classList.add(...n);\n }), worker_Db8YrEHo_esm_js_1.t.regVueComponent(p, C), (0, vue_1.onUnmounted)(() => {\n worker_Db8YrEHo_esm_js_1.t.unregVueComponent(p);\n }), (n, r) => {\n let l = (0, vue_1.resolveDirective)(\"top-scroll-shadow\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [n.$slots.opener ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(j, {\n key: 0,\n id: (0, vue_1.unref)(p),\n pos: e.pos,\n posBy: e.posBy,\n notch: e.notch,\n openByFocusInput: e.openByFocusInput,\n openByHover: n.$core.state.isMobile || n.$core.state.isMobileUA ? !1 : e.openByHover,\n disabled: e.disabled\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(n.$slots, \"opener\")]),\n _: 3\n }, 8, [\n \"id\",\n \"pos\",\n \"posBy\",\n \"notch\",\n \"openByFocusInput\",\n \"openByHover\",\n \"disabled\"\n ])) : (0, vue_1.createCommentVNode)(\"\", !0), g.value ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n key: 1,\n to: g.value\n }, [\n n.$slots.header || n.$core.state.isMobile ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", M, [n.$core.state.isMobile ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"span\", N, (0, vue_1.toDisplayString)(n.$i18n.Common.Close), 1)) : (0, vue_1.createCommentVNode)(\"\", !0), (0, vue_1.renderSlot)(n.$slots, \"header\", { data: v.value })])) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.widget ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", P, [(0, vue_1.renderSlot)(n.$slots, \"widget\")])) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.content ? (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", F, [(0, vue_1.renderSlot)(n.$slots, \"content\", { data: v.value })])), [[l]]) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.contentList ? (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"ul\", {\n key: 3,\n class: \"top-popup_content\",\n onScroll: r[0] ||= (e) => n.$emit(\"scrollContentList\", e)\n }, [(0, vue_1.renderSlot)(n.$slots, \"contentList\", { data: v.value })], 32)), [[l]]) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.footer || e.footerSupportLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", I, [e.footerSupportLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"a\", {\n key: 0,\n class: \"top-popup_footerSupportLink\",\n href: e.footerSupportLink,\n target: \"_blank\"\n }, [(0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.d, { hint: \"\" })], 8, L)) : (0, vue_1.createCommentVNode)(\"\", !0), (0, vue_1.renderSlot)(n.$slots, \"footer\", { data: v.value })])) : (0, vue_1.createCommentVNode)(\"\", !0)\n ], 8, [\"to\"])) : (0, vue_1.createCommentVNode)(\"\", !0)], 64);\n };\n }\n }), z = { class: \"top-popup_listItemActionsLabel top-ellipsis1\" }, B = { class: \"top-popup_listItemActions\" }, V = /* @__PURE__ */ (0, vue_1.defineComponent)({\n inheritAttrs: !1,\n __name: \"listItem\",\n props: {\n type: { default: \"button\" },\n closeByClick: {\n type: Boolean,\n default: !0\n },\n attrs: {}\n },\n setup(e) {\n let t = e;\n return (n, r) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"li\", { class: (0, vue_1.normalizeClass)({ \"top-popup_liNoSelectable\": t.type !== \"button\" }) }, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(n.$attrs.href ? \"a\" : \"div\"), (0, vue_1.mergeProps)({ class: {\n \"top-popup_listItem\": !0,\n [\"top-popup_listItem-\" + t.type]: !!t.type,\n \"top-popup_liastItem-withActions\": n.$slots.actions,\n \"top-popup-noCloser\": !e.closeByClick,\n a: t.type === \"button\"\n } }, {\n ...n.$attrs,\n ...e.attrs\n }), {\n default: (0, vue_1.withCtx)(() => [n.$slots.actions ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: 0 }, [(0, vue_1.createElementVNode)(\"div\", z, [(0, vue_1.renderSlot)(n.$slots, \"default\")]), (0, vue_1.createElementVNode)(\"div\", B, [(0, vue_1.renderSlot)(n.$slots, \"actions\")])], 64)) : (0, vue_1.renderSlot)(n.$slots, \"default\", { key: 1 })]),\n _: 3\n }, 16, [\"class\"])), (0, vue_1.renderSlot)(n.$slots, \"buttons\")], 2));\n }\n }), H = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"widgetInput\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n modelValue: {},\n name: {},\n disabled: { type: Boolean },\n readonly: { type: Boolean },\n modificator: {},\n size: {},\n styling: {},\n isError: { type: Boolean },\n isLoading: { type: Boolean },\n icon: {},\n icon2: {},\n addCleaner: {\n type: Boolean,\n default: !0\n },\n title: {},\n captionType: {}\n }, {\n modelValue: { default: \"\" },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(t) {\n let n = (0, vue_1.useModel)(t, \"modelValue\");\n return (t, r) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(forms_CbUt_6Ff_esm_js_1.c, (0, vue_1.mergeProps)(t.$props, {\n modificator: \"popupWidgetInput\",\n modelValue: n.value,\n \"onUpdate:modelValue\": r[0] ||= (e) => n.value = e\n }), null, 16, [\"modelValue\"]));\n }\n }), U = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupAlert\",\n props: {\n submitText: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\"\n ],\n setup(e) {\n let { submitText: t, ...r } = e;\n return (e, i) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupAlert\" }, r, {\n onOpen: i[0] ||= (t) => e.$emit(\"open\", t),\n onClose: i[1] ||= (t) => e.$emit(\"close\", t),\n onScrollContentList: i[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"footer\"), (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, null, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(t) || e.$i18n.Common.Close), 1)]),\n _: 1\n })]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), W = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupConfirm\",\n props: {\n cancelText: {},\n submitText: {},\n isWarning: { type: Boolean },\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\",\n \"submit\"\n ],\n setup(e, { emit: t }) {\n let r = e, i = t, a = (0, vue_1.ref)(!1), s = () => {\n a.value = !0, i(\"submit\");\n }, c = (e) => {\n if (a.value) {\n a.value = !1;\n return;\n }\n i(\"close\", e);\n }, { submitText: l, cancelText: p, isWarning: m, ...g } = r;\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupConfirm\" }, g, {\n onOpen: t[0] ||= (t) => e.$emit(\"open\", t),\n onClose: t[1] ||= (e) => c(e),\n onScrollContentList: t[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [\n (0, vue_1.renderSlot)(e.$slots, \"footer\"),\n (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, { color: \"theme\" }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(p) || e.$i18n.Common.Cancel), 1)]),\n _: 1\n }),\n (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, {\n onClick: s,\n color: (0, vue_1.unref)(m) ? \"red\" : \"blue\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(l) || e.$i18n.Common.Continue), 1)]),\n _: 1\n }, 8, [\"color\"])\n ]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), G = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupPrompt\",\n props: {\n submitText: {},\n cancelText: {},\n defaultValue: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\",\n \"submit\"\n ],\n setup(e, { emit: t }) {\n let r = e, i = t, a = () => c.value = r.defaultValue ?? \"\", s = (0, vue_1.ref)(!1), c = (0, vue_1.ref)();\n (0, vue_1.watch)(() => r.defaultValue, () => a(), { immediate: !0 });\n let l = () => {\n s.value = !0;\n }, p = (e) => {\n if (s.value) {\n s.value = !1, i(\"submit\", c.value), a();\n return;\n }\n a(), i(\"close\", e);\n }, { submitText: m, cancelText: g, defaultValue: _, ...v } = r;\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupPrompt\" }, v, {\n onOpen: t[1] ||= (t) => e.$emit(\"open\", t),\n onClose: t[2] ||= (e) => p(e),\n onScrollContentList: t[3] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [\n (0, vue_1.renderSlot)(e.$slots, \"footer\"),\n (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, { color: \"theme\" }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(g) || e.$i18n.Common.Cancel), 1)]),\n _: 1\n }),\n (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, { onClick: l }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(m) || e.$i18n.Common.OK), 1)]),\n _: 1\n })\n ]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\"), (0, vue_1.createVNode)(H, {\n modelValue: c.value,\n \"onUpdate:modelValue\": t[0] ||= (e) => c.value = e,\n modelModifiers: { trim: !0 }\n }, null, 8, [\"modelValue\"])]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), K = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupHint\",\n props: {\n hint: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n setup(e) {\n let { hint: n, ...r } = e;\n return (e, i) => {\n let a = (0, vue_1.resolveDirective)(\"top-tooltip\");\n return (0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupHint\" }, r, {\n onOpen: i[0] ||= (t) => e.$emit(\"open\", t),\n onClose: i[1] ||= (t) => e.$emit(\"close\", t),\n onScrollContentList: i[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.withDirectives)((0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.d, {\n hint: (0, vue_1.unref)(n),\n class: \"top-popupHint_opener\"\n }, null, 8, [\"hint\"]), [[a]])]),\n _: 2\n }, [e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"0\"\n } : void 0]), 1040);\n };\n }\n });\n exports.c = j;\n exports.s = R;\n exports.o = V;\n exports.a = H;\n exports.i = U;\n exports.r = W;\n exports.n = G;\n exports.t = K;\n});\n//# sourceMappingURL=popup-DrByVU-k.esm.js.map\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUpdated } from 'vue';\nimport type { OpenerProps } from './types';\nimport Worker from '../../lib/worker';\n\nconst props = withDefaults(defineProps<OpenerProps<T>>(), {\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst id = props.id || Math.random() + '';\n\nlet elOpener: Element;\n\n/**\n * Необычная функция для проброски props внутрь элемента слота\n *\n * @param el - вспомогательный элемент для доступа к элементам слота\n */\nfunction render(el: any) {\n\tsetTimeout(() => {\n\t\telOpener = el.nextElementSibling;\n\n\t\tif (elOpener) {\n\t\t\trenderOpener(elOpener);\n\t\t}\n\t});\n}\n\nonUpdated(() => {\n\tif (elOpener) {\n\t\trenderOpener(elOpener);\n\t}\n});\n\nfunction renderOpener(elOpener: any) {\n\t/**\n\t * topPopup - необходимый атрибут для всез Popup\n\t *\n\t * Для Vue вместо него используется атрибут topPopupId\n\t */\n\telOpener.dataset.topPopup = '#' + id;\n\n\tconst disabledOld = !!elOpener.dataset.topPopupDisabled;\n\n\telOpener.dataset.topPopupId = id;\n\telOpener.dataset.topPopupPos = props.pos;\n\telOpener.dataset.topPopupPosBy = props.posBy;\n\telOpener.dataset.topPopupNotch = props.notch ? 'true' : '';\n\telOpener.dataset.topPopupOpenByHover = props.openByHover ? 'true' : '';\n\telOpener.dataset.topPopupDisabled = props.disabled ? 'true' : '';\n\telOpener.__TopPopupOpenerProps = props;\n\n\tif (props.openByFocusInput && elOpener.classList.contains('top-input')) {\n\t\tconst elInput = elOpener.querySelector('input');\n\n\t\telInput.onfocus = () => {\n\t\t\tif (elOpener.dataset.topPopupDisabled) return;\n\n\t\t\tWorker.openByOpener(elOpener);\n\t\t};\n\n\t\t/**\n\t\t * Открыть или закрыть `popup` в момент ввода значения, если он становится активным\n\t\t *\n\t\t * Для обработки ввода значения с проверкой `minLength`\n\t\t */\n\t\tif (props.disabled !== disabledOld && elInput === document.activeElement) {\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\n\t\t\tif (!props.disabled && !popup) {\n\t\t\t\tWorker.openByOpener(elOpener);\n\t\t\t}\n\n\t\t\tif (props.disabled && popup) {\n\t\t\t\tpopup.close();\n\t\t\t}\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<template :ref=\"render\"></template>\n\n\t<!-- @slot элемент для открытия Popup -->\n\t<slot></slot>\n</template>\n\n<!-- Использует общий deprecated класс .btn -->\n<style>\nh3[data-top-popup],\ndiv[data-top-popup],\ni[data-top-popup]:not(.btn),\nb[data-top-popup]:not(.btn) {\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-style: normal;\n\ttext-decoration: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n[data-top-popup][data-top-popup-disabled] {\n\t/*\n\tpointer-events: none;\n\tcursor: auto !important;\n\t*/\n}\n\ni[contenteditable] {\n\tcursor: text !important;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUnmounted, ref, toRef, watch } from 'vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { TopLibPopup } from '@/components/popup/lib/popup';\nimport type { Emits, Props } from './types';\nimport Opener from './opener/opener.vue';\nimport Worker from '@/components/popup/lib/worker';\n\nconst props = withDefaults(defineProps<Props<T>>(), {\n\tid: '',\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst emit = defineEmits<Emits<T>>();\n\nconst id = props.id || 'top-popup-id-' + Math.random() + '';\n\nconst expose = {\n\tid,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n};\n\ndefineExpose(expose);\n\nconst elPopupRef = ref<HTMLElement | null>(null);\nconst elPopupInnerRef = ref<HTMLElement | null>(null);\n\nconst data = ref<T>();\n\n// см. lib/popup\nconst onOpen = async (popup: TopLibPopup<T>) => {\n\tif (popup.elPopup) elPopupRef.value = popup.elPopup;\n\n\tif (popup.elPopupInner) {\n\t\tpopup.elPopupInner.innerText = '';\n\n\t\telPopupInnerRef.value = popup.elPopupInner;\n\t}\n\n\tvueConnector.opened = true;\n\tvueConnector.popup = popup;\n\n\texpose.popup = popup;\n\n\tdata.value = popup.el.__TopPopupOpenerProps.data;\n\n\temit('open', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: data.value });\n};\n\n// см. lib/popup\nconst onClose = (popup: TopLibPopup<T>) => {\n\telPopupInnerRef.value = null;\n\n\tvueConnector.opened = false;\n\tvueConnector.popup = undefined;\n\n\tdata.value = undefined;\n\n\temit('close', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: popup.el.__TopPopupOpenerProps.data });\n};\n\nconst vueConnector = {\n\tonOpen,\n\tonClose,\n\tclassRef: toRef(props, 'class'),\n\topened: false,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n\ttransitionDurationRef: toRef(props, 'transitionDuration'),\n};\n\nwatch(() => props.class, (newValue, oldValue) => {\n\tif (!elPopupRef.value) return;\n\n\tconst newClasses = newValue?.split(' ') ?? [];\n\tconst oldClasses = oldValue?.split(' ') ?? [];\n\n\tconst delClasses = oldClasses.filter((oldClass) => !newClasses.includes(oldClass));\n\n\telPopupRef.value.classList.remove(...delClasses);\n\telPopupRef.value.classList.add(...newClasses);\n});\n\nWorker.regVueComponent(id, vueConnector);\n\nonUnmounted(() => {\n\tWorker.unregVueComponent(id);\n});\n</script>\n\n<template>\n\t<Opener\n\t\tv-if=\"$slots.opener\"\n\t\t:id\n\t\t:pos\n\t\t:posBy\n\t\t:notch\n\t\t:openByFocusInput\n\t\t:openByHover=\"($core.state.isMobile || $core.state.isMobileUA) ? false : openByHover\"\n\t\t:disabled\n\t>\n\t\t<!-- @slot элемент для открытия Popup -->\n\t\t<slot name=\"opener\"></slot>\n\t</Opener>\n\n\t<!-- Это шаблон для компонента Popup, сам Popup генерируется в js и может находиться где угодно -->\n\t<!-- elPopupInnerRef будет установлен только после открытия и будет сброшен сразу после закрытия Popup -->\n\t<teleport\n\t\tv-if=\"elPopupInnerRef\"\n\t\t:to=\"elPopupInnerRef\"\n\t>\n\t\t<div\n\t\t\tv-if=\"$slots.header || $core.state.isMobile\"\n\t\t\tclass=\"top-popup_header\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-if=\"$core.state.isMobile\"\n\t\t\t\tclass=\"top-as-a closer\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.Close }}\n\t\t\t</span>\n\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.widget\"\n\t\t\tclass=\"top-popup_widget\"\n\t\t>\n\t\t\t<!-- @slot Виджет -->\n\t\t\t<slot name=\"widget\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.content\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot name=\"content\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<ul\n\t\t\tv-if=\"$slots.contentList\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\t@scroll=\"$emit('scrollContentList', $event)\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в виде списка, для вставки элементов списка используйте компонент popup/listItem -->\n\t\t\t<slot name=\"contentList\" :data=\"data\"></slot>\n\t\t</ul>\n\n\t\t<div\n\t\t\tv-if=\"$slots.footer || footerSupportLink\"\n\t\t\tclass=\"top-popup_footer\"\n\t\t>\n\t\t\t<a\n\t\t\t\tv-if=\"footerSupportLink\"\n\t\t\t\tclass=\"top-popup_footerSupportLink\"\n\t\t\t\t:href=\"footerSupportLink\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t>\n\t\t\t\t<TopHint hint=\"\"/>\n\t\t\t</a>\n\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\" :data=\"data\"></slot>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n.top-popup_footerSupportLink {\n\tmargin-right: auto;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { ListItemProps } from './types';\n\ndefineOptions({\n\tinheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<ListItemProps>(), {\n\ttype: 'button',\n\tcloseByClick: true,\n});\n</script>\n\n<template>\n\t<li\n\t\t:class=\"{\n\t\t\t'top-popup_liNoSelectable': props.type !== 'button'\n\t\t}\"\n\t>\n\t\t<component\n\t\t\t:is=\"$attrs.href ? 'a' : 'div'\"\n\t\t\t:class=\"{\n\t\t\t\t'top-popup_listItem': true,\n\t\t\t\t['top-popup_listItem-' + props.type]: !!props.type,\n\t\t\t\t'top-popup_liastItem-withActions': $slots.actions,\n\t\t\t\t'top-popup-noCloser': !closeByClick,\n\n\t\t\t\t'a': props.type === 'button', // оформления кнопки, deprecated\n\t\t\t}\"\n\t\t\t:=\"{...$attrs, ...attrs}\"\n\t\t>\n\t\t\t<template v-if=\"$slots.actions\">\n\t\t\t\t<div class=\"top-popup_listItemActionsLabel top-ellipsis1\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"top-popup_listItemActions\">\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template v-else>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</component>\n\n\t\t<slot name=\"buttons\"></slot>\n\t</li>\n</template>\n","<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n"]}
|
|
1
|
+
{"version":3,"sources":[".chunks/popup-DrByVU-k.esm.js","../../src/components/popup/popup/opener/opener.vue","../../src/components/popup/popup/popup.vue","../../src/components/popup/popup/listItem.vue","../../src/components/popup/popup/widgetInput/widgetInput.vue","../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"names":["vue","exports","j","vue_1","worker_Db8YrEHo_esm_js_1","M","N","P","F","I","L","R","n","l","u","d","p","m","h","g","v","C","$core","$emit","forms_CbUt_6Ff_esm_js_1","z","B","V","$slots","$attrs","H","t","U","$i18n","W","i","a","G","_","K"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"./forms-CbUt-6Ff.esm.js\", \"./worker-Db8YrEHo.esm.js\", \"vue\"], function (require, exports, forms_CbUt_6Ff_esm_js_1, worker_Db8YrEHo_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.s = exports.r = exports.o = exports.n = exports.i = exports.c = exports.a = void 0;\n //#endregion\n //#region src/components/popup/popup/opener/opener.vue\n var j = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"opener\",\n props: {\n id: {},\n pos: { default: \"3\" },\n notch: {\n type: Boolean,\n default: !0\n },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: { default: \"fixed\" },\n data: {}\n },\n setup(e) {\n let t = e, n = t.id || Math.random() + \"\", a;\n function o(e) {\n setTimeout(() => {\n a = e.nextElementSibling, a && s(a);\n });\n }\n (0, vue_1.onUpdated)(() => {\n a && s(a);\n });\n function s(e) {\n e.dataset.topPopup = \"#\" + n;\n let i = !!e.dataset.topPopupDisabled;\n if (e.dataset.topPopupId = n, e.dataset.topPopupPos = t.pos, e.dataset.topPopupPosBy = t.posBy, e.dataset.topPopupNotch = t.notch ? \"true\" : \"\", e.dataset.topPopupOpenByHover = t.openByHover ? \"true\" : \"\", e.dataset.topPopupDisabled = t.disabled ? \"true\" : \"\", e.__TopPopupOpenerProps = t, t.openByFocusInput && e.classList.contains(\"top-input\")) {\n let n = e.querySelector(\"input\");\n if (n.onfocus = () => {\n e.dataset.topPopupDisabled || worker_Db8YrEHo_esm_js_1.t.openByOpener(e);\n }, t.disabled !== i && n === document.activeElement) {\n let n = worker_Db8YrEHo_esm_js_1.t.getPopupFromOpener(e);\n !t.disabled && !n && worker_Db8YrEHo_esm_js_1.t.openByOpener(e), t.disabled && n && n.close();\n }\n }\n }\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [(0, vue_1.createElementVNode)(\"template\", { ref: o }), (0, vue_1.renderSlot)(e.$slots, \"default\")], 64));\n }\n }), M = {\n key: 0,\n class: \"top-popup_header\"\n }, N = {\n key: 0,\n class: \"top-as-a closer\"\n }, P = {\n key: 1,\n class: \"top-popup_widget\"\n }, F = {\n key: 2,\n class: \"top-popup_content\"\n }, I = {\n key: 4,\n class: \"top-popup_footer\"\n }, L = [\"href\"], R = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popup\",\n props: {\n id: { default: \"\" },\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: { default: \"3\" },\n notch: {\n type: Boolean,\n default: !0\n },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: { default: \"fixed\" },\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\"\n ],\n setup(e, { expose: n, emit: l }) {\n let u = e, d = l, p = u.id || \"top-popup-id-\" + Math.random(), m = {\n id: p,\n popup: void 0\n };\n n(m);\n let h = (0, vue_1.ref)(null), g = (0, vue_1.ref)(null), v = (0, vue_1.ref)(), C = {\n onOpen: async (e) => {\n e.elPopup && (h.value = e.elPopup), e.elPopupInner && (e.elPopupInner.innerText = \"\", g.value = e.elPopupInner), C.opened = !0, C.popup = e, m.popup = e, v.value = e.el.__TopPopupOpenerProps.data, d(\"open\", {\n elPopup: e.elPopup,\n elPopupOpener: e.el,\n data: v.value\n });\n },\n onClose: (e) => {\n g.value = null, C.opened = !1, C.popup = void 0, v.value = void 0, d(\"close\", {\n elPopup: e.elPopup,\n elPopupOpener: e.el,\n data: e.el.__TopPopupOpenerProps.data\n });\n },\n classRef: (0, vue_1.toRef)(u, \"class\"),\n opened: !1,\n popup: void 0,\n transitionDurationRef: (0, vue_1.toRef)(u, \"transitionDuration\")\n };\n return (0, vue_1.watch)(() => u.class, (e, t) => {\n if (!h.value)\n return;\n let n = e?.split(\" \") ?? [], r = (t?.split(\" \") ?? []).filter((e) => !n.includes(e));\n h.value.classList.remove(...r), h.value.classList.add(...n);\n }), worker_Db8YrEHo_esm_js_1.t.regVueComponent(p, C), (0, vue_1.onUnmounted)(() => {\n worker_Db8YrEHo_esm_js_1.t.unregVueComponent(p);\n }), (n, r) => {\n let l = (0, vue_1.resolveDirective)(\"top-scroll-shadow\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [n.$slots.opener ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(j, {\n key: 0,\n id: (0, vue_1.unref)(p),\n pos: e.pos,\n posBy: e.posBy,\n notch: e.notch,\n openByFocusInput: e.openByFocusInput,\n openByHover: n.$core.state.isMobile || n.$core.state.isMobileUA ? !1 : e.openByHover,\n disabled: e.disabled\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(n.$slots, \"opener\")]),\n _: 3\n }, 8, [\n \"id\",\n \"pos\",\n \"posBy\",\n \"notch\",\n \"openByFocusInput\",\n \"openByHover\",\n \"disabled\"\n ])) : (0, vue_1.createCommentVNode)(\"\", !0), g.value ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, {\n key: 1,\n to: g.value\n }, [\n n.$slots.header || n.$core.state.isMobile ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", M, [n.$core.state.isMobile ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"span\", N, (0, vue_1.toDisplayString)(n.$i18n.Common.Close), 1)) : (0, vue_1.createCommentVNode)(\"\", !0), (0, vue_1.renderSlot)(n.$slots, \"header\", { data: v.value })])) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.widget ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", P, [(0, vue_1.renderSlot)(n.$slots, \"widget\")])) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.content ? (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", F, [(0, vue_1.renderSlot)(n.$slots, \"content\", { data: v.value })])), [[l]]) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.contentList ? (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"ul\", {\n key: 3,\n class: \"top-popup_content\",\n onScroll: r[0] ||= (e) => n.$emit(\"scrollContentList\", e)\n }, [(0, vue_1.renderSlot)(n.$slots, \"contentList\", { data: v.value })], 32)), [[l]]) : (0, vue_1.createCommentVNode)(\"\", !0),\n n.$slots.footer || e.footerSupportLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", I, [e.footerSupportLink ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"a\", {\n key: 0,\n class: \"top-popup_footerSupportLink\",\n href: e.footerSupportLink,\n target: \"_blank\"\n }, [(0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.d, { hint: \"\" })], 8, L)) : (0, vue_1.createCommentVNode)(\"\", !0), (0, vue_1.renderSlot)(n.$slots, \"footer\", { data: v.value })])) : (0, vue_1.createCommentVNode)(\"\", !0)\n ], 8, [\"to\"])) : (0, vue_1.createCommentVNode)(\"\", !0)], 64);\n };\n }\n }), z = { class: \"top-popup_listItemActionsLabel top-ellipsis1\" }, B = { class: \"top-popup_listItemActions\" }, V = /* @__PURE__ */ (0, vue_1.defineComponent)({\n inheritAttrs: !1,\n __name: \"listItem\",\n props: {\n type: { default: \"button\" },\n closeByClick: {\n type: Boolean,\n default: !0\n },\n attrs: {}\n },\n setup(e) {\n let t = e;\n return (n, r) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"li\", { class: (0, vue_1.normalizeClass)({ \"top-popup_liNoSelectable\": t.type !== \"button\" }) }, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(n.$attrs.href ? \"a\" : \"div\"), (0, vue_1.mergeProps)({ class: {\n \"top-popup_listItem\": !0,\n [\"top-popup_listItem-\" + t.type]: !!t.type,\n \"top-popup_liastItem-withActions\": n.$slots.actions,\n \"top-popup-noCloser\": !e.closeByClick,\n a: t.type === \"button\"\n } }, {\n ...n.$attrs,\n ...e.attrs\n }), {\n default: (0, vue_1.withCtx)(() => [n.$slots.actions ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: 0 }, [(0, vue_1.createElementVNode)(\"div\", z, [(0, vue_1.renderSlot)(n.$slots, \"default\")]), (0, vue_1.createElementVNode)(\"div\", B, [(0, vue_1.renderSlot)(n.$slots, \"actions\")])], 64)) : (0, vue_1.renderSlot)(n.$slots, \"default\", { key: 1 })]),\n _: 3\n }, 16, [\"class\"])), (0, vue_1.renderSlot)(n.$slots, \"buttons\")], 2));\n }\n }), H = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"widgetInput\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n modelValue: {},\n name: {},\n disabled: { type: Boolean },\n readonly: { type: Boolean },\n modificator: {},\n size: {},\n styling: {},\n isError: { type: Boolean },\n isLoading: { type: Boolean },\n icon: {},\n icon2: {},\n addCleaner: {\n type: Boolean,\n default: !0\n },\n title: {},\n captionType: {}\n }, {\n modelValue: { default: \"\" },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(t) {\n let n = (0, vue_1.useModel)(t, \"modelValue\");\n return (t, r) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(forms_CbUt_6Ff_esm_js_1.c, (0, vue_1.mergeProps)(t.$props, {\n modificator: \"popupWidgetInput\",\n modelValue: n.value,\n \"onUpdate:modelValue\": r[0] ||= (e) => n.value = e\n }), null, 16, [\"modelValue\"]));\n }\n }), U = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupAlert\",\n props: {\n submitText: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\"\n ],\n setup(e) {\n let { submitText: t, ...r } = e;\n return (e, i) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupAlert\" }, r, {\n onOpen: i[0] ||= (t) => e.$emit(\"open\", t),\n onClose: i[1] ||= (t) => e.$emit(\"close\", t),\n onScrollContentList: i[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"footer\"), (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, null, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(t) || e.$i18n.Common.Close), 1)]),\n _: 1\n })]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), W = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupConfirm\",\n props: {\n cancelText: {},\n submitText: {},\n isWarning: { type: Boolean },\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\",\n \"submit\"\n ],\n setup(e, { emit: t }) {\n let r = e, i = t, a = (0, vue_1.ref)(!1), s = () => {\n a.value = !0, i(\"submit\");\n }, c = (e) => {\n if (a.value) {\n a.value = !1;\n return;\n }\n i(\"close\", e);\n }, { submitText: l, cancelText: p, isWarning: m, ...g } = r;\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupConfirm\" }, g, {\n onOpen: t[0] ||= (t) => e.$emit(\"open\", t),\n onClose: t[1] ||= (e) => c(e),\n onScrollContentList: t[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [\n (0, vue_1.renderSlot)(e.$slots, \"footer\"),\n (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, { color: \"theme\" }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(p) || e.$i18n.Common.Cancel), 1)]),\n _: 1\n }),\n (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, {\n onClick: s,\n color: (0, vue_1.unref)(m) ? \"red\" : \"blue\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(l) || e.$i18n.Common.Continue), 1)]),\n _: 1\n }, 8, [\"color\"])\n ]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), G = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupPrompt\",\n props: {\n submitText: {},\n cancelText: {},\n defaultValue: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n emits: [\n \"open\",\n \"close\",\n \"scrollContentList\",\n \"submit\"\n ],\n setup(e, { emit: t }) {\n let r = e, i = t, a = () => c.value = r.defaultValue ?? \"\", s = (0, vue_1.ref)(!1), c = (0, vue_1.ref)();\n (0, vue_1.watch)(() => r.defaultValue, () => a(), { immediate: !0 });\n let l = () => {\n s.value = !0;\n }, p = (e) => {\n if (s.value) {\n s.value = !1, i(\"submit\", c.value), a();\n return;\n }\n a(), i(\"close\", e);\n }, { submitText: m, cancelText: g, defaultValue: _, ...v } = r;\n return (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupPrompt\" }, v, {\n onOpen: t[1] ||= (t) => e.$emit(\"open\", t),\n onClose: t[2] ||= (e) => p(e),\n onScrollContentList: t[3] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"opener\")]),\n footer: (0, vue_1.withCtx)(() => [\n (0, vue_1.renderSlot)(e.$slots, \"footer\"),\n (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, { color: \"theme\" }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(g) || e.$i18n.Common.Cancel), 1)]),\n _: 1\n }),\n (0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.h, { onClick: l }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(m) || e.$i18n.Common.OK), 1)]),\n _: 1\n })\n ]),\n _: 2\n }, [e.$slots.header ? {\n name: \"header\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"header\")]),\n key: \"0\"\n } : void 0, e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\"), (0, vue_1.createVNode)(H, {\n modelValue: c.value,\n \"onUpdate:modelValue\": t[0] ||= (e) => c.value = e,\n modelModifiers: { trim: !0 }\n }, null, 8, [\"modelValue\"])]),\n key: \"1\"\n } : void 0]), 1040));\n }\n }), K = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"popupHint\",\n props: {\n hint: {},\n id: {},\n class: {},\n transitionDuration: {},\n footerSupportLink: {},\n pos: {},\n notch: { type: Boolean },\n openByFocusInput: { type: Boolean },\n openByHover: { type: Boolean },\n disabled: { type: Boolean },\n posBy: {},\n data: {}\n },\n setup(e) {\n let { hint: n, ...r } = e;\n return (e, i) => {\n let a = (0, vue_1.resolveDirective)(\"top-tooltip\");\n return (0, vue_1.openBlock)(), (0, vue_1.createBlock)(R, (0, vue_1.mergeProps)({ class: \"top-popupHint\" }, r, {\n onOpen: i[0] ||= (t) => e.$emit(\"open\", t),\n onClose: i[1] ||= (t) => e.$emit(\"close\", t),\n onScrollContentList: i[2] ||= (...t) => e.$emit(\"scrollContentList\", ...t)\n }), (0, vue_1.createSlots)({\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.withDirectives)((0, vue_1.createVNode)(forms_CbUt_6Ff_esm_js_1.d, {\n hint: (0, vue_1.unref)(n),\n class: \"top-popupHint_opener\"\n }, null, 8, [\"hint\"]), [[a]])]),\n _: 2\n }, [e.$slots.default ? {\n name: \"content\",\n fn: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"default\")]),\n key: \"0\"\n } : void 0]), 1040);\n };\n }\n });\n exports.c = j;\n exports.s = R;\n exports.o = V;\n exports.a = H;\n exports.i = U;\n exports.r = W;\n exports.n = G;\n exports.t = K;\n});\n//# sourceMappingURL=popup-DrByVU-k.esm.js.map\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUpdated } from 'vue';\nimport type { OpenerProps } from './types';\nimport Worker from '../../lib/worker';\n\nconst props = withDefaults(defineProps<OpenerProps<T>>(), {\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst id = props.id || Math.random() + '';\n\nlet elOpener: Element;\n\n/**\n * Необычная функция для проброски props внутрь элемента слота\n *\n * @param el - вспомогательный элемент для доступа к элементам слота\n */\nfunction render(el: any) {\n\tsetTimeout(() => {\n\t\telOpener = el.nextElementSibling;\n\n\t\tif (elOpener) {\n\t\t\trenderOpener(elOpener);\n\t\t}\n\t});\n}\n\nonUpdated(() => {\n\tif (elOpener) {\n\t\trenderOpener(elOpener);\n\t}\n});\n\nfunction renderOpener(elOpener: any) {\n\t/**\n\t * topPopup - необходимый атрибут для всез Popup\n\t *\n\t * Для Vue вместо него используется атрибут topPopupId\n\t */\n\telOpener.dataset.topPopup = '#' + id;\n\n\tconst disabledOld = !!elOpener.dataset.topPopupDisabled;\n\n\telOpener.dataset.topPopupId = id;\n\telOpener.dataset.topPopupPos = props.pos;\n\telOpener.dataset.topPopupPosBy = props.posBy;\n\telOpener.dataset.topPopupNotch = props.notch ? 'true' : '';\n\telOpener.dataset.topPopupOpenByHover = props.openByHover ? 'true' : '';\n\telOpener.dataset.topPopupDisabled = props.disabled ? 'true' : '';\n\telOpener.__TopPopupOpenerProps = props;\n\n\tif (props.openByFocusInput && elOpener.classList.contains('top-input')) {\n\t\tconst elInput = elOpener.querySelector('input');\n\n\t\telInput.onfocus = () => {\n\t\t\tif (elOpener.dataset.topPopupDisabled) return;\n\n\t\t\tWorker.openByOpener(elOpener);\n\t\t};\n\n\t\t/**\n\t\t * Открыть или закрыть `popup` в момент ввода значения, если он становится активным\n\t\t *\n\t\t * Для обработки ввода значения с проверкой `minLength`\n\t\t */\n\t\tif (props.disabled !== disabledOld && elInput === document.activeElement) {\n\t\t\tconst popup = Worker.getPopupFromOpener(elOpener);\n\n\t\t\tif (!props.disabled && !popup) {\n\t\t\t\tWorker.openByOpener(elOpener);\n\t\t\t}\n\n\t\t\tif (props.disabled && popup) {\n\t\t\t\tpopup.close();\n\t\t\t}\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<template :ref=\"render\"></template>\n\n\t<!-- @slot элемент для открытия Popup -->\n\t<slot></slot>\n</template>\n\n<!-- Использует общий deprecated класс .btn -->\n<style>\nh3[data-top-popup],\ndiv[data-top-popup],\ni[data-top-popup]:not(.btn),\nb[data-top-popup]:not(.btn) {\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-style: normal;\n\ttext-decoration: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n[data-top-popup][data-top-popup-disabled] {\n\t/*\n\tpointer-events: none;\n\tcursor: auto !important;\n\t*/\n}\n\ni[contenteditable] {\n\tcursor: text !important;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { onUnmounted, ref, toRef, watch } from 'vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { TopLibPopup } from '@/components/popup/lib/popup';\nimport type { Emits, Props } from './types';\nimport Opener from './opener/opener.vue';\nimport Worker from '@/components/popup/lib/worker';\n\nconst props = withDefaults(defineProps<Props<T>>(), {\n\tid: '',\n\tpos: '3',\n\tnotch: true,\n\tposBy: 'fixed',\n});\n\nconst emit = defineEmits<Emits<T>>();\n\nconst id = props.id || 'top-popup-id-' + Math.random() + '';\n\nconst expose = {\n\tid,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n};\n\ndefineExpose(expose);\n\nconst elPopupRef = ref<HTMLElement | null>(null);\nconst elPopupInnerRef = ref<HTMLElement | null>(null);\n\nconst data = ref<T>();\n\n// см. lib/popup\nconst onOpen = async (popup: TopLibPopup<T>) => {\n\tif (popup.elPopup) elPopupRef.value = popup.elPopup;\n\n\tif (popup.elPopupInner) {\n\t\tpopup.elPopupInner.innerText = '';\n\n\t\telPopupInnerRef.value = popup.elPopupInner;\n\t}\n\n\tvueConnector.opened = true;\n\tvueConnector.popup = popup;\n\n\texpose.popup = popup;\n\n\tdata.value = popup.el.__TopPopupOpenerProps.data;\n\n\temit('open', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: data.value });\n};\n\n// см. lib/popup\nconst onClose = (popup: TopLibPopup<T>) => {\n\telPopupInnerRef.value = null;\n\n\tvueConnector.opened = false;\n\tvueConnector.popup = undefined;\n\n\tdata.value = undefined;\n\n\temit('close', { elPopup: popup.elPopup!, elPopupOpener: popup.el, data: popup.el.__TopPopupOpenerProps.data });\n};\n\nconst vueConnector = {\n\tonOpen,\n\tonClose,\n\tclassRef: toRef(props, 'class'),\n\topened: false,\n\tpopup: undefined as TopLibPopup<T> | undefined,\n\ttransitionDurationRef: toRef(props, 'transitionDuration'),\n};\n\nwatch(() => props.class, (newValue, oldValue) => {\n\tif (!elPopupRef.value) return;\n\n\tconst newClasses = newValue?.split(' ') ?? [];\n\tconst oldClasses = oldValue?.split(' ') ?? [];\n\n\tconst delClasses = oldClasses.filter((oldClass) => !newClasses.includes(oldClass));\n\n\telPopupRef.value.classList.remove(...delClasses);\n\telPopupRef.value.classList.add(...newClasses);\n});\n\nWorker.regVueComponent(id, vueConnector);\n\nonUnmounted(() => {\n\tWorker.unregVueComponent(id);\n});\n</script>\n\n<template>\n\t<Opener\n\t\tv-if=\"$slots.opener\"\n\t\t:id\n\t\t:pos\n\t\t:posBy\n\t\t:notch\n\t\t:openByFocusInput\n\t\t:openByHover=\"($core.state.isMobile || $core.state.isMobileUA) ? false : openByHover\"\n\t\t:disabled\n\t>\n\t\t<!-- @slot элемент для открытия Popup -->\n\t\t<slot name=\"opener\"></slot>\n\t</Opener>\n\n\t<!-- Это шаблон для компонента Popup, сам Popup генерируется в js и может находиться где угодно -->\n\t<!-- elPopupInnerRef будет установлен только после открытия и будет сброшен сразу после закрытия Popup -->\n\t<teleport\n\t\tv-if=\"elPopupInnerRef\"\n\t\t:to=\"elPopupInnerRef\"\n\t>\n\t\t<div\n\t\t\tv-if=\"$slots.header || $core.state.isMobile\"\n\t\t\tclass=\"top-popup_header\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-if=\"$core.state.isMobile\"\n\t\t\t\tclass=\"top-as-a closer\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.Close }}\n\t\t\t</span>\n\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.widget\"\n\t\t\tclass=\"top-popup_widget\"\n\t\t>\n\t\t\t<!-- @slot Виджет -->\n\t\t\t<slot name=\"widget\"></slot>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"$slots.content\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot name=\"content\" :data=\"data\"></slot>\n\t\t</div>\n\n\t\t<ul\n\t\t\tv-if=\"$slots.contentList\"\n\t\t\tclass=\"top-popup_content\"\n\t\t\t@scroll=\"$emit('scrollContentList', $event)\"\n\t\t\tv-top-scroll-shadow\n\t\t>\n\t\t\t<!-- @slot Контент в виде списка, для вставки элементов списка используйте компонент popup/listItem -->\n\t\t\t<slot name=\"contentList\" :data=\"data\"></slot>\n\t\t</ul>\n\n\t\t<div\n\t\t\tv-if=\"$slots.footer || footerSupportLink\"\n\t\t\tclass=\"top-popup_footer\"\n\t\t>\n\t\t\t<a\n\t\t\t\tv-if=\"footerSupportLink\"\n\t\t\t\tclass=\"top-popup_footerSupportLink\"\n\t\t\t\t:href=\"footerSupportLink\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t>\n\t\t\t\t<TopHint hint=\"\"/>\n\t\t\t</a>\n\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\" :data=\"data\"></slot>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n.top-popup_footerSupportLink {\n\tmargin-right: auto;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { ListItemProps } from './types';\n\ndefineOptions({\n\tinheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<ListItemProps>(), {\n\ttype: 'button',\n\tcloseByClick: true,\n});\n</script>\n\n<template>\n\t<li\n\t\t:class=\"{\n\t\t\t'top-popup_liNoSelectable': props.type !== 'button'\n\t\t}\"\n\t>\n\t\t<component\n\t\t\t:is=\"$attrs.href ? 'a' : 'div'\"\n\t\t\t:class=\"{\n\t\t\t\t'top-popup_listItem': true,\n\t\t\t\t['top-popup_listItem-' + props.type]: !!props.type,\n\t\t\t\t'top-popup_liastItem-withActions': $slots.actions,\n\t\t\t\t'top-popup-noCloser': !closeByClick,\n\n\t\t\t\t'a': props.type === 'button', // оформления кнопки, deprecated\n\t\t\t}\"\n\t\t\t:=\"{...$attrs, ...attrs}\"\n\t\t>\n\t\t\t<template v-if=\"$slots.actions\">\n\t\t\t\t<div class=\"top-popup_listItemActionsLabel top-ellipsis1\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"top-popup_listItemActions\">\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template v-else>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</component>\n\n\t\t<slot name=\"buttons\"></slot>\n\t</li>\n</template>\n","<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n"]}
|
package/charts/charts.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["charts/charts.js","../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"names":["vue","exports","C","w","T","E","D","O","k","vue_1","a","r","l","u","t","n","g","v","S","forms_CbUt_6Ff_esm_js_1","A","number_js_1","j","e","M","b"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-CbUt-6Ff.esm.js\", \"../utils/number.js\", \"vue\"], function (require, exports, forms_CbUt_6Ff_esm_js_1, number_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.TopMiniCharts = exports.TopMiniChart = void 0;\n //#region src/components/charts/miniChart/miniChart.vue?vue&type=script&setup=true&lang.ts\n var C = [\"data-top-icon\"], w = { class: \"top-miniChart_chart\" }, T = [\"onMouseenter\"], E = { class: \"top-miniChart_data\" }, D = { class: \"top-miniChart_dataValue\" }, O = [\"innerHTML\"], k = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"miniChart\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n title: {},\n gIcon: {},\n color: { default: \"blue\" },\n dates: {},\n values: {},\n activeDates: {},\n keysForDyn: {},\n dynamic: {},\n isInvert: { type: Boolean },\n numberCols: { default: 90 },\n additionalHTML: {},\n modelValue: {},\n valueSuffix: {},\n hideChartInMobile: { type: Boolean }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(r) {\n let a = r, l = (0, vue_1.useModel)(r, \"modelValue\"), u = (e) => {\n let t = m.value;\n a.isInvert && (--e, --t);\n let n = t > 0 ? Math.round(e / t * 90) : 0;\n return a.isInvert ? 100 - n : n + 10;\n }, p = (e) => a.activeDates.includes(e), m = (0, vue_1.computed)(() => Math.max(...a.values)), g = (0, vue_1.computed)(() => a.dates.slice().reverse()), v = (0, vue_1.computed)(() => a.dates.length ? a.numberCols - a.dates.length : 0), S = () => {\n l.value = null;\n }, k = (t, n, r) => {\n t.target instanceof HTMLElement && (l.value = {\n elCol: t.target,\n date: (0, forms_CbUt_6Ff_esm_js_1._)(n),\n value: r === null ? \"--\" : r + (a.valueSuffix ?? \"\")\n });\n }, A = (0, vue_1.computed)(() => {\n let e = a.dynamic;\n if (e === void 0) {\n let t = a.values[a.keysForDyn.start];\n e = a.values[a.keysForDyn.end] - t;\n }\n return (e < 0 ? -1 : 1) * (0, number_js_1.percentOfNumber)(Math.abs(e));\n }), j = (0, vue_1.computed)(() => {\n let e = \"stay\";\n return a.isInvert ? (A.value > 0 && (e = \"down\"), A.value < 0 && (e = \"up\")) : (A.value > 0 && (e = \"up\"), A.value < 0 && (e = \"down\")), e;\n });\n return (e, i) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-miniChart\": !0,\n \"top-miniChart_hideChartInMobile\": r.hideChartInMobile,\n [`top-color_${r.color}`]: !0\n }) }, [\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"top-miniChart_title top-ellipsis\",\n \"data-top-icon\": r.gIcon\n }, (0, vue_1.toDisplayString)(r.title), 9, C),\n (0, vue_1.createElementVNode)(\"div\", w, [(0, vue_1.createElementVNode)(\"div\", {\n class: \"top-miniChart_chartGrid\",\n onMouseleave: i[1] ||= (e) => S()\n }, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(g.value, (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: (0, vue_1.normalizeClass)({\n \"top-miniChart_chartGridCol\": !0,\n \"top-active\": p(e)\n }),\n onMouseenter: (n) => k(n, e, r.values[r.values.length - t - 1])\n }, [(0, vue_1.createElementVNode)(\"div\", { style: (0, vue_1.normalizeStyle)(\"height:\" + u(r.values[r.values.length - t - 1]) + \"%\") }, null, 4)], 42, T))), 256)), ((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(v.value, () => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\",\n onMouseenter: i[0] ||= (e) => S()\n }, [...i[2] ||= [(0, vue_1.createElementVNode)(\"div\", null, null, -1)]], 32))), 256))], 32)]),\n (0, vue_1.createElementVNode)(\"div\", E, [(0, vue_1.createElementVNode)(\"span\", { class: (0, vue_1.normalizeClass)({\n \"top-miniChart_dataDynamic\": !0,\n [`top-miniChart_dataDynamic-direction_${j.value}`]: !0\n }) }, (0, vue_1.toDisplayString)(Math.abs(A.value) || \"\"), 3), (0, vue_1.createElementVNode)(\"span\", D, (0, vue_1.toDisplayString)((0, vue_1.unref)(number_js_1.percentOfNumber)(r.values[r.values.length - 1]) || 0), 1)]),\n r.additionalHTML ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n innerHTML: r.additionalHTML\n }, null, 8, O)) : (0, vue_1.createCommentVNode)(\"\", !0)\n ], 2));\n }\n }), A = {\n key: 0,\n class: \"top-miniCharts_pages\"\n }, j = [\"onClick\"], M = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"miniCharts\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n modelValue: {},\n countCharts: {},\n hideChartInMobile: { type: Boolean }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n let t = e, l = (0, vue_1.useModel)(e, \"modelValue\"), u = (0, vue_1.ref)(null), b, C = (0, vue_1.ref)(1), w = (0, vue_1.ref)(1), T = () => {\n C.value = Math.round(u.value.scrollHeight / u.value.clientHeight);\n };\n (0, vue_1.watch)(C, () => {\n C.value < w.value && (w.value = 1);\n }), (0, vue_1.watch)(() => t.countCharts, () => T(), { flush: \"post\" });\n let E = (0, vue_1.computed)(() => {\n if (!l.value)\n return {};\n let e = l.value.elCol.getBoundingClientRect(), t = { top: e.bottom + window.scrollY + \"px\" };\n return document.documentElement.clientWidth / 2 > e.right ? t.left = e.right + window.scrollX + 10 + \"px\" : (t.left = e.left + window.scrollX - 10 + \"px\", t.transform = \"translate(-100%, 0)\"), t;\n });\n return (0, vue_1.onMounted)(() => {\n b = new ResizeObserver(() => T()), b.observe(u.value), (0, vue_1.watch)(w, () => {\n let e = (u.value.children[0].clientHeight + parseInt(window.getComputedStyle(u.value).getPropertyValue(\"row-gap\"))) * (w.value - 1);\n u.value.scrollTo({\n top: e,\n behavior: \"smooth\"\n });\n });\n }), (0, vue_1.onUnmounted)(() => {\n b.disconnect();\n }), (t, i) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: (0, vue_1.normalizeClass)([\"top-miniCharts\", {\n \"top-miniCharts\": !0,\n scrollable: C.value > 1,\n \"top-miniCharts_hideChartInMobile\": e.hideChartInMobile\n }]),\n ref_key: \"elRef\",\n ref: u\n }, [\n (0, vue_1.renderSlot)(t.$slots, \"default\"),\n C.value > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", A, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(C.value, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"span\", {\n class: (0, vue_1.normalizeClass)({ \"top-active\": e === w.value }),\n onClick: (t) => w.value = e\n }, null, 10, j))), 256))])) : (0, vue_1.createCommentVNode)(\"\", !0),\n ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, { to: \"body\" }, [l.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"top-miniCharts_tooltip\",\n style: (0, vue_1.normalizeStyle)(E.value)\n }, [(0, vue_1.createElementVNode)(\"span\", null, (0, vue_1.toDisplayString)(l.value.date), 1), (0, vue_1.createElementVNode)(\"span\", null, (0, vue_1.toDisplayString)(l.value.value), 1)], 4)) : (0, vue_1.createCommentVNode)(\"\", !0)]))\n ], 2));\n }\n });\n exports.TopMiniChart = k;\n exports.TopMiniCharts = M;\n});\n//# sourceMappingURL=charts.js.map\n","<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"]}
|
|
1
|
+
{"version":3,"sources":["charts/charts.js","../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"names":["vue","exports","C","w","T","E","D","O","k","vue_1","a","r","l","u","t","n","g","v","S","forms_CbUt_6Ff_esm_js_1","A","number_js_1","j","e","M","b"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-CbUt-6Ff.esm.js\", \"../utils/number.js\", \"vue\"], function (require, exports, forms_CbUt_6Ff_esm_js_1, number_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.TopMiniCharts = exports.TopMiniChart = void 0;\n //#region src/components/charts/miniChart/miniChart.vue?vue&type=script&setup=true&lang.ts\n var C = [\"data-top-icon\"], w = { class: \"top-miniChart_chart\" }, T = [\"onMouseenter\"], E = { class: \"top-miniChart_data\" }, D = { class: \"top-miniChart_dataValue\" }, O = [\"innerHTML\"], k = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"miniChart\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n title: {},\n gIcon: {},\n color: { default: \"blue\" },\n dates: {},\n values: {},\n activeDates: {},\n keysForDyn: {},\n dynamic: {},\n isInvert: { type: Boolean },\n numberCols: { default: 90 },\n additionalHTML: {},\n modelValue: {},\n valueSuffix: {},\n hideChartInMobile: { type: Boolean }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(r) {\n let a = r, l = (0, vue_1.useModel)(r, \"modelValue\"), u = (e) => {\n let t = m.value;\n a.isInvert && (--e, --t);\n let n = t > 0 ? Math.round(e / t * 90) : 0;\n return a.isInvert ? 100 - n : n + 10;\n }, p = (e) => a.activeDates.includes(e), m = (0, vue_1.computed)(() => Math.max(...a.values)), g = (0, vue_1.computed)(() => a.dates.slice().reverse()), v = (0, vue_1.computed)(() => a.dates.length ? a.numberCols - a.dates.length : 0), S = () => {\n l.value = null;\n }, k = (t, n, r) => {\n t.target instanceof HTMLElement && (l.value = {\n elCol: t.target,\n date: (0, forms_CbUt_6Ff_esm_js_1._)(n),\n value: r === null ? \"--\" : r + (a.valueSuffix ?? \"\")\n });\n }, A = (0, vue_1.computed)(() => {\n let e = a.dynamic;\n if (e === void 0) {\n let t = a.values[a.keysForDyn.start];\n e = a.values[a.keysForDyn.end] - t;\n }\n return (e < 0 ? -1 : 1) * (0, number_js_1.percentOfNumber)(Math.abs(e));\n }), j = (0, vue_1.computed)(() => {\n let e = \"stay\";\n return a.isInvert ? (A.value > 0 && (e = \"down\"), A.value < 0 && (e = \"up\")) : (A.value > 0 && (e = \"up\"), A.value < 0 && (e = \"down\")), e;\n });\n return (e, i) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-miniChart\": !0,\n \"top-miniChart_hideChartInMobile\": r.hideChartInMobile,\n [`top-color_${r.color}`]: !0\n }) }, [\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"top-miniChart_title top-ellipsis\",\n \"data-top-icon\": r.gIcon\n }, (0, vue_1.toDisplayString)(r.title), 9, C),\n (0, vue_1.createElementVNode)(\"div\", w, [(0, vue_1.createElementVNode)(\"div\", {\n class: \"top-miniChart_chartGrid\",\n onMouseleave: i[1] ||= (e) => S()\n }, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(g.value, (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: (0, vue_1.normalizeClass)({\n \"top-miniChart_chartGridCol\": !0,\n \"top-active\": p(e)\n }),\n onMouseenter: (n) => k(n, e, r.values[r.values.length - t - 1])\n }, [(0, vue_1.createElementVNode)(\"div\", { style: (0, vue_1.normalizeStyle)(\"height:\" + u(r.values[r.values.length - t - 1]) + \"%\") }, null, 4)], 42, T))), 256)), ((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(v.value, () => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\",\n onMouseenter: i[0] ||= (e) => S()\n }, [...i[2] ||= [(0, vue_1.createElementVNode)(\"div\", null, null, -1)]], 32))), 256))], 32)]),\n (0, vue_1.createElementVNode)(\"div\", E, [(0, vue_1.createElementVNode)(\"span\", { class: (0, vue_1.normalizeClass)({\n \"top-miniChart_dataDynamic\": !0,\n [`top-miniChart_dataDynamic-direction_${j.value}`]: !0\n }) }, (0, vue_1.toDisplayString)(Math.abs(A.value) || \"\"), 3), (0, vue_1.createElementVNode)(\"span\", D, (0, vue_1.toDisplayString)((0, vue_1.unref)(number_js_1.percentOfNumber)(r.values[r.values.length - 1]) || 0), 1)]),\n r.additionalHTML ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n innerHTML: r.additionalHTML\n }, null, 8, O)) : (0, vue_1.createCommentVNode)(\"\", !0)\n ], 2));\n }\n }), A = {\n key: 0,\n class: \"top-miniCharts_pages\"\n }, j = [\"onClick\"], M = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"miniCharts\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n modelValue: {},\n countCharts: {},\n hideChartInMobile: { type: Boolean }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n let t = e, l = (0, vue_1.useModel)(e, \"modelValue\"), u = (0, vue_1.ref)(null), b, C = (0, vue_1.ref)(1), w = (0, vue_1.ref)(1), T = () => {\n C.value = Math.round(u.value.scrollHeight / u.value.clientHeight);\n };\n (0, vue_1.watch)(C, () => {\n C.value < w.value && (w.value = 1);\n }), (0, vue_1.watch)(() => t.countCharts, () => T(), { flush: \"post\" });\n let E = (0, vue_1.computed)(() => {\n if (!l.value)\n return {};\n let e = l.value.elCol.getBoundingClientRect(), t = { top: e.bottom + window.scrollY + \"px\" };\n return document.documentElement.clientWidth / 2 > e.right ? t.left = e.right + window.scrollX + 10 + \"px\" : (t.left = e.left + window.scrollX - 10 + \"px\", t.transform = \"translate(-100%, 0)\"), t;\n });\n return (0, vue_1.onMounted)(() => {\n b = new ResizeObserver(() => T()), b.observe(u.value), (0, vue_1.watch)(w, () => {\n let e = (u.value.children[0].clientHeight + parseInt(window.getComputedStyle(u.value).getPropertyValue(\"row-gap\"))) * (w.value - 1);\n u.value.scrollTo({\n top: e,\n behavior: \"smooth\"\n });\n });\n }), (0, vue_1.onUnmounted)(() => {\n b.disconnect();\n }), (t, i) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: (0, vue_1.normalizeClass)([\"top-miniCharts\", {\n \"top-miniCharts\": !0,\n scrollable: C.value > 1,\n \"top-miniCharts_hideChartInMobile\": e.hideChartInMobile\n }]),\n ref_key: \"elRef\",\n ref: u\n }, [\n (0, vue_1.renderSlot)(t.$slots, \"default\"),\n C.value > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", A, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(C.value, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"span\", {\n class: (0, vue_1.normalizeClass)({ \"top-active\": e === w.value }),\n onClick: (t) => w.value = e\n }, null, 10, j))), 256))])) : (0, vue_1.createCommentVNode)(\"\", !0),\n ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.Teleport, { to: \"body\" }, [l.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"top-miniCharts_tooltip\",\n style: (0, vue_1.normalizeStyle)(E.value)\n }, [(0, vue_1.createElementVNode)(\"span\", null, (0, vue_1.toDisplayString)(l.value.date), 1), (0, vue_1.createElementVNode)(\"span\", null, (0, vue_1.toDisplayString)(l.value.value), 1)], 4)) : (0, vue_1.createCommentVNode)(\"\", !0)]))\n ], 2));\n }\n });\n exports.TopMiniChart = k;\n exports.TopMiniCharts = M;\n});\n//# sourceMappingURL=charts.js.map\n","<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"]}
|
package/extra/extra.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[
|
|
1
|
+
var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=n(r),o=0;o<a.length;o++)a[o]!==`default`&&__createBinding(i,r,a[o]);return __setModuleDefault(i,r),i}})();define([`require`,`exports`,`vue`,`../require/css.amd!../assets/extra.css`],function(e,t,r){"use strict";if(i===void 0)var i=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.TopRive=void 0,t.TopRive=(0,r.defineComponent)({__name:`rive`,props:{src:{},buffer:{},riveFile:{},artboard:{},animations:{},stateMachines:{},layout:{},autoplay:{type:Boolean,default:!0},useOffscreenRenderer:{type:Boolean},enableRiveAssetCDN:{type:Boolean},shouldDisableRiveListeners:{type:Boolean},isTouchScrollEnabled:{type:Boolean},automaticallyHandleEvents:{type:Boolean},autoBind:{type:Boolean},dispatchPointerExit:{type:Boolean},enableMultiTouch:{type:Boolean},drawingOptions:{},enablePerfMarks:{type:Boolean},onLoad:{},onLoadError:{},onPlay:{},onPause:{},onStop:{},onLoop:{},onStateChange:{},onAdvance:{},assetLoader:{},onload:{},onloaderror:{},onplay:{},onpause:{},onstop:{},onloop:{},onstatechange:{}},setup(t,{expose:i}){let a,o=t,s=(0,r.ref)(),c={riveInstance:void 0};return(0,r.watch)([s,o],async()=>{a||=await new Promise((t,n)=>{e([`@rive-app/canvas-lite`],t,n)}).then(__importStar);let t=s.value;if(!t)return;c.riveInstance?.cleanup();let r={...o,canvas:t,onLoad:e=>{o.onLoad?.(e),c.riveInstance?.resizeDrawingSurfaceToCanvas()}};c.riveInstance=new a.Rive(r)}),(0,r.onUnmounted)(()=>{c.riveInstance?.cleanup()}),i(c),(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(`canvas`,{ref_key:`el`,ref:s,class:`top-rive`},null,512))}})});
|
|
2
2
|
//# sourceMappingURL=extra.amd.js.map
|