@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
package/bundle/bundle.umd.js
CHANGED
|
@@ -587,10 +587,12 @@
|
|
|
587
587
|
|
|
588
588
|
const getHtmlText = (html) => html.replace(/<\/?[^>]+\/?>/g, '').trim();
|
|
589
589
|
|
|
590
|
+
const EMPTY_HTML = '<p><br></p>';
|
|
590
591
|
const RichText = JSX((props) => {
|
|
591
|
-
const { __html
|
|
592
|
+
const { __html, richVersion = '' } = props;
|
|
593
|
+
return __html && getHtmlText(__html) !== EMPTY_HTML ? (
|
|
592
594
|
/* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
|
|
593
|
-
|
|
595
|
+
jsx("div", { "data-component": "rich-text-container", children: jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }) })) : null;
|
|
594
596
|
});
|
|
595
597
|
|
|
596
598
|
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;
|
|
@@ -4815,13 +4817,37 @@
|
|
|
4815
4817
|
childSchema: (content) => content?.filtrationSchema || {},
|
|
4816
4818
|
});
|
|
4817
4819
|
|
|
4818
|
-
|
|
4820
|
+
const MapMarkerClusterIcon = '/icons/MapMarkerClusterIcon.svg';
|
|
4821
|
+
const MapMarkerClusterYellowIcon = '/icons/MapMarkerClusterYellowIcon.svg';
|
|
4822
|
+
function renderClusterer({ yandexMaps, map, points, }) {
|
|
4819
4823
|
map.geoObjects.removeAll();
|
|
4820
4824
|
const clusterIconContentLayout = yandexMaps.templateLayoutFactory.createClass('<div style="margin-top: -3px;">{{properties.geoObjects.length}}</div>');
|
|
4821
|
-
const
|
|
4825
|
+
const officeClusterer = defineClusterer('offices', yandexMaps, clusterIconContentLayout);
|
|
4826
|
+
if (points.length && points.every((_) => 'type' in _)) {
|
|
4827
|
+
const remoteWorkplaceClusterer = defineClusterer('workplaces', yandexMaps, clusterIconContentLayout);
|
|
4828
|
+
const remoteWorkplaceGeoObjects = defineGeoObjects(points.filter((_) => _.type === 'workplaces'), 'workplaces', yandexMaps);
|
|
4829
|
+
const officesGeoObjects = defineGeoObjects(points.filter((_) => _.type === 'offices'), 'offices', yandexMaps);
|
|
4830
|
+
officeClusterer.add(officesGeoObjects);
|
|
4831
|
+
remoteWorkplaceClusterer.add(remoteWorkplaceGeoObjects);
|
|
4832
|
+
map.geoObjects.add(remoteWorkplaceClusterer);
|
|
4833
|
+
map.geoObjects.add(officeClusterer);
|
|
4834
|
+
}
|
|
4835
|
+
else {
|
|
4836
|
+
const geoObjects = defineGeoObjects(points, 'offices', yandexMaps);
|
|
4837
|
+
officeClusterer.add(geoObjects);
|
|
4838
|
+
map.geoObjects.add(officeClusterer);
|
|
4839
|
+
}
|
|
4840
|
+
map.setBounds(yandexMaps.util.bounds.fromPoints(points.map((_) => _.coords))).then(() => {
|
|
4841
|
+
if (map.getZoom() > 10) {
|
|
4842
|
+
map.setZoom(10);
|
|
4843
|
+
}
|
|
4844
|
+
});
|
|
4845
|
+
}
|
|
4846
|
+
const defineClusterer = (type, yandexMaps, clusterIconContentLayout) => {
|
|
4847
|
+
return new yandexMaps.Clusterer({
|
|
4822
4848
|
clusterIcons: [
|
|
4823
4849
|
{
|
|
4824
|
-
href: '
|
|
4850
|
+
href: type === 'offices' ? MapMarkerClusterIcon : MapMarkerClusterYellowIcon,
|
|
4825
4851
|
size: [78, 84],
|
|
4826
4852
|
offset: [-35, -50],
|
|
4827
4853
|
},
|
|
@@ -4830,25 +4856,20 @@
|
|
|
4830
4856
|
clusterHideIconOnBalloonOpen: false,
|
|
4831
4857
|
geoObjectHideIconOnBalloonOpen: false,
|
|
4832
4858
|
});
|
|
4833
|
-
|
|
4859
|
+
};
|
|
4860
|
+
const defineGeoObjects = (pointArr, type, yandexMaps) => {
|
|
4861
|
+
return pointArr.map(({ coords, content }) => new yandexMaps.Placemark(coords, {
|
|
4834
4862
|
balloonContentHeader: content?.header,
|
|
4835
4863
|
balloonContentBody: content?.body,
|
|
4836
4864
|
balloonContentFooter: content?.footer,
|
|
4837
4865
|
hintContent: content?.hint,
|
|
4838
4866
|
}, {
|
|
4839
4867
|
iconLayout: 'default#image',
|
|
4840
|
-
iconImageHref: '
|
|
4868
|
+
iconImageHref: type === 'offices' ? MapMarkerClusterIcon : MapMarkerClusterYellowIcon,
|
|
4841
4869
|
iconImageSize: [78, 84],
|
|
4842
4870
|
iconImageOffset: [-35, -50],
|
|
4843
4871
|
}));
|
|
4844
|
-
|
|
4845
|
-
map.geoObjects.add(clusterer);
|
|
4846
|
-
map.setBounds(yandexMaps.util.bounds.fromPoints(points.map((_) => _.coords))).then(() => {
|
|
4847
|
-
if (map.getZoom() > 10) {
|
|
4848
|
-
map.setZoom(10);
|
|
4849
|
-
}
|
|
4850
|
-
});
|
|
4851
|
-
}
|
|
4872
|
+
};
|
|
4852
4873
|
|
|
4853
4874
|
const styles$1 = {
|
|
4854
4875
|
focus: 'focus:border-primary-text focus:border',
|
|
@@ -4921,11 +4942,11 @@
|
|
|
4921
4942
|
controls: [],
|
|
4922
4943
|
suppressMapOpenBlock: true,
|
|
4923
4944
|
});
|
|
4924
|
-
renderClusterer(yandexMaps, map.current, points);
|
|
4945
|
+
renderClusterer({ yandexMaps, map: map.current, points });
|
|
4925
4946
|
});
|
|
4926
4947
|
}
|
|
4927
4948
|
else if (yandexMaps) {
|
|
4928
|
-
renderClusterer(yandexMaps, map.current, points);
|
|
4949
|
+
renderClusterer({ yandexMaps, map: map.current, points });
|
|
4929
4950
|
if (!points?.length) {
|
|
4930
4951
|
map.current.setCenter(DEFAULT_CENTER_COORDS);
|
|
4931
4952
|
}
|
|
@@ -4944,6 +4965,8 @@
|
|
|
4944
4965
|
const mapByIndex = (points, index) => points.map((_) => _.coords[index]);
|
|
4945
4966
|
const getArraySumAndAverage = (arr) => arr.length && arr.reduce((a, b) => a + b) / arr.length;
|
|
4946
4967
|
|
|
4968
|
+
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;
|
|
4969
|
+
|
|
4947
4970
|
const FILTRATION_LABELS = {
|
|
4948
4971
|
safeBoxCaseVolumes: 'Аренда индивидуальных сейфовых ячеек',
|
|
4949
4972
|
workingSaturday: 'Открыты по субботам',
|
|
@@ -4958,14 +4981,14 @@
|
|
|
4958
4981
|
bullionOperations: 'Операции со слитками',
|
|
4959
4982
|
preciousMetalsOperations: 'Операции с драгоценными металлами',
|
|
4960
4983
|
transferringDataToBiometricSystem: 'Передача фото и голоса в Единую биометрическую систему',
|
|
4984
|
+
remoteWorkplace: 'Удаленное рабочее место',
|
|
4961
4985
|
};
|
|
4962
4986
|
const COMMON_FILTERS_STYLES = 'flex flex-col sm:flex-row sm:flex-wrap gap-3xl pb-2xl';
|
|
4963
4987
|
const renderFiltrationForm = (filters, { field, reset }, onlyOffice) => {
|
|
4964
|
-
const visibleFiltersNum =
|
|
4988
|
+
const visibleFiltersNum = 4;
|
|
4965
4989
|
const filtersCheckbox = (filters || []).map((key) => (jsx(Checkbox, { text: FILTRATION_LABELS[key], ...field(key) }, key)));
|
|
4966
|
-
const [visibleFilters, hiddenFilters] = visibleFiltersNum
|
|
4967
|
-
|
|
4968
|
-
: [filtersCheckbox, []];
|
|
4990
|
+
const [visibleFilters, hiddenFilters] = [filtersCheckbox.slice(0, visibleFiltersNum), filtersCheckbox.slice(visibleFiltersNum)]
|
|
4991
|
+
;
|
|
4969
4992
|
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$2(reset, onlyOffice) }) })) : null }));
|
|
4970
4993
|
};
|
|
4971
4994
|
const renderFoldButton$2 = (reset, onlyOffice) => ({ isUnfolded, onToggle }) => {
|
|
@@ -4977,37 +5000,47 @@
|
|
|
4977
5000
|
const defaultEmptyFunction = () => void 0;
|
|
4978
5001
|
const defaultFilterItems = () => [];
|
|
4979
5002
|
const filtersVisibleStyles = (activeButton) => activeButton === 'all' ? 'block' : 'hidden';
|
|
4980
|
-
const OfficesAtmsMapLayout = JSX(({ className, data = [], renderCard = defaultEmptyFunction, filterItems = defaultFilterItems, getBalloon = defaultEmptyFunction, initFilterState = {}, descriptionData, title, }) => {
|
|
5003
|
+
const OfficesAtmsMapLayout = JSX(({ className, data = [], remoteWorkplaces = [], renderCard = defaultEmptyFunction, renderRemoteWorkplaceCard = defaultEmptyFunction, filterItems = defaultFilterItems, getBalloon = defaultEmptyFunction, getBalloonRemoteWorkplaces = defaultEmptyFunction, initFilterState = {}, descriptionData, title, }) => {
|
|
4981
5004
|
const onlyOffice = title?.includes('Офис');
|
|
4982
5005
|
const [filtrationState, { field, reset }] = useForm(initFilterState);
|
|
4983
|
-
const [filteredItems, points, lengthItems] = useMemo(() => {
|
|
5006
|
+
const [filteredItems, points, filteredRemoteWorkplaces, lengthItems] = useMemo(() => {
|
|
4984
5007
|
const _filteredItems = filterItems(data, filtrationState);
|
|
4985
|
-
const
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
5008
|
+
const _filteredRemoteWorkplaces = filterItems(remoteWorkplaces, filtrationState);
|
|
5009
|
+
const _points = [
|
|
5010
|
+
..._filteredItems.map((_) => ({
|
|
5011
|
+
type: 'offices',
|
|
5012
|
+
coords: [Number(_.gpsLatitude), Number(_.gpsLongitude)]?.filter(Boolean),
|
|
5013
|
+
content: getBalloon(_),
|
|
5014
|
+
})),
|
|
5015
|
+
..._filteredRemoteWorkplaces.map((_) => ({
|
|
5016
|
+
type: 'workplaces',
|
|
5017
|
+
coords: [Number(_.gpsLatitude), Number(_.gpsLongitude)]?.filter(Boolean),
|
|
5018
|
+
content: getBalloonRemoteWorkplaces({
|
|
5019
|
+
address: _.address,
|
|
5020
|
+
workScheduleDescription: _.workScheduleDescription,
|
|
5021
|
+
}),
|
|
5022
|
+
})),
|
|
5023
|
+
].filter((_) => _.coords && _.coords.length === 2);
|
|
5024
|
+
const itemsLength = _filteredItems.length + _filteredRemoteWorkplaces?.length;
|
|
5025
|
+
return [_filteredItems, _points, _filteredRemoteWorkplaces, itemsLength];
|
|
5026
|
+
}, [data, remoteWorkplaces, filtrationState]);
|
|
4993
5027
|
const [activeButton, setActiveButton] = useState('all');
|
|
4994
|
-
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)] }));
|
|
5028
|
+
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)] }));
|
|
4995
5029
|
});
|
|
4996
|
-
const renderButtonsGroup = (data, activeButton,
|
|
5030
|
+
const renderButtonsGroup = (data, activeButton, onButtonClick) => {
|
|
4997
5031
|
const allButtonVersion = activeButton === 'all' ? 'primary' : 'secondary';
|
|
4998
5032
|
const businessButtonVersion = activeButton === 'business' ? 'primary' : 'secondary';
|
|
4999
|
-
const
|
|
5033
|
+
const handleClick = (e, key, branches) => {
|
|
5000
5034
|
if (e.currentTarget === e.target && key === 'business') {
|
|
5001
5035
|
branches.filter((branch) => branch.workSchedule &&
|
|
5002
5036
|
branch.workSchedule.businessScheduleVisibleTag &&
|
|
5003
5037
|
!branch.workSchedule.businessScheduleDescription);
|
|
5004
5038
|
}
|
|
5005
|
-
|
|
5039
|
+
onButtonClick(key);
|
|
5006
5040
|
return branches;
|
|
5007
5041
|
};
|
|
5008
|
-
return (jsxs("div", { className: "flex gap-lg flex-col sm:flex-row pb-lg", children: [jsx(Button, { "data-id": "all", onClick: (e) =>
|
|
5042
|
+
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" })] }));
|
|
5009
5043
|
};
|
|
5010
|
-
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;
|
|
5011
5044
|
|
|
5012
5045
|
const colorStyle = {
|
|
5013
5046
|
yellow: { border: 'border-yellow-light', text: 'text-yellow' },
|
|
@@ -5231,7 +5264,7 @@
|
|
|
5231
5264
|
return null;
|
|
5232
5265
|
}
|
|
5233
5266
|
const workScheduleWeek = getWorkScheduleWeek(workSchedule);
|
|
5234
|
-
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({
|
|
5267
|
+
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({
|
|
5235
5268
|
phone,
|
|
5236
5269
|
fax,
|
|
5237
5270
|
phoneBusiness,
|
|
@@ -5241,7 +5274,7 @@
|
|
|
5241
5274
|
workSchedule,
|
|
5242
5275
|
exchangeRate,
|
|
5243
5276
|
}) }), jsx(Foldable, { className: "block sm:hidden", renderFoldableSection: ({ isUnfolded }) => {
|
|
5244
|
-
return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: renderCardContent({
|
|
5277
|
+
return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: renderCardContent$1({
|
|
5245
5278
|
phone,
|
|
5246
5279
|
fax,
|
|
5247
5280
|
phoneBusiness,
|
|
@@ -5255,7 +5288,7 @@
|
|
|
5255
5288
|
//** TODO: remove styles with refactoring DefaultFoldButton*/
|
|
5256
5289
|
renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$1({ isUnfolded, onToggle }) })] }, String(index)));
|
|
5257
5290
|
};
|
|
5258
|
-
const renderCardContent = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
|
|
5291
|
+
const renderCardContent$1 = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
|
|
5259
5292
|
const workScheduleWeek = getWorkScheduleWeek(workSchedule);
|
|
5260
5293
|
const labelSchedule = workSchedule?.businessScheduleVisibleTag
|
|
5261
5294
|
? 'Для физических лиц'
|
|
@@ -5271,13 +5304,38 @@
|
|
|
5271
5304
|
return { header, body };
|
|
5272
5305
|
};
|
|
5273
5306
|
|
|
5307
|
+
const renderRemoteWorkplaceCard = ({ address, workScheduleDescription }, index) => {
|
|
5308
|
+
if (!workScheduleDescription) {
|
|
5309
|
+
return null;
|
|
5310
|
+
}
|
|
5311
|
+
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({
|
|
5312
|
+
workScheduleDescription,
|
|
5313
|
+
}) }), jsx(Foldable, { className: "block sm:hidden", renderFoldableSection: ({ isUnfolded }) => {
|
|
5314
|
+
return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: renderCardContent({
|
|
5315
|
+
workScheduleDescription,
|
|
5316
|
+
}) }));
|
|
5317
|
+
},
|
|
5318
|
+
//** TODO: remove styles with refactoring DefaultFoldButton*/
|
|
5319
|
+
renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$1({ isUnfolded, onToggle }) })] }, String(index)));
|
|
5320
|
+
};
|
|
5321
|
+
const renderCardContent = ({ workScheduleDescription }) => {
|
|
5322
|
+
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 }) })] }));
|
|
5323
|
+
};
|
|
5324
|
+
const getRemoteWorkplacePoint = ({ address = '', workScheduleDescription, }) => {
|
|
5325
|
+
const header = 'Удаленное рабочее место';
|
|
5326
|
+
const body = `${address} ${workScheduleDescription}`;
|
|
5327
|
+
return { header, body };
|
|
5328
|
+
};
|
|
5329
|
+
|
|
5274
5330
|
const EMPTY_VALUE$1 = [];
|
|
5275
5331
|
function useOffices(regionCode) {
|
|
5276
|
-
const { data = EMPTY_VALUE$1 } = useAsyncData(`/api/v1/
|
|
5332
|
+
const { data = EMPTY_VALUE$1 } = useAsyncData(`/api/v1/branchesAndRemoteWorkplaces?regionCode=${regionCode}`, fetchMap);
|
|
5277
5333
|
return data;
|
|
5278
5334
|
}
|
|
5279
5335
|
const fetchMap = async (url) => {
|
|
5280
|
-
const result = await fetchJSON(url, {
|
|
5336
|
+
const result = await fetchJSON(url, {
|
|
5337
|
+
method: 'GET',
|
|
5338
|
+
});
|
|
5281
5339
|
return Array.isArray(result) ? result : EMPTY_VALUE$1;
|
|
5282
5340
|
};
|
|
5283
5341
|
|
|
@@ -5285,6 +5343,7 @@
|
|
|
5285
5343
|
workingSaturday: false,
|
|
5286
5344
|
premiumService: false,
|
|
5287
5345
|
privateBanking: false,
|
|
5346
|
+
remoteWorkplace: false,
|
|
5288
5347
|
sellingCoins: false,
|
|
5289
5348
|
buyingCoins: false,
|
|
5290
5349
|
bullionOperations: false,
|
|
@@ -5292,20 +5351,21 @@
|
|
|
5292
5351
|
transferringDataToBiometricSystem: false,
|
|
5293
5352
|
};
|
|
5294
5353
|
const FILTRATION_PREDICATES = {
|
|
5295
|
-
workingSaturday: (item) => Boolean(item.workSchedule?.workingSaturday),
|
|
5296
|
-
premiumService: (item) => Boolean(item.premiumService),
|
|
5297
|
-
privateBanking: (item) => Boolean(item.privateBanking),
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5354
|
+
workingSaturday: (item) => Boolean('workSchedule' in item && item.workSchedule?.workingSaturday),
|
|
5355
|
+
premiumService: (item) => Boolean('premiumService' in item && item.premiumService),
|
|
5356
|
+
privateBanking: (item) => Boolean('privateBanking' in item && item.privateBanking),
|
|
5357
|
+
remoteWorkplace: (item) => Boolean('workScheduleDescription' in item),
|
|
5358
|
+
sellingCoins: (item) => Boolean('sellingCoins' in item && item.sellingCoins),
|
|
5359
|
+
buyingCoins: (item) => Boolean('buyingCoins' in item && item.buyingCoins),
|
|
5360
|
+
bullionOperations: (item) => Boolean('bullionOperations' in item && item.bullionOperations),
|
|
5361
|
+
preciousMetalsOperations: (item) => Boolean('preciousMetalsOperations' in item && item.preciousMetalsOperations),
|
|
5362
|
+
transferringDataToBiometricSystem: (item) => Boolean('transferringDataToBiometricSystem' in item && item.transferringDataToBiometricSystem),
|
|
5303
5363
|
};
|
|
5304
5364
|
const OfficesMap = JSX(({ className }) => {
|
|
5305
5365
|
const [currentLocation] = useLocation();
|
|
5306
5366
|
const regionCode = currentLocation?.code ?? '000';
|
|
5307
5367
|
const officesData = useOffices(regionCode);
|
|
5308
|
-
return (jsx(OfficesAtmsMapLayout, { className: className, filterItems: filterItems, data: officesData, initFilterState: INITIAL_FILTRATION_STATE, renderCard: renderOfficeCard, getBalloon: getOfficePoint, title: `Офисы филиала ${currentLocation?.name}` }));
|
|
5368
|
+
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}` }));
|
|
5309
5369
|
});
|
|
5310
5370
|
const filterItems = (data, filtrationState) => {
|
|
5311
5371
|
const truthyFilters = Object.keys(filtrationState).filter((key) => filtrationState[key]);
|
|
@@ -6178,7 +6238,7 @@
|
|
|
6178
6238
|
slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
|
|
6179
6239
|
});
|
|
6180
6240
|
|
|
6181
|
-
const packageVersion = "0.14.
|
|
6241
|
+
const packageVersion = "0.14.333";
|
|
6182
6242
|
|
|
6183
6243
|
exports.Blocks = Blocks;
|
|
6184
6244
|
exports.ContentPage = ContentPage;
|