@dxtmisha/functional 1.11.6 → 1.11.7
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/CHANGELOG.md +79 -0
- package/ai-description.txt +5 -0
- package/ai-types.txt +176 -138
- package/dist/classes/design/DesignAbstract.d.ts +61 -0
- package/dist/classes/design/DesignAsyncAbstract.d.ts +28 -0
- package/dist/classes/design/DesignChanged.d.ts +42 -0
- package/dist/classes/design/DesignComp.d.ts +4 -0
- package/dist/classes/design/DesignComponents.d.ts +81 -0
- package/dist/classes/design/DesignConstructorAbstract.d.ts +150 -0
- package/dist/classes/ref/DatetimeRef.d.ts +123 -0
- package/dist/classes/ref/EffectScopeGlobal.d.ts +22 -0
- package/dist/classes/ref/EventRef.d.ts +22 -0
- package/dist/classes/ref/GeoFlagRef.d.ts +51 -0
- package/dist/classes/ref/GeoIntlRef.d.ts +213 -0
- package/dist/classes/ref/GeoRef.d.ts +58 -0
- package/dist/classes/ref/ListDataRef.d.ts +359 -0
- package/dist/classes/ref/RouterItemRef.d.ts +61 -0
- package/dist/classes/ref/ScrollbarWidthRef.d.ts +22 -0
- package/dist/composables/ref/useApiAsyncRef.d.ts +18 -0
- package/dist/composables/ref/useApiDelete.d.ts +20 -0
- package/dist/composables/ref/useApiGet.d.ts +20 -0
- package/dist/composables/ref/useApiManagementAsyncRef.d.ts +49 -0
- package/dist/composables/ref/useApiManagementRef.d.ts +155 -0
- package/dist/composables/ref/useApiPost.d.ts +20 -0
- package/dist/composables/ref/useApiPut.d.ts +20 -0
- package/dist/composables/ref/useApiRef.d.ts +106 -0
- package/dist/composables/ref/useApiRequest.d.ts +28 -0
- package/dist/composables/ref/useBroadcastValueRef.d.ts +11 -0
- package/dist/composables/ref/useCookieRef.d.ts +11 -0
- package/dist/composables/ref/useFormattersRef.d.ts +21 -0
- package/dist/composables/ref/useGeoIntlRef.d.ts +7 -0
- package/dist/composables/ref/useHashRef.d.ts +9 -0
- package/dist/composables/ref/useLazyItemByMarginRef.d.ts +22 -0
- package/dist/composables/ref/useLazyRef.d.ts +42 -0
- package/dist/composables/ref/useLoadingRef.d.ts +7 -0
- package/dist/composables/ref/useMeta.d.ts +223 -0
- package/dist/composables/ref/useRouterList.d.ts +28 -0
- package/dist/composables/ref/useSearchRef.d.ts +36 -0
- package/dist/composables/ref/useSearchValueRef.d.ts +19 -0
- package/dist/composables/ref/useSessionRef.d.ts +9 -0
- package/dist/composables/ref/useStorageRef.d.ts +10 -0
- package/dist/composables/ref/useTranslateRef.d.ts +40 -0
- package/dist/flags.d.ts +1 -0
- package/dist/functions/basic.d.ts +1 -0
- package/dist/functions/computedAsync.d.ts +13 -0
- package/dist/functions/computedByLanguage.d.ts +15 -0
- package/dist/functions/computedEternity.d.ts +15 -0
- package/dist/functions/dxtFunctionalPlugin.d.ts +61 -0
- package/dist/functions/executeUse.d.ts +216 -0
- package/dist/functions/getInject.d.ts +7 -0
- package/dist/functions/getOptions.d.ts +10 -0
- package/dist/functions/ref/getBindRef.d.ts +13 -0
- package/dist/functions/ref/getRef.d.ts +8 -0
- package/dist/functions/ref/render.d.ts +13 -0
- package/dist/functions/ref/setRef.d.ts +9 -0
- package/dist/functions/ref/toRefItem.d.ts +9 -0
- package/dist/functions/render/getBind.d.ts +14 -0
- package/dist/functions/render/getClassName.d.ts +8 -0
- package/dist/functions/render/getIndexForRender.d.ts +10 -0
- package/dist/functions/toBind.d.ts +10 -0
- package/dist/functions/toBinds.d.ts +9 -0
- package/dist/library.d.ts +62 -2803
- package/dist/library.js +105 -71
- package/dist/types/apiTypes.d.ts +66 -0
- package/dist/types/constructorTypes.d.ts +126 -0
- package/dist/types/listTypes.d.ts +63 -0
- package/dist/types/refTypes.d.ts +36 -0
- package/dist/types/searchTypes.d.ts +6 -0
- package/package.json +7 -5
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { RouteLocationRaw, Router } from 'vue-router';
|
|
2
|
+
import { ConstrHrefProps } from '../../types/constructorTypes';
|
|
3
|
+
/**
|
|
4
|
+
* Router management class.
|
|
5
|
+
*
|
|
6
|
+
* Класс управления роутером.
|
|
7
|
+
*/
|
|
8
|
+
export declare class RouterItemRef {
|
|
9
|
+
/**
|
|
10
|
+
* Get router instance.
|
|
11
|
+
*
|
|
12
|
+
* Получить экземпляр роутера.
|
|
13
|
+
*/
|
|
14
|
+
static get(): Router;
|
|
15
|
+
/**
|
|
16
|
+
* Returns the link by name.
|
|
17
|
+
*
|
|
18
|
+
* Возвращает ссылку по имени.
|
|
19
|
+
* @param name route name/ имя маршрута
|
|
20
|
+
* @param params route parameters/ параметры маршрута
|
|
21
|
+
* @param query route query/ запрос маршрута
|
|
22
|
+
*/
|
|
23
|
+
static getLink(name: string, params?: any, query?: any): string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Returns the link property by name.
|
|
26
|
+
*
|
|
27
|
+
* Возвращает свойство ссылки по имени.
|
|
28
|
+
* @param name route name/ имя маршрута
|
|
29
|
+
* @param params route parameters/ параметры маршрута
|
|
30
|
+
* @param query route query/ запрос маршрута
|
|
31
|
+
*/
|
|
32
|
+
static getHref(name?: string, params?: any, query?: any): ConstrHrefProps;
|
|
33
|
+
/**
|
|
34
|
+
* Site path change.
|
|
35
|
+
*
|
|
36
|
+
* Изменение пути сайта.
|
|
37
|
+
* @param to new path/ новый путь
|
|
38
|
+
*/
|
|
39
|
+
static push(to: string | RouteLocationRaw): void;
|
|
40
|
+
/**
|
|
41
|
+
* Set router instance.
|
|
42
|
+
*
|
|
43
|
+
* Установить экземпляр роутера.
|
|
44
|
+
* @param router router instance/ экземпляр роутера
|
|
45
|
+
*/
|
|
46
|
+
static set(router: Router): void;
|
|
47
|
+
/**
|
|
48
|
+
* Set router instance only once.
|
|
49
|
+
*
|
|
50
|
+
* Установить экземпляр роутера только один раз.
|
|
51
|
+
* @param router router instance/ экземпляр роутера
|
|
52
|
+
*/
|
|
53
|
+
static setOneTime(router: Router): void;
|
|
54
|
+
/**
|
|
55
|
+
* Converts the raw route location to href properties.
|
|
56
|
+
*
|
|
57
|
+
* Преобразует необработанное местоположение маршрута в свойства href.
|
|
58
|
+
* @param to raw route location/ необработанное местоположение маршрута
|
|
59
|
+
*/
|
|
60
|
+
static rawToHref(to?: string | RouteLocationRaw): ConstrHrefProps;
|
|
61
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Ref, ComputedRef } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Class for getting the scroll width as a reactive item.
|
|
4
|
+
*
|
|
5
|
+
* Класс для получения ширины скролла в виде реактивного элемента.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ScrollbarWidthRef {
|
|
8
|
+
/** Reactive item/ Реактивный элемент */
|
|
9
|
+
readonly item: Ref<boolean | undefined, boolean | undefined>;
|
|
10
|
+
/** Reactive width/ Реактивная ширина */
|
|
11
|
+
readonly width: Ref<number, number>;
|
|
12
|
+
/**
|
|
13
|
+
* Constructor
|
|
14
|
+
*/
|
|
15
|
+
constructor();
|
|
16
|
+
/**
|
|
17
|
+
* Checks whether the scroll width is defined.
|
|
18
|
+
*
|
|
19
|
+
* Проверяет, определена ли ширина скролла.
|
|
20
|
+
*/
|
|
21
|
+
readonly is: ComputedRef<boolean>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ApiInstance, ApiData, ApiDataValidation } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { UseApiRef } from './useApiRef';
|
|
3
|
+
import { RefOrNormal, RefType } from '../../types/refTypes';
|
|
4
|
+
import { ApiOptions } from '../../types/apiTypes';
|
|
5
|
+
/**
|
|
6
|
+
* Executes a request and immediately initializes it asynchronously.
|
|
7
|
+
*
|
|
8
|
+
* Выполняет запрос и сразу инициализирует его асинхронно.
|
|
9
|
+
* @param path path to request / путь к запросу
|
|
10
|
+
* @param options data for the request / данные для запроса
|
|
11
|
+
* @param reactivity should reactivity be enabled / включить ли reactivity
|
|
12
|
+
* @param conditions conditions for executing the request / условия выполнения запроса
|
|
13
|
+
* @param transformation transforms the received request / преобразовывает полученный запрос
|
|
14
|
+
* @param validateResponseContract function to validate response data contract / функция для проверки контракта данных ответа
|
|
15
|
+
* @param unmounted delete data from the cache / удалить ли данные из кеша
|
|
16
|
+
* @param apiInstance Api instance / Экземпляр Api
|
|
17
|
+
*/
|
|
18
|
+
export declare function useApiAsyncRef<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, unmounted?: boolean, apiInstance?: ApiInstance): UseApiRef<R>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ApiInstance, ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { ApiOptions } from '../../types/apiTypes';
|
|
3
|
+
import { RefOrNormal } from '../../types/refTypes';
|
|
4
|
+
import { Ref } from 'vue';
|
|
5
|
+
/**
|
|
6
|
+
* Use API delete request.
|
|
7
|
+
*
|
|
8
|
+
* Использование API delete запроса.
|
|
9
|
+
* @param path Path to the API endpoint / Путь к endpoint API
|
|
10
|
+
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
11
|
+
* @param transformation Transformation function / Функция трансформации
|
|
12
|
+
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
13
|
+
* @param options Additional request options / Дополнительные опции запроса
|
|
14
|
+
* @param apiInstance Api instance / Экземпляр Api
|
|
15
|
+
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
16
|
+
*/
|
|
17
|
+
export declare function useApiDelete<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(path?: RefOrNormal<string | undefined>, action?: (data: Return | undefined) => Promise<void> | void, transformation?: (data: T) => Return, toData?: boolean, options?: ApiOptions, apiInstance?: ApiInstance): {
|
|
18
|
+
loading: Ref<boolean, boolean>;
|
|
19
|
+
send(request?: Request | undefined): Promise<Return | undefined>;
|
|
20
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ApiInstance, ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { ApiOptions } from '../../types/apiTypes';
|
|
3
|
+
import { RefOrNormal } from '../../types/refTypes';
|
|
4
|
+
import { Ref } from 'vue';
|
|
5
|
+
/**
|
|
6
|
+
* Use API get request.
|
|
7
|
+
*
|
|
8
|
+
* Использование API get запроса.
|
|
9
|
+
* @param path Path to the API endpoint / Путь к endpoint API
|
|
10
|
+
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
11
|
+
* @param transformation Transformation function / Функция трансформации
|
|
12
|
+
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
13
|
+
* @param options Additional request options / Дополнительные опции запроса
|
|
14
|
+
* @param apiInstance Api instance / Экземпляр Api
|
|
15
|
+
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
16
|
+
*/
|
|
17
|
+
export declare function useApiGet<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(path?: RefOrNormal<string | undefined>, action?: (data: Return | undefined) => Promise<void> | void, transformation?: (data: T) => Return, toData?: boolean, options?: ApiOptions, apiInstance?: ApiInstance): {
|
|
18
|
+
loading: Ref<boolean, boolean>;
|
|
19
|
+
send(request?: Request | undefined): Promise<Return | undefined>;
|
|
20
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ApiInstance, ArrayToItem, FormattersListColumns, FormattersOptionsList, SearchColumns, SearchFormatList, ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { ApiManagementGet, ApiManagementRequest, ApiManagementSearch, ApiManagementValue } from '../../types/apiTypes';
|
|
3
|
+
import { ComputedRef, Ref } from 'vue';
|
|
4
|
+
/**
|
|
5
|
+
* Executes an API management request and immediately initializes it asynchronously.
|
|
6
|
+
*
|
|
7
|
+
* Выполняет запрос управления API и сразу инициализирует его асинхронно.
|
|
8
|
+
* @template Return type of data returned by the API / тип данных, возвращаемых API
|
|
9
|
+
* @template FormattersOptions optional formatting rules / опциональные правила форматирования
|
|
10
|
+
* @template Post data type for POST creation request / тип данных для POST-запроса создания
|
|
11
|
+
* @template Put data type for PUT update request / тип данных для PUT-запроса обновления
|
|
12
|
+
* @template Delete data type for DELETE removal request / тип данных для DELETE-запроса удаления
|
|
13
|
+
* @template Type original data type (before transformation) / тип исходных данных (до трансформации)
|
|
14
|
+
* @template Item type of a single item in the data list / тип одного элемента из списка данных
|
|
15
|
+
* @template ItemFormatters item type after formatters are applied / тип элемента после применения форматировщиков
|
|
16
|
+
* @template Columns search columns derived from formatting / колонки, по которым производится поиск
|
|
17
|
+
*
|
|
18
|
+
* @param propsGet main GET request settings (path, reactivity, skeleton, etc.) / настройки главного GET-запроса
|
|
19
|
+
* @param formattersOptions optional reactive formatting rules / правила для реактивного форматирования данных
|
|
20
|
+
* @param searchOptions optional client-side search settings / настройки для клиентского поиска по списку
|
|
21
|
+
* @param postRequest optional POST mutation settings / настройки для POST-запроса создания
|
|
22
|
+
* @param putRequest optional PUT mutation settings / настройки для PUT-запроса обновления
|
|
23
|
+
* @param deleteRequest optional DELETE mutation settings / настройки для DELETE-запроса удаления
|
|
24
|
+
* @param action common callback executed after any successful mutation / общий коллбэк после любой успешной мутации
|
|
25
|
+
* @param apiInstance API instance for requests (defaults to Api.getItem()) / экземпляр API для выполнения запроса
|
|
26
|
+
*/
|
|
27
|
+
export declare function useApiManagementAsyncRef<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): {
|
|
28
|
+
isValid: ComputedRef<boolean>;
|
|
29
|
+
list: ComputedRef<SearchFormatList<ItemFormatters, Columns>>;
|
|
30
|
+
readonly data: ComputedRef< ApiData<Return> | undefined>;
|
|
31
|
+
readonly length: ComputedRef<number>;
|
|
32
|
+
lengthData: ComputedRef<number>;
|
|
33
|
+
starting: ComputedRef<boolean>;
|
|
34
|
+
reading: Ref<boolean, boolean>;
|
|
35
|
+
loading: Ref<boolean, boolean>;
|
|
36
|
+
loadingSearch: Ref<boolean, boolean> | undefined;
|
|
37
|
+
loadingPost: Ref<boolean, boolean> | undefined;
|
|
38
|
+
loadingPut: Ref<boolean, boolean> | undefined;
|
|
39
|
+
loadingDelete: Ref<boolean, boolean> | undefined;
|
|
40
|
+
isSearch: ComputedRef<boolean> | undefined;
|
|
41
|
+
search: Ref<string, string> | undefined;
|
|
42
|
+
init: () => void;
|
|
43
|
+
initSsr: () => void;
|
|
44
|
+
reset: () => Promise<void>;
|
|
45
|
+
abort: () => void;
|
|
46
|
+
sendPost: (request?: ApiFetch["request"]) => Promise< ApiData<Post> | undefined>;
|
|
47
|
+
sendPut: (request?: ApiFetch["request"]) => Promise< ApiData<Put> | undefined>;
|
|
48
|
+
sendDelete: (request?: ApiFetch["request"]) => Promise< ApiData<Delete> | undefined>;
|
|
49
|
+
};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { FormattersOptionsList, ApiData, ApiInstance, ArrayToItem, SearchColumns, SearchFormatList, FormattersListColumns, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { ApiManagementGet, ApiManagementRequest, ApiManagementSearch, ApiManagementValue } from '../../types/apiTypes';
|
|
3
|
+
import { ComputedRef, Ref } from 'vue';
|
|
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
|
+
/** Processed data array (supports Skeleton, formatters, and search) / Обработанный массив данных (поддерживает Skeleton, форматтеры и поиск) */
|
|
80
|
+
list: ComputedRef<SearchFormatList<ItemFormatters, Columns>>;
|
|
81
|
+
/** Raw reactive data from `useApiRef` / «Сырые» реактивные данные из `useApiRef` */
|
|
82
|
+
readonly data: ComputedRef<ApiData<Return> | undefined>;
|
|
83
|
+
/** Current number of items in `list` (changes with search) / Текущее количество элементов в `list` (меняется при поиске) */
|
|
84
|
+
readonly length: ComputedRef<number>;
|
|
85
|
+
/** Total number of items in raw `data` / Общее количество элементов в исходном `data` */
|
|
86
|
+
lengthData: ComputedRef<number>;
|
|
87
|
+
/** Initial loading flag (true when no data yet) / Флаг первичной загрузки (когда данных еще нет) */
|
|
88
|
+
starting: ComputedRef<boolean>;
|
|
89
|
+
/** Active read process flag / Флаг активного процесса чтения данных */
|
|
90
|
+
reading: Ref<boolean, boolean>;
|
|
91
|
+
/** Loading state for the main GET request / Общее состояние загрузки главного GET-запроса */
|
|
92
|
+
loading: Ref<boolean, boolean>;
|
|
93
|
+
/** Loading state during search processing / Состояние загрузки в процессе поиска */
|
|
94
|
+
loadingSearch: Ref<boolean, boolean> | undefined;
|
|
95
|
+
/** Loading state for POST mutation / Состояние загрузки для POST мутации */
|
|
96
|
+
loadingPost: Ref<boolean, boolean> | undefined;
|
|
97
|
+
/** Loading state for PUT mutation / Состояние загрузки для PUT мутации */
|
|
98
|
+
loadingPut: Ref<boolean, boolean> | undefined;
|
|
99
|
+
/** Loading state for DELETE mutation / Состояние загрузки для DELETE мутации */
|
|
100
|
+
loadingDelete: Ref<boolean, boolean> | undefined;
|
|
101
|
+
/** Whether search is currently active / Активен ли поиск (есть ли поисковый запрос) */
|
|
102
|
+
isSearch: ComputedRef<boolean> | undefined;
|
|
103
|
+
/** Reactive search string (Proxy to `searchOptions.value`) / Реактивная строка поиска (Proxy к переданному `searchOptions.value`) */
|
|
104
|
+
search: Ref<string, string> | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Manual initialization
|
|
107
|
+
*
|
|
108
|
+
* Ручная инициализация
|
|
109
|
+
*/
|
|
110
|
+
init: () => void;
|
|
111
|
+
/**
|
|
112
|
+
* SSR initialization
|
|
113
|
+
*
|
|
114
|
+
* Инициализация SSR
|
|
115
|
+
*/
|
|
116
|
+
initSsr: () => void;
|
|
117
|
+
/**
|
|
118
|
+
* Default reset
|
|
119
|
+
*
|
|
120
|
+
* Сброс по умолчанию
|
|
121
|
+
*/
|
|
122
|
+
/**
|
|
123
|
+
* Force reset the GET request and clear state.
|
|
124
|
+
*
|
|
125
|
+
* Принудительный перезапуск GET-запроса и очистка состояния.
|
|
126
|
+
*/
|
|
127
|
+
reset: () => Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Abort the current network request.
|
|
130
|
+
*
|
|
131
|
+
* Прекращение текущего сетевого запроса.
|
|
132
|
+
*/
|
|
133
|
+
abort: () => void;
|
|
134
|
+
/**
|
|
135
|
+
* Execute POST mutation request.
|
|
136
|
+
*
|
|
137
|
+
* Выполнить POST запрос мутации.
|
|
138
|
+
* @param request request data / данные запроса
|
|
139
|
+
*/
|
|
140
|
+
sendPost: (request?: ApiFetch["request"]) => Promise<ApiData<Post> | undefined>;
|
|
141
|
+
/**
|
|
142
|
+
* Execute PUT mutation request.
|
|
143
|
+
*
|
|
144
|
+
* Выполнить PUT запрос мутации.
|
|
145
|
+
* @param request request data / данные запроса
|
|
146
|
+
*/
|
|
147
|
+
sendPut: (request?: ApiFetch["request"]) => Promise<ApiData<Put> | undefined>;
|
|
148
|
+
/**
|
|
149
|
+
* Execute DELETE mutation request.
|
|
150
|
+
*
|
|
151
|
+
* Выполнить DELETE запрос мутации.
|
|
152
|
+
* @param request request data / данные запроса
|
|
153
|
+
*/
|
|
154
|
+
sendDelete: (request?: ApiFetch["request"]) => Promise<ApiData<Delete> | undefined>;
|
|
155
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ApiInstance, ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { ApiOptions } from '../../types/apiTypes';
|
|
3
|
+
import { RefOrNormal } from '../../types/refTypes';
|
|
4
|
+
import { Ref } from 'vue';
|
|
5
|
+
/**
|
|
6
|
+
* Use API post request.
|
|
7
|
+
*
|
|
8
|
+
* Использование API post запроса.
|
|
9
|
+
* @param path Path to the API endpoint / Путь к endpoint API
|
|
10
|
+
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
11
|
+
* @param transformation Transformation function / Функция трансформации
|
|
12
|
+
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
13
|
+
* @param options Additional request options / Дополнительные опции запроса
|
|
14
|
+
* @param apiInstance Api instance / Экземпляр Api
|
|
15
|
+
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
16
|
+
*/
|
|
17
|
+
export declare function useApiPost<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(path?: RefOrNormal<string | undefined>, action?: (data: Return | undefined) => Promise<void> | void, transformation?: (data: T) => Return, toData?: boolean, options?: ApiOptions, apiInstance?: ApiInstance): {
|
|
18
|
+
loading: Ref<boolean, boolean>;
|
|
19
|
+
send(request?: Request | undefined): Promise<Return | undefined>;
|
|
20
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ApiInstance, ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { ApiOptions } from '../../types/apiTypes';
|
|
3
|
+
import { RefOrNormal } from '../../types/refTypes';
|
|
4
|
+
import { Ref } from 'vue';
|
|
5
|
+
/**
|
|
6
|
+
* Use API put request.
|
|
7
|
+
*
|
|
8
|
+
* Использование API put запроса.
|
|
9
|
+
* @param path Path to the API endpoint / Путь к endpoint API
|
|
10
|
+
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
11
|
+
* @param transformation Transformation function / Функция трансформации
|
|
12
|
+
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
13
|
+
* @param options Additional request options / Дополнительные опции запроса
|
|
14
|
+
* @param apiInstance Api instance / Экземпляр Api
|
|
15
|
+
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
16
|
+
*/
|
|
17
|
+
export declare function useApiPut<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(path?: RefOrNormal<string | undefined>, action?: (data: Return | undefined) => Promise<void> | void, transformation?: (data: T) => Return, toData?: boolean, options?: ApiOptions, apiInstance?: ApiInstance): {
|
|
18
|
+
loading: Ref<boolean, boolean>;
|
|
19
|
+
send(request?: Request | undefined): Promise<Return | undefined>;
|
|
20
|
+
};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import { ApiInstance, ApiData, ApiDataValidation } 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
|
+
/**
|
|
16
|
+
* Status of response contract validation.
|
|
17
|
+
*
|
|
18
|
+
* Статус валидации контракта ответа.
|
|
19
|
+
*/
|
|
20
|
+
isResponseContractValid: ComputedRef<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Result of response validation.
|
|
23
|
+
*
|
|
24
|
+
* Результат валидации ответа.
|
|
25
|
+
*/
|
|
26
|
+
responseValidationResult: ComputedRef<ApiDataValidation | undefined>;
|
|
27
|
+
/** Length of the list (Computed) / Длина списка (Computed) */
|
|
28
|
+
length: ComputedRef<number>;
|
|
29
|
+
/** Start request flag (true if no data yet) / Флаг начала запроса (true если еще нет данных) */
|
|
30
|
+
starting: ComputedRef<boolean>;
|
|
31
|
+
/** Request load flag / Флаг загрузки запроса */
|
|
32
|
+
loading: Ref<boolean>;
|
|
33
|
+
/** Active reading flag / Флаг активного чтения */
|
|
34
|
+
reading: Ref<boolean>;
|
|
35
|
+
/** Checks if the request is starting (true if no data yet) / Проверяет, начинается ли запрос (true, если данных еще нет) */
|
|
36
|
+
isStarting(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Checks if the request is currently loading.
|
|
39
|
+
*
|
|
40
|
+
* Проверяет, загружается ли запрос в данный момент.
|
|
41
|
+
*/
|
|
42
|
+
isLoading(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Checks if the request is currently reading.
|
|
45
|
+
*
|
|
46
|
+
* Проверяет, читается ли запрос в данный момент.
|
|
47
|
+
*/
|
|
48
|
+
isReading(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Gets the current item data.
|
|
51
|
+
*
|
|
52
|
+
* Получает текущие данные элемента.
|
|
53
|
+
*/
|
|
54
|
+
getItem(): ApiData<R> | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Manual initialization
|
|
57
|
+
*
|
|
58
|
+
* Ручная инициализация
|
|
59
|
+
*/
|
|
60
|
+
init(): void;
|
|
61
|
+
/**
|
|
62
|
+
* SSR initialization
|
|
63
|
+
*
|
|
64
|
+
* Инициализация SSR
|
|
65
|
+
*/
|
|
66
|
+
initSsr(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Default reset.
|
|
69
|
+
*
|
|
70
|
+
* Сброс по умолчанию.
|
|
71
|
+
*/
|
|
72
|
+
reset(): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Stop request.
|
|
75
|
+
*
|
|
76
|
+
* Остановка запроса.
|
|
77
|
+
*/
|
|
78
|
+
stop(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Abort request.
|
|
81
|
+
*
|
|
82
|
+
* Отмена запроса.
|
|
83
|
+
*/
|
|
84
|
+
abort(): void;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns data for working with requests.
|
|
88
|
+
*
|
|
89
|
+
* Возвращает данные для работы с запросами.
|
|
90
|
+
* @param path path to request / путь к запросу
|
|
91
|
+
* @param options data for the request / данные для запроса
|
|
92
|
+
* @param reactivity should reactivity be enabled / включить ли реактивность
|
|
93
|
+
* @param conditions conditions for executing the request / условия выполнения запроса
|
|
94
|
+
* @param transformation transforms the received request / преобразовывает полученный запрос
|
|
95
|
+
* @param validateResponseContract function to validate response data contract / функция для проверки контракта данных ответа
|
|
96
|
+
* @param unmounted delete data from the cache / удалить ли данные из кеша
|
|
97
|
+
* @param apiInstance Api instance / Экземпляр Api
|
|
98
|
+
*/
|
|
99
|
+
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, unmounted?: boolean, apiInstance?: ApiInstance): UseApiRef<R>;
|
|
100
|
+
/**
|
|
101
|
+
* Defines global conditions for the API request.
|
|
102
|
+
*
|
|
103
|
+
* Определяет глобальные условия для API запроса.
|
|
104
|
+
* @param conditions conditions for executing the request/ условия выполнения запроса
|
|
105
|
+
*/
|
|
106
|
+
export declare const setApiRefGlobalConditions: (conditions: RefType<any>) => void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ApiInstance, ApiMethodItem, ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { ApiOptions } from '../../types/apiTypes';
|
|
3
|
+
import { RefOrNormal } from '../../types/refTypes';
|
|
4
|
+
import { Ref } from 'vue';
|
|
5
|
+
/**
|
|
6
|
+
* Use api request.
|
|
7
|
+
*
|
|
8
|
+
* Использование запроса api.
|
|
9
|
+
* @param path Path to the API endpoint / Путь к endpoint API
|
|
10
|
+
* @param method HTTP method / HTTP метод
|
|
11
|
+
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
12
|
+
* @param transformation Transformation function / Функция трансформации
|
|
13
|
+
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
14
|
+
* @param options Additional request options / Дополнительные опции запроса
|
|
15
|
+
* @param apiInstance Api instance / Экземпляр Api
|
|
16
|
+
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
17
|
+
*/
|
|
18
|
+
export declare function useApiRequest<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(path?: RefOrNormal<string | undefined>, method?: ApiMethodItem, action?: (data: Return | undefined) => Promise<void> | void, transformation?: (data: T) => Return, toData?: boolean, options?: ApiOptions, apiInstance?: ApiInstance): {
|
|
19
|
+
loading: Ref<boolean, boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Send request.
|
|
22
|
+
*
|
|
23
|
+
* Отправка запроса.
|
|
24
|
+
* @param request Request data / Данные запроса
|
|
25
|
+
* @returns Response data / Данные ответа
|
|
26
|
+
*/
|
|
27
|
+
send(request?: Request): Promise<Return | undefined>;
|
|
28
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
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 {};
|
|
@@ -0,0 +1,11 @@
|
|
|
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>;
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
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>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RefType } from '../../types/refTypes';
|
|
2
|
+
export type LazyItemByMargin = {
|
|
3
|
+
rootMargin: string;
|
|
4
|
+
item: any;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Hook for initializing the tracking of an element's appearance on the screen by margin.
|
|
8
|
+
*
|
|
9
|
+
* Хук для инициализации отслеживания появления элемента на экране по отступу.
|
|
10
|
+
* @param element element for tracking/ элемента для отслеживания
|
|
11
|
+
* @param rootMargin root margin for IntersectionObserver/ отступ для IntersectionObserver
|
|
12
|
+
*/
|
|
13
|
+
export declare const useLazyItemByMarginRef: (element: RefType<HTMLElement | undefined>, rootMargin: string) => {
|
|
14
|
+
/** Lazy item status/ Статус ленивого элемента */
|
|
15
|
+
lazyItemStatus: any;
|
|
16
|
+
/**
|
|
17
|
+
* Getting a tracked lazy item.
|
|
18
|
+
*
|
|
19
|
+
* Получение отслеживаемого ленивого элемента.
|
|
20
|
+
*/
|
|
21
|
+
readonly lazyItem: any;
|
|
22
|
+
};
|