mirror of
https://github.com/maputnik/editor.git
synced 2026-08-03 03:37:25 +00:00
Compare commits
4 Commits
v2.1.1
...
f306d8e143
| Author | SHA1 | Date | |
|---|---|---|---|
| f306d8e143 | |||
| 6a27913114 | |||
| 285dca8d2c | |||
| 2a3b6aa770 |
@@ -1,6 +1,4 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import Block from './Block'
|
|
||||||
import FieldString from './FieldString'
|
|
||||||
|
|
||||||
export type InspectFeature = {
|
export type InspectFeature = {
|
||||||
id: string
|
id: string
|
||||||
@@ -21,30 +19,25 @@ function displayValue(value: string | number | Date | object) {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderProperties(feature: InspectFeature) {
|
function renderKeyValueTableRow(key: string, value: string) {
|
||||||
return Object.keys(feature.properties).map(propertyName => {
|
return <tr key={key}>
|
||||||
const property = feature.properties[propertyName]
|
<td className="maputnik-popup-table-cell">{key}</td>
|
||||||
return <Block key={propertyName} label={propertyName}>
|
<td className="maputnik-popup-table-cell">{value}</td>
|
||||||
<FieldString value={displayValue(property)} style={{backgroundColor: 'transparent'}}/>
|
</tr>
|
||||||
</Block>
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function renderFeatureId(feature: InspectFeature) {
|
|
||||||
return <Block key={"feature-id"} label={"feature_id"}>
|
|
||||||
<FieldString value={displayValue(feature.id)} style={{backgroundColor: 'transparent'}} />
|
|
||||||
</Block>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderFeature(feature: InspectFeature, idx: number) {
|
function renderFeature(feature: InspectFeature, idx: number) {
|
||||||
return <div key={`${feature.sourceLayer}-${idx}`}>
|
return <>
|
||||||
<div className="maputnik-popup-layer-id">{feature.layer['source']}: {feature.layer['source-layer']}{feature.inspectModeCounter && <span> × {feature.inspectModeCounter}</span>}</div>
|
<tr key={`${feature.sourceLayer}-${idx}`}>
|
||||||
<Block key={"property-type"} label={"$type"}>
|
<td colSpan={2} className="maputnik-popup-layer-id">{feature.layer['source']}: {feature.layer['source-layer']}{feature.inspectModeCounter && <span> × {feature.inspectModeCounter}</span>}</td>
|
||||||
<FieldString value={feature.geometry.type} style={{backgroundColor: 'transparent'}} />
|
</tr>
|
||||||
</Block>
|
{renderKeyValueTableRow("$type", feature.geometry.type)}
|
||||||
{renderFeatureId(feature)}
|
{renderKeyValueTableRow("Feature ID", displayValue(feature.id))}
|
||||||
{renderProperties(feature)}
|
{Object.keys(feature.properties).map(propertyName => {
|
||||||
</div>
|
const property = feature.properties[propertyName];
|
||||||
|
return renderKeyValueTableRow(propertyName, displayValue(property))
|
||||||
|
})}
|
||||||
|
</>
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeDuplicatedFeatures(features: InspectFeature[]) {
|
function removeDuplicatedFeatures(features: InspectFeature[]) {
|
||||||
@@ -78,7 +71,9 @@ class FeaturePropertyPopup extends React.Component<FeaturePropertyPopupProps> {
|
|||||||
render() {
|
render() {
|
||||||
const features = removeDuplicatedFeatures(this.props.features)
|
const features = removeDuplicatedFeatures(this.props.features)
|
||||||
return <div className="maputnik-feature-property-popup">
|
return <div className="maputnik-feature-property-popup">
|
||||||
{features.map(renderFeature)}
|
<table className="maputnik-popup-table">
|
||||||
|
{features.map(renderFeature)}
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,3 +36,12 @@
|
|||||||
margin-top: $margin-2;
|
margin-top: $margin-2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.maputnik-popup-table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maputnik-popup-table-cell {
|
||||||
|
color: $color-lowgray;
|
||||||
|
padding-left: $margin-2;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user