@topvisor/ui 1.0.42-date.2 → 1.0.42-popupPosition.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.chunks/{core-CTWfwyjq.es.js → core-BGKb9a73.es.js} +4 -4
- package/.chunks/{core-CTWfwyjq.es.js.map → core-BGKb9a73.es.js.map} +1 -1
- package/.chunks/{core-BDx1sI2y.amd.js → core-D-etXW3Y.amd.js} +2 -2
- package/.chunks/{core-BDx1sI2y.amd.js.map → core-D-etXW3Y.amd.js.map} +1 -1
- package/.chunks/{datepicker-Esxy0UQA.amd.js → datepicker-BWaVsTd0.amd.js} +2 -2
- package/.chunks/{datepicker-Esxy0UQA.amd.js.map → datepicker-BWaVsTd0.amd.js.map} +1 -1
- package/.chunks/{datepicker-iaUT_eSc.es.js → datepicker-DCDYQmsc.es.js} +2 -2
- package/.chunks/{datepicker-iaUT_eSc.es.js.map → datepicker-DCDYQmsc.es.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-B-4xalwM.es.js → dialog_selectorRegions-BAK6xG6N.es.js} +4 -4
- package/.chunks/{dialog_selectorRegions-B-4xalwM.es.js.map → dialog_selectorRegions-BAK6xG6N.es.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-C7tvNWJk.amd.js → dialog_selectorRegions-CMI1gx5d.amd.js} +2 -2
- package/.chunks/{dialog_selectorRegions-C7tvNWJk.amd.js.map → dialog_selectorRegions-CMI1gx5d.amd.js.map} +1 -1
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-CqYKaqcT.amd.js → dialogs.vue_vue_type_script_setup_true_lang-BSxHPUWf.amd.js} +2 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BSxHPUWf.amd.js.map +1 -0
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DBzDS_l7.es.js → dialogs.vue_vue_type_script_setup_true_lang-CjUHErAY.es.js} +3 -3
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CjUHErAY.es.js.map +1 -0
- package/.chunks/{forms-BZlFXc5U.es.js → forms-DOGPN_TR.es.js} +50 -51
- package/.chunks/{forms-BZlFXc5U.es.js.map → forms-DOGPN_TR.es.js.map} +1 -1
- package/.chunks/{forms-DMI0BqCj.amd.js → forms-Gb7ujpmz.amd.js} +3 -3
- package/.chunks/{forms-DMI0BqCj.amd.js.map → forms-Gb7ujpmz.amd.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-CACzwZ0A.amd.js → listItem.vue_vue_type_script_setup_true_lang-CF_hIWa6.amd.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-CACzwZ0A.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-CF_hIWa6.amd.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-KxTfgv5Z.es.js → listItem.vue_vue_type_script_setup_true_lang-CJQj81Yq.es.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-KxTfgv5Z.es.js.map → listItem.vue_vue_type_script_setup_true_lang-CJQj81Yq.es.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-CIdaxq15.amd.js → menu.vue_vue_type_style_index_0_lang-CczcI_-j.amd.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-CIdaxq15.amd.js.map → menu.vue_vue_type_style_index_0_lang-CczcI_-j.amd.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-BMpVs3Du.es.js → menu.vue_vue_type_style_index_0_lang-Dq5eEX9i.es.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-BMpVs3Du.es.js.map → menu.vue_vue_type_style_index_0_lang-Dq5eEX9i.es.js.map} +1 -1
- package/.chunks/{notice-ULAk8EKs.amd.js → notice-C5sXcBql.amd.js} +2 -2
- package/.chunks/{notice-ULAk8EKs.amd.js.map → notice-C5sXcBql.amd.js.map} +1 -1
- package/.chunks/{notice-C0QQCxdI.es.js → notice-DE88Oe-t.es.js} +2 -2
- package/.chunks/{notice-C0QQCxdI.es.js.map → notice-DE88Oe-t.es.js.map} +1 -1
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-BjGqYm-r.es.js → page.vue_vue_type_script_setup_true_lang-DFvul4oF.es.js} +4 -4
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-BjGqYm-r.es.js.map → page.vue_vue_type_script_setup_true_lang-DFvul4oF.es.js.map} +1 -1
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-f557_PUb.amd.js → page.vue_vue_type_script_setup_true_lang-DJSuza2e.amd.js} +2 -2
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-f557_PUb.amd.js.map → page.vue_vue_type_script_setup_true_lang-DJSuza2e.amd.js.map} +1 -1
- package/.chunks/popup-B_8bvIsF.amd.js +2 -0
- package/.chunks/{popup-BDm3_TJy.amd.js.map → popup-B_8bvIsF.amd.js.map} +1 -1
- package/.chunks/{popup-Cl0Rac26.es.js → popup-BjsK_pMZ.es.js} +106 -80
- package/.chunks/{popup-Cl0Rac26.es.js.map → popup-BjsK_pMZ.es.js.map} +1 -1
- package/.chunks/{utils-C4bTrMJX.amd.js → utils-BVdq18mg.amd.js} +2 -2
- package/.chunks/{utils-C4bTrMJX.amd.js.map → utils-BVdq18mg.amd.js.map} +1 -1
- package/.chunks/{utils-D9KqMkio.es.js → utils-CRPkMfKD.es.js} +2 -2
- package/.chunks/{utils-D9KqMkio.es.js.map → utils-CRPkMfKD.es.js.map} +1 -1
- package/.chunks/{utils-BfXpHkpA.es.js → utils-CacKxWvO.es.js} +87 -88
- package/.chunks/utils-CacKxWvO.es.js.map +1 -0
- package/.chunks/utils-DiQZv1Ae.amd.js +2 -0
- package/.chunks/utils-DiQZv1Ae.amd.js.map +1 -0
- package/assets/core.css +1 -1
- package/assets/forms.css +1 -1
- package/assets/formsExt.css +1 -1
- package/charts/charts.amd.js +1 -1
- package/charts/charts.js +1 -1
- package/components/dialog/lib/utils.d.ts +5 -5
- package/components/dialog/lib/worker.d.ts +5 -5
- package/components/formsExt/formsExt.d.ts +2 -0
- package/components/formsExt/policy/policy.vue.d.ts +4 -0
- package/components/formsExt/policy/types.d.ts +10 -0
- package/core/app.amd.js +1 -1
- package/core/app.js +5 -5
- package/core/utils/date.d.ts +4 -3
- package/core/utils/dom.d.ts +10 -0
- package/dialog/dialog.amd.js +1 -1
- package/dialog/dialog.js +2 -2
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +1 -1
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +274 -242
- package/formsExt/formsExt.js.map +1 -1
- package/layout/layout.amd.js +1 -1
- package/layout/layout.js +1 -1
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.js +2 -2
- package/popup/worker.amd.js +1 -1
- package/popup/worker.js +2 -2
- package/project/project.amd.js +1 -1
- package/project/project.js +5 -5
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.js +1 -1
- package/utils/clipboard.amd.js +1 -1
- package/utils/clipboard.js +1 -1
- package/utils/date.amd.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/dom.amd.js +1 -1
- package/utils/dom.amd.js.map +1 -1
- package/utils/dom.js +27 -22
- package/utils/dom.js.map +1 -1
- package/utils/lodash.amd.js +1 -1
- package/utils/lodash.js +1 -1
- package/utils/price.amd.js +1 -1
- package/utils/price.js +1 -1
- package/utils/searchers.amd.js +1 -1
- package/utils/searchers.js +3 -3
- package/utils/string.amd.js +1 -1
- package/utils/string.js +1 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CqYKaqcT.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DBzDS_l7.es.js.map +0 -1
- package/.chunks/popup-BDm3_TJy.amd.js +0 -2
- package/.chunks/utils-BV1bu3yj.amd.js +0 -2
- package/.chunks/utils-BV1bu3yj.amd.js.map +0 -1
- package/.chunks/utils-BfXpHkpA.es.js.map +0 -1
package/.chunks/{dialog_selectorRegions-C7tvNWJk.amd.js → dialog_selectorRegions-CMI1gx5d.amd.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","./page.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
//# sourceMappingURL=dialog_selectorRegions-
|
|
1
|
+
define(["require","exports","vue","./page.vue_vue_type_script_setup_true_lang-DJSuza2e.amd","./utils-BVdq18mg.amd","../utils/string.amd","../utils/searchers.amd","./forms-Gb7ujpmz.amd","../require/css.amd!../assets/dialog_selectorRegions.css"],function(j,v,e,_,h,C,p,f){"use strict";if(typeof e>"u")var e=window.Vue;const V={class:"dialog_selectorRegions_header"},b=["data-top-icon"],N=["src","alt"],B={class:"top-ellipsis"},I={class:"dialog_selectorRegions_regionAreaName"},R={key:1},S=["data-top-icon"],E=e.defineComponent({id:"selectorRegions",__name:"dialog_selectorRegions",props:{regions:{},regionsIndexes:{},"@update:regionsIndexes":{type:Function}},setup(L){const s=L,y=h.useTopDialogSelf(),r=e.ref([]),i=e.ref(null),u=e.reactive({searcher_key:-1,key:-1,name:-1}),k=e.computed({get(){return r.value.every(o=>o.selected)},set(o){r.value=r.value.map(l=>({...l,selected:o}))}}),g=o=>{u[o]=-u[o],r.value.sort((l,t)=>!l[o]||!t[o]?-1:l[o]>=t[o]?u[o]:-u[o])},w=()=>{var l;if(!r.value.some(t=>t.selected))return;const o=r.value.filter(t=>t.selected).map(t=>t.index);(l=s["@update:regionsIndexes"])==null||l.call(s,o),y.close()};e.watch([()=>s.regions,()=>s.regionsIndexes],()=>{if(r.value=[],!s.regions||!s.regionsIndexes)return;let o=[...s.regions];const l=new Map(s.regionsIndexes.map((t,a)=>[t,a]));o.sort((t,a)=>{const n=l.get(t.index)??Number.MAX_VALUE,c=l.get(a.index)??Number.MAX_VALUE;return n-c}),o.forEach(t=>{var x;let a=t.name;t.areaName&&(a+=` (${t.areaName})`);const n=((x=s.regionsIndexes)==null?void 0:x.includes(t.index))??!1,c=p.getSearcherGIcon(t.searcher_key),m=t.lang!==void 0?p.getLangLabel(t.searcher_key??999,t.lang):void 0,d=t.device!==void 0?p.getDeviceGIcon(t.device):void 0,D=t.countryCode!==void 0?C.genFlagLinkByCountryCode(t.countryCode):void 0,U={...t,selected:n,title:a,searcherIcon:c,langLabel:m,deviceIcon:d,flagLink:D};r.value.push(U)})});const A=()=>{var o;if(!((o=f.Core.$)!=null&&o.ui.sortable)){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}i.value&&$(i.value).sortable({distance:10,stop:()=>{const l=[...i.value.children].map(t=>Number(t.getAttribute("data-region-index")));r.value.sort((t,a)=>l.indexOf(t.index)-l.indexOf(a.index))}})},T=()=>{var o;(o=f.Core.$)!=null&&o.ui.sortable&&i.value&&$(i.value).sortable("destroy")};return(o,l)=>{const t=e.resolveComponent("TopCheckbox"),a=e.resolveComponent("TopButton");return e.openBlock(),e.createBlock(e.unref(_._sfc_main),{id:e.unref(y).id,pageActive:"selectorRegions",class:"dialog_selectorRegions",height:"600px",width:"600px",onOpen:A,onClose:T},{default:e.withCtx(()=>[e.createVNode(e.unref(_._sfc_main$1),{name:"selectorRegions",order:0},{header:e.withCtx(()=>{var n,c,m;return[e.createElementVNode("div",V,[e.createVNode(t,{modelValue:k.value,"onUpdate:modelValue":l[0]||(l[0]=d=>k.value=d)},null,8,["modelValue"]),e.createVNode(a,{class:"dialog_selectorRegions_sortButton",color:"theme","data-top-icon":"",onClick:l[1]||(l[1]=d=>g("searcher_key")),title:(n=o.$i18n.Projects)==null?void 0:n.Sort_by_search_engine},null,8,["title"]),e.createVNode(a,{class:"dialog_selectorRegions_sortButton",color:"theme","data-top-icon":"",onClick:l[2]||(l[2]=d=>g("key")),title:(c=o.$i18n.Projects)==null?void 0:c.Sort_by_yande_region_code},null,8,["title"]),e.createVNode(a,{class:"dialog_selectorRegions_sortButton",color:"theme","data-top-icon":"",onClick:l[3]||(l[3]=d=>g("name")),title:(m=o.$i18n.Projects)==null?void 0:m.Sort_by_lphabetically},null,8,["title"])])]}),body:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"elRegions",ref:i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,n=>(e.openBlock(),e.createBlock(t,{key:n.index,modelValue:n.selected,"onUpdate:modelValue":c=>n.selected=c,class:"dialog_selectorRegions_region","data-region-index":n.index},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"dialog_selectorRegions_regionSearcherIcon","data-top-icon":n.searcherIcon},null,8,b),n.flagLink?(e.openBlock(),e.createElementBlock("img",{key:0,class:"top-flag",src:"//topvisor.dev"+n.flagLink,alt:n.countryCode},null,8,N)):e.createCommentVNode("",!0),e.createElementVNode("div",B,[e.createTextVNode(e.toDisplayString(n.name)+" ",1),e.createElementVNode("span",I,e.toDisplayString(n.areaName),1)]),n.langLabel?(e.openBlock(),e.createElementBlock("div",R," ["+e.toDisplayString(n.langLabel)+"] ",1)):e.createCommentVNode("",!0),n.deviceIcon?(e.openBlock(),e.createElementBlock("div",{key:2,"data-top-icon":n.deviceIcon},null,8,S)):e.createCommentVNode("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","data-region-index"]))),128))],512)]),footer:e.withCtx(()=>[e.createVNode(a,{onClick:w},{default:e.withCtx(()=>{var n;return[e.createTextVNode(e.toDisplayString((n=o.$i18n.Common)==null?void 0:n.Apply),1)]}),_:1})]),_:1})]),_:1},8,["id"])}}});v.default=E,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
|
|
2
|
+
//# sourceMappingURL=dialog_selectorRegions-CMI1gx5d.amd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog_selectorRegions-
|
|
1
|
+
{"version":3,"file":"dialog_selectorRegions-CMI1gx5d.amd.js","sources":["../../src/components/project/selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'selectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"selectorRegions\"\n\t\tclass=\"dialog_selectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"selectorRegions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_selectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_selectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_selectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"],"names":["dialog","utils","regionsRich","vue","elRegions","sortedVectorByField","isAllSelected","region","sort","sortedField","regionA","regionB","_a","props","regionsIndexes","orderA","orderByRegionIndex","orderB","regions","title","selected","deviceIcon","utils_searchers","flagLink","utils_string","searcherIcon","langLabel","regionRich","a","b","sortedIndexes"],"mappings":"oqBAYAA,EAAAC,EAAA,iBAAA,EAKAC,EAAAC,EAAA,IAAA,CAAA,CAAA,EAKAC,EAAAD,EAAA,IAAA,IAAA,EAKAE,EAAAF,EAAA,SAAA,wBAEM,KAAA,EACC,CAAA,EAMPG,EAAAH,EAAA,SAAA,CAA+B,KAAA,CAE7B,OAAAD,EAAA,MAAA,MAAAK,GAAAA,EAAA,QAAA,qDAIoF,CACrF,CAAA,EAODC,EAAAC,GAAA,gCAIE,CAAAC,EAAAD,CAAA,GAAA,CAAAE,EAAAF,CAAA,EAAA,wBAEyH,gBAU1H,GAAA,CAAAP,EAAA,MAAA,KAAAK,GAAAA,EAAA,QAAA,EAAA,8DAMAK,EAAAC,EAAA,4BAAA,MAAAD,EAAA,KAAAC,EAAAC,cAMDX,EAAA,MAAA,mCAEa,EAAA,IAAA,CAKZ,GAHAD,EAAA,MAAA,CAAA,EAEA,CAAAW,EAAA,SACA,CAAAA,EAAA,eAAA,+FAQC,MAAAE,EAAAC,EAAA,IAAAN,EAAA,KAAA,GAAA,OAAA,UACAO,EAAAD,EAAA,IAAAL,EAAA,KAAA,GAAA,OAAA,oBAEgB,CAAA,EAGjBO,EAAA,QAAAX,GAAA,OACC,IAAAY,EAAAZ,EAAA,KACAA,EAAA,WAAAY,GAAA,KAAAZ,EAAA,QAAA,KAEA,MAAAa,IAAAR,EAAAC,EAAA,iBAAA,YAAAD,EAAA,SAAAL,EAAA,SAAA,4GAGAc,EAAAd,EAAA,SAAA,OAAAe,EAAA,eAAAf,EAAA,MAAA,EAAA,OACAgB,EAAAhB,EAAA,cAAA,OAAAiB,EAAA,yBAAAjB,EAAA,WAAA,EAAA,UAEmB,GAAAA,EACf,SAAAa,EACH,MAAAD,EACA,aAAAM,EACA,UAAAC,EACA,WAAAL,cAKDnB,EAAA,MAAA,KAAAyB,CAAA,CAAiC,CAAA,CACjC,CAAA,8DAQA,QAAA,KAAA,wEAAA,QAEA,CAGDvB,EAAA,oIAQEF,EAAA,MAAA,KAAA,CAAA0B,EAAAC,IAAAC,EAAA,QAAAF,EAAA,KAAA,EAAAE,EAAA,QAAAD,EAAA,KAAA,CAAA,CAAgG,CACjG,CAAA,mDASDzB,EAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../utils/system.amd","../utils/route.amd","../utils/dom.amd"],function(H,w,s,S,d,y){"use strict";if(typeof s>"u")var s=window.Vue;class c{static state={load:void 0,decoratorOnCreate:void 0,viewPageN:0};static inited=!1;static init(e){if(this.inited)return;this.inited=!0,this.state.load=e==null?void 0:e.load,this.state.decoratorOnCreate=e==null?void 0:e.decoratorOnCreate;const a=(e==null?void 0:e.autoInitDelay)??5e3;window.addEventListener("hashchange",t=>{this.opendDialogsFromChangeUrl(t.oldURL,t.newURL)}),this.opendDialogsFromChangeUrl("",location.href),document.addEventListener("mousedown",async t=>{const i=t.target.closest("a[data-to-view]");if(!i)return;let r="next";i.dataset.action==="top-dialog-close"&&(r="prev"),i.href=c.genViewPageHash(i.dataset.toView,r)}),document.addEventListener("click",async t=>{var E,N;const i=t.target.closest("[data-to-view]");if(!i)return;if(i instanceof HTMLAnchorElement&&i.href==="."){t.preventDefault();const m=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});i.dispatchEvent(m),setTimeout(()=>i.click());return}const r=await this.getDialogsUtils(),o=i.dataset.toView,f=o.split("-")[0],g=r.getElDialogById(f);let v="next";if(g){const m=y.querySelectorAllArray(g,".modal-layer"),A=m.reduce((p,U)=>{const u=U.querySelector(":scope > .active");return u&&p.push(u),p},[]);if(A.length){const p=o.split("-")[1].split(":")[0];(((E=m.reduce((u,D)=>{const V=D==null?void 0:D.querySelector(`:scope > [data-view-page="${p}"]`);return V&&u.push(V),u},[])[0])==null?void 0:E.dataset.order)??0)<(((N=A[0])==null?void 0:N.dataset.order)??0)&&(v="prev")}}i.dataset.action==="top-dialog-close"&&(v="prev");const P=c.genViewPageHash(o,v);if(i instanceof HTMLAnchorElement){if(!(g!=null&&g.checkVisibility()))return;if(location.hash.indexOf(o.replace("-","="))!==-1){await r.toViewDirty(o);return}}!!(g!=null&&g.dataset.toViewReplace)?(t.preventDefault(),d.historySetState(!0,P),await r.toViewDirty(o),v=="next"?c.state.viewPageN++:c.state.viewPageN--):i.tagName!=="A"&&(this.compareStates(P,location.hash)?d.historySetState(!1,P):await r.toViewDirty(o))}),setTimeout(()=>this.getDialogsUtils(),a)}static opendDialogsFromChangeUrl(e,a){const t=e.replace(/.*?#/,"#"),n=a.replace(/.*?#/,"#");this.compareStates(t,n)&&this.opendDialogsFromUrl()}static async getDialogsUtils(){const{TopDialogUtils:e}=await new Promise((a,t)=>H(["./utils-
|
|
2
|
-
//# sourceMappingURL=dialogs.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
define(["require","exports","vue","../utils/system.amd","../utils/route.amd","../utils/dom.amd"],function(H,w,s,S,d,y){"use strict";if(typeof s>"u")var s=window.Vue;class c{static state={load:void 0,decoratorOnCreate:void 0,viewPageN:0};static inited=!1;static init(e){if(this.inited)return;this.inited=!0,this.state.load=e==null?void 0:e.load,this.state.decoratorOnCreate=e==null?void 0:e.decoratorOnCreate;const a=(e==null?void 0:e.autoInitDelay)??5e3;window.addEventListener("hashchange",t=>{this.opendDialogsFromChangeUrl(t.oldURL,t.newURL)}),this.opendDialogsFromChangeUrl("",location.href),document.addEventListener("mousedown",async t=>{const i=t.target.closest("a[data-to-view]");if(!i)return;let r="next";i.dataset.action==="top-dialog-close"&&(r="prev"),i.href=c.genViewPageHash(i.dataset.toView,r)}),document.addEventListener("click",async t=>{var E,N;const i=t.target.closest("[data-to-view]");if(!i)return;if(i instanceof HTMLAnchorElement&&i.href==="."){t.preventDefault();const m=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});i.dispatchEvent(m),setTimeout(()=>i.click());return}const r=await this.getDialogsUtils(),o=i.dataset.toView,f=o.split("-")[0],g=r.getElDialogById(f);let v="next";if(g){const m=y.querySelectorAllArray(g,".modal-layer"),A=m.reduce((p,U)=>{const u=U.querySelector(":scope > .active");return u&&p.push(u),p},[]);if(A.length){const p=o.split("-")[1].split(":")[0];(((E=m.reduce((u,D)=>{const V=D==null?void 0:D.querySelector(`:scope > [data-view-page="${p}"]`);return V&&u.push(V),u},[])[0])==null?void 0:E.dataset.order)??0)<(((N=A[0])==null?void 0:N.dataset.order)??0)&&(v="prev")}}i.dataset.action==="top-dialog-close"&&(v="prev");const P=c.genViewPageHash(o,v);if(i instanceof HTMLAnchorElement){if(!(g!=null&&g.checkVisibility()))return;if(location.hash.indexOf(o.replace("-","="))!==-1){await r.toViewDirty(o);return}}!!(g!=null&&g.dataset.toViewReplace)?(t.preventDefault(),d.historySetState(!0,P),await r.toViewDirty(o),v=="next"?c.state.viewPageN++:c.state.viewPageN--):i.tagName!=="A"&&(this.compareStates(P,location.hash)?d.historySetState(!1,P):await r.toViewDirty(o))}),setTimeout(()=>this.getDialogsUtils(),a)}static opendDialogsFromChangeUrl(e,a){const t=e.replace(/.*?#/,"#"),n=a.replace(/.*?#/,"#");this.compareStates(t,n)&&this.opendDialogsFromUrl()}static async getDialogsUtils(){const{TopDialogUtils:e}=await new Promise((a,t)=>H(["./utils-DiQZv1Ae.amd"],a,t));return e}static getDialog(e){return e.closest(".ui-dialog-content")}static get$dialog(e){return e.closest(".ui-dialog-content")}static getPage(e){return e.closest("[data-view-page]")}static get$page(e){return e.closest("[data-view-page]")}static get$pairPage(e){const a=c.get$dialog(e),n=c.get$page(e).data("view-page");return $('[data-view-page="'+n+'"]',a)}static getPairPage(e){const a=c.getDialog(e);if(!a)return;const t=c.getPage(e),n=t==null?void 0:t.dataset.viewPage;return y.querySelectorAllArray(a,`[data-view-page="${n}"]`)}static close(e){const a=$("#"+e);if(a.dialog("instance")){a.dialog("close");return}const t=document.getElementById(e);t instanceof HTMLDialogElement&&t.close()}static destroy(e){const a=$("#"+e);if(a.dialog("instance")){a.dialog("close"),a.dialog("destroy");return}const t=document.getElementById(e);t instanceof HTMLDialogElement&&t.close()}static genViewPageHash(e,a="next"){let t=this.state.viewPageN;a=="prev"?t--:t++;const n=e.split("-"),i=n.shift(),r=n.join("-");let o=d.genHash("vpn",t);return o=d.genHash("view-"+i,r,o),o}static compareStates(e,a){const t=e.match(/[#&]view-[^&]+/g)||[],n=a.match(/[#&]view-[^&]+/g)||[];return!!(t.length!==n.length||t.filter((r,o)=>{const f=n[o]||"";return r!==f}).length)}static opendDialogsFromUrl=async()=>{const e=Number(d.getHash("vpn"))||0;let a;const t=new RegExp("view-((\\w+)=([\\w-]+)(?::([\\w.:-]+))?)","g");for(;a=t.exec(location.hash);){let i="next";return e<this.state.viewPageN&&(i="prev"),(await this.getDialogsUtils()).toViewDirty(a[1],i)}return y.querySelectorAllArray(document,".ui-dialog-content[data-view-page-active]").filter(i=>i.checkVisibility()).forEach(i=>{const r=i.getAttribute("id");if(!r)throw"Диалоговое окно не содержит id";d.getHash("view-"+r)||$(i).dialog("close")}),this.state.viewPageN=e,!0}}class L{id;idAttr;Component;isMounted=s.ref(!1);isReady=s.ref(!1);isOpened=s.ref(!1);pageActive=s.ref("");isLoadingPage=s.ref(!1);pageActiveNext=s.ref("");props;emit;onCloseOnce;constructor(e){this.id=e.id,this.idAttr="dialog_"+e.id,this.Component=s.markRaw(e)}onMounted(e,a){this.isMounted.value=!0,this.props=e.props,this.emit=a.emit}async open(e="main",a,t=[],n,i){a&&await this.setProps(a),n&&(this.onCloseOnce=n),await(await c.getDialogsUtils()).toView(this.idAttr,e,t,i)}async openAsLink(e="main",a,t=[],n,i){a&&await this.setProps(a),n&&(this.onCloseOnce=n);const r=this.idAttr+"-"+e,o=c.genViewPageHash(r,i);d.historySetState(!1,o)}async close(){c.close(this.idAttr)}async destroy(){c.destroy(this.idAttr)}async setProps(e={}){this.isMounted||await S.waitWhile(()=>!this.props);for(const a in this.props)this.props[a]=e[a]}needShowPage(e){return this.isOpened.value?this.pageActive.value===e||this.pageActiveNext.value===e:!1}}const k={class:"top-dialogs",style:{display:"none"}},h=s.shallowReactive(new Map),x=l=>(l=l.replace(/^dialog_/,""),h.get(l)),M=l=>{if(!(l!=null&&l.id))throw console.log({TopDialogComponent:l}),new Error("Expected TopDialogComponent");return h.has(l.id)||h.set(l.id,new L(l)),h.get(l.id)},B=s.defineComponent({name:"DialogWrapper",__name:"dialogs",setup(l){return s.onUnmounted(()=>{h.forEach(e=>e.destroy()),h.clear()}),(e,a)=>(s.openBlock(),s.createElementBlock("div",k,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(h),([t,n])=>(s.openBlock(),s.createBlock(s.resolveDynamicComponent(n.Component),{key:t}))),128))]))}});w.TopDialogWorker=c,w._sfc_main=B,w.addDialogWorker=M,w.getDialogWorker=x});
|
|
2
|
+
//# sourceMappingURL=dialogs.vue_vue_type_script_setup_true_lang-BSxHPUWf.amd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogs.vue_vue_type_script_setup_true_lang-BSxHPUWf.amd.js","sources":["../../src/components/dialog/lib/worker.ts","../../src/components/dialog/dialog/composables/dialogHandle.ts","../../src/components/dialog/dialog/dialogs/dialogs.vue"],"sourcesContent":["import { genHash, getHash, historySetState } from '@/core/utils/route';\nimport type { ElTopDialog, ElTopDialogOpener, ElTopDialogPage, MoveDirection, TopDialogOptions } from './types';\nimport { querySelectorAllArray } from '@/core/utils/dom';\nimport type { $el } from '@/components/types';\n\nexport abstract class TopDialogWorker {\n\tstatic state = {\n\t\tload: undefined as TopDialogOptions['load'] | undefined,\n\t\tdecoratorOnCreate: undefined as TopDialogOptions['decoratorOnCreate'] | undefined,\n\n\t\t/**\n\t\t * Порядковый номер перехода в диалоговых окнах\n\t\t *\n\t\t * Для расчета анимации Вперед / Назад\n\t\t */\n\t\tviewPageN: 0,\n\t};\n\n\tprivate static inited = false;\n\n\t/**\n\t * Инициировать события слежения за парамтерами url\n\t *\n\t * Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу\n\t */\n\tstatic init(options?: TopDialogOptions) {\n\t\tif (this.inited) return;\n\t\tthis.inited = true;\n\n\t\tthis.state.load = options?.load;\n\t\tthis.state.decoratorOnCreate = options?.decoratorOnCreate;\n\n\t\tconst autoInitDelay = options?.autoInitDelay ?? 5000;\n\n\t\twindow.addEventListener('hashchange', (e) => {\n\t\t\tthis.opendDialogsFromChangeUrl(e.oldURL, e.newURL);\n\t\t});\n\n\t\tthis.opendDialogsFromChangeUrl('', location.href);\n\n\t\t/**\n\t\t * Сгенерировать ссылку для перехода к странице диалогового окна\n\t\t */\n\t\tdocument.addEventListener('mousedown', async (e) => {\n\t\t\tconst elEventTarget = e.target as HTMLElement;\n\n\t\t\tconst el = elEventTarget.closest<ElTopDialogOpener<HTMLAnchorElement>>('a[data-to-view]');\n\t\t\tif (!el) return;\n\n\t\t\t// const toView = el.dataset.toView;\n\t\t\t// const viewName = toView.split('-')[0];\n\t\t\t// const $toDialog = $('#' + viewName);\n\t\t\t// const $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\t// const $currentPage = $('> .active', $modalLayers);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\t// /**\n\t\t\t// * Данный алгоритм определения направления работает не корректно, так как для чтения свойства order менят состояние через getDialogsUtils()\n\t\t\t// */\n\t\t\t// if ($currentPage.length) {\n\t\t\t// \tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t//\n\t\t\t// \tconst TopDialogUtils = await this.getDialogsUtils();\n\t\t\t//\n\t\t\t// \tawait TopDialogUtils.updatePageVue(viewName, undefined, pageName);\n\t\t\t//\n\t\t\t// \tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t// \tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t// }\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tel.href = TopDialogWorker.genViewPageHash(el.dataset.toView, moveDirection);\n\t\t});\n\n\t\t/**\n\t\t * Осуществить переход по ссылке с учетом historyType\n\t\t */\n\t\tdocument.addEventListener('click', async (e) => {\n\t\t\tconst elEventTarget = e.target as HTMLElement;\n\n\t\t\tconst el = elEventTarget.closest<ElTopDialogOpener>('[data-to-view]');\n\t\t\tif (!el) return;\n\n\t\t\t// Подождать генерацию ссылки\n\t\t\tif (el instanceof HTMLAnchorElement && el.href === '.') {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst mouseEvent = new MouseEvent('mousedown', {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcancelable: true,\n\t\t\t\t\tview: window,\n\t\t\t\t});\n\n\t\t\t\tel.dispatchEvent(mouseEvent);\n\n\t\t\t\tsetTimeout(() => el.click());\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\n\t\t\tconst elDialog = TopDialogUtils.getElDialogById(viewName);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\tif (elDialog) {\n\t\t\t\tconst elModalLayers = querySelectorAllArray(elDialog, '.modal-layer');\n\t\t\t\tconst elCurrentPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, el) => {\n\t\t\t\t\tconst elCurrentPage = el.querySelector<ElTopDialogPage>(':scope > .active');\n\n\t\t\t\t\tif (elCurrentPage) acc.push(elCurrentPage);\n\n\t\t\t\t\treturn acc;\n\t\t\t\t}, []);\n\n\t\t\t\tif (elCurrentPages.length) {\n\t\t\t\t\tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t\t\tconst elNextPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, el) => {\n\t\t\t\t\t\tconst elNextPage = el?.querySelector<ElTopDialogPage>(`:scope > [data-view-page=\"${pageName}\"]`);\n\n\t\t\t\t\t\tif (elNextPage) acc.push(elNextPage);\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, []);\n\n\t\t\t\t\tif ((elNextPages[0]?.dataset.order ?? 0) < (elCurrentPages[0]?.dataset.order ?? 0)) moveDirection = 'prev';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, moveDirection);\n\n\t\t\tif (el instanceof HTMLAnchorElement) {\n\t\t\t\t// диалоговое окно еще не открыто, произвести переход по ссылке\n\t\t\t\tif (!elDialog?.checkVisibility()) return;\n\n\t\t\t\t// в адресе уже указана эта страница, необходимо явно запросить ее открытие\n\t\t\t\tif (location.hash.indexOf(toView.replace('-', '=')) !== -1) {\n\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst replaceHistory = !!elDialog?.dataset.toViewReplace;\n\n\t\t\tif (replaceHistory) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\thistorySetState(true, hash);\n\n\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\tif (moveDirection == 'next') {\n\t\t\t\t\tTopDialogWorker.state.viewPageN++;\n\t\t\t\t} else {\n\t\t\t\t\tTopDialogWorker.state.viewPageN--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (el.tagName !== 'A') {\n\t\t\t\t\tif (this.compareStates(hash, location.hash)) {\n\t\t\t\t\t\thistorySetState(false, hash);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => this.getDialogsUtils(), autoInitDelay);\n\t}\n\n\tprivate static opendDialogsFromChangeUrl(oldUrl: string, newUrl: string) {\n\t\tconst oldHash = oldUrl.replace(/.*?#/, '#');\n\t\tconst newHash = newUrl.replace(/.*?#/, '#');\n\n\t\tconst dialogsStateChanged = this.compareStates(oldHash, newHash);\n\t\tif (dialogsStateChanged) void this.opendDialogsFromUrl();\n\t}\n\n\tstatic async getDialogsUtils() {\n\t\tconst { TopDialogUtils } = await import('./utils');\n\n\t\treturn TopDialogUtils;\n\t}\n\n\tstatic getDialog(el: HTMLElement) {\n\t\treturn el.closest<ElTopDialog>('.ui-dialog-content');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getDialog()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$dialog($el: $el) {\n\t\treturn $el.closest('.ui-dialog-content');\n\t};\n\n\tstatic getPage(el: HTMLElement) {\n\t\treturn el.closest<ElTopDialogPage>('[data-view-page]');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getPage()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$page($el: $el) {\n\t\treturn $el.closest('[data-view-page]');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getPairPage()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$pairPage($el: $el) {\n\t\tconst $dialog = TopDialogWorker.get$dialog($el);\n\n\t\tconst $page = TopDialogWorker.get$page($el);\n\t\tconst pageName = $page.data('view-page');\n\n\t\treturn $('[data-view-page=\"' + pageName + '\"]', $dialog);\n\t};\n\n\tstatic getPairPage(el: HTMLElement) {\n\t\tconst elDialog = TopDialogWorker.getDialog(el);\n\t\tif (!elDialog) return;\n\n\t\tconst elPage = TopDialogWorker.getPage(el);\n\t\tconst pageName = elPage?.dataset.viewPage;\n\n\t\treturn querySelectorAllArray(elDialog, `[data-view-page=\"${pageName}\"]`);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t */\n\tstatic close(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\t\tif ($dialog.dialog('instance')) {\n\t\t\t$dialog.dialog('close');\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst elDialog = document.getElementById(dialogId);\n\n\t\tif (!(elDialog instanceof HTMLDialogElement)) return;\n\n\t\telDialog.close();\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tstatic destroy(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif ($dialog.dialog('instance')) {\n\t\t\t$dialog.dialog('close');\n\t\t\t$dialog.dialog('destroy');\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst elDialog = document.getElementById(dialogId);\n\t\tif (!(elDialog instanceof HTMLDialogElement)) return;\n\n\t\telDialog.close();\n\t};\n\n\t/**\n\t * Сгенерировать ссылку на страницу в диалоговом окне\n\t * @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}\n\t * @param moveDirection\n\t */\n\tstatic genViewPageHash(toView: string, moveDirection: MoveDirection = 'next') {\n\t\tlet toViewPageN = this.state.viewPageN;\n\t\tif (moveDirection == 'prev') {\n\t\t\ttoViewPageN--;\n\t\t} else {\n\t\t\ttoViewPageN++;\n\t\t}\n\n\t\tconst viewNameAndPageLink = toView.split('-');\n\t\tconst viewName = viewNameAndPageLink.shift();\n\t\tconst pageLink = viewNameAndPageLink.join('-');\n\n\t\tlet hash = genHash('vpn', toViewPageN);\n\t\thash = genHash('view-' + viewName, pageLink, hash);\n\n\t\treturn hash;\n\t};\n\n\t/**\n\t * Сравнить версию открытых диалоговых окон\n\t * @returns вернет true, если состояния открытых окон изменилось\n\t */\n\tstatic compareStates(hash: string, hash2: string) {\n\t\tconst mathes = hash.match(/[#&]view-[^&]+/g) || [];\n\t\tconst mathes2 = hash2.match(/[#&]view-[^&]+/g) || [];\n\n\t\tif (mathes.length !== mathes2.length) return true;\n\n\t\tconst mathesChanged = mathes.filter((math, n) => {\n\t\t\tconst math2 = mathes2[n] || '';\n\n\t\t\treturn math !== math2;\n\t\t});\n\n\t\tif (mathesChanged.length) return true;\n\n\t\treturn false;\n\t};\n\n\tstatic opendDialogsFromUrl = async () => {\n\t\tconst toViewPageN = Number(getHash('vpn')) || 0;\n\n\t\t// Открыть диалоговое окно\n\t\tlet view: RegExpExecArray | null;\n\t\t// const regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)' + '(' + Math.random() + ')?', 'g'); // fix babel minify regexp\n\t\tconst regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)', 'g');\n\n\t\t// TODO: Цикл делает только одну оперцию и выходит (возможно, оставлен специально с какой-то целью, если нет - заменить на if)\n\t\twhile (view = regexp.exec(location.hash)) {\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\t\t\tif (toViewPageN < this.state.viewPageN) moveDirection = 'prev';\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\treturn TopDialogUtils.toViewDirty(view[1], moveDirection);\n\t\t}\n\n\t\t// Закрыть ненужные view\n\t\tconst elDialogs = querySelectorAllArray(document, '.ui-dialog-content[data-view-page-active]') as HTMLDialogElement[];\n\t\telDialogs.filter((elDialog) => {\n\t\t\treturn elDialog.checkVisibility();\n\t\t}).forEach((elDialog) => {\n\t\t\tconst viewName = elDialog.getAttribute('id');\n\t\t\tif (!viewName) throw 'Диалоговое окно не содержит id';\n\t\t\tconst pageName = getHash('view-' + viewName);\n\t\t\tif (!pageName) {\n\t\t\t\tconst $dialog = $(elDialog);\n\n\t\t\t\t$dialog.dialog('close');\n\t\t\t}\n\t\t});\n\n\t\tthis.state.viewPageN = toViewPageN;\n\n\t\treturn true;\n\t};\n}\n","import { type ComponentInstance, type ComponentInternalInstance, markRaw, ref } from 'vue';\nimport { waitWhile } from '@/core/utils/system';\nimport TopDialog from '../dialog.vue';\nimport { TopDialogWorker } from '@/components/dialog/lib/worker';\nimport type { MoveDirection } from '@/components/dialog/lib/types';\nimport type { TopDialogComponent } from './types';\nimport { historySetState } from '@/core/utils/route';\n\n/**\n * Объект для работы с диалоговым окном\n *\n * Каждое окно уникально и может быть открыто одновременно только один раз\n *\n * Можно определить много окон, после чего с ними можно вести работу в любой части приложения\n */\nexport class TopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Индентификатор, определяется на уровне компонента TopDialogComponent\n\t *\n\t * Может использоваться в навигации для открытия нужных окон с нужными настройками\n\t */\n\tid: string;\n\n\t/**\n\t * ID, используемый в верстке диалогового окна\n\t */\n\tidAttr: string;\n\n\t/**\n\t * Пользовательский компонент диалогового окна\n\t */\n\tComponent: T;\n\n\t/**\n\t * Компонент инициирован\n\t *\n\t * Устанавливается после первого вызова useTopDialog()\n\t */\n\tisMounted = ref(false);\n\n\t/**\n\t * Компонент готов к использованию\n\t *\n\t * Используется для внутренних преобразований после отрисовки\n\t */\n\tisReady = ref(false);\n\n\t/**\n\t * Диалоговое окно открыто\n\t */\n\tisOpened = ref(false);\n\n\t/**\n\t * Имя активной страницы дилогового окна\n\t */\n\tpageActive = ref('');\n\n\t/**\n\t * Диалоговое окно находится в состоянии загрузки своей страницы\n\t */\n\tisLoadingPage = ref(false);\n\n\t/**\n\t * Следующая активная страница\n\t *\n\t * В один момент времени может потребоваться отобразить две страницы, чтобы воспроизвести анимацию\n\t */\n\tpageActiveNext = ref('');\n\n\t/**\n\t * props компонента, доступны после инициализации\n\t */\n\tprops?: ComponentInstance<T>['$props'];\n\n\t/**\n\t * emit базового компонента `TopDialog`\n\t */\n\temit?: ComponentInstance<typeof TopDialog>['$emit'];\n\n\t/**\n\t * Одноразовое событие на закрытие диалогового окна\n\t *\n\t * Используется для привязки окна к сценариям использования\n\t */\n\tonCloseOnce?: (props: typeof this.props, pageName: string) => void;\n\n\tconstructor(TopDialogComponent: T) {\n\t\tthis.id = TopDialogComponent.id!;\n\t\tthis.idAttr = 'dialog_' + TopDialogComponent.id;\n\t\tthis.Component = markRaw(TopDialogComponent);\n\t}\n\n\t/**\n\t * Событие - компонент инициирован\n\t */\n\tonMounted(topDialogComponent: ComponentInternalInstance, topDialogBaseComponent: ComponentInternalInstance) {\n\t\tthis.isMounted.value = true;\n\t\tthis.props = topDialogComponent.props;\n\t\tthis.emit = topDialogBaseComponent.emit;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t *\n\t * Учтите, что props в диалоговом окне будут доступны не сразу, а только после инициализации vue компонента\n\t */\n\tasync open(pageName: string = 'main', props?: {}, args: [] = [], onCloseOnce?: typeof this.onCloseOnce, moveDirection?: MoveDirection) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst TopDialogUtils = await TopDialogWorker.getDialogsUtils();\n\n\t\tawait TopDialogUtils.toView(this.idAttr, pageName, args, moveDirection);\n\t};\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Диалоговые окна загружаются по имени, см. настройку плагина Core topDialogLoader\n\t */\n\tasync openAsLink(\n\t\tpageName: string = 'main',\n\t\tprops?: {},\n\t\t_args: string[] = [],\n\t\tonCloseOnce?: typeof this.onCloseOnce,\n\t\tmoveDirection?: MoveDirection,\n\t) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst viewName = this.idAttr + '-' + pageName;\n\n\t\tconst hash = TopDialogWorker.genViewPageHash(viewName, moveDirection);\n\t\thistorySetState(false, hash);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close() {\n\t\tTopDialogWorker.close(this.idAttr);\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tasync destroy() {\n\t\tTopDialogWorker.destroy(this.idAttr);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(props: ComponentInstance<T>['$props'] = {}) {\n\t\t// ожидание инициализации компонента\n\t\tif (!this.isMounted) {\n\t\t\tawait waitWhile(() => !this.props);\n\t\t}\n\n\t\tfor (const name in this.props) {\n\t\t\tthis.props[name] = props[name];\n\t\t}\n\t}\n\n\t/**\n\t * Проверить, есть ли необходимость отрисовки страницы диалогового окна\n\t */\n\tneedShowPage(pageName: string): boolean {\n\t\tif (!this.isOpened.value) return false;\n\n\t\treturn this.pageActive.value === pageName || this.pageActiveNext.value === pageName;\n\t}\n}\n","<script lang=\"ts\">\nimport { shallowReactive } from 'vue';\nimport { TopDialogHandle } from '@/components/dialog/dialog/composables/dialogHandle';\nimport type { TopDialogComponent } from '@/components/dialog/dialog/composables/types';\n\n/**\n * Словарь всех используемых диалоговых окон\n *\n * В других компонентах не использовать\n */\nconst dialogsWorkers = shallowReactive(new Map<string, TopDialogHandle<TopDialogComponent>>());\n\n/**\n * Получить компонент диалогового окна по id\n */\nexport const getDialogWorker = (id: string) => {\n\tid = id.replace(/^dialog_/, '');\n\n\treturn dialogsWorkers.get(id);\n};\n\n/**\n * Добавить компонент диалогового окна для использования\n */\nexport const addDialogWorker = <T extends TopDialogComponent>(TopDialogComponent: T): TopDialogHandle<T> => {\n\tif (!TopDialogComponent?.id) {\n\t\tconsole.log({ TopDialogComponent: TopDialogComponent });\n\n\t\tthrow new Error('Expected TopDialogComponent');\n\t}\n\n\tif (!dialogsWorkers.has(TopDialogComponent.id)) {\n\t\tdialogsWorkers.set(TopDialogComponent.id, new TopDialogHandle(TopDialogComponent));\n\t}\n\n\treturn dialogsWorkers.get(TopDialogComponent.id) as TopDialogHandle<T>;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { onUnmounted } from 'vue';\n\ndefineOptions({\n\tname: 'DialogWrapper',\n});\n\nonUnmounted(() => {\n\tdialogsWorkers.forEach(dialog => dialog.destroy());\n\tdialogsWorkers.clear();\n});\n</script>\n\n<template>\n\t<div class=\"top-dialogs\" style=\"display: none;\">\n\t\t<component\n\t\t\tv-for=\"[dialogId, dialog] in dialogsWorkers\"\n\t\t\t:is=\"dialog.Component\"\n\t\t\t:key=\"dialogId\"\n\t\t/>\n\t</div>\n</template>\n"],"names":["TopDialogWorker","options","autoInitDelay","e","el","moveDirection","mouseEvent","TopDialogUtils","toView","acc","elCurrentPages","pageName","elNextPage","el2","elDialog","utils_route","hash","oldUrl","newUrl","$el","elPage","utils_dom","dialogId","$dialog","toViewPageN","viewName","viewNameAndPageLink","hash2","view","TopDialogHandle","vue","TopDialogComponent","topDialogComponent","topDialogBaseComponent","props","args","onCloseOnce","_args","name","dialogsWorkers","getDialogWorker","id","addDialogWorker"],"mappings":"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"}
|
|
@@ -76,7 +76,7 @@ class c {
|
|
|
76
76
|
this.compareStates(t, s) && this.opendDialogsFromUrl();
|
|
77
77
|
}
|
|
78
78
|
static async getDialogsUtils() {
|
|
79
|
-
const { TopDialogUtils: e } = await import("./utils-
|
|
79
|
+
const { TopDialogUtils: e } = await import("./utils-CacKxWvO.es.js");
|
|
80
80
|
return e;
|
|
81
81
|
}
|
|
82
82
|
static getDialog(e) {
|
|
@@ -171,7 +171,7 @@ class c {
|
|
|
171
171
|
let i = "next";
|
|
172
172
|
return e < this.state.viewPageN && (i = "prev"), (await this.getDialogsUtils()).toViewDirty(a[1], i);
|
|
173
173
|
}
|
|
174
|
-
return P(document, "dialog[page-active]").filter((i) => i.checkVisibility()).forEach((i) => {
|
|
174
|
+
return P(document, ".ui-dialog-content[data-view-page-active]").filter((i) => i.checkVisibility()).forEach((i) => {
|
|
175
175
|
const n = i.getAttribute("id");
|
|
176
176
|
if (!n) throw "Диалоговое окно не содержит id";
|
|
177
177
|
L("view-" + n) || $(i).dialog("close");
|
|
@@ -319,4 +319,4 @@ export {
|
|
|
319
319
|
Q as a,
|
|
320
320
|
K as g
|
|
321
321
|
};
|
|
322
|
-
//# sourceMappingURL=dialogs.vue_vue_type_script_setup_true_lang-
|
|
322
|
+
//# sourceMappingURL=dialogs.vue_vue_type_script_setup_true_lang-CjUHErAY.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogs.vue_vue_type_script_setup_true_lang-CjUHErAY.es.js","sources":["../../src/components/dialog/lib/worker.ts","../../src/components/dialog/dialog/composables/dialogHandle.ts","../../src/components/dialog/dialog/dialogs/dialogs.vue"],"sourcesContent":["import { genHash, getHash, historySetState } from '@/core/utils/route';\nimport type { ElTopDialog, ElTopDialogOpener, ElTopDialogPage, MoveDirection, TopDialogOptions } from './types';\nimport { querySelectorAllArray } from '@/core/utils/dom';\nimport type { $el } from '@/components/types';\n\nexport abstract class TopDialogWorker {\n\tstatic state = {\n\t\tload: undefined as TopDialogOptions['load'] | undefined,\n\t\tdecoratorOnCreate: undefined as TopDialogOptions['decoratorOnCreate'] | undefined,\n\n\t\t/**\n\t\t * Порядковый номер перехода в диалоговых окнах\n\t\t *\n\t\t * Для расчета анимации Вперед / Назад\n\t\t */\n\t\tviewPageN: 0,\n\t};\n\n\tprivate static inited = false;\n\n\t/**\n\t * Инициировать события слежения за парамтерами url\n\t *\n\t * Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу\n\t */\n\tstatic init(options?: TopDialogOptions) {\n\t\tif (this.inited) return;\n\t\tthis.inited = true;\n\n\t\tthis.state.load = options?.load;\n\t\tthis.state.decoratorOnCreate = options?.decoratorOnCreate;\n\n\t\tconst autoInitDelay = options?.autoInitDelay ?? 5000;\n\n\t\twindow.addEventListener('hashchange', (e) => {\n\t\t\tthis.opendDialogsFromChangeUrl(e.oldURL, e.newURL);\n\t\t});\n\n\t\tthis.opendDialogsFromChangeUrl('', location.href);\n\n\t\t/**\n\t\t * Сгенерировать ссылку для перехода к странице диалогового окна\n\t\t */\n\t\tdocument.addEventListener('mousedown', async (e) => {\n\t\t\tconst elEventTarget = e.target as HTMLElement;\n\n\t\t\tconst el = elEventTarget.closest<ElTopDialogOpener<HTMLAnchorElement>>('a[data-to-view]');\n\t\t\tif (!el) return;\n\n\t\t\t// const toView = el.dataset.toView;\n\t\t\t// const viewName = toView.split('-')[0];\n\t\t\t// const $toDialog = $('#' + viewName);\n\t\t\t// const $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\t// const $currentPage = $('> .active', $modalLayers);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\t// /**\n\t\t\t// * Данный алгоритм определения направления работает не корректно, так как для чтения свойства order менят состояние через getDialogsUtils()\n\t\t\t// */\n\t\t\t// if ($currentPage.length) {\n\t\t\t// \tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t//\n\t\t\t// \tconst TopDialogUtils = await this.getDialogsUtils();\n\t\t\t//\n\t\t\t// \tawait TopDialogUtils.updatePageVue(viewName, undefined, pageName);\n\t\t\t//\n\t\t\t// \tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t// \tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t// }\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tel.href = TopDialogWorker.genViewPageHash(el.dataset.toView, moveDirection);\n\t\t});\n\n\t\t/**\n\t\t * Осуществить переход по ссылке с учетом historyType\n\t\t */\n\t\tdocument.addEventListener('click', async (e) => {\n\t\t\tconst elEventTarget = e.target as HTMLElement;\n\n\t\t\tconst el = elEventTarget.closest<ElTopDialogOpener>('[data-to-view]');\n\t\t\tif (!el) return;\n\n\t\t\t// Подождать генерацию ссылки\n\t\t\tif (el instanceof HTMLAnchorElement && el.href === '.') {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst mouseEvent = new MouseEvent('mousedown', {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcancelable: true,\n\t\t\t\t\tview: window,\n\t\t\t\t});\n\n\t\t\t\tel.dispatchEvent(mouseEvent);\n\n\t\t\t\tsetTimeout(() => el.click());\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\n\t\t\tconst elDialog = TopDialogUtils.getElDialogById(viewName);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\tif (elDialog) {\n\t\t\t\tconst elModalLayers = querySelectorAllArray(elDialog, '.modal-layer');\n\t\t\t\tconst elCurrentPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, el) => {\n\t\t\t\t\tconst elCurrentPage = el.querySelector<ElTopDialogPage>(':scope > .active');\n\n\t\t\t\t\tif (elCurrentPage) acc.push(elCurrentPage);\n\n\t\t\t\t\treturn acc;\n\t\t\t\t}, []);\n\n\t\t\t\tif (elCurrentPages.length) {\n\t\t\t\t\tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t\t\tconst elNextPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, el) => {\n\t\t\t\t\t\tconst elNextPage = el?.querySelector<ElTopDialogPage>(`:scope > [data-view-page=\"${pageName}\"]`);\n\n\t\t\t\t\t\tif (elNextPage) acc.push(elNextPage);\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, []);\n\n\t\t\t\t\tif ((elNextPages[0]?.dataset.order ?? 0) < (elCurrentPages[0]?.dataset.order ?? 0)) moveDirection = 'prev';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, moveDirection);\n\n\t\t\tif (el instanceof HTMLAnchorElement) {\n\t\t\t\t// диалоговое окно еще не открыто, произвести переход по ссылке\n\t\t\t\tif (!elDialog?.checkVisibility()) return;\n\n\t\t\t\t// в адресе уже указана эта страница, необходимо явно запросить ее открытие\n\t\t\t\tif (location.hash.indexOf(toView.replace('-', '=')) !== -1) {\n\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst replaceHistory = !!elDialog?.dataset.toViewReplace;\n\n\t\t\tif (replaceHistory) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\thistorySetState(true, hash);\n\n\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\tif (moveDirection == 'next') {\n\t\t\t\t\tTopDialogWorker.state.viewPageN++;\n\t\t\t\t} else {\n\t\t\t\t\tTopDialogWorker.state.viewPageN--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (el.tagName !== 'A') {\n\t\t\t\t\tif (this.compareStates(hash, location.hash)) {\n\t\t\t\t\t\thistorySetState(false, hash);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => this.getDialogsUtils(), autoInitDelay);\n\t}\n\n\tprivate static opendDialogsFromChangeUrl(oldUrl: string, newUrl: string) {\n\t\tconst oldHash = oldUrl.replace(/.*?#/, '#');\n\t\tconst newHash = newUrl.replace(/.*?#/, '#');\n\n\t\tconst dialogsStateChanged = this.compareStates(oldHash, newHash);\n\t\tif (dialogsStateChanged) void this.opendDialogsFromUrl();\n\t}\n\n\tstatic async getDialogsUtils() {\n\t\tconst { TopDialogUtils } = await import('./utils');\n\n\t\treturn TopDialogUtils;\n\t}\n\n\tstatic getDialog(el: HTMLElement) {\n\t\treturn el.closest<ElTopDialog>('.ui-dialog-content');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getDialog()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$dialog($el: $el) {\n\t\treturn $el.closest('.ui-dialog-content');\n\t};\n\n\tstatic getPage(el: HTMLElement) {\n\t\treturn el.closest<ElTopDialogPage>('[data-view-page]');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getPage()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$page($el: $el) {\n\t\treturn $el.closest('[data-view-page]');\n\t};\n\n\t/**\n\t * todo: Переписать на сайте на this.getPairPage()\n\t *\n\t * @deprecated Для обратной совместимости\n\t */\n\tstatic get$pairPage($el: $el) {\n\t\tconst $dialog = TopDialogWorker.get$dialog($el);\n\n\t\tconst $page = TopDialogWorker.get$page($el);\n\t\tconst pageName = $page.data('view-page');\n\n\t\treturn $('[data-view-page=\"' + pageName + '\"]', $dialog);\n\t};\n\n\tstatic getPairPage(el: HTMLElement) {\n\t\tconst elDialog = TopDialogWorker.getDialog(el);\n\t\tif (!elDialog) return;\n\n\t\tconst elPage = TopDialogWorker.getPage(el);\n\t\tconst pageName = elPage?.dataset.viewPage;\n\n\t\treturn querySelectorAllArray(elDialog, `[data-view-page=\"${pageName}\"]`);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t */\n\tstatic close(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\t\tif ($dialog.dialog('instance')) {\n\t\t\t$dialog.dialog('close');\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst elDialog = document.getElementById(dialogId);\n\n\t\tif (!(elDialog instanceof HTMLDialogElement)) return;\n\n\t\telDialog.close();\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tstatic destroy(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif ($dialog.dialog('instance')) {\n\t\t\t$dialog.dialog('close');\n\t\t\t$dialog.dialog('destroy');\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst elDialog = document.getElementById(dialogId);\n\t\tif (!(elDialog instanceof HTMLDialogElement)) return;\n\n\t\telDialog.close();\n\t};\n\n\t/**\n\t * Сгенерировать ссылку на страницу в диалоговом окне\n\t * @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}\n\t * @param moveDirection\n\t */\n\tstatic genViewPageHash(toView: string, moveDirection: MoveDirection = 'next') {\n\t\tlet toViewPageN = this.state.viewPageN;\n\t\tif (moveDirection == 'prev') {\n\t\t\ttoViewPageN--;\n\t\t} else {\n\t\t\ttoViewPageN++;\n\t\t}\n\n\t\tconst viewNameAndPageLink = toView.split('-');\n\t\tconst viewName = viewNameAndPageLink.shift();\n\t\tconst pageLink = viewNameAndPageLink.join('-');\n\n\t\tlet hash = genHash('vpn', toViewPageN);\n\t\thash = genHash('view-' + viewName, pageLink, hash);\n\n\t\treturn hash;\n\t};\n\n\t/**\n\t * Сравнить версию открытых диалоговых окон\n\t * @returns вернет true, если состояния открытых окон изменилось\n\t */\n\tstatic compareStates(hash: string, hash2: string) {\n\t\tconst mathes = hash.match(/[#&]view-[^&]+/g) || [];\n\t\tconst mathes2 = hash2.match(/[#&]view-[^&]+/g) || [];\n\n\t\tif (mathes.length !== mathes2.length) return true;\n\n\t\tconst mathesChanged = mathes.filter((math, n) => {\n\t\t\tconst math2 = mathes2[n] || '';\n\n\t\t\treturn math !== math2;\n\t\t});\n\n\t\tif (mathesChanged.length) return true;\n\n\t\treturn false;\n\t};\n\n\tstatic opendDialogsFromUrl = async () => {\n\t\tconst toViewPageN = Number(getHash('vpn')) || 0;\n\n\t\t// Открыть диалоговое окно\n\t\tlet view: RegExpExecArray | null;\n\t\t// const regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)' + '(' + Math.random() + ')?', 'g'); // fix babel minify regexp\n\t\tconst regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)', 'g');\n\n\t\t// TODO: Цикл делает только одну оперцию и выходит (возможно, оставлен специально с какой-то целью, если нет - заменить на if)\n\t\twhile (view = regexp.exec(location.hash)) {\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\t\t\tif (toViewPageN < this.state.viewPageN) moveDirection = 'prev';\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\treturn TopDialogUtils.toViewDirty(view[1], moveDirection);\n\t\t}\n\n\t\t// Закрыть ненужные view\n\t\tconst elDialogs = querySelectorAllArray(document, '.ui-dialog-content[data-view-page-active]') as HTMLDialogElement[];\n\t\telDialogs.filter((elDialog) => {\n\t\t\treturn elDialog.checkVisibility();\n\t\t}).forEach((elDialog) => {\n\t\t\tconst viewName = elDialog.getAttribute('id');\n\t\t\tif (!viewName) throw 'Диалоговое окно не содержит id';\n\t\t\tconst pageName = getHash('view-' + viewName);\n\t\t\tif (!pageName) {\n\t\t\t\tconst $dialog = $(elDialog);\n\n\t\t\t\t$dialog.dialog('close');\n\t\t\t}\n\t\t});\n\n\t\tthis.state.viewPageN = toViewPageN;\n\n\t\treturn true;\n\t};\n}\n","import { type ComponentInstance, type ComponentInternalInstance, markRaw, ref } from 'vue';\nimport { waitWhile } from '@/core/utils/system';\nimport TopDialog from '../dialog.vue';\nimport { TopDialogWorker } from '@/components/dialog/lib/worker';\nimport type { MoveDirection } from '@/components/dialog/lib/types';\nimport type { TopDialogComponent } from './types';\nimport { historySetState } from '@/core/utils/route';\n\n/**\n * Объект для работы с диалоговым окном\n *\n * Каждое окно уникально и может быть открыто одновременно только один раз\n *\n * Можно определить много окон, после чего с ними можно вести работу в любой части приложения\n */\nexport class TopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Индентификатор, определяется на уровне компонента TopDialogComponent\n\t *\n\t * Может использоваться в навигации для открытия нужных окон с нужными настройками\n\t */\n\tid: string;\n\n\t/**\n\t * ID, используемый в верстке диалогового окна\n\t */\n\tidAttr: string;\n\n\t/**\n\t * Пользовательский компонент диалогового окна\n\t */\n\tComponent: T;\n\n\t/**\n\t * Компонент инициирован\n\t *\n\t * Устанавливается после первого вызова useTopDialog()\n\t */\n\tisMounted = ref(false);\n\n\t/**\n\t * Компонент готов к использованию\n\t *\n\t * Используется для внутренних преобразований после отрисовки\n\t */\n\tisReady = ref(false);\n\n\t/**\n\t * Диалоговое окно открыто\n\t */\n\tisOpened = ref(false);\n\n\t/**\n\t * Имя активной страницы дилогового окна\n\t */\n\tpageActive = ref('');\n\n\t/**\n\t * Диалоговое окно находится в состоянии загрузки своей страницы\n\t */\n\tisLoadingPage = ref(false);\n\n\t/**\n\t * Следующая активная страница\n\t *\n\t * В один момент времени может потребоваться отобразить две страницы, чтобы воспроизвести анимацию\n\t */\n\tpageActiveNext = ref('');\n\n\t/**\n\t * props компонента, доступны после инициализации\n\t */\n\tprops?: ComponentInstance<T>['$props'];\n\n\t/**\n\t * emit базового компонента `TopDialog`\n\t */\n\temit?: ComponentInstance<typeof TopDialog>['$emit'];\n\n\t/**\n\t * Одноразовое событие на закрытие диалогового окна\n\t *\n\t * Используется для привязки окна к сценариям использования\n\t */\n\tonCloseOnce?: (props: typeof this.props, pageName: string) => void;\n\n\tconstructor(TopDialogComponent: T) {\n\t\tthis.id = TopDialogComponent.id!;\n\t\tthis.idAttr = 'dialog_' + TopDialogComponent.id;\n\t\tthis.Component = markRaw(TopDialogComponent);\n\t}\n\n\t/**\n\t * Событие - компонент инициирован\n\t */\n\tonMounted(topDialogComponent: ComponentInternalInstance, topDialogBaseComponent: ComponentInternalInstance) {\n\t\tthis.isMounted.value = true;\n\t\tthis.props = topDialogComponent.props;\n\t\tthis.emit = topDialogBaseComponent.emit;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t *\n\t * Учтите, что props в диалоговом окне будут доступны не сразу, а только после инициализации vue компонента\n\t */\n\tasync open(pageName: string = 'main', props?: {}, args: [] = [], onCloseOnce?: typeof this.onCloseOnce, moveDirection?: MoveDirection) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst TopDialogUtils = await TopDialogWorker.getDialogsUtils();\n\n\t\tawait TopDialogUtils.toView(this.idAttr, pageName, args, moveDirection);\n\t};\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Диалоговые окна загружаются по имени, см. настройку плагина Core topDialogLoader\n\t */\n\tasync openAsLink(\n\t\tpageName: string = 'main',\n\t\tprops?: {},\n\t\t_args: string[] = [],\n\t\tonCloseOnce?: typeof this.onCloseOnce,\n\t\tmoveDirection?: MoveDirection,\n\t) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst viewName = this.idAttr + '-' + pageName;\n\n\t\tconst hash = TopDialogWorker.genViewPageHash(viewName, moveDirection);\n\t\thistorySetState(false, hash);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close() {\n\t\tTopDialogWorker.close(this.idAttr);\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tasync destroy() {\n\t\tTopDialogWorker.destroy(this.idAttr);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(props: ComponentInstance<T>['$props'] = {}) {\n\t\t// ожидание инициализации компонента\n\t\tif (!this.isMounted) {\n\t\t\tawait waitWhile(() => !this.props);\n\t\t}\n\n\t\tfor (const name in this.props) {\n\t\t\tthis.props[name] = props[name];\n\t\t}\n\t}\n\n\t/**\n\t * Проверить, есть ли необходимость отрисовки страницы диалогового окна\n\t */\n\tneedShowPage(pageName: string): boolean {\n\t\tif (!this.isOpened.value) return false;\n\n\t\treturn this.pageActive.value === pageName || this.pageActiveNext.value === pageName;\n\t}\n}\n","<script lang=\"ts\">\nimport { shallowReactive } from 'vue';\nimport { TopDialogHandle } from '@/components/dialog/dialog/composables/dialogHandle';\nimport type { TopDialogComponent } from '@/components/dialog/dialog/composables/types';\n\n/**\n * Словарь всех используемых диалоговых окон\n *\n * В других компонентах не использовать\n */\nconst dialogsWorkers = shallowReactive(new Map<string, TopDialogHandle<TopDialogComponent>>());\n\n/**\n * Получить компонент диалогового окна по id\n */\nexport const getDialogWorker = (id: string) => {\n\tid = id.replace(/^dialog_/, '');\n\n\treturn dialogsWorkers.get(id);\n};\n\n/**\n * Добавить компонент диалогового окна для использования\n */\nexport const addDialogWorker = <T extends TopDialogComponent>(TopDialogComponent: T): TopDialogHandle<T> => {\n\tif (!TopDialogComponent?.id) {\n\t\tconsole.log({ TopDialogComponent: TopDialogComponent });\n\n\t\tthrow new Error('Expected TopDialogComponent');\n\t}\n\n\tif (!dialogsWorkers.has(TopDialogComponent.id)) {\n\t\tdialogsWorkers.set(TopDialogComponent.id, new TopDialogHandle(TopDialogComponent));\n\t}\n\n\treturn dialogsWorkers.get(TopDialogComponent.id) as TopDialogHandle<T>;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { onUnmounted } from 'vue';\n\ndefineOptions({\n\tname: 'DialogWrapper',\n});\n\nonUnmounted(() => {\n\tdialogsWorkers.forEach(dialog => dialog.destroy());\n\tdialogsWorkers.clear();\n});\n</script>\n\n<template>\n\t<div class=\"top-dialogs\" style=\"display: none;\">\n\t\t<component\n\t\t\tv-for=\"[dialogId, dialog] in dialogsWorkers\"\n\t\t\t:is=\"dialog.Component\"\n\t\t\t:key=\"dialogId\"\n\t\t/>\n\t</div>\n</template>\n"],"names":["TopDialogWorker","options","autoInitDelay","e","el","moveDirection","mouseEvent","TopDialogUtils","toView","viewName","elDialog","elModalLayers","querySelectorAllArray","elCurrentPages","acc","elCurrentPage","pageName","_a","elNextPage","_b","hash","historySetState","oldUrl","newUrl","oldHash","newHash","$el","$dialog","elPage","dialogId","toViewPageN","viewNameAndPageLink","pageLink","genHash","hash2","mathes","mathes2","math","n","math2","getHash","view","regexp","TopDialogHandle","ref","TopDialogComponent","markRaw","topDialogComponent","topDialogBaseComponent","props","args","onCloseOnce","_args","waitWhile","name","dialogsWorkers","shallowReactive","getDialogWorker","id","addDialogWorker","onUnmounted","dialog"],"mappings":"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"}
|
|
@@ -77,7 +77,7 @@ var pn = /^\s+/;
|
|
|
77
77
|
function fn(e) {
|
|
78
78
|
return e && e.slice(0, cn(e) + 1).replace(pn, "");
|
|
79
79
|
}
|
|
80
|
-
var
|
|
80
|
+
var X = A.Symbol, Tt = Object.prototype, gn = Tt.hasOwnProperty, mn = Tt.toString, Q = X ? X.toStringTag : void 0;
|
|
81
81
|
function hn(e) {
|
|
82
82
|
var t = gn.call(e, Q), n = e[Q];
|
|
83
83
|
try {
|
|
@@ -92,8 +92,8 @@ var bn = Object.prototype, yn = bn.toString;
|
|
|
92
92
|
function vn(e) {
|
|
93
93
|
return yn.call(e);
|
|
94
94
|
}
|
|
95
|
-
var wn = "[object Null]", Tn = "[object Undefined]", Fe =
|
|
96
|
-
function
|
|
95
|
+
var wn = "[object Null]", Tn = "[object Undefined]", Fe = X ? X.toStringTag : void 0;
|
|
96
|
+
function F(e) {
|
|
97
97
|
return e == null ? e === void 0 ? Tn : wn : Fe && Fe in Object(e) ? hn(e) : vn(e);
|
|
98
98
|
}
|
|
99
99
|
function W(e) {
|
|
@@ -101,7 +101,7 @@ function W(e) {
|
|
|
101
101
|
}
|
|
102
102
|
var $n = "[object Symbol]";
|
|
103
103
|
function Sn(e) {
|
|
104
|
-
return typeof e == "symbol" || W(e) &&
|
|
104
|
+
return typeof e == "symbol" || W(e) && F(e) == $n;
|
|
105
105
|
}
|
|
106
106
|
var Ue = NaN, _n = /^[-+]0x[0-9a-f]+$/i, On = /^0b[01]+$/i, En = /^0o[0-7]+$/i, jn = parseInt;
|
|
107
107
|
function He(e) {
|
|
@@ -227,7 +227,7 @@ var Fn = "[object AsyncFunction]", Un = "[object Function]", Hn = "[object Gener
|
|
|
227
227
|
function De(e) {
|
|
228
228
|
if (!E(e))
|
|
229
229
|
return !1;
|
|
230
|
-
var t =
|
|
230
|
+
var t = F(e);
|
|
231
231
|
return t == Un || t == Hn || t == Fn || t == Gn;
|
|
232
232
|
}
|
|
233
233
|
var be = A["__core-js_shared__"], Ge = function() {
|
|
@@ -238,7 +238,7 @@ function Kn(e) {
|
|
|
238
238
|
return !!Ge && Ge in e;
|
|
239
239
|
}
|
|
240
240
|
var Xn = Function.prototype, qn = Xn.toString;
|
|
241
|
-
function
|
|
241
|
+
function U(e) {
|
|
242
242
|
if (e != null) {
|
|
243
243
|
try {
|
|
244
244
|
return qn.call(e);
|
|
@@ -258,16 +258,16 @@ function nr(e) {
|
|
|
258
258
|
if (!E(e) || Kn(e))
|
|
259
259
|
return !1;
|
|
260
260
|
var t = De(e) ? tr : Qn;
|
|
261
|
-
return t.test(
|
|
261
|
+
return t.test(U(e));
|
|
262
262
|
}
|
|
263
263
|
function rr(e, t) {
|
|
264
264
|
return e == null ? void 0 : e[t];
|
|
265
265
|
}
|
|
266
|
-
function
|
|
266
|
+
function H(e, t) {
|
|
267
267
|
var n = rr(e, t);
|
|
268
268
|
return nr(n) ? n : void 0;
|
|
269
269
|
}
|
|
270
|
-
var Z =
|
|
270
|
+
var Z = H(A, "Map"), x = H(Object, "create");
|
|
271
271
|
function ar() {
|
|
272
272
|
this.__data__ = x ? x(null) : {}, this.size = 0;
|
|
273
273
|
}
|
|
@@ -358,15 +358,15 @@ function $r(e, t) {
|
|
|
358
358
|
}
|
|
359
359
|
return n.set(e, t), this.size = n.size, this;
|
|
360
360
|
}
|
|
361
|
-
function
|
|
361
|
+
function G(e) {
|
|
362
362
|
var t = this.__data__ = new I(e);
|
|
363
363
|
this.size = t.size;
|
|
364
364
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
365
|
+
G.prototype.clear = zn;
|
|
366
|
+
G.prototype.delete = Vn;
|
|
367
|
+
G.prototype.get = kn;
|
|
368
|
+
G.prototype.has = Rn;
|
|
369
|
+
G.prototype.set = $r;
|
|
370
370
|
function Sr(e, t) {
|
|
371
371
|
for (var n = -1, a = e == null ? 0 : e.length; ++n < a && t(e[n], n, e) !== !1; )
|
|
372
372
|
;
|
|
@@ -374,7 +374,7 @@ function Sr(e, t) {
|
|
|
374
374
|
}
|
|
375
375
|
var se = function() {
|
|
376
376
|
try {
|
|
377
|
-
var e =
|
|
377
|
+
var e = H(Object, "defineProperty");
|
|
378
378
|
return e({}, "", {}), e;
|
|
379
379
|
} catch {
|
|
380
380
|
}
|
|
@@ -408,7 +408,7 @@ function jr(e, t) {
|
|
|
408
408
|
}
|
|
409
409
|
var Ar = "[object Arguments]";
|
|
410
410
|
function Ke(e) {
|
|
411
|
-
return W(e) &&
|
|
411
|
+
return W(e) && F(e) == Ar;
|
|
412
412
|
}
|
|
413
413
|
var _t = Object.prototype, Pr = _t.hasOwnProperty, Mr = _t.propertyIsEnumerable, Se = Ke(/* @__PURE__ */ function() {
|
|
414
414
|
return arguments;
|
|
@@ -431,20 +431,20 @@ var Nr = "[object Arguments]", zr = "[object Array]", Vr = "[object Boolean]", k
|
|
|
431
431
|
y[Zr] = y[xr] = y[ea] = y[ta] = y[na] = y[ra] = y[aa] = y[oa] = y[ia] = !0;
|
|
432
432
|
y[Nr] = y[zr] = y[Qr] = y[Vr] = y[Jr] = y[kr] = y[Rr] = y[Fr] = y[Ur] = y[Hr] = y[Gr] = y[Kr] = y[Xr] = y[qr] = y[Yr] = !1;
|
|
433
433
|
function sa(e) {
|
|
434
|
-
return W(e) && jt(e.length) && !!y[
|
|
434
|
+
return W(e) && jt(e.length) && !!y[F(e)];
|
|
435
435
|
}
|
|
436
436
|
function Le(e) {
|
|
437
437
|
return function(t) {
|
|
438
438
|
return e(t);
|
|
439
439
|
};
|
|
440
440
|
}
|
|
441
|
-
var At = typeof exports == "object" && exports && !exports.nodeType && exports, J = At && typeof module == "object" && module && !module.nodeType && module, la = J && J.exports === At, ye = la && wt.process,
|
|
441
|
+
var At = typeof exports == "object" && exports && !exports.nodeType && exports, J = At && typeof module == "object" && module && !module.nodeType && module, la = J && J.exports === At, ye = la && wt.process, q = function() {
|
|
442
442
|
try {
|
|
443
443
|
var e = J && J.require && J.require("util").types;
|
|
444
444
|
return e || ye && ye.binding && ye.binding("util");
|
|
445
445
|
} catch {
|
|
446
446
|
}
|
|
447
|
-
}(), Ye =
|
|
447
|
+
}(), Ye = q && q.isTypedArray, Pt = Ye ? Le(Ye) : sa, ua = Object.prototype, da = ua.hasOwnProperty;
|
|
448
448
|
function Mt(e, t) {
|
|
449
449
|
var n = ee(e), a = !n && Se(e), o = !n && !a && Be(e), r = !n && !a && !o && Pt(e), s = n || a || o || r, i = s ? jr(e.length, String) : [], l = i.length;
|
|
450
450
|
for (var u in e)
|
|
@@ -540,9 +540,9 @@ function Pa(e, t, n) {
|
|
|
540
540
|
function Ma(e) {
|
|
541
541
|
return Pa(e, ha, ja);
|
|
542
542
|
}
|
|
543
|
-
var _e =
|
|
543
|
+
var _e = H(A, "DataView"), Oe = H(A, "Promise"), Ee = H(A, "Set"), je = H(A, "WeakMap"), et = "[object Map]", Ca = "[object Object]", tt = "[object Promise]", nt = "[object Set]", rt = "[object WeakMap]", at = "[object DataView]", Da = U(_e), Ia = U(Z), Ba = U(Oe), La = U(Ee), Wa = U(je), D = F;
|
|
544
544
|
(_e && D(new _e(new ArrayBuffer(1))) != at || Z && D(new Z()) != et || Oe && D(Oe.resolve()) != tt || Ee && D(new Ee()) != nt || je && D(new je()) != rt) && (D = function(e) {
|
|
545
|
-
var t =
|
|
545
|
+
var t = F(e), n = t == Ca ? e.constructor : void 0, a = n ? U(n) : "";
|
|
546
546
|
if (a)
|
|
547
547
|
switch (a) {
|
|
548
548
|
case Da:
|
|
@@ -577,7 +577,7 @@ function Fa(e) {
|
|
|
577
577
|
var t = new e.constructor(e.source, Ra.exec(e));
|
|
578
578
|
return t.lastIndex = e.lastIndex, t;
|
|
579
579
|
}
|
|
580
|
-
var it =
|
|
580
|
+
var it = X ? X.prototype : void 0, st = it ? it.valueOf : void 0;
|
|
581
581
|
function Ua(e) {
|
|
582
582
|
return st ? Object(st.call(e)) : {};
|
|
583
583
|
}
|
|
@@ -639,11 +639,11 @@ var po = "[object Map]";
|
|
|
639
639
|
function fo(e) {
|
|
640
640
|
return W(e) && D(e) == po;
|
|
641
641
|
}
|
|
642
|
-
var ut =
|
|
642
|
+
var ut = q && q.isMap, go = ut ? Le(ut) : fo, ho = "[object Set]";
|
|
643
643
|
function bo(e) {
|
|
644
644
|
return W(e) && D(e) == ho;
|
|
645
645
|
}
|
|
646
|
-
var dt =
|
|
646
|
+
var dt = q && q.isSet, yo = dt ? Le(dt) : bo, vo = 1, zt = "[object Arguments]", wo = "[object Array]", To = "[object Boolean]", $o = "[object Date]", So = "[object Error]", Vt = "[object Function]", _o = "[object GeneratorFunction]", Oo = "[object Map]", Eo = "[object Number]", kt = "[object Object]", jo = "[object RegExp]", Ao = "[object Set]", Po = "[object String]", Mo = "[object Symbol]", Co = "[object WeakMap]", Do = "[object ArrayBuffer]", Io = "[object DataView]", Bo = "[object Float32Array]", Lo = "[object Float64Array]", Wo = "[object Int8Array]", No = "[object Int16Array]", zo = "[object Int32Array]", Vo = "[object Uint8Array]", ko = "[object Uint8ClampedArray]", Ro = "[object Uint16Array]", Fo = "[object Uint32Array]", h = {};
|
|
647
647
|
h[zt] = h[wo] = h[Do] = h[Io] = h[To] = h[$o] = h[Bo] = h[Lo] = h[Wo] = h[No] = h[zo] = h[Oo] = h[Eo] = h[kt] = h[jo] = h[Ao] = h[Po] = h[Mo] = h[Vo] = h[ko] = h[Ro] = h[Fo] = !0;
|
|
648
648
|
h[So] = h[Vt] = h[Co] = !1;
|
|
649
649
|
function oe(e, t, n, a, o, r) {
|
|
@@ -667,7 +667,7 @@ function oe(e, t, n, a, o, r) {
|
|
|
667
667
|
s = uo(e, u, i);
|
|
668
668
|
}
|
|
669
669
|
}
|
|
670
|
-
r || (r = new
|
|
670
|
+
r || (r = new G());
|
|
671
671
|
var d = r.get(e);
|
|
672
672
|
if (d)
|
|
673
673
|
return d;
|
|
@@ -729,7 +729,7 @@ function Yo(e) {
|
|
|
729
729
|
}
|
|
730
730
|
var Qo = "[object Object]", Jo = Function.prototype, Zo = Object.prototype, Ft = Jo.toString, xo = Zo.hasOwnProperty, ei = Ft.call(Object);
|
|
731
731
|
function ti(e) {
|
|
732
|
-
if (!W(e) ||
|
|
732
|
+
if (!W(e) || F(e) != Qo)
|
|
733
733
|
return !1;
|
|
734
734
|
var t = Lt(e);
|
|
735
735
|
if (t === null)
|
|
@@ -759,7 +759,7 @@ function ri(e, t, n, a, o, r, s) {
|
|
|
759
759
|
}
|
|
760
760
|
function Ut(e, t, n, a, o) {
|
|
761
761
|
e !== t && qo(t, function(r, s) {
|
|
762
|
-
if (o || (o = new
|
|
762
|
+
if (o || (o = new G()), E(r))
|
|
763
763
|
ri(e, t, s, n, Ut, a, o);
|
|
764
764
|
else {
|
|
765
765
|
var i = a ? a(Pe(e, s), r, s + "", e, t, o) : void 0;
|
|
@@ -860,7 +860,7 @@ window.addEventListener("resize", vi);
|
|
|
860
860
|
const wi = {
|
|
861
861
|
addOnReize: bi,
|
|
862
862
|
removeOnResize: yi
|
|
863
|
-
},
|
|
863
|
+
}, K = {
|
|
864
864
|
/**
|
|
865
865
|
* Имя темы оформления
|
|
866
866
|
*
|
|
@@ -904,10 +904,10 @@ const wi = {
|
|
|
904
904
|
/**
|
|
905
905
|
* CSS-классы модификаторы для документа страницы
|
|
906
906
|
*/
|
|
907
|
-
documentClassModificators:
|
|
908
|
-
dateFormat:
|
|
909
|
-
currency:
|
|
910
|
-
timezoneOffset:
|
|
907
|
+
documentClassModificators: K.documentClassModificators,
|
|
908
|
+
dateFormat: K.dateFormat,
|
|
909
|
+
currency: K.currency,
|
|
910
|
+
timezoneOffset: K.timezoneOffset,
|
|
911
911
|
/**
|
|
912
912
|
* Device by size
|
|
913
913
|
*
|
|
@@ -950,13 +950,13 @@ class $i {
|
|
|
950
950
|
* Загрузить в память полный функционал TopNotice
|
|
951
951
|
*/
|
|
952
952
|
static async TopNotice() {
|
|
953
|
-
await import("./notice-
|
|
953
|
+
await import("./notice-DE88Oe-t.es.js");
|
|
954
954
|
}
|
|
955
955
|
/**
|
|
956
956
|
* Загрузить в память полный функционал TopPopup
|
|
957
957
|
*/
|
|
958
958
|
static async TopPopup() {
|
|
959
|
-
await import("./popup-
|
|
959
|
+
await import("./popup-BjsK_pMZ.es.js");
|
|
960
960
|
}
|
|
961
961
|
/**
|
|
962
962
|
* Загрузить в память полный функционал TopDialog
|
|
@@ -969,8 +969,8 @@ class $i {
|
|
|
969
969
|
class g {
|
|
970
970
|
static state = ve({ ...Ti });
|
|
971
971
|
static preloaders = $i;
|
|
972
|
-
static widthForMobile =
|
|
973
|
-
static themeName =
|
|
972
|
+
static widthForMobile = K.widthForMobile;
|
|
973
|
+
static themeName = K.themeName;
|
|
974
974
|
static matchMediaIsMobile;
|
|
975
975
|
static $ = $;
|
|
976
976
|
static Events = wi;
|
|
@@ -1032,7 +1032,7 @@ class g {
|
|
|
1032
1032
|
*
|
|
1033
1033
|
* @docs https://ui.topvisor.com/?path=/docs/components-core-notice--docs
|
|
1034
1034
|
*/
|
|
1035
|
-
static notice = async (t, n, a) => (g.flags.needLoadNotice = !0, (await import("./notice-
|
|
1035
|
+
static notice = async (t, n, a) => (g.flags.needLoadNotice = !0, (await import("./notice-DE88Oe-t.es.js")).show(t, n, a));
|
|
1036
1036
|
/**
|
|
1037
1037
|
* Вставить css стили на страницу по ссылке с автоматическим добавлением правил media
|
|
1038
1038
|
*
|
|
@@ -1151,7 +1151,7 @@ const ws = {
|
|
|
1151
1151
|
}
|
|
1152
1152
|
}, Ss = (e, t = !0, n = 2) => {
|
|
1153
1153
|
let a = String(e.getFullYear()), o = String(e.getDate()).padStart(2, "0"), r = String(e.getMonth() + 1).padStart(2, "0"), s = String(e.getHours()).padStart(2, "0"), i = String(e.getMinutes()).padStart(2, "0"), l = String(e.getSeconds()).padStart(2, "0"), u = a + "-" + r + "-" + o;
|
|
1154
|
-
return n >= 1 && (u += " " + s), n >= 2 && (u += ":" + i), n === 3 && (u += ":" + l), t && (u =
|
|
1154
|
+
return n >= 1 && (u += " " + s), n >= 2 && (u += ":" + i), n === 3 && (u += ":" + l), t && (u = R(u, n)), u;
|
|
1155
1155
|
};
|
|
1156
1156
|
function _s(e) {
|
|
1157
1157
|
if (e.indexOf("T") === -1) {
|
|
@@ -1168,22 +1168,21 @@ function _s(e) {
|
|
|
1168
1168
|
}
|
|
1169
1169
|
return new Date(e);
|
|
1170
1170
|
}
|
|
1171
|
-
const Os = (e
|
|
1172
|
-
function Gt(e, t = !0, n = 0, a) {
|
|
1173
|
-
e || (e = (/* @__PURE__ */ new Date()).getTime());
|
|
1171
|
+
const Os = (e = (/* @__PURE__ */ new Date()).getTime(), t = !0, n = 0) => Gt(e, t, n, g.state.timezoneOffset);
|
|
1172
|
+
function Gt(e = (/* @__PURE__ */ new Date()).getTime(), t = !0, n = 0, a) {
|
|
1174
1173
|
const o = a ? e + (/* @__PURE__ */ new Date()).getTimezoneOffset() * 60 * 1e3 - a * 60 * 1e3 : e, r = new Date(o), s = r.getFullYear(), i = String(r.getMonth() + 1).padStart(2, "0"), l = r.getDate().toString().padStart(2, "0"), u = r.getHours().toString().padStart(2, "0"), c = r.getMinutes().toString().padStart(2, "0"), d = r.getSeconds().toString().padStart(2, "0");
|
|
1175
1174
|
n === "auto" && (n = 0, r.getHours() && (n = 1), r.getMinutes() && (n = 2), r.getSeconds() && (n = 3));
|
|
1176
1175
|
let p = s + "-" + i + "-" + l;
|
|
1177
|
-
return n && (p += " "), n >= 1 && (p += u), n >= 2 && (p += ":" + c), n >= 3 && (p += ":" + d), t && (p =
|
|
1176
|
+
return n && (p += " "), n >= 1 && (p += u), n >= 2 && (p += ":" + c), n >= 3 && (p += ":" + d), t && (a ? p = R(p, n) : p = R(r, n)), p;
|
|
1178
1177
|
}
|
|
1179
1178
|
function Es(e, t = !0) {
|
|
1180
1179
|
const a = (/* @__PURE__ */ new Date()).getTimezoneOffset() / 60 * -1 * 60 * 60 * 1e3, o = 3 * 60 * 60 * 1e3;
|
|
1181
1180
|
let r;
|
|
1182
1181
|
e !== void 0 ? r = new Date(e) : r = /* @__PURE__ */ new Date(), r.setTime(r.getTime() - a + o);
|
|
1183
1182
|
let s = String(r.getFullYear()), i = String(r.getDate()).padStart(2, "0"), l = String(r.getMonth() + 1).padStart(2, "0"), u = String(r.getHours()).padStart(2, "0"), c = String(r.getMinutes()).padStart(2, "0"), d = String(r.getSeconds()).padStart(2, "0"), p = s + "-" + l + "-" + i + " " + u + ":" + c + ":" + d;
|
|
1184
|
-
return t && (p =
|
|
1183
|
+
return t && (p = R(p)), p;
|
|
1185
1184
|
}
|
|
1186
|
-
function
|
|
1185
|
+
function R(e, t = 2, n, a) {
|
|
1187
1186
|
if (a || (a = pe().Common.Not_date), typeof e == "string" && (!e || e.substring(0, 10) === "0000-00-00") && a && a !== "0000-00-00" || !e) return a;
|
|
1188
1187
|
n || (n = g.state.dateFormat), n = n.toLowerCase().replace("m", "mm").replace("y", "yy").replace("d", "dd");
|
|
1189
1188
|
let o;
|
|
@@ -1267,7 +1266,7 @@ const Si = { class: "top-avatar" }, _i = ["src", "title"], Oi = ["title"], Ei =
|
|
|
1267
1266
|
if (t.isOnline)
|
|
1268
1267
|
return (o = t.i18n) == null ? void 0 : o.Online;
|
|
1269
1268
|
if (t.lastActiveTime)
|
|
1270
|
-
return ((r = t.i18n) == null ? void 0 : r.LastSeen) + ": " +
|
|
1269
|
+
return ((r = t.i18n) == null ? void 0 : r.LastSeen) + ": " + R(t.lastActiveTime, 2);
|
|
1271
1270
|
}), a = O(() => t.nickname ? t.nickname + (n.value ? `
|
|
1272
1271
|
${n.value}` : "") : n.value);
|
|
1273
1272
|
return (o, r) => (f(), m("div", Si, [
|
|
@@ -1582,7 +1581,7 @@ const Ki = /* @__PURE__ */ _({
|
|
|
1582
1581
|
let s;
|
|
1583
1582
|
const i = O({
|
|
1584
1583
|
get() {
|
|
1585
|
-
return
|
|
1584
|
+
return R(a.modelValue, 2, void 0, "0000-00-00");
|
|
1586
1585
|
},
|
|
1587
1586
|
set(d) {
|
|
1588
1587
|
d = pt(d, "0000-00-00"), o("update:modelValue", d);
|
|
@@ -1591,7 +1590,7 @@ const Ki = /* @__PURE__ */ _({
|
|
|
1591
1590
|
let l = (d) => {
|
|
1592
1591
|
ft(d);
|
|
1593
1592
|
}, u = (d) => {
|
|
1594
|
-
const p = pt(d.target.value), b =
|
|
1593
|
+
const p = pt(d.target.value), b = R(p);
|
|
1595
1594
|
if (!b || b === n.Common.Not_date || d.target.value !== b) {
|
|
1596
1595
|
d.target.value = i.value;
|
|
1597
1596
|
return;
|
|
@@ -1599,7 +1598,7 @@ const Ki = /* @__PURE__ */ _({
|
|
|
1599
1598
|
i.value = d.target.value;
|
|
1600
1599
|
};
|
|
1601
1600
|
async function c(d) {
|
|
1602
|
-
const p = await import("./datepicker-
|
|
1601
|
+
const p = await import("./datepicker-DCDYQmsc.es.js");
|
|
1603
1602
|
ft = p.oninput, s = p.connectDatepicker(d.target, {
|
|
1604
1603
|
onSelect: () => u(d)
|
|
1605
1604
|
}), s && s.datepicker("show");
|
|
@@ -2024,7 +2023,7 @@ export {
|
|
|
2024
2023
|
Pi as _,
|
|
2025
2024
|
Ts as a,
|
|
2026
2025
|
cs as b,
|
|
2027
|
-
|
|
2026
|
+
R as c,
|
|
2028
2027
|
$t as d,
|
|
2029
2028
|
Kt as e,
|
|
2030
2029
|
Me as f,
|
|
@@ -2049,4 +2048,4 @@ export {
|
|
|
2049
2048
|
ls as y,
|
|
2050
2049
|
rn as z
|
|
2051
2050
|
};
|
|
2052
|
-
//# sourceMappingURL=forms-
|
|
2051
|
+
//# sourceMappingURL=forms-DOGPN_TR.es.js.map
|