stone-kit 0.0.887 → 0.0.889
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/App.js +10 -0
- package/dist/ButtonState.module-DtW3aevR.js +8 -0
- package/dist/FilterWithSave-Bp6rH8Pe.js +2230 -0
- package/dist/Menu-CgCfinVZ.js +513 -0
- package/dist/Option-BVIm7wOW.js +83 -0
- package/dist/PinTrans-D6OZq76b.js +10 -0
- package/dist/Router.js +103 -0
- package/dist/SmallFilter-C-VKnbkP.js +10 -0
- package/dist/components/Button/index.js +4 -0
- package/dist/components/Button/ui/Button.js +94 -0
- package/dist/components/Button/ui/Button.types.js +15 -0
- package/dist/components/CheckBox/CheckBox.js +84 -0
- package/dist/components/CheckBox/CheckBox.types.js +1 -0
- package/dist/components/CheckBox/index.js +4 -0
- package/dist/components/CheckBoxNew/CheckBox.types.js +6 -0
- package/dist/components/CheckBoxNew/CheckBoxNew.js +45 -0
- package/dist/components/CheckboxSelect/index.js +4 -0
- package/dist/components/CheckboxSelect/ui/CheckboxSelect.js +51 -0
- package/dist/components/DestinationTab/index.js +4 -0
- package/dist/components/DestinationTab/ui/DestinationTab.js +75 -0
- package/dist/components/DestinationTab/ui/DestinationTab.types.js +6 -0
- package/dist/components/FieldInput/index.js +4 -0
- package/dist/components/FieldInput/ui/FieldInput.js +22 -0
- package/dist/components/FieldInput/ui/FieldInput.types.js +1 -0
- package/dist/components/FilterWithSave/hooks/useFilterWithSave.js +28 -0
- package/dist/components/FilterWithSave/ui/FilterWithSave.js +9 -0
- package/dist/components/Flex/index.js +4 -0
- package/dist/components/Flex/ui/Flex.js +68 -0
- package/dist/components/Flex/ui/Flex.types.js +1 -0
- package/dist/components/FormModal/ui/ModalForm.js +30 -0
- package/dist/components/FormModal/utils/reg.js +6 -0
- package/dist/components/GroupedInput/index.js +4 -0
- package/dist/components/GroupedInput/ui/GroupedInputs.js +8 -0
- package/dist/components/GroupedInput/ui/GroupedInputs.types.js +1 -0
- package/dist/components/Input/index.js +4 -0
- package/dist/components/Input/ui/Input.js +3346 -0
- package/dist/components/Input/ui/Input.types.js +1 -0
- package/dist/components/Logo/index.js +4 -0
- package/dist/components/Logo/ui/Logo.js +63 -0
- package/dist/components/Logo/ui/Logo.types.js +13 -0
- package/dist/components/LotCard/hooks/useLotCard.js +31 -0
- package/dist/components/LotCard/index.js +4 -0
- package/dist/components/LotCard/ui/LotCard.js +11 -0
- package/dist/components/LotCard/ui/LotCard.types.d.ts +163 -70
- package/dist/components/LotCard/ui/LotCard.types.js +1 -0
- package/dist/components/LotCard/utils/checkBedroomsCount.js +20 -0
- package/dist/components/LotCard/utils/const.js +11 -0
- package/dist/components/LotCard/utils/formatPrice.js +11 -0
- package/dist/components/LotCard/utils/getTagsFeatures.js +13 -0
- package/dist/components/LotCard/utils/monthlyPayment.js +4 -0
- package/dist/components/LotCardSkeleton/index.js +4 -0
- package/dist/components/LotCardSkeleton/ui/LotCardSkeleton.js +83 -0
- package/dist/components/MetroLabel/ui/MetroLabel.js +44 -0
- package/dist/components/MetroLabel/ui/MetroLabel.types.js +1 -0
- package/dist/components/MetroTag/index.js +4 -0
- package/dist/components/MetroTag/ui/MetroTag.js +142 -0
- package/dist/components/MetroTag/ui/MetroTag.types.js +1 -0
- package/dist/components/Modal/index.js +4 -0
- package/dist/components/Modal/ui/Modal.js +77 -0
- package/dist/components/Modal/ui/Modal.types.js +1 -0
- package/dist/components/ModalSuccess/ModalSuccess.js +61 -0
- package/dist/components/ModalSuccess/ModalSuccess.types.js +1 -0
- package/dist/components/NewIcon/icons/PinTrans.js +6 -0
- package/dist/components/NewIcon/icons/SmallFilter.js +6 -0
- package/dist/components/NewIcon/index.js +4 -0
- package/dist/components/NewIcon/ui/NewIcon.js +319 -0
- package/dist/components/NewIcon/ui/NewIcon.types.js +1 -0
- package/dist/components/NewIcon/ui/iconTypes.js +60 -0
- package/dist/components/ProjectCardSkeleton/index.js +4 -0
- package/dist/components/ProjectCardSkeleton/ui/ProjectCardSkeleton.js +34 -0
- package/dist/components/RoundButton/index.js +4 -0
- package/dist/components/RoundButton/ui/RoundButton.js +73 -0
- package/dist/components/RoundButton/ui/RoundButton.types.js +16 -0
- package/dist/components/Select/index.js +4 -0
- package/dist/components/Select/model/selectMode.js +49 -0
- package/dist/components/Select/ui/Category.js +76 -0
- package/dist/components/Select/ui/Option.js +7 -0
- package/dist/components/Select/ui/Select.js +179 -0
- package/dist/components/Select/ui/Select.types.js +1 -0
- package/dist/components/SliderNavigation/index.js +4 -0
- package/dist/components/SliderNavigation/ui/SliderNavigation.js +65 -0
- package/dist/components/SliderNavigation/ui/SliderNavigation.types.js +1 -0
- package/dist/components/SortSelect/hooks/useSortSelect.js +6 -0
- package/dist/components/SortSelect/index.js +4 -0
- package/dist/components/SortSelect/ui/SortSelect.js +29 -0
- package/dist/components/SortSelect/ui/SortSelect.types.js +1 -0
- package/dist/components/SummarySelect/index.js +4 -0
- package/dist/components/SummarySelect/ui/SummarySelect.js +128 -0
- package/dist/components/Switcher/index.js +4 -0
- package/dist/components/Switcher/ui/Switcher.js +49 -0
- package/dist/components/Switcher/ui/Switcher.types.js +1 -0
- package/dist/components/TabSelect/index.js +4 -0
- package/dist/components/TabSelect/ui/TabSelect.js +49 -0
- package/dist/components/TabSelect/ui/TabSelect.types.js +1 -0
- package/dist/components/TabSwitcher/index.js +4 -0
- package/dist/components/TabSwitcher/ui/TabSwitcher.js +28 -0
- package/dist/components/TabSwitcher/ui/TabSwitcher.types.js +1 -0
- package/dist/components/Tag/index.js +4 -0
- package/dist/components/Tag/ui/Tag.js +79 -0
- package/dist/components/Tag/ui/Tag.types.js +20 -0
- package/dist/components/Text/index.js +4 -0
- package/dist/components/Text/ui/Text.js +22 -0
- package/dist/components/Text/ui/Text.types.js +1 -0
- package/dist/components/TextArea/TextArea.js +19 -0
- package/dist/components/TextArea/TextArea.types.js +1 -0
- package/dist/components/ZoomControls/index.js +4 -0
- package/dist/components/ZoomControls/ui/ZoomControls.js +31 -0
- package/dist/components/ZoomControls/ui/ZoomControls.types.js +1 -0
- package/dist/components/mobileButton/index.js +4 -0
- package/dist/components/mobileButton/ui/MobileButton.js +64 -0
- package/dist/components/mobileButton/ui/MobileButton.types.js +6 -0
- package/dist/index-DQgqDqGf.js +34046 -0
- package/dist/index-DmANy9jd.js +890 -0
- package/dist/index-rKuIKazb.js +45 -0
- package/dist/layout/Layout.js +11 -0
- package/dist/layout/components/Header/Header.js +164 -0
- package/dist/layout/components/Menu.js +28 -0
- package/dist/main.js +62 -7727
- package/dist/pages/ButtonsPage/ButtonState/ButtonState.js +121 -0
- package/dist/pages/ButtonsPage/Buttons.js +134 -0
- package/dist/pages/CheckboxPage/CheckboxPage.js +224 -0
- package/dist/pages/FormsPage/FormsPage.js +81 -0
- package/dist/pages/HomePage/HomePage.js +7 -0
- package/dist/pages/IconsPage/IconsPage.js +41 -0
- package/dist/pages/InputPage/InputPage.js +35 -0
- package/dist/pages/LogoPage/LogoPage.js +38 -0
- package/dist/pages/LotsPage/LotsPage.js +75 -0
- package/dist/pages/LotsPage/const.d.ts +4 -0
- package/dist/pages/LotsPage/const.js +210 -0
- package/dist/pages/ModalsPage/ModalPage.js +130 -0
- package/dist/pages/SelectPage/SelectPage.js +175 -0
- package/dist/pages/SelectPage/const.js +35 -0
- package/dist/pages/TabsPage/TabsPage.js +155 -0
- package/dist/pages/TagsPage/TagsPage.js +75 -0
- package/dist/shared/checkLargeOffice.js +12 -0
- package/dist/shared/deepEqual.js +16 -0
- package/dist/shared/useClientWidth.js +14 -0
- package/dist/stories/Button.js +23 -0
- package/dist/stories/Button.stories.js +50 -0
- package/dist/stories/Header.js +44 -0
- package/dist/stories/Header.stories.js +28 -0
- package/dist/stories/Page.js +58 -0
- package/dist/stories/Page.stories.js +22 -0
- package/dist/style.css +1 -1
- package/dist/useSortSelect-CjZXLFOG.js +80 -0
- package/package.json +1 -2
|
@@ -1,50 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
interface
|
|
3
|
-
name: string | null;
|
|
4
|
-
color: string | null;
|
|
5
|
-
station: string | null;
|
|
6
|
-
timeTo: string | null;
|
|
7
|
-
}
|
|
8
|
-
interface IFeatures {
|
|
9
|
-
category: string | null;
|
|
10
|
-
icoImg: {
|
|
11
|
-
attributes: {
|
|
12
|
-
url: string;
|
|
13
|
-
};
|
|
14
|
-
} | null;
|
|
15
|
-
slug: string | null;
|
|
16
|
-
val: string | null;
|
|
17
|
-
}
|
|
18
|
-
interface IGeo {
|
|
19
|
-
lat: string | null;
|
|
20
|
-
lon: string | null;
|
|
21
|
-
}
|
|
22
|
-
interface IProject {
|
|
23
|
-
address: string | null;
|
|
24
|
-
buildingYear: number | null;
|
|
25
|
-
createdAt: string | null;
|
|
26
|
-
direction: number | null;
|
|
27
|
-
features: IFeatures[] | null;
|
|
28
|
-
geo: IGeo | null;
|
|
29
|
-
id: number;
|
|
30
|
-
logoImg: string | null;
|
|
31
|
-
metro: IMetro[];
|
|
32
|
-
name: string;
|
|
33
|
-
project: string;
|
|
34
|
-
shortDesc: string;
|
|
35
|
-
sitPlanImg: string;
|
|
36
|
-
sort: number;
|
|
37
|
-
sortOffice: number | null;
|
|
38
|
-
sortRetail: number | null;
|
|
39
|
-
updatedAt: string;
|
|
40
|
-
buildingQuarter: number;
|
|
41
|
-
projectUuid: string;
|
|
42
|
-
portalUuid: string;
|
|
43
|
-
location: string;
|
|
44
|
-
showPriceFlg: boolean | null;
|
|
45
|
-
lotsCount: number | null;
|
|
46
|
-
}
|
|
47
|
-
interface ILotPromo {
|
|
2
|
+
interface LotPromo {
|
|
48
3
|
/** Промо текст */
|
|
49
4
|
val: string;
|
|
50
5
|
/** Идентификатор */
|
|
@@ -52,19 +7,21 @@ interface ILotPromo {
|
|
|
52
7
|
/** Категория */
|
|
53
8
|
category: string;
|
|
54
9
|
/** Ссылка на иконку */
|
|
55
|
-
icoImg: string;
|
|
10
|
+
icoImg: string | null;
|
|
56
11
|
/** hex цвет */
|
|
57
12
|
color: string;
|
|
58
13
|
}
|
|
59
14
|
export interface ILot {
|
|
60
15
|
/** id Лота */
|
|
61
|
-
id: number
|
|
16
|
+
id: number;
|
|
62
17
|
/** Название проекта */
|
|
63
18
|
name?: string | null;
|
|
64
19
|
/** Квартал сдачи */
|
|
65
20
|
buildingQuarter?: number | null;
|
|
21
|
+
cornerKitchenLiving?: boolean | null;
|
|
66
22
|
/** uuid Лота из 1с */
|
|
67
23
|
lotUuid: string;
|
|
24
|
+
/** TODO: убрать */
|
|
68
25
|
projectUuid: string | null;
|
|
69
26
|
/** Скидка */
|
|
70
27
|
discount: string | null;
|
|
@@ -75,13 +32,15 @@ export interface ILot {
|
|
|
75
32
|
/**id проекта */
|
|
76
33
|
projectId: number | null;
|
|
77
34
|
/** Показывать цену или "цена по запросу" */
|
|
78
|
-
showPriceFlg
|
|
35
|
+
showPriceFlg?: boolean | null;
|
|
79
36
|
/** Цена за квм */
|
|
80
|
-
sellingPricePerMeter
|
|
37
|
+
sellingPricePerMeter?: string | null;
|
|
81
38
|
/** цена за метра квадратный за год за аренду */
|
|
82
39
|
rentPricePerMeterPerYear: string | null;
|
|
83
40
|
/** аренда за месяц */
|
|
84
41
|
rentPricePerMonth: string | null;
|
|
42
|
+
/** стороны света */
|
|
43
|
+
cardinalDirections?: string[] | null;
|
|
85
44
|
/** Размер скидки */
|
|
86
45
|
discountVolume: number | null;
|
|
87
46
|
/** Цена со скидкой */
|
|
@@ -91,17 +50,19 @@ export interface ILot {
|
|
|
91
50
|
/** дата, до которой должны быть выданы ключи */
|
|
92
51
|
handoverKeys: string | null;
|
|
93
52
|
/** состояние лота: свободен, зарезервирован, продан, сдан в аренду, заблокирован, деактивирован */
|
|
94
|
-
status
|
|
53
|
+
status?: number | null;
|
|
95
54
|
/** Статус аренды лота */
|
|
96
55
|
rentStatus: number | null;
|
|
97
56
|
/** название лота в 1С */
|
|
98
|
-
number: string | null;
|
|
57
|
+
number: string | null | undefined;
|
|
99
58
|
/** полный адрес лота (с корпусом) */
|
|
100
59
|
address: string | null;
|
|
60
|
+
/** коммерческие программы рассрочки */
|
|
61
|
+
termsOfPurchase: string[] | null;
|
|
101
62
|
/** Тип помещения => Квартиры/Пентхаусы/Келлеры/Паркинг Офисы/Ритейл/Офисные Блоки/Паркинг */
|
|
102
63
|
type: number | null;
|
|
103
64
|
/** Название помещения => Квартиры/Пентхаусы/Келлеры/Паркинг Офисы/Ритейл/Офисные Блоки/Паркинг */
|
|
104
|
-
typeName:
|
|
65
|
+
typeName: string | null;
|
|
105
66
|
/** направления, по которым продвигается этот лот */
|
|
106
67
|
direction: number | null;
|
|
107
68
|
/** Размерность спален S/M/L */
|
|
@@ -122,7 +83,6 @@ export interface ILot {
|
|
|
122
83
|
floor: number | null;
|
|
123
84
|
/** Высота потолков */
|
|
124
85
|
ceiling: string | null;
|
|
125
|
-
/** Последний этаж лота */
|
|
126
86
|
/** Этаж, с которого начинаются продаваемые лоты */
|
|
127
87
|
saleFloorMin: number | null;
|
|
128
88
|
/** Этаж, на котором заканчиваются продаваемые лоты */
|
|
@@ -146,10 +106,10 @@ export interface ILot {
|
|
|
146
106
|
/** угловое? */
|
|
147
107
|
isCorner: boolean | null;
|
|
148
108
|
/** Квартира с террасой */
|
|
149
|
-
terrace
|
|
109
|
+
terrace?: boolean | null;
|
|
150
110
|
/** общепит? */
|
|
151
111
|
isCatering: boolean | null;
|
|
152
|
-
pdfPresentation: string | null;
|
|
112
|
+
pdfPresentation: string | null | undefined;
|
|
153
113
|
/** является ли лот отдельно стоящим зданием */
|
|
154
114
|
isDetachedBuilding: boolean | null;
|
|
155
115
|
/** Наличие телефона */
|
|
@@ -159,11 +119,11 @@ export interface ILot {
|
|
|
159
119
|
/** мусоропровод */
|
|
160
120
|
isGarbageTube: boolean | null;
|
|
161
121
|
/** Является ли лот пентхаусом */
|
|
162
|
-
isPenthouse
|
|
122
|
+
isPenthouse?: boolean | null;
|
|
163
123
|
/** Является ли лот апартаментом */
|
|
164
124
|
isApart: boolean | null;
|
|
165
125
|
/** Является ли лот двухуровневым */
|
|
166
|
-
isDoubleLevel
|
|
126
|
+
isDoubleLevel?: boolean | null;
|
|
167
127
|
/** Есть ли пандус */
|
|
168
128
|
isRamp: boolean | null;
|
|
169
129
|
/** Близко ли вход к лифтовой группе */
|
|
@@ -175,28 +135,35 @@ export interface ILot {
|
|
|
175
135
|
/** Есть ли отделка */
|
|
176
136
|
isFacing: boolean | null;
|
|
177
137
|
/** Особенности квартиры */
|
|
178
|
-
features:
|
|
138
|
+
features: LotFeature[] | null;
|
|
179
139
|
/** Количество пассажирских лифтов */
|
|
180
140
|
liftPassenger: number | null;
|
|
181
141
|
/** Количество грузовых лифтов */
|
|
182
142
|
liftService?: number | null;
|
|
183
143
|
/** Количество балконов */
|
|
184
144
|
balcony: number | null;
|
|
145
|
+
bathroomWithWindow: boolean | null;
|
|
146
|
+
dressingRoom: boolean | null;
|
|
147
|
+
masterBedroom: boolean | null;
|
|
148
|
+
workroom: boolean | null;
|
|
149
|
+
objectId: string;
|
|
150
|
+
reservations: unknown[];
|
|
151
|
+
businessType: string | null;
|
|
185
152
|
/** Количество лоджий */
|
|
186
|
-
loggia
|
|
153
|
+
loggia?: number | null;
|
|
187
154
|
/** Состояние помещения */
|
|
188
155
|
condition: string | null;
|
|
189
156
|
/** Тип входа в помещений */
|
|
190
157
|
inputType?: string | null;
|
|
191
158
|
/** Отделка */
|
|
192
|
-
decoration
|
|
159
|
+
decoration?: string | null;
|
|
193
160
|
/** Тип планировки */
|
|
194
161
|
layout: string | null;
|
|
195
162
|
/** Тип ремонта */
|
|
196
163
|
repairType: string | null;
|
|
197
164
|
slug: string;
|
|
198
165
|
/** количество стояков с водой */
|
|
199
|
-
waterPipesCount
|
|
166
|
+
waterPipesCount?: number[] | null;
|
|
200
167
|
/** количество рабочих мест */
|
|
201
168
|
workPlacesCount: number | null;
|
|
202
169
|
/** Количество совместных санузлов */
|
|
@@ -207,12 +174,12 @@ export interface ILot {
|
|
|
207
174
|
showcaseWindows: string | null;
|
|
208
175
|
/** Вид из окна */
|
|
209
176
|
windowView: string | null;
|
|
210
|
-
/**
|
|
177
|
+
/** Вид из окна для ритейла*/
|
|
211
178
|
windowViews: string[];
|
|
212
179
|
/** Promo метки */
|
|
213
|
-
promo:
|
|
180
|
+
promo: LotPromo[] | null;
|
|
214
181
|
/** Promo текст */
|
|
215
|
-
promoText
|
|
182
|
+
promoText?: string | null;
|
|
216
183
|
/** Ссылка на картинку */
|
|
217
184
|
interiorPlanImg?: string | null;
|
|
218
185
|
/** Ссылка на картинку */
|
|
@@ -224,7 +191,7 @@ export interface ILot {
|
|
|
224
191
|
/** Дата обновления */
|
|
225
192
|
updatedAt?: string;
|
|
226
193
|
/** Первоначальный взнос */
|
|
227
|
-
firstPaymentSum?: string;
|
|
194
|
+
firstPaymentSum?: string | null;
|
|
228
195
|
/** Массив с лотами в фоисных блоках */
|
|
229
196
|
childLots?: {
|
|
230
197
|
id: number;
|
|
@@ -232,15 +199,120 @@ export interface ILot {
|
|
|
232
199
|
floorPlanImg: string;
|
|
233
200
|
interiorPlanImg: string;
|
|
234
201
|
}[];
|
|
235
|
-
cornerKitchenLiving?: boolean | null;
|
|
236
202
|
recommended?: ILot[] | null;
|
|
237
203
|
parking?: ILot[] | null;
|
|
238
|
-
project?:
|
|
204
|
+
project?: LotProject | null;
|
|
239
205
|
isWaterPipes?: boolean | null;
|
|
240
206
|
azimuthAngle?: number | null;
|
|
241
207
|
isDecoration?: boolean | null;
|
|
242
|
-
subTypeName
|
|
243
|
-
subType
|
|
208
|
+
subTypeName?: string | null;
|
|
209
|
+
subType: number | null;
|
|
210
|
+
}
|
|
211
|
+
export interface LotFeature {
|
|
212
|
+
/** Текст */
|
|
213
|
+
val: string;
|
|
214
|
+
/** Категория */
|
|
215
|
+
category: string;
|
|
216
|
+
/** Ссылка на иконку */
|
|
217
|
+
icoImg: string | null;
|
|
218
|
+
/** Идентификатор */
|
|
219
|
+
slug: string;
|
|
220
|
+
isSearchable?: boolean | null;
|
|
221
|
+
}
|
|
222
|
+
export interface LotCardFeature {
|
|
223
|
+
/** Текст */
|
|
224
|
+
val: string;
|
|
225
|
+
/** Категория */
|
|
226
|
+
category: string;
|
|
227
|
+
/** Ссылка на иконку */
|
|
228
|
+
icoImg: {
|
|
229
|
+
attributes: IDefaultImg;
|
|
230
|
+
id: number;
|
|
231
|
+
} | null;
|
|
232
|
+
/** Идентификатор */
|
|
233
|
+
slug: string;
|
|
234
|
+
}
|
|
235
|
+
export interface LotProject {
|
|
236
|
+
direction: number;
|
|
237
|
+
discount: string;
|
|
238
|
+
/** id */
|
|
239
|
+
id: number;
|
|
240
|
+
/** Название проекта */
|
|
241
|
+
name: string;
|
|
242
|
+
/** адрес */
|
|
243
|
+
address: string;
|
|
244
|
+
/** особенности, набор строк */
|
|
245
|
+
features: LotFeature[] | null;
|
|
246
|
+
frontFeatures: unknown;
|
|
247
|
+
geo: {
|
|
248
|
+
lat: string;
|
|
249
|
+
long: string;
|
|
250
|
+
};
|
|
251
|
+
logoImg: unknown;
|
|
252
|
+
minimalLotPrice: {
|
|
253
|
+
[key: number]: string;
|
|
254
|
+
};
|
|
255
|
+
retailLotsCount: {
|
|
256
|
+
[key: number]: number;
|
|
257
|
+
};
|
|
258
|
+
salesOffice: unknown;
|
|
259
|
+
shortDesc: string;
|
|
260
|
+
showCatalog: boolean;
|
|
261
|
+
showDetailPage: boolean;
|
|
262
|
+
showPdfBtn: boolean;
|
|
263
|
+
/** условия для больших лотов */
|
|
264
|
+
bigLotFeatures: LotCardFeature;
|
|
265
|
+
/** условия для каталога */
|
|
266
|
+
catalogFeatures: LotCardFeature[];
|
|
267
|
+
/** квартал сдачи */
|
|
268
|
+
buildingQuarter?: number | null;
|
|
269
|
+
/** Локация */
|
|
270
|
+
location?: string | null;
|
|
271
|
+
/** год сдачи */
|
|
272
|
+
buildingYear?: number;
|
|
273
|
+
/** широта */
|
|
274
|
+
lat?: string;
|
|
275
|
+
/** долгота */
|
|
276
|
+
long?: string;
|
|
277
|
+
/** сортровка */
|
|
278
|
+
sort: number | null;
|
|
279
|
+
/** Дата создания */
|
|
280
|
+
createdAt: string;
|
|
281
|
+
/** Дата обновления */
|
|
282
|
+
updatedAt: string;
|
|
283
|
+
/** Расстояние до метро */
|
|
284
|
+
metro: Metro[];
|
|
285
|
+
/** Показывать цену лотов */
|
|
286
|
+
showPriceFlg?: boolean;
|
|
287
|
+
/** uuid */
|
|
288
|
+
uuid?: string;
|
|
289
|
+
/** Статус проекта */
|
|
290
|
+
status: string;
|
|
291
|
+
/** Количество лотов проекта в продаже */
|
|
292
|
+
lotsCount?: number | null;
|
|
293
|
+
/** SitPlan проекта */
|
|
294
|
+
sitPlanImg: string;
|
|
295
|
+
strapiSlug?: string;
|
|
296
|
+
sortOffice?: number;
|
|
297
|
+
sortRetail?: number;
|
|
298
|
+
}
|
|
299
|
+
export interface Metro {
|
|
300
|
+
/** Цвет ветки */
|
|
301
|
+
color: string;
|
|
302
|
+
/** Широта */
|
|
303
|
+
lat?: number;
|
|
304
|
+
/** Долгота */
|
|
305
|
+
long?: number;
|
|
306
|
+
/** Название станции */
|
|
307
|
+
name: string;
|
|
308
|
+
station?: string | null;
|
|
309
|
+
/** Время до станции в минутах */
|
|
310
|
+
timeTo: number;
|
|
311
|
+
mode: null | string;
|
|
312
|
+
/** Иконка */
|
|
313
|
+
icon?: {
|
|
314
|
+
data?: IDefaultImg;
|
|
315
|
+
} | null;
|
|
244
316
|
}
|
|
245
317
|
export interface ILotCard {
|
|
246
318
|
lot: ILot;
|
|
@@ -253,4 +325,25 @@ export interface ILotCard {
|
|
|
253
325
|
imgNode?: React.ReactNode;
|
|
254
326
|
rowConditions?: boolean;
|
|
255
327
|
}
|
|
328
|
+
export interface IDefaultImg extends IDefaultAttributes {
|
|
329
|
+
alternativeText: string | null;
|
|
330
|
+
caption: string | null;
|
|
331
|
+
ext: string;
|
|
332
|
+
formats: unknown;
|
|
333
|
+
hash: string;
|
|
334
|
+
height: number;
|
|
335
|
+
mime: string;
|
|
336
|
+
name: string;
|
|
337
|
+
previewUrl: unknown;
|
|
338
|
+
provider: string;
|
|
339
|
+
provider_metadata?: unknown;
|
|
340
|
+
size: number;
|
|
341
|
+
url: string;
|
|
342
|
+
width?: number;
|
|
343
|
+
}
|
|
344
|
+
export interface IDefaultAttributes {
|
|
345
|
+
createdAt: string;
|
|
346
|
+
updatedAt: string;
|
|
347
|
+
publishedAt: string;
|
|
348
|
+
}
|
|
256
349
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const t = (e) => {
|
|
2
|
+
if (!e || typeof e != "number" || e < 1)
|
|
3
|
+
return "Студия";
|
|
4
|
+
const s = e % 10, r = e % 100;
|
|
5
|
+
if (r >= 11 && r <= 19)
|
|
6
|
+
return `${e} спален`;
|
|
7
|
+
switch (s) {
|
|
8
|
+
case 1:
|
|
9
|
+
return `${e} спальня`;
|
|
10
|
+
case 2:
|
|
11
|
+
case 3:
|
|
12
|
+
case 4:
|
|
13
|
+
return `${e} спальни`;
|
|
14
|
+
default:
|
|
15
|
+
return `${e} спален`;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
t as checkBedroomsCount
|
|
20
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const x = ({
|
|
2
|
+
loggia: e,
|
|
3
|
+
cornerKitchenLiving: s,
|
|
4
|
+
terrace: u,
|
|
5
|
+
isPenthouse: p,
|
|
6
|
+
isDoubleLevel: r
|
|
7
|
+
}) => {
|
|
8
|
+
const t = [];
|
|
9
|
+
return e && t.push({ text: "Балкон" }), s && t.push({ text: "Угловая" }), u && t.push({ text: "Терраса" }), p && t.push({ text: "Пентхаус" }), r && t.push({ text: "Двухуровневая" }), t;
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
x as getTagsFeatures
|
|
13
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsxs as p, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { c } from "../../../index-rKuIKazb.js";
|
|
3
|
+
const l = "_root_7lz45_12", s = "_projectRoot_7lz45_22", i = "_lotImageWrapper_7lz45_26", a = "_pulsing_7lz45_1", n = "_projectLotImageWrapper_7lz45_37", _ = "_lotInfoWrapper_7lz45_41", m = "_projectLotInfoWrapper_7lz45_48", P = "_infoHeader_7lz45_52", L = "_projectInfoHeader_7lz45_60", d = "_decor_7lz45_64", W = "_lotPropertyListMobile_7lz45_71", j = "_lotPropertyItem_7lz45_79", I = "_projectLotPropertyItem_7lz45_104", y = "_lotPropertyListDesktop_7lz45_109", z = "_lotPriceWrapper_7lz45_113", v = "_projectLotPriceWrapper_7lz45_117", D = "_discountWrapper_7lz45_121", f = "_lotPricePerMetr_7lz45_134", N = "_btnWrapper_7lz45_139", u = "_projectBtnWrapper_7lz45_155", M = "_projectDecor_7lz45_201", k = "_projectLotPropertyListMobile_7lz45_210", b = "_projectLotPropertyListDesktop_7lz45_218", g = "_lotPropertyItemDesktop_7lz45_221", h = "_projectDiscountWrapper_7lz45_232", H = "_discountPrice_7lz45_235", x = "_projectLotPricePerMetr_7lz45_255", t = {
|
|
4
|
+
root: l,
|
|
5
|
+
projectRoot: s,
|
|
6
|
+
lotImageWrapper: i,
|
|
7
|
+
pulsing: a,
|
|
8
|
+
projectLotImageWrapper: n,
|
|
9
|
+
lotInfoWrapper: _,
|
|
10
|
+
projectLotInfoWrapper: m,
|
|
11
|
+
infoHeader: P,
|
|
12
|
+
projectInfoHeader: L,
|
|
13
|
+
decor: d,
|
|
14
|
+
lotPropertyListMobile: W,
|
|
15
|
+
lotPropertyItem: j,
|
|
16
|
+
projectLotPropertyItem: I,
|
|
17
|
+
lotPropertyListDesktop: y,
|
|
18
|
+
lotPriceWrapper: z,
|
|
19
|
+
projectLotPriceWrapper: v,
|
|
20
|
+
discountWrapper: D,
|
|
21
|
+
lotPricePerMetr: f,
|
|
22
|
+
btnWrapper: N,
|
|
23
|
+
projectBtnWrapper: u,
|
|
24
|
+
projectDecor: M,
|
|
25
|
+
projectLotPropertyListMobile: k,
|
|
26
|
+
projectLotPropertyListDesktop: b,
|
|
27
|
+
lotPropertyItemDesktop: g,
|
|
28
|
+
projectDiscountWrapper: h,
|
|
29
|
+
discountPrice: H,
|
|
30
|
+
projectLotPricePerMetr: x
|
|
31
|
+
}, r = c.bind(t), S = ({ isProjectCard: o }) => /* @__PURE__ */ p("div", { className: r(t.root, { [t.projectRoot]: o }), children: [
|
|
32
|
+
/* @__PURE__ */ e("div", { className: r(t.lotImageWrapper, { [t.projectLotImageWrapper]: o }) }),
|
|
33
|
+
/* @__PURE__ */ p("div", { className: r(t.lotInfoWrapper, { [t.projectLotInfoWrapper]: o }), children: [
|
|
34
|
+
/* @__PURE__ */ e("div", { className: r(t.infoHeader, { [t.projectInfoHeader]: o }) }),
|
|
35
|
+
/* @__PURE__ */ e("div", { className: r(t.decor, { [t.projectDecor]: o }) }),
|
|
36
|
+
/* @__PURE__ */ p(
|
|
37
|
+
"div",
|
|
38
|
+
{
|
|
39
|
+
className: r(t.lotPropertyListDesktop, {
|
|
40
|
+
[t.projectLotPropertyListDesktop]: o
|
|
41
|
+
}),
|
|
42
|
+
children: [
|
|
43
|
+
/* @__PURE__ */ e("div", { className: t.lotPropertyItemDesktop }),
|
|
44
|
+
/* @__PURE__ */ e("div", { className: t.lotPropertyItemDesktop }),
|
|
45
|
+
/* @__PURE__ */ e("div", { className: t.lotPropertyItemDesktop })
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
/* @__PURE__ */ p(
|
|
50
|
+
"ul",
|
|
51
|
+
{
|
|
52
|
+
className: r(t.lotPropertyListMobile, {
|
|
53
|
+
[t.projectLotPropertyListMobile]: o
|
|
54
|
+
}),
|
|
55
|
+
children: [
|
|
56
|
+
/* @__PURE__ */ p("li", { className: r(t.lotPropertyItem, { [t.projectLotPropertyItem]: o }), children: [
|
|
57
|
+
/* @__PURE__ */ e("div", {}),
|
|
58
|
+
/* @__PURE__ */ e("div", {})
|
|
59
|
+
] }),
|
|
60
|
+
/* @__PURE__ */ p("li", { className: r(t.lotPropertyItem, { [t.projectLotPropertyItem]: o }), children: [
|
|
61
|
+
/* @__PURE__ */ e("div", {}),
|
|
62
|
+
/* @__PURE__ */ e("div", {})
|
|
63
|
+
] }),
|
|
64
|
+
/* @__PURE__ */ p("li", { className: r(t.lotPropertyItem, { [t.projectLotPropertyItem]: o }), children: [
|
|
65
|
+
/* @__PURE__ */ e("div", {}),
|
|
66
|
+
/* @__PURE__ */ e("div", {})
|
|
67
|
+
] })
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
] }),
|
|
72
|
+
/* @__PURE__ */ p("div", { className: r(t.lotPriceWrapper, { [t.projectLotPriceWrapper]: o }), children: [
|
|
73
|
+
/* @__PURE__ */ e("div", { className: r(t.discountWrapper, { [t.projectDiscountWrapper]: o }), children: /* @__PURE__ */ e("div", {}) }),
|
|
74
|
+
/* @__PURE__ */ e("div", { className: r(t.lotPricePerMetr, { [t.projectLotPricePerMetr]: o }) }),
|
|
75
|
+
/* @__PURE__ */ p("div", { className: r(t.btnWrapper, { [t.projectBtnWrapper]: o }), children: [
|
|
76
|
+
/* @__PURE__ */ e("div", {}),
|
|
77
|
+
/* @__PURE__ */ e("div", {})
|
|
78
|
+
] })
|
|
79
|
+
] })
|
|
80
|
+
] });
|
|
81
|
+
export {
|
|
82
|
+
S as LotCardSkeleton
|
|
83
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsxs as s, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { c as _ } from "../../../index-rKuIKazb.js";
|
|
3
|
+
import { NewIcon as m } from "../../NewIcon/ui/NewIcon.js";
|
|
4
|
+
const f = "_root_1ml5t_1", d = "_metroColor_1ml5t_15", N = "_route_1ml5t_25", p = "_auto_1ml5t_35", x = "_full_1ml5t_39", t = {
|
|
5
|
+
root: f,
|
|
6
|
+
metroColor: d,
|
|
7
|
+
route: N,
|
|
8
|
+
auto: p,
|
|
9
|
+
full: x
|
|
10
|
+
}, C = _.bind(t), v = ({ addClassName: c, metro: o, width: n = "full", justifyContent: a = "flex-start", colorIcon: e = "#777E90", ...u }) => /* @__PURE__ */ s(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
style: { justifyContent: `${a}` },
|
|
14
|
+
className: C(t.root, c, t[n]),
|
|
15
|
+
...u,
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ s("div", { className: t.metroColor, children: [
|
|
18
|
+
(o == null ? void 0 : o.color) && /* @__PURE__ */ r("span", { style: { background: (o == null ? void 0 : o.color) ?? "" } }),
|
|
19
|
+
o.name
|
|
20
|
+
] }),
|
|
21
|
+
o.routes && o.routes.map((l, i) => /* @__PURE__ */ s(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
className: t.route,
|
|
25
|
+
children: [
|
|
26
|
+
l.iconName && /* @__PURE__ */ r(
|
|
27
|
+
m,
|
|
28
|
+
{
|
|
29
|
+
size: "20",
|
|
30
|
+
name: l.iconName,
|
|
31
|
+
color: e
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
l.timeTo + " мин"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
i
|
|
38
|
+
))
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
export {
|
|
43
|
+
v as MetroLabel
|
|
44
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|