openlayers-style-editor 1.1.0 → 1.1.1
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/dist/index.cjs +18 -2
- package/dist/index.js +18 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -551,6 +551,8 @@
|
|
|
551
551
|
"fill-color": fillColorArray,
|
|
552
552
|
"_rules": filters.map((f) => ({
|
|
553
553
|
expression: getFriendlyExpression(f),
|
|
554
|
+
name: f.name,
|
|
555
|
+
json: f.filterJson,
|
|
554
556
|
render: f.symbol
|
|
555
557
|
}))
|
|
556
558
|
};
|
|
@@ -2782,9 +2784,11 @@
|
|
|
2782
2784
|
function deconstructRule(rule) {
|
|
2783
2785
|
const parsedRule = JSON.parse(rule);
|
|
2784
2786
|
const isAll = parsedRule.hasOwnProperty("and");
|
|
2787
|
+
let conditions = parsedRule[isAll ? "and" : "or"];
|
|
2788
|
+
if (!conditions) conditions = [parsedRule];
|
|
2785
2789
|
return {
|
|
2786
2790
|
isAll,
|
|
2787
|
-
conditions:
|
|
2791
|
+
conditions: conditions.map((condition) => {
|
|
2788
2792
|
const operator = Object.keys(condition)[0];
|
|
2789
2793
|
const value = condition[operator];
|
|
2790
2794
|
if (operator === "==" && value[0].hasOwnProperty("substr")) {
|
|
@@ -3034,7 +3038,19 @@
|
|
|
3034
3038
|
//#region src/components/basedOnRules.tsx
|
|
3035
3039
|
function BasedOnRules(props) {
|
|
3036
3040
|
const { setVisible, applyRenderer, layerCurrentRenderer, features, idFieldName } = props;
|
|
3037
|
-
const [rules, setRules] = (0, react.useState)(
|
|
3041
|
+
const [rules, setRules] = (0, react.useState)(() => {
|
|
3042
|
+
if (layerCurrentRenderer.type == RenderType.ByRules) {
|
|
3043
|
+
if (layerCurrentRenderer.filters && layerCurrentRenderer.filters.length > 0) return layerCurrentRenderer.filters;
|
|
3044
|
+
else if (layerCurrentRenderer.rendererOL._rules) return layerCurrentRenderer.rendererOL._rules.map((r, index) => ({
|
|
3045
|
+
name: r.name || r.expression,
|
|
3046
|
+
filterJson: r.json,
|
|
3047
|
+
isElse: index === layerCurrentRenderer.rendererOL._rules.length - 1,
|
|
3048
|
+
symbol: r.render,
|
|
3049
|
+
isAll: false
|
|
3050
|
+
}));
|
|
3051
|
+
}
|
|
3052
|
+
return [];
|
|
3053
|
+
});
|
|
3038
3054
|
const [selectedRule, setSelectedRule] = (0, react.useState)();
|
|
3039
3055
|
const [showDialog, setShowDialog] = (0, react.useState)(false);
|
|
3040
3056
|
const [isAdding, setIsAdding] = (0, react.useState)(false);
|
package/dist/index.js
CHANGED
|
@@ -519,6 +519,8 @@ function getByRulesStyle(filters, idFieldName, features, elseFilter) {
|
|
|
519
519
|
"fill-color": fillColorArray,
|
|
520
520
|
"_rules": filters.map((f) => ({
|
|
521
521
|
expression: getFriendlyExpression(f),
|
|
522
|
+
name: f.name,
|
|
523
|
+
json: f.filterJson,
|
|
522
524
|
render: f.symbol
|
|
523
525
|
}))
|
|
524
526
|
};
|
|
@@ -2750,9 +2752,11 @@ var FilterWidget = (props) => {
|
|
|
2750
2752
|
function deconstructRule(rule) {
|
|
2751
2753
|
const parsedRule = JSON.parse(rule);
|
|
2752
2754
|
const isAll = parsedRule.hasOwnProperty("and");
|
|
2755
|
+
let conditions = parsedRule[isAll ? "and" : "or"];
|
|
2756
|
+
if (!conditions) conditions = [parsedRule];
|
|
2753
2757
|
return {
|
|
2754
2758
|
isAll,
|
|
2755
|
-
conditions:
|
|
2759
|
+
conditions: conditions.map((condition) => {
|
|
2756
2760
|
const operator = Object.keys(condition)[0];
|
|
2757
2761
|
const value = condition[operator];
|
|
2758
2762
|
if (operator === "==" && value[0].hasOwnProperty("substr")) {
|
|
@@ -3002,7 +3006,19 @@ var FilterWidget = (props) => {
|
|
|
3002
3006
|
//#region src/components/basedOnRules.tsx
|
|
3003
3007
|
function BasedOnRules(props) {
|
|
3004
3008
|
const { setVisible, applyRenderer, layerCurrentRenderer, features, idFieldName } = props;
|
|
3005
|
-
const [rules, setRules] = useState(
|
|
3009
|
+
const [rules, setRules] = useState(() => {
|
|
3010
|
+
if (layerCurrentRenderer.type == RenderType.ByRules) {
|
|
3011
|
+
if (layerCurrentRenderer.filters && layerCurrentRenderer.filters.length > 0) return layerCurrentRenderer.filters;
|
|
3012
|
+
else if (layerCurrentRenderer.rendererOL._rules) return layerCurrentRenderer.rendererOL._rules.map((r, index) => ({
|
|
3013
|
+
name: r.name || r.expression,
|
|
3014
|
+
filterJson: r.json,
|
|
3015
|
+
isElse: index === layerCurrentRenderer.rendererOL._rules.length - 1,
|
|
3016
|
+
symbol: r.render,
|
|
3017
|
+
isAll: false
|
|
3018
|
+
}));
|
|
3019
|
+
}
|
|
3020
|
+
return [];
|
|
3021
|
+
});
|
|
3006
3022
|
const [selectedRule, setSelectedRule] = useState();
|
|
3007
3023
|
const [showDialog, setShowDialog] = useState(false);
|
|
3008
3024
|
const [isAdding, setIsAdding] = useState(false);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openlayers-style-editor",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A style editor extension for OpenLayers currently working with WebGL Vector Layers",
|
|
6
6
|
"homepage": "https://land-it.github.io/openlayers-style-editor/",
|