From cf54b6fdeb481c2b60d7027afa21734df53b504a Mon Sep 17 00:00:00 2001 From: Harel M Date: Tue, 14 Jul 2026 14:14:28 +0300 Subject: [PATCH] Update style-spec package to 26.1 (#2005) ## Launch Checklist Update style-spec package to version 26.1 This should solve a problem related to expression validation. - [x] Briefly describe the changes in this PR. - [x] Link to related issues. --- package-lock.json | 8 ++++---- package.json | 2 +- src/components/FieldDynamicArray.tsx | 5 ++++- src/components/LayerEditor.tsx | 8 ++++---- src/libs/codemirror-editor-factory.ts | 2 +- src/libs/layer.ts | 4 ++-- 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index e4f8558a..57a4281a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@mapbox/mapbox-gl-rtl-text": "^0.4.0", "@maplibre/maplibre-gl-geocoder": "^1.9.4", "@maplibre/maplibre-gl-inspect": "^1.8.2", - "@maplibre/maplibre-gl-style-spec": "^25.0.2", + "@maplibre/maplibre-gl-style-spec": "^26.1.0", "array-move": "^4.0.0", "buffer": "^6.0.3", "classnames": "^2.5.1", @@ -2179,9 +2179,9 @@ } }, "node_modules/@maplibre/maplibre-gl-style-spec": { - "version": "25.0.2", - "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-25.0.2.tgz", - "integrity": "sha512-hTNlIVG1gaLKz6UvOV23PYcT8wVS69LLMK9jbGT2hDWzs6hlTbMejeMyQsAF0rebj9czVp77Vhp4KRaUHHUp9g==", + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-26.1.0.tgz", + "integrity": "sha512-JaVj0XqDWFb2xfaRFCvF2Gi7qSpCYXXJlVghDDfRUV2dks61YsQKDjlZKT3H+oVwFBxX7CjErz9zjdGTEP/Lug==", "license": "ISC", "dependencies": { "@mapbox/jsonlint-lines-primitives": "^2.0.3", diff --git a/package.json b/package.json index 9e330f16..68572de3 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@mapbox/mapbox-gl-rtl-text": "^0.4.0", "@maplibre/maplibre-gl-geocoder": "^1.9.4", "@maplibre/maplibre-gl-inspect": "^1.8.2", - "@maplibre/maplibre-gl-style-spec": "^25.0.2", + "@maplibre/maplibre-gl-style-spec": "^26.1.0", "array-move": "^4.0.0", "buffer": "^6.0.3", "classnames": "^2.5.1", diff --git a/src/components/FieldDynamicArray.tsx b/src/components/FieldDynamicArray.tsx index 980ed0e3..9077c23b 100644 --- a/src/components/FieldDynamicArray.tsx +++ b/src/components/FieldDynamicArray.tsx @@ -2,7 +2,10 @@ import { InputDynamicArray, type InputDynamicArrayProps } from "./InputDynamicAr import { Fieldset } from "./Fieldset"; type FieldDynamicArrayProps = InputDynamicArrayProps & { - name?: string + name?: string; + fieldSpec?: { + value?: string; + } }; export const FieldDynamicArray: React.FC = (props) => { diff --git a/src/components/LayerEditor.tsx b/src/components/LayerEditor.tsx index 7cbd09c9..89de9bf7 100644 --- a/src/components/LayerEditor.tsx +++ b/src/components/LayerEditor.tsx @@ -74,20 +74,20 @@ function getLayoutForType(type: LayerSpecification["type"], t: TFunction): Maput return getLayoutForSymbolType(t); } const groups: MaputnikLayoutGroup[] = []; - if (Object.keys(v8["paint_" + type]).length > 0) { + if (Object.keys(v8["paint_" + type as keyof typeof v8]).length > 0) { groups.push({ title: t("Paint properties"), id: "Paint_properties", type: "properties", - fields: Object.keys(v8["paint_" + type]), + fields: Object.keys(v8["paint_" + type as keyof typeof v8]), }); } - if (Object.keys(v8["layout_" + type]).length > 0) { + if (Object.keys(v8["layout_" + type as keyof typeof v8]).length > 0) { groups.push({ title: t("Layout properties"), id: "Layout_properties", type: "properties", - fields: Object.keys(v8["layout_" + type]) + fields: Object.keys(v8["layout_" + type as keyof typeof v8]) }); } return groups; diff --git a/src/libs/codemirror-editor-factory.ts b/src/libs/codemirror-editor-factory.ts index 682ce850..2f3d6491 100644 --- a/src/libs/codemirror-editor-factory.ts +++ b/src/libs/codemirror-editor-factory.ts @@ -119,7 +119,7 @@ function createMaplibreExpressionLinter(spec?: StylePropertySpecification) { const text = view.state.doc.toString(); const parsedJson = JSON.parse(text); const ast = jsonToAst(text); - const out = expression.createExpression(parsedJson, spec); + const out = expression.createExpression(parsedJson, "expression", spec); if (out?.result !== "error") { return []; } diff --git a/src/libs/layer.ts b/src/libs/layer.ts index 416e61a2..68063e23 100644 --- a/src/libs/layer.ts +++ b/src/libs/layer.ts @@ -5,14 +5,14 @@ import { type LayerSpecification } from "maplibre-gl"; export function changeType(layer: LayerSpecification, newType: string): LayerSpecification { const changedPaintProps: LayerSpecification["paint"] = { ...layer.paint }; Object.keys(changedPaintProps).forEach(propertyName => { - if(!(propertyName in latest["paint_" + newType])) { + if(!(propertyName in ((latest["paint_" + newType as keyof typeof latest]) as string[]))) { delete changedPaintProps[propertyName as keyof LayerSpecification["paint"]]; } }); const changedLayoutProps: LayerSpecification["layout"] = { ...layer.layout }; Object.keys(changedLayoutProps).forEach(propertyName => { - if(!(propertyName in latest["layout_" + newType])) { + if(!(propertyName in ((latest["layout_" + newType as keyof typeof latest]) as string[]))) { delete changedLayoutProps[propertyName as keyof LayerSpecification["layout"]]; } });