@redneckz/wildless-cms-uni-blocks 0.14.333 → 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 +108 -50
- 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/icons/IconName.d.ts +4 -2
- 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/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/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/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/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 +108 -50
- 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/icons/IconName.d.ts +4 -2
- 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/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/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/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/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/icons/IconName.ts +5 -5
- package/mobile/src/icons/MapMarkerClusterYellowIcon.svg +1 -0
- 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/icons/IconName.ts +5 -1
- package/src/icons/MapMarkerClusterYellowIcon.svg +1 -0
- package/src/ui-kit/YandexMap/YandexMap.tsx +3 -3
- package/src/ui-kit/YandexMap/renderClusterer.ts +62 -16
package/bundle/bundle.umd.js
CHANGED
|
@@ -4817,13 +4817,37 @@
|
|
|
4817
4817
|
childSchema: (content) => content?.filtrationSchema || {},
|
|
4818
4818
|
});
|
|
4819
4819
|
|
|
4820
|
-
|
|
4820
|
+
const MapMarkerClusterIcon = '/icons/MapMarkerClusterIcon.svg';
|
|
4821
|
+
const MapMarkerClusterYellowIcon = '/icons/MapMarkerClusterYellowIcon.svg';
|
|
4822
|
+
function renderClusterer({ yandexMaps, map, points, }) {
|
|
4821
4823
|
map.geoObjects.removeAll();
|
|
4822
4824
|
const clusterIconContentLayout = yandexMaps.templateLayoutFactory.createClass('<div style="margin-top: -3px;">{{properties.geoObjects.length}}</div>');
|
|
4823
|
-
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({
|
|
4824
4848
|
clusterIcons: [
|
|
4825
4849
|
{
|
|
4826
|
-
href: '
|
|
4850
|
+
href: type === 'offices' ? MapMarkerClusterIcon : MapMarkerClusterYellowIcon,
|
|
4827
4851
|
size: [78, 84],
|
|
4828
4852
|
offset: [-35, -50],
|
|
4829
4853
|
},
|
|
@@ -4832,25 +4856,20 @@
|
|
|
4832
4856
|
clusterHideIconOnBalloonOpen: false,
|
|
4833
4857
|
geoObjectHideIconOnBalloonOpen: false,
|
|
4834
4858
|
});
|
|
4835
|
-
|
|
4859
|
+
};
|
|
4860
|
+
const defineGeoObjects = (pointArr, type, yandexMaps) => {
|
|
4861
|
+
return pointArr.map(({ coords, content }) => new yandexMaps.Placemark(coords, {
|
|
4836
4862
|
balloonContentHeader: content?.header,
|
|
4837
4863
|
balloonContentBody: content?.body,
|
|
4838
4864
|
balloonContentFooter: content?.footer,
|
|
4839
4865
|
hintContent: content?.hint,
|
|
4840
4866
|
}, {
|
|
4841
4867
|
iconLayout: 'default#image',
|
|
4842
|
-
iconImageHref: '
|
|
4868
|
+
iconImageHref: type === 'offices' ? MapMarkerClusterIcon : MapMarkerClusterYellowIcon,
|
|
4843
4869
|
iconImageSize: [78, 84],
|
|
4844
4870
|
iconImageOffset: [-35, -50],
|
|
4845
4871
|
}));
|
|
4846
|
-
|
|
4847
|
-
map.geoObjects.add(clusterer);
|
|
4848
|
-
map.setBounds(yandexMaps.util.bounds.fromPoints(points.map((_) => _.coords))).then(() => {
|
|
4849
|
-
if (map.getZoom() > 10) {
|
|
4850
|
-
map.setZoom(10);
|
|
4851
|
-
}
|
|
4852
|
-
});
|
|
4853
|
-
}
|
|
4872
|
+
};
|
|
4854
4873
|
|
|
4855
4874
|
const styles$1 = {
|
|
4856
4875
|
focus: 'focus:border-primary-text focus:border',
|
|
@@ -4923,11 +4942,11 @@
|
|
|
4923
4942
|
controls: [],
|
|
4924
4943
|
suppressMapOpenBlock: true,
|
|
4925
4944
|
});
|
|
4926
|
-
renderClusterer(yandexMaps, map.current, points);
|
|
4945
|
+
renderClusterer({ yandexMaps, map: map.current, points });
|
|
4927
4946
|
});
|
|
4928
4947
|
}
|
|
4929
4948
|
else if (yandexMaps) {
|
|
4930
|
-
renderClusterer(yandexMaps, map.current, points);
|
|
4949
|
+
renderClusterer({ yandexMaps, map: map.current, points });
|
|
4931
4950
|
if (!points?.length) {
|
|
4932
4951
|
map.current.setCenter(DEFAULT_CENTER_COORDS);
|
|
4933
4952
|
}
|
|
@@ -4946,6 +4965,8 @@
|
|
|
4946
4965
|
const mapByIndex = (points, index) => points.map((_) => _.coords[index]);
|
|
4947
4966
|
const getArraySumAndAverage = (arr) => arr.length && arr.reduce((a, b) => a + b) / arr.length;
|
|
4948
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
|
+
|
|
4949
4970
|
const FILTRATION_LABELS = {
|
|
4950
4971
|
safeBoxCaseVolumes: 'Аренда индивидуальных сейфовых ячеек',
|
|
4951
4972
|
workingSaturday: 'Открыты по субботам',
|
|
@@ -4960,14 +4981,14 @@
|
|
|
4960
4981
|
bullionOperations: 'Операции со слитками',
|
|
4961
4982
|
preciousMetalsOperations: 'Операции с драгоценными металлами',
|
|
4962
4983
|
transferringDataToBiometricSystem: 'Передача фото и голоса в Единую биометрическую систему',
|
|
4984
|
+
remoteWorkplace: 'Удаленное рабочее место',
|
|
4963
4985
|
};
|
|
4964
4986
|
const COMMON_FILTERS_STYLES = 'flex flex-col sm:flex-row sm:flex-wrap gap-3xl pb-2xl';
|
|
4965
4987
|
const renderFiltrationForm = (filters, { field, reset }, onlyOffice) => {
|
|
4966
|
-
const visibleFiltersNum =
|
|
4988
|
+
const visibleFiltersNum = 4;
|
|
4967
4989
|
const filtersCheckbox = (filters || []).map((key) => (jsx(Checkbox, { text: FILTRATION_LABELS[key], ...field(key) }, key)));
|
|
4968
|
-
const [visibleFilters, hiddenFilters] = visibleFiltersNum
|
|
4969
|
-
|
|
4970
|
-
: [filtersCheckbox, []];
|
|
4990
|
+
const [visibleFilters, hiddenFilters] = [filtersCheckbox.slice(0, visibleFiltersNum), filtersCheckbox.slice(visibleFiltersNum)]
|
|
4991
|
+
;
|
|
4971
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 }));
|
|
4972
4993
|
};
|
|
4973
4994
|
const renderFoldButton$2 = (reset, onlyOffice) => ({ isUnfolded, onToggle }) => {
|
|
@@ -4979,37 +5000,47 @@
|
|
|
4979
5000
|
const defaultEmptyFunction = () => void 0;
|
|
4980
5001
|
const defaultFilterItems = () => [];
|
|
4981
5002
|
const filtersVisibleStyles = (activeButton) => activeButton === 'all' ? 'block' : 'hidden';
|
|
4982
|
-
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, }) => {
|
|
4983
5004
|
const onlyOffice = title?.includes('Офис');
|
|
4984
5005
|
const [filtrationState, { field, reset }] = useForm(initFilterState);
|
|
4985
|
-
const [filteredItems, points, lengthItems] = useMemo(() => {
|
|
5006
|
+
const [filteredItems, points, filteredRemoteWorkplaces, lengthItems] = useMemo(() => {
|
|
4986
5007
|
const _filteredItems = filterItems(data, filtrationState);
|
|
4987
|
-
const
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
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]);
|
|
4995
5027
|
const [activeButton, setActiveButton] = useState('all');
|
|
4996
|
-
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)] }));
|
|
4997
5029
|
});
|
|
4998
|
-
const renderButtonsGroup = (data, activeButton,
|
|
5030
|
+
const renderButtonsGroup = (data, activeButton, onButtonClick) => {
|
|
4999
5031
|
const allButtonVersion = activeButton === 'all' ? 'primary' : 'secondary';
|
|
5000
5032
|
const businessButtonVersion = activeButton === 'business' ? 'primary' : 'secondary';
|
|
5001
|
-
const
|
|
5033
|
+
const handleClick = (e, key, branches) => {
|
|
5002
5034
|
if (e.currentTarget === e.target && key === 'business') {
|
|
5003
5035
|
branches.filter((branch) => branch.workSchedule &&
|
|
5004
5036
|
branch.workSchedule.businessScheduleVisibleTag &&
|
|
5005
5037
|
!branch.workSchedule.businessScheduleDescription);
|
|
5006
5038
|
}
|
|
5007
|
-
|
|
5039
|
+
onButtonClick(key);
|
|
5008
5040
|
return branches;
|
|
5009
5041
|
};
|
|
5010
|
-
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" })] }));
|
|
5011
5043
|
};
|
|
5012
|
-
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;
|
|
5013
5044
|
|
|
5014
5045
|
const colorStyle = {
|
|
5015
5046
|
yellow: { border: 'border-yellow-light', text: 'text-yellow' },
|
|
@@ -5233,7 +5264,7 @@
|
|
|
5233
5264
|
return null;
|
|
5234
5265
|
}
|
|
5235
5266
|
const workScheduleWeek = getWorkScheduleWeek(workSchedule);
|
|
5236
|
-
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({
|
|
5237
5268
|
phone,
|
|
5238
5269
|
fax,
|
|
5239
5270
|
phoneBusiness,
|
|
@@ -5243,7 +5274,7 @@
|
|
|
5243
5274
|
workSchedule,
|
|
5244
5275
|
exchangeRate,
|
|
5245
5276
|
}) }), jsx(Foldable, { className: "block sm:hidden", renderFoldableSection: ({ isUnfolded }) => {
|
|
5246
|
-
return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: renderCardContent({
|
|
5277
|
+
return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: renderCardContent$1({
|
|
5247
5278
|
phone,
|
|
5248
5279
|
fax,
|
|
5249
5280
|
phoneBusiness,
|
|
@@ -5257,7 +5288,7 @@
|
|
|
5257
5288
|
//** TODO: remove styles with refactoring DefaultFoldButton*/
|
|
5258
5289
|
renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$1({ isUnfolded, onToggle }) })] }, String(index)));
|
|
5259
5290
|
};
|
|
5260
|
-
const renderCardContent = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
|
|
5291
|
+
const renderCardContent$1 = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
|
|
5261
5292
|
const workScheduleWeek = getWorkScheduleWeek(workSchedule);
|
|
5262
5293
|
const labelSchedule = workSchedule?.businessScheduleVisibleTag
|
|
5263
5294
|
? 'Для физических лиц'
|
|
@@ -5273,13 +5304,38 @@
|
|
|
5273
5304
|
return { header, body };
|
|
5274
5305
|
};
|
|
5275
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
|
+
|
|
5276
5330
|
const EMPTY_VALUE$1 = [];
|
|
5277
5331
|
function useOffices(regionCode) {
|
|
5278
|
-
const { data = EMPTY_VALUE$1 } = useAsyncData(`/api/v1/
|
|
5332
|
+
const { data = EMPTY_VALUE$1 } = useAsyncData(`/api/v1/branchesAndRemoteWorkplaces?regionCode=${regionCode}`, fetchMap);
|
|
5279
5333
|
return data;
|
|
5280
5334
|
}
|
|
5281
5335
|
const fetchMap = async (url) => {
|
|
5282
|
-
const result = await fetchJSON(url, {
|
|
5336
|
+
const result = await fetchJSON(url, {
|
|
5337
|
+
method: 'GET',
|
|
5338
|
+
});
|
|
5283
5339
|
return Array.isArray(result) ? result : EMPTY_VALUE$1;
|
|
5284
5340
|
};
|
|
5285
5341
|
|
|
@@ -5287,6 +5343,7 @@
|
|
|
5287
5343
|
workingSaturday: false,
|
|
5288
5344
|
premiumService: false,
|
|
5289
5345
|
privateBanking: false,
|
|
5346
|
+
remoteWorkplace: false,
|
|
5290
5347
|
sellingCoins: false,
|
|
5291
5348
|
buyingCoins: false,
|
|
5292
5349
|
bullionOperations: false,
|
|
@@ -5294,20 +5351,21 @@
|
|
|
5294
5351
|
transferringDataToBiometricSystem: false,
|
|
5295
5352
|
};
|
|
5296
5353
|
const FILTRATION_PREDICATES = {
|
|
5297
|
-
workingSaturday: (item) => Boolean(item.workSchedule?.workingSaturday),
|
|
5298
|
-
premiumService: (item) => Boolean(item.premiumService),
|
|
5299
|
-
privateBanking: (item) => Boolean(item.privateBanking),
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
|
|
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),
|
|
5305
5363
|
};
|
|
5306
5364
|
const OfficesMap = JSX(({ className }) => {
|
|
5307
5365
|
const [currentLocation] = useLocation();
|
|
5308
5366
|
const regionCode = currentLocation?.code ?? '000';
|
|
5309
5367
|
const officesData = useOffices(regionCode);
|
|
5310
|
-
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}` }));
|
|
5311
5369
|
});
|
|
5312
5370
|
const filterItems = (data, filtrationState) => {
|
|
5313
5371
|
const truthyFilters = Object.keys(filtrationState).filter((key) => filtrationState[key]);
|
|
@@ -6180,7 +6238,7 @@
|
|
|
6180
6238
|
slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
|
|
6181
6239
|
});
|
|
6182
6240
|
|
|
6183
|
-
const packageVersion = "0.14.
|
|
6241
|
+
const packageVersion = "0.14.333";
|
|
6184
6242
|
|
|
6185
6243
|
exports.Blocks = Blocks;
|
|
6186
6244
|
exports.ContentPage = ContentPage;
|