@topvisor/ui 1.4.3-updateGroupSelector.2 → 1.4.3-updateRegionSelector.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/.chunks/core-Dgj_YGWh.es.js +268 -0
  2. package/.chunks/core-Dgj_YGWh.es.js.map +1 -0
  3. package/.chunks/core-DzDFXOdI.amd.js +2 -0
  4. package/.chunks/core-DzDFXOdI.amd.js.map +1 -0
  5. package/.chunks/{datepicker-C5ErMHwe.amd.js → datepicker-oa8ZwRhq.amd.js} +2 -2
  6. package/.chunks/{datepicker-C5ErMHwe.amd.js.map → datepicker-oa8ZwRhq.amd.js.map} +1 -1
  7. package/.chunks/{datepicker-DMYB1RFK.es.js → datepicker-qToxk2nN.es.js} +2 -2
  8. package/.chunks/{datepicker-DMYB1RFK.es.js.map → datepicker-qToxk2nN.es.js.map} +1 -1
  9. package/.chunks/{dialog_regionSelectorRegions-CHC-Blbu.amd.js → dialog_regionSelectorRegions-CZ0tMVSq.amd.js} +2 -2
  10. package/.chunks/{dialog_regionSelectorRegions-CHC-Blbu.amd.js.map → dialog_regionSelectorRegions-CZ0tMVSq.amd.js.map} +1 -1
  11. package/.chunks/{dialog_regionSelectorRegions-BMWyYCfD.es.js → dialog_regionSelectorRegions-qDW2Ejsv.es.js} +5 -5
  12. package/.chunks/{dialog_regionSelectorRegions-BMWyYCfD.es.js.map → dialog_regionSelectorRegions-qDW2Ejsv.es.js.map} +1 -1
  13. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-C3qaTBlO.amd.js → dialogs.vue_vue_type_script_setup_true_lang-BBix_8WK.amd.js} +2 -2
  14. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-C3qaTBlO.amd.js.map → dialogs.vue_vue_type_script_setup_true_lang-BBix_8WK.amd.js.map} +1 -1
  15. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-BZM_iKPW.es.js → dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js} +3 -3
  16. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-BZM_iKPW.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js.map} +1 -1
  17. package/.chunks/{forms-EhKRBbpk.amd.js → forms-DDNzqU6o.amd.js} +3 -3
  18. package/.chunks/{forms-EhKRBbpk.amd.js.map → forms-DDNzqU6o.amd.js.map} +1 -1
  19. package/.chunks/{forms-CUaoBGD5.es.js → forms-DtC-EKJL.es.js} +24 -24
  20. package/.chunks/{forms-CUaoBGD5.es.js.map → forms-DtC-EKJL.es.js.map} +1 -1
  21. package/.chunks/lazy-DDNqYkXn.amd.js +2 -0
  22. package/.chunks/lazy-DDNqYkXn.amd.js.map +1 -0
  23. package/.chunks/{lazy-40pjr8cZ.es.js → lazy-HKSyLh72.es.js} +23 -19
  24. package/.chunks/lazy-HKSyLh72.es.js.map +1 -0
  25. package/.chunks/{notice-Chj1PUTD.es.js → notice-BvQl911b.es.js} +3 -3
  26. package/.chunks/{notice-Chj1PUTD.es.js.map → notice-BvQl911b.es.js.map} +1 -1
  27. package/.chunks/{notice-DQb_Za5_.amd.js → notice-CJ3WOTCM.amd.js} +2 -2
  28. package/.chunks/{notice-DQb_Za5_.amd.js.map → notice-CJ3WOTCM.amd.js.map} +1 -1
  29. package/.chunks/{page.vue_vue_type_script_setup_true_lang-C-xQ-eC7.es.js → page.vue_vue_type_script_setup_true_lang-Dd5-B4Ss.es.js} +9 -9
  30. package/.chunks/{page.vue_vue_type_script_setup_true_lang-C-xQ-eC7.es.js.map → page.vue_vue_type_script_setup_true_lang-Dd5-B4Ss.es.js.map} +1 -1
  31. package/.chunks/{page.vue_vue_type_script_setup_true_lang-bUK5c5qn.amd.js → page.vue_vue_type_script_setup_true_lang-fl6-Ql4d.amd.js} +2 -2
  32. package/.chunks/{page.vue_vue_type_script_setup_true_lang-bUK5c5qn.amd.js.map → page.vue_vue_type_script_setup_true_lang-fl6-Ql4d.amd.js.map} +1 -1
  33. package/.chunks/policy.vue_vue_type_style_index_0_lang-Bv3LwNDC.es.js +519 -0
  34. package/.chunks/policy.vue_vue_type_style_index_0_lang-Bv3LwNDC.es.js.map +1 -0
  35. package/.chunks/policy.vue_vue_type_style_index_0_lang-Da7rztT5.amd.js +2 -0
  36. package/.chunks/policy.vue_vue_type_style_index_0_lang-Da7rztT5.amd.js.map +1 -0
  37. package/.chunks/{popup-COONSpqs.es.js → popup-OuDglAOF.es.js} +4 -4
  38. package/.chunks/popup-OuDglAOF.es.js.map +1 -0
  39. package/.chunks/{popup-CDaQNt-3.amd.js → popup-yXIpyok3.amd.js} +2 -2
  40. package/.chunks/popup-yXIpyok3.amd.js.map +1 -0
  41. package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-24i49Ad3.amd.js → popupHint.vue_vue_type_style_index_0_lang-Bu_HvFoW.amd.js} +2 -2
  42. package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-24i49Ad3.amd.js.map → popupHint.vue_vue_type_style_index_0_lang-Bu_HvFoW.amd.js.map} +1 -1
  43. package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-DzT1BFMx.es.js → popupHint.vue_vue_type_style_index_0_lang-DAQIAxvu.es.js} +5 -5
  44. package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-DzT1BFMx.es.js.map → popupHint.vue_vue_type_style_index_0_lang-DAQIAxvu.es.js.map} +1 -1
  45. package/.chunks/{utils-Kzz2mc2t.es.js → utils-BNzP9anP.es.js} +2 -2
  46. package/.chunks/{utils-Kzz2mc2t.es.js.map → utils-BNzP9anP.es.js.map} +1 -1
  47. package/.chunks/{utils-DsGgpnXD.amd.js → utils-CWn_G7OO.amd.js} +2 -2
  48. package/.chunks/{utils-DsGgpnXD.amd.js.map → utils-CWn_G7OO.amd.js.map} +1 -1
  49. package/.chunks/{utils-C2_4b48S.amd.js → utils-DIviuVEw.amd.js} +2 -2
  50. package/.chunks/utils-DIviuVEw.amd.js.map +1 -0
  51. package/.chunks/{utils-DQ-xahGh.es.js → utils-Dma85ehT.es.js} +67 -67
  52. package/.chunks/utils-Dma85ehT.es.js.map +1 -0
  53. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-BuoAaghB.es.js → widgetInput.vue_vue_type_script_setup_true_lang-CX_BOcVY.es.js} +6 -6
  54. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-BuoAaghB.es.js.map → widgetInput.vue_vue_type_script_setup_true_lang-CX_BOcVY.es.js.map} +1 -1
  55. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-Dgjj70vU.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-CkOmb3VD.amd.js} +2 -2
  56. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-Dgjj70vU.amd.js.map → widgetInput.vue_vue_type_script_setup_true_lang-CkOmb3VD.amd.js.map} +1 -1
  57. package/api/index.amd.js +1 -1
  58. package/api/index.js +6 -6
  59. package/assets/policy.css +1 -1
  60. package/assets/project.css +1 -1
  61. package/assets/tabsView.css +1 -1
  62. package/assets/themes/dark.css +1 -1
  63. package/assets/themes/light.css +1 -1
  64. package/charts/charts.amd.js +1 -1
  65. package/charts/charts.js +14 -14
  66. package/core/app.amd.js +1 -1
  67. package/core/app.js +15 -15
  68. package/dialog/dialog.amd.js +1 -1
  69. package/dialog/dialog.js +6 -6
  70. package/extra/extra.js +2 -2
  71. package/forms/forms.amd.js +1 -1
  72. package/forms/forms.js +1 -1
  73. package/formsExt/formsExt.amd.js +1 -1
  74. package/formsExt/formsExt.amd.js.map +1 -1
  75. package/formsExt/formsExt.js +46 -45
  76. package/formsExt/formsExt.js.map +1 -1
  77. package/icomoon/Topvisor icons.json +776 -334
  78. package/icomoon/demo.html +85 -1
  79. package/icomoon/fonts/Topvisor-2.eot +0 -0
  80. package/icomoon/fonts/Topvisor-2.svg +6 -0
  81. package/icomoon/fonts/Topvisor-2.ttf +0 -0
  82. package/icomoon/fonts/Topvisor-2.woff +0 -0
  83. package/icomoon/selection.json +1 -1
  84. package/icomoon/style.css +23 -5
  85. package/layout/layout.amd.js +1 -1
  86. package/layout/layout.js +7 -7
  87. package/package.json +2 -2
  88. package/popup/popup.amd.js +1 -1
  89. package/popup/popup.js +9 -9
  90. package/popup/worker.amd.js +1 -1
  91. package/popup/worker.js +2 -2
  92. package/project/project.amd.js +1 -1
  93. package/project/project.amd.js.map +1 -1
  94. package/project/project.js +1043 -658
  95. package/project/project.js.map +1 -1
  96. package/src/components/formsExt/editInput/types.d.ts +4 -0
  97. package/src/components/formsExt/selector2/composables/useMenu.d.ts +1 -1
  98. package/src/components/formsExt/selector2/selector2.vue.d.ts +2 -0
  99. package/src/components/formsExt/selector2/types.d.ts +35 -1
  100. package/src/components/formsExt/selector2/utils.d.ts +2 -0
  101. package/src/components/popup/lib/popup.d.ts +1 -1
  102. package/src/components/popup/popup/opener/types.d.ts +1 -1
  103. package/src/components/project/groupSelector/folders/utils.d.ts +6 -26
  104. package/src/components/project/groupSelector/groupSelector.vue.d.ts +1 -1
  105. package/src/components/project/groupSelector/groups/groups.vue.d.ts +13 -6
  106. package/src/components/project/groupSelector/groups/utils.d.ts +18 -53
  107. package/src/components/project/groupSelector/utils.d.ts +37 -0
  108. package/src/components/project/project.d.ts +2 -0
  109. package/src/components/project/projectSelector/cache.d.ts +29 -0
  110. package/src/components/project/projectSelector/projectSelector.vue.d.ts +128 -0
  111. package/src/components/project/projectSelector/submenu/submenu.vue.d.ts +4 -0
  112. package/src/components/project/projectSelector/submenu/types.d.ts +17 -0
  113. package/src/components/project/projectSelector/types.d.ts +48 -0
  114. package/src/components/project/projectSelector/utils.d.ts +248 -0
  115. package/src/components/project/regionSelector/types.d.ts +9 -4
  116. package/src/components/project/regionSelector/utils/utils.d.ts +5 -5
  117. package/src/components/tabsView/tabsView/menu.vue.d.ts +2 -6
  118. package/src/core/directives/shortcut.d.ts +2 -1
  119. package/src/core/directives/tooltip.d.ts +2 -6
  120. package/tabs/tabs.js +5 -5
  121. package/tabsView/tabsView.amd.js +1 -1
  122. package/tabsView/tabsView.amd.js.map +1 -1
  123. package/tabsView/tabsView.js +93 -104
  124. package/tabsView/tabsView.js.map +1 -1
  125. package/utils/clipboard.amd.js +1 -1
  126. package/utils/clipboard.js +1 -1
  127. package/utils/date.amd.js +1 -1
  128. package/utils/date.js +1 -1
  129. package/utils/device.amd.js +1 -1
  130. package/utils/device.js +1 -1
  131. package/utils/lodash.amd.js +1 -1
  132. package/utils/lodash.js +1 -1
  133. package/utils/price.amd.js +1 -1
  134. package/utils/price.js +1 -1
  135. package/utils/searchers.amd.js +1 -1
  136. package/utils/searchers.js +3 -3
  137. package/utils/string.amd.js +1 -1
  138. package/utils/string.js +1 -1
  139. package/.chunks/core-BEpKBNHt.amd.js +0 -2
  140. package/.chunks/core-BEpKBNHt.amd.js.map +0 -1
  141. package/.chunks/core-DBWAn2Eg.es.js +0 -242
  142. package/.chunks/core-DBWAn2Eg.es.js.map +0 -1
  143. package/.chunks/lazy-40pjr8cZ.es.js.map +0 -1
  144. package/.chunks/lazy-DSFLxvj4.amd.js +0 -2
  145. package/.chunks/lazy-DSFLxvj4.amd.js.map +0 -1
  146. package/.chunks/policy.vue_vue_type_style_index_0_lang-6S_OFLu6.amd.js +0 -2
  147. package/.chunks/policy.vue_vue_type_style_index_0_lang-6S_OFLu6.amd.js.map +0 -1
  148. package/.chunks/policy.vue_vue_type_style_index_0_lang-BRUOmEM8.es.js +0 -498
  149. package/.chunks/policy.vue_vue_type_style_index_0_lang-BRUOmEM8.es.js.map +0 -1
  150. package/.chunks/popup-CDaQNt-3.amd.js.map +0 -1
  151. package/.chunks/popup-COONSpqs.es.js.map +0 -1
  152. package/.chunks/utils-C2_4b48S.amd.js.map +0 -1
  153. package/.chunks/utils-DQ-xahGh.es.js.map +0 -1
@@ -2,6 +2,10 @@ import { Props as InputProps } from '../../forms/input/types';
2
2
  import { Props as ButtonProps } from '../../forms/button/types';
3
3
  export interface Props {
4
4
  modelValue: string;
5
+ /**
6
+ * Всегда показывать кнопку подтверждения ввода
7
+ */
8
+ alwaysShowSubmitBtn?: boolean;
5
9
  /**
6
10
  * Любые props компонента Input, за исключением modelValue
7
11
  */
@@ -5,7 +5,7 @@ import { ITEM_ID_NEW } from '../utils';
5
5
  /**
6
6
  * Функционал поиска
7
7
  */
8
- export declare const useMenu: (model: Ref<Props["modelValue"]>, emits: ReturnType<typeof defineEmits>, items: Ref<Props["items"]>, multiselect: Props["multiselect"], useAllItem: Ref<Props["useAllItem"]>, appendSearchToResult: Ref<Props["appendSearchToResult"]>, searchFields: Ref<Props["searchFields"]>, searchType: Ref<Props["searchType"]>, minLength: number, api: API) => {
8
+ export declare const useMenu: (model: Ref<Props["modelValue"]>, emits: ReturnType<typeof defineEmits>, items: Ref<Props["items"]>, multiselect: Props["multiselect"], useAllItem: Ref<Props["useAllItem"]>, appendSearchToResult: Ref<Props["appendSearchToResult"]>, appendSearchAllowDuplicate: Ref<Props["appendSearchAllowDuplicate"]>, appendSearchToResultCond: Ref<Props["appendSearchToResultCond"]>, appendWithoutSelect: Ref<Props["appendWithoutSelect"]>, searchFields: Ref<Props["searchFields"]>, searchType: Ref<Props["searchType"]>, minLength: number, api: API) => {
9
9
  searchText: Ref<string, string>;
10
10
  resetSearch: () => void;
11
11
  genIsShort: () => boolean;
@@ -25,9 +25,11 @@ declare const __VLS_component: DefineComponent<__VLS_PublicProps, {
25
25
  */
26
26
  resetCache: (resetAPICache?: boolean) => void;
27
27
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
28
+ open: () => any;
28
29
  "update:modelValue": (value: Item | Item[]) => any;
29
30
  appendItem: (item: Item) => any;
30
31
  }, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
32
+ onOpen?: (() => any) | undefined;
31
33
  "onUpdate:modelValue"?: ((value: Item | Item[]) => any) | undefined;
32
34
  onAppendItem?: ((item: Item) => any) | undefined;
33
35
  }>, {
@@ -50,11 +50,17 @@ export interface Props {
50
50
  *
51
51
  * По полю `id` учитывается только полное совпадение
52
52
  */
53
- searchFields: string[];
53
+ searchFields?: string[];
54
54
  /**
55
55
  * Текст для placeholder поля поиска
56
56
  */
57
57
  placeholder?: string;
58
+ /**
59
+ * Добавить кнопку `Отменить` к виджету поиска. Клик по ней закрывает popup
60
+ *
61
+ * Только для `searchType` = `popup`
62
+ */
63
+ hasCloserBtn?: boolean;
58
64
  /**
59
65
  * Если указан, будет выполнена загрузка результатов через API
60
66
  *
@@ -95,6 +101,26 @@ export interface Props {
95
101
  * При добавлении элемента будет вызван emit `appendItem(item)`
96
102
  */
97
103
  appendSearchToResult?: boolean;
104
+ /**
105
+ * Разрешить добавлять элемент, даже если в списке уже есть точное совпадение по имени
106
+ *
107
+ * Работает только вместе с `appendSearchToResult = true`
108
+ */
109
+ appendSearchAllowDuplicate?: boolean;
110
+ /**
111
+ * Условие отображения пункта «добавить введённое значение» `item = {id:null, name:search}`
112
+ *
113
+ * Вызывается только если `appendSearchToResult = true`
114
+ *
115
+ * Должна вернуть `true`, чтобы показать этот пункт (например, при валидации URL/формата)
116
+ */
117
+ appendSearchToResultCond?: (search: string) => boolean;
118
+ /**
119
+ * Не закрывать popup и не выбирать элемент автоматически после «добавления введённого значения»
120
+ *
121
+ * Работает только вместе с `appendSearchToResult = true`
122
+ */
123
+ appendWithoutSelect?: boolean;
98
124
  /**
99
125
  * Режим выбора нескольких вариантов
100
126
  *
@@ -137,6 +163,10 @@ export interface Props {
137
163
  * @subcategory Single select
138
164
  */
139
165
  selectedAsPlaceholder?: boolean;
166
+ /**
167
+ * code горячей клавиши для открытия селектора ('KeyA');
168
+ */
169
+ openerShortcut?: string;
140
170
  }
141
171
  export interface Slots {
142
172
  /**
@@ -165,6 +195,10 @@ export type Emits = {
165
195
  * @see `props.appendSearchToResult`
166
196
  */
167
197
  'appendItem': [item: Item];
198
+ /**
199
+ * Будет вызвано при открытии Popup
200
+ */
201
+ open: [];
168
202
  };
169
203
  export interface PropsItemMulti {
170
204
  id: Item['id'];
@@ -19,5 +19,7 @@ export declare const isSelected: (modelValue: Props["modelValue"], item: Item, c
19
19
  * @param api - api, которое используется в `TopSelector`
20
20
  * @param search - введенная строка поиска
21
21
  * @param fieldName - имя поля, по которому надо добавить фильтр на поиск по нестрогому соответствию
22
+ *
23
+ * @todo Объединить с apiSetSearchParamsFilter() из @/components/project/projectSelector/utils.ts
22
24
  */
23
25
  export declare const apiSetSearchParamsFilter: (api: NonNullable<Props["api"]>, search: string, fieldName: string) => void;
@@ -22,7 +22,7 @@ export interface PopupOptions {
22
22
  * - aftershow.top-menu-popup
23
23
  * - afterclose.top-menu-popup
24
24
  */
25
- export declare class TopLibPopup<T extends Record<string, any> | undefined = undefined> extends Component {
25
+ export declare class TopLibPopup<T extends Record<string, any> | undefined = Record<string, any>> extends Component {
26
26
  static componentName: string;
27
27
  el: HTMLElement & {
28
28
  __TopPopupOpenerProps: OpenerProps<T>;
@@ -1,4 +1,4 @@
1
- export interface OpenerProps<T extends Record<string, any> | undefined = undefined> {
1
+ export interface OpenerProps<T extends Record<string, any> | undefined = Record<string, any>> {
2
2
  /**
3
3
  * id компонента Popup, который необходимо открыть
4
4
  */
@@ -1,13 +1,12 @@
1
1
  import { Folder, FolderTree } from './types';
2
2
  import { Props } from '../types';
3
3
  import { paths } from 'topvisor-openapi/src/ts/Topvisor';
4
- import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Topvisor/Subdomain';
5
- import { components } from 'topvisor-openapi/src/ts/Qr_2/Types/TplN';
6
4
  import { components } from 'topvisor-openapi/src/ts/Recurring_2/Types/System';
7
5
  import { components } from 'topvisor-openapi/src/ts/Recurring_2/Types/Type';
8
6
  import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Url';
9
7
  import { components } from 'topvisor-openapi/src/ts/Tags_2/Types/Type';
10
8
  import { components } from 'topvisor-openapi/src/ts/Tpvsr_2/Types/Tags';
9
+ import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Topvisor/Subdomain';
11
10
  import { components } from 'topvisor-openapi/src/ts/Votes_2/Types/Rate';
12
11
  import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Date';
13
12
  import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Lang';
@@ -73,21 +72,9 @@ export declare const genApiGetFolders: (client: Api.Client<Api.TV.Paths, true>,
73
72
  uid?: number | null;
74
73
  hash_id?: number | null;
75
74
  hash?: number | null;
76
- } | {
77
- subdomain?: components["schemas"]["TV.API.Types.Topvisor.Subdomain"];
78
- text: string;
79
- page_url?: string | null;
80
- reply_id?: number | null;
81
75
  } | {
82
76
  url: string;
83
77
  debug?: number;
84
- } | {
85
- text: string;
86
- tpl_n?: components["schemas"]["Qr_2.Types.TplN"];
87
- use_brand?: boolean;
88
- use_logo_colors?: boolean;
89
- color?: unknown[] | null;
90
- point_size?: number;
91
78
  } | {
92
79
  system: components["schemas"]["Recurring_2.Types.System"];
93
80
  type: components["schemas"]["Recurring_2.Types.Type"];
@@ -130,6 +117,8 @@ export declare const genApiGetFolders: (client: Api.Client<Api.TV.Paths, true>,
130
117
  state_time_end: components["schemas"]["TV.API.Types.Date"];
131
118
  } | {
132
119
  tpl: string;
120
+ } | {
121
+ text: string;
133
122
  } | {
134
123
  lang?: components["schemas"]["TV.API.Types.Lang"] | null;
135
124
  } | {
@@ -149,14 +138,6 @@ export declare const genApiGetFolders: (client: Api.Client<Api.TV.Paths, true>,
149
138
  } | {
150
139
  user_id: number;
151
140
  bookmark: boolean;
152
- } | {
153
- subdomain: string;
154
- url: string;
155
- bookmark: boolean;
156
- } | {
157
- subdomain: components["schemas"]["Content_2.Types.Subdomain"];
158
- url: string;
159
- like: boolean;
160
141
  } | {
161
142
  subdomain?: components["schemas"]["Content_2.Types.Subdomain"] | null;
162
143
  tag?: string;
@@ -224,10 +205,6 @@ export declare const genApiGetFolders: (client: Api.Client<Api.TV.Paths, true>,
224
205
  target_type: components["schemas"]["Templates_2.Types.TargetType"];
225
206
  } | {
226
207
  filename: string;
227
- } | {
228
- ticket_id: number;
229
- text: string;
230
- is_silent?: boolean;
231
208
  } | {
232
209
  projects_ids: components["schemas"]["TV.API.Types.IntArray"];
233
210
  provider: components["schemas"]["Tpa_2.Types.Provider"];
@@ -318,6 +295,9 @@ export declare const genApiGetFolders: (client: Api.Client<Api.TV.Paths, true>,
318
295
  subdomain: components["schemas"]["Content_2.Types.Subdomain"];
319
296
  parent_url: string;
320
297
  urls: unknown[];
298
+ } | {
299
+ subdomain: components["schemas"]["Content_2.Types.Subdomain"];
300
+ url?: string | null;
321
301
  } | {
322
302
  type: components["schemas"]["Informer_2.Types.Push.Token.Type"];
323
303
  token: string;
@@ -1,7 +1,7 @@
1
1
  import { Props } from './types';
2
- import { Folder } from './folders/types';
3
2
  import { Group } from './groups/types';
4
3
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
4
+ import { Folder } from './folders/types';
5
5
  import { ItemAll, ItemNew } from '../../formsExt/selector2/types';
6
6
  type __VLS_Props = Props;
7
7
  type __VLS_PublicProps = {
@@ -1,6 +1,6 @@
1
1
  import { Item as SelectorItem, ItemAll, ItemNew, Props, Size, Slots } from '../../../formsExt/selector2/types';
2
2
  import { Group, Props } from './types';
3
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions, ComponentInternalInstance, VNodeProps, AllowedComponentProps, ComponentCustomProps, ShallowUnwrapRef, Slot, ComponentPublicInstance, ComponentOptionsBase, GlobalComponents, GlobalDirectives, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ComponentCustomProperties } from 'vue';
3
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions, ComponentInternalInstance, VNodeProps, AllowedComponentProps, ComponentCustomProps, Attrs, ShallowUnwrapRef, Slot, ComponentPublicInstance, ComponentOptionsBase, GlobalComponents, GlobalDirectives, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ComponentCustomProperties } from 'vue';
4
4
  import { Props } from '../../../forms/button/types';
5
5
  import { TopLibPopup } from '../../../popup/lib/popup';
6
6
  import { OnCleanup } from '@vue/reactivity';
@@ -37,24 +37,28 @@ declare const _default: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Compo
37
37
  readonly isError?: boolean | undefined;
38
38
  readonly openByFocusInput?: boolean | undefined;
39
39
  readonly searchType?: "none" | "inline" | "popup" | undefined;
40
- readonly searchFields: string[];
40
+ readonly searchFields?: string[] | undefined;
41
41
  readonly placeholder?: string | undefined;
42
+ readonly hasCloserBtn?: boolean | undefined;
42
43
  readonly api?: (Api.ClientRequest<any> | Api.ClientRequestCustom<any, any, any>) | undefined;
43
44
  readonly apiSetSearchParams?: ((api: NonNullable< Props["api"]>, search: string) => void) | undefined;
44
45
  readonly minLength?: number | undefined;
45
46
  readonly useCache?: boolean | undefined;
46
47
  readonly appendSearchToResult?: boolean | undefined;
48
+ readonly appendSearchAllowDuplicate?: boolean | undefined;
49
+ readonly appendSearchToResultCond?: ((search: string) => boolean) | undefined;
50
+ readonly appendWithoutSelect?: boolean | undefined;
47
51
  readonly multiselect?: boolean | undefined;
48
52
  readonly useAllItem?: boolean | string | undefined;
49
53
  readonly addChanger?: boolean | undefined;
50
54
  readonly buttonProps?: Props | undefined;
51
55
  readonly selectedAsPlaceholder?: boolean | undefined;
56
+ readonly openerShortcut?: string | undefined;
57
+ readonly onOpen?: (() => any) | undefined;
52
58
  readonly "onUpdate:modelValue"?: ((value: SelectorItem | SelectorItem[]) => any) | undefined;
53
59
  readonly onAppendItem?: ((item: SelectorItem) => any) | undefined;
54
60
  } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
55
- $attrs: {
56
- [x: string]: unknown;
57
- };
61
+ $attrs: Attrs;
58
62
  $refs: {
59
63
  [x: string]: unknown;
60
64
  } & {
@@ -69,16 +73,18 @@ declare const _default: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Compo
69
73
  $root: ComponentPublicInstance | null;
70
74
  $parent: ComponentPublicInstance | null;
71
75
  $host: Element | null;
72
- $emit: ((event: "update:modelValue", value: SelectorItem | SelectorItem[]) => void) & ((event: "appendItem", item: SelectorItem) => void);
76
+ $emit: ((event: "open") => void) & ((event: "update:modelValue", value: SelectorItem | SelectorItem[]) => void) & ((event: "appendItem", item: SelectorItem) => void);
73
77
  $el: any;
74
78
  $options: ComponentOptionsBase<Readonly<{
75
79
  modelValue: Props["modelValue"];
76
80
  } & Props> & Readonly<{
81
+ onOpen?: (() => any) | undefined;
77
82
  "onUpdate:modelValue"?: ((value: SelectorItem | SelectorItem[]) => any) | undefined;
78
83
  onAppendItem?: ((item: SelectorItem) => any) | undefined;
79
84
  }>, {
80
85
  resetCache: (resetAPICache?: boolean) => void;
81
86
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
87
+ open: () => any;
82
88
  "update:modelValue": (value: SelectorItem | SelectorItem[]) => any;
83
89
  appendItem: (item: SelectorItem) => any;
84
90
  }, string, {
@@ -118,6 +124,7 @@ declare const _default: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Compo
118
124
  }> & Omit<Readonly<{
119
125
  modelValue: Props["modelValue"];
120
126
  } & Props> & Readonly<{
127
+ onOpen?: (() => any) | undefined;
121
128
  "onUpdate:modelValue"?: ((value: SelectorItem | SelectorItem[]) => any) | undefined;
122
129
  onAppendItem?: ((item: SelectorItem) => any) | undefined;
123
130
  }>, "resetCache" | ("size" | "openByFocusInput" | "items" | "searchFields" | "searchType" | "minLength")> & ShallowUnwrapRef<{
@@ -1,13 +1,12 @@
1
1
  import { Folder } from '../folders/types';
2
2
  import { Group, Props } from './types';
3
3
  import { paths } from 'topvisor-openapi/src/ts/Topvisor';
4
- import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Topvisor/Subdomain';
5
- import { components } from 'topvisor-openapi/src/ts/Qr_2/Types/TplN';
6
4
  import { components } from 'topvisor-openapi/src/ts/Recurring_2/Types/System';
7
5
  import { components } from 'topvisor-openapi/src/ts/Recurring_2/Types/Type';
8
6
  import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Url';
9
7
  import { components } from 'topvisor-openapi/src/ts/Tags_2/Types/Type';
10
8
  import { components } from 'topvisor-openapi/src/ts/Tpvsr_2/Types/Tags';
9
+ import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Topvisor/Subdomain';
11
10
  import { components } from 'topvisor-openapi/src/ts/Votes_2/Types/Rate';
12
11
  import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Date';
13
12
  import { components } from 'topvisor-openapi/src/ts/TV/API/Types/Lang';
@@ -80,21 +79,9 @@ export declare const genApiGetGroups: (client: Api.Client<Api.TV.Paths, true>, s
80
79
  uid?: number | null;
81
80
  hash_id?: number | null;
82
81
  hash?: number | null;
83
- } | {
84
- subdomain?: components["schemas"]["TV.API.Types.Topvisor.Subdomain"];
85
- text: string;
86
- page_url?: string | null;
87
- reply_id?: number | null;
88
82
  } | {
89
83
  url: string;
90
84
  debug?: number;
91
- } | {
92
- text: string;
93
- tpl_n?: components["schemas"]["Qr_2.Types.TplN"];
94
- use_brand?: boolean;
95
- use_logo_colors?: boolean;
96
- color?: unknown[] | null;
97
- point_size?: number;
98
85
  } | {
99
86
  system: components["schemas"]["Recurring_2.Types.System"];
100
87
  type: components["schemas"]["Recurring_2.Types.Type"];
@@ -137,6 +124,8 @@ export declare const genApiGetGroups: (client: Api.Client<Api.TV.Paths, true>, s
137
124
  state_time_end: components["schemas"]["TV.API.Types.Date"];
138
125
  } | {
139
126
  tpl: string;
127
+ } | {
128
+ text: string;
140
129
  } | {
141
130
  lang?: components["schemas"]["TV.API.Types.Lang"] | null;
142
131
  } | {
@@ -156,14 +145,6 @@ export declare const genApiGetGroups: (client: Api.Client<Api.TV.Paths, true>, s
156
145
  } | {
157
146
  user_id: number;
158
147
  bookmark: boolean;
159
- } | {
160
- subdomain: string;
161
- url: string;
162
- bookmark: boolean;
163
- } | {
164
- subdomain: components["schemas"]["Content_2.Types.Subdomain"];
165
- url: string;
166
- like: boolean;
167
148
  } | {
168
149
  subdomain?: components["schemas"]["Content_2.Types.Subdomain"] | null;
169
150
  tag?: string;
@@ -177,7 +158,9 @@ export declare const genApiGetGroups: (client: Api.Client<Api.TV.Paths, true>, s
177
158
  command: components["schemas"]["Cron_2.Params.CommandTrait"]["command"];
178
159
  } | {
179
160
  ints: components["schemas"]["TV.API.Types.IntArray"];
180
- strings: components["schemas"]["TV.API.Types.StringArray"];
161
+ strings: components["schemas"] /**
162
+ * Элемент для выбора всех групп
163
+ */["TV.API.Types.StringArray"];
181
164
  booleans: components["schemas"]["TV.API.Types.BoolArray"];
182
165
  enum_numbers: components["schemas"]["Example_2.Types.EnumNumberArray"];
183
166
  } | {
@@ -231,10 +214,6 @@ export declare const genApiGetGroups: (client: Api.Client<Api.TV.Paths, true>, s
231
214
  target_type: components["schemas"]["Templates_2.Types.TargetType"];
232
215
  } | {
233
216
  filename: string;
234
- } | {
235
- ticket_id: number;
236
- text: string;
237
- is_silent?: boolean;
238
217
  } | {
239
218
  projects_ids: components["schemas"]["TV.API.Types.IntArray"];
240
219
  provider: components["schemas"]["Tpa_2.Types.Provider"];
@@ -325,6 +304,9 @@ export declare const genApiGetGroups: (client: Api.Client<Api.TV.Paths, true>, s
325
304
  subdomain: components["schemas"]["Content_2.Types.Subdomain"];
326
305
  parent_url: string;
327
306
  urls: unknown[];
307
+ } | {
308
+ subdomain: components["schemas"]["Content_2.Types.Subdomain"];
309
+ url?: string | null;
328
310
  } | {
329
311
  type: components["schemas"]["Informer_2.Types.Push.Token.Type"];
330
312
  token: string;
@@ -448,7 +430,7 @@ export declare const genApiGetGroups: (client: Api.Client<Api.TV.Paths, true>, s
448
430
  token: string;
449
431
  }, "fields" | "filters" | "orders" | "fetch_style">, never>;
450
432
  /**
451
- * Создать API запрос на получение групп
433
+ * Создать API запрос на добавление групп
452
434
  */
453
435
  export declare const genApiAddGroup: (client: Api.Client<Api.TV.Paths, true>, service: NonNullable<Props["service"]>) => Api.ClientRequest<Api.ClientRequestContext< paths, keyof paths, true>, never, Omit<Record<string, never> | {
454
436
  ec?: string | null;
@@ -457,21 +439,9 @@ export declare const genApiAddGroup: (client: Api.Client<Api.TV.Paths, true>, se
457
439
  uid?: number | null;
458
440
  hash_id?: number | null;
459
441
  hash?: number | null;
460
- } | {
461
- subdomain?: components["schemas"]["TV.API.Types.Topvisor.Subdomain"];
462
- text: string;
463
- page_url?: string | null;
464
- reply_id?: number | null;
465
442
  } | {
466
443
  url: string;
467
444
  debug?: number;
468
- } | {
469
- text: string;
470
- tpl_n?: components["schemas"]["Qr_2.Types.TplN"];
471
- use_brand?: boolean;
472
- use_logo_colors?: boolean;
473
- color?: unknown[] | null;
474
- point_size?: number;
475
445
  } | {
476
446
  system: components["schemas"]["Recurring_2.Types.System"];
477
447
  type: components["schemas"]["Recurring_2.Types.Type"];
@@ -514,6 +484,8 @@ export declare const genApiAddGroup: (client: Api.Client<Api.TV.Paths, true>, se
514
484
  state_time_end: components["schemas"]["TV.API.Types.Date"];
515
485
  } | {
516
486
  tpl: string;
487
+ } | {
488
+ text: string;
517
489
  } | {
518
490
  lang?: components["schemas"]["TV.API.Types.Lang"] | null;
519
491
  } | {
@@ -533,14 +505,6 @@ export declare const genApiAddGroup: (client: Api.Client<Api.TV.Paths, true>, se
533
505
  } | {
534
506
  user_id: number;
535
507
  bookmark: boolean;
536
- } | {
537
- subdomain: string;
538
- url: string;
539
- bookmark: boolean;
540
- } | {
541
- subdomain: components["schemas"]["Content_2.Types.Subdomain"];
542
- url: string;
543
- like: boolean;
544
508
  } | {
545
509
  subdomain?: components["schemas"]["Content_2.Types.Subdomain"] | null;
546
510
  tag?: string;
@@ -554,7 +518,9 @@ export declare const genApiAddGroup: (client: Api.Client<Api.TV.Paths, true>, se
554
518
  command: components["schemas"]["Cron_2.Params.CommandTrait"]["command"];
555
519
  } | {
556
520
  ints: components["schemas"]["TV.API.Types.IntArray"];
557
- strings: components["schemas"]["TV.API.Types.StringArray"];
521
+ strings: components["schemas"] /**
522
+ * Элемент для выбора всех групп
523
+ */["TV.API.Types.StringArray"];
558
524
  booleans: components["schemas"]["TV.API.Types.BoolArray"];
559
525
  enum_numbers: components["schemas"]["Example_2.Types.EnumNumberArray"];
560
526
  } | {
@@ -608,10 +574,6 @@ export declare const genApiAddGroup: (client: Api.Client<Api.TV.Paths, true>, se
608
574
  target_type: components["schemas"]["Templates_2.Types.TargetType"];
609
575
  } | {
610
576
  filename: string;
611
- } | {
612
- ticket_id: number;
613
- text: string;
614
- is_silent?: boolean;
615
577
  } | {
616
578
  projects_ids: components["schemas"]["TV.API.Types.IntArray"];
617
579
  provider: components["schemas"]["Tpa_2.Types.Provider"];
@@ -702,6 +664,9 @@ export declare const genApiAddGroup: (client: Api.Client<Api.TV.Paths, true>, se
702
664
  subdomain: components["schemas"]["Content_2.Types.Subdomain"];
703
665
  parent_url: string;
704
666
  urls: unknown[];
667
+ } | {
668
+ subdomain: components["schemas"]["Content_2.Types.Subdomain"];
669
+ url?: string | null;
705
670
  } | {
706
671
  type: components["schemas"]["Informer_2.Types.Push.Token.Type"];
707
672
  token: string;
@@ -0,0 +1,37 @@
1
+ import { Props } from './groups/types';
2
+ import { Folder } from './folders/types';
3
+ import { ListItemProps } from '../../popup/popup/types';
4
+ import { ITEM_ID_ALL, ITEM_ID_NEW } from '../../formsExt/formsExt';
5
+ /**
6
+ * Генерировать отформатированную папку
7
+ */
8
+ export declare const genFormatedFolder: (folder: Folder) => {
9
+ name: string;
10
+ path: string;
11
+ id: number;
12
+ childsIds?: number[];
13
+ countAllGroupsActive?: number;
14
+ count_folders?: number;
15
+ count_groups?: number;
16
+ count_groups_active?: number;
17
+ parent_id?: number;
18
+ listItemProps?: ListItemProps;
19
+ };
20
+ /**
21
+ * Генерировать отформатированную группу
22
+ */
23
+ export declare const genFormatedGroup: (group: Props["group"]) => {
24
+ name: string;
25
+ id: ITEM_ID_ALL;
26
+ } | {
27
+ name: string;
28
+ id: ITEM_ID_NEW;
29
+ } | {
30
+ name: string;
31
+ folder_id: number;
32
+ folder_path: string;
33
+ on?: 0 | 1;
34
+ status?: 0 | 1;
35
+ id: number | ITEM_ID_NEW;
36
+ listItemProps?: ListItemProps;
37
+ };
@@ -3,6 +3,8 @@ export { useItemsFromCompetitors } from './competitorSelector/composables';
3
3
  export { default as TopRegionSelector } from './regionSelector/regionSelector.vue';
4
4
  export { findRegion, genSearcherByKey, dialogRegionSelector } from './regionSelector/utils/utils';
5
5
  export { default as TopGroupSelector } from './groupSelector/groupSelector.vue';
6
+ export { default as TopProjectSelector } from './projectSelector/projectSelector.vue';
7
+ export { clearCache } from './projectSelector/cache';
6
8
  export type { Emits as TopTagSelectorEmits, Tag, TagId, TagIdExclude } from './tagSelector/types';
7
9
  export { genElPopupOpener as genElTopTagSelectorPopupOpener, renderElPopupOpener as renderElTopTagSelectorPopupOpener, } from './tagSelector/utils/el';
8
10
  export { default as TopTagSelector } from './tagSelector/tagSelector.vue';
@@ -0,0 +1,29 @@
1
+ import { Item } from '../../formsExt/selector2/types';
2
+ import { ShallowRef, Ref } from 'vue';
3
+ /**
4
+ * Кеш списка проектов
5
+ *
6
+ * Используется только при `dataSource` = `static`
7
+ * Данные синхронизируются между всеми экземплярами ProjectSelector
8
+ */
9
+ export declare const projectsCache: ShallowRef<Item[] | undefined, Item[] | undefined>;
10
+ export declare const resetStateSignal: Ref<number, number>;
11
+ /**
12
+ * Promise текущего выполняющегося запроса на получение проектов.
13
+ *
14
+ * Используется для дедупликации запросов: если запрос уже запущен, повторные вызовы будут ждать один и тот же Promise.
15
+ */
16
+ export declare const projectsRequest: Ref<{
17
+ then: <TResult1 = Api.ResponseError<any> | Api.ResponseSuccess<any, "get">, TResult2 = never>(onfulfilled?: ((value: Api.ResponseError<any> | Api.ResponseSuccess<any, "get">) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
18
+ catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<Api.ResponseError<any> | Api.ResponseSuccess<any, "get"> | TResult>;
19
+ finally: (onfinally?: (() => void) | null | undefined) => Promise<Api.ResponseError<any> | Api.ResponseSuccess<any, "get">>;
20
+ readonly [Symbol.toStringTag]: string;
21
+ } | null, Promise<Api.ResponseError<any> | Api.ResponseSuccess<any, "get">> | {
22
+ then: <TResult1 = Api.ResponseError<any> | Api.ResponseSuccess<any, "get">, TResult2 = never>(onfulfilled?: ((value: Api.ResponseError<any> | Api.ResponseSuccess<any, "get">) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
23
+ catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<Api.ResponseError<any> | Api.ResponseSuccess<any, "get"> | TResult>;
24
+ finally: (onfinally?: (() => void) | null | undefined) => Promise<Api.ResponseError<any> | Api.ResponseSuccess<any, "get">>;
25
+ readonly [Symbol.toStringTag]: string;
26
+ } | null>;
27
+ export declare const setCache: (userId: number, projectsTotal: number) => void;
28
+ export declare const getCache: (userId: number) => number | undefined;
29
+ export declare const clearCache: (userId: number, resetState?: boolean) => void;