@dartcom/ui-kit 10.3.4 → 10.3.6
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/README.md
CHANGED
|
@@ -24,7 +24,6 @@ npm run storybook
|
|
|
24
24
|
|
|
25
25
|
- У вас есть аккаунт npm и токен доступа
|
|
26
26
|
|
|
27
|
-
```javascript
|
|
28
27
|
// Проверьте сборку
|
|
29
28
|
npm run build
|
|
30
29
|
|
|
@@ -33,9 +32,116 @@ npm pack
|
|
|
33
32
|
|
|
34
33
|
git push origin v3.8.16
|
|
35
34
|
|
|
36
|
-
Основные
|
|
35
|
+
Основные ссылки
|
|
37
36
|
|
|
38
37
|
```javascript
|
|
39
38
|
https://unpkg.com/leaflet-textpath@1.3.0/leaflet.textpath.js
|
|
40
39
|
```
|
|
41
|
-
|
|
40
|
+
|
|
41
|
+
Ссылка на бибилотеку, которая отвечает за отрисовку текста. Ее нужно подключать отдельно, если в проекте используются подписи по линейной геометрии
|
|
42
|
+
|
|
43
|
+
## Работа с картой
|
|
44
|
+
|
|
45
|
+
- Для начала работы потребуется установить следующие библиотеки:
|
|
46
|
+
|
|
47
|
+
```javascript
|
|
48
|
+
npm i -S react react-dom leaflet react-leaflet @dartcom/ui-kit
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
- Основную часть приложения, где будет использоваться карта, нужно обернуть в **DartcomProviders**:
|
|
52
|
+
|
|
53
|
+
```javascript
|
|
54
|
+
import { DartcomProviders } from '@dartcom/ui-kit';
|
|
55
|
+
|
|
56
|
+
<DartcomProviders
|
|
57
|
+
configOptions={{
|
|
58
|
+
private_key: 'Ваш приватный ключ',
|
|
59
|
+
|
|
60
|
+
apiConfig: {
|
|
61
|
+
baseURL: 'Основной адрес backend',
|
|
62
|
+
},
|
|
63
|
+
}}>
|
|
64
|
+
{...Content}
|
|
65
|
+
</DartcomProviders>;
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**private_key** - ключ доступа к библиотеки, он выдается администрацией и проверяется для доступа как к самой карте, так и к определенным компонентам внтури библиотеки
|
|
69
|
+
|
|
70
|
+
**baseURL** - адрес backend части вашего приложения, куда отсылаются основные запросы
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
- Далее в вашем приложении нужно инициализировать карту leafet внтури основного **DartcomProviders**:
|
|
74
|
+
|
|
75
|
+
```javascript
|
|
76
|
+
import { MapContainer } from 'react-leaflet';
|
|
77
|
+
|
|
78
|
+
<MapContainer center={[51.505, -0.09]} zoom={13} scrollWheelZoom={false}>
|
|
79
|
+
{...Content}
|
|
80
|
+
</MapContainer>;
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- Теперь нужно поместить внутрь MapContainer компонент с нашим слоем:
|
|
84
|
+
|
|
85
|
+
```javascript
|
|
86
|
+
import DartcomLayer from './your-path';
|
|
87
|
+
|
|
88
|
+
import { MapContainer } from 'react-leaflet';
|
|
89
|
+
|
|
90
|
+
<MapContainer center={[51.505, -0.09]} zoom={13} scrollWheelZoom={false}>
|
|
91
|
+
<DartcomLayer />
|
|
92
|
+
|
|
93
|
+
{...Content}
|
|
94
|
+
</MapContainer>;
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- В компоненте нужно инициализировать слой и добавить его на карту как основную подложку:
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
// your-path.tsx
|
|
101
|
+
|
|
102
|
+
import * as React from 'react';
|
|
103
|
+
|
|
104
|
+
import { useMap } from 'react-leaflet';
|
|
105
|
+
|
|
106
|
+
import {
|
|
107
|
+
getAllLayers,
|
|
108
|
+
SourceLayers,
|
|
109
|
+
TangramLayer,
|
|
110
|
+
TangramSourceNames,
|
|
111
|
+
} from '@dartcom/ui-kit';
|
|
112
|
+
|
|
113
|
+
const DartcomLayer: React.FC = () => {
|
|
114
|
+
const map = useMap();
|
|
115
|
+
|
|
116
|
+
React.useEffect(() => {
|
|
117
|
+
const { current: layersControl } = controlRef;
|
|
118
|
+
|
|
119
|
+
const defaultLayers = getAllLayers(TangramSourceNames.TILE);
|
|
120
|
+
|
|
121
|
+
new TangramLayer({
|
|
122
|
+
defaultLayers,
|
|
123
|
+
|
|
124
|
+
eventHandlers: {
|
|
125
|
+
[SourceLayers[name]]: {
|
|
126
|
+
click: ({ properties }) => {},
|
|
127
|
+
hover: ({ properties }) => {},
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
onCreate: ({ layer }) => {
|
|
132
|
+
layer.addTo(map);
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
onDestroy: ({ layer }) => {
|
|
136
|
+
layer.removeFrom(map);
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
}, []);
|
|
140
|
+
|
|
141
|
+
return null;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
export default DartcomLayer;
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
- **defaultLayers** - это основной список слоев, которые можно получить из библиотеки и который будет показываться на карте. В примере мы грузим все слои из ресурса **TangramSourceNames.TILE** с помощью функции **getAllLayers**, но пожно подгружать разные слои из разных ресурсов
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/components/layers/leaflet/layers/condition/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAInB,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/components/layers/leaflet/layers/condition/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAInB,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,yBA2C5D,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -39650,24 +39650,29 @@ var ConditionTypes;
|
|
|
39650
39650
|
|
|
39651
39651
|
const getConditionLayers = (source) => {
|
|
39652
39652
|
const layers = [];
|
|
39653
|
-
const sublayers = {};
|
|
39654
39653
|
const data = {
|
|
39655
39654
|
source,
|
|
39656
39655
|
layer: exports.SourceLayers.CONDITIONS,
|
|
39657
39656
|
};
|
|
39658
|
-
const layer = {
|
|
39659
|
-
id: getUniqueKey(),
|
|
39660
|
-
data,
|
|
39661
|
-
};
|
|
39662
39657
|
Object.values(ConditionTypes).forEach((conditionType) => {
|
|
39663
|
-
|
|
39658
|
+
const layer = {
|
|
39659
|
+
id: getUniqueKey(),
|
|
39664
39660
|
filter: `function() {
|
|
39665
39661
|
const { type } = feature;
|
|
39666
39662
|
|
|
39667
|
-
const
|
|
39663
|
+
const isType = type === '${conditionType}';
|
|
39668
39664
|
|
|
39669
|
-
|
|
39665
|
+
switch(type) {
|
|
39666
|
+
case '${ConditionTypes.gate}': {
|
|
39667
|
+
return $zoom >= 18 && isType;
|
|
39668
|
+
}
|
|
39669
|
+
|
|
39670
|
+
default: {
|
|
39671
|
+
return isType;
|
|
39672
|
+
}
|
|
39673
|
+
}
|
|
39670
39674
|
}`,
|
|
39675
|
+
data,
|
|
39671
39676
|
draw: {
|
|
39672
39677
|
points: {
|
|
39673
39678
|
texture: conditionType,
|
|
@@ -39676,9 +39681,8 @@ const getConditionLayers = (source) => {
|
|
|
39676
39681
|
},
|
|
39677
39682
|
},
|
|
39678
39683
|
};
|
|
39684
|
+
layers.push(layer);
|
|
39679
39685
|
});
|
|
39680
|
-
layer.sublayers = sublayers;
|
|
39681
|
-
layers.push(layer);
|
|
39682
39686
|
return layers;
|
|
39683
39687
|
};
|
|
39684
39688
|
|