@topvisor/ui 1.1.0-addNativeDialog.10 → 1.1.0-addNativeDialog.12
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-DyAbOlfX.es.js → core-DwmZJeKo.es.js} +45 -45
- package/.chunks/{core-DyAbOlfX.es.js.map → core-DwmZJeKo.es.js.map} +1 -1
- package/.chunks/core-uFZ53eDz.amd.js +2 -0
- package/.chunks/{core-rNR04ITp.amd.js.map → core-uFZ53eDz.amd.js.map} +1 -1
- package/.chunks/{datepicker-U31BrqE_.es.js → datepicker-BiaXdEIn.es.js} +2 -2
- package/.chunks/{datepicker-U31BrqE_.es.js.map → datepicker-BiaXdEIn.es.js.map} +1 -1
- package/.chunks/{datepicker-DsKl-YZR.amd.js → datepicker-DUoArkDy.amd.js} +2 -2
- package/.chunks/{datepicker-DsKl-YZR.amd.js.map → datepicker-DUoArkDy.amd.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-D64IfJEs.amd.js → dialog_selectorRegions--uU_HPMU.amd.js} +2 -2
- package/.chunks/{dialog_selectorRegions-D64IfJEs.amd.js.map → dialog_selectorRegions--uU_HPMU.amd.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-BXNEJotg.es.js → dialog_selectorRegions-DKdrXyjJ.es.js} +4 -4
- package/.chunks/{dialog_selectorRegions-BXNEJotg.es.js.map → dialog_selectorRegions-DKdrXyjJ.es.js.map} +1 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-C7vi1i47.amd.js +2 -0
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-C7vi1i47.amd.js.map +1 -0
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DIVnPVQ4.es.js → dialogs.vue_vue_type_script_setup_true_lang-xvod3Gmp.es.js} +311 -307
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-xvod3Gmp.es.js.map +1 -0
- package/.chunks/{forms-DRhpgERJ.amd.js → forms-CgtkdwgA.amd.js} +3 -3
- package/.chunks/forms-CgtkdwgA.amd.js.map +1 -0
- package/.chunks/{forms-t2AEUjqg.es.js → forms-DarRVke_.es.js} +461 -467
- package/.chunks/forms-DarRVke_.es.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/lazy-BBcejshh.amd.js +2 -0
- package/.chunks/lazy-BBcejshh.amd.js.map +1 -0
- package/.chunks/lazy-gcvTGQlK.es.js +71 -0
- package/.chunks/lazy-gcvTGQlK.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-CT-EXxJj.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-CT-EXxJj.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-DzJ_pc-d.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-DzJ_pc-d.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-BLMYjYLV.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-BLMYjYLV.amd.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-COD_4iTy.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-COD_4iTy.es.js.map} +1 -1
- package/.chunks/{notice-DQ9qFyQ2.amd.js → notice-CPtAnc7p.amd.js} +2 -2
- package/.chunks/{notice-DQ9qFyQ2.amd.js.map → notice-CPtAnc7p.amd.js.map} +1 -1
- package/.chunks/{notice-4bdzRXtl.es.js → notice-fno9saBY.es.js} +2 -2
- package/.chunks/{notice-4bdzRXtl.es.js.map → notice-fno9saBY.es.js.map} +1 -1
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-BVgw26Vp.es.js → page.vue_vue_type_script_setup_true_lang-DRvRAOmG.es.js} +14 -14
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-BVgw26Vp.es.js.map → page.vue_vue_type_script_setup_true_lang-DRvRAOmG.es.js.map} +1 -1
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-DGHsC5Ii.amd.js → page.vue_vue_type_script_setup_true_lang-jdOhWtvA.amd.js} +2 -2
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-DGHsC5Ii.amd.js.map → page.vue_vue_type_script_setup_true_lang-jdOhWtvA.amd.js.map} +1 -1
- package/.chunks/{popup-DuraSW2f.es.js → popup-AG94kehM.es.js} +2 -2
- package/.chunks/{popup-DuraSW2f.es.js.map → popup-AG94kehM.es.js.map} +1 -1
- package/.chunks/{popup-IcMnYYXr.amd.js → popup-CtvJLWn3.amd.js} +2 -2
- package/.chunks/{popup-IcMnYYXr.amd.js.map → popup-CtvJLWn3.amd.js.map} +1 -1
- package/.chunks/{utils-BVONc_yb.amd.js → utils-BmI_WbPx.amd.js} +2 -2
- package/.chunks/{utils-BVONc_yb.amd.js.map → utils-BmI_WbPx.amd.js.map} +1 -1
- package/.chunks/{utils-BR_kFG05.es.js → utils-CjdLXxom.es.js} +2 -2
- package/.chunks/{utils-BR_kFG05.es.js.map → utils-CjdLXxom.es.js.map} +1 -1
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-BK-pTu3V.amd.js +2 -0
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-BK-pTu3V.amd.js.map +1 -0
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-xwjgBq1L.es.js +39 -0
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-xwjgBq1L.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 +117 -102
- package/api/index.js.map +1 -1
- package/assets/core.css +1 -1
- package/assets/forms.css +1 -1
- package/assets/formsExt.css +1 -1
- package/charts/charts.amd.js +1 -1
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.d.ts +2 -0
- package/charts/charts.js +11 -11
- 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 +331 -322
- 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 +5 -10
- 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/api/api/mocker/index.d.ts +9 -0
- package/src/api/api/tests/types.test-d.d.ts +1 -0
- package/{types → src}/api/api/types/api.d.ts +11 -6
- package/{types → src}/api/api/types/client/request.d.ts +6 -0
- package/{types → src}/api/api/types/field.d.ts +1 -1
- package/{types → src}/api/api/types/index.d.ts +1 -0
- package/src/api/api/types/mocker.d.ts +106 -0
- package/{types → src}/api/api/utils/common.d.ts +1 -1
- package/{types → src}/api/api/utils/filters.d.ts +1 -1
- package/{types → src}/api/api/utils/lazy.d.ts +10 -1
- package/src/components/charts/charts.d.ts +2 -0
- package/src/components/dialog/lib/types.d.ts +77 -0
- package/{types → src}/components/dialog/lib/utils.d.ts +8 -7
- package/{types → src}/components/dialog/lib/worker.d.ts +8 -4
- 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/formsExt/selector2/composables/useAPI.d.ts +18 -0
- package/{types → src}/components/formsExt/selector2/types.d.ts +15 -19
- 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-rNR04ITp.amd.js +0 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DIVnPVQ4.es.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-aLCfJKIO.amd.js +0 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-aLCfJKIO.amd.js.map +0 -1
- package/.chunks/forms-DRhpgERJ.amd.js.map +0 -1
- package/.chunks/forms-t2AEUjqg.es.js.map +0 -1
- package/.chunks/lazy-CiM2Ny-s.amd.js +0 -2
- package/.chunks/lazy-CiM2Ny-s.amd.js.map +0 -1
- package/.chunks/lazy-Crun7esL.es.js +0 -39
- package/.chunks/lazy-Crun7esL.es.js.map +0 -1
- package/types/api/additional.d.ts +0 -2
- package/types/api/api/tests/model.d.ts +0 -0
- package/types/api/api/tests/test.d.ts +0 -16
- 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/dialog/lib/types.d.ts +0 -44
- 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/formsExt/selector2/composables/useAPI.d.ts +0 -30
- 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/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/ext.d.ts +0 -0
- package/{types → src}/api/api/types/schema.d.ts +0 -0
- package/{types → src}/api/api/types/tv.d.ts +4 -4
- /package/{types → src}/api/api/types/utils.d.ts +0 -0
- /package/{types → src}/api/api/utils/field.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/utils.globalEvents.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/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/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.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":";;;;;;;;;AAQA,MAAAA,IAAA,CAAAC,GAAAC,MAGC,OAFA,OAAAD,CAAA,CAEA,IAAAC,CAAA,IAQDC,KAAA,CAAAF,GAAAG,MAAA;AAEC,MAAA,CAAAA,EAAA,IAAA;AAEA,QAAAC,IAAAL,EAAAC,GAAAG,EAAA,GAAA;AAEA,MAAA;AACC,UAAAE,IAAA,KAAA,MAAA,aAAA,QAAAD,CAAA,CAAA;AAEA,IAAA,OAAAC,KAAA,OAAAF,EAAAH,CAAA,MACCG,EAAAH,CAAA,IAAAK;AAAA,EACD,QAAA;AAEA,YAAA,KAAA,IAAA,MAAA,kBAAAD,CAAA,sBAAA,CAAA;AAAA,EAA+E;AAEjF,GAOAE,KAAA,CAAAN,GAAAG,MAAA;AAEC,MAAA,CAAAA,EAAA,IAAA;AAEA,QAAAC,IAAAL,EAAAC,GAAAG,EAAA,GAAA;AAEA,EAAAI,EAAA,MAAAJ,EAAAH,CAAA,GAAA,MAAA;AACC,iBAAA,QAAAI,GAAA,KAAA,UAAAD,EAAAH,CAAA,CAAA,CAAA;AAAA,EAAsE,GAAA,EAAA,WAAA,GAAA,CAAA;AAExE,GAEAQ,IAAA;AAAA,EAAe,iBAAAN;AAAA,EACd,qBAAAI;AAED,GC/CAG,IAAA,oBAAA,IAAA;AAEA,iBAAA,YAAA,CAAAC,MAAA;AACC,EAAAD,EAAA,QAAA,CAAAE,MAAAA,EAAAD,CAAA,CAAA;AACD,CAAA;AAEO,MAAAE,IAAA,OAAA,GAKAC,KAAA,CAAAC,GAAAC,MAAA;AACN,QAAAZ,IAAAa,GAAAJ,GAAA,MAAA;AACC,UAAAK,IAAAC,EAAA,MAAAJ,EAAA,mBAAAK,EAAA,MAAA,QAAA,GACAC,IAAAF,EAAA,MAAAJ,EAAA,OAAA,GACAO,IAAAC,EAAA,EAAA,GAEAC,IAAAD,EAAA,MAAA,GACAE,IAAAF,EAAA,EAAA;AAEA,WAAA;AAAA,MAAO,iBAAAL;AAAA,MACN,SAAAG;AAAA,MACA,SAAAC;AAAA,MACA,gBAAAN;AAAA,MACgB,WAAAQ;AAAA,MAChB,YAAAC;AAAA,IACA;AAAA,EACD,GAAAV,EAAA,OAAA;AAGD,MAAAA,EAAA,aAAA;AACC,UAAAd,IAAA;AAEA,IAAAQ,EAAA,gBAAAR,GAAAG,CAAA,GACAK,EAAA,oBAAAR,GAAAG,CAAA;AAAA,EAAsD;AAGvD,MAAAA,EAAA,KAAA;AACC,UAAAQ,IAAA,CAAAc,MAAA;AACC,MAAAV,EAAA,QAAAW,EAAAvB,EAAA,GAAA;AAAA,IAAgC;AAGjC,IAAAM,EAAA,IAAAE,CAAA;AAAA,EAAsC;AAGvC,SAAAR;AACD,GAKOwB,IAAA,MAAAC,GAAAhB,CAAA;;;;;;;;;;;;;;ACpDP,UAAAE,IAAAe,GAKA1B,IAAAwB,EAAA,GAEAG,IAAAZ,EAAA,MAECJ,EAAA,QAAAX,EAAA,MACC4B,GAAA5B,EAAA,KAAAW,EAAA,IAAA,IAGDA,EAAA,IAAa,GAGdkB,IAAAd,EAAA,MACCf,EAAA,kBACC8B,IAGDH,IAAA,MAAA,QAAoB,GAMrBI,IAAA,CAAAxB,MAAA;AAEC,MAAA,CAAAI,EAAA,QAAAgB,EAAA,SACCpB,EAAA,eAAA,GAGDI,EAAA,SACCX,EAAA,iBAAAW,EAAA;AAAA,IACD;sBAKAqB,EAAA,GAAAC,EAAAC,EAAAL,EAAA,KAAA,GAAA;AAAA,MACa,QAAA;AAAA,MACL,OAAAM,EAAA;AAAA,QACD,yBAAA,CAAAC,EAAApC,CAAA,EAAA;AAAA,QAAyC,cAAAqC,EAAA,QAAAD,EAAApC,CAAA,EAAA,mBAAAqC,EAAA;AAAA,QAAqEC,gBAAAA,EAAAA;AAAAA,QAA2BC,oBAAAA;AAAAA;;MAMxI,iBAAAF,EAAA,QAAA;AAAA,MACiB,UAAAA,EAAA,YAAA;AAAA,MACD,SAAAN;AAAA,IACtB,GAAA;AAAA;QAEwDK,EAAApC,CAAA,EAAA,kBAAAwC,EAAAH,EAAA,QAAA,WAAA,EAAA,KAAA,EAAA,CAAA,IAAAA,EAAA,OAAA,WAAA,CAAAD,EAAApC,CAAA,EAAA,WAAAgC,EAAA,GAAAS,EAAA,QAAAC,IAAA;AAAA,UAOlDF,EAAAH,EAAA,QAAA,SAAA;AAAA,QADsB,CAAA,KAAAM,EAAA,IAAA,EAAA;AAAA;;;;IC3DxBC,IAAA,CAAAxB,OACNA,KAAA,gBAAAA,EAAA,UAAA,2BAAA,EAAAA,KAAA,QAAAA,EAAA,kBAQMyB,KAAA,OAAAzB,GAAA0B,MAAA;AACN,GAAA1B,KAAA,gBAAAA,EAAA,UAAA,4BACAA,KAAA,QAAAA,EAAA,oBAEAA,EAAA,cAAA,GAEA,MAAA2B,GAAA,MACCD,EAAA,KAAAF,EAAAxB,CAAA,GAAuD,GAAA;AAEzD;;;;;;;;;;;;;;ACbA,UAAA4B,IAAAC,EAAAvB,GAAA,WAAA,GAEA1B,IAAAwB,EAAA,GAEA0B,IAAAC,EAAA,GAGAC,IAAA,oBAAA,IAAA,GAGAC,IAAA,MAAA;AACC,UAAA,CAAAH,EAAA,QAAA;AAEA,YAAA9B,IAAA8B,EAAA,QAAA,CAAA,CAAA,EAAA,KAAA,CAAAI,MAAAA,EAAA,QAAA,OAAA;AACA,MAAAlC,KAEAmC,EAAAnC,EAAA,QAAA;AAAA,IAA6C,GAI9CmC,IAAA,CAAAC,MAAA;AACC,MAAAA,EAAA,QAAA,CAAAC,MAAA;;AAEC,YAAAA,EAAA,KAAA,UAAAA,EAAA,KAAA,WAAAC,EAAA,OAAA;AAGA,YAAA,CAAAD,EAAA,KAAA,UAAA,OAAAA,EAAA,YAAA,UAAA;AACC,UAAAF,EAAAE,EAAA,QAAA;AAEA;AAAA,QAAA;AAGD,YAAA,GAAAE,IAAAF,EAAA,UAAA,QAAAE,EAAA,UAAAC,IAAAH,EAAA,UAAA,QAAAG,EAAA,SAAA;AAEA,cAAAC,IAAA;AAAA,UAA2B,SAAAC,KAAAC,IAAAN,EAAA,UAAA,YAAA,gBAAAK,EAAA,KAAAC,GAAA,GAAA,UAAA,KAAA;AAAA,UAC4C,MAAAN,EAAA,MAAA;AAAA,UAC7C,WAAAA,EAAA,MAAA,YAAAO,EAAAP,EAAA,MAAA,SAAA,IAAAC,EAAA,MAAA,UAAA;AAAA,UAC0F,YAAAD,EAAA,MAAA,cAAAC,EAAA,MAAA,WAAA;AAAA,QACpC;AAGhF,QAAAN,EAAA,IAAAK,EAAA,MAAA,MAAAI,CAAA;AAAA,MAAoD,CAAA;AAAA,IACpD,GASFI,IAAA9C,EAAA,IAAA;AAKA,QAAA+C,IAAA;AAOA,IAAA9D;AAAA,MAAA,MAAAJ,EAAA;AAAA,MACa,YAAA;AAEX,cAAAmE,IAAA,EAAAD;AAMA,YAJAd,EAAA,SAAA,KACCC,EAAA,GAGDD,EAAA,SAAA,GAAA;AACC,UAAApD,EAAA,iBAAA;AAEA;AAAA,QAAA;AAMD,YAHAiE,EAAA,QAAAb,EAAA,IAAApD,EAAA,cAAA,KAAA,MAGA,CAAAiE,EAAA,SAAAjE,EAAA,KAAA;AACC,gBAAAoE,IAAA7C,EAAAvB,EAAA,GAAA;AAIA,cAFAiE,EAAA,QAAAb,EAAA,IAAAgB,CAAA,KAAA,MAEAH,EAAA,OAAA;AACC,YAAAjE,EAAA,iBAAAoE;AAEA;AAAA,UAAA;AAAA,QACD;AAID,YAAA,CAAAH,EAAA,OAAA;AACC,UAAAjE,EAAA,iBAAAoD,EAAA,KAAA,EAAA,KAAA,EAAA;AAEA;AAAA,QAAA;AAID,YAAAa,EAAA,MAAA,cAAAjE,EAAA,WAAA;AACC,UAAAgD,EAAA,QAAA;AAEA;AAAA,QAAA;AAgBD,QAbAhD,EAAA,OAAAqE,GAAArE,EAAA,KAAAA,EAAA,gBAAA,EAAA,GAGAgD,EAAA,QAAA,IAOA,MAAAH,GAAAoB,EAAA,MAAA,WAAA,MAAAE,MAAAD,CAAA,GAGAC,MAAAD,MAIAlE,EAAA,aAAAiE,EAAA,MAAA,YACAjE,EAAA,YAAAiE,EAAA,MAAA,WAEAA,EAAA,SAAA,CAAAjE,EAAA,aACC,QAAA,KAAA,qBAAAA,EAAA,cAAA,wDAAAA,EAAA,cAAA,GAAA;AAAA,MACD;AAAA,MACD,EAAA,WAAA,GAAA;AAAA,IACkB;AAGnB,UAAAsE,IAAAnD,EAAA;AACA,QAAAoD;AAEA,WAAAC,EAAA,MAAA;AACC,MAAAD,IAAA,IAAA,eAAA,MAAA;AACC,QAAAD,EAAA,MAAA,cAAA,MAAA,YAAA,sCAAAA,EAAA,MAAA,eAAA,IAAA;AAAA,MAAiH,CAAA,GAGlHC,EAAA,QAAAD,EAAA,KAAA;AAAA,IAAkC,CAAA,GAGnCG,EAAA,MAAA;AACC,MAAAF,EAAA,WAAA;AAAA,IAA0B,CAAA;MAwDpB,SAAA;AAAA,MAlDD,KAAAD;AAAA,MAAA,OAAAnC,EAAA;AAAA,QACE,qBAAA;AAAA;QAA2E,+BAAAC,EAAApC,CAAA,EAAA;AAAA,QAAyD,2BAAAoC,EAAApC,CAAA,EAAA,WAAA,CAAAoC,EAAApC,CAAA,EAAA;AAAA,MAAuE,CAAA;AAAA;;QA4BtM,QAAA0E,EAAA,MAAA;AAAA,UANHC,EAAA,OAAAC,IAAA;AAAA,YAAAX,EAAA,SAAAjC,EAAA,GAAAS,EAAA,OAAA;AAAA,cAHC,KAAA;AAAA;cANC,iBAAAwB,EAAA,MAAA;AAAA,YACyB,GAAA;AAAA;YAGP,GAAA,GAAAY,EAAA,KAAAlC,EAAA,IAAA,EAAA;AAAA;cAIwC,OAAA;AAAA,cAAtD,iBAAA;AAAA,YAA4C,GAAA,MAAA,EAAA;AAAA;;;UAK3CH,EAAAH,EAAA,QAAA,SAAA;AAAA,QAAA,CAAA;AAAA;;QAsBJsC,EAAA,OAAAG,IAAA;AAAA,UAdJtC,EAAAH,EAAA,QAAA,SAAA;AAAA,QADQ,CAAA;AAAA;UAcRA,EAAA,eAAAL,EAAA,GAAAC,EAAAyB,GAAA;AAAA,YADc,KAAA;AAAA;YAJE,SAAAqB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA5C,EAAApC,CAAA,EAAA,UAAA,CAAAoC,EAAApC,CAAA,EAAA;AAAA,UACW,GAAA;AAAA;cAEMiF,EAAAC,EAAA9C,EAAApC,CAAA,EAAA,UAAA,KAAA,UAAA,GAAA,CAAA;AAAA,YAArB,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;ACzMrB,UAAAW,IAAAe,GAKAd,IAAAqC,EAAAvB,GAAA,YAAA,GAEA1B,IAAAU,GAAAC,GAAAC,CAAA,GAEAuE,IAAA,KAAA,OAAA;AAEA,IAAAxE,EAAA,WAAAK,EAAA,MAAA,0BAAA,IAAAmE,GAAA,wBAAA,GAEAV,EAAA,MAAA;AACC,MAAA9D,EAAA,WAAAK,EAAA,MAAA,0BAAA,OAAAmE,CAAA,GAEAnF,EAAA,OAAAoF,GAAApF,EAAA,KAAAA,EAAA,gBAAA,EAAA;AAAA,IAA4D,CAAA;AAG7D,UAAAqF,IAAAlE,EAAA,GACA6B,IAAA7B,EAAA,EAAA;AAEA,WAAAf,EAAA,CAAAiF,GAAA,MAAArF,EAAA,SAAA,GAAA,MAAA;AACC,MAAAgD,EAAA,QAAAJ,EAAA5C,EAAA,SAAA;AAAA,IAAyD,GAAA,EAAA,WAAA,GAAA,CAAA;MAoCnD,OAAAmC,EAAA;AAAA,QA9BC,gBAAA;AAAA;QAA8D,wBAAAC,EAAApC,CAAA,EAAA;AAAA,MAA0C,CAAA;AAAA;;QAY/F,aAAAqC,EAAA;AAAA,QALAiD,WAAAA,EAAAA;AAAAA,QACK,sBAAAP,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAhC,EAAA,QAAAgC;AAAA,MAAS,GAAA;AAAA;UAGHxC,EAAAH,EAAA,QAAA,MAAA;AAAA,QAAA,CAAA;AAAA;;;QAkBpB,OAAAF,EAAA;AAAA,UAdC,yBAAA;AAAA;UAA8E,sCAAA,CAAAC,EAAApC,CAAA,EAAA;AAAA,QAA4D,CAAA;AAAA;;;WAanIgC,EAAA,GAAAC,EAAAC,EAAAE,EAAApC,CAAA,EAAA,SAAA,GAAA;AAAA,YAFS,SAAA;AAAA,YADhB,KAAAqF;AAAA,UAAA,GAAA,MAAA,GAAA;AAAA;;;;aC3DHE,KAAA,EAAA,OAAA,6BAAA;;AAAL,SAAAvD,EAAA,GAAAS,EAAA,OAAA8C,EAAA;;;;;;;;ACGD,UAAAvF,IAAAwB,EAAA;qBAKQY,EAAApC,CAAA,EAAA,mBAAAgC,EAAA,GAAAC,EAAAG,EAAAN,CAAA,GAAA;AAAA,MAIY,KAAA;AAAA;IAHb,GAAA;AAAA;QAEQU,EAAAH,EAAA,QAAA,SAAA;AAAA,MAAA,CAAA;AAAA;;MAaR,KAAA;AAAA;QANC,0BAAA;AAAA;MAA6EmD,CAAAA;AAAAA;;IAKtE,GAAA,CAAA;AAAA;ICtBRC,KAAAC,IACAC,KAAAjC,GACAkC,KAAAC;"}
|
|
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-CgtkdwgA.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-DarRVke_.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-CgtkdwgA.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-DarRVke_.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-CgtkdwgA.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-DarRVke_.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-CgtkdwgA.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-CgtkdwgA.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-DarRVke_.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-CgtkdwgA.amd","../.chunks/core-uFZ53eDz.amd","vue","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-C7vi1i47.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-DarRVke_.es.js";
|
|
2
|
+
import "../.chunks/core-DwmZJeKo.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-xvod3Gmp.es.js";
|
|
5
5
|
const k = {
|
|
6
6
|
0: "Yandex",
|
|
7
7
|
20: "Yandex.com",
|
package/utils/store.d.ts
ADDED
package/utils/string.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","./check.amd","../.chunks/forms-
|
|
1
|
+
define(["require","exports","./check.amd","../.chunks/forms-CgtkdwgA.amd"],(function(N,c,h,u){"use strict";if(typeof p>"u")var p=window.Vue;const i=new RegExp(`^[^a-zа-я0-9_%#!?.:'"«»[\\](){} \\r\\n\\t<>&/+-]`,"i"),s=e=>{var a;const l=(a=e==null?void 0:e[0])==null?void 0:a.match(i);return{icon:l?e[0]:null,content:l?e.substring(1):e}},f=e=>{e+="";let l=0;if(!e.length)return l;for(let a=0;a<e.length;a++){const n=e.charCodeAt(a);l=(l<<5)-l+n,l=l&l}return l<0&&(l*=-1),l},d=e=>/^\w+:\/\/([\w-]+\.)+[\w-]+(:\d+)?(\/|$)/.test(e),g=e=>{let l=e+"";l=l.replace("-","–");let a=l.split("."),n=a[0],o=a.length>1?"."+a[1]:"";if(n.replace(/[+–]/,"").length<=4)return l;const r=/(\d+)(\d{3})/;for(;r.test(n);)n=n.replace(r,"$1 $2");return n+o},m=e=>e===void 0?"":e.replace(/\r\n|\r|\n/g,"<br>"),w=e=>typeof e=="string"&&e.trim()!==""&&!isNaN(Number(e)),C=(e,l=2,a=1e3,n="")=>{if(w(e))e=Number(e);else return String(e);const o=Math.pow(10,l);let r;return Math.abs(e)>Math.pow(a,3)?r=Math.round(e/Math.pow(a,3)*o)/o+" <small>G"+n+"</small>":Math.abs(e)>Math.pow(a,2)?r=Math.round(e/Math.pow(a,2)*o)/o+" <small>M"+n+"</small>":Math.abs(e)>a?r=Math.round(e/a*o)/o+" <small>K"+n+"</small>":r=Math.round(e*o)/o+"",r=r.replace(/^(-?\d+)(\d{3})/,"$1 $2"),r},M=(e,l,a=1)=>{if(e==null)return"";if(e+="",l==null||e.length<=l)return e;if(a===0)e=e.substr(e.length-l,l),e="..."+e;else if(a===1){const n=e.substr(0,l/2),o=e.substr(e.length-l/2,Math.ceil(l/2));e=n+"..."+o}else a===2&&(e=e.substr(0,l),e=e+"...");return e},b=(e,l,a,n)=>{if(u.useI18nLang().value==="en")return e===1?a:l;const o=e%100,r=e%10;return o>=5&&o<=20||r===0?l:r===1?a:r>=2&&r<=4?n:r>=5&&r<=9?l:n},E=e=>{if(u.useI18nLang().value!="ru"||e=="")return e;const l=e.split(" ");return $.map(l,function(a,n){a=a+"а",a=a.replace("оа","о"),a=a.replace("аяа","ой"),a=a.replace("шийа","шого"),a=a.replace("ыйа","ого"),a=a.replace("йа","я"),a=a.replace("ьа","я"),a=a.replace("яа","и"),a=a.replace("оваа","овой"),a=a.replace("аа","ы"),a=a.replace("кия","кого"),a=a.replace("каи","кой"),l[n]=a}),e=l.join(" "),e},R=e=>{const l={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"j",з:"z",и:"i",й:"i",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"h",ц:"c",ч:"ch",ш:"sh",щ:"shch",ъ:"",ы:"y",ь:"",э:"e",ю:"u",я:"ya"},a=e.split(" ");return $.map(a,function(n,o){const r=[];for(let t=0;t<n.length;++t)r.push(l[n[t]]||l[n[t].toLowerCase()]==null&&n[t]||l[n[t].toLowerCase()].replace(/^(.)/,function(I){return I.toUpperCase()}));a[o]=r.join("")}),e=a.join(" "),e},k=e=>(e=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),e),A=(e,l)=>{let a=null;switch(l.operator){case"CONTAINS":case"REGEXP":try{let n=l.values[0];l.operator!="REGEXP"&&(n=n.replace(/([()\[\]])/g,"\\$1")),a=new RegExp("("+n+")","gi")}catch{return e}break}return e=e.replace(a,'<b class="found">$1</b>'),e},L=e=>{var l;return(l=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:l.map(a=>a.toLowerCase()).join("_")},S=e=>`/controller/file/?src=${"/cloud/common/flags/"+e.toUpperCase()+".svg"}`,y=e=>{const l=h.getDomainRegexp(),a="(([\\/?\\w&=%+#;:-]*(\\.\\w+)?))*",n=new RegExp(`(^|[\\s>(),])([a-z0-9а-яё_.]+@${l}${a})`,"gui");e=e.replace(n,'$1<a href="mailto:$2" target="_blank" rel="noopener">↑[$2]↓</a>');const o=new RegExp(`(^|[\\s>(),])(https?://)?(${l}${a})`,"gui");return e=e.replace(o,'$1<a href="√$2$3" target="_blank" rel="nofollow noopener">$2$3</a>'),e=e.replaceAll("√http","http"),e=e.replaceAll("√","http://"),e=e.replaceAll(/(↑\[|]↓)/g,""),e},v=e=>e.charAt(0).toUpperCase()+e.slice(1),T=(e=20)=>{const l="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";let a="";for(let n=0;n<e;n++)a+=l[Math.floor(Math.random()*l.length)];return a};c.REGEXP_START_SYMBOL_ICON=i,c.addCommasWhite=g,c.addLinkTags=y,c.camelToSnakeCase=L,c.ellipsis=M,c.extractIconAndContent=s,c.genFlagLinkByCountryCode=S,c.genIntHash=f,c.getRandomHash=T,c.highlightHtml=A,c.htmlspecialchars=k,c.isUrl=d,c.nl2br=m,c.numberEnding=b,c.numberWithWord=C,c.rusToLatin=R,c.toCapitalize=v,c.toRoditPadej=E,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=string.amd.js.map
|
package/utils/string.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getDomainRegexp as u } from "./check.js";
|
|
2
|
-
import { a as n } from "../.chunks/forms-
|
|
2
|
+
import { a as n } from "../.chunks/forms-DarRVke_.es.js";
|
|
3
3
|
const s = new RegExp(`^[^a-zа-я0-9_%#!?.:'"«»[\\](){} \\r\\n\\t<>&/+-]`, "i"), g = (e) => {
|
|
4
4
|
var a;
|
|
5
5
|
const l = (a = e == null ? void 0 : e[0]) == null ? void 0 : a.match(s);
|
package/utils/url.d.ts
ADDED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
define(["require","exports","vue","./forms-DRhpgERJ.amd","../popup/worker.amd","./dialogs.vue_vue_type_script_setup_true_lang-aLCfJKIO.amd","../utils/dom.amd"],(function(r,V,w,i,l,_,S){"use strict";if(typeof w>"u")var w=window.Vue;class I{static isInited=!1;static init(){this.isInited||(this.isInited=!0,document.addEventListener("mouseover",e=>{var o;!(e.target instanceof HTMLElement)||!((o=e.target.dataset)!=null&&o.topPopupOpenByHover)||e.target.click()}),document.addEventListener("scroll",()=>{i.Core.state.isMobile||i.Core.state.isMobileUA||l.TopPopupWorker.getAll().forEach(e=>l.TopPopupWorker.close(e))}),i.Events.addOnReize(e=>{i.Core.state.isMobile&&e.topEvent.widthDiff&&l.TopPopupWorker.getAll().forEach(o=>l.TopPopupWorker.close(o))}),document.addEventListener("click",this.onclick,{capture:!0}))}static async onclick(e){var n,s,c,a,O;if(!(e.target instanceof HTMLElement)||e.target.dataset.topPopupDisabled)return;let o;switch(!0){case!!((n=e.target.dataset)!=null&&n.topPopup):o=e.target;break;case!!((s=e.target.parentElement)!=null&&s.dataset.topPopup):o=e.target.parentElement;break;case!!((a=(c=e.target.parentElement)==null?void 0:c.parentElement)!=null&&a.dataset.topPopup):o=(O=e.target.parentElement)==null?void 0:O.parentElement;break}o&&(o.dataset.topPopupDisabled||o.dataset.topPopupOpened||(e.preventDefault(),await l.TopPopupWorker.openByOpener(o)))}}let g;const R={mounted:async(t,e)=>{g||(g=(await new Promise((c,a)=>r(["../utils/dom.amd"],c,a))).storage);const o=e.arg,n=e.value;g(t,o,n)}};let h,u=[],b;const M=async()=>{const{isVisible:t}=await new Promise((o,n)=>r(["../utils/dom.amd"],o,n));if(u=u.filter(t),!u.length)return;u[0].focus(),u=[]},C=async t=>{h||(h=await new Promise((e,o)=>r(["../utils/lodash.amd"],e,o))),b||(b=h.debounce(M,30)),u.push(t),b()},x={mounted:function(t,e){t.__TOP_V_FOCUS_VALUE=e.value??!0,(e.value??!0)&&C(t)},updated:function(t,e){e.modifiers.onupdate&&t.__TOP_V_FOCUS_VALUE!==(e.value??!0)&&(t.__TOP_V_FOCUS_VALUE=e.value??!0,(e.value??!0)&&C(t))}};let v,E;const k=t=>(typeof t=="boolean"||(t?t={...t}:t={},t.behavior??="smooth",t.block??="nearest",t.inline??="nearest"),t);let f,P;const H=async()=>{if(!f)return;const t=await y(f);t.isVisible&&f.scrollIntoView(t.scrollIntoViewOptions)},A=async t=>{E||(E=await new Promise((e,o)=>r(["../utils/lodash.amd"],e,o))),P||(P=E.debounce(H,30)),f=t,P()},y=async(t,e)=>{v||(v=await new Promise((n,s)=>r(["../utils/dom.amd"],n,s)));let o=v.storage(t,"v-top-scrollIntoView");return o||(o={isVisible:S.isVisible(t),scrollIntoViewOptions:k(e)},v.storage(t,"v-top-scrollIntoView",o)),o},W={async mounted(t,e){await y(t,e.value),e.modifiers.immediate&&A(t)},async updated(t,e){const o=await y(t,e.value);o.scrollIntoViewOptions=k(e.value);const n=S.isVisible(t);n&&o.isVisible!==n&&A(t),o.isVisible=n}};let d;const $={async mounted(t){d||(d=await new Promise((e,o)=>r(["../utils/scroll.amd"],e,o))),d.connectScrollShadow(t)},async unmounted(t){d||(d=await new Promise((e,o)=>r(["../utils/scroll.amd"],e,o))),d.unconnectScrollShadow(t)}};let p;const N={mounted(t,e,o){const n=e.value||"top-sticky";p=new IntersectionObserver(s=>{let c=s[0].intersectionRatio<1;c&&e.modifiers.bottom&&s[0].intersectionRect.y===0&&(c=!1),t.classList.toggle(n,c)},{threshold:[1]}),p.observe(t)},unmounted(t,e,o){p==null||p.disconnect()}};let D=!1,m;const T=new Map,F=(t,e)=>{const{distance:o,percent:n}=t.directiveSwipUpOptions,s=t.getBoundingClientRect().top,c=e*n/100/o,a=(e-s)/c;a<=o?t.style.transform=`translateY(${o-a}px)`:t.style.transform="translateY(0px)"},B=t=>{let e=window.innerHeight;window.addEventListener("scroll",()=>{T.forEach(o=>F(o,e))},{passive:!0}),m=new IntersectionObserver(o=>{e=window.innerHeight,o.forEach(n=>{const s=n.target;if(n.intersectionRatio<.1?T.delete(s):T.set(s,s),n.intersectionRatio===0){const{distance:c}=s.directiveSwipUpOptions;s.style.transform=`translateY(${c}px)`}})},{threshold:.1})},Y={mounted(t,e,o){var n,s;i.Core.state.isMobileUA||(t.directiveSwipUpOptions={distance:((n=e.value)==null?void 0:n.distance)??100,percent:((s=e.value)==null?void 0:s.percent)??30},D||(B(),D=!0),m.observe(t))},unmounted(t,e,o){T.delete(t),m==null||m.unobserve(t)}},U=t=>{var e,o;if(!((o=(e=i.Core.$)==null?void 0:e.ui)!=null&&o.tooltip)){console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");return}return i.Core.$(t)},L=(t,e)=>{var n;const o=t.value??{};return o.content??=(n=e.props)==null?void 0:n.title,o.content=String(o.content).replace(/\r\n|\r|\n/g,"<br>"),o.position??={my:"bottom-18px",at:"top center"},o},j={mounted(t,e,o){var n;(n=U(t))==null||n.tooltip(L(e,o))},updated(t,e,o,n){var a;const s=L(e,o),c=(a=U(t))==null?void 0:a.tooltip("instance");c&&(c.options={...c.options,...s})},unmounted(t,e,o){var n;(n=U(t))==null||n.tooltip("destroy")}},z=w.defineAsyncComponent(()=>new Promise((t,e)=>r(["./notice-DQ9qFyQ2.amd"],t,e)));window.vd=console.log;const G={install:(t,e)=>{t.config.globalProperties.$core=i.Core,t.config.globalProperties.$vd=console.log;for(const o in e)i.Core.state[o]=e[o];e.widthForMobile&&(i.Core.widthForMobile=e.widthForMobile),e.themeName&&(i.Core.themeName=e.themeName),i.Core._setState(),e.topPopupOptions&&(l.TopPopupWorker.options=e.topPopupOptions),I.init(),_.TopDialogWorker.init(e.topDialogOptions),t.directive("top-data",R),t.directive("top-focus",x),t.directive("top-scroll-into-view",W),t.directive("top-scroll-shadow",$),t.directive("top-sticky",N),t.directive("top-swim-up",Y),t.directive("top-tooltip",j),t.component("TopAvatar",i.TopAvatar),t.component("TopButton",i.TopButton),t.component("TopCheckbox",i.TopCheckbox),t.component("TopControlLabel",i.TopControlLabel),t.component("TopHint",i.TopHint),t.component("TopInput",i.TopInput),t.component("TopInputDate",i.TopInputDate),t.component("TopInputRange",i.TopInputRange),t.component("TopLoadbar",i.TopLoadbar),t.component("TopRadio",i.TopRadio),t.component("TopSelect",i.TopSelect),t.component("TopSwitcher",i.TopSwitcher),t.component("TopTextarea",i.TopTextarea),t.component("TopNotice",z),t.component("TopDialogs",_._sfc_main)}};V.core=G}));
|
|
2
|
-
//# sourceMappingURL=core-rNR04ITp.amd.js.map
|