@dxtmisha/functional 1.15.13 → 1.15.14

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 (75) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/ai-description.md +7 -7
  3. package/ai-mcp-resources.json +8 -8
  4. package/ai-types.md +1 -1645
  5. package/dist/library.d.ts +3556 -67
  6. package/dist/library.js +281 -311
  7. package/package.json +11 -4
  8. package/dist/classes/design/DesignAbstract.d.ts +0 -61
  9. package/dist/classes/design/DesignAsyncAbstract.d.ts +0 -28
  10. package/dist/classes/design/DesignChanged.d.ts +0 -42
  11. package/dist/classes/design/DesignComp.d.ts +0 -4
  12. package/dist/classes/design/DesignComponents.d.ts +0 -81
  13. package/dist/classes/design/DesignConstructorAbstract.d.ts +0 -150
  14. package/dist/classes/ref/DatetimeRef.d.ts +0 -123
  15. package/dist/classes/ref/EffectScopeGlobal.d.ts +0 -22
  16. package/dist/classes/ref/EventRef.d.ts +0 -22
  17. package/dist/classes/ref/GeoFlagRef.d.ts +0 -82
  18. package/dist/classes/ref/GeoIntlRef.d.ts +0 -220
  19. package/dist/classes/ref/GeoRef.d.ts +0 -82
  20. package/dist/classes/ref/GeoUnitRef.d.ts +0 -153
  21. package/dist/classes/ref/ListDataRef.d.ts +0 -366
  22. package/dist/classes/ref/RouterItemRef.d.ts +0 -61
  23. package/dist/classes/ref/ScrollbarWidthRef.d.ts +0 -22
  24. package/dist/composables/ref/useApiAsyncRef.d.ts +0 -70
  25. package/dist/composables/ref/useApiDelete.d.ts +0 -23
  26. package/dist/composables/ref/useApiGet.d.ts +0 -23
  27. package/dist/composables/ref/useApiManagementAsyncRef.d.ts +0 -58
  28. package/dist/composables/ref/useApiManagementRef.d.ts +0 -161
  29. package/dist/composables/ref/useApiPost.d.ts +0 -23
  30. package/dist/composables/ref/useApiPut.d.ts +0 -23
  31. package/dist/composables/ref/useApiRef.d.ts +0 -159
  32. package/dist/composables/ref/useApiRequest.d.ts +0 -105
  33. package/dist/composables/ref/useBroadcastValueRef.d.ts +0 -11
  34. package/dist/composables/ref/useCookieRef.d.ts +0 -11
  35. package/dist/composables/ref/useFormattersRef.d.ts +0 -21
  36. package/dist/composables/ref/useGeoIntlRef.d.ts +0 -14
  37. package/dist/composables/ref/useGeoUnitRef.d.ts +0 -7
  38. package/dist/composables/ref/useHashRef.d.ts +0 -9
  39. package/dist/composables/ref/useLazyItemByMarginRef.d.ts +0 -24
  40. package/dist/composables/ref/useLazyRef.d.ts +0 -42
  41. package/dist/composables/ref/useLoadingRef.d.ts +0 -7
  42. package/dist/composables/ref/useMeta.d.ts +0 -223
  43. package/dist/composables/ref/useQueryRef.d.ts +0 -9
  44. package/dist/composables/ref/useRouterList.d.ts +0 -28
  45. package/dist/composables/ref/useSearchRef.d.ts +0 -36
  46. package/dist/composables/ref/useSearchValueRef.d.ts +0 -19
  47. package/dist/composables/ref/useSessionRef.d.ts +0 -9
  48. package/dist/composables/ref/useStorageRef.d.ts +0 -10
  49. package/dist/composables/ref/useTranslateRef.d.ts +0 -40
  50. package/dist/flags.d.ts +0 -1
  51. package/dist/functions/basic.d.ts +0 -1
  52. package/dist/functions/computedAsync.d.ts +0 -13
  53. package/dist/functions/computedByLanguage.d.ts +0 -15
  54. package/dist/functions/computedEternity.d.ts +0 -15
  55. package/dist/functions/dxtFunctionalPlugin.d.ts +0 -82
  56. package/dist/functions/executeUse.d.ts +0 -216
  57. package/dist/functions/getInject.d.ts +0 -7
  58. package/dist/functions/getOptions.d.ts +0 -10
  59. package/dist/functions/ref/executeFunctionRef.d.ts +0 -11
  60. package/dist/functions/ref/getApiErrorRef.d.ts +0 -10
  61. package/dist/functions/ref/getBindRef.d.ts +0 -13
  62. package/dist/functions/ref/getRef.d.ts +0 -8
  63. package/dist/functions/ref/render.d.ts +0 -13
  64. package/dist/functions/ref/setRef.d.ts +0 -9
  65. package/dist/functions/ref/toRefItem.d.ts +0 -9
  66. package/dist/functions/render/getBind.d.ts +0 -14
  67. package/dist/functions/render/getClassName.d.ts +0 -8
  68. package/dist/functions/render/getIndexForRender.d.ts +0 -10
  69. package/dist/functions/toBind.d.ts +0 -10
  70. package/dist/functions/toBinds.d.ts +0 -9
  71. package/dist/types/apiTypes.d.ts +0 -74
  72. package/dist/types/constructorTypes.d.ts +0 -126
  73. package/dist/types/listTypes.d.ts +0 -65
  74. package/dist/types/refTypes.d.ts +0 -43
  75. package/dist/types/searchTypes.d.ts +0 -10
@@ -1,161 +0,0 @@
1
- import { Ref, ComputedRef } from 'vue';
2
- import { FormattersOptionsList, ApiData, ApiInstance, ArrayToItem, SearchColumns, SearchFormatList, FormattersListColumns, ApiFetch, ApiDataValidation, ApiErrorItem } from '@dxtmisha/functional-basic';
3
- import { ApiManagementGet, ApiManagementRequest, ApiManagementSearch, ApiManagementValue } from '../../types/apiTypes';
4
- /**
5
- * A powerful composable for comprehensive API request orchestration.
6
- * It centrally manages data loading (GET), list formatting, client-side searching,
7
- * and mutations (POST, PUT, DELETE) through a single reactive interface.
8
- *
9
- * Мощный композабл для комплексной оркестрации API-запросов.
10
- * Он централизованно управляет загрузкой данных (GET), форматированием списков,
11
- * клиентским поиском и мутациями (POST, PUT, DELETE) через единый реактивный интерфейс.
12
- *
13
- * @template Return type of data returned by the API / тип данных, возвращаемых API
14
- * @template FormattersOptions optional formatting rules / опциональные правила форматирования
15
- * @template Post data type for POST creation request / тип данных для POST-запроса создания
16
- * @template Put data type for PUT update request / тип данных для PUT-запроса обновления
17
- * @template Delete data type for DELETE removal request / тип данных для DELETE-запроса удаления
18
- * @template Type original data type (before transformation) / тип исходных данных (до трансформации)
19
- * @template Item type of a single item in the data list / тип одного элемента из списка данных
20
- * @template ItemFormatters item type after formatters are applied / тип элемента после применения форматировщиков
21
- * @template Columns search columns derived from formatting / колонки, по которым производится поиск
22
- *
23
- * @param propsGet main GET request settings (path, reactivity, skeleton, etc.) / настройки главного GET-запроса
24
- * @param formattersOptions optional reactive formatting rules / правила для реактивного форматирования данных
25
- * @param searchOptions optional client-side search settings / настройки для клиентского поиска по списку
26
- * @param postRequest optional POST mutation settings / настройки для POST-запроса создания
27
- * @param putRequest optional PUT mutation settings / настройки для PUT-запроса обновления
28
- * @param deleteRequest optional DELETE mutation settings / настройки для DELETE-запроса удаления
29
- * @param action common callback executed after any successful mutation / общий коллбэк после любой успешной мутации
30
- * @param apiInstance API instance for requests (defaults to Api.getItem()) / экземпляр API для выполнения запроса
31
- *
32
- * @returns reactive API management interface / реактивный интерфейс управления API
33
- *
34
- * @note This hook is recommended to be used in tandem with `executeUse` for centralized state management.
35
- * By wrapping `useApiManagementRef` in `executeUseProvide` or `executeUseGlobal`, you can ensure
36
- * a single source of truth across the component tree or the entire application.
37
- *
38
- * Рекомендуется использовать этот хук в тандеме с `executeUse` для централизованного управления состоянием.
39
- * Обернув `useApiManagementRef` в `executeUseProvide` или `executeUseGlobal`, вы обеспечите
40
- * единый источник истины в дереве компонентов или во всем приложении.
41
- *
42
- * @remarks
43
- * Data formatting guidelines for `formattersOptions`:
44
- * - **Recommended for formatting:** Numbers that represent values (prices, counts), dates, currency, units, and statuses.
45
- * - **Not recommended for formatting:** Technical identifiers such as ID, UUID, account numbers (if used for logic), types, or internal codes.
46
- *
47
- * Рекомендации по форматированию данных для `formattersOptions`:
48
- * - **Рекомендуется для форматирования:** Числа, представляющие значения (цены, количества), даты, валюта, единицы измерения и статусы.
49
- * - **Не рекомендуется для форматирования:** Технические идентификаторы, такие как ID, UUID, номера счетов (если они используются для логики), типы или внутренние коды.
50
- *
51
- * @example
52
- * // 1. Comprehensive API orchestration/ Комплексная оркестрация API
53
- * const products = useApiManagementRef(
54
- * {
55
- * path: '/api/v1/products',
56
- * skeleton: () => Array(5).fill({ id: 0, name: 'Loading...', price: 0 })
57
- * },
58
- * {
59
- * // Formatters for display/ Форматтеры для отображения
60
- * price: (v) => `${v} USD`,
61
- * created_at: (v) => new Date(v).toLocaleDateString()
62
- * },
63
- * {
64
- * // Client-side search setup/ Настройка поиска на стороне клиента
65
- * columns: ['name', 'category']
66
- * },
67
- * { path: '/api/v1/products' }, // POST (create)
68
- * { path: (data) => `/api/v1/products/${data.id}` }, // PUT (update)
69
- * { path: (data) => `/api/v1/products/${data.id}` } // DELETE (remove)
70
- * );
71
- *
72
- * // Accessing data/ Доступ к данным:
73
- * // products.list.value -> processed, formatted, and searched list
74
- * // products.sendPost({ name: 'New Product', price: 100 }) -> execute mutation
75
- */
76
- export declare function useApiManagementRef<Return extends ApiManagementValue, FormattersOptions extends FormattersOptionsList, Post extends Record<string, any>, Put extends Record<string, any>, Delete extends Record<string, any>, Type extends ApiManagementValue = Return, Item extends ArrayToItem<Return> = ArrayToItem<Return>, ItemFormatters extends FormattersListColumns<Item, FormattersOptions>[number] = FormattersListColumns<Item, FormattersOptions>[number], Columns extends SearchColumns<ItemFormatters> = []>(propsGet: ApiManagementGet<Return, Type>, formattersOptions?: FormattersOptions, searchOptions?: ApiManagementSearch<Item, Columns>, postRequest?: ApiManagementRequest<Post>, putRequest?: ApiManagementRequest<Put>, deleteRequest?: ApiManagementRequest<Delete>, action?: () => Promise<void> | void, apiInstance?: ApiInstance): {
77
- /** Whether data passed the `typeData` check / `true`, если данные прошли проверку `typeData` */
78
- isValid: ComputedRef<boolean>;
79
- /** Status of response contract validation / Статус валидации контракта ответа */
80
- isResponseContractValid: ComputedRef<boolean>;
81
- /** Result of response validation / Результат валидации ответа */
82
- responseValidationResult: ComputedRef< ApiDataValidation | undefined>;
83
- /** Processed data array (supports Skeleton, formatters, and search) / Обработанный массив данных (поддерживает Skeleton, форматтеры и поиск) */
84
- list: ComputedRef<SearchFormatList<ItemFormatters, Columns>>;
85
- /** Raw reactive data from `useApiRef` / «Сырые» реактивные данные из `useApiRef` */
86
- readonly data: ComputedRef<ApiData<Return> | undefined>;
87
- /** Current error from request / Текущая ошибка ответа */
88
- errorItem: ComputedRef< ApiErrorItem | undefined>;
89
- /** Current number of items in `list` (changes with search) / Текущее количество элементов в `list` (меняется при поиске) */
90
- readonly length: ComputedRef<number>;
91
- /** Total number of items in raw `data` / Общее количество элементов в исходном `data` */
92
- lengthData: ComputedRef<number>;
93
- /** Initial loading flag (true when no data yet) / Флаг первичной загрузки (когда данных еще нет) */
94
- starting: ComputedRef<boolean>;
95
- /** Active read process flag / Флаг активного процесса чтения данных */
96
- reading: Ref<boolean, boolean>;
97
- /** Loading state for the main GET request / Общее состояние загрузки главного GET-запроса */
98
- loading: Ref<boolean, boolean>;
99
- /** Loading state during search processing / Состояние загрузки в процессе поиска */
100
- loadingSearch: Ref<boolean, boolean> | undefined;
101
- /** Loading state for POST mutation / Состояние загрузки для POST мутации */
102
- loadingPost: Ref<boolean, boolean> | undefined;
103
- /** Loading state for PUT mutation / Состояние загрузки для PUT мутации */
104
- loadingPut: Ref<boolean, boolean> | undefined;
105
- /** Loading state for DELETE mutation / Состояние загрузки для DELETE мутации */
106
- loadingDelete: Ref<boolean, boolean> | undefined;
107
- /** Whether search is currently active / Активен ли поиск (есть ли поисковый запрос) */
108
- isSearch: ComputedRef<boolean> | undefined;
109
- /** Reactive search string (Proxy to `searchOptions.value`) / Реактивная строка поиска (Proxy к переданному `searchOptions.value`) */
110
- search: Ref<string>;
111
- /**
112
- * Manual initialization
113
- *
114
- * Ручная инициализация
115
- */
116
- init: () => void;
117
- /**
118
- * SSR initialization
119
- *
120
- * Инициализация SSR
121
- */
122
- initSsr: () => void;
123
- /**
124
- * Default reset
125
- *
126
- * Сброс по умолчанию
127
- */
128
- /**
129
- * Force reset the GET request and clear state.
130
- *
131
- * Принудительный перезапуск GET-запроса и очистка состояния.
132
- */
133
- reset: () => Promise<void>;
134
- /**
135
- * Abort the current network request.
136
- *
137
- * Прекращение текущего сетевого запроса.
138
- */
139
- abort: () => void;
140
- /**
141
- * Execute POST mutation request.
142
- *
143
- * Выполнить POST запрос мутации.
144
- * @param request request data / данные запроса
145
- */
146
- sendPost: (request?: ApiFetch["request"]) => Promise<ApiData<Post> | undefined>;
147
- /**
148
- * Execute PUT mutation request.
149
- *
150
- * Выполнить PUT запрос мутации.
151
- * @param request request data / данные запроса
152
- */
153
- sendPut: (request?: ApiFetch["request"]) => Promise<ApiData<Put> | undefined>;
154
- /**
155
- * Execute DELETE mutation request.
156
- *
157
- * Выполнить DELETE запрос мутации.
158
- * @param request request data / данные запроса
159
- */
160
- sendDelete: (request?: ApiFetch["request"]) => Promise<ApiData<Delete> | undefined>;
161
- };
@@ -1,23 +0,0 @@
1
- import { ApiData, ApiFetch } from '@dxtmisha/functional-basic';
2
- import { UseApiRequestSetup } from './useApiRequest';
3
- import { Ref } from 'vue';
4
- /**
5
- * Setup interface for API POST request.
6
- *
7
- * Интерфейс настроек для POST запроса API.
8
- */
9
- export interface UseApiPostSetup<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> extends Omit<UseApiRequestSetup<T, Request, Return>, 'method'> {
10
- }
11
- /**
12
- * Use API post request.
13
- * This is a convenient wrapper over `useApiRequest` that pre-fills the POST method.
14
- *
15
- * Использование API post запроса.
16
- * Это удобная обертка над `useApiRequest`, которая предустанавливает метод POST.
17
- * @param setup Configured parameters as a single object / Настроенные параметры в виде единого объекта
18
- * @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
19
- */
20
- export declare function useApiPost<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(setup: UseApiPostSetup<T, Request, Return>): {
21
- loading: Ref<boolean, boolean>;
22
- send(request?: Request | undefined): Promise<Return | undefined>;
23
- };
@@ -1,23 +0,0 @@
1
- import { ApiData, ApiFetch } from '@dxtmisha/functional-basic';
2
- import { UseApiRequestSetup } from './useApiRequest';
3
- import { Ref } from 'vue';
4
- /**
5
- * Setup interface for API PUT request.
6
- *
7
- * Интерфейс настроек для PUT запроса API.
8
- */
9
- export interface UseApiPutSetup<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> extends Omit<UseApiRequestSetup<T, Request, Return>, 'method'> {
10
- }
11
- /**
12
- * Use API put request.
13
- * This is a convenient wrapper over `useApiRequest` that pre-fills the PUT method.
14
- *
15
- * Использование API put запроса.
16
- * Это удобная обертка над `useApiRequest`, которая предустанавливает метод PUT.
17
- * @param setup Configured parameters as a single object / Настроенные параметры в виде единого объекта
18
- * @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
19
- */
20
- export declare function useApiPut<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(setup: UseApiPutSetup<T, Request, Return>): {
21
- loading: Ref<boolean, boolean>;
22
- send(request?: Request | undefined): Promise<Return | undefined>;
23
- };
@@ -1,159 +0,0 @@
1
- import { ComputedRef, Ref } from 'vue';
2
- import { ApiInstance, ApiData, ApiDataValidation, ApiErrorStorageList, ApiErrorItem } from '@dxtmisha/functional-basic';
3
- import { ApiOptions } from '../../types/apiTypes';
4
- import { RefOrNormal, RefType } from '../../types/refTypes';
5
- /**
6
- * Use api ref return type.
7
- *
8
- * Тип возвращаемого значения для useApiRef.
9
- */
10
- export interface UseApiRef<R> {
11
- /** Reactive data (Computed) / Реактивные данные (Computed) */
12
- data: ComputedRef<ApiData<R> | undefined>;
13
- /** Item (Ref) / Элемент (Ref) */
14
- item: Ref<ApiData<R> | undefined>;
15
- /** Error item (Computed) / Элемент ошибки (Computed) */
16
- errorItem: ComputedRef<ApiErrorItem | undefined>;
17
- /**
18
- * Status of response contract validation.
19
- *
20
- * Статус валидации контракта ответа.
21
- */
22
- isResponseContractValid: ComputedRef<boolean>;
23
- /**
24
- * Result of response validation.
25
- *
26
- * Результат валидации ответа.
27
- */
28
- responseValidationResult: ComputedRef<ApiDataValidation | undefined>;
29
- /** Length of the list (Computed) / Длина списка (Computed) */
30
- length: ComputedRef<number>;
31
- /** Start request flag (true if no data yet) / Флаг начала запроса (true если еще нет данных) */
32
- starting: ComputedRef<boolean>;
33
- /** Request load flag / Флаг загрузки запроса */
34
- loading: Ref<boolean>;
35
- /** Active reading flag / Флаг активного чтения */
36
- reading: Ref<boolean>;
37
- /** Checks if the request is starting (true if no data yet) / Проверяет, начинается ли запрос (true, если данных еще нет) */
38
- isStarting(): boolean;
39
- /**
40
- * Checks if the request is currently loading.
41
- *
42
- * Проверяет, загружается ли запрос в данный момент.
43
- */
44
- isLoading(): boolean;
45
- /**
46
- * Checks if the request is currently reading.
47
- *
48
- * Проверяет, читается ли запрос в данный момент.
49
- */
50
- isReading(): boolean;
51
- /**
52
- * Gets the current item data.
53
- *
54
- * Получает текущие данные элемента.
55
- */
56
- getItem(): ApiData<R> | undefined;
57
- /**
58
- * Manual initialization
59
- *
60
- * Ручная инициализация
61
- */
62
- init(): void;
63
- /**
64
- * SSR initialization
65
- *
66
- * Инициализация SSR
67
- */
68
- initSsr(): void;
69
- /**
70
- * Default reset.
71
- *
72
- * Сброс по умолчанию.
73
- */
74
- reset(): Promise<void>;
75
- /**
76
- * Stop request.
77
- *
78
- * Остановка запроса.
79
- */
80
- stop(): void;
81
- /**
82
- * Abort request.
83
- *
84
- * Отмена запроса.
85
- */
86
- abort(): void;
87
- }
88
- /**
89
- * Main reactive composable for working with API requests in Vue.
90
- * Automatically handles SSR, reactivity, caching, error storage, data validation, and transformation.
91
- *
92
- * Главный реактивный composable для работы с API запросами во Vue.
93
- * Автоматически обрабатывает SSR, реактивность, кэширование, хранение ошибок, валидацию данных и трансформацию.
94
- *
95
- * @example
96
- * ```typescript
97
- * import { Schema as S } from '@effect/schema'
98
- * import { useApiRef } from '@dxtmisha/functional'
99
- *
100
- * // Define a schema using @effect/schema
101
- * const userSchema = S.Struct({ id: S.Number, name: S.String })
102
- *
103
- * const { data, loading, errorItem, isResponseContractValid } = useApiRef(
104
- * '/users/1',
105
- * { method: 'GET' },
106
- * true, // reactivity
107
- * undefined, // conditions
108
- * (data) => ({ ...data, isTransformed: true }), // transformation
109
- * (data) => { // validateResponseContract
110
- * try {
111
- * return { status: 'success', data: S.decodeUnknownSync(userSchema)(data) }
112
- * } catch (e) {
113
- * return { status: 'error', errors: e }
114
- * }
115
- * },
116
- * [ // errorContract (ApiErrorStorageList)
117
- * {
118
- * status: 404,
119
- * message: 'User not found'
120
- * }
121
- * ]
122
- * )
123
- * ```
124
- *
125
- * @param path path to request (can be a Ref or Getter) / путь к запросу (может быть Ref или Getter)
126
- * @param options data for the request (headers, method, etc.) / данные для запроса (заголовки, метод и т.д.)
127
- * @param reactivity should reactivity be enabled (automatically re-fetch on deps change) /
128
- * включить ли реактивность (автоматически повторять запрос при изменении зависимостей)
129
- * @param conditions conditions for executing the request (request will wait until true) /
130
- * условия выполнения запроса (запрос будет ждать пока не станет true)
131
- * @param transformation transforms the received response data / преобразовывает полученные данные ответа
132
- * @param validateResponseContract function to validate response data contract. Used to ensure that the API
133
- * response matches the expected structure. Highly recommended to use with `@effect/schema`.
134
- * It should return `ApiDataValidation` containing a `status` ('success' or 'error')
135
- * and the parsed data or errors. /
136
- * Функция для проверки контракта данных ответа. Используется для гарантии того, что ответ API соответствует
137
- * ожидаемой структуре. Настоятельно рекомендуется использовать с `@effect/schema`. Должна возвращать объект
138
- * `ApiDataValidation`, содержащий `status` ('success' или 'error') и распарсенные данные или ошибки.
139
- * @param errorContract array of expected error contracts for the request (`ApiErrorStorageList`).
140
- * Highly recommended to add if there is information about possible request errors. Allows you to predefine
141
- * possible errors (by code, status, or custom validation). If an error occurs matching one of these contracts,
142
- * it will be automatically processed and made available via the `errorItem` computed property. /
143
- * Массив контрактов ожидаемых ошибок для запроса (`ApiErrorStorageList`). Желательно добавлять, если есть
144
- * информация о возможных ошибках запроса. Позволяет заранее описать возможные ошибки (по коду, статусу или
145
- * кастомной валидации). Если возникает ошибка, совпадающая с одним из контрактов, она автоматически
146
- * обрабатывается и становится доступной через вычисляемое свойство `errorItem` для удобного отображения в UI.
147
- * @param unmounted whether to stop the request and clear data from cache when component is unmounted /
148
- * нужно ли останавливать запрос и удалять данные из кеша при размонтировании компонента
149
- * @param apiInstance Api instance (defaults to global Api instance) /
150
- * Экземпляр Api (по умолчанию используется глобальный экземпляр Api)
151
- */
152
- export declare function useApiRef<R, T = R>(path?: RefOrNormal<string | undefined>, options?: ApiOptions, reactivity?: boolean, conditions?: RefType<boolean>, transformation?: (data: T, isResponseContractValid?: ApiDataValidation) => ApiData<R>, validateResponseContract?: (data: T) => ApiDataValidation, errorContract?: ApiErrorStorageList, unmounted?: boolean, apiInstance?: ApiInstance): UseApiRef<R>;
153
- /**
154
- * Defines global conditions for the API request.
155
- *
156
- * Определяет глобальные условия для API запроса.
157
- * @param conditions conditions for executing the request/ условия выполнения запроса
158
- */
159
- export declare const setApiRefGlobalConditions: (conditions: RefType<any>) => void;
@@ -1,105 +0,0 @@
1
- import { ApiInstance, ApiMethodItem, ApiData, ApiFetch, ApiErrorStorageList, ApiDataValidation } from '@dxtmisha/functional-basic';
2
- import { ApiOptions } from '../../types/apiTypes';
3
- import { RefOrNormal } from '../../types/refTypes';
4
- import { Ref } from 'vue';
5
- /**
6
- * Setup interface for API request.
7
- *
8
- * Интерфейс настроек для запроса API.
9
- */
10
- export interface UseApiRequestSetup<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> {
11
- /**
12
- * Path to the API endpoint. Can be a reactive Ref or a normal string.
13
- *
14
- * Путь к endpoint API. Может быть реактивным Ref или обычной строкой.
15
- */
16
- path?: RefOrNormal<string | undefined>;
17
- /**
18
- * HTTP method used for the request (e.g., GET, POST, PUT, DELETE). Defaults to POST.
19
- *
20
- * HTTP метод, используемый для запроса (например, GET, POST, PUT, DELETE). По умолчанию POST.
21
- */
22
- method?: ApiMethodItem;
23
- /**
24
- * Action/callback to perform after the request has successfully completed.
25
- * Can return a Promise for asynchronous operations.
26
- *
27
- * Действие/колбэк, выполняемое после успешного завершения запроса.
28
- * Может возвращать Promise для асинхронных операций.
29
- */
30
- action?: (data: Return | undefined) => Promise<void> | void;
31
- /**
32
- * Transformation function that modifies the raw response data before returning it.
33
- *
34
- * Функция трансформации, которая преобразует исходные данные ответа перед их возвратом.
35
- */
36
- transformation?: (data: T) => Return;
37
- /**
38
- * Function to validate the request payload contract. Used to ensure that the API
39
- * request payload matches the expected structure.
40
- *
41
- * Функция для проверки контракта данных запроса. Используется для гарантии того,
42
- * что отправляемая полезная нагрузка запроса API соответствует ожидаемой структуре.
43
- */
44
- validateRequestContract?: (data: Request) => ApiDataValidation & Return;
45
- /**
46
- * Function to validate response data contract. Used to ensure that the API
47
- * response matches the expected structure. Highly recommended to use with `@effect/schema`.
48
- * It should return `ApiDataValidation` containing a `status` ('success' or 'error')
49
- * and the parsed data or errors.
50
- *
51
- * Функция для проверки контракта данных ответа. Используется для гарантии того, что ответ API соответствует
52
- * ожидаемой структуре. Настоятельно рекомендуется использовать с `@effect/schema`. Должна возвращать объект
53
- * `ApiDataValidation`, содержащий `status` ('success' или 'error') и распарсенные данные или ошибки.
54
- */
55
- validateResponseContract?: (data: T) => ApiDataValidation & Return;
56
- /**
57
- * Array of expected error contracts for the request (`ApiErrorStorageList`).
58
- * Highly recommended to add if there is information about possible request errors. Allows you to predefine
59
- * possible errors (by code, status, or custom validation) which will be centrally processed by the application.
60
- *
61
- * Массив контрактов ожидаемых ошибок для запроса (`ApiErrorStorageList`). Желательно добавлять, если есть
62
- * информация о возможных ошибках запроса. Позволяет заранее описать возможные ошибки (по коду, статусу или
63
- * кастомной валидации) для централизованной обработки в приложении.
64
- */
65
- errorContract?: ApiErrorStorageList;
66
- /**
67
- * If true, extracts the nested 'data' field from the response object instead of returning the raw envelope.
68
- * Defaults to true.
69
- *
70
- * Если true, извлекает вложенное поле 'data' из объекта ответа вместо возврата исходного конверта.
71
- * По умолчанию true.
72
- */
73
- toData?: boolean;
74
- /**
75
- * Additional request options (headers, query params, etc.).
76
- *
77
- * Дополнительные опции запроса (заголовки, параметры запроса и т.д.).
78
- */
79
- options?: ApiOptions;
80
- /**
81
- * Custom Api instance to execute the request on. Defaults to global Api singleton instance.
82
- *
83
- * Кастомный экземпляр класса Api для выполнения запроса. По умолчанию используется глобальный синглтон Api.
84
- */
85
- apiInstance?: ApiInstance;
86
- }
87
- /**
88
- * Use api request.
89
- *
90
- * Использование запроса api.
91
- * @param setup Configured parameters as a single object / Настроенные параметры в виде единого объекта
92
- * @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
93
- */
94
- export declare function useApiRequest<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>({ path, method, action, transformation, validateRequestContract, validateResponseContract, errorContract, toData, options, apiInstance }: UseApiRequestSetup<T, Request, Return>): {
95
- /** Loading state / Состояние загрузки */
96
- loading: Ref<boolean, boolean>;
97
- /**
98
- * Send request.
99
- *
100
- * Отправка запроса.
101
- * @param request Request data / Данные запроса
102
- * @returns Response data / Данные ответа
103
- */
104
- send(request?: Request): Promise<Return | undefined>;
105
- };
@@ -1,11 +0,0 @@
1
- import { Ref } from 'vue';
2
- type BroadcastValueItem<T> = T | string | undefined;
3
- /**
4
- * Creates a reactive variable to manage data between browser tabs.
5
- *
6
- * Создает реактивную переменную для управления данными между вкладками браузера.
7
- * @param name value name/ название значения
8
- * @param defaultValue default value/ значение по умолчанию
9
- */
10
- export declare function useBroadcastValueRef<T>(name: string, defaultValue?: T | string | (() => (T | string))): Ref<BroadcastValueItem<T>>;
11
- export {};
@@ -1,11 +0,0 @@
1
- import { Ref } from 'vue';
2
- import { CookieOptions } from '@dxtmisha/functional-basic';
3
- /**
4
- * Creates a reactive variable to manage cookies.
5
- *
6
- * Создает реактивную переменную для управления cookie.
7
- * @param name cookie name / название cookie
8
- * @param defaultValue value or function to change data / значение или функция для изменения данных
9
- * @param options additional parameters / дополнительные параметры
10
- */
11
- export declare function useCookieRef<T>(name: string, defaultValue?: T | string | (() => (T | string)), options?: CookieOptions): Ref<T | string | undefined>;
@@ -1,21 +0,0 @@
1
- import { FormattersListProp, FormattersOptionsList, FormattersReturn } from '@dxtmisha/functional-basic';
2
- import { RefType } from '../../types/refTypes';
3
- import { ComputedRef } from 'vue';
4
- /**
5
- * Composable for reactive formatting of data lists based on specified rules for each property. /
6
- * Композабл для реактивного форматирования списков данных на основе заданных правил для каждого свойства.
7
- * @param list source data list (Ref or ComputedRef) / исходный список данных (Ref или ComputedRef)
8
- * @param options formatting settings for each property / настройки форматирования для каждого свойства
9
- */
10
- export declare function useFormattersRef<Options extends FormattersOptionsList = FormattersOptionsList, List extends FormattersListProp = FormattersListProp>(list: RefType<List | undefined>, options: Options): {
11
- /**
12
- * Formatted data list (ComputedRef) /
13
- * Отформатированный список данных (ComputedRef)
14
- */
15
- listFormat: ComputedRef<FormattersReturn<List, Options>>;
16
- /**
17
- * Returns the count of records in the list (ComputedRef) /
18
- * Возвращает количество записей в списке (ComputedRef)
19
- */
20
- length: ComputedRef<number>;
21
- };
@@ -1,14 +0,0 @@
1
- import { GeoIntlRef } from '../../classes/ref/GeoIntlRef';
2
- /**
3
- * Returns a class object for working with data formatting.
4
- *
5
- * Возвращает объект класса для работы с форматированием данных.
6
- *
7
- * @remarks
8
- * Avoid using this reactive composable if reactive updates are not required.
9
- * For non-reactive formatting, use the standard `GeoIntl` class from `@dxtmisha/functional-basic`.
10
- *
11
- * Старайтесь избегать этого хука, если не требуется реактивная переменная.
12
- * Для нереактивного форматирования используйте обычный `GeoIntl` из `@dxtmisha/functional-basic`.
13
- */
14
- export declare function useGeoIntlRef(): GeoIntlRef;
@@ -1,7 +0,0 @@
1
- import { GeoUnitRef } from '../../classes/ref/GeoUnitRef';
2
- /**
3
- * Returns a class object for working with unit formatting and automatic conversions.
4
- *
5
- * Возвращает объект класса для работы с форматированием единиц измерения и автоматической конвертацией.
6
- */
7
- export declare function useGeoUnitRef(): GeoUnitRef;
@@ -1,9 +0,0 @@
1
- import { ShallowRef } from 'vue';
2
- /**
3
- * Creates a reactive variable to manage the hash.
4
- *
5
- * Создает реактивную переменную для управления хэшем.
6
- * @param name value name / название значения
7
- * @param defaultValue default value / значение по умолчанию
8
- */
9
- export declare function useHashRef<T>(name: string, defaultValue?: T | (() => T)): ShallowRef<T>;
@@ -1,24 +0,0 @@
1
- import { useLazyRef, LazyItem } from './useLazyRef';
2
- import { RefType } from '../../types/refTypes';
3
- import { ShallowRef } from 'vue';
4
- export type LazyItemByMargin = {
5
- rootMargin: string;
6
- item: ReturnType<typeof useLazyRef>;
7
- };
8
- /**
9
- * Hook for initializing the tracking of an element's appearance on the screen by margin.
10
- *
11
- * Хук для инициализации отслеживания появления элемента на экране по отступу.
12
- * @param element element for tracking/ элемента для отслеживания
13
- * @param rootMargin root margin for IntersectionObserver/ отступ для IntersectionObserver
14
- */
15
- export declare const useLazyItemByMarginRef: (element: RefType<HTMLElement | undefined>, rootMargin?: string) => {
16
- /** Lazy item status/ Статус ленивого элемента */
17
- lazyItemStatus: ShallowRef<boolean, boolean>;
18
- /**
19
- * Getting a tracked lazy item.
20
- *
21
- * Получение отслеживаемого ленивого элемента.
22
- */
23
- readonly lazyItem: LazyItem | undefined;
24
- };
@@ -1,42 +0,0 @@
1
- import { Ref, ShallowRef } from 'vue';
2
- export type LazyItem = {
3
- status: ShallowRef<boolean>;
4
- ratio: ShallowRef<number>;
5
- entry: ShallowRef<IntersectionObserverEntry | undefined>;
6
- stopWatch: () => void;
7
- };
8
- export type LazyList = Record<string, LazyItem>;
9
- /**
10
- * Hook for initializing the tracking of an element's appearance on the screen.
11
- *
12
- * Хук для инициализации отслеживания появления элемента на экране.
13
- */
14
- export declare const useLazyRef: (options?: IntersectionObserverInit) => {
15
- intersectionObserver: IntersectionObserver | undefined;
16
- /**
17
- * Getting a tracked element.
18
- *
19
- * Получение отслеживаемого элемента.
20
- * @param element tracked element/ отслеживаемый элемент
21
- */
22
- getItem(element?: HTMLElement): LazyItem | undefined;
23
- /**
24
- * Adding an element for tracking.
25
- *
26
- * Добавление элемента для отслеживания.
27
- * @param element element for tracking/ элемента для отслеживания
28
- */
29
- addLazyItem(element: Ref<HTMLElement | undefined>): ShallowRef<boolean, boolean>;
30
- /**
31
- * Removing an element from tracking.
32
- *
33
- * Удаление элемента из отслеживания.
34
- */
35
- removeLazyItem: (element?: HTMLElement) => void;
36
- /**
37
- * Removing all elements from tracking.
38
- *
39
- * Удаление всех элементов из отслеживания.
40
- */
41
- disconnectLazy: () => void | undefined;
42
- };
@@ -1,7 +0,0 @@
1
- import { ShallowRef } from 'vue';
2
- /**
3
- * Returns the loading status.
4
- *
5
- * Возвращает статус загрузки.
6
- */
7
- export declare function useLoadingRef(): ShallowRef<boolean, boolean>;