@topvisor/ui 1.3.5-popupFromInput.0 → 1.4.0-TopGroupSelector.11
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-BL-38XF7.es.js +196 -0
- package/.chunks/core-BL-38XF7.es.js.map +1 -0
- package/.chunks/core-BsPx05H9.amd.js +2 -0
- package/.chunks/core-BsPx05H9.amd.js.map +1 -0
- package/.chunks/{datepicker-Bq_z2paN.amd.js → datepicker-3coUsFW2.amd.js} +2 -2
- package/.chunks/{datepicker-Bq_z2paN.amd.js.map → datepicker-3coUsFW2.amd.js.map} +1 -1
- package/.chunks/{datepicker-CGGp0VnN.es.js → datepicker-D1Hw3a3o.es.js} +14 -17
- package/.chunks/{datepicker-CGGp0VnN.es.js.map → datepicker-D1Hw3a3o.es.js.map} +1 -1
- package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js +180 -0
- package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js.map +1 -0
- package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js +2 -0
- package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js.map +1 -0
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DCVIoEeY.es.js → dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js} +111 -112
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DCVIoEeY.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js.map} +1 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js +2 -0
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-Bf0wXalT.amd.js.map → dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js.map} +1 -1
- package/.chunks/forms-BseC3Ftz.es.js +2035 -0
- package/.chunks/{forms-BhbgRJ5I.es.js.map → forms-BseC3Ftz.es.js.map} +1 -1
- package/.chunks/forms-CUSCBQu3.amd.js +3 -0
- package/.chunks/{forms-CNcrvkYD.amd.js.map → forms-CUSCBQu3.amd.js.map} +1 -1
- package/.chunks/index-DLUtoTUg.amd.js +2 -0
- package/.chunks/index-DLUtoTUg.amd.js.map +1 -0
- package/.chunks/index-DkQWJkMc.es.js +54 -0
- package/.chunks/index-DkQWJkMc.es.js.map +1 -0
- package/.chunks/notice-Cl3ZgiHm.es.js +191 -0
- package/.chunks/{notice-CpPhDTUb.es.js.map → notice-Cl3ZgiHm.es.js.map} +1 -1
- package/.chunks/notice-DwjipV21.amd.js +4 -0
- package/.chunks/{notice-BpLsm6Zh.amd.js.map → notice-DwjipV21.amd.js.map} +1 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js +2 -0
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-B-1LEQAz.amd.js.map → page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js.map} +1 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js +139 -0
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-9abPBMpd.es.js.map → page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js.map} +1 -1
- package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js +496 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js.map +1 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js +2 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js.map +1 -0
- package/.chunks/popup-DRuyYFGB.amd.js +2 -0
- package/.chunks/popup-DRuyYFGB.amd.js.map +1 -0
- package/.chunks/popup-Jw_Yyg3U.es.js +470 -0
- package/.chunks/popup-Jw_Yyg3U.es.js.map +1 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js +209 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js.map +1 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js +2 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js.map +1 -0
- package/.chunks/utils-CzHUG_xz.amd.js +2 -0
- package/.chunks/{utils-5uxIj2CI.amd.js.map → utils-CzHUG_xz.amd.js.map} +1 -1
- package/.chunks/utils-D9nYQabE.amd.js +2 -0
- package/.chunks/{utils-Bg_su8b-.amd.js.map → utils-D9nYQabE.amd.js.map} +1 -1
- package/.chunks/{utils-D58EUoHa.es.js → utils-Q69SXlnV.es.js} +192 -208
- package/.chunks/{utils-D58EUoHa.es.js.map → utils-Q69SXlnV.es.js.map} +1 -1
- package/.chunks/{utils-UBgfsQ8v.es.js → utils-YrUExsH7.es.js} +23 -24
- package/.chunks/{utils-UBgfsQ8v.es.js.map → utils-YrUExsH7.es.js.map} +1 -1
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CSD2uMSW.es.js → widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js} +2 -2
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CSD2uMSW.es.js.map → widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js.map} +1 -1
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-D6SVtg2Q.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js} +2 -2
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-D6SVtg2Q.amd.js.map → widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js.map} +1 -1
- package/api/index.amd.js +1 -1
- package/api/index.amd.js.map +1 -1
- package/api/index.js +138 -133
- package/api/index.js.map +1 -1
- package/assets/dialog_regionSelectorRegions.css +1 -0
- package/assets/forms.css +1 -1
- package/assets/policy.css +1 -0
- package/assets/popupHint.css +1 -1
- package/assets/project.css +1 -1
- package/charts/charts.amd.js +1 -1
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.js +80 -80
- package/charts/charts.js.map +1 -1
- package/core/app.amd.js +1 -1
- package/core/app.amd.js.map +1 -1
- package/core/app.js +93 -96
- package/core/app.js.map +1 -1
- package/dialog/dialog.amd.js +1 -1
- package/dialog/dialog.amd.js.map +1 -1
- package/dialog/dialog.js +13 -13
- package/dialog/dialog.js.map +1 -1
- package/extra/extra.amd.js +1 -1
- package/extra/extra.amd.js.map +1 -1
- package/extra/extra.js +20 -23
- package/extra/extra.js.map +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +5 -5
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +185 -534
- package/formsExt/formsExt.js.map +1 -1
- package/layout/layout.amd.js +1 -1
- package/layout/layout.js +6 -6
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.js +43 -46
- package/popup/popup.js.map +1 -1
- package/popup/worker.amd.js +1 -1
- package/popup/worker.amd.js.map +1 -1
- package/popup/worker.js +11 -9
- package/popup/worker.js.map +1 -1
- package/project/project.amd.js +1 -1
- package/project/project.amd.js.map +1 -1
- package/project/project.js +848 -579
- package/project/project.js.map +1 -1
- package/src/api/api/client/client.d.ts +5 -0
- package/src/api/api/mocker/index.d.ts +3 -3
- package/src/api/api/types/client/request.d.ts +6 -0
- package/src/api/api/types/ext.d.ts +2 -2
- package/src/api/api/types/mocker.d.ts +2 -2
- package/src/components/forms/button/types.d.ts +6 -0
- package/src/components/formsExt/formsExt.d.ts +1 -0
- package/src/components/formsExt/libs/optionGroup/types.d.ts +1 -1
- package/src/components/formsExt/selector2/cache.d.ts +12 -0
- package/src/components/formsExt/selector2/composables/useAPI.d.ts +2036 -2
- package/src/components/formsExt/selector2/composables/useMenu.d.ts +2045 -5
- package/src/components/formsExt/selector2/itemMulti.vue.d.ts +3 -3
- package/src/components/formsExt/selector2/selector2.vue.d.ts +11 -3
- package/src/components/formsExt/selector2/types.d.ts +39 -5
- package/src/components/formsExt/selector2/utils.d.ts +17 -0
- package/src/components/popup/lib/popup.d.ts +1 -2
- package/src/components/popup/popup/opener/types.d.ts +6 -2
- package/src/components/popup/popup/types.d.ts +3 -2
- package/src/components/popup/popup.d.ts +1 -1
- package/src/components/project/groupSelector/folders/folders.vue.d.ts +18 -0
- package/src/components/project/groupSelector/folders/types.d.ts +63 -0
- package/src/components/project/groupSelector/folders/utils.d.ts +63 -0
- package/src/components/project/groupSelector/groupSelector.vue.d.ts +33 -0
- package/src/components/project/groupSelector/groups/groups.vue.d.ts +126 -0
- package/src/components/project/groupSelector/groups/types.d.ts +58 -0
- package/src/components/project/groupSelector/groups/utils.d.ts +92 -0
- package/src/components/project/groupSelector/stories/mocks/folders.d.ts +4 -0
- package/src/components/project/groupSelector/stories/mocks/groups.d.ts +2 -0
- package/src/components/project/groupSelector/stories/mocks/index.d.ts +7 -0
- package/src/components/project/groupSelector/types.d.ts +133 -0
- package/src/components/project/project.d.ts +5 -4
- package/src/components/project/{selectorRegion → regionSelector}/utils/utils.d.ts +3 -3
- package/src/core/utils/composables/useWatch.d.ts +32 -0
- package/tabs/tabs.amd.js +1 -1
- package/tabs/tabs.amd.js.map +1 -1
- package/tabs/tabs.js +24 -24
- 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.js +131 -133
- package/tabsView/tabsView.js.map +1 -1
- package/utils/clipboard.amd.js +1 -1
- package/utils/clipboard.js +1 -1
- package/utils/date.amd.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/lodash.amd.js +1 -1
- package/utils/lodash.js +1 -1
- package/utils/price.amd.js +1 -1
- package/utils/price.js +1 -1
- package/utils/scroll.amd.js +1 -1
- package/utils/scroll.amd.js.map +1 -1
- package/utils/scroll.js +14 -14
- package/utils/scroll.js.map +1 -1
- package/utils/searchers.amd.js +1 -1
- package/utils/searchers.js +3 -3
- package/utils/string.amd.js +1 -1
- package/utils/string.amd.js.map +1 -1
- package/utils/string.js +3 -7
- package/utils/string.js.map +1 -1
- package/.chunks/core-DcLw0dEO.amd.js +0 -2
- package/.chunks/core-DcLw0dEO.amd.js.map +0 -1
- package/.chunks/core-DpTLGhiK.es.js +0 -197
- package/.chunks/core-DpTLGhiK.es.js.map +0 -1
- package/.chunks/dialog_selectorRegions-BtAADQHf.es.js +0 -190
- package/.chunks/dialog_selectorRegions-BtAADQHf.es.js.map +0 -1
- package/.chunks/dialog_selectorRegions-DCrHvHDs.amd.js +0 -2
- package/.chunks/dialog_selectorRegions-DCrHvHDs.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Bf0wXalT.amd.js +0 -2
- package/.chunks/forms-BhbgRJ5I.es.js +0 -2045
- package/.chunks/forms-CNcrvkYD.amd.js +0 -3
- package/.chunks/index-BEI7XZmU.amd.js +0 -2
- package/.chunks/index-BEI7XZmU.amd.js.map +0 -1
- package/.chunks/index-igPkes8X.es.js +0 -48
- package/.chunks/index-igPkes8X.es.js.map +0 -1
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-QvP1d9jN.amd.js +0 -2
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-QvP1d9jN.amd.js.map +0 -1
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-xvzbyqai.es.js +0 -196
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-xvzbyqai.es.js.map +0 -1
- package/.chunks/menu.vue_vue_type_style_index_0_lang-C3Rr6ZyL.amd.js +0 -2
- package/.chunks/menu.vue_vue_type_style_index_0_lang-C3Rr6ZyL.amd.js.map +0 -1
- package/.chunks/menu.vue_vue_type_style_index_0_lang-dOeZ7an1.es.js +0 -112
- package/.chunks/menu.vue_vue_type_style_index_0_lang-dOeZ7an1.es.js.map +0 -1
- package/.chunks/notice-BpLsm6Zh.amd.js +0 -4
- package/.chunks/notice-CpPhDTUb.es.js +0 -194
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js +0 -36
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js.map +0 -1
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js +0 -2
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-9abPBMpd.es.js +0 -143
- package/.chunks/page.vue_vue_type_script_setup_true_lang-B-1LEQAz.amd.js +0 -2
- package/.chunks/popup-BJj9BJP5.es.js +0 -485
- package/.chunks/popup-BJj9BJP5.es.js.map +0 -1
- package/.chunks/popup-CfXISjhC.amd.js +0 -2
- package/.chunks/popup-CfXISjhC.amd.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +0 -2
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +0 -1
- package/.chunks/utils-5uxIj2CI.amd.js +0 -2
- package/.chunks/utils-Bg_su8b-.amd.js +0 -2
- package/assets/dialog_selectorRegions.css +0 -1
- package/assets/formsExt.css +0 -1
- package/assets/listItem.css +0 -1
- package/assets/menu.css +0 -1
- package/src/components/popup/popup/opener.vue.d.ts +0 -16
- /package/src/components/project/{selectorCompetitors/selectorCompetitors.vue.d.ts → competitorSelector/competitorSelector.vue.d.ts} +0 -0
- /package/src/components/project/{selectorCompetitors → competitorSelector}/composables.d.ts +0 -0
- /package/src/components/project/{selectorCompetitors → competitorSelector}/types.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/compare.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectRegion.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectSearcher.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectorRegion.d.ts +0 -0
- /package/src/components/project/{selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue.d.ts → regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue.d.ts} +0 -0
- /package/src/components/project/{selectorRegion/dialog_selectorRegions → regionSelector/dialog_regionSelectorRegions}/types.d.ts +0 -0
- /package/src/components/project/{selectorRegion/selectorRegion.vue.d.ts → regionSelector/regionSelector.vue.d.ts} +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/types.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/utils/consts.d.ts +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Folder } from '../folders/types';
|
|
2
|
+
import { Group } from './types';
|
|
3
|
+
import { paths } from 'topvisor-openapi/src/ts/Topvisor';
|
|
4
|
+
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/FieldsTrait';
|
|
5
|
+
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/OrdersTrait';
|
|
6
|
+
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/FiltersTrait';
|
|
7
|
+
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/LimitTrait';
|
|
8
|
+
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/OffsetTrait';
|
|
9
|
+
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/ProjectIdTrait';
|
|
10
|
+
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/FetchStyleTrait';
|
|
11
|
+
import { components } from 'topvisor-openapi/src/ts/Keywords_2/Types/Groups/ToType';
|
|
12
|
+
/**
|
|
13
|
+
* Элемент - группа ненайдена
|
|
14
|
+
*
|
|
15
|
+
* Указывается несуществующий id
|
|
16
|
+
*/
|
|
17
|
+
export declare const groupNone: Group;
|
|
18
|
+
/**
|
|
19
|
+
* Элемент для выбора всех групп
|
|
20
|
+
*/
|
|
21
|
+
export declare const groupAll: Group;
|
|
22
|
+
/**
|
|
23
|
+
* Элемент - `Все группы`
|
|
24
|
+
*/
|
|
25
|
+
export declare const genGroupAll: () => Group;
|
|
26
|
+
/**
|
|
27
|
+
* Элемент - `Выберите группу`
|
|
28
|
+
*/
|
|
29
|
+
export declare const genGroupPlaceholder: () => Group;
|
|
30
|
+
/**
|
|
31
|
+
* Сгенерировать список групп для TopSelector
|
|
32
|
+
*/
|
|
33
|
+
export declare const genItems: (groups: Group[], on?: boolean, folderForFilter?: Folder) => Group[];
|
|
34
|
+
/**
|
|
35
|
+
* Создать API запрос на получение групп
|
|
36
|
+
*/
|
|
37
|
+
export declare const genApiGetGroups: (client: Api.Client<Api.TV.Paths, true>) => Api.ClientRequest<Api.ClientRequestContext< paths, "/get/keywords_2/groups/", true>, ("name" | "id" | "folder_id" | "folder_path")[], Api.Params<Api.ClientRequestContext< paths, "/get/keywords_2/groups/", true>, undefined, {
|
|
38
|
+
"COUNT(*)"?: any;
|
|
39
|
+
id?: any;
|
|
40
|
+
project_id?: any;
|
|
41
|
+
folder_id?: any;
|
|
42
|
+
name?: any;
|
|
43
|
+
on?: any;
|
|
44
|
+
status?: any;
|
|
45
|
+
ord?: any;
|
|
46
|
+
folder_path?: any;
|
|
47
|
+
folder_ord?: any;
|
|
48
|
+
count_keywords?: any;
|
|
49
|
+
volume?: any;
|
|
50
|
+
"POSITIONS_AVG()"?: any;
|
|
51
|
+
"POSITIONS_TOP10()"?: any;
|
|
52
|
+
"POSITIONS_VISIBILITY()"?: any;
|
|
53
|
+
}, {
|
|
54
|
+
folder_id_depth?: boolean | null;
|
|
55
|
+
show_trash?: number;
|
|
56
|
+
fields?: components["schemas"]["TV.API.Params.FieldsTrait"]["fields"];
|
|
57
|
+
orders?: components["schemas"]["TV.API.Params.OrdersTrait"]["orders"];
|
|
58
|
+
filters?: components["schemas"]["TV.API.Params.FiltersTrait"]["filters"];
|
|
59
|
+
id?: components["schemas"]["TV.API.Params.FiltersTrait"]["id"];
|
|
60
|
+
limit?: components["schemas"]["TV.API.Params.LimitTrait"]["limit"];
|
|
61
|
+
offset?: components["schemas"]["TV.API.Params.OffsetTrait"]["offset"];
|
|
62
|
+
project_id: components["schemas"]["TV.API.Params.ProjectIdTrait"]["project_id"];
|
|
63
|
+
fetch_style?: components["schemas"]["TV.API.Params.FetchStyleTrait"]["fetch_style"];
|
|
64
|
+
}>, Api.ModelFields<{
|
|
65
|
+
"COUNT(*)"?: any;
|
|
66
|
+
id?: any;
|
|
67
|
+
project_id?: any;
|
|
68
|
+
folder_id?: any;
|
|
69
|
+
name?: any;
|
|
70
|
+
on?: any;
|
|
71
|
+
status?: any;
|
|
72
|
+
ord?: any;
|
|
73
|
+
folder_path?: any;
|
|
74
|
+
folder_ord?: any;
|
|
75
|
+
count_keywords?: any;
|
|
76
|
+
volume?: any;
|
|
77
|
+
"POSITIONS_AVG()"?: any;
|
|
78
|
+
"POSITIONS_TOP10()"?: any;
|
|
79
|
+
"POSITIONS_VISIBILITY()"?: any;
|
|
80
|
+
}> | undefined>;
|
|
81
|
+
/**
|
|
82
|
+
* Создать API запрос на получение групп
|
|
83
|
+
*/
|
|
84
|
+
export declare const genApiAddGroup: (client: Api.Client<Api.TV.Paths, true>) => Api.ClientRequest<Api.ClientRequestContext< paths, "/add/keywords_2/groups/", true>, never, Omit<{
|
|
85
|
+
to_id?: number;
|
|
86
|
+
to_type?: components["schemas"]["Keywords_2.Types.Groups.ToType"];
|
|
87
|
+
names?: unknown[] | null;
|
|
88
|
+
name?: unknown[] | null;
|
|
89
|
+
on?: boolean;
|
|
90
|
+
status?: boolean;
|
|
91
|
+
project_id: components["schemas"]["TV.API.Params.ProjectIdTrait"]["project_id"];
|
|
92
|
+
}, "fields" | "filters" | "orders" | "fetch_style">, never>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { client } from '../../../../../storybook/api/client';
|
|
2
|
+
import { Client } from '../../../../../api/api/client/client';
|
|
3
|
+
import { paths } from 'topvisor-openapi/src/ts/Topvisor';
|
|
4
|
+
export * from './folders';
|
|
5
|
+
export * from './groups';
|
|
6
|
+
declare const clientMocked: Client<paths, true>;
|
|
7
|
+
export { client, clientMocked, };
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { FolderTree } from './folders/types';
|
|
2
|
+
import { Group, Props as GroupsProps } from './groups/types';
|
|
3
|
+
export interface Props {
|
|
4
|
+
/**
|
|
5
|
+
* id выбранной папки
|
|
6
|
+
*
|
|
7
|
+
* Если фильтр не нужен - 0, это значит корневая папка
|
|
8
|
+
*/
|
|
9
|
+
folderId: number;
|
|
10
|
+
/**
|
|
11
|
+
* Выбранная папка
|
|
12
|
+
*/
|
|
13
|
+
folder?: GroupsProps['folder'];
|
|
14
|
+
/**
|
|
15
|
+
* Id выбранной группы
|
|
16
|
+
*
|
|
17
|
+
* Укажите `0` для выбора первой группы в списке
|
|
18
|
+
*
|
|
19
|
+
* Если группа не выбрана - `null`
|
|
20
|
+
*/
|
|
21
|
+
groupId: number | null;
|
|
22
|
+
/**
|
|
23
|
+
* Выбранная группа
|
|
24
|
+
*/
|
|
25
|
+
group?: GroupsProps['group'];
|
|
26
|
+
projectId: number;
|
|
27
|
+
/**
|
|
28
|
+
* Дерево папок
|
|
29
|
+
*
|
|
30
|
+
* Условно опциональный параметр, обязателен, если указан `props.groups`.
|
|
31
|
+
* Режим, при котором загрузка папок идет через API, а группы указываются в props, не несет смысла и не поддерживается.
|
|
32
|
+
*
|
|
33
|
+
* Работает аналогично `props.groups`
|
|
34
|
+
*
|
|
35
|
+
* @see `props.groups`
|
|
36
|
+
*/
|
|
37
|
+
folders?: FolderTree;
|
|
38
|
+
/**
|
|
39
|
+
* Группы
|
|
40
|
+
*
|
|
41
|
+
* Если параметр не указан:
|
|
42
|
+
* - будет использовать загрузка групп через `props.client`
|
|
43
|
+
*
|
|
44
|
+
* Если параметр указан:
|
|
45
|
+
* - загрузка через `props.client` производиться не будет
|
|
46
|
+
* - требует указывать `props.folders`, так как в API нет `childsIds`
|
|
47
|
+
*
|
|
48
|
+
* @subcategory Группы
|
|
49
|
+
*/
|
|
50
|
+
groups?: Group[];
|
|
51
|
+
/**
|
|
52
|
+
* Фильтр активности группы
|
|
53
|
+
*
|
|
54
|
+
* @subcategory Группы
|
|
55
|
+
*/
|
|
56
|
+
on?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Добавить возможность выбора всех групп
|
|
59
|
+
*
|
|
60
|
+
* В этом режиме вместо "Корневой папки" для гармоничного стиля будет выводиться "Все папки"
|
|
61
|
+
*
|
|
62
|
+
* @subcategory Группы
|
|
63
|
+
*/
|
|
64
|
+
canSelectAllGroups?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Добавить возможность добавления группы
|
|
67
|
+
*
|
|
68
|
+
* Если при поиске группа в указанной папке не найдена, то появится кнопка "Добавить группу"
|
|
69
|
+
*
|
|
70
|
+
* Работает в двух режимах:
|
|
71
|
+
* - произвольный выбор группы, при `canAddGroup=true`
|
|
72
|
+
* - автоматическое добавление новой группы через API, при `canAddGroup=api`, требует `props.client`
|
|
73
|
+
*
|
|
74
|
+
* После добавления группы через API выполняет `update:groups`
|
|
75
|
+
*
|
|
76
|
+
* @subcategory Группы
|
|
77
|
+
*/
|
|
78
|
+
canAddGroup?: GroupsProps['canAdd'];
|
|
79
|
+
/**
|
|
80
|
+
* Правило атвовыбора группы при инициализации и смене папки
|
|
81
|
+
* - `first`: будет выбрана первая группа, если ее нет будет использоваться режим `placeholder`
|
|
82
|
+
* - `placeholder`: будет выбираться `id=ITEM_ID_ALL` с текстом "Выберите группу"
|
|
83
|
+
*
|
|
84
|
+
* Для фильтров, где есть `props.canSelectAll` рекомендуется использовать `first`
|
|
85
|
+
*
|
|
86
|
+
* Для форм, где автовыбор не желателен, рекомендуется использовать `placeholder`
|
|
87
|
+
*
|
|
88
|
+
* При отправке формы проверяйте, что указан не `ITEM_ID_ALL`, если требуется выбор конкретной группы
|
|
89
|
+
*
|
|
90
|
+
* @subcategory Группы
|
|
91
|
+
*/
|
|
92
|
+
autoselect?: GroupsProps['autoselect'];
|
|
93
|
+
/**
|
|
94
|
+
* Отобразить кнопку смены значения для выбора группы
|
|
95
|
+
*/
|
|
96
|
+
addChanger?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Показывать поле для выбора папки
|
|
99
|
+
*
|
|
100
|
+
* Если не указано, то папки будут отображаться, если их больше 1
|
|
101
|
+
*/
|
|
102
|
+
showFolders?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Показывать поле для выбора группы
|
|
105
|
+
*/
|
|
106
|
+
showGroups?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Выводить иконку в полях выбора папки и группы
|
|
109
|
+
*/
|
|
110
|
+
addIcon?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Настроенный API клиент для выполнения запросов
|
|
113
|
+
*
|
|
114
|
+
* Будет использоваться:
|
|
115
|
+
* - для загрузки групп, если не указан `props.groups`
|
|
116
|
+
* - для добавления новых групп, если указан `props.canAddGroup=api`
|
|
117
|
+
*
|
|
118
|
+
* @const
|
|
119
|
+
*/
|
|
120
|
+
client?: Api.Client<Api.TV.Paths, true>;
|
|
121
|
+
}
|
|
122
|
+
export type Emits = {
|
|
123
|
+
/**
|
|
124
|
+
* Группы в проекте были изменены
|
|
125
|
+
*
|
|
126
|
+
* Вызывается, если указан api client, так как в других случаях группы не меняются
|
|
127
|
+
*
|
|
128
|
+
* Если `props.groups` не указан, то emit будет вызван без указания `groups`:
|
|
129
|
+
* - кеш api всех `TopGroupSelector` на странице с тем же `projectId` будет сброшен автоматически
|
|
130
|
+
* - при необходимости вручную реализовать обновления других состояний, связанных со списком групп проекта
|
|
131
|
+
*/
|
|
132
|
+
'update:groups': [groups?: Group[]];
|
|
133
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export { useItemsFromCompetitors } from './
|
|
3
|
-
export { default as
|
|
4
|
-
export { findRegion, genSearcherByKey,
|
|
1
|
+
export { default as TopCompetitorSelector } from './competitorSelector/competitorSelector.vue';
|
|
2
|
+
export { useItemsFromCompetitors } from './competitorSelector/composables';
|
|
3
|
+
export { default as TopRegionSelector } from './regionSelector/regionSelector.vue';
|
|
4
|
+
export { findRegion, genSearcherByKey, dialogRegionSelector } from './regionSelector/utils/utils';
|
|
5
|
+
export { default as TopGroupSelector } from './groupSelector/groupSelector.vue';
|
|
5
6
|
export type { Emits as TopTagSelectorEmits, Tag, TagId, TagIdExclude } from './tagSelector/types';
|
|
6
7
|
export { genElPopupOpener as genElTopTagSelectorPopupOpener, renderElPopupOpener as renderElTopTagSelectorPopupOpener, } from './tagSelector/utils/el';
|
|
7
8
|
export { default as TopTagSelector } from './tagSelector/tagSelector.vue';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Region, Searcher, SearcherByKey } from '../types';
|
|
2
2
|
import { AsyncTopDialogHandle } from '../../../dialog/dialog/composables/asyncDialogHandle';
|
|
3
3
|
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
4
|
-
import { Props } from '../
|
|
4
|
+
import { Props } from '../dialog_regionSelectorRegions/types';
|
|
5
5
|
/**
|
|
6
6
|
* Генерация Map ПС с Map регионов из массива searchers
|
|
7
7
|
* - ключ для ПС - searcherKey
|
|
@@ -27,8 +27,8 @@ export declare const findRegion: (forFrequency: boolean, searchRegion: Partial<R
|
|
|
27
27
|
/**
|
|
28
28
|
* Открыть диалоговое окно с выбором нескольких регионов
|
|
29
29
|
*
|
|
30
|
-
* @see import('../
|
|
30
|
+
* @see import('../dialog_regionSelectorRegions/types').Props
|
|
31
31
|
*/
|
|
32
|
-
export declare const
|
|
32
|
+
export declare const dialogRegionSelector: AsyncTopDialogHandle<DefineComponent<Partial< Props>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<Partial< Props>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
33
33
|
elRegions: HTMLDivElement;
|
|
34
34
|
}, HTMLDivElement>>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { WatchOptions, WatchSource, WatchStopHandle } from 'vue';
|
|
2
|
+
type UnwrapSource<T> = T extends WatchSource<infer V> ? V : T extends object ? T : never;
|
|
3
|
+
type Changes<T> = Partial<{
|
|
4
|
+
[K in keyof T]: {
|
|
5
|
+
old: UnwrapSource<T[K]> | undefined;
|
|
6
|
+
new: UnwrapSource<T[K]>;
|
|
7
|
+
};
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* useWatch — расширенный `watch` с измененным callback
|
|
11
|
+
* - принимает объект с реактивными свойствами, точно такими же, как при указании в массиве в стандартном `watch`
|
|
12
|
+
* - callback возвращает изменившиеся свойства в объекте `changes` с `{old, new}`
|
|
13
|
+
*
|
|
14
|
+
* Если у вас есть несколько `watch`, которые меняют одно состояние, то могут возникнуть проблемы:
|
|
15
|
+
* - рост длины цепочек `watch`, когда один `watch` приводит к срабатыванию другого
|
|
16
|
+
* - лишние вызовы при согласованных состояниях, когда разные `watch` устанавливают одно и то же значение
|
|
17
|
+
* - гонка при несогласованных состояниях, когда разные `watch` в разные тики при этом одновременно могут устанавливать разные состояния
|
|
18
|
+
*
|
|
19
|
+
* Если у вас такой случай и его нельзя упростить, то используйте `useWatch`, в остальных случаях используйте только стандартный `watch`
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
*
|
|
23
|
+
* ```js
|
|
24
|
+
*
|
|
25
|
+
* useWatch({ a: ref(5), b: ref('word') }, (changes) => {
|
|
26
|
+
* console.log(changes.a?.new, changes.a?.old);
|
|
27
|
+
* console.log(changes.b?.new, changes.b?.old);
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function useWatch<T extends Record<string, WatchSource>>(sourcesObj: T, cb: (changes: Changes<T>, onCleanup: (fn: () => void) => void) => void | Promise<void>, options?: WatchOptions): WatchStopHandle;
|
|
32
|
+
export {};
|
package/tabs/tabs.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../require/css.amd!../assets/tabs.css"],(function(
|
|
1
|
+
define(["require","exports","vue","../require/css.amd!../assets/tabs.css"],(function(p,n,e){"use strict";if(typeof e>"u")var e=window.Vue;const o={class:e.normalizeClass({"top-tabs":!0})},l={key:0,class:"top-tabs_header"},d={class:"top-tabs_contents"},c=e.defineComponent({__name:"tabs",props:{id:{}},setup(t){return(a,s)=>(e.openBlock(),e.createElementBlock("div",o,[e.renderSlot(a.$slots,"buttons"),a.$slots.header?(e.openBlock(),e.createElementBlock("div",l,[e.renderSlot(a.$slots,"header")])):e.createCommentVNode("",!0),e.createElementVNode("div",d,[e.renderSlot(a.$slots,"contents")])]))}}),r=["id","name","value","checked","disabled"],i=["for"],u=e.defineComponent({__name:"tab",props:{tabsId:{},name:{},title:{},active:{type:Boolean},disabled:{type:Boolean}},setup(t){return(a,s)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("input",{type:"radio",class:"top-tabs_tabInput top-unvisible",id:t.tabsId+t.name,name:t.tabsId,value:t.name,checked:t.active,disabled:t.disabled},null,8,r),e.createElementVNode("label",{class:e.normalizeClass({"top-tabs_tabLabel":!0,"top-forms-focusable":!0,"top-disabled":t.disabled}),for:t.tabsId+t.name},[e.renderSlot(a.$slots,"default")],10,i)],64))}}),m=["data-tabs-name"],b=e.defineComponent({__name:"content",props:{name:{}},setup(t){return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabs_content":!0}),"data-tabs-name":t.name},[e.renderSlot(a.$slots,"default")],8,m))}});n.TopTabs=c,n.TopTabsContent=b,n.TopTabsTab=u,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=tabs.amd.js.map
|
package/tabs/tabs.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.amd.js","sources":["../../src/components/tabs/tabs/tabs.vue","../../src/components/tabs/tabs/tab.vue","../../src/components/tabs/tabs/content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\n\ndefineProps<Props>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabs': true,\n\t\t}\"\n\t>\n\t\t<!-- @slot Кнопки вкладок, ожидает передачу компонентов TabTitle -->\n\t\t<slot name=\"buttons\"></slot>\n\n\t\t<div v-if=\"$slots.header\" class=\"top-tabs_header\">\n\t\t\t<!-- @slot Слот с проивзольным содержимым, которое будет добавлено справа от вкладок -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</div>\n\n\t\t<div class=\"top-tabs_contents\">\n\t\t\t<!-- @slot Контент вкладок, ожидает передачу компонентов TabContent -->\n\t\t\t<slot name=\"contents\"></slot>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n.top-tabs {\n\tbackground: var(--color-layout-front-1);\n\tborder-radius: 8px;\n\tborder: 1px solid var(--color-line-2-opacity);\n\tpadding: 0;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: stretch;\n}\n\n.top-tabs_header {\n\tpadding: 6px;\n\tmargin-left: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tflex-wrap: wrap;\n}\n\n/* Содержимое вкладок */\n.top-tabs_contents {\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\twidth: 100%;\n\tmargin-top: -1px;\n}\n\n/* Состояние открытости вкладок */\n.top-tabs_tabInput:checked:nth-child(1) ~ .top-tabs_contents > .top-tabs_content:nth-child(1),\n.top-tabs_tabInput:checked:nth-child(3) ~ .top-tabs_contents > .top-tabs_content:nth-child(2),\n.top-tabs_tabInput:checked:nth-child(5) ~ .top-tabs_contents > .top-tabs_content:nth-child(3),\n.top-tabs_tabInput:checked:nth-child(7) ~ .top-tabs_contents > .top-tabs_content:nth-child(4),\n.top-tabs_tabInput:checked:nth-child(9) ~ .top-tabs_contents > .top-tabs_content:nth-child(5),\n.top-tabs_tabInput:checked:nth-child(11) ~ .top-tabs_contents > .top-tabs_content:nth-child(6) {\n\tdisplay: block;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { PropsTab } from './types';\n\ndefineProps<PropsTab>();\n</script>\n\n<template>\n\t<input\n\t\ttype=\"radio\"\n\t\tclass=\"top-tabs_tabInput top-unvisible\"\n\t\t:id=\"tabsId + name\"\n\t\t:name=\"tabsId\"\n\t\t:value=\"name\"\n\t\t:checked=\"active\"\n\t\t:disabled=\"disabled\"\n\t/>\n\n\t<label\n\t\t:class=\"{\n\t\t\t'top-tabs_tabLabel': true,\n\t\t\t'top-forms-focusable': true,\n\t\t\t'top-disabled': disabled,\n\t\t}\"\n\t\t:for=\"tabsId + name\"\n\t>\n\t\t<slot></slot>\n\t</label>\n</template>\n\n<style>\n.top-tabs_tabLabel {\n\tcolor: var(--color-text-1);\n\tcursor: pointer;\n\tborder-bottom: 2px solid transparent;\n\tpadding: 14px 20px;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.top-tabs_tabLabel:hover {\n\tborder-color: var(--color-line-2);\n}\n\n.top-tabs_tabInput:checked + .top-tabs_tabLabel {\n\tborder-color: var(--color-line-primary-1);\n\tcolor: var(--color-text-primary);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { PropsContent } from './types';\n\ndefineProps<PropsContent>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabs_content': true,\n\t\t}\"\n\t\t:data-tabs-name=\"name\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-tabs_content {\n\tpadding: 14px;\n\toverflow: auto;\n\tdisplay: none;\n}\n</style>\n"],"names":["vue","_ctx","_hoisted_2$1","
|
|
1
|
+
{"version":3,"file":"tabs.amd.js","sources":["../../src/components/tabs/tabs/tabs.vue","../../src/components/tabs/tabs/tab.vue","../../src/components/tabs/tabs/content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\n\ndefineProps<Props>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabs': true,\n\t\t}\"\n\t>\n\t\t<!-- @slot Кнопки вкладок, ожидает передачу компонентов TabTitle -->\n\t\t<slot name=\"buttons\"></slot>\n\n\t\t<div v-if=\"$slots.header\" class=\"top-tabs_header\">\n\t\t\t<!-- @slot Слот с проивзольным содержимым, которое будет добавлено справа от вкладок -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</div>\n\n\t\t<div class=\"top-tabs_contents\">\n\t\t\t<!-- @slot Контент вкладок, ожидает передачу компонентов TabContent -->\n\t\t\t<slot name=\"contents\"></slot>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n.top-tabs {\n\tbackground: var(--color-layout-front-1);\n\tborder-radius: 8px;\n\tborder: 1px solid var(--color-line-2-opacity);\n\tpadding: 0;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: stretch;\n}\n\n.top-tabs_header {\n\tpadding: 6px;\n\tmargin-left: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tflex-wrap: wrap;\n}\n\n/* Содержимое вкладок */\n.top-tabs_contents {\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\twidth: 100%;\n\tmargin-top: -1px;\n}\n\n/* Состояние открытости вкладок */\n.top-tabs_tabInput:checked:nth-child(1) ~ .top-tabs_contents > .top-tabs_content:nth-child(1),\n.top-tabs_tabInput:checked:nth-child(3) ~ .top-tabs_contents > .top-tabs_content:nth-child(2),\n.top-tabs_tabInput:checked:nth-child(5) ~ .top-tabs_contents > .top-tabs_content:nth-child(3),\n.top-tabs_tabInput:checked:nth-child(7) ~ .top-tabs_contents > .top-tabs_content:nth-child(4),\n.top-tabs_tabInput:checked:nth-child(9) ~ .top-tabs_contents > .top-tabs_content:nth-child(5),\n.top-tabs_tabInput:checked:nth-child(11) ~ .top-tabs_contents > .top-tabs_content:nth-child(6) {\n\tdisplay: block;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { PropsTab } from './types';\n\ndefineProps<PropsTab>();\n</script>\n\n<template>\n\t<input\n\t\ttype=\"radio\"\n\t\tclass=\"top-tabs_tabInput top-unvisible\"\n\t\t:id=\"tabsId + name\"\n\t\t:name=\"tabsId\"\n\t\t:value=\"name\"\n\t\t:checked=\"active\"\n\t\t:disabled=\"disabled\"\n\t/>\n\n\t<label\n\t\t:class=\"{\n\t\t\t'top-tabs_tabLabel': true,\n\t\t\t'top-forms-focusable': true,\n\t\t\t'top-disabled': disabled,\n\t\t}\"\n\t\t:for=\"tabsId + name\"\n\t>\n\t\t<slot></slot>\n\t</label>\n</template>\n\n<style>\n.top-tabs_tabLabel {\n\tcolor: var(--color-text-1);\n\tcursor: pointer;\n\tborder-bottom: 2px solid transparent;\n\tpadding: 14px 20px;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.top-tabs_tabLabel:hover {\n\tborder-color: var(--color-line-2);\n}\n\n.top-tabs_tabInput:checked + .top-tabs_tabLabel {\n\tborder-color: var(--color-line-primary-1);\n\tcolor: var(--color-text-primary);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { PropsContent } from './types';\n\ndefineProps<PropsContent>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabs_content': true,\n\t\t}\"\n\t\t:data-tabs-name=\"name\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-tabs_content {\n\tpadding: 14px;\n\toverflow: auto;\n\tdisplay: none;\n}\n</style>\n"],"names":["vue","_ctx","_hoisted_2$1","__props","_hoisted_1$1","_hoisted_1"],"mappings":"gXAwBOA,EAAA,WAAAC,EAAA,OAAA,SAAA,EAXuBA,EAAA,OAAA,QAAAD,EAAA,UAAA,EAAAA,EAAA,mBAAA,MAAAE,EAAA,CAKtBF,EAAA,WAAAC,EAAA,OAAA,QAAA,CADsB,CAAA,GAAAD,EAAA,mBAAA,GAAA,EAAA,gCAMtBA,EAAA,WAAAC,EAAA,OAAA,UAAA,qWCbQ,KAAAE,EAAA,OACP,MAAAA,EAAA,KACC,QAAAA,EAAA,0BAEG,EAAA,KAAA,EAAAC,CAAA,iIAIgF,CAAA,qBAK5E,EAAA,sNCfP,mBAAA,4BAGS,EAAA,iCAEJ,EAAA,EAAAC,CAAA"}
|
package/tabs/tabs.js
CHANGED
|
@@ -3,31 +3,31 @@
|
|
|
3
3
|
const fileNames = ['../assets/tabs.css'].map(fileName => import.meta.resolve(fileName));
|
|
4
4
|
_autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
|
|
5
5
|
|
|
6
|
-
import { defineComponent as
|
|
7
|
-
const
|
|
8
|
-
class: /* @__PURE__ */
|
|
6
|
+
import { defineComponent as d, createElementBlock as s, openBlock as n, normalizeClass as l, renderSlot as a, createCommentVNode as i, createElementVNode as o, Fragment as b } from "vue";
|
|
7
|
+
const r = {
|
|
8
|
+
class: /* @__PURE__ */ l({
|
|
9
9
|
"top-tabs": !0
|
|
10
10
|
})
|
|
11
|
-
},
|
|
11
|
+
}, m = {
|
|
12
12
|
key: 0,
|
|
13
13
|
class: "top-tabs_header"
|
|
14
|
-
},
|
|
14
|
+
}, u = { class: "top-tabs_contents" }, $ = /* @__PURE__ */ d({
|
|
15
15
|
__name: "tabs",
|
|
16
16
|
props: {
|
|
17
17
|
id: {}
|
|
18
18
|
},
|
|
19
|
-
setup(
|
|
20
|
-
return (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
])) :
|
|
25
|
-
o("div",
|
|
26
|
-
|
|
19
|
+
setup(e) {
|
|
20
|
+
return (t, c) => (n(), s("div", r, [
|
|
21
|
+
a(t.$slots, "buttons"),
|
|
22
|
+
t.$slots.header ? (n(), s("div", m, [
|
|
23
|
+
a(t.$slots, "header")
|
|
24
|
+
])) : i("", !0),
|
|
25
|
+
o("div", u, [
|
|
26
|
+
a(t.$slots, "contents")
|
|
27
27
|
])
|
|
28
28
|
]));
|
|
29
29
|
}
|
|
30
|
-
}),
|
|
30
|
+
}), p = ["id", "name", "value", "checked", "disabled"], _ = ["for"], v = /* @__PURE__ */ d({
|
|
31
31
|
__name: "tab",
|
|
32
32
|
props: {
|
|
33
33
|
tabsId: {},
|
|
@@ -36,8 +36,8 @@ const b = {
|
|
|
36
36
|
active: { type: Boolean },
|
|
37
37
|
disabled: { type: Boolean }
|
|
38
38
|
},
|
|
39
|
-
setup(
|
|
40
|
-
return (
|
|
39
|
+
setup(e) {
|
|
40
|
+
return (t, c) => (n(), s(b, null, [
|
|
41
41
|
o("input", {
|
|
42
42
|
type: "radio",
|
|
43
43
|
class: "top-tabs_tabInput top-unvisible",
|
|
@@ -46,32 +46,32 @@ const b = {
|
|
|
46
46
|
value: e.name,
|
|
47
47
|
checked: e.active,
|
|
48
48
|
disabled: e.disabled
|
|
49
|
-
}, null, 8,
|
|
49
|
+
}, null, 8, p),
|
|
50
50
|
o("label", {
|
|
51
|
-
class:
|
|
51
|
+
class: l({
|
|
52
52
|
"top-tabs_tabLabel": !0,
|
|
53
53
|
"top-forms-focusable": !0,
|
|
54
54
|
"top-disabled": e.disabled
|
|
55
55
|
}),
|
|
56
56
|
for: e.tabsId + e.name
|
|
57
57
|
}, [
|
|
58
|
-
|
|
58
|
+
a(t.$slots, "default")
|
|
59
59
|
], 10, _)
|
|
60
60
|
], 64));
|
|
61
61
|
}
|
|
62
|
-
}), h = ["data-tabs-name"], T = /* @__PURE__ */
|
|
62
|
+
}), h = ["data-tabs-name"], T = /* @__PURE__ */ d({
|
|
63
63
|
__name: "content",
|
|
64
64
|
props: {
|
|
65
65
|
name: {}
|
|
66
66
|
},
|
|
67
|
-
setup(
|
|
68
|
-
return (
|
|
69
|
-
class:
|
|
67
|
+
setup(e) {
|
|
68
|
+
return (t, c) => (n(), s("div", {
|
|
69
|
+
class: l({
|
|
70
70
|
"top-tabs_content": !0
|
|
71
71
|
}),
|
|
72
72
|
"data-tabs-name": e.name
|
|
73
73
|
}, [
|
|
74
|
-
|
|
74
|
+
a(t.$slots, "default")
|
|
75
75
|
], 8, h));
|
|
76
76
|
}
|
|
77
77
|
});
|
package/tabs/tabs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../src/components/tabs/tabs/tabs.vue","../../src/components/tabs/tabs/tab.vue","../../src/components/tabs/tabs/content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\n\ndefineProps<Props>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabs': true,\n\t\t}\"\n\t>\n\t\t<!-- @slot Кнопки вкладок, ожидает передачу компонентов TabTitle -->\n\t\t<slot name=\"buttons\"></slot>\n\n\t\t<div v-if=\"$slots.header\" class=\"top-tabs_header\">\n\t\t\t<!-- @slot Слот с проивзольным содержимым, которое будет добавлено справа от вкладок -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</div>\n\n\t\t<div class=\"top-tabs_contents\">\n\t\t\t<!-- @slot Контент вкладок, ожидает передачу компонентов TabContent -->\n\t\t\t<slot name=\"contents\"></slot>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n.top-tabs {\n\tbackground: var(--color-layout-front-1);\n\tborder-radius: 8px;\n\tborder: 1px solid var(--color-line-2-opacity);\n\tpadding: 0;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: stretch;\n}\n\n.top-tabs_header {\n\tpadding: 6px;\n\tmargin-left: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tflex-wrap: wrap;\n}\n\n/* Содержимое вкладок */\n.top-tabs_contents {\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\twidth: 100%;\n\tmargin-top: -1px;\n}\n\n/* Состояние открытости вкладок */\n.top-tabs_tabInput:checked:nth-child(1) ~ .top-tabs_contents > .top-tabs_content:nth-child(1),\n.top-tabs_tabInput:checked:nth-child(3) ~ .top-tabs_contents > .top-tabs_content:nth-child(2),\n.top-tabs_tabInput:checked:nth-child(5) ~ .top-tabs_contents > .top-tabs_content:nth-child(3),\n.top-tabs_tabInput:checked:nth-child(7) ~ .top-tabs_contents > .top-tabs_content:nth-child(4),\n.top-tabs_tabInput:checked:nth-child(9) ~ .top-tabs_contents > .top-tabs_content:nth-child(5),\n.top-tabs_tabInput:checked:nth-child(11) ~ .top-tabs_contents > .top-tabs_content:nth-child(6) {\n\tdisplay: block;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { PropsTab } from './types';\n\ndefineProps<PropsTab>();\n</script>\n\n<template>\n\t<input\n\t\ttype=\"radio\"\n\t\tclass=\"top-tabs_tabInput top-unvisible\"\n\t\t:id=\"tabsId + name\"\n\t\t:name=\"tabsId\"\n\t\t:value=\"name\"\n\t\t:checked=\"active\"\n\t\t:disabled=\"disabled\"\n\t/>\n\n\t<label\n\t\t:class=\"{\n\t\t\t'top-tabs_tabLabel': true,\n\t\t\t'top-forms-focusable': true,\n\t\t\t'top-disabled': disabled,\n\t\t}\"\n\t\t:for=\"tabsId + name\"\n\t>\n\t\t<slot></slot>\n\t</label>\n</template>\n\n<style>\n.top-tabs_tabLabel {\n\tcolor: var(--color-text-1);\n\tcursor: pointer;\n\tborder-bottom: 2px solid transparent;\n\tpadding: 14px 20px;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.top-tabs_tabLabel:hover {\n\tborder-color: var(--color-line-2);\n}\n\n.top-tabs_tabInput:checked + .top-tabs_tabLabel {\n\tborder-color: var(--color-line-primary-1);\n\tcolor: var(--color-text-primary);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { PropsContent } from './types';\n\ndefineProps<PropsContent>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabs_content': true,\n\t\t}\"\n\t\t:data-tabs-name=\"name\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-tabs_content {\n\tpadding: 14px;\n\toverflow: auto;\n\tdisplay: none;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","_hoisted_2","_createElementVNode","_hoisted_3","
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../src/components/tabs/tabs/tabs.vue","../../src/components/tabs/tabs/tab.vue","../../src/components/tabs/tabs/content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\n\ndefineProps<Props>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabs': true,\n\t\t}\"\n\t>\n\t\t<!-- @slot Кнопки вкладок, ожидает передачу компонентов TabTitle -->\n\t\t<slot name=\"buttons\"></slot>\n\n\t\t<div v-if=\"$slots.header\" class=\"top-tabs_header\">\n\t\t\t<!-- @slot Слот с проивзольным содержимым, которое будет добавлено справа от вкладок -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</div>\n\n\t\t<div class=\"top-tabs_contents\">\n\t\t\t<!-- @slot Контент вкладок, ожидает передачу компонентов TabContent -->\n\t\t\t<slot name=\"contents\"></slot>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n.top-tabs {\n\tbackground: var(--color-layout-front-1);\n\tborder-radius: 8px;\n\tborder: 1px solid var(--color-line-2-opacity);\n\tpadding: 0;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: stretch;\n}\n\n.top-tabs_header {\n\tpadding: 6px;\n\tmargin-left: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tflex-wrap: wrap;\n}\n\n/* Содержимое вкладок */\n.top-tabs_contents {\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\twidth: 100%;\n\tmargin-top: -1px;\n}\n\n/* Состояние открытости вкладок */\n.top-tabs_tabInput:checked:nth-child(1) ~ .top-tabs_contents > .top-tabs_content:nth-child(1),\n.top-tabs_tabInput:checked:nth-child(3) ~ .top-tabs_contents > .top-tabs_content:nth-child(2),\n.top-tabs_tabInput:checked:nth-child(5) ~ .top-tabs_contents > .top-tabs_content:nth-child(3),\n.top-tabs_tabInput:checked:nth-child(7) ~ .top-tabs_contents > .top-tabs_content:nth-child(4),\n.top-tabs_tabInput:checked:nth-child(9) ~ .top-tabs_contents > .top-tabs_content:nth-child(5),\n.top-tabs_tabInput:checked:nth-child(11) ~ .top-tabs_contents > .top-tabs_content:nth-child(6) {\n\tdisplay: block;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { PropsTab } from './types';\n\ndefineProps<PropsTab>();\n</script>\n\n<template>\n\t<input\n\t\ttype=\"radio\"\n\t\tclass=\"top-tabs_tabInput top-unvisible\"\n\t\t:id=\"tabsId + name\"\n\t\t:name=\"tabsId\"\n\t\t:value=\"name\"\n\t\t:checked=\"active\"\n\t\t:disabled=\"disabled\"\n\t/>\n\n\t<label\n\t\t:class=\"{\n\t\t\t'top-tabs_tabLabel': true,\n\t\t\t'top-forms-focusable': true,\n\t\t\t'top-disabled': disabled,\n\t\t}\"\n\t\t:for=\"tabsId + name\"\n\t>\n\t\t<slot></slot>\n\t</label>\n</template>\n\n<style>\n.top-tabs_tabLabel {\n\tcolor: var(--color-text-1);\n\tcursor: pointer;\n\tborder-bottom: 2px solid transparent;\n\tpadding: 14px 20px;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.top-tabs_tabLabel:hover {\n\tborder-color: var(--color-line-2);\n}\n\n.top-tabs_tabInput:checked + .top-tabs_tabLabel {\n\tborder-color: var(--color-line-primary-1);\n\tcolor: var(--color-text-primary);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { PropsContent } from './types';\n\ndefineProps<PropsContent>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabs_content': true,\n\t\t}\"\n\t\t:data-tabs-name=\"name\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-tabs_content {\n\tpadding: 14px;\n\toverflow: auto;\n\tdisplay: none;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","_hoisted_2","_createElementVNode","_hoisted_3","__props","_normalizeClass"],"mappings":";;;;;;;;;;;;;;sBAOCA,EAAA,GAAAC,EAiBM,OAjBNC,GAiBM;AAAA,MAXLC,EAA4BC,EAAA,QAAA,SAAA;AAAA,MAEjBC,EAAAA,OAAO,UAAlBL,KAAAC,EAGM,OAHNK,GAGM;AAAA,QADLH,EAA2BC,EAAA,QAAA,QAAA;AAAA,MAAA;MAG5BG,EAGM,OAHNC,GAGM;AAAA,QADLL,EAA6BC,EAAA,QAAA,UAAA;AAAA,MAAA;;;;;;;;;;;;;;MCf/BG,EAQE,SAAA;AAAA,QAPD,MAAK;AAAA,QACL,OAAM;AAAA,QACL,IAAIE,EAAA,SAASA,EAAA;AAAA,QACb,MAAMA,EAAA;AAAA,QACN,OAAOA,EAAA;AAAA,QACP,SAASA,EAAA;AAAA,QACT,UAAUA,EAAA;AAAA,MAAA;MAGZF,EASQ,SAAA;AAAA,QARN,OAAKG,EAAA;AAAA;;0BAAqFD,EAAA;AAAA,QAAA;QAK1F,KAAKA,EAAA,SAASA,EAAA;AAAA,MAAA;QAEfN,EAAaC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;2BClBdH,EAOM,OAAA;AAAA,MANJ,OAAKS,EAAE;AAAA;OAEP;AAAA,MACA,kBAAgBD,EAAA;AAAA,IAAA;MAEjBN,EAAaC,EAAA,QAAA,SAAA;AAAA,IAAA;;;"}
|
package/tabsView/tabsView.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../.chunks/forms-
|
|
1
|
+
define(["require","exports","vue","../.chunks/forms-CUSCBQu3.amd","../utils/route.amd","../.chunks/store-YRW59xEF.amd","../.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd","../utils/system.amd","../require/css.amd!../assets/tabsView.css"],(function(A,h,e,p,f,g,S,M){"use strict";if(typeof e>"u")var e=window.Vue;const k=(o,n)=>`top:${String(o)}:${n}`,y={loadLocalStorge:(o,n)=>{if(!n.$id)return;const t=k(o,n.$id);try{const a=JSON.parse(localStorage.getItem(t));typeof a==typeof n[o]&&(n[o]=a)}catch{console.warn(new Error(`В localStorage[${t}] не корректный json`))}},addSaverLocalStorge:(o,n)=>{if(!n.$id)return;const t=k(o,n.$id);e.watch(()=>n[o],()=>{localStorage.setItem(t,JSON.stringify(n[o]))},{immediate:!0})}},_=new Set;addEventListener("popstate",o=>{_.forEach(n=>n(o))});const V=Symbol(),$=(o,n)=>{const t=g.defineStore(V,()=>{const a=e.computed(()=>o.showMenuInPopup??p.Core.state.isMobile),i=e.computed(()=>o.pageMod),u=e.ref(!1),r=e.ref(void 0),l=e.ref(!0);return{showMenuInPopup:a,pageMod:i,isShort:u,activeItemName:n,component:r,scrollable:l}},o.idState);if(o.isShortable){const a="isShort";y.loadLocalStorge(a,t),y.addSaverLocalStorge(a,t)}if(t.$id){const a=i=>{n.value=f.getHash(t.$id)};_.add(a)}return t},w=()=>g.useStore(V),N={key:1,class:"top-ellipsis"},v=e.defineComponent({__name:"menuItem",props:{name:{},href:{},icon:{},disabled:{type:Boolean},component:{default:void 0},scrollable:{type:Boolean,default:!0}},setup(o){const n=o,t=w(),a=e.computed(()=>n.name&&t.$id?f.genHash(t.$id,n.name):n.href),i=e.computed(()=>t.showMenuInPopup?S._sfc_main$2:a?"a":"button"),u=r=>{!n.href&&a.value&&r.preventDefault(),n.name&&(t.activeItemName=n.name)};return(r,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{target:"_self",class:e.normalizeClass({"top-tabsView_menuItem":!e.unref(t).showMenuInPopup,"top-active":o.name&&e.unref(t).activeItemName===o.name,"top-disabled":o.disabled,"top-spa-disabled":!0}),href:a.value,"data-top-icon":o.icon||void 0,disabled:o.disabled||void 0,onClick:u},{default:e.withCtx(()=>[e.unref(t).showMenuInPopup?e.renderSlot(r.$slots,"default",{key:0}):r.$slots.default&&!e.unref(t).isShort?(e.openBlock(),e.createElementBlock("span",N,[e.renderSlot(r.$slots,"default")])):e.createCommentVNode("",!0)]),_:3},8,["class","href","data-top-icon","disabled"]))}}),B=o=>o?.name==="AsyncComponentWrapper"&&!o?.__asyncResolved,C=async(o,n)=>{o?.name==="AsyncComponentWrapper"&&(o?.__asyncResolved||(o.__asyncLoader(),await M.sleepWhile(()=>n()&&B(o),200)))},L={class:"top-tabsView_menuOpener"},E=["data-top-icon"],P={class:"top-ellipsis"},T={class:"top-tabsView_menuList"},z={key:0,class:"top-tabsView_menuFooter"},R=e.defineComponent({__name:"menu",props:e.mergeModels({isShortable:{type:Boolean},isLoading:{type:Boolean}},{isLoading:{},isLoadingModifiers:{}}),emits:["update:isLoading"],setup(o){const n=e.useModel(o,"isLoading"),t=w(),a=e.useSlots(),i=new Map,u=()=>{if(!a.default)return;const c=a.default({}).find(s=>s.key==="_menu");c&&r(c.children)},r=c=>{c.forEach(s=>{if(s.type.__name&&s.type.__name!==v.__name)return;if(!s.type.__name&&typeof s.children=="object"){r(s.children);return}if(!s.props?.name||s.props?.disabled)return;const I={title:(s.children.default?.()[0].children).trim(),icon:s.props.icon,component:s.props.component?e.markRaw(s.props.component):v.props.component.default,scrollable:s.props.scrollable??v.props.scrollable.default};i.set(s.props.name,I)})},l=e.ref(null);let d=0;e.watch(()=>t.activeItemName,async()=>{const c=++d;if(i.size===0&&u(),i.size===0){t.activeItemName="";return}if(l.value=i.get(t.activeItemName)??null,!l.value&&t.$id){const s=f.getHash(t.$id);if(l.value=i.get(s)??null,l.value){t.activeItemName=s;return}}if(!l.value){t.activeItemName=i.keys().next().value;return}if(l.value.component===t.component){n.value=!1;return}t.$id&&f.setHash(t.$id,t.activeItemName,!1),n.value=!0,await C(l.value.component,()=>c===d),c===d&&(t.scrollable=l.value.scrollable,t.component=l.value.component,l.value&&!t.component&&console.warn(`Компонент вкладки ${t.activeItemName} не найден. Добавьте props.component для пункта меню ${t.activeItemName}.`))},{immediate:!0});const m=e.ref();let b;return e.onMounted(()=>{b=new ResizeObserver(()=>{m.value.parentElement.style.setProperty("--top-tabsView-contents-offset-top",m.value.offsetHeight+"px")}),b.observe(m.value)}),e.onUnmounted(()=>{b.disconnect()}),(c,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:m,class:e.normalizeClass({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!e.unref(t).showMenuInPopup,"top-tabsView_menu-inPopup_1":e.unref(t).showMenuInPopup,"top-tabsView_menu-short":e.unref(t).isShort&&!e.unref(t).showMenuInPopup})},[e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(S._sfc_main),{key:0},{opener:e.withCtx(()=>[e.createElementVNode("div",L,[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-tabsView_menuOpenerActiveItem","data-top-icon":l.value.icon},[e.createElementVNode("span",P,e.toDisplayString(l.value.title),1)],8,E)):e.createCommentVNode("",!0),s[1]||(s[1]=e.createElementVNode("div",{class:"top-tabsView_menuOpenerIcon","data-top-icon":""},null,-1))])]),contentList:e.withCtx(()=>[e.renderSlot(c.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",T,[e.renderSlot(c.$slots,"default")]),o.isShortable?(e.openBlock(),e.createElementBlock("div",z,[o.isShortable?(e.openBlock(),e.createBlock(v,{key:0,icon:e.unref(t).isShort?"":"",onClick:s[0]||(s[0]=I=>e.unref(t).isShort=!e.unref(t).isShort)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t).isShort?"":"Свернуть"),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64))],2))}}),O=e.defineComponent({__name:"tabsView",props:e.mergeModels({modelValue:{},pageMod:{type:Boolean},showMenuInPopup:{type:Boolean,default:void 0},isShortable:{type:Boolean,default:!1},idState:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const n=o,t=e.useModel(o,"modelValue"),a=$(n,t),i=Math.random();n.pageMod&&p.Core.state.documentClassModificators.set(i,"top-hasTabsViewPageMod"),e.onUnmounted(()=>{n.pageMod&&p.Core.state.documentClassModificators.delete(i),a.$id&&f.delHash(a.$id,a.activeItemName,!0)});const u=e.ref(),r=e.ref(!1);return e.watch([u,()=>a.component],()=>{r.value=B(a.component)},{immediate:!0}),(l,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView":!0,"top-tabsView-pageMod":n.pageMod,"top-tabsView-inPopup":e.unref(a).showMenuInPopup})},[e.createVNode(R,{isShortable:o.isShortable,isLoading:r.value,"onUpdate:isLoading":d[0]||(d[0]=m=>r.value=m)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"menu")]),_:3},8,["isShortable","isLoading"]),e.createElementVNode("div",{class:e.normalizeClass({"top-tabsView_contents":!0,"top-tabsView_contents-isLoading":r.value,"top-tabsView_contents-noScrollable":!e.unref(a).scrollable})},[r.value?(e.openBlock(),e.createBlock(p.TopLoadbar,{key:0})):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.KeepAlive,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(a).component),{ref_key:"componentRef",ref:u},null,512))],1024))],2)],2))}}),D={},H={class:"top-tabsView_menuDelimeter"};function K(o,n){return e.openBlock(),e.createElementBlock("div",H)}const j=p._export_sfc(D,[["render",K]]),x=e.defineComponent({__name:"menuTitle",props:{isSubtitle:{type:Boolean}},setup(o){const n=w();return(t,a)=>e.unref(n).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(S._sfc_main$2),{key:0,type:"title"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3})):e.unref(n).isShort?(e.openBlock(),e.createBlock(j,{key:1})):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":o.isSubtitle})},[e.renderSlot(t.$slots,"default")],2))}});h.TopTabsView=O,h.TopTabsViewMenuItem=v,h.TopTabsViewMenuTitle=x,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=tabsView.amd.js.map
|