add-cms
This commit is contained in:
178
source/admin/packages/decap-cms-widget-map/CHANGELOG.md
Normal file
178
source/admin/packages/decap-cms-widget-map/CHANGELOG.md
Normal file
@@ -0,0 +1,178 @@
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.2.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.1.4...decap-cms-widget-map@3.2.0) (2025-06-26)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [3.1.4](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.1.3...decap-cms-widget-map@3.1.4) (2024-08-13)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "Update dependencies (#7264)" ([22d483a](https://github.com/decaporg/decap-cms/commit/22d483a5b0c654071ae05735ac4f49abdc13d38c)), closes [#7264](https://github.com/decaporg/decap-cms/issues/7264)
|
||||
|
||||
## [3.1.3](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.1.2...decap-cms-widget-map@3.1.3) (2024-08-13)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [3.1.2](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.1.1...decap-cms-widget-map@3.1.2) (2024-06-27)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **map-widget:** ensure map renders correctly when expanding initially collapsed sections ([#6541](https://github.com/decaporg/decap-cms/issues/6541)) ([#7229](https://github.com/decaporg/decap-cms/issues/7229)) ([041e34e](https://github.com/decaporg/decap-cms/commit/041e34e51dc14fc8917078961ebb376a2562422b))
|
||||
|
||||
## [3.1.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.1.0-beta.1...decap-cms-widget-map@3.1.1) (2024-03-21)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
# [3.1.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.1.0-beta.1...decap-cms-widget-map@3.1.0) (2024-02-01)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
# [3.1.0-beta.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.1.0-beta.0...decap-cms-widget-map@3.1.0-beta.1) (2024-01-31)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
# [3.1.0-beta.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.1.0...decap-cms-widget-map@3.1.0-beta.0) (2023-10-20)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([b89fc89](https://github.com/decaporg/decap-cms/commit/b89fc894dfbb5f4136b2e5427fd25a29378a58c6))
|
||||
|
||||
## [3.0.2](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.0.1...decap-cms-widget-map@3.0.2) (2023-10-13)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [3.0.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@3.0.0...decap-cms-widget-map@3.0.1) (2023-08-25)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- update peer dependencies ([#6886](https://github.com/decaporg/decap-cms/issues/6886)) ([e580ce5](https://github.com/decaporg/decap-cms/commit/e580ce52ce5f80fa040e8fbcab7fed0744f4f695))
|
||||
|
||||
# [3.0.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@1.6.0...decap-cms-widget-map@3.0.0) (2023-08-18)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
# [1.6.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@1.6.0-beta.0...decap-cms-widget-map@1.6.0) (2023-08-18)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
# 1.6.0-beta.0 (2023-08-18)
|
||||
|
||||
### Features
|
||||
|
||||
- rename packages ([#6863](https://github.com/decaporg/decap-cms/issues/6863)) ([d515e7b](https://github.com/decaporg/decap-cms/commit/d515e7bd33216a775d96887b08c4f7b1962941bb))
|
||||
|
||||
## [1.5.2-beta.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@1.5.1...decap-cms-widget-map@1.5.2-beta.0) (2023-07-27)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [1.5.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-map@1.5.0...decap-cms-widget-map@1.5.1) (2021-12-08)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-map:** update ol to latest version ([4a4adf0](https://github.com/decaporg/decap-cms/commit/4a4adf0dbd592639a3aab478c43bcc181657552e))
|
||||
|
||||
# [1.5.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.4.6...decap-cms-widget-map@1.5.0) (2021-05-04)
|
||||
|
||||
### Features
|
||||
|
||||
- added react 17 as peer dependency in packages ([#5316](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/issues/5316)) ([9e42380](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/9e423805707321396eec137f5b732a5b07a0dd3f))
|
||||
|
||||
## [1.4.6](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.4.5...decap-cms-widget-map@1.4.6) (2021-02-23)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [1.4.5](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.4.4...decap-cms-widget-map@1.4.5) (2021-02-10)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [1.4.4](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.4.3...decap-cms-widget-map@1.4.4) (2020-09-15)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## 1.4.3 (2020-09-08)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([828bb16](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/828bb16415b8c22a34caa19c50c38b24ffe9ceae))
|
||||
|
||||
## 1.4.2 (2020-08-20)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([8262487](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/82624879ccbcb16610090041db28f00714d924c8))
|
||||
|
||||
## 1.4.1 (2020-07-27)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([118d50a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/118d50a7a70295f25073e564b5161aa2b9883056))
|
||||
|
||||
# [1.4.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.3.3...decap-cms-widget-map@1.4.0) (2020-06-18)
|
||||
|
||||
### Features
|
||||
|
||||
- add widgets schema validation ([#3841](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/issues/3841)) ([2b46608](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/2b46608f86d22c8ad34f75e396be7c34462d9e99))
|
||||
|
||||
## [1.3.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.3.2...decap-cms-widget-map@1.3.3) (2019-07-24)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [1.3.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.3.2-beta.0...decap-cms-widget-map@1.3.2) (2019-04-10)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [1.3.2-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.3.1...decap-cms-widget-map@1.3.2-beta.0) (2019-04-05)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [1.3.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.3.1-beta.2...decap-cms-widget-map@1.3.1) (2019-03-29)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [1.3.1-beta.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.3.1-beta.1...decap-cms-widget-map@1.3.1-beta.2) (2019-03-28)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
## [1.3.1-beta.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.3.1-beta.0...decap-cms-widget-map@1.3.1-beta.1) (2019-03-26)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- export on decap-cms and maps on esm ([#2244](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/issues/2244)) ([6ffd13b](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/6ffd13b))
|
||||
|
||||
## [1.3.1-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.3.0...decap-cms-widget-map@1.3.1-beta.0) (2019-03-25)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- update peer dep versions ([#2234](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/issues/2234)) ([7987091](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/7987091))
|
||||
|
||||
# [1.3.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.2.0...decap-cms-widget-map@1.3.0) (2019-03-22)
|
||||
|
||||
### Features
|
||||
|
||||
- add ES module builds ([#2215](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/issues/2215)) ([d142b32](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/d142b32))
|
||||
|
||||
# [1.2.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.2.0-beta.0...decap-cms-widget-map@1.2.0) (2019-03-22)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-map
|
||||
|
||||
# [1.2.0-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.1.1-beta.0...decap-cms-widget-map@1.2.0-beta.0) (2019-03-21)
|
||||
|
||||
### Features
|
||||
|
||||
- provide usable UMD builds for all packages ([#2141](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/issues/2141)) ([82cc794](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/82cc794))
|
||||
|
||||
## [1.1.1-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/compare/decap-cms-widget-map@1.1.0...decap-cms-widget-map@1.1.1-beta.0) (2019-03-15)
|
||||
|
||||
### Features
|
||||
|
||||
- upgrade to Emotion 10 ([#2166](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/issues/2166)) ([ccef446](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/ccef446))
|
||||
|
||||
# 1.1.0 (2019-02-08)
|
||||
|
||||
### Features
|
||||
|
||||
- **decap-cms-widget-map:** add map widget ([#2051](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/issues/2051)) ([18f34d2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map/commit/18f34d2))
|
||||
9
source/admin/packages/decap-cms-widget-map/README.md
Normal file
9
source/admin/packages/decap-cms-widget-map/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Docs coming soon!
|
||||
|
||||
Decap CMS was converted from a single npm package to a "monorepo" of over 20 packages.
|
||||
We haven't created a README for this package yet, but you can:
|
||||
|
||||
1. Check out the [main readme](https://github.com/decaporg/decap-cms/#readme) or the [documentation
|
||||
site](https://www.decapcms.org) for more info.
|
||||
2. Reach out to the [community chat](https://decapcms.org/chat/) if you need help.
|
||||
3. Help out and [write the readme yourself](https://github.com/decaporg/decap-cms/edit/main/packages/decap-cms-widget-map/README.md)!
|
||||
34
source/admin/packages/decap-cms-widget-map/package.json
Normal file
34
source/admin/packages/decap-cms-widget-map/package.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "decap-cms-widget-map",
|
||||
"description": "Widget for editing spatial data in Decap CMS.",
|
||||
"version": "3.2.0",
|
||||
"homepage": "https://www.decapcms.org/docs/widgets/#map",
|
||||
"repository": "https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-map",
|
||||
"bugs": "https://github.com/decaporg/decap-cms/issues",
|
||||
"module": "dist/esm/index.js",
|
||||
"main": "dist/decap-cms-widget-map.js",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"decap-cms",
|
||||
"widget",
|
||||
"spatial",
|
||||
"map"
|
||||
],
|
||||
"sideEffects": false,
|
||||
"scripts": {
|
||||
"develop": "npm run build:esm -- --watch",
|
||||
"build": "cross-env NODE_ENV=production webpack",
|
||||
"build:esm": "cross-env NODE_ENV=esm babel src --out-dir dist/esm --ignore \"**/__tests__\" --root-mode upward"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emotion/react": "^11.11.1",
|
||||
"decap-cms-ui-default": "^3.0.0",
|
||||
"lodash": "^4.17.11",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^19.1.0",
|
||||
"react-immutable-proptypes": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ol": "^6.9.0"
|
||||
}
|
||||
}
|
||||
13
source/admin/packages/decap-cms-widget-map/src/MapPreview.js
Normal file
13
source/admin/packages/decap-cms-widget-map/src/MapPreview.js
Normal file
@@ -0,0 +1,13 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { WidgetPreviewContainer } from 'decap-cms-ui-default';
|
||||
|
||||
function MapPreview({ value }) {
|
||||
return <WidgetPreviewContainer>{value ? value.toString() : null}</WidgetPreviewContainer>;
|
||||
}
|
||||
|
||||
MapPreview.propTypes = {
|
||||
value: PropTypes.string,
|
||||
};
|
||||
|
||||
export default MapPreview;
|
||||
18
source/admin/packages/decap-cms-widget-map/src/index.js
Normal file
18
source/admin/packages/decap-cms-widget-map/src/index.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import withMapControl from './withMapControl';
|
||||
import previewComponent from './MapPreview';
|
||||
import schema from './schema';
|
||||
|
||||
const controlComponent = withMapControl();
|
||||
|
||||
function Widget(opts = {}) {
|
||||
return {
|
||||
name: 'map',
|
||||
controlComponent,
|
||||
previewComponent,
|
||||
schema,
|
||||
...opts,
|
||||
};
|
||||
}
|
||||
|
||||
export const DecapCmsWidgetMap = { Widget, controlComponent, previewComponent };
|
||||
export default DecapCmsWidgetMap;
|
||||
6
source/admin/packages/decap-cms-widget-map/src/schema.js
Normal file
6
source/admin/packages/decap-cms-widget-map/src/schema.js
Normal file
@@ -0,0 +1,6 @@
|
||||
export default {
|
||||
properties: {
|
||||
decimals: { type: 'integer' },
|
||||
type: { type: 'string', enum: ['Point', 'LineString', 'Polygon'] },
|
||||
},
|
||||
};
|
||||
113
source/admin/packages/decap-cms-widget-map/src/withMapControl.js
Normal file
113
source/admin/packages/decap-cms-widget-map/src/withMapControl.js
Normal file
@@ -0,0 +1,113 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { ClassNames } from '@emotion/react';
|
||||
import olStyles from 'ol/ol.css';
|
||||
import Map from 'ol/Map.js';
|
||||
import View from 'ol/View.js';
|
||||
import GeoJSON from 'ol/format/GeoJSON';
|
||||
import Draw from 'ol/interaction/Draw.js';
|
||||
import TileLayer from 'ol/layer/Tile.js';
|
||||
import VectorLayer from 'ol/layer/Vector.js';
|
||||
import OSMSource from 'ol/source/OSM.js';
|
||||
import VectorSource from 'ol/source/Vector.js';
|
||||
|
||||
const formatOptions = {
|
||||
dataProjection: 'EPSG:4326',
|
||||
featureProjection: 'EPSG:3857',
|
||||
};
|
||||
|
||||
function getDefaultFormat() {
|
||||
return new GeoJSON(formatOptions);
|
||||
}
|
||||
|
||||
function getDefaultMap(target, featuresLayer) {
|
||||
return new Map({
|
||||
target,
|
||||
layers: [new TileLayer({ source: new OSMSource() }), featuresLayer],
|
||||
view: new View({ center: [0, 0], zoom: 2 }),
|
||||
});
|
||||
}
|
||||
|
||||
export default function withMapControl({ getFormat, getMap } = {}) {
|
||||
return class MapControl extends React.Component {
|
||||
static propTypes = {
|
||||
onChange: PropTypes.func.isRequired,
|
||||
field: PropTypes.object.isRequired,
|
||||
height: PropTypes.string,
|
||||
value: PropTypes.node,
|
||||
};
|
||||
|
||||
static defaultProps = {
|
||||
value: '',
|
||||
height: '400px',
|
||||
};
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.mapContainer = React.createRef();
|
||||
this.resizeObserver = null;
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
// Manually validate PropTypes - React 19 breaking change
|
||||
PropTypes.checkPropTypes(MapControl.propTypes, this.props, 'prop', 'MapControl');
|
||||
|
||||
const { field, onChange, value } = this.props;
|
||||
const format = getFormat ? getFormat(field) : getDefaultFormat(field);
|
||||
const features = value ? [format.readFeature(value)] : [];
|
||||
|
||||
const featuresSource = new VectorSource({ features, wrapX: false });
|
||||
const featuresLayer = new VectorLayer({ source: featuresSource });
|
||||
|
||||
const target = this.mapContainer.current;
|
||||
const map = getMap ? getMap(target, featuresLayer) : getDefaultMap(target, featuresLayer);
|
||||
if (features.length > 0) {
|
||||
map.getView().fit(featuresSource.getExtent(), { maxZoom: 16, padding: [80, 80, 80, 80] });
|
||||
}
|
||||
|
||||
const draw = new Draw({ source: featuresSource, type: field.get('type', 'Point') });
|
||||
map.addInteraction(draw);
|
||||
|
||||
const writeOptions = { decimals: field.get('decimals', 7) };
|
||||
draw.on('drawend', ({ feature }) => {
|
||||
featuresSource.clear();
|
||||
onChange(format.writeGeometry(feature.getGeometry(), writeOptions));
|
||||
});
|
||||
|
||||
this.resizeObserver = new ResizeObserver(() => {
|
||||
map.updateSize();
|
||||
});
|
||||
|
||||
this.resizeObserver.observe(target);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
if (this.resizeObserver) {
|
||||
this.resizeObserver.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const { height } = this.props;
|
||||
|
||||
return (
|
||||
<ClassNames>
|
||||
{({ cx, css }) => (
|
||||
<div
|
||||
className={cx(
|
||||
this.props.classNameWrapper,
|
||||
css`
|
||||
${olStyles};
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
height: ${height};
|
||||
`,
|
||||
)}
|
||||
ref={this.mapContainer}
|
||||
/>
|
||||
)}
|
||||
</ClassNames>
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
const { getConfig } = require('../../scripts/webpack.js');
|
||||
|
||||
module.exports = getConfig();
|
||||
Reference in New Issue
Block a user