@redneckz/wildless-cms-uni-blocks 0.14.332 → 0.14.334
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/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +112 -52
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/bundle/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/bundle/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/bundle/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/bundle/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/bundle/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/bundle/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
- package/bundle/icons/IconName.d.ts +4 -2
- package/bundle/ui-kit/RichText/RichTextProps.d.ts +0 -1
- package/bundle/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/bundle/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/cosmos-static/icons/MapMarkerClusterYellowIcon.svg +1 -0
- package/cosmos-static/icons/sprites.svg +1 -0
- package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +27 -18
- package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
- package/dist/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/dist/components/OfficesAtmsMap/OfficesMap.js +12 -9
- package/dist/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
- package/dist/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/dist/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/dist/components/OfficesAtmsMap/renderDescriptionBlock.js +9 -0
- package/dist/components/OfficesAtmsMap/renderDescriptionBlock.js.map +1 -0
- package/dist/components/OfficesAtmsMap/renderFiltrationForm.js +2 -1
- package/dist/components/OfficesAtmsMap/renderFiltrationForm.js.map +1 -1
- package/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js +35 -0
- package/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js.map +1 -0
- package/dist/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/dist/components/OfficesAtmsMap/useOffices.js +4 -2
- package/dist/components/OfficesAtmsMap/useOffices.js.map +1 -1
- package/dist/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
- package/dist/icons/IconName.d.ts +4 -2
- package/dist/icons/IconName.js +3 -1
- package/dist/icons/IconName.js.map +1 -1
- package/dist/ui-kit/RichText/RichText.js +4 -2
- package/dist/ui-kit/RichText/RichText.js.map +1 -1
- package/dist/ui-kit/RichText/RichTextProps.d.ts +0 -1
- package/dist/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/dist/ui-kit/YandexMap/YandexMap.js +2 -2
- package/dist/ui-kit/YandexMap/YandexMap.js.map +1 -1
- package/dist/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/dist/ui-kit/YandexMap/renderClusterer.js +33 -14
- package/dist/ui-kit/YandexMap/renderClusterer.js.map +1 -1
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +27 -18
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/lib/components/OfficesAtmsMap/OfficesMap.js +12 -9
- package/lib/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
- package/lib/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/lib/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +2 -0
- package/lib/components/OfficesAtmsMap/renderDescriptionBlock.js +6 -0
- package/lib/components/OfficesAtmsMap/renderDescriptionBlock.js.map +1 -0
- package/lib/components/OfficesAtmsMap/renderFiltrationForm.js +2 -1
- package/lib/components/OfficesAtmsMap/renderFiltrationForm.js.map +1 -1
- package/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +6 -0
- package/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js +31 -0
- package/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js.map +1 -0
- package/lib/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/lib/components/OfficesAtmsMap/useOffices.js +4 -2
- package/lib/components/OfficesAtmsMap/useOffices.js.map +1 -1
- package/lib/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
- package/lib/icons/IconName.d.ts +4 -2
- package/lib/icons/IconName.js +3 -1
- package/lib/icons/IconName.js.map +1 -1
- package/lib/ui-kit/RichText/RichText.js +4 -2
- package/lib/ui-kit/RichText/RichText.js.map +1 -1
- package/lib/ui-kit/RichText/RichTextProps.d.ts +0 -1
- package/lib/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/lib/ui-kit/YandexMap/YandexMap.js +2 -2
- package/lib/ui-kit/YandexMap/YandexMap.js.map +1 -1
- package/lib/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/lib/ui-kit/YandexMap/renderClusterer.js +32 -13
- package/lib/ui-kit/YandexMap/renderClusterer.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +112 -52
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/mobile/bundle/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/mobile/bundle/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/mobile/bundle/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/mobile/bundle/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/mobile/bundle/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/mobile/bundle/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
- package/mobile/bundle/icons/IconName.d.ts +4 -2
- package/mobile/bundle/ui-kit/RichText/RichTextProps.d.ts +0 -1
- package/mobile/bundle/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/mobile/bundle/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +27 -18
- package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
- package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/mobile/dist/components/OfficesAtmsMap/OfficesMap.js +12 -9
- package/mobile/dist/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
- package/mobile/dist/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/mobile/dist/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/mobile/dist/components/OfficesAtmsMap/renderDescriptionBlock.js +9 -0
- package/mobile/dist/components/OfficesAtmsMap/renderDescriptionBlock.js.map +1 -0
- package/mobile/dist/components/OfficesAtmsMap/renderFiltrationForm.js +2 -1
- package/mobile/dist/components/OfficesAtmsMap/renderFiltrationForm.js.map +1 -1
- package/mobile/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/mobile/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js +35 -0
- package/mobile/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js.map +1 -0
- package/mobile/dist/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/mobile/dist/components/OfficesAtmsMap/useOffices.js +4 -2
- package/mobile/dist/components/OfficesAtmsMap/useOffices.js.map +1 -1
- package/mobile/dist/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
- package/mobile/dist/icons/IconName.d.ts +4 -2
- package/mobile/dist/icons/IconName.js +3 -1
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/ui-kit/RichText/RichText.js +4 -2
- package/mobile/dist/ui-kit/RichText/RichText.js.map +1 -1
- package/mobile/dist/ui-kit/RichText/RichTextProps.d.ts +0 -1
- package/mobile/dist/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/mobile/dist/ui-kit/YandexMap/YandexMap.js +2 -2
- package/mobile/dist/ui-kit/YandexMap/YandexMap.js.map +1 -1
- package/mobile/dist/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/mobile/dist/ui-kit/YandexMap/renderClusterer.js +33 -14
- package/mobile/dist/ui-kit/YandexMap/renderClusterer.js.map +1 -1
- package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +27 -18
- package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
- package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/mobile/lib/components/OfficesAtmsMap/OfficesMap.js +12 -9
- package/mobile/lib/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
- package/mobile/lib/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/mobile/lib/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/mobile/lib/components/OfficesAtmsMap/renderDescriptionBlock.js +6 -0
- package/mobile/lib/components/OfficesAtmsMap/renderDescriptionBlock.js.map +1 -0
- package/mobile/lib/components/OfficesAtmsMap/renderFiltrationForm.js +2 -1
- package/mobile/lib/components/OfficesAtmsMap/renderFiltrationForm.js.map +1 -1
- package/mobile/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/mobile/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js +31 -0
- package/mobile/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js.map +1 -0
- package/mobile/lib/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/mobile/lib/components/OfficesAtmsMap/useOffices.js +4 -2
- package/mobile/lib/components/OfficesAtmsMap/useOffices.js.map +1 -1
- package/mobile/lib/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
- package/mobile/lib/icons/IconName.d.ts +4 -2
- package/mobile/lib/icons/IconName.js +3 -1
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/ui-kit/RichText/RichText.js +4 -2
- package/mobile/lib/ui-kit/RichText/RichText.js.map +1 -1
- package/mobile/lib/ui-kit/RichText/RichTextProps.d.ts +0 -1
- package/mobile/lib/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/mobile/lib/ui-kit/YandexMap/YandexMap.js +2 -2
- package/mobile/lib/ui-kit/YandexMap/YandexMap.js.map +1 -1
- package/mobile/lib/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/mobile/lib/ui-kit/YandexMap/renderClusterer.js +32 -13
- package/mobile/lib/ui-kit/YandexMap/renderClusterer.js.map +1 -1
- package/mobile/src/components/OfficesAtmsMap/OfficesAtmsMapLayout.tsx +34 -45
- package/mobile/src/components/OfficesAtmsMap/OfficesAtmsMapProps.tsx +15 -0
- package/mobile/src/components/OfficesAtmsMap/OfficesMap.tsx +28 -12
- package/mobile/src/components/OfficesAtmsMap/YandexMapProps.ts +1 -0
- package/mobile/src/components/OfficesAtmsMap/renderDescriptionBlock.tsx +29 -0
- package/mobile/src/components/OfficesAtmsMap/renderFiltrationForm.tsx +2 -1
- package/mobile/src/components/OfficesAtmsMap/renderRemoteWorkplaceCard.tsx +86 -0
- package/mobile/src/components/OfficesAtmsMap/useOffices.ts +11 -4
- package/mobile/src/components/ProductGallery/ProductGalleryContent.ts +3 -7
- package/mobile/src/icons/IconName.ts +5 -5
- package/mobile/src/icons/MapMarkerClusterYellowIcon.svg +1 -0
- package/mobile/src/ui-kit/RichText/RichText.tsx +5 -3
- package/mobile/src/ui-kit/RichText/RichTextProps.ts +0 -1
- package/mobile/src/ui-kit/YandexMap/YandexMap.tsx +3 -3
- package/mobile/src/ui-kit/YandexMap/renderClusterer.ts +62 -16
- package/package.json +1 -1
- package/src/components/OfficesAtmsMap/OfficesAtmsMapLayout.tsx +34 -45
- package/src/components/OfficesAtmsMap/OfficesAtmsMapProps.tsx +15 -0
- package/src/components/OfficesAtmsMap/OfficesMap.tsx +28 -12
- package/src/components/OfficesAtmsMap/YandexMapProps.ts +1 -0
- package/src/components/OfficesAtmsMap/renderDescriptionBlock.tsx +29 -0
- package/src/components/OfficesAtmsMap/renderFiltrationForm.tsx +2 -1
- package/src/components/OfficesAtmsMap/renderRemoteWorkplaceCard.tsx +86 -0
- package/src/components/OfficesAtmsMap/useOffices.ts +11 -4
- package/src/components/ProductGallery/ProductGalleryContent.ts +3 -7
- package/src/icons/IconName.ts +5 -1
- package/src/icons/MapMarkerClusterYellowIcon.svg +1 -0
- package/src/ui-kit/RichText/RichText.tsx +5 -3
- package/src/ui-kit/RichText/RichTextProps.ts +0 -1
- package/src/ui-kit/YandexMap/YandexMap.tsx +3 -3
- package/src/ui-kit/YandexMap/renderClusterer.ts +62 -16
|
@@ -595,10 +595,12 @@
|
|
|
595
595
|
|
|
596
596
|
const getHtmlText = (html) => html.replace(/<\/?[^>]+\/?>/g, '').trim();
|
|
597
597
|
|
|
598
|
+
const EMPTY_HTML = '<p><br></p>';
|
|
598
599
|
const RichText = JSX((props) => {
|
|
599
|
-
const { __html
|
|
600
|
+
const { __html, richVersion = '' } = props;
|
|
601
|
+
return __html && getHtmlText(__html) !== EMPTY_HTML ? (
|
|
600
602
|
/* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
|
|
601
|
-
|
|
603
|
+
jsx("div", { "data-component": "rich-text-container", children: jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }) })) : null;
|
|
602
604
|
});
|
|
603
605
|
|
|
604
606
|
const renderBenefitDescription = (description, i) => description ? (jsx(Paragraph, { font: "font-light", size: "text-m", color: "text-secondary-text group-data-secondary:text-white", children: description }, `description-${i}`)) : null;
|
|
@@ -4128,13 +4130,37 @@
|
|
|
4128
4130
|
childSchema: (content) => content?.filtrationSchema || {},
|
|
4129
4131
|
});
|
|
4130
4132
|
|
|
4131
|
-
|
|
4133
|
+
const MapMarkerClusterIcon = '/icons/MapMarkerClusterIcon.svg';
|
|
4134
|
+
const MapMarkerClusterYellowIcon = '/icons/MapMarkerClusterYellowIcon.svg';
|
|
4135
|
+
function renderClusterer({ yandexMaps, map, points, }) {
|
|
4132
4136
|
map.geoObjects.removeAll();
|
|
4133
4137
|
const clusterIconContentLayout = yandexMaps.templateLayoutFactory.createClass('<div style="margin-top: -3px;">{{properties.geoObjects.length}}</div>');
|
|
4134
|
-
const
|
|
4138
|
+
const officeClusterer = defineClusterer('offices', yandexMaps, clusterIconContentLayout);
|
|
4139
|
+
if (points.length && points.every((_) => 'type' in _)) {
|
|
4140
|
+
const remoteWorkplaceClusterer = defineClusterer('workplaces', yandexMaps, clusterIconContentLayout);
|
|
4141
|
+
const remoteWorkplaceGeoObjects = defineGeoObjects(points.filter((_) => _.type === 'workplaces'), 'workplaces', yandexMaps);
|
|
4142
|
+
const officesGeoObjects = defineGeoObjects(points.filter((_) => _.type === 'offices'), 'offices', yandexMaps);
|
|
4143
|
+
officeClusterer.add(officesGeoObjects);
|
|
4144
|
+
remoteWorkplaceClusterer.add(remoteWorkplaceGeoObjects);
|
|
4145
|
+
map.geoObjects.add(remoteWorkplaceClusterer);
|
|
4146
|
+
map.geoObjects.add(officeClusterer);
|
|
4147
|
+
}
|
|
4148
|
+
else {
|
|
4149
|
+
const geoObjects = defineGeoObjects(points, 'offices', yandexMaps);
|
|
4150
|
+
officeClusterer.add(geoObjects);
|
|
4151
|
+
map.geoObjects.add(officeClusterer);
|
|
4152
|
+
}
|
|
4153
|
+
map.setBounds(yandexMaps.util.bounds.fromPoints(points.map((_) => _.coords))).then(() => {
|
|
4154
|
+
if (map.getZoom() > 10) {
|
|
4155
|
+
map.setZoom(10);
|
|
4156
|
+
}
|
|
4157
|
+
});
|
|
4158
|
+
}
|
|
4159
|
+
const defineClusterer = (type, yandexMaps, clusterIconContentLayout) => {
|
|
4160
|
+
return new yandexMaps.Clusterer({
|
|
4135
4161
|
clusterIcons: [
|
|
4136
4162
|
{
|
|
4137
|
-
href: '
|
|
4163
|
+
href: type === 'offices' ? MapMarkerClusterIcon : MapMarkerClusterYellowIcon,
|
|
4138
4164
|
size: [78, 84],
|
|
4139
4165
|
offset: [-35, -50],
|
|
4140
4166
|
},
|
|
@@ -4143,25 +4169,20 @@
|
|
|
4143
4169
|
clusterHideIconOnBalloonOpen: false,
|
|
4144
4170
|
geoObjectHideIconOnBalloonOpen: false,
|
|
4145
4171
|
});
|
|
4146
|
-
|
|
4172
|
+
};
|
|
4173
|
+
const defineGeoObjects = (pointArr, type, yandexMaps) => {
|
|
4174
|
+
return pointArr.map(({ coords, content }) => new yandexMaps.Placemark(coords, {
|
|
4147
4175
|
balloonContentHeader: content?.header,
|
|
4148
4176
|
balloonContentBody: content?.body,
|
|
4149
4177
|
balloonContentFooter: content?.footer,
|
|
4150
4178
|
hintContent: content?.hint,
|
|
4151
4179
|
}, {
|
|
4152
4180
|
iconLayout: 'default#image',
|
|
4153
|
-
iconImageHref: '
|
|
4181
|
+
iconImageHref: type === 'offices' ? MapMarkerClusterIcon : MapMarkerClusterYellowIcon,
|
|
4154
4182
|
iconImageSize: [78, 84],
|
|
4155
4183
|
iconImageOffset: [-35, -50],
|
|
4156
4184
|
}));
|
|
4157
|
-
|
|
4158
|
-
map.geoObjects.add(clusterer);
|
|
4159
|
-
map.setBounds(yandexMaps.util.bounds.fromPoints(points.map((_) => _.coords))).then(() => {
|
|
4160
|
-
if (map.getZoom() > 10) {
|
|
4161
|
-
map.setZoom(10);
|
|
4162
|
-
}
|
|
4163
|
-
});
|
|
4164
|
-
}
|
|
4185
|
+
};
|
|
4165
4186
|
|
|
4166
4187
|
const styles$1 = {
|
|
4167
4188
|
focus: 'focus:border-primary-text focus:border',
|
|
@@ -4293,11 +4314,11 @@
|
|
|
4293
4314
|
controls: [],
|
|
4294
4315
|
suppressMapOpenBlock: true,
|
|
4295
4316
|
});
|
|
4296
|
-
renderClusterer(yandexMaps, map.current, points);
|
|
4317
|
+
renderClusterer({ yandexMaps, map: map.current, points });
|
|
4297
4318
|
});
|
|
4298
4319
|
}
|
|
4299
4320
|
else if (yandexMaps) {
|
|
4300
|
-
renderClusterer(yandexMaps, map.current, points);
|
|
4321
|
+
renderClusterer({ yandexMaps, map: map.current, points });
|
|
4301
4322
|
if (!points?.length) {
|
|
4302
4323
|
map.current.setCenter(DEFAULT_CENTER_COORDS);
|
|
4303
4324
|
}
|
|
@@ -4316,6 +4337,8 @@
|
|
|
4316
4337
|
const mapByIndex = (points, index) => points.map((_) => _.coords[index]);
|
|
4317
4338
|
const getArraySumAndAverage = (arr) => arr.length && arr.reduce((a, b) => a + b) / arr.length;
|
|
4318
4339
|
|
|
4340
|
+
const renderDescriptionBlock$1 = ({ __html, list }) => __html || list?.length ? (jsxs("div", { className: "mb-2xl border-b sm:border border-main-divider sm:rounded-md", children: [__html ? (jsx("div", { className: "mb-2xl", children: jsx(RichText, { __html: __html }) })) : null, list?.length ? (jsx("div", { className: "flex flex-col sm:flex-row gap-2xl sm:flex-wrap pb-2xl sm:pb-xl", children: list.map((item, i) => (jsxs("div", { className: "flex gap-xs items-center", children: [item?.image ? jsx(Img, { image: item.image }) : null, item?.text ? (jsx(Text, { size: "text-m", font: "font-light", children: item.text })) : null] }, String(i)))) })) : null] })) : null;
|
|
4341
|
+
|
|
4319
4342
|
const FILTRATION_LABELS = {
|
|
4320
4343
|
safeBoxCaseVolumes: 'Аренда индивидуальных сейфовых ячеек',
|
|
4321
4344
|
workingSaturday: 'Открыты по субботам',
|
|
@@ -4330,14 +4353,14 @@
|
|
|
4330
4353
|
bullionOperations: 'Операции со слитками',
|
|
4331
4354
|
preciousMetalsOperations: 'Операции с драгоценными металлами',
|
|
4332
4355
|
transferringDataToBiometricSystem: 'Передача фото и голоса в Единую биометрическую систему',
|
|
4356
|
+
remoteWorkplace: 'Удаленное рабочее место',
|
|
4333
4357
|
};
|
|
4334
4358
|
const COMMON_FILTERS_STYLES = 'flex flex-col sm:flex-row sm:flex-wrap gap-3xl pb-2xl';
|
|
4335
4359
|
const renderFiltrationForm = (filters, { field, reset }, onlyOffice) => {
|
|
4336
|
-
const visibleFiltersNum =
|
|
4360
|
+
const visibleFiltersNum = 4;
|
|
4337
4361
|
const filtersCheckbox = (filters || []).map((key) => (jsx(Checkbox, { text: FILTRATION_LABELS[key], ...field(key) }, key)));
|
|
4338
|
-
const [visibleFilters, hiddenFilters] = visibleFiltersNum
|
|
4339
|
-
|
|
4340
|
-
: [filtersCheckbox, []];
|
|
4362
|
+
const [visibleFilters, hiddenFilters] = [filtersCheckbox.slice(0, visibleFiltersNum), filtersCheckbox.slice(visibleFiltersNum)]
|
|
4363
|
+
;
|
|
4341
4364
|
return (jsx("div", { children: filters?.length ? (jsx("div", { children: jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs("div", { children: [jsx("div", { className: COMMON_FILTERS_STYLES, children: visibleFilters }), jsx(FoldableSection, { className: COMMON_FILTERS_STYLES, isUnfolded: isUnfolded, children: hiddenFilters })] })), renderFoldButton: renderFoldButton$1(reset, onlyOffice) }) })) : null }));
|
|
4342
4365
|
};
|
|
4343
4366
|
const renderFoldButton$1 = (reset, onlyOffice) => ({ isUnfolded, onToggle }) => {
|
|
@@ -4349,37 +4372,47 @@
|
|
|
4349
4372
|
const defaultEmptyFunction = () => void 0;
|
|
4350
4373
|
const defaultFilterItems = () => [];
|
|
4351
4374
|
const filtersVisibleStyles = (activeButton) => activeButton === 'all' ? 'block' : 'hidden';
|
|
4352
|
-
const OfficesAtmsMapLayout = JSX(({ className, data = [], renderCard = defaultEmptyFunction, filterItems = defaultFilterItems, getBalloon = defaultEmptyFunction, initFilterState = {}, descriptionData, title, }) => {
|
|
4375
|
+
const OfficesAtmsMapLayout = JSX(({ className, data = [], remoteWorkplaces = [], renderCard = defaultEmptyFunction, renderRemoteWorkplaceCard = defaultEmptyFunction, filterItems = defaultFilterItems, getBalloon = defaultEmptyFunction, getBalloonRemoteWorkplaces = defaultEmptyFunction, initFilterState = {}, descriptionData, title, }) => {
|
|
4353
4376
|
const onlyOffice = title?.includes('Офис');
|
|
4354
4377
|
const [filtrationState, { field, reset }] = useForm(initFilterState);
|
|
4355
|
-
const [filteredItems, points, lengthItems] = useMemo(() => {
|
|
4378
|
+
const [filteredItems, points, filteredRemoteWorkplaces, lengthItems] = useMemo(() => {
|
|
4356
4379
|
const _filteredItems = filterItems(data, filtrationState);
|
|
4357
|
-
const
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4380
|
+
const _filteredRemoteWorkplaces = filterItems(remoteWorkplaces, filtrationState);
|
|
4381
|
+
const _points = [
|
|
4382
|
+
..._filteredItems.map((_) => ({
|
|
4383
|
+
type: 'offices',
|
|
4384
|
+
coords: [Number(_.gpsLatitude), Number(_.gpsLongitude)]?.filter(Boolean),
|
|
4385
|
+
content: getBalloon(_),
|
|
4386
|
+
})),
|
|
4387
|
+
..._filteredRemoteWorkplaces.map((_) => ({
|
|
4388
|
+
type: 'workplaces',
|
|
4389
|
+
coords: [Number(_.gpsLatitude), Number(_.gpsLongitude)]?.filter(Boolean),
|
|
4390
|
+
content: getBalloonRemoteWorkplaces({
|
|
4391
|
+
address: _.address,
|
|
4392
|
+
workScheduleDescription: _.workScheduleDescription,
|
|
4393
|
+
}),
|
|
4394
|
+
})),
|
|
4395
|
+
].filter((_) => _.coords && _.coords.length === 2);
|
|
4396
|
+
const itemsLength = _filteredItems.length + _filteredRemoteWorkplaces?.length;
|
|
4397
|
+
return [_filteredItems, _points, _filteredRemoteWorkplaces, itemsLength];
|
|
4398
|
+
}, [data, remoteWorkplaces, filtrationState]);
|
|
4365
4399
|
const [activeButton, setActiveButton] = useState('all');
|
|
4366
|
-
return (jsxs("div", { className: style('space-y-1', className), children: [jsxs("div", { className: "bg-white", children: [jsxs("div", { className: "p-6xl pb-0", children: [jsx("div", { className: "flex flex-col sm:flex-row gap-xs mb-2xl", children: jsxs(Heading, { headingType: "h2", children: [title, lengthItems ? (jsx(Text, { size: "text-h2", color: "text-secondary-text", children: ` (${lengthItems})` })) : null] }) }), descriptionData ? renderDescriptionBlock$1(descriptionData) : null, onlyOffice && renderButtonsGroup(data, activeButton, setActiveButton), jsx("div", { className: style('pb-2xl', filtersVisibleStyles(activeButton)), children: renderFiltrationForm(Object.keys(initFilterState), { field, reset }, onlyOffice) })] }), jsx("div", { className: "h-[600px]", children: jsx(ClientOnly, { children: jsx(YandexMap, { points: points, className: "h-full" }) }) })] }), filteredItems.map(renderCard)] }));
|
|
4400
|
+
return (jsxs("div", { className: style('space-y-1', className), children: [jsxs("div", { className: "bg-white", children: [jsxs("div", { className: "p-6xl pb-0", children: [jsx("div", { className: "flex flex-col sm:flex-row gap-xs mb-2xl", children: jsxs(Heading, { headingType: "h2", children: [title, lengthItems ? (jsx(Text, { size: "text-h2", color: "text-secondary-text", children: ` (${lengthItems})` })) : null] }) }), descriptionData ? renderDescriptionBlock$1(descriptionData) : null, onlyOffice && renderButtonsGroup(data, activeButton, setActiveButton), jsx("div", { className: style('pb-2xl', filtersVisibleStyles(activeButton)), children: renderFiltrationForm(Object.keys(initFilterState), { field, reset }, onlyOffice) })] }), jsx("div", { className: "h-[600px]", children: jsx(ClientOnly, { children: jsx(YandexMap, { points: points, className: "h-full" }) }) })] }), filteredItems.map(renderCard), filteredRemoteWorkplaces.map(renderRemoteWorkplaceCard)] }));
|
|
4367
4401
|
});
|
|
4368
|
-
const renderButtonsGroup = (data, activeButton,
|
|
4402
|
+
const renderButtonsGroup = (data, activeButton, onButtonClick) => {
|
|
4369
4403
|
const allButtonVersion = activeButton === 'all' ? 'primary' : 'secondary';
|
|
4370
4404
|
const businessButtonVersion = activeButton === 'business' ? 'primary' : 'secondary';
|
|
4371
|
-
const
|
|
4405
|
+
const handleClick = (e, key, branches) => {
|
|
4372
4406
|
if (e.currentTarget === e.target && key === 'business') {
|
|
4373
4407
|
branches.filter((branch) => branch.workSchedule &&
|
|
4374
4408
|
branch.workSchedule.businessScheduleVisibleTag &&
|
|
4375
4409
|
!branch.workSchedule.businessScheduleDescription);
|
|
4376
4410
|
}
|
|
4377
|
-
|
|
4411
|
+
onButtonClick(key);
|
|
4378
4412
|
return branches;
|
|
4379
4413
|
};
|
|
4380
|
-
return (jsxs("div", { className: "flex gap-lg flex-col sm:flex-row pb-lg", children: [jsx(Button, { "data-id": "all", onClick: (e) =>
|
|
4414
|
+
return (jsxs("div", { className: "flex gap-lg flex-col sm:flex-row pb-lg", children: [jsx(Button, { "data-id": "all", onClick: (e) => handleClick(e, 'all', data), version: allButtonVersion, children: "\u0414\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446" }), jsx(Button, { "data-id": "business", onClick: (e) => handleClick(e, 'business', data), version: businessButtonVersion, children: "\u0414\u043B\u044F \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446" })] }));
|
|
4381
4415
|
};
|
|
4382
|
-
const renderDescriptionBlock$1 = ({ __html, list }) => __html || list?.length ? (jsxs("div", { className: "mb-2xl border-b sm:border border-main-divider sm:rounded-md", children: [__html ? (jsx("div", { className: "mb-2xl", children: jsx(RichText, { __html: __html }) })) : null, list?.length ? (jsx("div", { className: "flex flex-col sm:flex-row gap-2xl sm:flex-wrap pb-2xl sm:pb-xl", children: list.map((item, i) => (jsxs("div", { className: "flex gap-xs items-center", children: [item?.image ? jsx(Img, { image: item.image }) : null, item?.text ? (jsx(Text, { size: "text-m", font: "font-light", children: item.text })) : null] }, String(i)))) })) : null] })) : null;
|
|
4383
4416
|
|
|
4384
4417
|
const colorStyle = {
|
|
4385
4418
|
yellow: { border: 'border-yellow-light', text: 'text-yellow' },
|
|
@@ -4603,7 +4636,7 @@
|
|
|
4603
4636
|
return null;
|
|
4604
4637
|
}
|
|
4605
4638
|
const workScheduleWeek = getWorkScheduleWeek(workSchedule);
|
|
4606
|
-
return (jsxs("div", { className: "bg-white col-span-12 p-3xl sm:border-green sm:border", children: [jsxs("div", { className: "sm:flex sm:justify-between", children: [jsxs("div", { children: [jsx(Text, { size: "text-h4", children: name }), address ? (jsxs("div", { className: "flex pb-xl pt-xs gap-2xs", children: [jsx(Icon, { name: "GeolocationIcon", width: "24", height: "24" }), jsx(Text, { size: "text-l", children: address })] })) : null] }), renderCurrentDaySchedule(workScheduleWeek)] }), jsx("div", { className: "hidden sm:block", children: renderCardContent({
|
|
4639
|
+
return (jsxs("div", { className: "bg-white col-span-12 p-3xl sm:border-green sm:border", children: [jsxs("div", { className: "sm:flex sm:justify-between", children: [jsxs("div", { children: [jsx(Text, { size: "text-h4", children: name }), address ? (jsxs("div", { className: "flex pb-xl pt-xs gap-2xs", children: [jsx(Icon, { name: "GeolocationIcon", width: "24", height: "24" }), jsx(Text, { size: "text-l", children: address })] })) : null] }), renderCurrentDaySchedule(workScheduleWeek)] }), jsx("div", { className: "hidden sm:block", children: renderCardContent$1({
|
|
4607
4640
|
phone,
|
|
4608
4641
|
fax,
|
|
4609
4642
|
phoneBusiness,
|
|
@@ -4613,7 +4646,7 @@
|
|
|
4613
4646
|
workSchedule,
|
|
4614
4647
|
exchangeRate,
|
|
4615
4648
|
}) }), jsx(Foldable, { className: "block sm:hidden", renderFoldableSection: ({ isUnfolded }) => {
|
|
4616
|
-
return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: renderCardContent({
|
|
4649
|
+
return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: renderCardContent$1({
|
|
4617
4650
|
phone,
|
|
4618
4651
|
fax,
|
|
4619
4652
|
phoneBusiness,
|
|
@@ -4627,7 +4660,7 @@
|
|
|
4627
4660
|
//** TODO: remove styles with refactoring DefaultFoldButton*/
|
|
4628
4661
|
renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton({ isUnfolded, onToggle }) })] }, String(index)));
|
|
4629
4662
|
};
|
|
4630
|
-
const renderCardContent = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
|
|
4663
|
+
const renderCardContent$1 = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
|
|
4631
4664
|
const workScheduleWeek = getWorkScheduleWeek(workSchedule);
|
|
4632
4665
|
const labelSchedule = workSchedule?.businessScheduleVisibleTag
|
|
4633
4666
|
? 'Для физических лиц'
|
|
@@ -4643,13 +4676,38 @@
|
|
|
4643
4676
|
return { header, body };
|
|
4644
4677
|
};
|
|
4645
4678
|
|
|
4679
|
+
const renderRemoteWorkplaceCard = ({ address, workScheduleDescription }, index) => {
|
|
4680
|
+
if (!workScheduleDescription) {
|
|
4681
|
+
return null;
|
|
4682
|
+
}
|
|
4683
|
+
return (jsxs("div", { className: "bg-white col-span-12 p-3xl sm:border-green sm:border", children: [jsx("div", { className: "sm:flex sm:justify-between", children: jsxs("div", { children: [jsx(Text, { size: "text-h4", children: "\u0423\u0434\u0430\u043B\u0435\u043D\u043D\u043E\u0435 \u0440\u0430\u0431\u043E\u0447\u0435\u0435 \u043C\u0435\u0441\u0442\u043E" }), address ? (jsxs("div", { className: "flex pb-xl pt-xs gap-2xs", children: [jsx(Icon, { name: "GeolocationIcon", width: "24", height: "24" }), jsx(Text, { size: "text-l", children: address })] })) : null] }) }), jsx("div", { className: "hidden sm:block", children: renderCardContent({
|
|
4684
|
+
workScheduleDescription,
|
|
4685
|
+
}) }), jsx(Foldable, { className: "block sm:hidden", renderFoldableSection: ({ isUnfolded }) => {
|
|
4686
|
+
return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: renderCardContent({
|
|
4687
|
+
workScheduleDescription,
|
|
4688
|
+
}) }));
|
|
4689
|
+
},
|
|
4690
|
+
//** TODO: remove styles with refactoring DefaultFoldButton*/
|
|
4691
|
+
renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton({ isUnfolded, onToggle }) })] }, String(index)));
|
|
4692
|
+
};
|
|
4693
|
+
const renderCardContent = ({ workScheduleDescription }) => {
|
|
4694
|
+
return (jsxs("div", { children: [jsxs(CardRow, { className: "flex", children: [jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0438 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u043A\u0440\u0435\u0434\u0438\u0442\u043E\u0432, \u0441\u0447\u0435\u0442\u043E\u0432, \u0432\u043A\u043B\u0430\u0434\u043E\u0432" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0438 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0445 \u043A\u0430\u0440\u0442" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u0418\u043D\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u043E\u043D\u043D\u043E\u0435 \u0438 \u043D\u0430\u043A\u043E\u043F\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u043D\u0438\u0435" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u0411\u0435\u0437\u043D\u0430\u043B\u0438\u0447\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u0440\u0443\u0431\u043B\u044F\u0445, \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u044B \u0431\u0435\u0437 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F \u0441\u0447\u0451\u0442\u0430" }) })] }), jsx(CardCell, { label: "\u0420\u0435\u0436\u0438\u043C \u0440\u0430\u0431\u043E\u0442\u044B", className: "max-w-none", children: jsx(Text, { children: workScheduleDescription }) })] }));
|
|
4695
|
+
};
|
|
4696
|
+
const getRemoteWorkplacePoint = ({ address = '', workScheduleDescription, }) => {
|
|
4697
|
+
const header = 'Удаленное рабочее место';
|
|
4698
|
+
const body = `${address} ${workScheduleDescription}`;
|
|
4699
|
+
return { header, body };
|
|
4700
|
+
};
|
|
4701
|
+
|
|
4646
4702
|
const EMPTY_VALUE$1 = [];
|
|
4647
4703
|
function useOffices(regionCode) {
|
|
4648
|
-
const { data = EMPTY_VALUE$1 } = useAsyncData(`/api/v1/
|
|
4704
|
+
const { data = EMPTY_VALUE$1 } = useAsyncData(`/api/v1/branchesAndRemoteWorkplaces?regionCode=${regionCode}`, fetchMap);
|
|
4649
4705
|
return data;
|
|
4650
4706
|
}
|
|
4651
4707
|
const fetchMap = async (url) => {
|
|
4652
|
-
const result = await fetchJSON(url, {
|
|
4708
|
+
const result = await fetchJSON(url, {
|
|
4709
|
+
method: 'GET',
|
|
4710
|
+
});
|
|
4653
4711
|
return Array.isArray(result) ? result : EMPTY_VALUE$1;
|
|
4654
4712
|
};
|
|
4655
4713
|
|
|
@@ -4657,6 +4715,7 @@
|
|
|
4657
4715
|
workingSaturday: false,
|
|
4658
4716
|
premiumService: false,
|
|
4659
4717
|
privateBanking: false,
|
|
4718
|
+
remoteWorkplace: false,
|
|
4660
4719
|
sellingCoins: false,
|
|
4661
4720
|
buyingCoins: false,
|
|
4662
4721
|
bullionOperations: false,
|
|
@@ -4664,20 +4723,21 @@
|
|
|
4664
4723
|
transferringDataToBiometricSystem: false,
|
|
4665
4724
|
};
|
|
4666
4725
|
const FILTRATION_PREDICATES = {
|
|
4667
|
-
workingSaturday: (item) => Boolean(item.workSchedule?.workingSaturday),
|
|
4668
|
-
premiumService: (item) => Boolean(item.premiumService),
|
|
4669
|
-
privateBanking: (item) => Boolean(item.privateBanking),
|
|
4670
|
-
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
|
-
|
|
4726
|
+
workingSaturday: (item) => Boolean('workSchedule' in item && item.workSchedule?.workingSaturday),
|
|
4727
|
+
premiumService: (item) => Boolean('premiumService' in item && item.premiumService),
|
|
4728
|
+
privateBanking: (item) => Boolean('privateBanking' in item && item.privateBanking),
|
|
4729
|
+
remoteWorkplace: (item) => Boolean('workScheduleDescription' in item),
|
|
4730
|
+
sellingCoins: (item) => Boolean('sellingCoins' in item && item.sellingCoins),
|
|
4731
|
+
buyingCoins: (item) => Boolean('buyingCoins' in item && item.buyingCoins),
|
|
4732
|
+
bullionOperations: (item) => Boolean('bullionOperations' in item && item.bullionOperations),
|
|
4733
|
+
preciousMetalsOperations: (item) => Boolean('preciousMetalsOperations' in item && item.preciousMetalsOperations),
|
|
4734
|
+
transferringDataToBiometricSystem: (item) => Boolean('transferringDataToBiometricSystem' in item && item.transferringDataToBiometricSystem),
|
|
4675
4735
|
};
|
|
4676
4736
|
const OfficesMap = JSX(({ className }) => {
|
|
4677
4737
|
const [currentLocation] = useLocation();
|
|
4678
4738
|
const regionCode = currentLocation?.code ?? '000';
|
|
4679
4739
|
const officesData = useOffices(regionCode);
|
|
4680
|
-
return (jsx(OfficesAtmsMapLayout, { className: className, filterItems: filterItems, data: officesData, initFilterState: INITIAL_FILTRATION_STATE, renderCard: renderOfficeCard, getBalloon: getOfficePoint, title: `Офисы филиала ${currentLocation?.name}` }));
|
|
4740
|
+
return (jsx(OfficesAtmsMapLayout, { className: className, filterItems: filterItems, data: officesData[0]?.branches, remoteWorkplaces: officesData[0]?.remoteWorkplaces, initFilterState: INITIAL_FILTRATION_STATE, renderCard: renderOfficeCard, renderRemoteWorkplaceCard: renderRemoteWorkplaceCard, getBalloon: getOfficePoint, getBalloonRemoteWorkplaces: getRemoteWorkplacePoint, title: `Офисы филиала ${currentLocation?.name}` }));
|
|
4681
4741
|
});
|
|
4682
4742
|
const filterItems = (data, filtrationState) => {
|
|
4683
4743
|
const truthyFilters = Object.keys(filtrationState).filter((key) => filtrationState[key]);
|
|
@@ -5730,7 +5790,7 @@
|
|
|
5730
5790
|
slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
|
|
5731
5791
|
});
|
|
5732
5792
|
|
|
5733
|
-
const packageVersion = "0.14.
|
|
5793
|
+
const packageVersion = "0.14.333";
|
|
5734
5794
|
|
|
5735
5795
|
exports.Blocks = Blocks;
|
|
5736
5796
|
exports.ContentPage = ContentPage;
|