@topvisor/ui 1.5.0-updates.0 → 1.5.0-updates.10
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/api-CawzY1Cw.amd.js +2 -0
- package/.chunks/api-CawzY1Cw.amd.js.map +1 -0
- package/.chunks/api-CawzY1Cw.esm.js +208 -0
- package/.chunks/api-CawzY1Cw.esm.js.map +1 -0
- package/.chunks/app-CCX-gNqz.amd.js +2 -0
- package/.chunks/app-CCX-gNqz.amd.js.map +1 -0
- package/.chunks/app-CCX-gNqz.esm.js +396 -0
- package/.chunks/app-CCX-gNqz.esm.js.map +1 -0
- package/.chunks/datepicker-BTkZOq7d.amd.js +2 -0
- package/.chunks/datepicker-BTkZOq7d.amd.js.map +1 -0
- package/.chunks/datepicker-BTkZOq7d.esm.js +38 -0
- package/.chunks/datepicker-BTkZOq7d.esm.js.map +1 -0
- package/.chunks/dialog-DeM4SApg.amd.js +2 -0
- package/.chunks/dialog-DeM4SApg.amd.js.map +1 -0
- package/.chunks/dialog-DeM4SApg.esm.js +117 -0
- package/.chunks/dialog-DeM4SApg.esm.js.map +1 -0
- package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.amd.js +2 -0
- package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.amd.js.map +1 -0
- package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.esm.js +169 -0
- package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.esm.js.map +1 -0
- package/.chunks/dialogs-CMrERMI7.amd.js +2 -0
- package/.chunks/dialogs-CMrERMI7.amd.js.map +1 -0
- package/.chunks/dialogs-CMrERMI7.esm.js +237 -0
- package/.chunks/dialogs-CMrERMI7.esm.js.map +1 -0
- package/.chunks/field-CjkpGeA7.amd.js +2 -0
- package/.chunks/field-CjkpGeA7.amd.js.map +1 -0
- package/.chunks/field-CjkpGeA7.esm.js +16 -0
- package/.chunks/field-CjkpGeA7.esm.js.map +1 -0
- package/.chunks/forms-CbUt-6Ff.amd.js +2 -0
- package/.chunks/forms-CbUt-6Ff.amd.js.map +1 -0
- package/.chunks/forms-CbUt-6Ff.esm.js +1991 -0
- package/.chunks/forms-CbUt-6Ff.esm.js.map +1 -0
- package/.chunks/formsExt-CrTmBhja.amd.js +2 -0
- package/.chunks/formsExt-CrTmBhja.amd.js.map +1 -0
- package/.chunks/formsExt-CrTmBhja.esm.js +807 -0
- package/.chunks/formsExt-CrTmBhja.esm.js.map +1 -0
- package/.chunks/lazy-CGswTOPj.amd.js +2 -0
- package/.chunks/lazy-CGswTOPj.amd.js.map +1 -0
- package/.chunks/lazy-CGswTOPj.esm.js +68 -0
- package/.chunks/lazy-CGswTOPj.esm.js.map +1 -0
- package/.chunks/mocker-CwZe-g4N.amd.js +2 -0
- package/.chunks/mocker-CwZe-g4N.amd.js.map +1 -0
- package/.chunks/mocker-CwZe-g4N.esm.js +45 -0
- package/.chunks/mocker-CwZe-g4N.esm.js.map +1 -0
- package/.chunks/notice-CslVdVNm.amd.js +4 -0
- package/.chunks/notice-CslVdVNm.amd.js.map +1 -0
- package/.chunks/notice-CslVdVNm.esm.js +191 -0
- package/.chunks/notice-CslVdVNm.esm.js.map +1 -0
- package/.chunks/popup-DrByVU-k.amd.js +2 -0
- package/.chunks/popup-DrByVU-k.amd.js.map +1 -0
- package/.chunks/popup-DrByVU-k.esm.js +444 -0
- package/.chunks/popup-DrByVU-k.esm.js.map +1 -0
- package/.chunks/popup-dNrN-eKi.amd.js +2 -0
- package/.chunks/popup-dNrN-eKi.amd.js.map +1 -0
- package/.chunks/popup-dNrN-eKi.esm.js +323 -0
- package/.chunks/popup-dNrN-eKi.esm.js.map +1 -0
- package/.chunks/punycode.es6-B-5kB2YI.amd.js +2 -0
- package/.chunks/{punycode.es6-CgGegfA_.es.js.map → punycode.es6-B-5kB2YI.amd.js.map} +1 -1
- package/.chunks/punycode.es6-B-5kB2YI.esm.js +105 -0
- package/.chunks/punycode.es6-B-5kB2YI.esm.js.map +1 -0
- package/.chunks/store-DuQpSSLL.amd.js +2 -0
- package/.chunks/store-DuQpSSLL.amd.js.map +1 -0
- package/.chunks/store-DuQpSSLL.esm.js +27 -0
- package/.chunks/store-DuQpSSLL.esm.js.map +1 -0
- package/.chunks/utils-BwiXsV0S.amd.js +2 -0
- package/.chunks/{utils-BNzP9anP.es.js.map → utils-BwiXsV0S.amd.js.map} +1 -1
- package/.chunks/utils-BwiXsV0S.esm.js +43 -0
- package/.chunks/utils-BwiXsV0S.esm.js.map +1 -0
- package/.chunks/utils-Dd0MZgyw.amd.js +2 -0
- package/.chunks/utils-Dd0MZgyw.amd.js.map +1 -0
- package/.chunks/utils-Dd0MZgyw.esm.js +287 -0
- package/.chunks/utils-Dd0MZgyw.esm.js.map +1 -0
- package/.chunks/worker-Db8YrEHo.amd.js +2 -0
- package/.chunks/worker-Db8YrEHo.amd.js.map +1 -0
- package/.chunks/worker-Db8YrEHo.esm.js +100 -0
- package/.chunks/worker-Db8YrEHo.esm.js.map +1 -0
- package/api/additional.amd.js +2 -2
- package/api/additional.amd.js.map +1 -1
- package/api/additional.d.ts +1 -0
- package/api/additional.js +70 -66
- package/api/additional.js.map +1 -1
- package/api/index.amd.js +2 -2
- package/api/index.amd.js.map +1 -1
- package/api/index.d.ts +1 -0
- package/api/index.js +3 -285
- package/assets/charts.css +1 -1
- package/assets/core.css +1 -1
- package/assets/dialog_regionSelectorRegions.css +1 -1
- package/assets/extra.css +1 -1
- package/assets/forms.css +1 -1
- package/assets/formsExt.css +1 -0
- package/assets/layout.css +1 -1
- package/assets/notice.css +1 -1
- package/assets/popup.css +1 -0
- package/assets/project.css +1 -1
- package/assets/tabs.css +1 -1
- package/assets/tabsView.css +1 -1
- package/assets/themes/dark-th.css +1 -1
- package/assets/themes/dark.css +1 -1
- package/assets/themes/light.css +1 -1
- package/autoload-css-manifest.amd.json +79 -0
- package/autoload-css-manifest.json +90 -0
- package/charts/charts.amd.js +2 -2
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.d.ts +1 -0
- package/charts/charts.js +146 -174
- package/charts/charts.js.map +1 -1
- package/core/app.amd.js +2 -2
- package/core/app.amd.js.map +1 -1
- package/core/app.d.ts +1 -0
- package/core/app.js +5 -213
- package/dialog/dialog.amd.js +2 -2
- package/dialog/dialog.amd.js.map +1 -1
- package/dialog/dialog.d.ts +1 -0
- package/dialog/dialog.js +4 -60
- package/extra/extra.amd.js +2 -2
- package/extra/extra.amd.js.map +1 -1
- package/extra/extra.d.ts +1 -0
- package/extra/extra.js +73 -69
- package/extra/extra.js.map +1 -1
- package/forms/forms.amd.js +2 -2
- package/forms/forms.amd.js.map +1 -1
- package/forms/forms.d.ts +1 -0
- package/forms/forms.js +2 -19
- package/forms/helpers.amd.js +2 -2
- package/forms/helpers.amd.js.map +1 -1
- package/forms/helpers.js +0 -2
- package/formsExt/formsExt.amd.js +2 -2
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.d.ts +1 -0
- package/formsExt/formsExt.js +2 -373
- package/icomoon/Topvisor icons.json +259 -231
- package/icomoon/demo-files/demo.amd.js +2 -0
- package/icomoon/demo-files/demo.amd.js.map +1 -0
- package/icomoon/demo.amd.js +2 -0
- package/icomoon/demo.amd.js.map +1 -0
- 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 +2 -2
- package/layout/layout.amd.js.map +1 -1
- package/layout/layout.d.ts +1 -0
- package/layout/layout.js +41 -57
- package/layout/layout.js.map +1 -1
- package/package.json +1 -1
- package/popup/popup.amd.js +2 -2
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.d.ts +1 -0
- package/popup/popup.js +2 -282
- package/popup/worker.amd.js +2 -2
- package/popup/worker.amd.js.map +1 -1
- package/popup/worker.d.ts +1 -0
- package/popup/worker.js +2 -144
- package/project/project.amd.js +2 -2
- package/project/project.amd.js.map +1 -1
- package/project/project.d.ts +1 -0
- package/project/project.js +1678 -1643
- package/project/project.js.map +1 -1
- package/src/{src/components → components}/charts/miniCharts/miniCharts.d.ts +1 -1
- package/src/{src/components → components}/core/notice/item/types.d.ts +1 -1
- package/src/{src/components → components}/core/notice/utils.d.ts +1 -1
- package/src/{src/components → components}/dialog/dialog/composables/dialogHandle.d.ts +1 -1
- package/src/{src/components → components}/dialog/dialog/dialogs/dialogs.vue.d.ts +2 -2
- package/src/{src/components → components}/dialog/dialog/stories/dialog_example/pages/utils.d.ts +1 -1
- package/src/components/dialog/dialog.d.ts +6 -0
- package/src/{src/components → components}/dialog/lib/worker.d.ts +1 -1
- package/src/{src/components → components}/forms/button/types.d.ts +1 -1
- package/src/{src/components → components}/forms/input/types.d.ts +1 -1
- package/src/components/forms/inputDate/types.d.ts +1 -0
- package/src/{src/components → components}/forms/select/types.d.ts +1 -1
- package/src/{src/components → components}/formsExt/editArea/types.d.ts +1 -1
- package/src/{src/components → components}/formsExt/editInput/types.d.ts +2 -2
- package/src/{src/components → components}/formsExt/libs/optionGroup/types.d.ts +1 -1
- package/src/{src/components → components}/formsExt/menu/types.d.ts +1 -1
- package/src/{src/components → components}/formsExt/policy/policy.vue.d.ts +1 -1
- package/src/{src/components → components}/formsExt/selector2/types.d.ts +3 -3
- package/src/{src/components → components}/popup/lib/popup.d.ts +2 -2
- package/src/{src/components → components}/popup/lib/worker.d.ts +2 -2
- package/src/{src/components → components}/popup/popup/popup.vue.d.ts +1 -1
- package/src/{src/components → components}/popup/popup/widgetInput/widgetInput.vue.d.ts +1 -1
- package/src/{src/components → components}/popup/popupConfirm/popupConfirm.vue.d.ts +1 -1
- package/src/{src/components → components}/project/competitorSelector/composables.d.ts +1 -1
- package/src/{src/components → components}/project/competitorSelector/types.d.ts +1 -1
- package/src/{src/components → components}/project/groupSelector/folders/types.d.ts +2 -2
- package/src/components/project/groupSelector/folders/utils.d.ts +57 -0
- package/src/{src/components → components}/project/groupSelector/groups/groups.vue.d.ts +1 -1
- package/src/{src/components → components}/project/groupSelector/groups/types.d.ts +2 -2
- package/src/components/project/groupSelector/groups/utils.d.ts +78 -0
- package/src/{src/components → components}/project/groupSelector/stories/mocks/index.d.ts +1 -1
- package/src/{src/components → components}/project/projectSelector/cache.d.ts +1 -1
- package/src/{src/components → components}/project/projectSelector/projectSelector.vue.d.ts +1 -1
- package/src/{src/components → components}/project/projectSelector/types.d.ts +2 -2
- package/src/{src/components → components}/project/projectSelector/utils.d.ts +41 -40
- package/src/{src/components → components}/project/regionSelector/composables/selectRegion.d.ts +1 -1
- package/src/{src/components → components}/project/regionSelector/composables/selectSearcher.d.ts +1 -1
- package/src/{src/components → components}/project/regionSelector/dialog_regionSelectorRegions/types.d.ts +1 -1
- package/src/{src/components → components}/project/tagSelector/popupOpener/types.d.ts +1 -1
- package/src/{src/components → components}/project/tagSelector/types.d.ts +1 -1
- package/src/{src/components → components}/project/tagSelector/utils/el.d.ts +1 -1
- package/src/{src/components → components}/tabsView/tabsView/store.d.ts +1 -1
- package/src/{src/core → core}/app.d.ts +2 -2
- package/src/{src/core → core}/core/core.d.ts +3 -3
- package/src/{src/core → core}/plugins/core.d.ts +6 -6
- package/src/{src/core → core}/utils/price.d.ts +2 -2
- package/src/core/utils/store.d.ts +6 -0
- package/tabs/tabs.amd.js +2 -2
- package/tabs/tabs.amd.js.map +1 -1
- package/tabs/tabs.d.ts +1 -0
- package/tabs/tabs.js +63 -77
- package/tabs/tabs.js.map +1 -1
- package/tabsView/tabsView.amd.js +2 -2
- package/tabsView/tabsView.amd.js.map +1 -1
- package/tabsView/tabsView.d.ts +1 -0
- package/tabsView/tabsView.js +245 -288
- package/tabsView/tabsView.js.map +1 -1
- package/utils/check.amd.js +2 -2
- package/utils/check.amd.js.map +1 -1
- package/utils/check.d.ts +1 -0
- package/utils/check.js +15 -19
- package/utils/check.js.map +1 -1
- package/utils/clipboard.amd.js +6 -6
- package/utils/clipboard.amd.js.map +1 -1
- package/utils/clipboard.d.ts +1 -0
- package/utils/clipboard.js +26 -31
- package/utils/clipboard.js.map +1 -1
- package/utils/date.amd.js +2 -2
- package/utils/date.amd.js.map +1 -1
- package/utils/date.d.ts +1 -0
- package/utils/date.js +2 -12
- package/utils/device.amd.js +2 -2
- package/utils/device.amd.js.map +1 -1
- package/utils/device.d.ts +1 -0
- package/utils/device.js +2 -15
- package/utils/dom.amd.js +2 -2
- package/utils/dom.amd.js.map +1 -1
- package/utils/dom.d.ts +5 -0
- package/utils/dom.js +53 -67
- package/utils/dom.js.map +1 -1
- package/utils/image.amd.js +3 -3
- package/utils/image.amd.js.map +1 -1
- package/utils/image.d.ts +1 -0
- package/utils/image.js +12 -22
- package/utils/image.js.map +1 -1
- package/utils/keyboard.amd.js +2 -2
- package/utils/keyboard.amd.js.map +1 -1
- package/utils/keyboard.d.ts +1 -0
- package/utils/keyboard.js +10 -11
- package/utils/keyboard.js.map +1 -1
- package/utils/lodash.amd.js +2 -2
- package/utils/lodash.amd.js.map +1 -1
- package/utils/lodash.d.ts +1 -0
- package/utils/lodash.js +2 -9
- package/utils/number.amd.js +2 -2
- package/utils/number.amd.js.map +1 -1
- package/utils/number.d.ts +1 -0
- package/utils/number.js +12 -12
- package/utils/number.js.map +1 -1
- package/utils/price.amd.js +2 -2
- package/utils/price.amd.js.map +1 -1
- package/utils/price.d.ts +1 -0
- package/utils/price.js +14 -9
- package/utils/price.js.map +1 -1
- package/utils/route.amd.js +2 -2
- package/utils/route.amd.js.map +1 -1
- package/utils/route.d.ts +1 -0
- package/utils/route.js +33 -37
- package/utils/route.js.map +1 -1
- package/utils/scroll.amd.js +2 -2
- package/utils/scroll.amd.js.map +1 -1
- package/utils/scroll.d.ts +1 -0
- package/utils/scroll.js +39 -43
- package/utils/scroll.js.map +1 -1
- package/utils/searchers.amd.js +2 -2
- package/utils/searchers.amd.js.map +1 -1
- package/utils/searchers.d.ts +1 -0
- package/utils/searchers.js +128 -133
- package/utils/searchers.js.map +1 -1
- package/utils/store.amd.js +2 -2
- package/utils/store.amd.js.map +1 -1
- package/utils/store.d.ts +1 -0
- package/utils/store.js +2 -7
- package/utils/string.amd.js +2 -2
- package/utils/string.amd.js.map +1 -1
- package/utils/string.d.ts +1 -0
- package/utils/string.js +120 -147
- package/utils/string.js.map +1 -1
- package/utils/system.amd.js +2 -2
- package/utils/system.amd.js.map +1 -1
- package/utils/system.d.ts +1 -0
- package/utils/system.js +25 -28
- package/utils/system.js.map +1 -1
- package/utils/url.amd.js +3 -3
- package/utils/url.amd.js.map +1 -1
- package/utils/url.d.ts +1 -0
- package/utils/url.js +36 -47
- package/utils/url.js.map +1 -1
- package/.chunks/core-Dgj_YGWh.es.js +0 -268
- package/.chunks/core-Dgj_YGWh.es.js.map +0 -1
- package/.chunks/core-DzDFXOdI.amd.js +0 -2
- package/.chunks/core-DzDFXOdI.amd.js.map +0 -1
- package/.chunks/datepicker-oa8ZwRhq.amd.js +0 -2
- package/.chunks/datepicker-oa8ZwRhq.amd.js.map +0 -1
- package/.chunks/datepicker-qToxk2nN.es.js +0 -41
- package/.chunks/datepicker-qToxk2nN.es.js.map +0 -1
- package/.chunks/dialog_regionSelectorRegions-CZ0tMVSq.amd.js +0 -2
- package/.chunks/dialog_regionSelectorRegions-CZ0tMVSq.amd.js.map +0 -1
- package/.chunks/dialog_regionSelectorRegions-qDW2Ejsv.es.js +0 -180
- package/.chunks/dialog_regionSelectorRegions-qDW2Ejsv.es.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BBix_8WK.amd.js +0 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BBix_8WK.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js +0 -323
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js.map +0 -1
- package/.chunks/field-Cvv0SRcJ.amd.js +0 -2
- package/.chunks/field-Cvv0SRcJ.amd.js.map +0 -1
- package/.chunks/field-CyyFzM-Y.es.js +0 -16
- package/.chunks/field-CyyFzM-Y.es.js.map +0 -1
- package/.chunks/forms-DDNzqU6o.amd.js +0 -3
- package/.chunks/forms-DDNzqU6o.amd.js.map +0 -1
- package/.chunks/forms-DtC-EKJL.es.js +0 -2053
- package/.chunks/forms-DtC-EKJL.es.js.map +0 -1
- package/.chunks/index-DLUtoTUg.amd.js +0 -2
- package/.chunks/index-DLUtoTUg.amd.js.map +0 -1
- package/.chunks/index-DkQWJkMc.es.js +0 -54
- package/.chunks/index-DkQWJkMc.es.js.map +0 -1
- package/.chunks/lazy-DDNqYkXn.amd.js +0 -2
- package/.chunks/lazy-DDNqYkXn.amd.js.map +0 -1
- package/.chunks/lazy-HKSyLh72.es.js +0 -75
- package/.chunks/lazy-HKSyLh72.es.js.map +0 -1
- package/.chunks/notice-BvQl911b.es.js +0 -191
- package/.chunks/notice-BvQl911b.es.js.map +0 -1
- package/.chunks/notice-CJ3WOTCM.amd.js +0 -4
- package/.chunks/notice-CJ3WOTCM.amd.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-Dd5-B4Ss.es.js +0 -139
- package/.chunks/page.vue_vue_type_script_setup_true_lang-Dd5-B4Ss.es.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-fl6-Ql4d.amd.js +0 -2
- package/.chunks/page.vue_vue_type_script_setup_true_lang-fl6-Ql4d.amd.js.map +0 -1
- package/.chunks/policy.vue_vue_type_style_index_0_lang-Bv3LwNDC.es.js +0 -519
- package/.chunks/policy.vue_vue_type_style_index_0_lang-Bv3LwNDC.es.js.map +0 -1
- package/.chunks/policy.vue_vue_type_style_index_0_lang-Da7rztT5.amd.js +0 -2
- package/.chunks/policy.vue_vue_type_style_index_0_lang-Da7rztT5.amd.js.map +0 -1
- package/.chunks/popup-OuDglAOF.es.js +0 -470
- package/.chunks/popup-OuDglAOF.es.js.map +0 -1
- package/.chunks/popup-yXIpyok3.amd.js +0 -2
- package/.chunks/popup-yXIpyok3.amd.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Bu_HvFoW.amd.js +0 -2
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Bu_HvFoW.amd.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DAQIAxvu.es.js +0 -209
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DAQIAxvu.es.js.map +0 -1
- package/.chunks/punycode.es6-CNOnFR2-.amd.js +0 -2
- package/.chunks/punycode.es6-CNOnFR2-.amd.js.map +0 -1
- package/.chunks/punycode.es6-CgGegfA_.es.js +0 -134
- package/.chunks/store-CX_6ZXhO.es.js +0 -29
- package/.chunks/store-CX_6ZXhO.es.js.map +0 -1
- package/.chunks/store-YRW59xEF.amd.js +0 -2
- package/.chunks/store-YRW59xEF.amd.js.map +0 -1
- package/.chunks/utils-BNzP9anP.es.js +0 -78
- package/.chunks/utils-CWn_G7OO.amd.js +0 -2
- package/.chunks/utils-CWn_G7OO.amd.js.map +0 -1
- package/.chunks/utils-DIviuVEw.amd.js +0 -2
- package/.chunks/utils-DIviuVEw.amd.js.map +0 -1
- package/.chunks/utils-Dma85ehT.es.js +0 -288
- package/.chunks/utils-Dma85ehT.es.js.map +0 -1
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CX_BOcVY.es.js +0 -39
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CX_BOcVY.es.js.map +0 -1
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CkOmb3VD.amd.js +0 -2
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CkOmb3VD.amd.js.map +0 -1
- package/api/index.js.map +0 -1
- package/assets/policy.css +0 -1
- package/assets/popupHint.css +0 -1
- package/core/app.js.map +0 -1
- package/dialog/dialog.js.map +0 -1
- package/forms/forms.js.map +0 -1
- package/forms/helpers.js.map +0 -1
- package/formsExt/formsExt.js.map +0 -1
- package/popup/popup.js.map +0 -1
- package/popup/worker.js.map +0 -1
- package/src/src/components/dialog/dialog.d.ts +0 -6
- package/src/src/components/forms/inputDate/types.d.ts +0 -1
- package/src/src/components/project/groupSelector/folders/utils.d.ts +0 -422
- package/src/src/components/project/groupSelector/groups/utils.d.ts +0 -791
- package/src/src/components/project/groupSelector/utils.d.ts +0 -37
- package/src/src/core/utils/store.d.ts +0 -6
- package/utils/date.js.map +0 -1
- package/utils/device.js.map +0 -1
- package/utils/lodash.js.map +0 -1
- package/utils/store.js.map +0 -1
- package/src/{src/api → api}/api/additional.d.ts +0 -0
- package/src/{src/api → api}/api/client/client.d.ts +0 -0
- package/src/{src/api → api}/api/client/request-options.d.ts +0 -0
- package/src/{src/api → api}/api/client/request.d.ts +0 -0
- package/src/{src/api → api}/api/index.d.ts +0 -0
- package/src/{src/api → api}/api/mocker/index.d.ts +0 -0
- package/src/{src/api → api}/api/tests/types.test-d.d.ts +0 -0
- package/src/{src/api → api}/api/types/api.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/client.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/middleware.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/options.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/request-context.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/request-options.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/request.d.ts +0 -0
- package/src/{src/api → api}/api/types/ext.d.ts +0 -0
- package/src/{src/api → api}/api/types/field.d.ts +0 -0
- package/src/{src/api → api}/api/types/index.d.ts +0 -0
- package/src/{src/api → api}/api/types/mocker.d.ts +0 -0
- package/src/{src/api → api}/api/types/schema.d.ts +0 -0
- package/src/{src/api → api}/api/types/tv.d.ts +0 -0
- package/src/{src/api → api}/api/types/utils.d.ts +0 -0
- package/src/{src/api → api}/api/utils/common.d.ts +0 -0
- package/src/{src/api → api}/api/utils/field.d.ts +0 -0
- package/src/{src/api → api}/api/utils/filters.d.ts +0 -0
- package/src/{src/api → api}/api/utils/lazy.d.ts +0 -0
- package/src/{src/components → components}/charts/charts.d.ts +0 -0
- package/src/{src/components → components}/charts/miniChart/miniChart.vue.d.ts +0 -0
- package/src/{src/components → components}/charts/miniChart/types.d.ts +0 -0
- package/src/{src/components → components}/charts/miniChart/utils/consts.d.ts +0 -0
- package/src/{src/components → components}/charts/miniCharts/miniCharts.vue.d.ts +0 -0
- package/src/{src/components → components}/core/notice/item/item.vue.d.ts +0 -0
- package/src/{src/components → components}/core/notice/notice.vue.d.ts +0 -0
- package/src/{src/components → components}/core/notice/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/composables/asyncDialogHandle.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/composables/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/composables/utils.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/dialog.vue.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/page/page.vue.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/page/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/pageComponent/pageComponent.vue.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/pageComponent/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/lib/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/lib/utils.d.ts +0 -0
- package/src/{src/components → components}/dialog/lib/utils.globalEvents.d.ts +0 -0
- package/src/{src/components → components}/extra/extra.d.ts +0 -0
- package/src/{src/components → components}/extra/rive/rive.vue.d.ts +0 -0
- package/src/{src/components → components}/extra/rive/types.d.ts +0 -0
- package/src/{src/components → components}/forms/avatar/avatar.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/avatar/types.d.ts +0 -0
- package/src/{src/components → components}/forms/button/button.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/caption/caption.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/caption/types.d.ts +0 -0
- package/src/{src/components → components}/forms/checkbox/checkbox.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/checkbox/types.d.ts +0 -0
- package/src/{src/components → components}/forms/controlLabel/controlLabel.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/controlLabel/types.d.ts +0 -0
- package/src/{src/components → components}/forms/forms.d.ts +0 -0
- package/src/{src/components → components}/forms/helpers.d.ts +0 -0
- package/src/{src/components → components}/forms/hint/hint.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/hint/types.d.ts +0 -0
- package/src/{src/components → components}/forms/input/input.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/inputDate/datepicker.d.ts +0 -0
- package/src/{src/components → components}/forms/inputDate/inputDate.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/inputRange/inputRange.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/inputRange/types.d.ts +0 -0
- package/src/{src/components → components}/forms/loadbar/loadbar.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/preloader/preloader.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/preloader/types.d.ts +0 -0
- package/src/{src/components → components}/forms/radio/radio.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/radio/types.d.ts +0 -0
- package/src/{src/components → components}/forms/select/select.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/switcher/switcher.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/switcher/types.d.ts +0 -0
- package/src/{src/components → components}/forms/textarea/textarea.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/textarea/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/checkboxGroup/checkboxGroup.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/checkboxGroup/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/editArea/editArea.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/editInput/editInput.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/formsExt.d.ts +0 -0
- package/src/{src/components → components}/formsExt/info/info.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/info/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/libs/optionGroup/optionGroup.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/menu/menu.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/policy/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/radioGroup/radioGroup.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/radioGroup/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/cache.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/composables/useAPI.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/composables/useMenu.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/itemMulti.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/selector2.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/utils.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/islandRows.vue.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/islandRowsRow/types.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/types.d.ts +0 -0
- package/src/{src/components → components}/layout/layout.d.ts +0 -0
- package/src/{src/components → components}/layout/rows/rows.vue.d.ts +0 -0
- package/src/{src/components → components}/layout/rows/types.d.ts +0 -0
- package/src/{src/components → components}/popup/lib/popup.globalEvents.d.ts +0 -0
- package/src/{src/components → components}/popup/lib/worker.globalEvents.d.ts +0 -0
- package/src/{src/components → components}/popup/popup/listItem.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popup/opener/opener.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popup/opener/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popup/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popup.d.ts +0 -0
- package/src/{src/components → components}/popup/popupAlert/popupAlert.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popupAlert/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popupConfirm/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popupHint/popupHint.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popupHint/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popupPrompt/popupPrompt.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popupPrompt/types.d.ts +0 -0
- package/src/{src/components → components}/popup/worker.d.ts +0 -0
- package/src/{src/components → components}/project/competitorSelector/competitorSelector.vue.d.ts +0 -0
- package/src/{src/components → components}/project/groupSelector/folders/folders.vue.d.ts +0 -0
- package/src/{src/components → components}/project/groupSelector/groupSelector.vue.d.ts +1 -1
- /package/src/{src/components → components}/project/groupSelector/stories/mocks/folders.d.ts +0 -0
- /package/src/{src/components → components}/project/groupSelector/stories/mocks/groups.d.ts +0 -0
- /package/src/{src/components → components}/project/groupSelector/types.d.ts +0 -0
- /package/src/{src/components → components}/project/project.d.ts +0 -0
- /package/src/{src/components → components}/project/projectSelector/submenu/submenu.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/projectSelector/submenu/types.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/composables/compare.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/composables/selectorRegion.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/regionSelector.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/types.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/utils/consts.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/utils/utils.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/popupListItem/tagPopupListItem.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/popupListItem/types.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/popupOpener/popupOpener.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/tagIcon/tagIcon.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/tagIcon/types.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/tagSelector.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/tagsDefaults.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/utils/utils.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs/content.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs/tab.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs/tabs.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs/types.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/menu.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/menuDelimeter.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/menuItem.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/menuTitle.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/tabsView.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/types.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/utils.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView.d.ts +0 -0
- /package/src/{src/core → core}/core/events/resize.d.ts +0 -0
- /package/src/{src/core → core}/core/events.d.ts +0 -0
- /package/src/{src/core → core}/core/options.d.ts +0 -0
- /package/src/{src/core → core}/core/preloaders.d.ts +0 -0
- /package/src/{src/core → core}/core/state.d.ts +0 -0
- /package/src/{src/core → core}/directives/data.d.ts +0 -0
- /package/src/{src/core → core}/directives/focus.d.ts +0 -0
- /package/src/{src/core → core}/directives/preloader.d.ts +0 -0
- /package/src/{src/core → core}/directives/scrollIntoView.d.ts +0 -0
- /package/src/{src/core → core}/directives/scrollShadow.d.ts +0 -0
- /package/src/{src/core → core}/directives/shortcut.d.ts +0 -0
- /package/src/{src/core → core}/directives/sticky.d.ts +0 -0
- /package/src/{src/core → core}/directives/swimUp.d.ts +0 -0
- /package/src/{src/core → core}/directives/tooltip.d.ts +0 -0
- /package/src/{src/core → core}/plugins/i18n.d.ts +0 -0
- /package/src/{src/core → core}/plugins/piniaTPA.d.ts +0 -0
- /package/src/{src/core → core}/utils/check.d.ts +0 -0
- /package/src/{src/core → core}/utils/clipboard.d.ts +0 -0
- /package/src/{src/core → core}/utils/composables/useWatch.d.ts +0 -0
- /package/src/{src/core → core}/utils/date.d.ts +0 -0
- /package/src/{src/core → core}/utils/device.d.ts +0 -0
- /package/src/{src/core → core}/utils/dom.d.ts +0 -0
- /package/src/{src/core → core}/utils/image.d.ts +0 -0
- /package/src/{src/core → core}/utils/keyboard.d.ts +0 -0
- /package/src/{src/core → core}/utils/lodash.d.ts +0 -0
- /package/src/{src/core → core}/utils/number.d.ts +0 -0
- /package/src/{src/core → core}/utils/route.d.ts +0 -0
- /package/src/{src/core → core}/utils/scroll.d.ts +0 -0
- /package/src/{src/core → core}/utils/searchers.d.ts +0 -0
- /package/src/{src/core → core}/utils/store/localStorage.d.ts +0 -0
- /package/src/{src/core → core}/utils/store/plugin.d.ts +0 -0
- /package/src/{src/core → core}/utils/store/store.d.ts +0 -0
- /package/src/{src/core → core}/utils/string.d.ts +0 -0
- /package/src/{src/core → core}/utils/system.d.ts +0 -0
- /package/src/{src/core → core}/utils/tests/date/dateFormat.test.d.ts +0 -0
- /package/src/{src/core → core}/utils/url.d.ts +0 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
|
|
2
|
+
/* start import css */
|
|
3
|
+
import { Core as _autoloadCSSCore } from '../core/app.js';
|
|
4
|
+
const fileNames = ['../assets/dialog_regionSelectorRegions.css'].map(fileName => import.meta.resolve(fileName));
|
|
5
|
+
_autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
|
|
6
|
+
/* end import css */
|
|
7
|
+
|
|
8
|
+
import { O as e } from "./forms-CbUt-6Ff.esm.js";
|
|
9
|
+
import { a as t } from "./dialogs-CMrERMI7.esm.js";
|
|
10
|
+
import { genFlagLinkByCountryCode as n } from "../utils/string.js";
|
|
11
|
+
import { r } from "./utils-BwiXsV0S.esm.js";
|
|
12
|
+
import { getDeviceGIcon as i, getLangLabel as a, getSearcherGIcon as o } from "../utils/searchers.js";
|
|
13
|
+
import { r as s } from "./dialog-DeM4SApg.esm.js";
|
|
14
|
+
import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createTextVNode as m, createVNode as h, defineComponent as g, openBlock as _, reactive as v, ref as y, renderList as b, resolveComponent as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
|
|
15
|
+
//#region src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue?vue&type=script&setup=true&lang.ts
|
|
16
|
+
var E = { class: "dialog_regionSelectorRegions_header" }, D = ["data-top-icon"], O = ["src", "alt"], k = { class: "top-ellipsis" }, A = { class: "dialog_regionSelectorRegions_regionAreaName" }, j = { key: 1 }, M = ["data-top-icon"], N = /* @__PURE__ */ g({
|
|
17
|
+
id: "regionSelectorRegions",
|
|
18
|
+
__name: "dialog_regionSelectorRegions",
|
|
19
|
+
props: {
|
|
20
|
+
regions: {},
|
|
21
|
+
regionsIndexes: {},
|
|
22
|
+
"@update:regionsIndexes": { type: Function }
|
|
23
|
+
},
|
|
24
|
+
setup(g) {
|
|
25
|
+
let N = g, P = r(), F = y([]), I = y(null), L = v({
|
|
26
|
+
searcher_key: -1,
|
|
27
|
+
key: -1,
|
|
28
|
+
name: -1
|
|
29
|
+
}), R = l({
|
|
30
|
+
get() {
|
|
31
|
+
return F.value.every((e) => e.selected);
|
|
32
|
+
},
|
|
33
|
+
set(e) {
|
|
34
|
+
F.value = F.value.map((t) => ({
|
|
35
|
+
...t,
|
|
36
|
+
selected: e
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
}), z = (e) => {
|
|
40
|
+
L[e] = -L[e], F.value.sort((t, n) => !t[e] || !n[e] ? -1 : t[e] >= n[e] ? L[e] : -L[e]);
|
|
41
|
+
}, B = () => {
|
|
42
|
+
if (!F.value.some((e) => e.selected)) return;
|
|
43
|
+
let e = F.value.filter((e) => e.selected).map((e) => e.index);
|
|
44
|
+
N["@update:regionsIndexes"]?.(e), P.close();
|
|
45
|
+
};
|
|
46
|
+
w([() => N.regions, () => N.regionsIndexes], () => {
|
|
47
|
+
if (F.value = [], !N.regions || !N.regionsIndexes) return;
|
|
48
|
+
let e = [...N.regions], t = new Map(N.regionsIndexes.map((e, t) => [e, t]));
|
|
49
|
+
e.sort((e, n) => (t.get(e.index) ?? Number.MAX_VALUE) - (t.get(n.index) ?? Number.MAX_VALUE)), e.forEach((e) => {
|
|
50
|
+
let t = e.name;
|
|
51
|
+
e.areaName && (t += ` (${e.areaName})`);
|
|
52
|
+
let r = N.regionsIndexes?.includes(e.index) ?? !1, s = o(e.searcher_key), c = e.lang === void 0 ? void 0 : a(e.searcher_key ?? 999, e.lang), l = e.device === void 0 ? void 0 : i(e.device), u = e.countryCode === void 0 ? void 0 : n(e.countryCode), d = {
|
|
53
|
+
...e,
|
|
54
|
+
selected: r,
|
|
55
|
+
title: t,
|
|
56
|
+
searcherIcon: s,
|
|
57
|
+
langLabel: c,
|
|
58
|
+
deviceIcon: l,
|
|
59
|
+
flagLink: u
|
|
60
|
+
};
|
|
61
|
+
F.value.push(d);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
let V = () => {
|
|
65
|
+
if (!e.$?.ui.sortable) {
|
|
66
|
+
console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
I.value && $(I.value).sortable({
|
|
70
|
+
distance: 10,
|
|
71
|
+
stop: () => {
|
|
72
|
+
let e = [...I.value.children].map((e) => Number(e.getAttribute("data-region-index")));
|
|
73
|
+
F.value.sort((t, n) => e.indexOf(t.index) - e.indexOf(n.index));
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}, H = () => {
|
|
77
|
+
e.$?.ui.sortable && I.value && $(I.value).sortable("destroy");
|
|
78
|
+
};
|
|
79
|
+
return (e, n) => {
|
|
80
|
+
let r = x("TopCheckbox"), i = x("TopButton");
|
|
81
|
+
return _(), u(C(t), {
|
|
82
|
+
id: C(P).id,
|
|
83
|
+
pageActive: "regions",
|
|
84
|
+
class: "dialog_regionSelectorRegions",
|
|
85
|
+
height: "600px",
|
|
86
|
+
width: "600px",
|
|
87
|
+
onOpen: V,
|
|
88
|
+
onClose: H
|
|
89
|
+
}, {
|
|
90
|
+
default: T(() => [h(C(s), {
|
|
91
|
+
name: "regions",
|
|
92
|
+
order: 0
|
|
93
|
+
}, {
|
|
94
|
+
header: T(() => [p("div", E, [
|
|
95
|
+
h(r, {
|
|
96
|
+
modelValue: R.value,
|
|
97
|
+
"onUpdate:modelValue": n[0] ||= (e) => R.value = e
|
|
98
|
+
}, null, 8, ["modelValue"]),
|
|
99
|
+
h(i, {
|
|
100
|
+
class: "dialog_regionSelectorRegions_sortButton",
|
|
101
|
+
color: "theme",
|
|
102
|
+
"data-top-icon": "",
|
|
103
|
+
onClick: n[1] ||= (e) => z("searcher_key"),
|
|
104
|
+
title: e.$i18n.Projects?.Sort_by_search_engine
|
|
105
|
+
}, null, 8, ["title"]),
|
|
106
|
+
h(i, {
|
|
107
|
+
class: "dialog_regionSelectorRegions_sortButton",
|
|
108
|
+
color: "theme",
|
|
109
|
+
"data-top-icon": "",
|
|
110
|
+
onClick: n[2] ||= (e) => z("key"),
|
|
111
|
+
title: e.$i18n.Projects?.Sort_by_yande_region_code
|
|
112
|
+
}, null, 8, ["title"]),
|
|
113
|
+
h(i, {
|
|
114
|
+
class: "dialog_regionSelectorRegions_sortButton",
|
|
115
|
+
color: "theme",
|
|
116
|
+
"data-top-icon": "",
|
|
117
|
+
onClick: n[3] ||= (e) => z("name"),
|
|
118
|
+
title: e.$i18n.Projects?.Sort_by_lphabetically
|
|
119
|
+
}, null, 8, ["title"])
|
|
120
|
+
])]),
|
|
121
|
+
body: T(() => [p("div", {
|
|
122
|
+
ref_key: "elRegions",
|
|
123
|
+
ref: I
|
|
124
|
+
}, [(_(!0), f(c, null, b(F.value, (e) => (_(), u(r, {
|
|
125
|
+
key: e.index,
|
|
126
|
+
modelValue: e.selected,
|
|
127
|
+
"onUpdate:modelValue": (t) => e.selected = t,
|
|
128
|
+
class: "dialog_regionSelectorRegions_region",
|
|
129
|
+
"data-region-index": e.index
|
|
130
|
+
}, {
|
|
131
|
+
default: T(() => [
|
|
132
|
+
p("div", {
|
|
133
|
+
class: "dialog_regionSelectorRegions_regionSearcherIcon",
|
|
134
|
+
"data-top-icon": e.searcherIcon
|
|
135
|
+
}, null, 8, D),
|
|
136
|
+
e.flagLink ? (_(), f("img", {
|
|
137
|
+
key: 0,
|
|
138
|
+
class: "top-flag",
|
|
139
|
+
src: "//topvisor.dev" + e.flagLink,
|
|
140
|
+
alt: e.countryCode
|
|
141
|
+
}, null, 8, O)) : d("", !0),
|
|
142
|
+
p("div", k, [m(S(e.name) + " ", 1), p("span", A, S(e.areaName), 1)]),
|
|
143
|
+
e.langLabel ? (_(), f("div", j, " [" + S(e.langLabel) + "] ", 1)) : d("", !0),
|
|
144
|
+
e.deviceIcon ? (_(), f("div", {
|
|
145
|
+
key: 2,
|
|
146
|
+
"data-top-icon": e.deviceIcon
|
|
147
|
+
}, null, 8, M)) : d("", !0)
|
|
148
|
+
]),
|
|
149
|
+
_: 2
|
|
150
|
+
}, 1032, [
|
|
151
|
+
"modelValue",
|
|
152
|
+
"onUpdate:modelValue",
|
|
153
|
+
"data-region-index"
|
|
154
|
+
]))), 128))], 512)]),
|
|
155
|
+
footer: T(() => [h(i, { onClick: B }, {
|
|
156
|
+
default: T(() => [m(S(e.$i18n.Common?.Apply), 1)]),
|
|
157
|
+
_: 1
|
|
158
|
+
})]),
|
|
159
|
+
_: 1
|
|
160
|
+
})]),
|
|
161
|
+
_: 1
|
|
162
|
+
}, 8, ["id"]);
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
//#endregion
|
|
167
|
+
export { N as default };
|
|
168
|
+
|
|
169
|
+
//# sourceMappingURL=dialog_regionSelectorRegions-CYrmaDt3.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog_regionSelectorRegions-CYrmaDt3.esm.js","names":["$i18n"],"sources":["../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue","../../src/components/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.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: 'regionSelectorRegions' });\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=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\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=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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","<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: 'regionSelectorRegions' });\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=\"regions\"\n\t\tclass=\"dialog_regionSelectorRegions\"\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=\"regions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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_regionSelectorRegions_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"],"mappings":";;;;;;;;;;;;;;;;;EAUA,IAAM,IAAQ,GAER,IAAS,GAAkB,EAK3B,IAAc,EAAkB,EAAE,CAAC,EAKnC,IAAY,EAAwB,KAAK,EAKzC,IAAsB,EAAS;GACpC,cAAc;GACd,KAAK;GACL,MAAM;GACN,CAAC,EAKI,IAAgB,EAAS;GAC9B,MAAM;AACL,WAAO,EAAY,MAAM,OAAM,MAAU,EAAO,SAAS;;GAG1D,IAAI,GAAO;AACV,MAAY,QAAQ,EAAY,MAAM,KAAI,OAAW;KAAE,GAAG;KAAQ,UAAU;KAAO,EAAE;;GAEtF,CAAC,EAMI,KAAQ,MAAkD;AAG/D,GAFA,EAAoB,KAAe,CAAC,EAAoB,IAExD,EAAY,MAAM,MAAM,GAAS,MAC5B,CAAC,EAAQ,MAAgB,CAAC,EAAQ,KAAqB,KAEpD,EAAQ,MAAgB,EAAQ,KAAe,EAAoB,KAAe,CAAC,EAAoB,GAC7G;KAQG,UAAiB;AACtB,OAAI,CAAC,EAAY,MAAM,MAAK,MAAU,EAAO,SAAS,CAAE;GAExD,IAAM,IAAiB,EAAY,MACjC,QAAO,MAAU,EAAO,SAAQ,CAChC,KAAI,MAAU,EAAO,MAAM;AAI7B,GAFA,EAAM,4BAA4B,EAAe,EAEjD,EAAO,OAAO;;AAIf,IAAM,OACC,EAAM,eACN,EAAM,eACZ,QAAQ;AAIR,OAHA,EAAY,QAAQ,EAAE,EAElB,CAAC,EAAM,WACP,CAAC,EAAM,eAAgB;GAE3B,IAAI,IAAU,CAAC,GAAG,EAAM,QAAQ,EAG1B,IAAqB,IAAI,IAAI,EAAM,eAAe,KAAK,GAAO,MAAU,CAAC,GAAO,EAAM,CAAC,CAAC;AAS9F,GAPA,EAAQ,MAAM,GAAS,OACP,EAAmB,IAAI,EAAQ,MAAM,IAAI,OAAO,cAChD,EAAmB,IAAI,EAAQ,MAAM,IAAI,OAAO,WAG9D,EAEF,EAAQ,SAAQ,MAAU;IACzB,IAAI,IAAQ,EAAO;AACnB,IAAI,EAAO,aAAU,KAAS,KAAK,EAAO,SAAS;IAEnD,IAAM,IAAW,EAAM,gBAAgB,SAAS,EAAO,MAAM,IAAI,IAC3D,IAAe,EAAiB,EAAO,aAAa,EACpD,IAAY,EAAO,SAAS,KAAA,IAAoE,KAAA,IAAxD,EAAa,EAAO,gBAAgB,KAAK,EAAO,KAAK,EAC7F,IAAa,EAAO,WAAW,KAAA,IAA4C,KAAA,IAAhC,EAAe,EAAO,OAAO,EACxE,IAAW,EAAO,gBAAgB,KAAA,IAA2D,KAAA,IAA/C,EAAyB,EAAO,YAAY,EAE1F,IAAa;KAClB,GAAG;KACH;KACA;KACA;KACA;KACA;KACA;KACA;AAED,MAAY,MAAM,KAAK,EAAW;KACjC;IACD;EAKF,IAAM,UAAe;AACpB,OAAI,CAAC,EAAK,GAAG,GAAG,UAAa;AAC5B,YAAQ,KAAK,yEAAyE;AAEtF;;AAGI,KAAU,SAEf,EAAE,EAAU,MAAM,CAAC,SAAS;IAC3B,UAAU;IAEV,YAAY;KAEX,IAAM,IAAgB,CAAC,GAAG,EAAU,MAAO,SAAS,CAAC,KAAI,MAAM,OAAO,EAAG,aAAa,oBAAoB,CAAC,CAAC;AAC5G,OAAY,MAAM,MAAM,GAAG,MAAM,EAAc,QAAQ,EAAE,MAAM,GAAG,EAAc,QAAQ,EAAE,MAAM,CAAC;;IAElG,CAAC;KAMG,UAAgB;AAChB,KAAK,GAAG,GAAG,YACX,EAAU,SAEf,EAAE,EAAU,MAAM,CAAC,SAAS,UAAU;;;;eAMtC,EAuFY,EAAA,EAAA,EAAA;IAtFV,IAAI,EAAA,EAAM,CAAC;IACZ,YAAW;IACX,OAAM;IACN,QAAO;IACP,OAAM;IACC;IACC;;qBA+EQ,CA7EhB,EA6EgB,EAAA,EAAA,EAAA;KA7ED,MAAK;KAAW,OAAO;;KAC1B,QAAM,QA2BV,CA1BN,EA0BM,OA1BN,GA0BM;MAzBL,EAAmD,GAAA;mBAA7B,EAAA;gDAAa,QAAA;;MAEnC,EAME,GAAA;OALD,OAAM;OACN,OAAM;OACN,iBAAc;OACb,SAAK,AAAA,EAAA,QAAA,MAAE,EAAI,eAAA;OACX,OAAOA,EAAAA,MAAM,UAAU;;MAGzB,EAME,GAAA;OALD,OAAM;OACN,OAAM;OACN,iBAAc;OACb,SAAK,AAAA,EAAA,QAAA,MAAE,EAAI,MAAA;OACX,OAAOA,EAAAA,MAAM,UAAU;;MAGzB,EAME,GAAA;OALD,OAAM;OACN,OAAM;OACN,iBAAc;OACb,SAAK,AAAA,EAAA,QAAA,MAAE,EAAI,OAAA;OACX,OAAOA,EAAAA,MAAM,UAAU;;;KAKhB,MAAI,QAsCR,CArCN,EAqCM,OAAA;eArCG;MAAJ,KAAI;iBACR,EAmCc,GAAA,MAAA,EAlCI,EAAA,QAAV,YADR,EAmCc,GAAA;MAjCZ,KAAK,EAAO;kBACJ,EAAO;sCAAA,WAAQ;MACxB,OAAM;MACL,qBAAmB,EAAO;;uBAKpB;OAHP,EAGO,OAAA;QAFN,OAAM;QACL,iBAAe,EAAO;;OAIjB,EAAO,YAAA,GAAA,EADd,EAKC,OAAA;;QAHA,OAAM;QACL,KAAG,mBAAqB,EAAO;QAC/B,KAAK,EAAO;;OAGd,EAMM,OANN,GAMM,CAAA,EAAA,EALF,EAAO,KAAI,GAAG,KAEjB,EAAA,EAAA,EAEO,QAFP,GAEO,EADH,EAAO,SAAQ,EAAA,EAAA,CAAA,CAAA;OAIT,EAAO,aAAA,GAAA,EAAlB,EAEM,OAAA,GAFuB,OAC3B,EAAG,EAAO,UAAS,GAAG,MACxB,EAAA,IAAA,EAAA,IAAA,GAAA;OAGO,EAAO,cAAA,GAAA,EADd,EAGO,OAAA;;QADL,iBAAe,EAAO;;;;;;;;;KAMhB,QAAM,QAGJ,CAFZ,EAEY,GAAA,EAFA,SAAO,GAAQ,EAAA;uBACD,CAAA,EAAA,EAAtBA,EAAAA,MAAM,QAAQ,MAAK,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +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[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`,`./forms-CbUt-6Ff.amd`,`../utils/dom.amd`,`../utils/system.amd`,`../utils/route.amd`,`vue`],function(e,t,r,i,a,o,s){"use strict";if(c===void 0)var c=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.t=t.r=t.n=t.i=t.a=void 0;var l=[`id`,`data-view-page-active`,`data-modal`,`data-position`],u=(0,s.defineComponent)({__name:`dialog`,props:{id:{},pageActive:{},width:{default:`600px`},height:{default:`auto`},modal:{type:Boolean,default:!0},position:{},historyType:{default:`push`},classes:{}},emits:[`open`,`close`],setup(e){let t=g(e.id);if(!t)throw Error(`TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()`);return(0,s.provide)(`dialogWorker`,t),(0,s.onMounted)(()=>{let e=(0,s.getCurrentInstance)(),n=e.parent;if(n?.parent?.type.name!==`DialogWrapper`)throw Error(`TopDialog cannot be used in a template, use useTopDialog()`);if(Array.isArray(n.subTree.children)&&n.subTree.children.length!==1)throw Error(`TopDialog can has only one root element`);t.onMounted(n,e)}),(0,s.watch)(t.isOpened,()=>{t.isReady.value=!0},{flush:`post`,once:!0}),(n,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{id:(0,s.unref)(t).idAttr,class:(0,s.normalizeClass)([`top-dialog`,e.classes]),style:(0,s.normalizeStyle)({"--top-dialog-width":e.width,"--top-dialog-height":e.height}),tabindex:`-1`,"data-view-page-active":(0,s.unref)(t).pageActive.value,"data-modal":e.modal,"data-position":e.position},[r[0]||=(0,s.createElementVNode)(`div`,{class:`modal-layer modal-layer-header`},null,-1),(0,s.createElementVNode)(`div`,{class:`modal-layer modal-layer-body`,style:(0,s.normalizeStyle)({"min-height":e.height+`px`})},null,4),(0,s.renderSlot)(n.$slots,`default`)],14,l))}}),d,f=class t{static init(e){if(this.inited)return;this.inited=!0,this.state.load=e?.load,this.state.decoratorOnCreate=e?.decoratorOnCreate;let n=e?.autoInitDelay??5e3;window.addEventListener(`hashchange`,e=>{this.opendDialogsFromChangeUrl(e.oldURL,e.newURL)}),this.opendDialogsFromChangeUrl(``,location.href),document.addEventListener(`mousedown`,async e=>{if(!(e.target instanceof HTMLElement))return;let n=e.target.closest(`a[data-to-view]`);if(!n)return;let r=`next`;n.dataset.action===`top-dialog-close`&&(r=`prev`),n.href=t.genViewPageHash(n.dataset.toView,r)}),document.addEventListener(`click`,async e=>{if(!(e.target instanceof HTMLElement))return;let n=e.target.closest(`[data-to-view]`);if(!n)return;if(n instanceof HTMLAnchorElement&&n.href===`.`){e.preventDefault();let t=new MouseEvent(`mousedown`,{bubbles:!0,cancelable:!0,view:window});n.dispatchEvent(t),setTimeout(()=>n.click());return}let r=await this.getDialogsUtils(),a=n.dataset.toView,s=a.split(`-`)[0],c=r.getElDialogById(s),l=`next`;if(c){let e=(0,i.querySelectorAllArray)(c,`.modal-layer`),t=e.reduce((e,t)=>{let n=t.querySelector(`:scope > .active`);return n&&e.push(n),e},[]);if(t.length){let n=a.split(`-`)[1].split(`:`)[0];(e.reduce((e,t)=>{let r=t?.querySelector(`:scope > [data-view-page="${n}"]`);return r&&e.push(r),e},[])[0]?.dataset.order??0)<(t[0]?.dataset.order??0)&&(l=`prev`)}}n.dataset.action===`top-dialog-close`&&(l=`prev`);let u=t.genViewPageHash(a,l);if(n instanceof HTMLAnchorElement){if(!c||!(0,i.isVisible)(c))return;if(location.hash.indexOf(a.replace(`-`,`=`))!==-1){await r.toViewDirty(a);return}}c?.dataset.toViewReplace?(e.preventDefault(),(0,o.historySetState)(!0,u),await r.toViewDirty(a),l==`next`?t.state.viewPageN++:t.state.viewPageN--):n.tagName!==`A`&&(this.compareStates(u,location.hash)?(0,o.historySetState)(!1,u):await r.toViewDirty(a))}),setTimeout(()=>this.getDialogsUtils(),n)}static opendDialogsFromChangeUrl(e,t){let n=e.replace(/.*?#/,`#`),r=t.replace(/.*?#/,`#`);this.compareStates(n,r)&&this.opendDialogsFromUrl()}static async getDialogsUtils(){let{TopDialogUtils:t}=await new Promise((t,n)=>{e([`./utils-Dd0MZgyw.amd`],t,n)}).then(__importStar);return t}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){let n=t.get$dialog(e),r=t.get$page(e).data(`view-page`);return $(`[data-view-page="`+r+`"]`,n)}static getPairPage(e){let n=t.getDialog(e);if(!n)return;let r=t.getPage(e)?.dataset.viewPage;return(0,i.querySelectorAllArray)(n,`[data-view-page="${r}"]`)}static close(e){let t=$(`#`+e);if(t.dialog(`instance`)){t.dialog(`close`);return}let n=document.getElementById(e);n instanceof HTMLDialogElement&&n.close()}static destroy(e){let t=$(`#`+e);if(t.dialog(`instance`)){t.dialog(`close`),t.dialog(`destroy`);return}let n=document.getElementById(e);n instanceof HTMLDialogElement&&n.close()}static genViewPageHash(e,t=`next`){let n=this.state.viewPageN;t==`prev`?n--:n++;let r=e.split(`-`),i=r.shift(),a=r.join(`-`),s=(0,o.genHash)(`vpn`,n);return s=(0,o.genHash)(`view-`+i,a,s),s}static compareStates(e,t){let n=e.match(/[#&]view-[^&]+/g)||[],r=t.match(/[#&]view-[^&]+/g)||[];return!!(n.length!==r.length||n.filter((e,t)=>e!==(r[t]||``)).length)}};t.a=u,t.i=f,d=f,(0,r.K)(f,`state`,{load:void 0,decoratorOnCreate:void 0,viewPageN:0}),(0,r.K)(f,`inited`,!1),(0,r.K)(f,`opendDialogsFromUrl`,async()=>{let e=Number((0,o.getHash)(`vpn`))||0,t,n=RegExp(`view-((\\w+)=([\\w-]+)(?::([\\w.:-]+))?)`,`g`);for(;t=n.exec(location.hash);){let n=`next`;return e<d.state.viewPageN&&(n=`prev`),(await d.getDialogsUtils()).toViewDirty(t[1],n)}return(0,i.querySelectorAllArray)(document,`.ui-dialog-content[data-view-page-active]`).filter(e=>(0,i.isVisible)(e)).forEach(e=>{let t=e.getAttribute(`id`);if(!t)throw`Диалоговое окно не содержит id`;(0,o.getHash)(`view-`+t)||$(e).dialog(`close`)}),d.state.viewPageN=e,!0});var p=class{constructor(e){(0,r.K)(this,`id`,void 0),(0,r.K)(this,`idAttr`,void 0),(0,r.K)(this,`Component`,void 0),(0,r.K)(this,`isMounted`,(0,s.ref)(!1)),(0,r.K)(this,`isReady`,(0,s.ref)(!1)),(0,r.K)(this,`isOpened`,(0,s.ref)(!1)),(0,r.K)(this,`pageActive`,(0,s.ref)(``)),(0,r.K)(this,`isLoadingPage`,(0,s.ref)(!1)),(0,r.K)(this,`pageActiveNext`,(0,s.ref)(``)),(0,r.K)(this,`props`,void 0),(0,r.K)(this,`emit`,void 0),(0,r.K)(this,`onCloseOnce`,void 0),this.id=e.id,this.idAttr=`dialog_`+e.id,this.Component=(0,s.markRaw)(e)}onMounted(e,t){this.isMounted.value=!0,this.props=e.props,this.emit=t.emit}async open(e=`main`,t,n=[],r,i){t&&await this.setProps(t),r&&(this.onCloseOnce=r),await(await f.getDialogsUtils()).toView(this.idAttr,e,n,i)}async openAsLink(e=`main`,t,n=[],r,i){t&&await this.setProps(t),r&&(this.onCloseOnce=r);let a=this.idAttr+`-`+e;(0,o.historySetState)(!1,f.genViewPageHash(a,i))}async close(){f.close(this.idAttr)}async destroy(){f.destroy(this.idAttr)}async setProps(e={}){this.isMounted||await(0,a.waitWhile)(()=>!this.props);for(let t in this.props)this.props[t]=e[t]}needShowPage(e){return this.isOpened.value?this.pageActive.value===e||this.pageActiveNext.value===e:!1}},m={class:`top-dialogs`,style:{display:`none`}},h=(0,s.shallowReactive)(new Map),g=e=>(e=e.replace(/^dialog_/,``),h.get(e)),_=e=>{if(!e?.id)throw console.log({TopDialogComponent:e}),Error(`Expected TopDialogComponent`);return h.has(e.id)||h.set(e.id,new p(e)),h.get(e.id)},v=(0,s.defineComponent)({name:`DialogWrapper`,__name:`dialogs`,setup(e){return(0,s.onUnmounted)(()=>{h.forEach(e=>e.destroy()),h.clear()}),(e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,m,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)((0,s.unref)(h),([e,t])=>((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)(t.Component),{key:e}))),128))]))}});t.r=g,t.n=_,t.t=v});
|
|
2
|
+
//# sourceMappingURL=dialogs-CMrERMI7.amd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".chunks/dialogs-CMrERMI7.esm.js","../../src/components/dialog/dialog/dialog.vue","../../src/components/dialog/lib/worker.ts","../../src/components/dialog/dialog/composables/dialogHandle.ts","../../src/components/dialog/dialog/dialogs/dialogs.vue"],"names":["k2","k","desc","m","o","v","\"default\"","ownKeys","ar","mod","result","i","vue","exports","D","O","vue_1","P","A","e","r","t","a","s","c","l","u","dom_js_1","d","route_js_1","require","resolve_1","reject_1","forms_CbUt_6Ff_esm_js_1","j","system_js_1","M","N","F","I"],"mappings":"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","sourcesContent":["var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\ndefine([\"require\", \"exports\", \"./forms-CbUt-6Ff.esm.js\", \"../utils/dom.js\", \"../utils/system.js\", \"../utils/route.js\", \"vue\"], function (require, exports, forms_CbUt_6Ff_esm_js_1, dom_js_1, system_js_1, route_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.t = exports.r = exports.n = exports.i = exports.a = void 0;\n //#region src/components/dialog/dialog/dialog.vue?vue&type=script&setup=true&lang.ts\n var D = [\n \"id\",\n \"data-view-page-active\",\n \"data-modal\",\n \"data-position\"\n ], O = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"dialog\",\n props: {\n id: {},\n pageActive: {},\n width: { default: \"600px\" },\n height: { default: \"auto\" },\n modal: {\n type: Boolean,\n default: !0\n },\n position: {},\n historyType: { default: \"push\" },\n classes: {}\n },\n emits: [\"open\", \"close\"],\n setup(e) {\n let t = P(e.id);\n if (!t)\n throw Error(\"TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()\");\n return (0, vue_1.provide)(\"dialogWorker\", t), (0, vue_1.onMounted)(() => {\n let e = (0, vue_1.getCurrentInstance)(), n = e.parent;\n if (n?.parent?.type.name !== \"DialogWrapper\")\n throw Error(\"TopDialog cannot be used in a template, use useTopDialog()\");\n if (Array.isArray(n.subTree.children) && n.subTree.children.length !== 1)\n throw Error(\"TopDialog can has only one root element\");\n t.onMounted(n, e);\n }), (0, vue_1.watch)(t.isOpened, () => {\n t.isReady.value = !0;\n }, {\n flush: \"post\",\n once: !0\n }), (n, r) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n id: (0, vue_1.unref)(t).idAttr,\n class: (0, vue_1.normalizeClass)([\"top-dialog\", e.classes]),\n style: (0, vue_1.normalizeStyle)({\n \"--top-dialog-width\": e.width,\n \"--top-dialog-height\": e.height\n }),\n tabindex: \"-1\",\n \"data-view-page-active\": (0, vue_1.unref)(t).pageActive.value,\n \"data-modal\": e.modal,\n \"data-position\": e.position\n }, [\n r[0] ||= (0, vue_1.createElementVNode)(\"div\", { class: \"modal-layer modal-layer-header\" }, null, -1),\n (0, vue_1.createElementVNode)(\"div\", {\n class: \"modal-layer modal-layer-body\",\n style: (0, vue_1.normalizeStyle)({ \"min-height\": e.height + \"px\" })\n }, null, 4),\n (0, vue_1.renderSlot)(n.$slots, \"default\")\n ], 14, D));\n }\n }), k, A = class e {\n static init(r) {\n if (this.inited)\n return;\n this.inited = !0, this.state.load = r?.load, this.state.decoratorOnCreate = r?.decoratorOnCreate;\n let i = r?.autoInitDelay ?? 5e3;\n window.addEventListener(\"hashchange\", (e) => {\n this.opendDialogsFromChangeUrl(e.oldURL, e.newURL);\n }), this.opendDialogsFromChangeUrl(\"\", location.href), document.addEventListener(\"mousedown\", async (t) => {\n if (!(t.target instanceof HTMLElement))\n return;\n let n = t.target.closest(\"a[data-to-view]\");\n if (!n)\n return;\n let r = \"next\";\n n.dataset.action === \"top-dialog-close\" && (r = \"prev\"), n.href = e.genViewPageHash(n.dataset.toView, r);\n }), document.addEventListener(\"click\", async (r) => {\n if (!(r.target instanceof HTMLElement))\n return;\n let i = r.target.closest(\"[data-to-view]\");\n if (!i)\n return;\n if (i instanceof HTMLAnchorElement && i.href === \".\") {\n r.preventDefault();\n let e = new MouseEvent(\"mousedown\", {\n bubbles: !0,\n cancelable: !0,\n view: window\n });\n i.dispatchEvent(e), setTimeout(() => i.click());\n return;\n }\n let a = await this.getDialogsUtils(), s = i.dataset.toView, c = s.split(\"-\")[0], l = a.getElDialogById(c), u = \"next\";\n if (l) {\n let e = (0, dom_js_1.querySelectorAllArray)(l, \".modal-layer\"), t = e.reduce((e, t) => {\n let n = t.querySelector(\":scope > .active\");\n return n && e.push(n), e;\n }, []);\n if (t.length) {\n let n = s.split(\"-\")[1].split(\":\")[0];\n (e.reduce((e, t) => {\n let r = t?.querySelector(`:scope > [data-view-page=\"${n}\"]`);\n return r && e.push(r), e;\n }, [])[0]?.dataset.order ?? 0) < (t[0]?.dataset.order ?? 0) && (u = \"prev\");\n }\n }\n i.dataset.action === \"top-dialog-close\" && (u = \"prev\");\n let d = e.genViewPageHash(s, u);\n if (i instanceof HTMLAnchorElement) {\n if (!l || !(0, dom_js_1.isVisible)(l))\n return;\n if (location.hash.indexOf(s.replace(\"-\", \"=\")) !== -1) {\n await a.toViewDirty(s);\n return;\n }\n }\n l?.dataset.toViewReplace ? (r.preventDefault(), (0, route_js_1.historySetState)(!0, d), await a.toViewDirty(s), u == \"next\" ? e.state.viewPageN++ : e.state.viewPageN--) : i.tagName !== \"A\" && (this.compareStates(d, location.hash) ? (0, route_js_1.historySetState)(!1, d) : await a.toViewDirty(s));\n }), setTimeout(() => this.getDialogsUtils(), i);\n }\n static opendDialogsFromChangeUrl(e, t) {\n let n = e.replace(/.*?#/, \"#\"), r = t.replace(/.*?#/, \"#\");\n this.compareStates(n, r) && this.opendDialogsFromUrl();\n }\n static async getDialogsUtils() {\n let { TopDialogUtils: e } = await new Promise((resolve_1, reject_1) => { require([\"./utils-Dd0MZgyw.esm.js\"], resolve_1, reject_1); }).then(__importStar);\n return e;\n }\n static getDialog(e) {\n return e.closest(\".ui-dialog-content\");\n }\n static get$dialog(e) {\n return e.closest(\".ui-dialog-content\");\n }\n static getPage(e) {\n return e.closest(\"[data-view-page]\");\n }\n static get$page(e) {\n return e.closest(\"[data-view-page]\");\n }\n static get$pairPage(t) {\n let n = e.get$dialog(t), r = e.get$page(t).data(\"view-page\");\n return $(\"[data-view-page=\\\"\" + r + \"\\\"]\", n);\n }\n static getPairPage(t) {\n let r = e.getDialog(t);\n if (!r)\n return;\n let i = e.getPage(t)?.dataset.viewPage;\n return (0, dom_js_1.querySelectorAllArray)(r, `[data-view-page=\"${i}\"]`);\n }\n static close(e) {\n let t = $(\"#\" + e);\n if (t.dialog(\"instance\")) {\n t.dialog(\"close\");\n return;\n }\n let n = document.getElementById(e);\n n instanceof HTMLDialogElement && n.close();\n }\n static destroy(e) {\n let t = $(\"#\" + e);\n if (t.dialog(\"instance\")) {\n t.dialog(\"close\"), t.dialog(\"destroy\");\n return;\n }\n let n = document.getElementById(e);\n n instanceof HTMLDialogElement && n.close();\n }\n static genViewPageHash(e, t = \"next\") {\n let n = this.state.viewPageN;\n t == \"prev\" ? n-- : n++;\n let r = e.split(\"-\"), a = r.shift(), o = r.join(\"-\"), s = (0, route_js_1.genHash)(\"vpn\", n);\n return s = (0, route_js_1.genHash)(\"view-\" + a, o, s), s;\n }\n static compareStates(e, t) {\n let n = e.match(/[#&]view-[^&]+/g) || [], r = t.match(/[#&]view-[^&]+/g) || [];\n return !!(n.length !== r.length || n.filter((e, t) => e !== (r[t] || \"\")).length);\n }\n };\n exports.a = O;\n exports.i = A;\n k = A, (0, forms_CbUt_6Ff_esm_js_1.K)(A, \"state\", {\n load: void 0,\n decoratorOnCreate: void 0,\n viewPageN: 0\n }), (0, forms_CbUt_6Ff_esm_js_1.K)(A, \"inited\", !1), (0, forms_CbUt_6Ff_esm_js_1.K)(A, \"opendDialogsFromUrl\", async () => {\n let e = Number((0, route_js_1.getHash)(\"vpn\")) || 0, r, i = /* @__PURE__ */ RegExp(\"view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)\", \"g\");\n for (; r = i.exec(location.hash);) {\n let t = \"next\";\n return e < k.state.viewPageN && (t = \"prev\"), (await k.getDialogsUtils()).toViewDirty(r[1], t);\n }\n return (0, dom_js_1.querySelectorAllArray)(document, \".ui-dialog-content[data-view-page-active]\").filter((e) => (0, dom_js_1.isVisible)(e)).forEach((e) => {\n let t = e.getAttribute(\"id\");\n if (!t)\n throw \"Диалоговое окно не содержит id\";\n (0, route_js_1.getHash)(\"view-\" + t) || $(e).dialog(\"close\");\n }), k.state.viewPageN = e, !0;\n });\n //#endregion\n //#region src/components/dialog/dialog/composables/dialogHandle.ts\n var j = class {\n constructor(t) {\n (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"id\", void 0), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"idAttr\", void 0), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"Component\", void 0), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"isMounted\", (0, vue_1.ref)(!1)), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"isReady\", (0, vue_1.ref)(!1)), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"isOpened\", (0, vue_1.ref)(!1)), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"pageActive\", (0, vue_1.ref)(\"\")), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"isLoadingPage\", (0, vue_1.ref)(!1)), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"pageActiveNext\", (0, vue_1.ref)(\"\")), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"props\", void 0), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"emit\", void 0), (0, forms_CbUt_6Ff_esm_js_1.K)(this, \"onCloseOnce\", void 0), this.id = t.id, this.idAttr = \"dialog_\" + t.id, this.Component = (0, vue_1.markRaw)(t);\n }\n onMounted(e, t) {\n this.isMounted.value = !0, this.props = e.props, this.emit = t.emit;\n }\n async open(e = \"main\", t, n = [], r, i) {\n t && await this.setProps(t), r && (this.onCloseOnce = r), await (await A.getDialogsUtils()).toView(this.idAttr, e, n, i);\n }\n async openAsLink(e = \"main\", t, n = [], r, i) {\n t && await this.setProps(t), r && (this.onCloseOnce = r);\n let a = this.idAttr + \"-\" + e;\n (0, route_js_1.historySetState)(!1, A.genViewPageHash(a, i));\n }\n async close() {\n A.close(this.idAttr);\n }\n async destroy() {\n A.destroy(this.idAttr);\n }\n async setProps(e = {}) {\n this.isMounted || await (0, system_js_1.waitWhile)(() => !this.props);\n for (let t in this.props)\n this.props[t] = e[t];\n }\n needShowPage(e) {\n return this.isOpened.value ? this.pageActive.value === e || this.pageActiveNext.value === e : !1;\n }\n }, M = {\n class: \"top-dialogs\",\n style: { display: \"none\" }\n }, N = (0, vue_1.shallowReactive)(/* @__PURE__ */ new Map()), P = (e) => (e = e.replace(/^dialog_/, \"\"), N.get(e)), F = (e) => {\n if (!e?.id)\n throw console.log({ TopDialogComponent: e }), Error(\"Expected TopDialogComponent\");\n return N.has(e.id) || N.set(e.id, new j(e)), N.get(e.id);\n }, I = /* @__PURE__ */ (0, vue_1.defineComponent)({\n name: \"DialogWrapper\",\n __name: \"dialogs\",\n setup(e) {\n return (0, vue_1.onUnmounted)(() => {\n N.forEach((e) => e.destroy()), N.clear();\n }), (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", M, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)((0, vue_1.unref)(N), ([e, t]) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(t.Component), { key: e }))), 128))]));\n }\n });\n exports.r = P;\n exports.n = F;\n exports.t = I;\n});\n//# sourceMappingURL=dialogs-CMrERMI7.esm.js.map\n","<script setup lang=\"ts\">\nimport type { ComponentInternalInstance } from 'vue';\nimport { getCurrentInstance, onMounted, provide, watch } from 'vue';\nimport { getDialogWorker } from './dialogs/dialogs.vue';\nimport type { Emits, Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\twidth: '600px',\n\theight: 'auto',\n\tmodal: true,\n\thistoryType: 'push',\n});\n\ndefineEmits<Emits>();\n\ndefineSlots<Slots>();\n\nconst dialog = getDialogWorker(props.id);\nif (!dialog) {\n\tthrow new Error('TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()');\n}\n\n/**\n * Для useTopDialogSelf()\n */\nprovide('dialogWorker', dialog);\n\n/**\n * Инициализация начального состояния TopDialogHandle\n */\nonMounted(() => {\n\tconst topDialogBaseComponent = getCurrentInstance() as ComponentInternalInstance;\n\tconst topDialogComponent = topDialogBaseComponent.parent;\n\n\tif (topDialogComponent?.parent?.type.name !== 'DialogWrapper') {\n\t\tthrow new Error('TopDialog cannot be used in a template, use useTopDialog()');\n\t}\n\n\tif (Array.isArray(topDialogComponent.subTree.children) && topDialogComponent.subTree.children.length !== 1) {\n\t\tthrow new Error('TopDialog can has only one root element');\n\t}\n\n\tdialog.onMounted(topDialogComponent, topDialogBaseComponent);\n});\n\nwatch(dialog.isOpened, () => {\n\tdialog.isReady.value = true;\n}, {\n\tflush: 'post',\n\tonce: true,\n});\n</script>\n\n<template>\n\t<div\n\t\t:id=\"dialog.idAttr\"\n\t\tclass=\"top-dialog\"\n\t\t:class=\"classes\"\n\t\t:style=\"{\n\t\t\t'--top-dialog-width': width,\n\t\t\t'--top-dialog-height': height,\n\t\t}\"\n\t\ttabindex=\"-1\"\n\t\t:data-view-page-active=\"dialog.pageActive.value\"\n\t\t:data-modal=\"modal\"\n\t\t:data-position=\"position\"\n\t>\n\t\t<div class=\"modal-layer modal-layer-header\"></div>\n\n\t\t<div class=\"modal-layer modal-layer-body\" :style=\"{'min-height': height + 'px'}\"></div>\n\n\t\t<slot name=\"default\"></slot>\n\t</div>\n</template>\n","import { genHash, getHash, historySetState } from '@/core/utils/route';\nimport type { ElTopDialog, ElTopDialogOpener, ElTopDialogPage, MoveDirection, TopDialogOptions } from './types';\nimport { isVisible, 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\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\t\tconst elEventTarget = e.target;\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\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\t\tconst elEventTarget = e.target;\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 || !isVisible(elDialog)) 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 isVisible(elDialog);\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}\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"]}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { K as e } from "./forms-CbUt-6Ff.esm.js";
|
|
2
|
+
import { isVisible as t, querySelectorAllArray as n } from "../utils/dom.js";
|
|
3
|
+
import { waitWhile as r } from "../utils/system.js";
|
|
4
|
+
import { genHash as i, getHash as a, historySetState as o } from "../utils/route.js";
|
|
5
|
+
import { Fragment as s, createBlock as c, createElementBlock as l, createElementVNode as u, defineComponent as d, getCurrentInstance as f, markRaw as p, normalizeClass as m, normalizeStyle as h, onMounted as g, onUnmounted as _, openBlock as v, provide as y, ref as b, renderList as x, renderSlot as S, resolveDynamicComponent as C, shallowReactive as w, unref as T, watch as E } from "vue";
|
|
6
|
+
//#region src/components/dialog/dialog/dialog.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var D = [
|
|
8
|
+
"id",
|
|
9
|
+
"data-view-page-active",
|
|
10
|
+
"data-modal",
|
|
11
|
+
"data-position"
|
|
12
|
+
], O = /* @__PURE__ */ d({
|
|
13
|
+
__name: "dialog",
|
|
14
|
+
props: {
|
|
15
|
+
id: {},
|
|
16
|
+
pageActive: {},
|
|
17
|
+
width: { default: "600px" },
|
|
18
|
+
height: { default: "auto" },
|
|
19
|
+
modal: {
|
|
20
|
+
type: Boolean,
|
|
21
|
+
default: !0
|
|
22
|
+
},
|
|
23
|
+
position: {},
|
|
24
|
+
historyType: { default: "push" },
|
|
25
|
+
classes: {}
|
|
26
|
+
},
|
|
27
|
+
emits: ["open", "close"],
|
|
28
|
+
setup(e) {
|
|
29
|
+
let t = P(e.id);
|
|
30
|
+
if (!t) throw Error("TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()");
|
|
31
|
+
return y("dialogWorker", t), g(() => {
|
|
32
|
+
let e = f(), n = e.parent;
|
|
33
|
+
if (n?.parent?.type.name !== "DialogWrapper") throw Error("TopDialog cannot be used in a template, use useTopDialog()");
|
|
34
|
+
if (Array.isArray(n.subTree.children) && n.subTree.children.length !== 1) throw Error("TopDialog can has only one root element");
|
|
35
|
+
t.onMounted(n, e);
|
|
36
|
+
}), E(t.isOpened, () => {
|
|
37
|
+
t.isReady.value = !0;
|
|
38
|
+
}, {
|
|
39
|
+
flush: "post",
|
|
40
|
+
once: !0
|
|
41
|
+
}), (n, r) => (v(), l("div", {
|
|
42
|
+
id: T(t).idAttr,
|
|
43
|
+
class: m(["top-dialog", e.classes]),
|
|
44
|
+
style: h({
|
|
45
|
+
"--top-dialog-width": e.width,
|
|
46
|
+
"--top-dialog-height": e.height
|
|
47
|
+
}),
|
|
48
|
+
tabindex: "-1",
|
|
49
|
+
"data-view-page-active": T(t).pageActive.value,
|
|
50
|
+
"data-modal": e.modal,
|
|
51
|
+
"data-position": e.position
|
|
52
|
+
}, [
|
|
53
|
+
r[0] ||= u("div", { class: "modal-layer modal-layer-header" }, null, -1),
|
|
54
|
+
u("div", {
|
|
55
|
+
class: "modal-layer modal-layer-body",
|
|
56
|
+
style: h({ "min-height": e.height + "px" })
|
|
57
|
+
}, null, 4),
|
|
58
|
+
S(n.$slots, "default")
|
|
59
|
+
], 14, D));
|
|
60
|
+
}
|
|
61
|
+
}), k, A = class e {
|
|
62
|
+
static init(r) {
|
|
63
|
+
if (this.inited) return;
|
|
64
|
+
this.inited = !0, this.state.load = r?.load, this.state.decoratorOnCreate = r?.decoratorOnCreate;
|
|
65
|
+
let i = r?.autoInitDelay ?? 5e3;
|
|
66
|
+
window.addEventListener("hashchange", (e) => {
|
|
67
|
+
this.opendDialogsFromChangeUrl(e.oldURL, e.newURL);
|
|
68
|
+
}), this.opendDialogsFromChangeUrl("", location.href), document.addEventListener("mousedown", async (t) => {
|
|
69
|
+
if (!(t.target instanceof HTMLElement)) return;
|
|
70
|
+
let n = t.target.closest("a[data-to-view]");
|
|
71
|
+
if (!n) return;
|
|
72
|
+
let r = "next";
|
|
73
|
+
n.dataset.action === "top-dialog-close" && (r = "prev"), n.href = e.genViewPageHash(n.dataset.toView, r);
|
|
74
|
+
}), document.addEventListener("click", async (r) => {
|
|
75
|
+
if (!(r.target instanceof HTMLElement)) return;
|
|
76
|
+
let i = r.target.closest("[data-to-view]");
|
|
77
|
+
if (!i) return;
|
|
78
|
+
if (i instanceof HTMLAnchorElement && i.href === ".") {
|
|
79
|
+
r.preventDefault();
|
|
80
|
+
let e = new MouseEvent("mousedown", {
|
|
81
|
+
bubbles: !0,
|
|
82
|
+
cancelable: !0,
|
|
83
|
+
view: window
|
|
84
|
+
});
|
|
85
|
+
i.dispatchEvent(e), setTimeout(() => i.click());
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
let a = await this.getDialogsUtils(), s = i.dataset.toView, c = s.split("-")[0], l = a.getElDialogById(c), u = "next";
|
|
89
|
+
if (l) {
|
|
90
|
+
let e = n(l, ".modal-layer"), t = e.reduce((e, t) => {
|
|
91
|
+
let n = t.querySelector(":scope > .active");
|
|
92
|
+
return n && e.push(n), e;
|
|
93
|
+
}, []);
|
|
94
|
+
if (t.length) {
|
|
95
|
+
let n = s.split("-")[1].split(":")[0];
|
|
96
|
+
(e.reduce((e, t) => {
|
|
97
|
+
let r = t?.querySelector(`:scope > [data-view-page="${n}"]`);
|
|
98
|
+
return r && e.push(r), e;
|
|
99
|
+
}, [])[0]?.dataset.order ?? 0) < (t[0]?.dataset.order ?? 0) && (u = "prev");
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
i.dataset.action === "top-dialog-close" && (u = "prev");
|
|
103
|
+
let d = e.genViewPageHash(s, u);
|
|
104
|
+
if (i instanceof HTMLAnchorElement) {
|
|
105
|
+
if (!l || !t(l)) return;
|
|
106
|
+
if (location.hash.indexOf(s.replace("-", "=")) !== -1) {
|
|
107
|
+
await a.toViewDirty(s);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
l?.dataset.toViewReplace ? (r.preventDefault(), o(!0, d), await a.toViewDirty(s), u == "next" ? e.state.viewPageN++ : e.state.viewPageN--) : i.tagName !== "A" && (this.compareStates(d, location.hash) ? o(!1, d) : await a.toViewDirty(s));
|
|
112
|
+
}), setTimeout(() => this.getDialogsUtils(), i);
|
|
113
|
+
}
|
|
114
|
+
static opendDialogsFromChangeUrl(e, t) {
|
|
115
|
+
let n = e.replace(/.*?#/, "#"), r = t.replace(/.*?#/, "#");
|
|
116
|
+
this.compareStates(n, r) && this.opendDialogsFromUrl();
|
|
117
|
+
}
|
|
118
|
+
static async getDialogsUtils() {
|
|
119
|
+
let { TopDialogUtils: e } = await import("./utils-Dd0MZgyw.esm.js");
|
|
120
|
+
return e;
|
|
121
|
+
}
|
|
122
|
+
static getDialog(e) {
|
|
123
|
+
return e.closest(".ui-dialog-content");
|
|
124
|
+
}
|
|
125
|
+
static get$dialog(e) {
|
|
126
|
+
return e.closest(".ui-dialog-content");
|
|
127
|
+
}
|
|
128
|
+
static getPage(e) {
|
|
129
|
+
return e.closest("[data-view-page]");
|
|
130
|
+
}
|
|
131
|
+
static get$page(e) {
|
|
132
|
+
return e.closest("[data-view-page]");
|
|
133
|
+
}
|
|
134
|
+
static get$pairPage(t) {
|
|
135
|
+
let n = e.get$dialog(t), r = e.get$page(t).data("view-page");
|
|
136
|
+
return $("[data-view-page=\"" + r + "\"]", n);
|
|
137
|
+
}
|
|
138
|
+
static getPairPage(t) {
|
|
139
|
+
let r = e.getDialog(t);
|
|
140
|
+
if (!r) return;
|
|
141
|
+
let i = e.getPage(t)?.dataset.viewPage;
|
|
142
|
+
return n(r, `[data-view-page="${i}"]`);
|
|
143
|
+
}
|
|
144
|
+
static close(e) {
|
|
145
|
+
let t = $("#" + e);
|
|
146
|
+
if (t.dialog("instance")) {
|
|
147
|
+
t.dialog("close");
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
let n = document.getElementById(e);
|
|
151
|
+
n instanceof HTMLDialogElement && n.close();
|
|
152
|
+
}
|
|
153
|
+
static destroy(e) {
|
|
154
|
+
let t = $("#" + e);
|
|
155
|
+
if (t.dialog("instance")) {
|
|
156
|
+
t.dialog("close"), t.dialog("destroy");
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
let n = document.getElementById(e);
|
|
160
|
+
n instanceof HTMLDialogElement && n.close();
|
|
161
|
+
}
|
|
162
|
+
static genViewPageHash(e, t = "next") {
|
|
163
|
+
let n = this.state.viewPageN;
|
|
164
|
+
t == "prev" ? n-- : n++;
|
|
165
|
+
let r = e.split("-"), a = r.shift(), o = r.join("-"), s = i("vpn", n);
|
|
166
|
+
return s = i("view-" + a, o, s), s;
|
|
167
|
+
}
|
|
168
|
+
static compareStates(e, t) {
|
|
169
|
+
let n = e.match(/[#&]view-[^&]+/g) || [], r = t.match(/[#&]view-[^&]+/g) || [];
|
|
170
|
+
return !!(n.length !== r.length || n.filter((e, t) => e !== (r[t] || "")).length);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
k = A, e(A, "state", {
|
|
174
|
+
load: void 0,
|
|
175
|
+
decoratorOnCreate: void 0,
|
|
176
|
+
viewPageN: 0
|
|
177
|
+
}), e(A, "inited", !1), e(A, "opendDialogsFromUrl", async () => {
|
|
178
|
+
let e = Number(a("vpn")) || 0, r, i = /* @__PURE__ */ RegExp("view-((\\w+)=([\\w-]+)(?::([\\w.:-]+))?)", "g");
|
|
179
|
+
for (; r = i.exec(location.hash);) {
|
|
180
|
+
let t = "next";
|
|
181
|
+
return e < k.state.viewPageN && (t = "prev"), (await k.getDialogsUtils()).toViewDirty(r[1], t);
|
|
182
|
+
}
|
|
183
|
+
return n(document, ".ui-dialog-content[data-view-page-active]").filter((e) => t(e)).forEach((e) => {
|
|
184
|
+
let t = e.getAttribute("id");
|
|
185
|
+
if (!t) throw "Диалоговое окно не содержит id";
|
|
186
|
+
a("view-" + t) || $(e).dialog("close");
|
|
187
|
+
}), k.state.viewPageN = e, !0;
|
|
188
|
+
});
|
|
189
|
+
//#endregion
|
|
190
|
+
//#region src/components/dialog/dialog/composables/dialogHandle.ts
|
|
191
|
+
var j = class {
|
|
192
|
+
constructor(t) {
|
|
193
|
+
e(this, "id", void 0), e(this, "idAttr", void 0), e(this, "Component", void 0), e(this, "isMounted", b(!1)), e(this, "isReady", b(!1)), e(this, "isOpened", b(!1)), e(this, "pageActive", b("")), e(this, "isLoadingPage", b(!1)), e(this, "pageActiveNext", b("")), e(this, "props", void 0), e(this, "emit", void 0), e(this, "onCloseOnce", void 0), this.id = t.id, this.idAttr = "dialog_" + t.id, this.Component = p(t);
|
|
194
|
+
}
|
|
195
|
+
onMounted(e, t) {
|
|
196
|
+
this.isMounted.value = !0, this.props = e.props, this.emit = t.emit;
|
|
197
|
+
}
|
|
198
|
+
async open(e = "main", t, n = [], r, i) {
|
|
199
|
+
t && await this.setProps(t), r && (this.onCloseOnce = r), await (await A.getDialogsUtils()).toView(this.idAttr, e, n, i);
|
|
200
|
+
}
|
|
201
|
+
async openAsLink(e = "main", t, n = [], r, i) {
|
|
202
|
+
t && await this.setProps(t), r && (this.onCloseOnce = r);
|
|
203
|
+
let a = this.idAttr + "-" + e;
|
|
204
|
+
o(!1, A.genViewPageHash(a, i));
|
|
205
|
+
}
|
|
206
|
+
async close() {
|
|
207
|
+
A.close(this.idAttr);
|
|
208
|
+
}
|
|
209
|
+
async destroy() {
|
|
210
|
+
A.destroy(this.idAttr);
|
|
211
|
+
}
|
|
212
|
+
async setProps(e = {}) {
|
|
213
|
+
this.isMounted || await r(() => !this.props);
|
|
214
|
+
for (let t in this.props) this.props[t] = e[t];
|
|
215
|
+
}
|
|
216
|
+
needShowPage(e) {
|
|
217
|
+
return this.isOpened.value ? this.pageActive.value === e || this.pageActiveNext.value === e : !1;
|
|
218
|
+
}
|
|
219
|
+
}, M = {
|
|
220
|
+
class: "top-dialogs",
|
|
221
|
+
style: { display: "none" }
|
|
222
|
+
}, N = w(/* @__PURE__ */ new Map()), P = (e) => (e = e.replace(/^dialog_/, ""), N.get(e)), F = (e) => {
|
|
223
|
+
if (!e?.id) throw console.log({ TopDialogComponent: e }), Error("Expected TopDialogComponent");
|
|
224
|
+
return N.has(e.id) || N.set(e.id, new j(e)), N.get(e.id);
|
|
225
|
+
}, I = /* @__PURE__ */ d({
|
|
226
|
+
name: "DialogWrapper",
|
|
227
|
+
__name: "dialogs",
|
|
228
|
+
setup(e) {
|
|
229
|
+
return _(() => {
|
|
230
|
+
N.forEach((e) => e.destroy()), N.clear();
|
|
231
|
+
}), (e, t) => (v(), l("div", M, [(v(!0), l(s, null, x(T(N), ([e, t]) => (v(), c(C(t.Component), { key: e }))), 128))]));
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
//#endregion
|
|
235
|
+
export { O as a, A as i, F as n, P as r, I as t };
|
|
236
|
+
|
|
237
|
+
//# sourceMappingURL=dialogs-CMrERMI7.esm.js.map
|