denwa-web-shared 1.0.7 → 1.0.8
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/dist/client/denwa-web-shared.client.cjs.js +1 -0
- package/dist/{denwa-web-shared.es2.js → client/denwa-web-shared.client.es.js} +1 -1
- package/dist/{client/hooks/use-view-port.d.ts → client.d.ts} +48 -24
- package/dist/main.d.ts +349 -0
- package/dist/server/denwa-web-shared.server.cjs.js +1 -0
- package/dist/{denwa-web-shared.es3.js → server/denwa-web-shared.server.es.js} +2 -2
- package/dist/server.d.ts +304 -0
- package/package.json +8 -3
- package/dist/client/hooks/index.d.ts +0 -3
- package/dist/client/hooks/use-disable-scroll.d.ts +0 -1
- package/dist/client/hooks/use-is-client.d.ts +0 -1
- package/dist/client/index.d.ts +0 -2
- package/dist/client/ui/index.d.ts +0 -1
- package/dist/client/ui/infinity-list.d.ts +0 -10
- package/dist/denwa-web-shared.cjs2.js +0 -1
- package/dist/denwa-web-shared.cjs3.js +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/server/constants/index.d.ts +0 -39
- package/dist/server/index.d.ts +0 -5
- package/dist/server/lib/css.d.ts +0 -2
- package/dist/server/lib/images.d.ts +0 -46
- package/dist/server/lib/index.d.ts +0 -3
- package/dist/server/lib/utils.d.ts +0 -116
- package/dist/server/schemas/index.d.ts +0 -13
- package/dist/server/types/index.d.ts +0 -42
- package/dist/server/ui/image.d.ts +0 -20
- package/dist/server/ui/index.d.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../infinity-list-BqhNmBDM.cjs");exports.InfinityList=e.InfinityList;exports.useDisableScroll=e.useDisableScroll;exports.useExtraMediumViewPort=e.useExtraMediumViewPort;exports.useIsClient=e.useIsClient;exports.useLaptopBigViewPort=e.useLaptopBigViewPort;exports.useLaptopViewPort=e.useLaptopViewPort;exports.useMobileViewPort=e.useMobileViewPort;exports.useSmallViewPort=e.useSmallViewPort;exports.useTabletViewPort=e.useTabletViewPort;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as a, u as i, e as t, a as o, b as r, c as u, f as l, g as w, d as P } from "
|
|
1
|
+
import { I as a, u as i, e as t, a as o, b as r, c as u, f as l, g as w, d as P } from "../infinity-list-ChtJSexP.js";
|
|
2
2
|
export {
|
|
3
3
|
a as InfinityList,
|
|
4
4
|
i as useDisableScroll,
|
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export declare const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
export declare const InfinityList: FC<InfinityListProps>;
|
|
5
|
+
|
|
6
|
+
declare interface InfinityListProps {
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
intersectionElementClassName?: string;
|
|
9
|
+
isNext: boolean;
|
|
10
|
+
onIntersection: () => void;
|
|
11
|
+
intersectionElement: () => ReactNode;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export declare const useDisableScroll: (isDisableScroll: boolean) => void;
|
|
15
|
+
|
|
16
|
+
export declare const useExtraMediumViewPort: () => {
|
|
17
|
+
isExtraMediumMinWidth: boolean;
|
|
18
|
+
isExtraMediumMaxWidth: boolean;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export declare const useIsClient: () => boolean;
|
|
22
|
+
|
|
23
|
+
export declare const useLaptopBigViewPort: () => {
|
|
24
|
+
isLaptopBigMinWidth: boolean;
|
|
25
|
+
isLaptopBigMaxWidth: boolean;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export declare const useLaptopViewPort: () => {
|
|
29
|
+
isLaptopMinWidth: boolean;
|
|
30
|
+
isLaptopMaxWidth: boolean;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export declare const useMobileViewPort: () => {
|
|
34
|
+
isMobileMinWidth: boolean;
|
|
35
|
+
isMobileMaxWidth: boolean;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export declare const useSmallViewPort: () => {
|
|
39
|
+
isSmallMinWidth: boolean;
|
|
40
|
+
isSmallMaxWidth: boolean;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export declare const useTabletViewPort: () => {
|
|
44
|
+
isTabletMinWidth: boolean;
|
|
45
|
+
isTabletMaxWidth: boolean;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export { }
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import { DetailedHTMLProps } from 'react';
|
|
3
|
+
import { FC } from 'react';
|
|
4
|
+
import { HTMLAttributes } from 'react';
|
|
5
|
+
import { ImgHTMLAttributes } from 'react';
|
|
6
|
+
import { ReactNode } from 'react';
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
|
|
9
|
+
export declare const BasePicture: FC<BasePictureProps>;
|
|
10
|
+
|
|
11
|
+
declare interface BasePictureProps extends DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
12
|
+
imgProps?: DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>;
|
|
13
|
+
image1x: string;
|
|
14
|
+
image2x?: string;
|
|
15
|
+
image1xWebp?: string;
|
|
16
|
+
image2xWebp?: string;
|
|
17
|
+
mobileImage1x?: string;
|
|
18
|
+
mobileImage2x?: string;
|
|
19
|
+
mobileImage1xWebp?: string;
|
|
20
|
+
mobileImage2xWebp?: string;
|
|
21
|
+
type: ImageType;
|
|
22
|
+
alt: string;
|
|
23
|
+
bgColorClass: string;
|
|
24
|
+
mobileMaxWidth?: number;
|
|
25
|
+
loading?: 'eager' | 'lazy';
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @description Проверяет валидность объекта картинки по схеме
|
|
30
|
+
* @param {object} object - объект с информацией о картинке
|
|
31
|
+
* @param getError - функция обработки ошибок
|
|
32
|
+
* @response Возвращает true/false
|
|
33
|
+
*/
|
|
34
|
+
export declare const checkCorrectImageObject: (object: IServerImage, getError: ({ error }: {
|
|
35
|
+
error: unknown;
|
|
36
|
+
}) => void) => boolean;
|
|
37
|
+
|
|
38
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @description Преобразует value у инпута в поле маски телефона
|
|
42
|
+
* @param eventValue - исходное значение инпута
|
|
43
|
+
* @response Возвращает либо обработанную строку, либо пустую строку
|
|
44
|
+
* @example
|
|
45
|
+
* 79881234567 -> +79881234567
|
|
46
|
+
* 89881234567 -> +79881234567
|
|
47
|
+
* 19881234567 -> +19881234567
|
|
48
|
+
*/
|
|
49
|
+
export declare const convertPhoneMask: (eventValue: string) => string;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @description Подготавливает серверную пагинацию для клиента
|
|
53
|
+
* @param pagination - Серверная пагинация
|
|
54
|
+
* @param baseUrl - Url страницы
|
|
55
|
+
* @param initialParams - Параметры url
|
|
56
|
+
*/
|
|
57
|
+
export declare const generatePaginationArray: (pagination: IPaginate | null, baseUrl: string, initialParams: Record<string, string>) => PaginationResult;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @description Получить значение по ключу
|
|
61
|
+
* @param obj - Объект
|
|
62
|
+
* @param key - Ключ
|
|
63
|
+
*/
|
|
64
|
+
export declare const getByKey: <T extends object, K extends keyof T>(obj: T, key: K) => T[K];
|
|
65
|
+
|
|
66
|
+
export declare const getImagePrefix: (prefixes: string[], type: "original" | "0.25hd" | "0.5hd" | "1hd" | "2hd" | "4hd") => string;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @description Получить Intl для нужного языка
|
|
70
|
+
* @param local - Локаль
|
|
71
|
+
*/
|
|
72
|
+
export declare const getNumberFormatter: (local: string) => Intl.NumberFormat;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @description Получить корректный поддомен из адреса хоста
|
|
76
|
+
* @param host - url хоста
|
|
77
|
+
* @param SUB_DOMAIN - Объект ключ-значение со списком поддоменов
|
|
78
|
+
*/
|
|
79
|
+
export declare const getSubdomain: (host: string, SUB_DOMAIN: Record<string, string>) => string;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @description Создает url картинки
|
|
83
|
+
* @param {string} name - название картинки
|
|
84
|
+
* @param {string} extension - расширение картинки
|
|
85
|
+
* @param {string} entityId - id сущности
|
|
86
|
+
* @param {string} bucketName - название бакета картинки
|
|
87
|
+
* @param {string} prefixe - префикс файла
|
|
88
|
+
* @param {string} uploadUrl - url бакета
|
|
89
|
+
* @param bucketFolder - enum с папкой бакета
|
|
90
|
+
* @response Возвращает url
|
|
91
|
+
*/
|
|
92
|
+
export declare const getUploadImageUrl: <T>({ name, extension, entityId, prefixe, bucketFolder, uploadUrl, }: {
|
|
93
|
+
name: string;
|
|
94
|
+
extension: string;
|
|
95
|
+
entityId: string;
|
|
96
|
+
prefixe: string;
|
|
97
|
+
uploadUrl: string;
|
|
98
|
+
bucketFolder: T;
|
|
99
|
+
}) => string;
|
|
100
|
+
|
|
101
|
+
export declare type ImageType = 'image/png' | 'image/jpeg';
|
|
102
|
+
|
|
103
|
+
export declare const InfinityList: FC<InfinityListProps>;
|
|
104
|
+
|
|
105
|
+
declare interface InfinityListProps {
|
|
106
|
+
children: ReactNode;
|
|
107
|
+
intersectionElementClassName?: string;
|
|
108
|
+
isNext: boolean;
|
|
109
|
+
onIntersection: () => void;
|
|
110
|
+
intersectionElement: () => ReactNode;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export declare interface IPaginate {
|
|
114
|
+
page: number;
|
|
115
|
+
pages: number;
|
|
116
|
+
previous?: number;
|
|
117
|
+
next?: number;
|
|
118
|
+
count: number;
|
|
119
|
+
limit: number;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export declare interface IPreparedServerImage {
|
|
123
|
+
image1x: string;
|
|
124
|
+
image2x: string;
|
|
125
|
+
image1xWebp: string;
|
|
126
|
+
image2xWebp: string;
|
|
127
|
+
mobileImage1x?: string;
|
|
128
|
+
mobileImage2x?: string;
|
|
129
|
+
mobileImage1xWebp?: string;
|
|
130
|
+
mobileImage2xWebp?: string;
|
|
131
|
+
altRU?: string;
|
|
132
|
+
altEN?: string;
|
|
133
|
+
type: ImageType;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export declare interface IServerImage {
|
|
137
|
+
altRU?: string;
|
|
138
|
+
altEN?: string;
|
|
139
|
+
name: string;
|
|
140
|
+
originalFileExtension: string;
|
|
141
|
+
entityId: string;
|
|
142
|
+
fullPathExample: string;
|
|
143
|
+
prefixes: string[];
|
|
144
|
+
fileExtensions: string[];
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export declare interface PaginationButton {
|
|
148
|
+
label: string;
|
|
149
|
+
href: string;
|
|
150
|
+
isActive: boolean;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export declare interface PaginationResult {
|
|
154
|
+
buttons: PaginationButton[];
|
|
155
|
+
firstPage?: PaginationButton;
|
|
156
|
+
lastPage?: PaginationButton;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* @description Превращает строку формата /catalog/price-from__1000--price-to__5000 в { price-from: '1000', price-to: '5000' }
|
|
161
|
+
* @param input - изначальная строка
|
|
162
|
+
* @return Объект с парами ключ-значение
|
|
163
|
+
*/
|
|
164
|
+
export declare const parseStringToKeyValue: <T extends object>(input: string) => T;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* @description Конвентирует цвет из enum в строку
|
|
168
|
+
* @param color1 - цвет 1
|
|
169
|
+
* @param color2 - цвет 2
|
|
170
|
+
* @param notFoundText - текст при отсутствии цвета
|
|
171
|
+
* @param COLORS_NAMES - Объект ключ-значение со списком названий цветов
|
|
172
|
+
* @return Строка с названием цветов
|
|
173
|
+
*/
|
|
174
|
+
export declare const prepareColor: ({ color1, color2, notFoundText, COLORS_NAMES, }: {
|
|
175
|
+
color1: string;
|
|
176
|
+
color2?: string | null;
|
|
177
|
+
notFoundText: string;
|
|
178
|
+
COLORS_NAMES: Record<string, string>;
|
|
179
|
+
}) => string;
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* @description Заменят мета текст по маске, переданный напрямую
|
|
183
|
+
* @param subdomain - Поддомен
|
|
184
|
+
* @param metaData - Объект с title, descrption, keywords
|
|
185
|
+
* @param host - Хост сайта
|
|
186
|
+
* @param SUBDOMAIN_NAME - Объект ключ-значение со списком поддоменов
|
|
187
|
+
* @param SUBDOMAIN_MASK - Объект ключ-значение со списком масок поддоменов
|
|
188
|
+
* @param DEFAULT_SEO_TEXT - Объект ключ-значение со списком масок поддоменов
|
|
189
|
+
* @return Объект с мета тегами
|
|
190
|
+
*/
|
|
191
|
+
export declare const prepareLocalMetaData: <T extends object>({ subdomain, metaData, host, SUBDOMAIN_NAME, SUBDOMAIN_MASK, DEFAULT_SEO_TEXT, }: {
|
|
192
|
+
subdomain: string;
|
|
193
|
+
metaData: {
|
|
194
|
+
title: string;
|
|
195
|
+
description: string;
|
|
196
|
+
keywords: string;
|
|
197
|
+
canonical?: string;
|
|
198
|
+
};
|
|
199
|
+
host: string;
|
|
200
|
+
SUBDOMAIN_NAME: Record<string, {
|
|
201
|
+
name: string;
|
|
202
|
+
declination: string;
|
|
203
|
+
region: string;
|
|
204
|
+
regionDeclination: string;
|
|
205
|
+
}>;
|
|
206
|
+
SUBDOMAIN_MASK: {
|
|
207
|
+
CITY: string;
|
|
208
|
+
CITY_DECL: string;
|
|
209
|
+
CITY_REGION: string;
|
|
210
|
+
CITY_REGION_DECL: string;
|
|
211
|
+
};
|
|
212
|
+
DEFAULT_SEO_TEXT: {
|
|
213
|
+
title: string;
|
|
214
|
+
description: string;
|
|
215
|
+
keywords: string;
|
|
216
|
+
};
|
|
217
|
+
}) => T;
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* @description Преобразует фотографии с сервера в формат для работы
|
|
221
|
+
* @param {string | undefined | null} images - json stringify строка с информацией
|
|
222
|
+
* @param bucketFolder - название папки в бакете
|
|
223
|
+
* @param uploadUrl - url бакета
|
|
224
|
+
* @param getError - функция обработки ошибок
|
|
225
|
+
* @response Возвращает массив с подготовленными картинками
|
|
226
|
+
*/
|
|
227
|
+
export declare const prepareServerImages: <T>({ images, bucketFolder, uploadUrl, getError, }: {
|
|
228
|
+
images: string | undefined | null;
|
|
229
|
+
bucketFolder: T;
|
|
230
|
+
uploadUrl: string;
|
|
231
|
+
getError: ({ error }: {
|
|
232
|
+
error: unknown;
|
|
233
|
+
}) => void;
|
|
234
|
+
}) => IPreparedServerImage[];
|
|
235
|
+
|
|
236
|
+
export declare const responseSchema: z.ZodObject<{
|
|
237
|
+
statusCode: z.ZodOptional<z.ZodNumber>;
|
|
238
|
+
message: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
239
|
+
messages: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
240
|
+
data: z.ZodNullable<z.ZodOptional<z.ZodAny>>;
|
|
241
|
+
error: z.ZodNullable<z.ZodOptional<z.ZodObject<{
|
|
242
|
+
statusCode: z.ZodNumber;
|
|
243
|
+
message: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
244
|
+
messages: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
245
|
+
}, z.core.$strip>>>;
|
|
246
|
+
response: z.ZodNullable<z.ZodOptional<z.ZodAny>>;
|
|
247
|
+
}, z.core.$strip>;
|
|
248
|
+
|
|
249
|
+
export declare const THEME: {
|
|
250
|
+
VIEW_PORT: {
|
|
251
|
+
EXTRA_SMALL: number;
|
|
252
|
+
SMALL: number;
|
|
253
|
+
SMALL_MOBILE: number;
|
|
254
|
+
MOBILE: number;
|
|
255
|
+
MEDIUM: number;
|
|
256
|
+
EXTRA_MEDIUM: number;
|
|
257
|
+
TABLET: number;
|
|
258
|
+
LAPTOP: number;
|
|
259
|
+
LAPTOP_BIG: number;
|
|
260
|
+
BIG: number;
|
|
261
|
+
VERY_BIG: number;
|
|
262
|
+
};
|
|
263
|
+
OFFSET: {
|
|
264
|
+
1: number;
|
|
265
|
+
2: number;
|
|
266
|
+
3: number;
|
|
267
|
+
4: number;
|
|
268
|
+
5: number;
|
|
269
|
+
6: number;
|
|
270
|
+
7: number;
|
|
271
|
+
8: number;
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
export declare const TIME: {
|
|
276
|
+
seconds: {
|
|
277
|
+
minutes10: number;
|
|
278
|
+
};
|
|
279
|
+
milliseconds: {
|
|
280
|
+
milliseconds100: number;
|
|
281
|
+
milliseconds200: number;
|
|
282
|
+
milliseconds500: number;
|
|
283
|
+
seconds1: number;
|
|
284
|
+
seconds2: number;
|
|
285
|
+
seconds5: number;
|
|
286
|
+
minutes1: number;
|
|
287
|
+
};
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* @description Заменяет текст по маске {{}}
|
|
292
|
+
* @param text - Исходный текст
|
|
293
|
+
* @param subdomain - Значение города, которое подставится
|
|
294
|
+
* @param SUBDOMAIN_NAME - Объект ключ-значение со списком поддоменов
|
|
295
|
+
* @param SUBDOMAIN_MASK - Объект ключ-значение со списком масок поддоменов
|
|
296
|
+
* @return Обновленная строка
|
|
297
|
+
*/
|
|
298
|
+
export declare const updateTextByTemplate: ({ text, subdomain, SUBDOMAIN_NAME, SUBDOMAIN_MASK, }: {
|
|
299
|
+
text: string;
|
|
300
|
+
subdomain: string;
|
|
301
|
+
SUBDOMAIN_NAME: Record<string, {
|
|
302
|
+
name: string;
|
|
303
|
+
declination: string;
|
|
304
|
+
region: string;
|
|
305
|
+
regionDeclination: string;
|
|
306
|
+
}>;
|
|
307
|
+
SUBDOMAIN_MASK: {
|
|
308
|
+
CITY: string;
|
|
309
|
+
CITY_DECL: string;
|
|
310
|
+
CITY_REGION: string;
|
|
311
|
+
CITY_REGION_DECL: string;
|
|
312
|
+
};
|
|
313
|
+
}) => string;
|
|
314
|
+
|
|
315
|
+
export declare const useDisableScroll: (isDisableScroll: boolean) => void;
|
|
316
|
+
|
|
317
|
+
export declare const useExtraMediumViewPort: () => {
|
|
318
|
+
isExtraMediumMinWidth: boolean;
|
|
319
|
+
isExtraMediumMaxWidth: boolean;
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
export declare const useIsClient: () => boolean;
|
|
323
|
+
|
|
324
|
+
export declare const useLaptopBigViewPort: () => {
|
|
325
|
+
isLaptopBigMinWidth: boolean;
|
|
326
|
+
isLaptopBigMaxWidth: boolean;
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
export declare const useLaptopViewPort: () => {
|
|
330
|
+
isLaptopMinWidth: boolean;
|
|
331
|
+
isLaptopMaxWidth: boolean;
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
export declare const useMobileViewPort: () => {
|
|
335
|
+
isMobileMinWidth: boolean;
|
|
336
|
+
isMobileMaxWidth: boolean;
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
export declare const useSmallViewPort: () => {
|
|
340
|
+
isSmallMinWidth: boolean;
|
|
341
|
+
isSmallMaxWidth: boolean;
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
export declare const useTabletViewPort: () => {
|
|
345
|
+
isTabletMinWidth: boolean;
|
|
346
|
+
isTabletMaxWidth: boolean;
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
export { }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../jsx-runtime-Cgef3_fl.cjs"),e=require("../image-CRxiqKd9.cjs");exports.THEME=r.THEME;exports.TIME=r.TIME;exports.cn=r.cn;exports.BasePicture=e.BasePicture;exports.checkCorrectImageObject=e.checkCorrectImageObject;exports.convertPhoneMask=e.convertPhoneMask;exports.generatePaginationArray=e.generatePaginationArray;exports.getByKey=e.getByKey;exports.getImagePrefix=e.getImagePrefix;exports.getNumberFormatter=e.getNumberFormatter;exports.getSubdomain=e.getSubdomain;exports.getUploadImageUrl=e.getUploadImageUrl;exports.parseStringToKeyValue=e.parseStringToKeyValue;exports.prepareColor=e.prepareColor;exports.prepareLocalMetaData=e.prepareLocalMetaData;exports.prepareServerImages=e.prepareServerImages;exports.responseSchema=e.responseSchema;exports.updateTextByTemplate=e.updateTextByTemplate;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as r, T as s, c as t } from "
|
|
2
|
-
import { B as p, i as g, c, f as m, a as n, k as i, g as l, b as u, h as T, d as y, e as I, p as b, j as d, r as f, u as h } from "
|
|
1
|
+
import { a as r, T as s, c as t } from "../jsx-runtime-BgsXhnJy.js";
|
|
2
|
+
import { B as p, i as g, c, f as m, a as n, k as i, g as l, b as u, h as T, d as y, e as I, p as b, j as d, r as f, u as h } from "../image-CeUbwO13.js";
|
|
3
3
|
export {
|
|
4
4
|
p as BasePicture,
|
|
5
5
|
r as THEME,
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import { DetailedHTMLProps } from 'react';
|
|
3
|
+
import { FC } from 'react';
|
|
4
|
+
import { HTMLAttributes } from 'react';
|
|
5
|
+
import { ImgHTMLAttributes } from 'react';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
|
|
8
|
+
export declare const BasePicture: FC<BasePictureProps>;
|
|
9
|
+
|
|
10
|
+
declare interface BasePictureProps extends DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
11
|
+
imgProps?: DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>;
|
|
12
|
+
image1x: string;
|
|
13
|
+
image2x?: string;
|
|
14
|
+
image1xWebp?: string;
|
|
15
|
+
image2xWebp?: string;
|
|
16
|
+
mobileImage1x?: string;
|
|
17
|
+
mobileImage2x?: string;
|
|
18
|
+
mobileImage1xWebp?: string;
|
|
19
|
+
mobileImage2xWebp?: string;
|
|
20
|
+
type: ImageType;
|
|
21
|
+
alt: string;
|
|
22
|
+
bgColorClass: string;
|
|
23
|
+
mobileMaxWidth?: number;
|
|
24
|
+
loading?: 'eager' | 'lazy';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @description Проверяет валидность объекта картинки по схеме
|
|
29
|
+
* @param {object} object - объект с информацией о картинке
|
|
30
|
+
* @param getError - функция обработки ошибок
|
|
31
|
+
* @response Возвращает true/false
|
|
32
|
+
*/
|
|
33
|
+
export declare const checkCorrectImageObject: (object: IServerImage, getError: ({ error }: {
|
|
34
|
+
error: unknown;
|
|
35
|
+
}) => void) => boolean;
|
|
36
|
+
|
|
37
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @description Преобразует value у инпута в поле маски телефона
|
|
41
|
+
* @param eventValue - исходное значение инпута
|
|
42
|
+
* @response Возвращает либо обработанную строку, либо пустую строку
|
|
43
|
+
* @example
|
|
44
|
+
* 79881234567 -> +79881234567
|
|
45
|
+
* 89881234567 -> +79881234567
|
|
46
|
+
* 19881234567 -> +19881234567
|
|
47
|
+
*/
|
|
48
|
+
export declare const convertPhoneMask: (eventValue: string) => string;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @description Подготавливает серверную пагинацию для клиента
|
|
52
|
+
* @param pagination - Серверная пагинация
|
|
53
|
+
* @param baseUrl - Url страницы
|
|
54
|
+
* @param initialParams - Параметры url
|
|
55
|
+
*/
|
|
56
|
+
export declare const generatePaginationArray: (pagination: IPaginate | null, baseUrl: string, initialParams: Record<string, string>) => PaginationResult;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @description Получить значение по ключу
|
|
60
|
+
* @param obj - Объект
|
|
61
|
+
* @param key - Ключ
|
|
62
|
+
*/
|
|
63
|
+
export declare const getByKey: <T extends object, K extends keyof T>(obj: T, key: K) => T[K];
|
|
64
|
+
|
|
65
|
+
export declare const getImagePrefix: (prefixes: string[], type: "original" | "0.25hd" | "0.5hd" | "1hd" | "2hd" | "4hd") => string;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @description Получить Intl для нужного языка
|
|
69
|
+
* @param local - Локаль
|
|
70
|
+
*/
|
|
71
|
+
export declare const getNumberFormatter: (local: string) => Intl.NumberFormat;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @description Получить корректный поддомен из адреса хоста
|
|
75
|
+
* @param host - url хоста
|
|
76
|
+
* @param SUB_DOMAIN - Объект ключ-значение со списком поддоменов
|
|
77
|
+
*/
|
|
78
|
+
export declare const getSubdomain: (host: string, SUB_DOMAIN: Record<string, string>) => string;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @description Создает url картинки
|
|
82
|
+
* @param {string} name - название картинки
|
|
83
|
+
* @param {string} extension - расширение картинки
|
|
84
|
+
* @param {string} entityId - id сущности
|
|
85
|
+
* @param {string} bucketName - название бакета картинки
|
|
86
|
+
* @param {string} prefixe - префикс файла
|
|
87
|
+
* @param {string} uploadUrl - url бакета
|
|
88
|
+
* @param bucketFolder - enum с папкой бакета
|
|
89
|
+
* @response Возвращает url
|
|
90
|
+
*/
|
|
91
|
+
export declare const getUploadImageUrl: <T>({ name, extension, entityId, prefixe, bucketFolder, uploadUrl, }: {
|
|
92
|
+
name: string;
|
|
93
|
+
extension: string;
|
|
94
|
+
entityId: string;
|
|
95
|
+
prefixe: string;
|
|
96
|
+
uploadUrl: string;
|
|
97
|
+
bucketFolder: T;
|
|
98
|
+
}) => string;
|
|
99
|
+
|
|
100
|
+
export declare type ImageType = 'image/png' | 'image/jpeg';
|
|
101
|
+
|
|
102
|
+
export declare interface IPaginate {
|
|
103
|
+
page: number;
|
|
104
|
+
pages: number;
|
|
105
|
+
previous?: number;
|
|
106
|
+
next?: number;
|
|
107
|
+
count: number;
|
|
108
|
+
limit: number;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export declare interface IPreparedServerImage {
|
|
112
|
+
image1x: string;
|
|
113
|
+
image2x: string;
|
|
114
|
+
image1xWebp: string;
|
|
115
|
+
image2xWebp: string;
|
|
116
|
+
mobileImage1x?: string;
|
|
117
|
+
mobileImage2x?: string;
|
|
118
|
+
mobileImage1xWebp?: string;
|
|
119
|
+
mobileImage2xWebp?: string;
|
|
120
|
+
altRU?: string;
|
|
121
|
+
altEN?: string;
|
|
122
|
+
type: ImageType;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export declare interface IServerImage {
|
|
126
|
+
altRU?: string;
|
|
127
|
+
altEN?: string;
|
|
128
|
+
name: string;
|
|
129
|
+
originalFileExtension: string;
|
|
130
|
+
entityId: string;
|
|
131
|
+
fullPathExample: string;
|
|
132
|
+
prefixes: string[];
|
|
133
|
+
fileExtensions: string[];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export declare interface PaginationButton {
|
|
137
|
+
label: string;
|
|
138
|
+
href: string;
|
|
139
|
+
isActive: boolean;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export declare interface PaginationResult {
|
|
143
|
+
buttons: PaginationButton[];
|
|
144
|
+
firstPage?: PaginationButton;
|
|
145
|
+
lastPage?: PaginationButton;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* @description Превращает строку формата /catalog/price-from__1000--price-to__5000 в { price-from: '1000', price-to: '5000' }
|
|
150
|
+
* @param input - изначальная строка
|
|
151
|
+
* @return Объект с парами ключ-значение
|
|
152
|
+
*/
|
|
153
|
+
export declare const parseStringToKeyValue: <T extends object>(input: string) => T;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @description Конвентирует цвет из enum в строку
|
|
157
|
+
* @param color1 - цвет 1
|
|
158
|
+
* @param color2 - цвет 2
|
|
159
|
+
* @param notFoundText - текст при отсутствии цвета
|
|
160
|
+
* @param COLORS_NAMES - Объект ключ-значение со списком названий цветов
|
|
161
|
+
* @return Строка с названием цветов
|
|
162
|
+
*/
|
|
163
|
+
export declare const prepareColor: ({ color1, color2, notFoundText, COLORS_NAMES, }: {
|
|
164
|
+
color1: string;
|
|
165
|
+
color2?: string | null;
|
|
166
|
+
notFoundText: string;
|
|
167
|
+
COLORS_NAMES: Record<string, string>;
|
|
168
|
+
}) => string;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @description Заменят мета текст по маске, переданный напрямую
|
|
172
|
+
* @param subdomain - Поддомен
|
|
173
|
+
* @param metaData - Объект с title, descrption, keywords
|
|
174
|
+
* @param host - Хост сайта
|
|
175
|
+
* @param SUBDOMAIN_NAME - Объект ключ-значение со списком поддоменов
|
|
176
|
+
* @param SUBDOMAIN_MASK - Объект ключ-значение со списком масок поддоменов
|
|
177
|
+
* @param DEFAULT_SEO_TEXT - Объект ключ-значение со списком масок поддоменов
|
|
178
|
+
* @return Объект с мета тегами
|
|
179
|
+
*/
|
|
180
|
+
export declare const prepareLocalMetaData: <T extends object>({ subdomain, metaData, host, SUBDOMAIN_NAME, SUBDOMAIN_MASK, DEFAULT_SEO_TEXT, }: {
|
|
181
|
+
subdomain: string;
|
|
182
|
+
metaData: {
|
|
183
|
+
title: string;
|
|
184
|
+
description: string;
|
|
185
|
+
keywords: string;
|
|
186
|
+
canonical?: string;
|
|
187
|
+
};
|
|
188
|
+
host: string;
|
|
189
|
+
SUBDOMAIN_NAME: Record<string, {
|
|
190
|
+
name: string;
|
|
191
|
+
declination: string;
|
|
192
|
+
region: string;
|
|
193
|
+
regionDeclination: string;
|
|
194
|
+
}>;
|
|
195
|
+
SUBDOMAIN_MASK: {
|
|
196
|
+
CITY: string;
|
|
197
|
+
CITY_DECL: string;
|
|
198
|
+
CITY_REGION: string;
|
|
199
|
+
CITY_REGION_DECL: string;
|
|
200
|
+
};
|
|
201
|
+
DEFAULT_SEO_TEXT: {
|
|
202
|
+
title: string;
|
|
203
|
+
description: string;
|
|
204
|
+
keywords: string;
|
|
205
|
+
};
|
|
206
|
+
}) => T;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* @description Преобразует фотографии с сервера в формат для работы
|
|
210
|
+
* @param {string | undefined | null} images - json stringify строка с информацией
|
|
211
|
+
* @param bucketFolder - название папки в бакете
|
|
212
|
+
* @param uploadUrl - url бакета
|
|
213
|
+
* @param getError - функция обработки ошибок
|
|
214
|
+
* @response Возвращает массив с подготовленными картинками
|
|
215
|
+
*/
|
|
216
|
+
export declare const prepareServerImages: <T>({ images, bucketFolder, uploadUrl, getError, }: {
|
|
217
|
+
images: string | undefined | null;
|
|
218
|
+
bucketFolder: T;
|
|
219
|
+
uploadUrl: string;
|
|
220
|
+
getError: ({ error }: {
|
|
221
|
+
error: unknown;
|
|
222
|
+
}) => void;
|
|
223
|
+
}) => IPreparedServerImage[];
|
|
224
|
+
|
|
225
|
+
export declare const responseSchema: z.ZodObject<{
|
|
226
|
+
statusCode: z.ZodOptional<z.ZodNumber>;
|
|
227
|
+
message: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
228
|
+
messages: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
229
|
+
data: z.ZodNullable<z.ZodOptional<z.ZodAny>>;
|
|
230
|
+
error: z.ZodNullable<z.ZodOptional<z.ZodObject<{
|
|
231
|
+
statusCode: z.ZodNumber;
|
|
232
|
+
message: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
233
|
+
messages: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
234
|
+
}, z.core.$strip>>>;
|
|
235
|
+
response: z.ZodNullable<z.ZodOptional<z.ZodAny>>;
|
|
236
|
+
}, z.core.$strip>;
|
|
237
|
+
|
|
238
|
+
export declare const THEME: {
|
|
239
|
+
VIEW_PORT: {
|
|
240
|
+
EXTRA_SMALL: number;
|
|
241
|
+
SMALL: number;
|
|
242
|
+
SMALL_MOBILE: number;
|
|
243
|
+
MOBILE: number;
|
|
244
|
+
MEDIUM: number;
|
|
245
|
+
EXTRA_MEDIUM: number;
|
|
246
|
+
TABLET: number;
|
|
247
|
+
LAPTOP: number;
|
|
248
|
+
LAPTOP_BIG: number;
|
|
249
|
+
BIG: number;
|
|
250
|
+
VERY_BIG: number;
|
|
251
|
+
};
|
|
252
|
+
OFFSET: {
|
|
253
|
+
1: number;
|
|
254
|
+
2: number;
|
|
255
|
+
3: number;
|
|
256
|
+
4: number;
|
|
257
|
+
5: number;
|
|
258
|
+
6: number;
|
|
259
|
+
7: number;
|
|
260
|
+
8: number;
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
export declare const TIME: {
|
|
265
|
+
seconds: {
|
|
266
|
+
minutes10: number;
|
|
267
|
+
};
|
|
268
|
+
milliseconds: {
|
|
269
|
+
milliseconds100: number;
|
|
270
|
+
milliseconds200: number;
|
|
271
|
+
milliseconds500: number;
|
|
272
|
+
seconds1: number;
|
|
273
|
+
seconds2: number;
|
|
274
|
+
seconds5: number;
|
|
275
|
+
minutes1: number;
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* @description Заменяет текст по маске {{}}
|
|
281
|
+
* @param text - Исходный текст
|
|
282
|
+
* @param subdomain - Значение города, которое подставится
|
|
283
|
+
* @param SUBDOMAIN_NAME - Объект ключ-значение со списком поддоменов
|
|
284
|
+
* @param SUBDOMAIN_MASK - Объект ключ-значение со списком масок поддоменов
|
|
285
|
+
* @return Обновленная строка
|
|
286
|
+
*/
|
|
287
|
+
export declare const updateTextByTemplate: ({ text, subdomain, SUBDOMAIN_NAME, SUBDOMAIN_MASK, }: {
|
|
288
|
+
text: string;
|
|
289
|
+
subdomain: string;
|
|
290
|
+
SUBDOMAIN_NAME: Record<string, {
|
|
291
|
+
name: string;
|
|
292
|
+
declination: string;
|
|
293
|
+
region: string;
|
|
294
|
+
regionDeclination: string;
|
|
295
|
+
}>;
|
|
296
|
+
SUBDOMAIN_MASK: {
|
|
297
|
+
CITY: string;
|
|
298
|
+
CITY_DECL: string;
|
|
299
|
+
CITY_REGION: string;
|
|
300
|
+
CITY_REGION_DECL: string;
|
|
301
|
+
};
|
|
302
|
+
}) => string;
|
|
303
|
+
|
|
304
|
+
export { }
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "denwa-web-shared",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.8",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Denwa",
|
|
7
7
|
"main": "dist/denwa-web-shared.umd.js",
|
|
@@ -11,13 +11,18 @@
|
|
|
11
11
|
],
|
|
12
12
|
"types": "dist/index.d.ts",
|
|
13
13
|
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/denwa-web-shared.es.js",
|
|
17
|
+
"require": "./dist/denwa-web-shared.cjs.js"
|
|
18
|
+
},
|
|
14
19
|
"./client": {
|
|
15
|
-
"types": "./dist/client/
|
|
20
|
+
"types": "./dist/client/denwa-web-shared.client.d.ts",
|
|
16
21
|
"import": "./dist/client/denwa-web-shared.client.es.js",
|
|
17
22
|
"require": "./dist/client/denwa-web-shared.client.cjs.js"
|
|
18
23
|
},
|
|
19
24
|
"./server": {
|
|
20
|
-
"types": "./dist/server/
|
|
25
|
+
"types": "./dist/server/denwa-web-shared.server.d.ts",
|
|
21
26
|
"import": "./dist/server/denwa-web-shared.server.es.js",
|
|
22
27
|
"require": "./dist/server/denwa-web-shared.server.cjs.js"
|
|
23
28
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useDisableScroll: (isDisableScroll: boolean) => void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useIsClient: () => boolean;
|
package/dist/client/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './infinity-list';
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { FC, ReactNode } from 'react';
|
|
2
|
-
interface InfinityListProps {
|
|
3
|
-
children: ReactNode;
|
|
4
|
-
intersectionElementClassName?: string;
|
|
5
|
-
isNext: boolean;
|
|
6
|
-
onIntersection: () => void;
|
|
7
|
-
intersectionElement: () => ReactNode;
|
|
8
|
-
}
|
|
9
|
-
export declare const InfinityList: FC<InfinityListProps>;
|
|
10
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./infinity-list-BqhNmBDM.cjs");exports.InfinityList=e.InfinityList;exports.useDisableScroll=e.useDisableScroll;exports.useExtraMediumViewPort=e.useExtraMediumViewPort;exports.useIsClient=e.useIsClient;exports.useLaptopBigViewPort=e.useLaptopBigViewPort;exports.useLaptopViewPort=e.useLaptopViewPort;exports.useMobileViewPort=e.useMobileViewPort;exports.useSmallViewPort=e.useSmallViewPort;exports.useTabletViewPort=e.useTabletViewPort;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./jsx-runtime-Cgef3_fl.cjs"),e=require("./image-CRxiqKd9.cjs");exports.THEME=r.THEME;exports.TIME=r.TIME;exports.cn=r.cn;exports.BasePicture=e.BasePicture;exports.checkCorrectImageObject=e.checkCorrectImageObject;exports.convertPhoneMask=e.convertPhoneMask;exports.generatePaginationArray=e.generatePaginationArray;exports.getByKey=e.getByKey;exports.getImagePrefix=e.getImagePrefix;exports.getNumberFormatter=e.getNumberFormatter;exports.getSubdomain=e.getSubdomain;exports.getUploadImageUrl=e.getUploadImageUrl;exports.parseStringToKeyValue=e.parseStringToKeyValue;exports.prepareColor=e.prepareColor;exports.prepareLocalMetaData=e.prepareLocalMetaData;exports.prepareServerImages=e.prepareServerImages;exports.responseSchema=e.responseSchema;exports.updateTextByTemplate=e.updateTextByTemplate;
|
package/dist/index.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export declare const TIME: {
|
|
2
|
-
seconds: {
|
|
3
|
-
minutes10: number;
|
|
4
|
-
};
|
|
5
|
-
milliseconds: {
|
|
6
|
-
milliseconds100: number;
|
|
7
|
-
milliseconds200: number;
|
|
8
|
-
milliseconds500: number;
|
|
9
|
-
seconds1: number;
|
|
10
|
-
seconds2: number;
|
|
11
|
-
seconds5: number;
|
|
12
|
-
minutes1: number;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
export declare const THEME: {
|
|
16
|
-
VIEW_PORT: {
|
|
17
|
-
EXTRA_SMALL: number;
|
|
18
|
-
SMALL: number;
|
|
19
|
-
SMALL_MOBILE: number;
|
|
20
|
-
MOBILE: number;
|
|
21
|
-
MEDIUM: number;
|
|
22
|
-
EXTRA_MEDIUM: number;
|
|
23
|
-
TABLET: number;
|
|
24
|
-
LAPTOP: number;
|
|
25
|
-
LAPTOP_BIG: number;
|
|
26
|
-
BIG: number;
|
|
27
|
-
VERY_BIG: number;
|
|
28
|
-
};
|
|
29
|
-
OFFSET: {
|
|
30
|
-
1: number;
|
|
31
|
-
2: number;
|
|
32
|
-
3: number;
|
|
33
|
-
4: number;
|
|
34
|
-
5: number;
|
|
35
|
-
6: number;
|
|
36
|
-
7: number;
|
|
37
|
-
8: number;
|
|
38
|
-
};
|
|
39
|
-
};
|
package/dist/server/index.d.ts
DELETED
package/dist/server/lib/css.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { IPreparedServerImage, IServerImage } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* @description Создает url картинки
|
|
4
|
-
* @param {string} name - название картинки
|
|
5
|
-
* @param {string} extension - расширение картинки
|
|
6
|
-
* @param {string} entityId - id сущности
|
|
7
|
-
* @param {string} bucketName - название бакета картинки
|
|
8
|
-
* @param {string} prefixe - префикс файла
|
|
9
|
-
* @param {string} uploadUrl - url бакета
|
|
10
|
-
* @param bucketFolder - enum с папкой бакета
|
|
11
|
-
* @response Возвращает url
|
|
12
|
-
*/
|
|
13
|
-
export declare const getUploadImageUrl: <T>({ name, extension, entityId, prefixe, bucketFolder, uploadUrl, }: {
|
|
14
|
-
name: string;
|
|
15
|
-
extension: string;
|
|
16
|
-
entityId: string;
|
|
17
|
-
prefixe: string;
|
|
18
|
-
uploadUrl: string;
|
|
19
|
-
bucketFolder: T;
|
|
20
|
-
}) => string;
|
|
21
|
-
/**
|
|
22
|
-
* @description Проверяет валидность объекта картинки по схеме
|
|
23
|
-
* @param {object} object - объект с информацией о картинке
|
|
24
|
-
* @param getError - функция обработки ошибок
|
|
25
|
-
* @response Возвращает true/false
|
|
26
|
-
*/
|
|
27
|
-
export declare const checkCorrectImageObject: (object: IServerImage, getError: ({ error }: {
|
|
28
|
-
error: unknown;
|
|
29
|
-
}) => void) => boolean;
|
|
30
|
-
/**
|
|
31
|
-
* @description Преобразует фотографии с сервера в формат для работы
|
|
32
|
-
* @param {string | undefined | null} images - json stringify строка с информацией
|
|
33
|
-
* @param bucketFolder - название папки в бакете
|
|
34
|
-
* @param uploadUrl - url бакета
|
|
35
|
-
* @param getError - функция обработки ошибок
|
|
36
|
-
* @response Возвращает массив с подготовленными картинками
|
|
37
|
-
*/
|
|
38
|
-
export declare const prepareServerImages: <T>({ images, bucketFolder, uploadUrl, getError, }: {
|
|
39
|
-
images: string | undefined | null;
|
|
40
|
-
bucketFolder: T;
|
|
41
|
-
uploadUrl: string;
|
|
42
|
-
getError: ({ error }: {
|
|
43
|
-
error: unknown;
|
|
44
|
-
}) => void;
|
|
45
|
-
}) => IPreparedServerImage[];
|
|
46
|
-
export declare const getImagePrefix: (prefixes: string[], type: "original" | "0.25hd" | "0.5hd" | "1hd" | "2hd" | "4hd") => string;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { IPaginate, PaginationResult } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* @description Получить Intl для нужного языка
|
|
4
|
-
* @param local - Локаль
|
|
5
|
-
*/
|
|
6
|
-
export declare const getNumberFormatter: (local: string) => Intl.NumberFormat;
|
|
7
|
-
/**
|
|
8
|
-
* @description Получить значение по ключу
|
|
9
|
-
* @param obj - Объект
|
|
10
|
-
* @param key - Ключ
|
|
11
|
-
*/
|
|
12
|
-
export declare const getByKey: <T extends object, K extends keyof T>(obj: T, key: K) => T[K];
|
|
13
|
-
/**
|
|
14
|
-
* @description Преобразует value у инпута в поле маски телефона
|
|
15
|
-
* @param eventValue - исходное значение инпута
|
|
16
|
-
* @response Возвращает либо обработанную строку, либо пустую строку
|
|
17
|
-
* @example
|
|
18
|
-
* 79881234567 -> +79881234567
|
|
19
|
-
* 89881234567 -> +79881234567
|
|
20
|
-
* 19881234567 -> +19881234567
|
|
21
|
-
*/
|
|
22
|
-
export declare const convertPhoneMask: (eventValue: string) => string;
|
|
23
|
-
/**
|
|
24
|
-
* @description Получить корректный поддомен из адреса хоста
|
|
25
|
-
* @param host - url хоста
|
|
26
|
-
* @param SUB_DOMAIN - Объект ключ-значение со списком поддоменов
|
|
27
|
-
*/
|
|
28
|
-
export declare const getSubdomain: (host: string, SUB_DOMAIN: Record<string, string>) => string;
|
|
29
|
-
/**
|
|
30
|
-
* @description Заменяет текст по маске {{}}
|
|
31
|
-
* @param text - Исходный текст
|
|
32
|
-
* @param subdomain - Значение города, которое подставится
|
|
33
|
-
* @param SUBDOMAIN_NAME - Объект ключ-значение со списком поддоменов
|
|
34
|
-
* @param SUBDOMAIN_MASK - Объект ключ-значение со списком масок поддоменов
|
|
35
|
-
* @return Обновленная строка
|
|
36
|
-
*/
|
|
37
|
-
export declare const updateTextByTemplate: ({ text, subdomain, SUBDOMAIN_NAME, SUBDOMAIN_MASK, }: {
|
|
38
|
-
text: string;
|
|
39
|
-
subdomain: string;
|
|
40
|
-
SUBDOMAIN_NAME: Record<string, {
|
|
41
|
-
name: string;
|
|
42
|
-
declination: string;
|
|
43
|
-
region: string;
|
|
44
|
-
regionDeclination: string;
|
|
45
|
-
}>;
|
|
46
|
-
SUBDOMAIN_MASK: {
|
|
47
|
-
CITY: string;
|
|
48
|
-
CITY_DECL: string;
|
|
49
|
-
CITY_REGION: string;
|
|
50
|
-
CITY_REGION_DECL: string;
|
|
51
|
-
};
|
|
52
|
-
}) => string;
|
|
53
|
-
/**
|
|
54
|
-
* @description Заменят мета текст по маске, переданный напрямую
|
|
55
|
-
* @param subdomain - Поддомен
|
|
56
|
-
* @param metaData - Объект с title, descrption, keywords
|
|
57
|
-
* @param host - Хост сайта
|
|
58
|
-
* @param SUBDOMAIN_NAME - Объект ключ-значение со списком поддоменов
|
|
59
|
-
* @param SUBDOMAIN_MASK - Объект ключ-значение со списком масок поддоменов
|
|
60
|
-
* @param DEFAULT_SEO_TEXT - Объект ключ-значение со списком масок поддоменов
|
|
61
|
-
* @return Объект с мета тегами
|
|
62
|
-
*/
|
|
63
|
-
export declare const prepareLocalMetaData: <T extends object>({ subdomain, metaData, host, SUBDOMAIN_NAME, SUBDOMAIN_MASK, DEFAULT_SEO_TEXT, }: {
|
|
64
|
-
subdomain: string;
|
|
65
|
-
metaData: {
|
|
66
|
-
title: string;
|
|
67
|
-
description: string;
|
|
68
|
-
keywords: string;
|
|
69
|
-
canonical?: string;
|
|
70
|
-
};
|
|
71
|
-
host: string;
|
|
72
|
-
SUBDOMAIN_NAME: Record<string, {
|
|
73
|
-
name: string;
|
|
74
|
-
declination: string;
|
|
75
|
-
region: string;
|
|
76
|
-
regionDeclination: string;
|
|
77
|
-
}>;
|
|
78
|
-
SUBDOMAIN_MASK: {
|
|
79
|
-
CITY: string;
|
|
80
|
-
CITY_DECL: string;
|
|
81
|
-
CITY_REGION: string;
|
|
82
|
-
CITY_REGION_DECL: string;
|
|
83
|
-
};
|
|
84
|
-
DEFAULT_SEO_TEXT: {
|
|
85
|
-
title: string;
|
|
86
|
-
description: string;
|
|
87
|
-
keywords: string;
|
|
88
|
-
};
|
|
89
|
-
}) => T;
|
|
90
|
-
/**
|
|
91
|
-
* @description Превращает строку формата /catalog/price-from__1000--price-to__5000 в { price-from: '1000', price-to: '5000' }
|
|
92
|
-
* @param input - изначальная строка
|
|
93
|
-
* @return Объект с парами ключ-значение
|
|
94
|
-
*/
|
|
95
|
-
export declare const parseStringToKeyValue: <T extends object>(input: string) => T;
|
|
96
|
-
/**
|
|
97
|
-
* @description Конвентирует цвет из enum в строку
|
|
98
|
-
* @param color1 - цвет 1
|
|
99
|
-
* @param color2 - цвет 2
|
|
100
|
-
* @param notFoundText - текст при отсутствии цвета
|
|
101
|
-
* @param COLORS_NAMES - Объект ключ-значение со списком названий цветов
|
|
102
|
-
* @return Строка с названием цветов
|
|
103
|
-
*/
|
|
104
|
-
export declare const prepareColor: ({ color1, color2, notFoundText, COLORS_NAMES, }: {
|
|
105
|
-
color1: string;
|
|
106
|
-
color2?: string | null;
|
|
107
|
-
notFoundText: string;
|
|
108
|
-
COLORS_NAMES: Record<string, string>;
|
|
109
|
-
}) => string;
|
|
110
|
-
/**
|
|
111
|
-
* @description Подготавливает серверную пагинацию для клиента
|
|
112
|
-
* @param pagination - Серверная пагинация
|
|
113
|
-
* @param baseUrl - Url страницы
|
|
114
|
-
* @param initialParams - Параметры url
|
|
115
|
-
*/
|
|
116
|
-
export declare const generatePaginationArray: (pagination: IPaginate | null, baseUrl: string, initialParams: Record<string, string>) => PaginationResult;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const responseSchema: z.ZodObject<{
|
|
3
|
-
statusCode: z.ZodOptional<z.ZodNumber>;
|
|
4
|
-
message: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
5
|
-
messages: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
6
|
-
data: z.ZodNullable<z.ZodOptional<z.ZodAny>>;
|
|
7
|
-
error: z.ZodNullable<z.ZodOptional<z.ZodObject<{
|
|
8
|
-
statusCode: z.ZodNumber;
|
|
9
|
-
message: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
10
|
-
messages: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
11
|
-
}, z.core.$strip>>>;
|
|
12
|
-
response: z.ZodNullable<z.ZodOptional<z.ZodAny>>;
|
|
13
|
-
}, z.core.$strip>;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export interface IServerImage {
|
|
2
|
-
altRU?: string;
|
|
3
|
-
altEN?: string;
|
|
4
|
-
name: string;
|
|
5
|
-
originalFileExtension: string;
|
|
6
|
-
entityId: string;
|
|
7
|
-
fullPathExample: string;
|
|
8
|
-
prefixes: string[];
|
|
9
|
-
fileExtensions: string[];
|
|
10
|
-
}
|
|
11
|
-
export interface IPreparedServerImage {
|
|
12
|
-
image1x: string;
|
|
13
|
-
image2x: string;
|
|
14
|
-
image1xWebp: string;
|
|
15
|
-
image2xWebp: string;
|
|
16
|
-
mobileImage1x?: string;
|
|
17
|
-
mobileImage2x?: string;
|
|
18
|
-
mobileImage1xWebp?: string;
|
|
19
|
-
mobileImage2xWebp?: string;
|
|
20
|
-
altRU?: string;
|
|
21
|
-
altEN?: string;
|
|
22
|
-
type: ImageType;
|
|
23
|
-
}
|
|
24
|
-
export type ImageType = 'image/png' | 'image/jpeg';
|
|
25
|
-
export interface IPaginate {
|
|
26
|
-
page: number;
|
|
27
|
-
pages: number;
|
|
28
|
-
previous?: number;
|
|
29
|
-
next?: number;
|
|
30
|
-
count: number;
|
|
31
|
-
limit: number;
|
|
32
|
-
}
|
|
33
|
-
export interface PaginationButton {
|
|
34
|
-
label: string;
|
|
35
|
-
href: string;
|
|
36
|
-
isActive: boolean;
|
|
37
|
-
}
|
|
38
|
-
export interface PaginationResult {
|
|
39
|
-
buttons: PaginationButton[];
|
|
40
|
-
firstPage?: PaginationButton;
|
|
41
|
-
lastPage?: PaginationButton;
|
|
42
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DetailedHTMLProps, FC, HTMLAttributes, ImgHTMLAttributes } from 'react';
|
|
2
|
-
import { ImageType } from '../types';
|
|
3
|
-
interface BasePictureProps extends DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
4
|
-
imgProps?: DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>;
|
|
5
|
-
image1x: string;
|
|
6
|
-
image2x?: string;
|
|
7
|
-
image1xWebp?: string;
|
|
8
|
-
image2xWebp?: string;
|
|
9
|
-
mobileImage1x?: string;
|
|
10
|
-
mobileImage2x?: string;
|
|
11
|
-
mobileImage1xWebp?: string;
|
|
12
|
-
mobileImage2xWebp?: string;
|
|
13
|
-
type: ImageType;
|
|
14
|
-
alt: string;
|
|
15
|
-
bgColorClass: string;
|
|
16
|
-
mobileMaxWidth?: number;
|
|
17
|
-
loading?: 'eager' | 'lazy';
|
|
18
|
-
}
|
|
19
|
-
export declare const BasePicture: FC<BasePictureProps>;
|
|
20
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './image';
|