@topvisor/ui 1.1.0-apiClient.29 → 1.1.0-apiClient.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.chunks/{core-CUCQCH9e.es.js → core-DLXWfIR4.es.js} +45 -45
- package/.chunks/{core-CUCQCH9e.es.js.map → core-DLXWfIR4.es.js.map} +1 -1
- package/.chunks/core-Tti72-iZ.amd.js +2 -0
- package/.chunks/{core-DQ7J2vig.amd.js.map → core-Tti72-iZ.amd.js.map} +1 -1
- package/.chunks/{datepicker-DsKl-YZR.amd.js → datepicker-B4MtWLUB.amd.js} +2 -2
- package/.chunks/{datepicker-DsKl-YZR.amd.js.map → datepicker-B4MtWLUB.amd.js.map} +1 -1
- package/.chunks/{datepicker-U31BrqE_.es.js → datepicker-CkZ1AHct.es.js} +2 -2
- package/.chunks/{datepicker-U31BrqE_.es.js.map → datepicker-CkZ1AHct.es.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-DcPd0Spw.amd.js → dialog_selectorRegions-Bg2bNley.amd.js} +2 -2
- package/.chunks/{dialog_selectorRegions-DcPd0Spw.amd.js.map → dialog_selectorRegions-Bg2bNley.amd.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-C9751c-B.es.js → dialog_selectorRegions-BpQO5L5g.es.js} +4 -4
- package/.chunks/{dialog_selectorRegions-C9751c-B.es.js.map → dialog_selectorRegions-BpQO5L5g.es.js.map} +1 -1
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-CXghec6S.amd.js → dialogs.vue_vue_type_script_setup_true_lang-CZQq3w9t.amd.js} +2 -2
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-CXghec6S.amd.js.map → dialogs.vue_vue_type_script_setup_true_lang-CZQq3w9t.amd.js.map} +1 -1
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DjuN_1ox.es.js → dialogs.vue_vue_type_script_setup_true_lang-DE8e63m1.es.js} +2 -2
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DjuN_1ox.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-DE8e63m1.es.js.map} +1 -1
- package/.chunks/{forms-t2AEUjqg.es.js → forms-CSwfPGPT.es.js} +460 -466
- package/.chunks/forms-CSwfPGPT.es.js.map +1 -0
- package/.chunks/{forms-DRhpgERJ.amd.js → forms-nOSFakjs.amd.js} +3 -3
- package/.chunks/forms-nOSFakjs.amd.js.map +1 -0
- package/.chunks/index-BEI7XZmU.amd.js +2 -0
- package/.chunks/index-BEI7XZmU.amd.js.map +1 -0
- package/.chunks/index-igPkes8X.es.js +48 -0
- package/.chunks/index-igPkes8X.es.js.map +1 -0
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C8PDRggQ.amd.js → listItem.vue_vue_type_script_setup_true_lang-DAiYrXJt.amd.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C8PDRggQ.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-DAiYrXJt.amd.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-B6psuRkm.es.js → listItem.vue_vue_type_script_setup_true_lang-DV__bCGp.es.js} +4 -4
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-B6psuRkm.es.js.map → listItem.vue_vue_type_script_setup_true_lang-DV__bCGp.es.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-6kqWYFuX.es.js → menu.vue_vue_type_style_index_0_lang-CycLeBt1.es.js} +10 -10
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-6kqWYFuX.es.js.map → menu.vue_vue_type_style_index_0_lang-CycLeBt1.es.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-DRHk9iBB.amd.js → menu.vue_vue_type_style_index_0_lang-NV0qLjM0.amd.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-DRHk9iBB.amd.js.map → menu.vue_vue_type_style_index_0_lang-NV0qLjM0.amd.js.map} +1 -1
- package/.chunks/{notice-DQ9qFyQ2.amd.js → notice-CeaZxWDY.amd.js} +2 -2
- package/.chunks/{notice-DQ9qFyQ2.amd.js.map → notice-CeaZxWDY.amd.js.map} +1 -1
- package/.chunks/{notice-4bdzRXtl.es.js → notice-DpL6xhzv.es.js} +2 -2
- package/.chunks/{notice-4bdzRXtl.es.js.map → notice-DpL6xhzv.es.js.map} +1 -1
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-DseS_zy8.es.js → page.vue_vue_type_script_setup_true_lang-Zi_3ClRX.es.js} +4 -4
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-DseS_zy8.es.js.map → page.vue_vue_type_script_setup_true_lang-Zi_3ClRX.es.js.map} +1 -1
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-D4tsfsex.amd.js → page.vue_vue_type_script_setup_true_lang-jqBwMaqk.amd.js} +2 -2
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-D4tsfsex.amd.js.map → page.vue_vue_type_script_setup_true_lang-jqBwMaqk.amd.js.map} +1 -1
- package/.chunks/{popup-IcMnYYXr.amd.js → popup-BY9nhua0.amd.js} +2 -2
- package/.chunks/{popup-IcMnYYXr.amd.js.map → popup-BY9nhua0.amd.js.map} +1 -1
- package/.chunks/{popup-DuraSW2f.es.js → popup-Cxtrsq2H.es.js} +2 -2
- package/.chunks/{popup-DuraSW2f.es.js.map → popup-Cxtrsq2H.es.js.map} +1 -1
- package/.chunks/{utils-16CqqvVO.amd.js → utils-Bpn5I4rv.amd.js} +2 -2
- package/.chunks/{utils-16CqqvVO.amd.js.map → utils-Bpn5I4rv.amd.js.map} +1 -1
- package/.chunks/{utils-Ct2fnz3h.es.js → utils-Cx0wgU0M.es.js} +2 -2
- package/.chunks/{utils-Ct2fnz3h.es.js.map → utils-Cx0wgU0M.es.js.map} +1 -1
- package/.chunks/{utils-g7NSc8VW.amd.js → utils-D7esYAPZ.amd.js} +2 -2
- package/.chunks/{utils-g7NSc8VW.amd.js.map → utils-D7esYAPZ.amd.js.map} +1 -1
- package/.chunks/{utils-Bl2P0srR.es.js → utils-h--vdOv2.es.js} +3 -3
- package/.chunks/{utils-Bl2P0srR.es.js.map → utils-h--vdOv2.es.js.map} +1 -1
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-Cm5gMMdN.amd.js +2 -0
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-Cm5gMMdN.amd.js.map +1 -0
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-IaLXISUu.es.js +39 -0
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-IaLXISUu.es.js.map +1 -0
- package/.chunks/widgetInput.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +2 -0
- package/.chunks/widgetInput.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +1 -0
- package/api/additional.d.ts +2 -0
- package/api/index.amd.js +1 -1
- package/api/index.amd.js.map +1 -1
- package/api/index.d.ts +2 -0
- package/api/index.js +49 -49
- package/api/index.js.map +1 -1
- package/charts/charts.amd.js +1 -1
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.d.ts +2 -0
- package/charts/charts.js +9 -9
- package/charts/charts.js.map +1 -1
- package/core/app.amd.js +1 -1
- package/core/app.d.ts +2 -0
- package/core/app.js +5 -5
- package/dialog/dialog.amd.js +1 -1
- package/dialog/dialog.d.ts +2 -0
- package/dialog/dialog.js +2 -2
- package/extra/extra.amd.js +1 -1
- package/extra/extra.amd.js.map +1 -1
- package/extra/extra.d.ts +2 -0
- package/extra/extra.js +3 -3
- package/extra/extra.js.map +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.d.ts +2 -0
- package/forms/forms.js +7 -7
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.d.ts +2 -0
- package/formsExt/formsExt.js +130 -128
- package/formsExt/formsExt.js.map +1 -1
- package/layout/layout.amd.js +1 -1
- package/layout/layout.amd.js.map +1 -1
- package/layout/layout.d.ts +2 -0
- package/layout/layout.js +29 -29
- package/layout/layout.js.map +1 -1
- package/package.json +3 -12
- package/popup/popup.amd.js +1 -1
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.d.ts +2 -0
- package/popup/popup.js +76 -108
- package/popup/popup.js.map +1 -1
- package/popup/worker.amd.js +1 -1
- package/popup/worker.d.ts +2 -0
- package/popup/worker.js +2 -2
- package/project/project.amd.js +1 -1
- package/project/project.amd.js.map +1 -1
- package/project/project.d.ts +2 -0
- package/project/project.js +244 -244
- package/project/project.js.map +1 -1
- package/src/components/charts/charts.d.ts +2 -0
- package/src/components/extra/extra.d.ts +1 -0
- package/src/components/forms/forms.d.ts +15 -0
- package/src/components/formsExt/formsExt.d.ts +8 -0
- package/src/components/layout/layout.d.ts +4 -0
- package/src/components/popup/popup.d.ts +7 -0
- package/src/components/project/project.d.ts +9 -0
- package/src/components/tabs/tabs.d.ts +3 -0
- package/src/components/tabsView/tabsView.d.ts +3 -0
- package/tabs/tabs.amd.js +1 -1
- package/tabs/tabs.amd.js.map +1 -1
- package/tabs/tabs.d.ts +2 -0
- package/tabs/tabs.js +14 -14
- package/tabs/tabs.js.map +1 -1
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.amd.js.map +1 -1
- package/tabsView/tabsView.d.ts +2 -0
- package/tabsView/tabsView.js +48 -47
- package/tabsView/tabsView.js.map +1 -1
- package/utils/check.d.ts +2 -0
- package/utils/clipboard.amd.js +1 -1
- package/utils/clipboard.d.ts +2 -0
- package/utils/clipboard.js +1 -1
- package/utils/date.amd.js +1 -1
- package/utils/date.d.ts +2 -0
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.d.ts +2 -0
- package/utils/device.js +4 -4
- package/utils/dom.d.ts +6 -0
- package/utils/image.d.ts +2 -0
- package/utils/keyboard.d.ts +2 -0
- package/utils/lodash.amd.js +1 -1
- package/utils/lodash.d.ts +2 -0
- package/utils/lodash.js +1 -1
- package/utils/number.d.ts +2 -0
- package/utils/price.amd.js +1 -1
- package/utils/price.d.ts +2 -0
- package/utils/price.js +1 -1
- package/utils/route.d.ts +2 -0
- package/utils/scroll.d.ts +2 -0
- package/utils/searchers.amd.js +1 -1
- package/utils/searchers.d.ts +2 -0
- package/utils/searchers.js +3 -3
- package/utils/store.d.ts +2 -0
- package/utils/string.amd.js +1 -1
- package/utils/string.d.ts +2 -0
- package/utils/string.js +1 -1
- package/utils/system.d.ts +2 -0
- package/utils/url.d.ts +2 -0
- package/.chunks/core-DQ7J2vig.amd.js +0 -2
- package/.chunks/forms-DRhpgERJ.amd.js.map +0 -1
- package/.chunks/forms-t2AEUjqg.es.js.map +0 -1
- package/.chunks/index-BYqko24e.amd.js +0 -2
- package/.chunks/index-BYqko24e.amd.js.map +0 -1
- package/.chunks/index-Dfn40Qy3.es.js +0 -48
- package/.chunks/index-Dfn40Qy3.es.js.map +0 -1
- package/types/api/additional.d.ts +0 -2
- package/types/api/index.d.ts +0 -2
- package/types/charts/charts.d.ts +0 -2
- package/types/components/charts/charts.d.ts +0 -5
- package/types/components/extra/extra.d.ts +0 -3
- package/types/components/forms/forms.d.ts +0 -31
- package/types/components/formsExt/formsExt.d.ts +0 -17
- package/types/components/layout/layout.d.ts +0 -9
- package/types/components/popup/popup.d.ts +0 -15
- package/types/components/project/project.d.ts +0 -15
- package/types/components/tabs/tabs.d.ts +0 -7
- package/types/components/tabsView/tabsView.d.ts +0 -7
- package/types/dialog/dialog.d.ts +0 -2
- package/types/extra/extra.d.ts +0 -2
- package/types/for-delete/core.d.ts +0 -1
- package/types/for-delete/dark-positions.d.ts +0 -1
- package/types/for-delete/dark-th-positions.d.ts +0 -1
- package/types/for-delete/dark-th.d.ts +0 -1
- package/types/for-delete/dark.d.ts +0 -1
- package/types/for-delete/light-positions.d.ts +0 -1
- package/types/for-delete/light.d.ts +0 -1
- package/types/forms/forms.d.ts +0 -2
- package/types/formsExt/formsExt.d.ts +0 -2
- package/types/layout/layout.d.ts +0 -2
- package/types/popup/popup.d.ts +0 -2
- package/types/popup/worker.d.ts +0 -2
- package/types/project/project.d.ts +0 -2
- package/types/tabs/tabs.d.ts +0 -2
- package/types/tabsView/tabsView.d.ts +0 -2
- package/types/utils/check.d.ts +0 -2
- package/types/utils/clipboard.d.ts +0 -2
- package/types/utils/date.d.ts +0 -2
- package/types/utils/device.d.ts +0 -2
- package/types/utils/dom.d.ts +0 -6
- package/types/utils/image.d.ts +0 -2
- package/types/utils/keyboard.d.ts +0 -2
- package/types/utils/lodash.d.ts +0 -2
- package/types/utils/number.d.ts +0 -2
- package/types/utils/price.d.ts +0 -2
- package/types/utils/route.d.ts +0 -2
- package/types/utils/scroll.d.ts +0 -2
- package/types/utils/searchers.d.ts +0 -2
- package/types/utils/store.d.ts +0 -2
- package/types/utils/string.d.ts +0 -2
- package/types/utils/system.d.ts +0 -2
- package/types/utils/url.d.ts +0 -2
- /package/assets/{popup.css → widgetInput.css} +0 -0
- /package/{types/forms → forms}/helpers.d.ts +0 -0
- /package/{types → src}/api/api/additional.d.ts +0 -0
- /package/{types → src}/api/api/client/client.d.ts +0 -0
- /package/{types → src}/api/api/client/request-options.d.ts +0 -0
- /package/{types → src}/api/api/client/request.d.ts +0 -0
- /package/{types → src}/api/api/index.d.ts +0 -0
- /package/{types → src}/api/api/mocker/index.d.ts +0 -0
- /package/{types → src}/api/api/tests/model.d.ts +0 -0
- /package/{types → src}/api/api/tests/test.d.ts +0 -0
- /package/{types → src}/api/api/types/api.d.ts +0 -0
- /package/{types → src}/api/api/types/client/client.d.ts +0 -0
- /package/{types → src}/api/api/types/client/middleware.d.ts +0 -0
- /package/{types → src}/api/api/types/client/options.d.ts +0 -0
- /package/{types → src}/api/api/types/client/request-context.d.ts +0 -0
- /package/{types → src}/api/api/types/client/request-options.d.ts +0 -0
- /package/{types → src}/api/api/types/client/request.d.ts +0 -0
- /package/{types → src}/api/api/types/ext.d.ts +0 -0
- /package/{types → src}/api/api/types/field.d.ts +0 -0
- /package/{types → src}/api/api/types/index.d.ts +0 -0
- /package/{types → src}/api/api/types/mocker.d.ts +0 -0
- /package/{types → src}/api/api/types/schema.d.ts +0 -0
- /package/{types → src}/api/api/types/tv.d.ts +0 -0
- /package/{types → src}/api/api/types/utils.d.ts +0 -0
- /package/{types → src}/api/api/utils/common.d.ts +0 -0
- /package/{types → src}/api/api/utils/field.d.ts +0 -0
- /package/{types → src}/api/api/utils/filters.d.ts +0 -0
- /package/{types → src}/api/api/utils/lazy.d.ts +0 -0
- /package/{types → src}/components/charts/miniChart/miniChart.vue.d.ts +0 -0
- /package/{types → src}/components/charts/miniChart/types.d.ts +0 -0
- /package/{types → src}/components/charts/miniChart/utils/consts.d.ts +0 -0
- /package/{types → src}/components/charts/miniCharts/miniCharts.d.ts +0 -0
- /package/{types → src}/components/charts/miniCharts/miniCharts.vue.d.ts +0 -0
- /package/{types → src}/components/core/notice/item/item.vue.d.ts +0 -0
- /package/{types → src}/components/core/notice/item/types.d.ts +0 -0
- /package/{types → src}/components/core/notice/notice.vue.d.ts +0 -0
- /package/{types → src}/components/core/notice/types.d.ts +0 -0
- /package/{types → src}/components/core/notice/utils.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/composables/asyncDialogHandle.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/composables/dialogHandle.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/composables/types.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/composables/utils.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/dialog.vue.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/dialogs/dialogs.vue.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/page/page.vue.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/page/types.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/pageComponent/pageComponent.vue.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/pageComponent/types.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/stories/dialog_example/pages/utils.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog/types.d.ts +0 -0
- /package/{types → src}/components/dialog/dialog.d.ts +0 -0
- /package/{types → src}/components/dialog/lib/types.d.ts +0 -0
- /package/{types → src}/components/dialog/lib/utils.d.ts +0 -0
- /package/{types → src}/components/dialog/lib/utils.globalEvents.d.ts +0 -0
- /package/{types → src}/components/dialog/lib/worker.d.ts +0 -0
- /package/{types → src}/components/extra/rive/rive.vue.d.ts +0 -0
- /package/{types → src}/components/extra/rive/types.d.ts +0 -0
- /package/{types → src}/components/forms/avatar/avatar.vue.d.ts +0 -0
- /package/{types → src}/components/forms/avatar/types.d.ts +0 -0
- /package/{types → src}/components/forms/button/button.vue.d.ts +0 -0
- /package/{types → src}/components/forms/button/types.d.ts +0 -0
- /package/{types → src}/components/forms/caption/caption.vue.d.ts +0 -0
- /package/{types → src}/components/forms/caption/types.d.ts +0 -0
- /package/{types → src}/components/forms/checkbox/checkbox.vue.d.ts +0 -0
- /package/{types → src}/components/forms/checkbox/types.d.ts +0 -0
- /package/{types → src}/components/forms/controlLabel/controlLabel.vue.d.ts +0 -0
- /package/{types → src}/components/forms/controlLabel/types.d.ts +0 -0
- /package/{types → src}/components/forms/helpers.d.ts +0 -0
- /package/{types → src}/components/forms/hint/hint.vue.d.ts +0 -0
- /package/{types → src}/components/forms/hint/types.d.ts +0 -0
- /package/{types → src}/components/forms/input/input.vue.d.ts +0 -0
- /package/{types → src}/components/forms/input/types.d.ts +0 -0
- /package/{types → src}/components/forms/inputDate/datepicker.d.ts +0 -0
- /package/{types → src}/components/forms/inputDate/inputDate.vue.d.ts +0 -0
- /package/{types → src}/components/forms/inputDate/types.d.ts +0 -0
- /package/{types → src}/components/forms/inputRange/inputRange.vue.d.ts +0 -0
- /package/{types → src}/components/forms/inputRange/types.d.ts +0 -0
- /package/{types → src}/components/forms/loadbar/loadbar.vue.d.ts +0 -0
- /package/{types → src}/components/forms/preloader/preloader.vue.d.ts +0 -0
- /package/{types → src}/components/forms/preloader/types.d.ts +0 -0
- /package/{types → src}/components/forms/radio/radio.vue.d.ts +0 -0
- /package/{types → src}/components/forms/radio/types.d.ts +0 -0
- /package/{types → src}/components/forms/select/select.vue.d.ts +0 -0
- /package/{types → src}/components/forms/select/types.d.ts +0 -0
- /package/{types → src}/components/forms/switcher/switcher.vue.d.ts +0 -0
- /package/{types → src}/components/forms/switcher/types.d.ts +0 -0
- /package/{types → src}/components/forms/textarea/textarea.vue.d.ts +0 -0
- /package/{types → src}/components/forms/textarea/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/checkboxGroup/checkboxGroup.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/checkboxGroup/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/editArea/editArea.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/editArea/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/editInput/editInput.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/editInput/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/info/info.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/info/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/menu/menu.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/menu/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/policy/policy.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/policy/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/radioGroup/radioGroup.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/radioGroup/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/selector2/composables/useAPI.d.ts +0 -0
- /package/{types → src}/components/formsExt/selector2/composables/useMenu.d.ts +0 -0
- /package/{types → src}/components/formsExt/selector2/itemMulti.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/selector2/selector2.vue.d.ts +0 -0
- /package/{types → src}/components/formsExt/selector2/types.d.ts +0 -0
- /package/{types → src}/components/formsExt/selector2/utils.d.ts +0 -0
- /package/{types → src}/components/layout/islandRows/islandRows.vue.d.ts +0 -0
- /package/{types → src}/components/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +0 -0
- /package/{types → src}/components/layout/islandRows/islandRowsRow/types.d.ts +0 -0
- /package/{types → src}/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue.d.ts +0 -0
- /package/{types → src}/components/layout/islandRows/types.d.ts +0 -0
- /package/{types → src}/components/layout/rows/rows.vue.d.ts +0 -0
- /package/{types → src}/components/layout/rows/types.d.ts +0 -0
- /package/{types → src}/components/popup/alert/alert.vue.d.ts +0 -0
- /package/{types → src}/components/popup/alert/types.d.ts +0 -0
- /package/{types → src}/components/popup/confirm/confirm.vue.d.ts +0 -0
- /package/{types → src}/components/popup/confirm/types.d.ts +0 -0
- /package/{types → src}/components/popup/lib/popup.d.ts +0 -0
- /package/{types → src}/components/popup/lib/popup.globalEvents.d.ts +0 -0
- /package/{types → src}/components/popup/lib/worker.d.ts +0 -0
- /package/{types → src}/components/popup/lib/worker.globalEvents.d.ts +0 -0
- /package/{types → src}/components/popup/popup/listItem.vue.d.ts +0 -0
- /package/{types → src}/components/popup/popup/opener.vue.d.ts +0 -0
- /package/{types → src}/components/popup/popup/popup.vue.d.ts +0 -0
- /package/{types → src}/components/popup/popup/types.d.ts +0 -0
- /package/{types → src}/components/popup/popup/widgetInput.vue.d.ts +0 -0
- /package/{types → src}/components/popup/prompt/prompt.vue.d.ts +0 -0
- /package/{types → src}/components/popup/prompt/types.d.ts +0 -0
- /package/{types → src}/components/popup/worker.d.ts +0 -0
- /package/{types → src}/components/project/selectorCompetitors/composables.d.ts +0 -0
- /package/{types → src}/components/project/selectorCompetitors/selectorCompetitors.vue.d.ts +0 -0
- /package/{types → src}/components/project/selectorCompetitors/types.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/composables/compare.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/composables/selectRegion.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/composables/selectSearcher.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/composables/selectorRegion.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/dialog_selectorRegions/types.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/selectorRegion.vue.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/types.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/utils/consts.d.ts +0 -0
- /package/{types → src}/components/project/selectorRegion/utils/utils.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/popupListItem/tagPopupListItem.vue.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/popupListItem/types.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/popupOpener/popupOpener.vue.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/popupOpener/types.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/tagIcon/tagIcon.vue.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/tagIcon/types.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/tagSelector.vue.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/tagsDefaults.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/types.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/utils/el.d.ts +0 -0
- /package/{types → src}/components/project/tagSelector/utils/utils.d.ts +0 -0
- /package/{types → src}/components/tabs/tabs/content.vue.d.ts +0 -0
- /package/{types → src}/components/tabs/tabs/tab.vue.d.ts +0 -0
- /package/{types → src}/components/tabs/tabs/tabs.vue.d.ts +0 -0
- /package/{types → src}/components/tabs/tabs/types.d.ts +0 -0
- /package/{types → src}/components/tabsView/tabsView/menu.vue.d.ts +0 -0
- /package/{types → src}/components/tabsView/tabsView/menuDelimeter.vue.d.ts +0 -0
- /package/{types → src}/components/tabsView/tabsView/menuItem.vue.d.ts +0 -0
- /package/{types → src}/components/tabsView/tabsView/menuTitle.vue.d.ts +0 -0
- /package/{types → src}/components/tabsView/tabsView/store.d.ts +0 -0
- /package/{types → src}/components/tabsView/tabsView/tabsView.vue.d.ts +0 -0
- /package/{types → src}/components/tabsView/tabsView/types.d.ts +0 -0
- /package/{types → src}/components/tabsView/tabsView/utils.d.ts +0 -0
- /package/{types → src}/core/app.d.ts +0 -0
- /package/{types → src}/core/core/core.d.ts +0 -0
- /package/{types → src}/core/core/events/resize.d.ts +0 -0
- /package/{types → src}/core/core/events.d.ts +0 -0
- /package/{types → src}/core/core/options.d.ts +0 -0
- /package/{types → src}/core/core/preloaders.d.ts +0 -0
- /package/{types → src}/core/core/state.d.ts +0 -0
- /package/{types → src}/core/directives/data.d.ts +0 -0
- /package/{types → src}/core/directives/focus.d.ts +0 -0
- /package/{types → src}/core/directives/preloader.d.ts +0 -0
- /package/{types → src}/core/directives/scrollIntoView.d.ts +0 -0
- /package/{types → src}/core/directives/scrollShadow.d.ts +0 -0
- /package/{types → src}/core/directives/sticky.d.ts +0 -0
- /package/{types → src}/core/directives/swimUp.d.ts +0 -0
- /package/{types → src}/core/directives/tooltip.d.ts +0 -0
- /package/{types → src}/core/plugins/core.d.ts +0 -0
- /package/{types → src}/core/plugins/i18n.d.ts +0 -0
- /package/{types → src}/core/plugins/piniaTPA.d.ts +0 -0
- /package/{types → src}/core/utils/check.d.ts +0 -0
- /package/{types → src}/core/utils/clipboard.d.ts +0 -0
- /package/{types → src}/core/utils/date.d.ts +0 -0
- /package/{types → src}/core/utils/device.d.ts +0 -0
- /package/{types → src}/core/utils/dom.d.ts +0 -0
- /package/{types → src}/core/utils/image.d.ts +0 -0
- /package/{types → src}/core/utils/keyboard.d.ts +0 -0
- /package/{types → src}/core/utils/lodash.d.ts +0 -0
- /package/{types → src}/core/utils/number.d.ts +0 -0
- /package/{types → src}/core/utils/price.d.ts +0 -0
- /package/{types → src}/core/utils/route.d.ts +0 -0
- /package/{types → src}/core/utils/scroll.d.ts +0 -0
- /package/{types → src}/core/utils/searchers.d.ts +0 -0
- /package/{types → src}/core/utils/store/localStorage.d.ts +0 -0
- /package/{types → src}/core/utils/store/plugin.d.ts +0 -0
- /package/{types → src}/core/utils/store/store.d.ts +0 -0
- /package/{types → src}/core/utils/store.d.ts +0 -0
- /package/{types → src}/core/utils/string.d.ts +0 -0
- /package/{types → src}/core/utils/system.d.ts +0 -0
- /package/{types → src}/core/utils/url.d.ts +0 -0
package/tabsView/tabsView.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Core as U } from "../core/app.js";
|
|
2
|
-
import { watch as k, computed as I, ref as f, defineComponent as M, createBlock as m, openBlock as l, resolveDynamicComponent as O, normalizeClass as
|
|
3
|
-
import { C as $,
|
|
2
|
+
import { watch as k, computed as I, ref as f, defineComponent as M, createBlock as m, openBlock as l, resolveDynamicComponent as O, normalizeClass as y, unref as i, withCtx as b, renderSlot as v, createElementBlock as p, createCommentVNode as g, mergeModels as z, useModel as D, useSlots as G, onMounted as Q, onUnmounted as H, createElementVNode as S, toDisplayString as R, Fragment as X, createTextVNode as Y, markRaw as Z, createVNode as x, KeepAlive as ee } from "vue";
|
|
3
|
+
import { C as $, T as te, g as oe } from "../.chunks/forms-CSwfPGPT.es.js";
|
|
4
4
|
import { getHash as K, genHash as ae, setHash as se, delHash as ne } from "../utils/route.js";
|
|
5
5
|
import { u as ie, d as re } from "../.chunks/store-CX_6ZXhO.es.js";
|
|
6
|
-
import {
|
|
6
|
+
import { b as A, _ as le } from "../.chunks/listItem.vue_vue_type_script_setup_true_lang-DV__bCGp.es.js";
|
|
7
|
+
/* empty css */
|
|
7
8
|
import { sleepWhile as ue } from "../utils/system.js";
|
|
8
9
|
const q = ["../assets/tabsView.css"].map((t) => import.meta.resolve(t));
|
|
9
10
|
U.insertCSSLinkToPage(q, !0);
|
|
@@ -16,7 +17,7 @@ const j = (t, o) => `top:${String(t)}:${o}`, ce = (t, o) => {
|
|
|
16
17
|
} catch {
|
|
17
18
|
console.warn(new Error(`В localStorage[${e}] не корректный json`));
|
|
18
19
|
}
|
|
19
|
-
},
|
|
20
|
+
}, de = (t, o) => {
|
|
20
21
|
if (!o.$id) return;
|
|
21
22
|
const e = j(t, o.$id);
|
|
22
23
|
k(() => o[t], () => {
|
|
@@ -24,18 +25,18 @@ const j = (t, o) => `top:${String(t)}:${o}`, ce = (t, o) => {
|
|
|
24
25
|
}, { immediate: !0 });
|
|
25
26
|
}, E = {
|
|
26
27
|
loadLocalStorge: ce,
|
|
27
|
-
addSaverLocalStorge:
|
|
28
|
+
addSaverLocalStorge: de
|
|
28
29
|
}, F = /* @__PURE__ */ new Set();
|
|
29
30
|
addEventListener("popstate", (t) => {
|
|
30
31
|
F.forEach((o) => o(t));
|
|
31
32
|
});
|
|
32
|
-
const W = Symbol(),
|
|
33
|
+
const W = Symbol(), pe = (t, o) => {
|
|
33
34
|
const e = re(W, () => {
|
|
34
|
-
const a = I(() => t.showMenuInPopup ?? $.state.isMobile), u = I(() => t.pageMod),
|
|
35
|
+
const a = I(() => t.showMenuInPopup ?? $.state.isMobile), u = I(() => t.pageMod), d = f(!1), n = f(void 0), r = f(!0);
|
|
35
36
|
return {
|
|
36
37
|
showMenuInPopup: a,
|
|
37
38
|
pageMod: u,
|
|
38
|
-
isShort:
|
|
39
|
+
isShort: d,
|
|
39
40
|
activeItemName: o,
|
|
40
41
|
component: n,
|
|
41
42
|
scrollable: r
|
|
@@ -55,7 +56,7 @@ const W = Symbol(), de = (t, o) => {
|
|
|
55
56
|
}, L = () => ie(W), me = {
|
|
56
57
|
key: 1,
|
|
57
58
|
class: "top-ellipsis"
|
|
58
|
-
},
|
|
59
|
+
}, w = /* @__PURE__ */ M({
|
|
59
60
|
__name: "menuItem",
|
|
60
61
|
props: {
|
|
61
62
|
name: {},
|
|
@@ -66,12 +67,12 @@ const W = Symbol(), de = (t, o) => {
|
|
|
66
67
|
scrollable: { type: Boolean, default: !0 }
|
|
67
68
|
},
|
|
68
69
|
setup(t) {
|
|
69
|
-
const o = t, e = L(), a = I(() => o.name && e.$id ? ae(e.$id, o.name) : o.href), u = I(() => e.showMenuInPopup ? A : a ? "a" : "button"),
|
|
70
|
+
const o = t, e = L(), a = I(() => o.name && e.$id ? ae(e.$id, o.name) : o.href), u = I(() => e.showMenuInPopup ? A : a ? "a" : "button"), d = (n) => {
|
|
70
71
|
!o.href && a.value && n.preventDefault(), o.name && (e.activeItemName = o.name);
|
|
71
72
|
};
|
|
72
73
|
return (n, r) => (l(), m(O(u.value), {
|
|
73
74
|
target: "_self",
|
|
74
|
-
class:
|
|
75
|
+
class: y({
|
|
75
76
|
"top-tabsView_menuItem": !i(e).showMenuInPopup,
|
|
76
77
|
"top-active": n.name && i(e).activeItemName === n.name,
|
|
77
78
|
"top-disabled": n.disabled,
|
|
@@ -80,12 +81,12 @@ const W = Symbol(), de = (t, o) => {
|
|
|
80
81
|
href: a.value,
|
|
81
82
|
"data-top-icon": n.icon || void 0,
|
|
82
83
|
disabled: n.disabled || void 0,
|
|
83
|
-
onClick:
|
|
84
|
+
onClick: d
|
|
84
85
|
}, {
|
|
85
86
|
default: b(() => [
|
|
86
|
-
i(e).showMenuInPopup ? v(n.$slots, "default", { key: 0 }) : n.$slots.default && !i(e).isShort ? (l(),
|
|
87
|
+
i(e).showMenuInPopup ? v(n.$slots, "default", { key: 0 }) : n.$slots.default && !i(e).isShort ? (l(), p("span", me, [
|
|
87
88
|
v(n.$slots, "default")
|
|
88
|
-
])) :
|
|
89
|
+
])) : g("", !0)
|
|
89
90
|
]),
|
|
90
91
|
_: 3
|
|
91
92
|
}, 8, ["class", "href", "data-top-icon", "disabled"]));
|
|
@@ -106,14 +107,14 @@ const W = Symbol(), de = (t, o) => {
|
|
|
106
107
|
}),
|
|
107
108
|
emits: ["update:isLoading"],
|
|
108
109
|
setup(t) {
|
|
109
|
-
const o = D(t, "isLoading"), e = L(), a = G(), u = /* @__PURE__ */ new Map(),
|
|
110
|
+
const o = D(t, "isLoading"), e = L(), a = G(), u = /* @__PURE__ */ new Map(), d = () => {
|
|
110
111
|
if (!a.default) return;
|
|
111
112
|
const c = a.default({}).find((s) => s.key === "_menu");
|
|
112
113
|
c && n(c.children);
|
|
113
114
|
}, n = (c) => {
|
|
114
115
|
c.forEach((s) => {
|
|
115
116
|
var P, T, B, C;
|
|
116
|
-
if (s.type.__name && s.type.__name !==
|
|
117
|
+
if (s.type.__name && s.type.__name !== w.__name) return;
|
|
117
118
|
if (!s.type.__name && typeof s.children == "object") {
|
|
118
119
|
n(s.children);
|
|
119
120
|
return;
|
|
@@ -122,8 +123,8 @@ const W = Symbol(), de = (t, o) => {
|
|
|
122
123
|
const N = {
|
|
123
124
|
title: ((C = (B = s.children).default) == null ? void 0 : C.call(B)[0].children).trim(),
|
|
124
125
|
icon: s.props.icon,
|
|
125
|
-
component: s.props.component ? Z(s.props.component) :
|
|
126
|
-
scrollable: s.props.scrollable ??
|
|
126
|
+
component: s.props.component ? Z(s.props.component) : w.props.component.default,
|
|
127
|
+
scrollable: s.props.scrollable ?? w.props.scrollable.default
|
|
127
128
|
};
|
|
128
129
|
u.set(s.props.name, N);
|
|
129
130
|
});
|
|
@@ -133,7 +134,7 @@ const W = Symbol(), de = (t, o) => {
|
|
|
133
134
|
() => e.activeItemName,
|
|
134
135
|
async () => {
|
|
135
136
|
const c = ++_;
|
|
136
|
-
if (u.size === 0 &&
|
|
137
|
+
if (u.size === 0 && d(), u.size === 0) {
|
|
137
138
|
e.activeItemName = "";
|
|
138
139
|
return;
|
|
139
140
|
}
|
|
@@ -164,10 +165,10 @@ const W = Symbol(), de = (t, o) => {
|
|
|
164
165
|
}), V.observe(h.value);
|
|
165
166
|
}), H(() => {
|
|
166
167
|
V.disconnect();
|
|
167
|
-
}), (c, s) => (l(),
|
|
168
|
+
}), (c, s) => (l(), p("div", {
|
|
168
169
|
ref_key: "elRef",
|
|
169
170
|
ref: h,
|
|
170
|
-
class:
|
|
171
|
+
class: y({
|
|
171
172
|
"top-tabsView_menu": !0,
|
|
172
173
|
"top-tabsView_menu-inPopup_0": !i(e).showMenuInPopup,
|
|
173
174
|
"top-tabsView_menu-inPopup_1": i(e).showMenuInPopup,
|
|
@@ -177,13 +178,13 @@ const W = Symbol(), de = (t, o) => {
|
|
|
177
178
|
i(e).showMenuInPopup ? (l(), m(i(le), { key: 0 }, {
|
|
178
179
|
opener: b(() => [
|
|
179
180
|
S("div", ve, [
|
|
180
|
-
r.value ? (l(),
|
|
181
|
+
r.value ? (l(), p("div", {
|
|
181
182
|
key: 0,
|
|
182
183
|
class: "top-tabsView_menuOpenerActiveItem",
|
|
183
184
|
"data-top-icon": r.value.icon
|
|
184
185
|
}, [
|
|
185
186
|
S("span", he, R(r.value.title), 1)
|
|
186
|
-
], 8, _e)) :
|
|
187
|
+
], 8, _e)) : g("", !0),
|
|
187
188
|
s[1] || (s[1] = S("div", {
|
|
188
189
|
class: "top-tabsView_menuOpenerIcon",
|
|
189
190
|
"data-top-icon": ""
|
|
@@ -194,12 +195,12 @@ const W = Symbol(), de = (t, o) => {
|
|
|
194
195
|
v(c.$slots, "default")
|
|
195
196
|
]),
|
|
196
197
|
_: 3
|
|
197
|
-
})) : (l(),
|
|
198
|
+
})) : (l(), p(X, { key: 1 }, [
|
|
198
199
|
S("div", be, [
|
|
199
200
|
v(c.$slots, "default")
|
|
200
201
|
]),
|
|
201
|
-
c.isShortable ? (l(),
|
|
202
|
-
c.isShortable ? (l(), m(
|
|
202
|
+
c.isShortable ? (l(), p("div", Se, [
|
|
203
|
+
c.isShortable ? (l(), m(w, {
|
|
203
204
|
key: 0,
|
|
204
205
|
icon: i(e).isShort ? "" : "",
|
|
205
206
|
onClick: s[0] || (s[0] = (N) => i(e).isShort = !i(e).isShort)
|
|
@@ -208,12 +209,12 @@ const W = Symbol(), de = (t, o) => {
|
|
|
208
209
|
Y(R(i(e).isShort ? "" : "Свернуть"), 1)
|
|
209
210
|
]),
|
|
210
211
|
_: 1
|
|
211
|
-
}, 8, ["icon"])) :
|
|
212
|
-
])) :
|
|
212
|
+
}, 8, ["icon"])) : g("", !0)
|
|
213
|
+
])) : g("", !0)
|
|
213
214
|
], 64))
|
|
214
215
|
], 2));
|
|
215
216
|
}
|
|
216
|
-
}),
|
|
217
|
+
}), Ce = /* @__PURE__ */ M({
|
|
217
218
|
__name: "tabsView",
|
|
218
219
|
props: /* @__PURE__ */ z({
|
|
219
220
|
modelValue: {},
|
|
@@ -227,15 +228,15 @@ const W = Symbol(), de = (t, o) => {
|
|
|
227
228
|
}),
|
|
228
229
|
emits: ["update:modelValue"],
|
|
229
230
|
setup(t) {
|
|
230
|
-
const o = t, e = D(t, "modelValue"), a =
|
|
231
|
+
const o = t, e = D(t, "modelValue"), a = pe(o, e), u = Math.random();
|
|
231
232
|
o.pageMod && $.state.documentClassModificators.set(u, "top-hasTabsViewPageMod"), H(() => {
|
|
232
233
|
o.pageMod && $.state.documentClassModificators.delete(u), a.$id && ne(a.$id, a.activeItemName, !0);
|
|
233
234
|
});
|
|
234
|
-
const
|
|
235
|
-
return k([
|
|
235
|
+
const d = f(), n = f(!1);
|
|
236
|
+
return k([d, () => a.component], () => {
|
|
236
237
|
n.value = J(a.component);
|
|
237
|
-
}, { immediate: !0 }), (r, _) => (l(),
|
|
238
|
-
class:
|
|
238
|
+
}, { immediate: !0 }), (r, _) => (l(), p("div", {
|
|
239
|
+
class: y({
|
|
239
240
|
"top-tabsView": !0,
|
|
240
241
|
"top-tabsView-pageMod": o.pageMod,
|
|
241
242
|
"top-tabsView-inPopup": i(a).showMenuInPopup
|
|
@@ -252,27 +253,27 @@ const W = Symbol(), de = (t, o) => {
|
|
|
252
253
|
_: 3
|
|
253
254
|
}, 8, ["isShortable", "isLoading"]),
|
|
254
255
|
S("div", {
|
|
255
|
-
class:
|
|
256
|
+
class: y({
|
|
256
257
|
"top-tabsView_contents": !0,
|
|
257
258
|
"top-tabsView_contents-isLoading": n.value,
|
|
258
259
|
"top-tabsView_contents-noScrollable": !i(a).scrollable
|
|
259
260
|
})
|
|
260
261
|
}, [
|
|
261
|
-
n.value ? (l(), m(te, { key: 0 })) :
|
|
262
|
+
n.value ? (l(), m(te, { key: 0 })) : g("", !0),
|
|
262
263
|
(l(), m(ee, null, [
|
|
263
264
|
(l(), m(O(i(a).component), {
|
|
264
265
|
ref_key: "componentRef",
|
|
265
|
-
ref:
|
|
266
|
+
ref: d
|
|
266
267
|
}, null, 512))
|
|
267
268
|
], 1024))
|
|
268
269
|
], 2)
|
|
269
270
|
], 2));
|
|
270
271
|
}
|
|
271
|
-
}),
|
|
272
|
-
function
|
|
273
|
-
return l(),
|
|
272
|
+
}), ye = {}, we = { class: "top-tabsView_menuDelimeter" };
|
|
273
|
+
function Ie(t, o) {
|
|
274
|
+
return l(), p("div", we);
|
|
274
275
|
}
|
|
275
|
-
const
|
|
276
|
+
const Me = /* @__PURE__ */ oe(ye, [["render", Ie]]), Re = /* @__PURE__ */ M({
|
|
276
277
|
__name: "menuTitle",
|
|
277
278
|
props: {
|
|
278
279
|
isSubtitle: { type: Boolean }
|
|
@@ -287,9 +288,9 @@ const Ve = /* @__PURE__ */ oe(we, [["render", Me]]), $e = /* @__PURE__ */ M({
|
|
|
287
288
|
v(e.$slots, "default")
|
|
288
289
|
]),
|
|
289
290
|
_: 3
|
|
290
|
-
})) : i(o).isShort ? (l(), m(
|
|
291
|
+
})) : i(o).isShort ? (l(), m(Me, { key: 1 })) : (l(), p("div", {
|
|
291
292
|
key: 2,
|
|
292
|
-
class:
|
|
293
|
+
class: y({
|
|
293
294
|
"top-tabsView_menuTitle": !0,
|
|
294
295
|
"top-tabsView_menuTitle-subtitle": e.isSubtitle
|
|
295
296
|
})
|
|
@@ -297,10 +298,10 @@ const Ve = /* @__PURE__ */ oe(we, [["render", Me]]), $e = /* @__PURE__ */ M({
|
|
|
297
298
|
v(e.$slots, "default")
|
|
298
299
|
], 2));
|
|
299
300
|
}
|
|
300
|
-
})
|
|
301
|
+
});
|
|
301
302
|
export {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
303
|
+
Ce as TopTabsView,
|
|
304
|
+
w as TopTabsViewMenuItem,
|
|
305
|
+
Re as TopTabsViewMenuTitle
|
|
305
306
|
};
|
|
306
307
|
//# sourceMappingURL=tabsView.js.map
|
package/tabsView/tabsView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabsView.js","sources":["../../src/core/utils/store/localStorage.ts","../../src/components/tabsView/tabsView/store.ts","../../src/components/tabsView/tabsView/menuItem.vue","../../src/components/tabsView/tabsView/utils.ts","../../src/components/tabsView/tabsView/menu.vue","../../src/components/tabsView/tabsView/tabsView.vue","../../src/components/tabsView/tabsView/menuDelimeter.vue","../../src/components/tabsView/tabsView/menuTitle.vue","../../src/components/tabsView/tabsView.ts"],"sourcesContent":["import { watch } from 'vue';\nimport type { Store } from './store';\n\n/**\n * Сгенерировать имя для сохранения данных в localStorage\n * @param stateName - имя свойства состояния\n * @param stateKey - ключ состояния, разные компоненты могут использовать одинаковый ключ\n */\nconst genStorageKey = <T extends Store>(stateName: keyof T, stateKey: string): string => {\n\tconst stateNameString = String(stateName);\n\n\treturn `top:${stateNameString}:${stateKey}`;\n};\n\n/**\n * Загрузить состояние\n * @param stateName - имя свойства состояния\n * @param store\n */\nconst loadLocalStorge = <T extends Store>(stateName: keyof T, store: T) => {\n\t// если Store.key не знадан, значит сохранение состояния в компоненте отключено\n\tif (!store.$id) return;\n\n\tconst localStorageKey = genStorageKey(stateName, store.$id);\n\n\ttry {\n\t\tconst localStorageValue: typeof store[keyof typeof store] = JSON.parse(localStorage.getItem(localStorageKey) as string);\n\n\t\tif (typeof localStorageValue === typeof store[stateName]) {\n\t\t\tstore[stateName] = localStorageValue;\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(new Error(`В localStorage[${localStorageKey}] не корректный json`));\n\t}\n};\n\n/**\n * Добавить автосохранение состояние при его изменении\n * @param stateName - имя свойства состояния\n * @param store\n */\nconst addSaverLocalStorge = <T extends Store>(stateName: keyof T, store: T) => {\n\t// если store.$id не знадан, значит сохранение состояния в компоненте отключено\n\tif (!store.$id) return;\n\n\tconst localStorageKey = genStorageKey(stateName, store.$id);\n\n\twatch(() => store[stateName], () => {\n\t\tlocalStorage.setItem(localStorageKey, JSON.stringify(store[stateName]));\n\t}, { immediate: true });\n};\n\nexport default {\n\tloadLocalStorge,\n\taddSaverLocalStorge,\n};","import type { InjectionKey, ModelRef, UnwrapNestedRefs } from 'vue';\nimport { computed, ref } from 'vue';\nimport Core from '@/core/core/core';\nimport { defineStore, useStore, type Store as DefineStore } from '@/core/utils/store';\nimport StoreLocalStorage from '@/core/utils/store/localStorage';\nimport type { Props, Store } from './types';\nimport { getHash } from '@/core/utils/route';\n\nconst popstateCallbacks = new Set<(e: PopStateEvent) => void>();\n\naddEventListener('popstate', (e) => {\n\tpopstateCallbacks.forEach(popstateCallback => popstateCallback(e));\n});\n\nexport const injectionKey = Symbol() as InjectionKey<Store>;\n\n/**\n * Инициировать Store компонента\n */\nexport const defineTabsStore = (props: Props, model: ModelRef<string | undefined>): UnwrapNestedRefs<Store> & DefineStore => {\n\tconst store = defineStore(injectionKey, () => {\n\t\tconst showMenuInPopup = computed(() => props.showMenuInPopup ?? Core.state.isMobile);\n\t\tconst pageMod = computed(() => props.pageMod);\n\t\tconst isShort = ref(false);\n\n\t\tconst component = ref(undefined);\n\t\tconst scrollable = ref(true);\n\n\t\treturn {\n\t\t\tshowMenuInPopup,\n\t\t\tpageMod,\n\t\t\tisShort,\n\t\t\tactiveItemName: model,\n\t\t\tcomponent,\n\t\t\tscrollable,\n\t\t};\n\t}, props.idState);\n\n\tif (props.isShortable) {\n\t\tconst stateName = 'isShort';\n\n\t\tStoreLocalStorage.loadLocalStorge(stateName, store);\n\t\tStoreLocalStorage.addSaverLocalStorge(stateName, store);\n\t}\n\n\tif (store.$id) {\n\t\tconst popstateCallback = (_e: PopStateEvent) => {\n\t\t\tmodel.value = getHash(store.$id!);\n\t\t};\n\n\t\tpopstateCallbacks.add(popstateCallback);\n\t}\n\n\treturn store;\n};\n\n/**\n * Получить Store компонента\n */\nexport const useTabsStore = () => useStore(injectionKey);\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { genHash } from '@/core/utils/route';\nimport { TopPopupListItem } from '@/components/popup/popup';\nimport { useTabsStore } from './store';\nimport type { PropsMenuItem } from './types';\n\nconst props = withDefaults(defineProps<PropsMenuItem>(), {\n\tscrollable: true,\n\tcomponent: undefined,\n});\n\nconst store = useTabsStore();\n\nconst href = computed(() => {\n\t// это внутренняя хеш навигация, ссылка на вкладку\n\tif (props.name && store.$id) {\n\t\treturn genHash(store.$id, props.name);\n\t}\n\n\treturn props.href;\n});\n\nconst tagName = computed(() => {\n\tif (store.showMenuInPopup) {\n\t\treturn TopPopupListItem;\n\t}\n\n\treturn href ? 'a' : 'button';\n});\n\n/**\n * Клик по элементу меню\n */\nconst onClick = (e: MouseEvent) => {\n\t// это внутренняя хеш навигация, ссылка на вкладку\n\tif (!props.href && href.value) {\n\t\te.preventDefault();\n\t}\n\n\tif (props.name) {\n\t\tstore.activeItemName = props.name;\n\t}\n};\n</script>\n\n<template>\n\t<component\n\t\t:is=\"tagName\"\n\t\ttarget=\"_self\"\n\t\t:class=\"{\n\t\t\t['top-tabsView_menuItem']: !store.showMenuInPopup,\n\t\t\t['top-active']: name && store.activeItemName === name,\n\t\t\t['top-disabled']: disabled,\n\t\t\t['top-spa-disabled']: true,\n\t\t}\"\n\t\t:href=\"href\"\n\t\t:data-top-icon=\"icon || undefined\"\n\t\t:disabled=\"disabled || undefined\"\n\t\t@click=\"onClick\"\n\t>\n\t\t<slot name=\"default\" v-if=\"store.showMenuInPopup\"></slot>\n\n\t\t<span\n\t\t\tv-else-if=\"$slots.default && !store.isShort\"\n\t\t\tclass=\"top-ellipsis\"\n\t\t>\n\t\t\t<slot name=\"default\"></slot>\n\t\t</span>\n\t</component>\n</template>\n\n<style>\n.top-tabsView_menuItem {\n\t--top-icon-color: var(--color-text-2);\n\t--top-icon-width: calc(var(--top-icon-size));\n\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\n\tborder: none;\n\tborder-radius: var(--top-radius-2);\n\tpadding: var(--top-padding-2);\n\tbackground: transparent;\n\theight: 40px;\n\n\tcolor: var(--color-text-1);\n\ttext-decoration: none;\n\twhite-space: nowrap;\n\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n\talign-items: center;\n\tjustify-content: flex-start;\n\ttransition: background var(--transition);\n}\n\n.top-tabsView_menuItem:hover {\n\t--top-icon-color: var(--color-text-1);\n\n\tbackground: var(--color-bg-shading-1);\n\ttext-decoration: none;\n}\n\n.top-tabsView_menuItem.top-active {\n\t--top-icon-color: inherit;\n\n\tbackground: var(--color-layout-front-1);\n\tcolor: inherit;\n}\n\n.top-tabsView_menuItem:disabled:not(option):not(optgroup):not(.top-forms-option),\n.top-tabsView_menuItem:disabled ~ .top-formsCaption,\n.top-tabsView_menuItem.top-disabled[data-top-icon]:before,\n.top-tabsView_menuItem.top-disabled[data-top-icon2]:after {\n\topacity: unset;\n\tfilter: unset;\n}\n\n.top-tabsView_menuItem.top-disabled {\n\t--top-icon-color: var(--color-text-4);\n\n\tcolor: var(--color-text-4);\n}\n</style>\n","// TODO: Эту функцию можно вынести в глобальный utils\n\nimport { sleepWhile } from '@/core/utils/system';\n\n/**\n * Проверка нахождения компонента в состояние загрузки\n * @param component\n */\nexport const checkComponentIsLoading = (component: any) => {\n\treturn component?.name === 'AsyncComponentWrapper' && !component?.__asyncResolved;\n};\n\n/**\n * Презагрузить компонент\n *\n * Некоторое время ожидает загрузку компонента, прежде чем завершит работу\n */\nexport const preResolveComponent = async (component: any, condition: Function) => {\n\tif (component?.name !== 'AsyncComponentWrapper') return;\n\tif (component?.__asyncResolved) return;\n\n\tcomponent.__asyncLoader();\n\n\tawait sleepWhile(() => {\n\t\treturn condition() && checkComponentIsLoading(component);\n\t}, 200);\n};\n","<script setup lang=\"ts\">\nimport type { Ref, VNode } from 'vue';\nimport { markRaw, onMounted, onUnmounted, ref, useSlots, watch } from 'vue';\nimport { TopPopup } from '../../popup/popup';\nimport { getHash, setHash } from '@/core/utils/route';\n\nimport type { MenuItem, PropsMenu, PropsMenuItem } from './types';\nimport { useTabsStore } from './store';\nimport TabsViewMenuItem from './menuItem.vue';\nimport { preResolveComponent } from './utils';\n\ndefineProps<PropsMenu>();\n\nconst isLoading = defineModel('isLoading');\n\nconst store = useTabsStore();\n\nconst slots = useSlots();\n\n// словарь используется для оптимизации получения нужного menuItem\nconst menuItemByName: Map<PropsMenuItem['name'], MenuItem> = new Map();\n\n// заполнить словарь с menuItem, по элементам в slot default\nconst setMenuItemByName = () => {\n\tif (!slots.default) return;\n\n\tconst component: any = slots.default({}).find(item => item.key === '_menu');\n\tif (!component) return;\n\n\tsetMenuItemByNameFromItems(component.children);\n};\n\n// заполнить словарь с menuItem, по элементам\nconst setMenuItemByNameFromItems = (menuItems: VNode[]) => {\n\tmenuItems.forEach((subComponent: any) => {\n\t\t// это не компонент элемента меню\n\t\tif (subComponent.type.__name && subComponent.type.__name !== TabsViewMenuItem.__name) return;\n\n\t\t// это не компонент, например template\n\t\tif (!subComponent.type.__name && typeof subComponent.children === 'object') {\n\t\t\tsetMenuItemByNameFromItems(subComponent.children);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!subComponent.props?.name || subComponent.props?.disabled) return;\n\n\t\tconst menuItem: MenuItem = {\n\t\t\ttitle: (subComponent.children.default?.()[0].children as string).trim(),\n\t\t\ticon: subComponent.props.icon,\n\t\t\tcomponent: subComponent.props.component ? markRaw(subComponent.props.component) : TabsViewMenuItem.props.component.default,\n\t\t\tscrollable: subComponent.props.scrollable ?? TabsViewMenuItem.props.scrollable.default,\n\t\t};\n\n\t\tmenuItemByName.set(subComponent.props.name, menuItem);\n\t});\n};\n\n/**\n * activeMenuItem нужен:\n * - для вывода текста активной вкладки в меню с popup\n * - для вывода компонента активной вкладки (store.component)\n * - для установки store.scrollable\n */\nconst activeMenuItem: Ref<MenuItem | null> = ref(null);\n\n/**\n * Кол-во изменений активной вкладки\n */\nlet countChanged = 0;\n\n/**\n * Смена активной вкладки\n *\n * TODO: смена slot, например смена языка, требует повторного выполнения setMenuItemByName()\n */\nwatch(\n\t() => store.activeItemName,\n\tasync () => {\n\t\tconst numberChanged = ++countChanged; // порядковый номер текущего изменения\n\n\t\tif (menuItemByName.size === 0) {\n\t\t\tsetMenuItemByName();\n\t\t}\n\n\t\tif (menuItemByName.size === 0) {\n\t\t\tstore.activeItemName = '';\n\n\t\t\treturn;\n\t\t}\n\n\t\tactiveMenuItem.value = menuItemByName.get(store.activeItemName) ?? null;\n\n\t\t// элемент не найден, установить из хеша страницы\n\t\tif (!activeMenuItem.value && store.$id) {\n\t\t\tconst activeItemName = getHash(store.$id);\n\n\t\t\tactiveMenuItem.value = menuItemByName.get(activeItemName) ?? null;\n\n\t\t\tif (activeMenuItem.value) {\n\t\t\t\tstore.activeItemName = activeItemName;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// элемент не найден, установить первый доступный\n\t\tif (!activeMenuItem.value) {\n\t\t\tstore.activeItemName = menuItemByName.keys().next().value!;\n\n\t\t\treturn;\n\t\t}\n\n\t\t// запрошена смена на уже активный элемент\n\t\tif (activeMenuItem.value.component === store.component) {\n\t\t\tisLoading.value = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (store.$id) setHash(store.$id, store.activeItemName, false);\n\n\t\t// флаг загрузки будет сброшен при инициализации компонента\n\t\tisLoading.value = true;\n\n\t\t/**\n\t\t * Презагрузить компонент\n\t\t *\n\t\t * Нужно для того, чтобы минимизировать скачки интерфейса при ожидании загрузки асинхронного компонента\n\t\t */\n\t\tawait preResolveComponent(activeMenuItem.value.component, () => numberChanged === countChanged);\n\n\t\t// влкадка была сменена еще раз во время sleepWhile\n\t\tif (numberChanged !== countChanged) {\n\t\t\treturn;\n\t\t}\n\n\t\tstore.scrollable = activeMenuItem.value.scrollable;\n\t\tstore.component = activeMenuItem.value.component;\n\n\t\tif (activeMenuItem.value && !store.component) {\n\t\t\tconsole.warn(`Компонент вкладки ${store.activeItemName} не найден. Добавьте props.component для пункта меню ${store.activeItemName}.`);\n\t\t}\n\t},\n\t{ immediate: true },\n);\n\nconst elRef = ref();\nlet resizeObserver: ResizeObserver;\n\nonMounted(() => {\n\tresizeObserver = new ResizeObserver(() => {\n\t\telRef.value.parentElement.style.setProperty('--top-tabsView-contents-offset-top', elRef.value.offsetHeight + 'px');\n\t});\n\n\tresizeObserver.observe(elRef.value);\n});\n\nonUnmounted(() => {\n\tresizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tref=\"elRef\"\n\t\t:class=\"{\n\t\t\t'top-tabsView_menu': true,\n\t\t\t'top-tabsView_menu-inPopup_0': !store.showMenuInPopup,\n\t\t\t'top-tabsView_menu-inPopup_1': store.showMenuInPopup,\n\t\t\t'top-tabsView_menu-short': store.isShort && !store.showMenuInPopup,\n\t\t}\"\n\t>\n\t\t<!-- Спрятать меню под кнопку в popup -->\n\t\t<TopPopup v-if=\"store.showMenuInPopup\">\n\t\t\t<template #opener>\n\t\t\t\t<div class=\"top-tabsView_menuOpener\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"activeMenuItem\"\n\t\t\t\t\t\tclass=\"top-tabsView_menuOpenerActiveItem\"\n\t\t\t\t\t\t:data-top-icon=\"activeMenuItem.icon\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ activeMenuItem.title }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"top-tabsView_menuOpenerIcon\" data-top-icon=\"\"></div>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #contentList>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</TopPopup>\n\n\t\t<!-- Отобразить меню на странице -->\n\t\t<template v-else>\n\t\t\t<div class=\"top-tabsView_menuList\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tv-if=\"isShortable\"\n\t\t\t\tclass=\"top-tabsView_menuFooter\"\n\t\t\t>\n\t\t\t\t<TabsViewMenuItem\n\t\t\t\t\tv-if=\"isShortable\"\n\t\t\t\t\t:icon=\"store.isShort ? '' : ''\"\n\t\t\t\t\t@click=\"store.isShort = !store.isShort\"\n\t\t\t\t>\n\t\t\t\t\t{{ store.isShort ? '' : 'Свернуть' }} <!--TODO: translate-->\n\t\t\t\t</TabsViewMenuItem>\n\t\t\t</div>\n\t\t</template>\n\t</div>\n</template>\n\n<style>\n/* режим отображение табов в основной области документа */\n.top-tabsView-pageMod .top-tabsView_menu {\n\tbox-sizing: border-box;\n\tposition: sticky;\n\ttop: var(--top-tabsView-top);\n\tz-index: 10;\n}\n\n/* режим отображение табов в основной области документа без popup */\n.top-tabsView-pageMod .top-tabsView_menu-inPopup_0 {\n\theight: calc(var(--100vh) - var(--top-tabsView-top));\n}\n\n/* стантартный режим */\n.top-tabsView_menu-inPopup_0 {\n\tbox-sizing: border-box;\n\twidth: var(--top-tabsView-menu-width);\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tflex-shrink: 0;\n}\n\n/* режим вывода в popup */\n.top-tabsView_menu-inPopup_1 {\n\tborder-bottom: 1px solid var(--color-line-2-opacity);\n}\n\n.top-tabsView_menu-short {\n\twidth: auto;\n}\n\n.top-tabsView_menu > .top-tabsView_menuOpener {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n}\n\n.top-tabsView_menu > .top-tabsView_menuOpener:hover {\n\tbackground: var(--color-layer-1);\n}\n\n.top-tabsView_menuOpenerIcon { display: flex; }\n\n.top-tabsView_menuOpenerActiveItem {\n\t--top-forms-padding: 0px;\n\n\tbox-sizing: border-box;\n\tpadding: var(--top-padding-2);\n\tmax-width: calc(100% - var(--top-forms-base-height));\n\twhite-space: nowrap;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--top-padding-2);\n}\n\n.top-tabsView_menuList,\n.top-tabsView_menuFooter {\n\tpadding: var(--top-padding-2);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-2);\n}\n\n.top-tabsView_menuList {\n\toverflow-y: auto;\n}\n\n.top-tabsView_menu-short .top-tabsView_menuFooter > .top-tabsView_menuItem {\n\t--top-icon-width: 100%;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { defineModel, onUnmounted, ref, watch } from 'vue';\nimport Core from '@/core/core/core';\nimport { delHash } from '@/core/utils/route';\nimport type { Props } from './types';\nimport { defineTabsStore } from './store';\nimport TabsViewMenu from './menu.vue';\nimport TopLoadbar from '@/components/forms/loadbar/loadbar.vue';\nimport { checkComponentIsLoading } from './utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tshowMenuInPopup: undefined,\n\tisShortable: false,\n});\n\nconst model = defineModel<string>();\n\nconst store = defineTabsStore(props, model);\n\nconst uid = Math.random();\n\nif (props.pageMod) Core.state.documentClassModificators.set(uid, 'top-hasTabsViewPageMod');\n\nonUnmounted(() => {\n\tif (props.pageMod) Core.state.documentClassModificators.delete(uid);\n\n\tif (store.$id) delHash(store.$id, store.activeItemName, true);\n});\n\nconst componentRef = ref();\nconst isLoading = ref(false);\n\nwatch([componentRef, () => store.component], () => {\n\tisLoading.value = checkComponentIsLoading(store.component);\n}, { immediate: true });\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabsView': true,\n\t\t\t'top-tabsView-pageMod': props.pageMod,\n\t\t\t'top-tabsView-inPopup': store.showMenuInPopup,\n\t\t}\"\n\t>\n\t\t<TabsViewMenu\n\t\t\t:isShortable=\"isShortable\"\n\t\t\tv-model:isLoading=\"isLoading\"\n\t\t>\n\t\t\t<!-- @slot Меню, ожидает передачу компонентов TabsViewMenuItem и TabsViewMenuTitle -->\n\t\t\t<slot name=\"menu\"></slot>\n\t\t</TabsViewMenu>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-tabsView_contents': true,\n\t\t\t\t'top-tabsView_contents-isLoading': isLoading,\n\t\t\t\t'top-tabsView_contents-noScrollable': !store.scrollable,\n\t\t\t}\"\n\t\t>\n\t\t\t<TopLoadbar v-if=\"isLoading\"/>\n\n\t\t\t<keep-alive>\n\t\t\t\t<component\n\t\t\t\t\tref=\"componentRef\"\n\t\t\t\t\t:is=\"store.component\"\n\t\t\t\t/>\n\t\t\t</keep-alive>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n:root {\n\t--top-tabsView-top: 0px;\n\t--top-tabsView-menu-width: 220px;\n\t--top-tabsView-contents-offset-top: 0px;\n}\n\n.top-tabsView {\n\tbackground: var(--color-layout-middle);\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: row;\n}\n\n.top-tabsView_contents {\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-4);\n\tflex-grow: 1;\n\toverflow: auto;\n\tposition: relative;\n}\n\n.top-tabsView_contents-isLoading {\n\tpointer-events: none;\n}\n\n.top-tabsView_contents-noScrollable {\n\twidth: calc(100% - var(--top-tabsView-menu-width));\n\tpadding: 0;\n\toverflow: visible;\n}\n\n/* top-tabsView-inPopup */\n.top-tabsView-inPopup {\n\tbackground: var(--color-layout-front-1);\n\tflex-direction: column;\n}\n\n.top-tabsView-inPopup > .top-tabsView_contents {\n\tborder-radius: 0;\n}\n\n.top-tabsView-inPopup > .top-tabsView_contents-noScrollable {\n\twidth: auto;\n}\n</style>\n","<script setup lang=\"ts\">\n\n</script>\n\n<template>\n\t<div class=\"top-tabsView_menuDelimeter\"></div>\n</template>\n\n<style>\n.top-tabsView_menuDelimeter {\n\tpadding: var(--top-padding-1) 0;\n\tdisplay: flex;\n}\n\n.top-tabsView_menuDelimeter:before {\n\tcontent: \"\";\n\theight: 2px;\n\tbackground: var(--color-line-2);\n\tflex-grow: 1;\n}\n\n.top-tabsView_menuDelimeter:first-child,\n.top-tabsView_menuDelimeter + .top-tabsView_menuDelimeter {\n\tdisplay: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTabsStore } from './store';\nimport type { PropsMenuTitle } from './types';\nimport TabsViewMenuDelimeter from './menuDelimeter.vue';\nimport { TopPopupListItem } from '../../popup/popup';\n\ndefineProps<PropsMenuTitle>();\n\nconst store = useTabsStore();\n</script>\n\n<template>\n\t<TopPopupListItem\n\t\tv-if=\"store.showMenuInPopup\"\n\t\ttype=\"title\"\n\t>\n\t\t<slot></slot>\n\t</TopPopupListItem>\n\n\t<TabsViewMenuDelimeter v-else-if=\"store.isShort\"/>\n\n\t<div\n\t\tv-else\n\t\t:class=\"{\n\t\t\t'top-tabsView_menuTitle': true,\n\t\t\t'top-tabsView_menuTitle-subtitle': isSubtitle,\n\t\t}\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-tabsView_menuTitle {\n\tpadding: var(--top-padding-4) var(--top-padding-2) var(--top-padding-1);\n\tfont-weight: 600;\n\tcolor: var(--color-text-1);\n}\n\n.top-tabsView_menuTitle-subtitle {\n\tpadding-top: var(--top-padding-1);\n\tfont-size: 12px;\n\tfont-weight: 400;\n\tcolor: var(--color-text-2);\n}\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport TabsView from './tabsView/tabsView.vue';\nimport TabsViewMenuItem from './tabsView/menuItem.vue';\nimport TabsViewMenuTitle from './tabsView/menuTitle.vue';\n\nexport const TopTabsView = TabsView as typeof TabsView & ComponentCustomProps;\nexport const TopTabsViewMenuItem = TabsViewMenuItem as typeof TabsViewMenuItem & ComponentCustomProps;\nexport const TopTabsViewMenuTitle = TabsViewMenuTitle as typeof TabsViewMenuTitle & ComponentCustomProps;\n"],"names":["genStorageKey","stateName","stateKey","loadLocalStorge","store","localStorageKey","localStorageValue","addSaverLocalStorge","watch","StoreLocalStorage","popstateCallbacks","e","popstateCallback","injectionKey","defineTabsStore","props","model","defineStore","showMenuInPopup","computed","Core","pageMod","isShort","ref","component","scrollable","_e","getHash","useTabsStore","useStore","__props","href","genHash","tagName","TopPopupListItem","onClick","openBlock","createBlock","resolveDynamicComponent","normalizeClass","unref","_ctx","name","disabled","renderSlot","createElementBlock","_hoisted_1$2","createCommentVNode","checkComponentIsLoading","preResolveComponent","condition","sleepWhile","isLoading","useModel","slots","useSlots","menuItemByName","setMenuItemByName","item","setMenuItemByNameFromItems","menuItems","subComponent","_sfc_main$4","_a","_b","menuItem","_d","_c","markRaw","activeMenuItem","countChanged","numberChanged","activeItemName","setHash","elRef","resizeObserver","onMounted","onUnmounted","withCtx","createElementVNode","_hoisted_1$1","_hoisted_2","_hoisted_4","_cache","$event","createTextVNode","toDisplayString","uid","delHash","componentRef","isShortable","_hoisted_1","isSubtitle","TopTabsView","_sfc_main$2","TopTabsViewMenuItem","TopTabsViewMenuTitle","_sfc_main"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabsView.js","sources":["../../src/core/utils/store/localStorage.ts","../../src/components/tabsView/tabsView/store.ts","../../src/components/tabsView/tabsView/menuItem.vue","../../src/components/tabsView/tabsView/utils.ts","../../src/components/tabsView/tabsView/menu.vue","../../src/components/tabsView/tabsView/tabsView.vue","../../src/components/tabsView/tabsView/menuDelimeter.vue","../../src/components/tabsView/tabsView/menuTitle.vue"],"sourcesContent":["import { watch } from 'vue';\nimport type { Store } from './store';\n\n/**\n * Сгенерировать имя для сохранения данных в localStorage\n * @param stateName - имя свойства состояния\n * @param stateKey - ключ состояния, разные компоненты могут использовать одинаковый ключ\n */\nconst genStorageKey = <T extends Store>(stateName: keyof T, stateKey: string): string => {\n\tconst stateNameString = String(stateName);\n\n\treturn `top:${stateNameString}:${stateKey}`;\n};\n\n/**\n * Загрузить состояние\n * @param stateName - имя свойства состояния\n * @param store\n */\nconst loadLocalStorge = <T extends Store>(stateName: keyof T, store: T) => {\n\t// если Store.key не знадан, значит сохранение состояния в компоненте отключено\n\tif (!store.$id) return;\n\n\tconst localStorageKey = genStorageKey(stateName, store.$id);\n\n\ttry {\n\t\tconst localStorageValue: typeof store[keyof typeof store] = JSON.parse(localStorage.getItem(localStorageKey) as string);\n\n\t\tif (typeof localStorageValue === typeof store[stateName]) {\n\t\t\tstore[stateName] = localStorageValue;\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(new Error(`В localStorage[${localStorageKey}] не корректный json`));\n\t}\n};\n\n/**\n * Добавить автосохранение состояние при его изменении\n * @param stateName - имя свойства состояния\n * @param store\n */\nconst addSaverLocalStorge = <T extends Store>(stateName: keyof T, store: T) => {\n\t// если store.$id не знадан, значит сохранение состояния в компоненте отключено\n\tif (!store.$id) return;\n\n\tconst localStorageKey = genStorageKey(stateName, store.$id);\n\n\twatch(() => store[stateName], () => {\n\t\tlocalStorage.setItem(localStorageKey, JSON.stringify(store[stateName]));\n\t}, { immediate: true });\n};\n\nexport default {\n\tloadLocalStorge,\n\taddSaverLocalStorge,\n};","import type { InjectionKey, ModelRef, UnwrapNestedRefs } from 'vue';\nimport { computed, ref } from 'vue';\nimport Core from '@/core/core/core';\nimport { defineStore, useStore, type Store as DefineStore } from '@/core/utils/store';\nimport StoreLocalStorage from '@/core/utils/store/localStorage';\nimport type { Props, Store } from './types';\nimport { getHash } from '@/core/utils/route';\n\nconst popstateCallbacks = new Set<(e: PopStateEvent) => void>();\n\naddEventListener('popstate', (e) => {\n\tpopstateCallbacks.forEach(popstateCallback => popstateCallback(e));\n});\n\nexport const injectionKey = Symbol() as InjectionKey<Store>;\n\n/**\n * Инициировать Store компонента\n */\nexport const defineTabsStore = (props: Props, model: ModelRef<string | undefined>): UnwrapNestedRefs<Store> & DefineStore => {\n\tconst store = defineStore(injectionKey, () => {\n\t\tconst showMenuInPopup = computed(() => props.showMenuInPopup ?? Core.state.isMobile);\n\t\tconst pageMod = computed(() => props.pageMod);\n\t\tconst isShort = ref(false);\n\n\t\tconst component = ref(undefined);\n\t\tconst scrollable = ref(true);\n\n\t\treturn {\n\t\t\tshowMenuInPopup,\n\t\t\tpageMod,\n\t\t\tisShort,\n\t\t\tactiveItemName: model,\n\t\t\tcomponent,\n\t\t\tscrollable,\n\t\t};\n\t}, props.idState);\n\n\tif (props.isShortable) {\n\t\tconst stateName = 'isShort';\n\n\t\tStoreLocalStorage.loadLocalStorge(stateName, store);\n\t\tStoreLocalStorage.addSaverLocalStorge(stateName, store);\n\t}\n\n\tif (store.$id) {\n\t\tconst popstateCallback = (_e: PopStateEvent) => {\n\t\t\tmodel.value = getHash(store.$id!);\n\t\t};\n\n\t\tpopstateCallbacks.add(popstateCallback);\n\t}\n\n\treturn store;\n};\n\n/**\n * Получить Store компонента\n */\nexport const useTabsStore = () => useStore(injectionKey);\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { genHash } from '@/core/utils/route';\nimport { TopPopupListItem } from '@/components/popup/popup';\nimport { useTabsStore } from './store';\nimport type { PropsMenuItem } from './types';\n\nconst props = withDefaults(defineProps<PropsMenuItem>(), {\n\tscrollable: true,\n\tcomponent: undefined,\n});\n\nconst store = useTabsStore();\n\nconst href = computed(() => {\n\t// это внутренняя хеш навигация, ссылка на вкладку\n\tif (props.name && store.$id) {\n\t\treturn genHash(store.$id, props.name);\n\t}\n\n\treturn props.href;\n});\n\nconst tagName = computed(() => {\n\tif (store.showMenuInPopup) {\n\t\treturn TopPopupListItem;\n\t}\n\n\treturn href ? 'a' : 'button';\n});\n\n/**\n * Клик по элементу меню\n */\nconst onClick = (e: MouseEvent) => {\n\t// это внутренняя хеш навигация, ссылка на вкладку\n\tif (!props.href && href.value) {\n\t\te.preventDefault();\n\t}\n\n\tif (props.name) {\n\t\tstore.activeItemName = props.name;\n\t}\n};\n</script>\n\n<template>\n\t<component\n\t\t:is=\"tagName\"\n\t\ttarget=\"_self\"\n\t\t:class=\"{\n\t\t\t['top-tabsView_menuItem']: !store.showMenuInPopup,\n\t\t\t['top-active']: name && store.activeItemName === name,\n\t\t\t['top-disabled']: disabled,\n\t\t\t['top-spa-disabled']: true,\n\t\t}\"\n\t\t:href=\"href\"\n\t\t:data-top-icon=\"icon || undefined\"\n\t\t:disabled=\"disabled || undefined\"\n\t\t@click=\"onClick\"\n\t>\n\t\t<slot name=\"default\" v-if=\"store.showMenuInPopup\"></slot>\n\n\t\t<span\n\t\t\tv-else-if=\"$slots.default && !store.isShort\"\n\t\t\tclass=\"top-ellipsis\"\n\t\t>\n\t\t\t<slot name=\"default\"></slot>\n\t\t</span>\n\t</component>\n</template>\n\n<style>\n.top-tabsView_menuItem {\n\t--top-icon-color: var(--color-text-2);\n\t--top-icon-width: calc(var(--top-icon-size));\n\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\n\tborder: none;\n\tborder-radius: var(--top-radius-2);\n\tpadding: var(--top-padding-2);\n\tbackground: transparent;\n\theight: 40px;\n\n\tcolor: var(--color-text-1);\n\ttext-decoration: none;\n\twhite-space: nowrap;\n\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n\talign-items: center;\n\tjustify-content: flex-start;\n\ttransition: background var(--transition);\n}\n\n.top-tabsView_menuItem:hover {\n\t--top-icon-color: var(--color-text-1);\n\n\tbackground: var(--color-bg-shading-1);\n\ttext-decoration: none;\n}\n\n.top-tabsView_menuItem.top-active {\n\t--top-icon-color: inherit;\n\n\tbackground: var(--color-layout-front-1);\n\tcolor: inherit;\n}\n\n.top-tabsView_menuItem:disabled:not(option):not(optgroup):not(.top-forms-option),\n.top-tabsView_menuItem:disabled ~ .top-formsCaption,\n.top-tabsView_menuItem.top-disabled[data-top-icon]:before,\n.top-tabsView_menuItem.top-disabled[data-top-icon2]:after {\n\topacity: unset;\n\tfilter: unset;\n}\n\n.top-tabsView_menuItem.top-disabled {\n\t--top-icon-color: var(--color-text-4);\n\n\tcolor: var(--color-text-4);\n}\n</style>\n","// TODO: Эту функцию можно вынести в глобальный utils\n\nimport { sleepWhile } from '@/core/utils/system';\n\n/**\n * Проверка нахождения компонента в состояние загрузки\n * @param component\n */\nexport const checkComponentIsLoading = (component: any) => {\n\treturn component?.name === 'AsyncComponentWrapper' && !component?.__asyncResolved;\n};\n\n/**\n * Презагрузить компонент\n *\n * Некоторое время ожидает загрузку компонента, прежде чем завершит работу\n */\nexport const preResolveComponent = async (component: any, condition: Function) => {\n\tif (component?.name !== 'AsyncComponentWrapper') return;\n\tif (component?.__asyncResolved) return;\n\n\tcomponent.__asyncLoader();\n\n\tawait sleepWhile(() => {\n\t\treturn condition() && checkComponentIsLoading(component);\n\t}, 200);\n};\n","<script setup lang=\"ts\">\nimport type { Ref, VNode } from 'vue';\nimport { markRaw, onMounted, onUnmounted, ref, useSlots, watch } from 'vue';\nimport { TopPopup } from '../../popup/popup';\nimport { getHash, setHash } from '@/core/utils/route';\n\nimport type { MenuItem, PropsMenu, PropsMenuItem } from './types';\nimport { useTabsStore } from './store';\nimport TabsViewMenuItem from './menuItem.vue';\nimport { preResolveComponent } from './utils';\n\ndefineProps<PropsMenu>();\n\nconst isLoading = defineModel('isLoading');\n\nconst store = useTabsStore();\n\nconst slots = useSlots();\n\n// словарь используется для оптимизации получения нужного menuItem\nconst menuItemByName: Map<PropsMenuItem['name'], MenuItem> = new Map();\n\n// заполнить словарь с menuItem, по элементам в slot default\nconst setMenuItemByName = () => {\n\tif (!slots.default) return;\n\n\tconst component: any = slots.default({}).find(item => item.key === '_menu');\n\tif (!component) return;\n\n\tsetMenuItemByNameFromItems(component.children);\n};\n\n// заполнить словарь с menuItem, по элементам\nconst setMenuItemByNameFromItems = (menuItems: VNode[]) => {\n\tmenuItems.forEach((subComponent: any) => {\n\t\t// это не компонент элемента меню\n\t\tif (subComponent.type.__name && subComponent.type.__name !== TabsViewMenuItem.__name) return;\n\n\t\t// это не компонент, например template\n\t\tif (!subComponent.type.__name && typeof subComponent.children === 'object') {\n\t\t\tsetMenuItemByNameFromItems(subComponent.children);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!subComponent.props?.name || subComponent.props?.disabled) return;\n\n\t\tconst menuItem: MenuItem = {\n\t\t\ttitle: (subComponent.children.default?.()[0].children as string).trim(),\n\t\t\ticon: subComponent.props.icon,\n\t\t\tcomponent: subComponent.props.component ? markRaw(subComponent.props.component) : TabsViewMenuItem.props.component.default,\n\t\t\tscrollable: subComponent.props.scrollable ?? TabsViewMenuItem.props.scrollable.default,\n\t\t};\n\n\t\tmenuItemByName.set(subComponent.props.name, menuItem);\n\t});\n};\n\n/**\n * activeMenuItem нужен:\n * - для вывода текста активной вкладки в меню с popup\n * - для вывода компонента активной вкладки (store.component)\n * - для установки store.scrollable\n */\nconst activeMenuItem: Ref<MenuItem | null> = ref(null);\n\n/**\n * Кол-во изменений активной вкладки\n */\nlet countChanged = 0;\n\n/**\n * Смена активной вкладки\n *\n * TODO: смена slot, например смена языка, требует повторного выполнения setMenuItemByName()\n */\nwatch(\n\t() => store.activeItemName,\n\tasync () => {\n\t\tconst numberChanged = ++countChanged; // порядковый номер текущего изменения\n\n\t\tif (menuItemByName.size === 0) {\n\t\t\tsetMenuItemByName();\n\t\t}\n\n\t\tif (menuItemByName.size === 0) {\n\t\t\tstore.activeItemName = '';\n\n\t\t\treturn;\n\t\t}\n\n\t\tactiveMenuItem.value = menuItemByName.get(store.activeItemName) ?? null;\n\n\t\t// элемент не найден, установить из хеша страницы\n\t\tif (!activeMenuItem.value && store.$id) {\n\t\t\tconst activeItemName = getHash(store.$id);\n\n\t\t\tactiveMenuItem.value = menuItemByName.get(activeItemName) ?? null;\n\n\t\t\tif (activeMenuItem.value) {\n\t\t\t\tstore.activeItemName = activeItemName;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// элемент не найден, установить первый доступный\n\t\tif (!activeMenuItem.value) {\n\t\t\tstore.activeItemName = menuItemByName.keys().next().value!;\n\n\t\t\treturn;\n\t\t}\n\n\t\t// запрошена смена на уже активный элемент\n\t\tif (activeMenuItem.value.component === store.component) {\n\t\t\tisLoading.value = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (store.$id) setHash(store.$id, store.activeItemName, false);\n\n\t\t// флаг загрузки будет сброшен при инициализации компонента\n\t\tisLoading.value = true;\n\n\t\t/**\n\t\t * Презагрузить компонент\n\t\t *\n\t\t * Нужно для того, чтобы минимизировать скачки интерфейса при ожидании загрузки асинхронного компонента\n\t\t */\n\t\tawait preResolveComponent(activeMenuItem.value.component, () => numberChanged === countChanged);\n\n\t\t// влкадка была сменена еще раз во время sleepWhile\n\t\tif (numberChanged !== countChanged) {\n\t\t\treturn;\n\t\t}\n\n\t\tstore.scrollable = activeMenuItem.value.scrollable;\n\t\tstore.component = activeMenuItem.value.component;\n\n\t\tif (activeMenuItem.value && !store.component) {\n\t\t\tconsole.warn(`Компонент вкладки ${store.activeItemName} не найден. Добавьте props.component для пункта меню ${store.activeItemName}.`);\n\t\t}\n\t},\n\t{ immediate: true },\n);\n\nconst elRef = ref();\nlet resizeObserver: ResizeObserver;\n\nonMounted(() => {\n\tresizeObserver = new ResizeObserver(() => {\n\t\telRef.value.parentElement.style.setProperty('--top-tabsView-contents-offset-top', elRef.value.offsetHeight + 'px');\n\t});\n\n\tresizeObserver.observe(elRef.value);\n});\n\nonUnmounted(() => {\n\tresizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tref=\"elRef\"\n\t\t:class=\"{\n\t\t\t'top-tabsView_menu': true,\n\t\t\t'top-tabsView_menu-inPopup_0': !store.showMenuInPopup,\n\t\t\t'top-tabsView_menu-inPopup_1': store.showMenuInPopup,\n\t\t\t'top-tabsView_menu-short': store.isShort && !store.showMenuInPopup,\n\t\t}\"\n\t>\n\t\t<!-- Спрятать меню под кнопку в popup -->\n\t\t<TopPopup v-if=\"store.showMenuInPopup\">\n\t\t\t<template #opener>\n\t\t\t\t<div class=\"top-tabsView_menuOpener\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"activeMenuItem\"\n\t\t\t\t\t\tclass=\"top-tabsView_menuOpenerActiveItem\"\n\t\t\t\t\t\t:data-top-icon=\"activeMenuItem.icon\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ activeMenuItem.title }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"top-tabsView_menuOpenerIcon\" data-top-icon=\"\"></div>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #contentList>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</TopPopup>\n\n\t\t<!-- Отобразить меню на странице -->\n\t\t<template v-else>\n\t\t\t<div class=\"top-tabsView_menuList\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tv-if=\"isShortable\"\n\t\t\t\tclass=\"top-tabsView_menuFooter\"\n\t\t\t>\n\t\t\t\t<TabsViewMenuItem\n\t\t\t\t\tv-if=\"isShortable\"\n\t\t\t\t\t:icon=\"store.isShort ? '' : ''\"\n\t\t\t\t\t@click=\"store.isShort = !store.isShort\"\n\t\t\t\t>\n\t\t\t\t\t{{ store.isShort ? '' : 'Свернуть' }} <!--TODO: translate-->\n\t\t\t\t</TabsViewMenuItem>\n\t\t\t</div>\n\t\t</template>\n\t</div>\n</template>\n\n<style>\n/* режим отображение табов в основной области документа */\n.top-tabsView-pageMod .top-tabsView_menu {\n\tbox-sizing: border-box;\n\tposition: sticky;\n\ttop: var(--top-tabsView-top);\n\tz-index: 10;\n}\n\n/* режим отображение табов в основной области документа без popup */\n.top-tabsView-pageMod .top-tabsView_menu-inPopup_0 {\n\theight: calc(var(--100vh) - var(--top-tabsView-top));\n}\n\n/* стантартный режим */\n.top-tabsView_menu-inPopup_0 {\n\tbox-sizing: border-box;\n\twidth: var(--top-tabsView-menu-width);\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tflex-shrink: 0;\n}\n\n/* режим вывода в popup */\n.top-tabsView_menu-inPopup_1 {\n\tborder-bottom: 1px solid var(--color-line-2-opacity);\n}\n\n.top-tabsView_menu-short {\n\twidth: auto;\n}\n\n.top-tabsView_menu > .top-tabsView_menuOpener {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n}\n\n.top-tabsView_menu > .top-tabsView_menuOpener:hover {\n\tbackground: var(--color-layer-1);\n}\n\n.top-tabsView_menuOpenerIcon { display: flex; }\n\n.top-tabsView_menuOpenerActiveItem {\n\t--top-forms-padding: 0px;\n\n\tbox-sizing: border-box;\n\tpadding: var(--top-padding-2);\n\tmax-width: calc(100% - var(--top-forms-base-height));\n\twhite-space: nowrap;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--top-padding-2);\n}\n\n.top-tabsView_menuList,\n.top-tabsView_menuFooter {\n\tpadding: var(--top-padding-2);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-2);\n}\n\n.top-tabsView_menuList {\n\toverflow-y: auto;\n}\n\n.top-tabsView_menu-short .top-tabsView_menuFooter > .top-tabsView_menuItem {\n\t--top-icon-width: 100%;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { defineModel, onUnmounted, ref, watch } from 'vue';\nimport Core from '@/core/core/core';\nimport { delHash } from '@/core/utils/route';\nimport type { Props } from './types';\nimport { defineTabsStore } from './store';\nimport TabsViewMenu from './menu.vue';\nimport TopLoadbar from '@/components/forms/loadbar/loadbar.vue';\nimport { checkComponentIsLoading } from './utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tshowMenuInPopup: undefined,\n\tisShortable: false,\n});\n\nconst model = defineModel<string>();\n\nconst store = defineTabsStore(props, model);\n\nconst uid = Math.random();\n\nif (props.pageMod) Core.state.documentClassModificators.set(uid, 'top-hasTabsViewPageMod');\n\nonUnmounted(() => {\n\tif (props.pageMod) Core.state.documentClassModificators.delete(uid);\n\n\tif (store.$id) delHash(store.$id, store.activeItemName, true);\n});\n\nconst componentRef = ref();\nconst isLoading = ref(false);\n\nwatch([componentRef, () => store.component], () => {\n\tisLoading.value = checkComponentIsLoading(store.component);\n}, { immediate: true });\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabsView': true,\n\t\t\t'top-tabsView-pageMod': props.pageMod,\n\t\t\t'top-tabsView-inPopup': store.showMenuInPopup,\n\t\t}\"\n\t>\n\t\t<TabsViewMenu\n\t\t\t:isShortable=\"isShortable\"\n\t\t\tv-model:isLoading=\"isLoading\"\n\t\t>\n\t\t\t<!-- @slot Меню, ожидает передачу компонентов TabsViewMenuItem и TabsViewMenuTitle -->\n\t\t\t<slot name=\"menu\"></slot>\n\t\t</TabsViewMenu>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-tabsView_contents': true,\n\t\t\t\t'top-tabsView_contents-isLoading': isLoading,\n\t\t\t\t'top-tabsView_contents-noScrollable': !store.scrollable,\n\t\t\t}\"\n\t\t>\n\t\t\t<TopLoadbar v-if=\"isLoading\"/>\n\n\t\t\t<keep-alive>\n\t\t\t\t<component\n\t\t\t\t\tref=\"componentRef\"\n\t\t\t\t\t:is=\"store.component\"\n\t\t\t\t/>\n\t\t\t</keep-alive>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n:root {\n\t--top-tabsView-top: 0px;\n\t--top-tabsView-menu-width: 220px;\n\t--top-tabsView-contents-offset-top: 0px;\n}\n\n.top-tabsView {\n\tbackground: var(--color-layout-middle);\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: row;\n}\n\n.top-tabsView_contents {\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-4);\n\tflex-grow: 1;\n\toverflow: auto;\n\tposition: relative;\n}\n\n.top-tabsView_contents-isLoading {\n\tpointer-events: none;\n}\n\n.top-tabsView_contents-noScrollable {\n\twidth: calc(100% - var(--top-tabsView-menu-width));\n\tpadding: 0;\n\toverflow: visible;\n}\n\n/* top-tabsView-inPopup */\n.top-tabsView-inPopup {\n\tbackground: var(--color-layout-front-1);\n\tflex-direction: column;\n}\n\n.top-tabsView-inPopup > .top-tabsView_contents {\n\tborder-radius: 0;\n}\n\n.top-tabsView-inPopup > .top-tabsView_contents-noScrollable {\n\twidth: auto;\n}\n</style>\n","<script setup lang=\"ts\">\n\n</script>\n\n<template>\n\t<div class=\"top-tabsView_menuDelimeter\"></div>\n</template>\n\n<style>\n.top-tabsView_menuDelimeter {\n\tpadding: var(--top-padding-1) 0;\n\tdisplay: flex;\n}\n\n.top-tabsView_menuDelimeter:before {\n\tcontent: \"\";\n\theight: 2px;\n\tbackground: var(--color-line-2);\n\tflex-grow: 1;\n}\n\n.top-tabsView_menuDelimeter:first-child,\n.top-tabsView_menuDelimeter + .top-tabsView_menuDelimeter {\n\tdisplay: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTabsStore } from './store';\nimport type { PropsMenuTitle } from './types';\nimport TabsViewMenuDelimeter from './menuDelimeter.vue';\nimport { TopPopupListItem } from '../../popup/popup';\n\ndefineProps<PropsMenuTitle>();\n\nconst store = useTabsStore();\n</script>\n\n<template>\n\t<TopPopupListItem\n\t\tv-if=\"store.showMenuInPopup\"\n\t\ttype=\"title\"\n\t>\n\t\t<slot></slot>\n\t</TopPopupListItem>\n\n\t<TabsViewMenuDelimeter v-else-if=\"store.isShort\"/>\n\n\t<div\n\t\tv-else\n\t\t:class=\"{\n\t\t\t'top-tabsView_menuTitle': true,\n\t\t\t'top-tabsView_menuTitle-subtitle': isSubtitle,\n\t\t}\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-tabsView_menuTitle {\n\tpadding: var(--top-padding-4) var(--top-padding-2) var(--top-padding-1);\n\tfont-weight: 600;\n\tcolor: var(--color-text-1);\n}\n\n.top-tabsView_menuTitle-subtitle {\n\tpadding-top: var(--top-padding-1);\n\tfont-size: 12px;\n\tfont-weight: 400;\n\tcolor: var(--color-text-2);\n}\n</style>\n"],"names":["genStorageKey","stateName","stateKey","loadLocalStorge","store","localStorageKey","localStorageValue","addSaverLocalStorge","watch","StoreLocalStorage","popstateCallbacks","e","popstateCallback","injectionKey","defineTabsStore","props","model","defineStore","showMenuInPopup","computed","Core","pageMod","isShort","ref","component","scrollable","_e","getHash","useTabsStore","useStore","__props","href","genHash","tagName","_sfc_main$5","onClick","openBlock","createBlock","resolveDynamicComponent","normalizeClass","unref","_ctx","name","disabled","renderSlot","createElementBlock","_hoisted_1$2","createCommentVNode","checkComponentIsLoading","preResolveComponent","condition","sleepWhile","isLoading","useModel","slots","useSlots","menuItemByName","setMenuItemByName","item","setMenuItemByNameFromItems","menuItems","subComponent","_sfc_main$4","_a","_b","menuItem","_d","_c","markRaw","activeMenuItem","countChanged","numberChanged","activeItemName","setHash","elRef","resizeObserver","onMounted","onUnmounted","withCtx","createElementVNode","_hoisted_1$1","_hoisted_2","_hoisted_4","_cache","$event","createTextVNode","toDisplayString","uid","delHash","componentRef","isShortable","_hoisted_1","isSubtitle"],"mappings":"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"}
|
package/utils/check.d.ts
ADDED
package/utils/clipboard.amd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-nOSFakjs.amd"],(function(l,t,e){"use strict";if(typeof r>"u")var r=window.Vue;async function a(o,n=!1){let i=!1;return navigator.clipboard&&(await navigator.clipboard.writeText(o),i=!0,n&&e.Core.notice(e.useI18n().Common.Copied_to_clipboard+"","info")),i}async function u(o){let n=!1;e.isSafari()||(n=await a(o));const i='<a href="'+o+'" target="_blank">'+o+"</a>",c=e.useI18n().Common.Copied_to_clipboard+`:
|
|
2
2
|
`+i;if(n)e.Core.notice(c,"info");else{if(!navigator.clipboard){e.Core.notice(e.useI18n().Common.Cannot_copied_to_clipboard+`:
|
|
3
3
|
`+e.useI18n().Common.Copy_guest_link_manually+`
|
|
4
4
|
`+i,"error");return}const d={onclick:()=>a(o).then(()=>e.Core.notice(c,"info")),default:e.useI18n().Common.Copy+"",class:"copy"};await e.Core.notice(e.useI18n().Common.Guest_link_created+`
|
package/utils/clipboard.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as t, u as a, b as s } from "../.chunks/forms-
|
|
1
|
+
import { C as t, u as a, b as s } from "../.chunks/forms-CSwfPGPT.es.js";
|
|
2
2
|
async function r(o, e = !1) {
|
|
3
3
|
let i = !1;
|
|
4
4
|
return navigator.clipboard && (await navigator.clipboard.writeText(o), i = !0, e && t.notice(a().Common.Copied_to_clipboard + "", "info")), i;
|
package/utils/date.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-nOSFakjs.amd"],(function(n,e,t){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateToString=t.dateToString,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.genDateMoscow=t.genDateMoscow,e.genUserDate=t.genUserDate,e.getDayOfWeek=t.getDayOfWeek,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=date.amd.js.map
|
package/utils/date.d.ts
ADDED
package/utils/date.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { e as t, K as s, P as o, N as r, O as g, M as n, J as D, L as d } from "../.chunks/forms-CSwfPGPT.es.js";
|
|
2
2
|
export {
|
|
3
3
|
t as dateFormat,
|
|
4
4
|
s as dateToString,
|
package/utils/device.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-nOSFakjs.amd"],(function(a,e,i){"use strict";if(typeof l>"u")var l=window.Vue;e.get$scroll=i.get$scroll,e.getCommandKeyLabel=i.getCommandKeyLabel,e.getElsScroll=i.getElsScroll,e.getOS=i.getOS,e.getOSAsync=i.getOSAsync,e.getScrollTop=i.getScrollTop,e.isApp=i.isApp,e.isMacOS=i.isMacOS,e.isMobile=i.isMobile,e.isRetina=i.isRetina,e.isSafari=i.isSafari,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=device.amd.js.map
|
package/utils/device.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { z as e, x as l, A as t, B as i, D as o, y as g, v as r, w as S, t as c, s as p, b } from "../.chunks/forms-CSwfPGPT.es.js";
|
|
2
2
|
export {
|
|
3
3
|
e as get$scroll,
|
|
4
4
|
l as getCommandKeyLabel,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
t as getElsScroll,
|
|
6
|
+
i as getOS,
|
|
7
|
+
o as getOSAsync,
|
|
8
8
|
g as getScrollTop,
|
|
9
9
|
r as isApp,
|
|
10
10
|
S as isMacOS,
|
package/utils/dom.d.ts
ADDED
package/utils/image.d.ts
ADDED
package/utils/lodash.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-nOSFakjs.amd"],(function(u,e,n){"use strict";if(typeof i>"u")var i=window.Vue;e.cloneDeep=n.cloneDeep,e.debounce=n.debounce,e.memoize=n.memoize,e.merge=n.merge,e.throttle=n.throttle,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=lodash.amd.js.map
|
package/utils/lodash.js
CHANGED
package/utils/price.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-nOSFakjs.amd"],(function(a,t,i){"use strict";if(typeof n>"u")var n=window.Vue;const u=(c,e,o=i.Core.state.currency)=>{e=e??i.useI18nLang().value;let r=c.toLocaleString(e,{style:"currency",currency:o,maximumFractionDigits:2});return r=r.replace(",","."),r};t.genPrice=u,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=price.amd.js.map
|
package/utils/price.d.ts
ADDED
package/utils/price.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as a, a as o } from "../.chunks/forms-
|
|
1
|
+
import { C as a, a as o } from "../.chunks/forms-CSwfPGPT.es.js";
|
|
2
2
|
const i = (t, e, c = a.state.currency) => {
|
|
3
3
|
e = e ?? o().value;
|
|
4
4
|
let r = t.toLocaleString(e, { style: "currency", currency: c, maximumFractionDigits: 2 });
|
package/utils/route.d.ts
ADDED
package/utils/searchers.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-nOSFakjs.amd","../.chunks/core-Tti72-iZ.amd","vue","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-CZQq3w9t.amd"],(function(b,c,g,f,r,d){"use strict";if(typeof r>"u")var r=window.Vue;const s={0:"Yandex",20:"Yandex.com",21:"Yandex.com.tr",1:"Google",4:"YouTube",5:"Bing",7:"Seznam",8:"AppStore",9:"GooglePlay",101:"VK",102:"Facebook",103:"Twitter"},t=a=>{let e="";switch(typeof a=="string"&&(a=Number(a)),a){case 0:e="";break;case 20:case 21:e="";break;case 1:e="";break;case 2:e="";break;case 3:e="";break;case 4:e="";break;case 5:e="";break;case 6:e="";break;case 7:e="";break;case 8:e="";break;case 9:e="";break;case null:e="";break}return e},n=a=>{let e="";switch(typeof a=="string"&&(a=Number(a)),a%10){case 0:e="";break;case 1:e="";break;case 2:e="";break}return e},i=(a,e)=>{switch(typeof a=="string"&&(a=Number(a)),a*1){case 1:case 4:case 5:case 6:case 8:case 9:return e}return""},u=(a,e,k)=>{switch(e*1){case 0:switch(k*1){case 2:a=`"${a}"`;break;case 3:a=`"!${a}"`;break;case 5:a=`"[${a}]"`;break;case 6:a=`"[!${a}]"`;break}break;case 1:a=`[${a}]`;break}return a},o=(a,e)=>{switch(e===null&&(e=6),a){case 1:e=3;break;case 2:e=2;break;case 5:e>1&&(e=1);break;default:[1,2,3,5,6].includes(e)||(e=3)}return e};c.genVolumeLabel=u,c.getDeviceGIcon=n,c.getLangLabel=i,c.getSearcherGIcon=t,c.prepareVolumeType=o,c.searchersNames=s,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=searchers.amd.js.map
|
package/utils/searchers.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "../.chunks/forms-
|
|
2
|
-
import "../.chunks/core-
|
|
1
|
+
import "../.chunks/forms-CSwfPGPT.es.js";
|
|
2
|
+
import "../.chunks/core-DLXWfIR4.es.js";
|
|
3
3
|
import "vue";
|
|
4
|
-
import "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-DE8e63m1.es.js";
|
|
5
5
|
const k = {
|
|
6
6
|
0: "Yandex",
|
|
7
7
|
20: "Yandex.com",
|
package/utils/store.d.ts
ADDED