From a7f9a1bb980e059171173dd849f9b9f8e6784b29 Mon Sep 17 00:00:00 2001 From: Ralf Handl Date: Tue, 4 Jul 2023 15:08:10 +0200 Subject: [PATCH 01/24] Chore: bump dependencies eslint and odata-csdl (#262) --- package-lock.json | 131 +++++++++++++++++++++------------------------- package.json | 4 +- 2 files changed, 62 insertions(+), 73 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7e4e3c7ca..6c946f8c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,14 +9,23 @@ "version": "0.0.0", "dependencies": { "colors": "^1.4.0", - "odata-csdl": "^0.8.1", + "odata-csdl": "^0.8.2", "odata-vocabularies": "github:oasis-tcs/odata-vocabularies" }, "devDependencies": { - "eslint": "^8.23.0", + "eslint": "^8.44.0", "prettier": "^2.8.1" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -33,23 +42,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -65,18 +74,18 @@ } }, "node_modules/@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -142,9 +151,9 @@ } }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -343,16 +352,16 @@ } }, "node_modules/eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -362,8 +371,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -371,20 +380,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -416,9 +424,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -428,14 +436,14 @@ } }, "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", + "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -613,10 +621,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/has-flag": { @@ -714,16 +722,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -815,12 +813,12 @@ "dev": true }, "node_modules/odata-csdl": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/odata-csdl/-/odata-csdl-0.8.1.tgz", - "integrity": "sha512-j+twoTSXtT86iBYjo9/dhYQl/3DUjJ3Yz4YmqT/L+e8dxsqEQMHHPnz3hj7gUi9rhr8SXZnvtM5SV8XeYEtIrA==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/odata-csdl/-/odata-csdl-0.8.2.tgz", + "integrity": "sha512-F/Nu/rM2mgdSTPkJFoq9yJy7KoN6nScpsMqzowOfGi+iEr8iBecIOr0XnD0UwhmY34BWxNtMttW+zGWrZjuXAw==", "dependencies": { "colors": "^1.4.0", - "minimist": "^1.2.7", + "minimist": "^1.2.8", "sax": "^1.2.4" }, "bin": { @@ -829,12 +827,12 @@ }, "node_modules/odata-vocabularies": { "version": "0.5", - "resolved": "git+ssh://git@github.com/oasis-tcs/odata-vocabularies.git#e05e9c884c928cf6508a23211f43b1b8734da2fd", + "resolved": "git+ssh://git@github.com/oasis-tcs/odata-vocabularies.git#1d1bd57d8280fa1032d4e77b7e9cd7b26d713c66", "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "colors": "^1.4.0", "minimist": "^1.2.6", - "odata-csdl": "^0.8.1" + "odata-csdl": "^0.8.2" }, "bin": { "odata-vocab2md": "lib/cli.js" @@ -850,17 +848,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -1161,15 +1159,6 @@ "node": ">= 8" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 1bea1bcbe..3786d61be 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ ], "dependencies": { "colors": "^1.4.0", - "odata-csdl": "^0.8.1", + "odata-csdl": "^0.8.2", "odata-vocabularies": "github:oasis-tcs/odata-vocabularies" }, "devDependencies": { - "eslint": "^8.23.0", + "eslint": "^8.44.0", "prettier": "^2.8.1" }, "scripts": { From 85f6c7d5559b990aa36fc168f38747b8b1478d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Wed, 5 Jul 2023 08:20:20 +0200 Subject: [PATCH 02/24] HTML5.LinkTarget (#260) --- vocabularies/HTML5.json | 22 + vocabularies/HTML5.md | 20 +- vocabularies/HTML5.xml | 36 ++ vocabularies/UI.json | 18 +- vocabularies/UI.md | 890 ++++++++++++++++++++-------------------- vocabularies/UI.xml | 15 + 6 files changed, 550 insertions(+), 451 deletions(-) diff --git a/vocabularies/HTML5.json b/vocabularies/HTML5.json index 14ed17511..c6a987c05 100644 --- a/vocabularies/HTML5.json +++ b/vocabularies/HTML5.json @@ -3,6 +3,9 @@ "$Reference": { "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.json": { "$Include": [{ "$Namespace": "Org.OData.Core.V1", "$Alias": "Core" }] + }, + "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Validation.V1.json": { + "$Include": [{ "$Namespace": "Org.OData.Validation.V1", "$Alias": "Validation" }] } }, "com.sap.vocabularies.HTML5.v1": { @@ -29,6 +32,25 @@ "@Core.Description": "css: width, see https://www.w3.org/TR/CSS21/visudet.html#propdef-width", "@Core.LongDescription": "\n The property allows all values specified for the original css width property.\n Note that clients consuming this annotation may only support selected length units.\n " } + }, + "LinkTarget": { + "$Kind": "Term", + "$Type": "HTML5.LinkTargetType", + "$DefaultValue": "_self", + "@Common.Experimental": true, + "@Core.Description": "Where to open a link for the annotated [URL](https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.html#IsURL)", + "@Core.LongDescription": "When the UI contains a link to the URL, it shall open as specified by this annotation.\n This can be achieved, for example, by giving the UI5 `sap.m.Link` element a corresponding `target` property.\n Applicability of this term is governed by [`Validation.ApplicableTerms`](https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Validation.V1.html#ApplicableTerms) annotations." + }, + "LinkTargetType": { + "$Kind": "TypeDefinition", + "$UnderlyingType": "Edm.String", + "@Core.Description": "The values are interpreted like the [target attribute](https://html.spec.whatwg.org/multipage/links.html#attr-hyperlink-target) in HTML", + "@Validation.AllowedValues": [ + { "Value": "_self", "@Core.Description": "Open link in the current browsing context" }, + { "Value": "_blank", "@Core.Description": "Open link in a new browsing context" }, + { "Value": "_parent", "@Core.Description": "Open link in the parent browsing context" }, + { "Value": "_top", "@Core.Description": "Open link in the top browsing context" } + ] } } } diff --git a/vocabularies/HTML5.md b/vocabularies/HTML5.md index 55faf5579..31280a5fd 100644 --- a/vocabularies/HTML5.md +++ b/vocabularies/HTML5.md @@ -10,12 +10,26 @@ The HTML5 vocabulary provides rendering hints for HTML5 clients Term|Type|Description :---|:---|:---------- -[CssDefaults](./HTML5.xml#L35:~:text=CSS definitions that may be used as defaults
This term can applied to e.g. UI.DataFieldAbstract records +[CssDefaults](./HTML5.xml#L38:~:text=CSS definitions that may be used as defaults
This term can applied to e.g. UI.DataFieldAbstract records +[LinkTarget](./HTML5.xml#L55:~:text=Where to open a link for the annotated [URL](https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.html#IsURL)
When the UI contains a link to the URL, it shall open as specified by this annotation. This can be achieved, for example, by giving the UI5 `sap.m.Link` element a corresponding `target` property. Applicability of this term is governed by [`Validation.ApplicableTerms`](https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Validation.V1.html#ApplicableTerms) annotations. -## [CssDefaultsType](./HTML5.xml#L40:~:text=The property allows all values specified for the original css width property. Note that clients consuming this annotation may only support selected length units. +[width](./HTML5.xml#L44:~:text=The property allows all values specified for the original css width property. Note that clients consuming this annotation may only support selected length units. + + +## [LinkTargetType](./HTML5.xml#L64:~:text= + + + @@ -49,6 +52,39 @@ + + + + + When the UI contains a link to the URL, it shall open as specified by this annotation. + This can be achieved, for example, by giving the UI5 `sap.m.Link` element a corresponding `target` property. + Applicability of this term is governed by [`Validation.ApplicableTerms`](https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Validation.V1.html#ApplicableTerms) annotations. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vocabularies/UI.json b/vocabularies/UI.json index 2ec3f33bb..53155f4e5 100644 --- a/vocabularies/UI.json +++ b/vocabularies/UI.json @@ -230,7 +230,11 @@ }, "MediaResourceType": { "$Kind": "ComplexType", - "Url": { "@Core.Description": "URL of media resource", "@Core.IsURL": true }, + "Url": { + "@Core.Description": "URL of media resource", + "@Core.IsURL": true, + "@Validation.ApplicableTerms": ["HTML5.LinkTarget"] + }, "ContentType": { "$Nullable": true, "@Core.Description": "Content type, such as application/pdf, video/x-flv, image/jpeg", @@ -916,7 +920,11 @@ "$Kind": "ComplexType", "$BaseType": "UI.Facet", "@Core.Description": "Facet that refers to a URL", - "Url": { "@Core.IsURL": true, "@Core.Description": "URL of referenced information" }, + "Url": { + "@Core.IsURL": true, + "@Core.Description": "URL of referenced information", + "@Validation.ApplicableTerms": ["HTML5.LinkTarget"] + }, "UrlContentType": { "$Nullable": true, "@Core.IsMediaType": true, @@ -1557,7 +1565,11 @@ "@Core.Description": "A piece of data that allows navigating to other information on the Web", "@Core.LongDescription": "It should be rendered as a hyperlink", "Value": { "$Type": "Edm.PrimitiveType" }, - "Url": { "@Core.Description": "Target of the hyperlink", "@Core.IsURL": true }, + "Url": { + "@Core.Description": "Target of the hyperlink", + "@Core.IsURL": true, + "@Validation.ApplicableTerms": ["HTML5.LinkTarget"] + }, "UrlContentType": { "$Nullable": true, "@Core.Description": "Media type of the hyperlink target, e.g. `video/mp4`", diff --git a/vocabularies/UI.md b/vocabularies/UI.md index f093bc899..62632be68 100644 --- a/vocabularies/UI.md +++ b/vocabularies/UI.md @@ -31,50 +31,50 @@ Term|Type|Description [GeoLocation](./UI.xml#L240:~:text=Geographic location [Contacts](./UI.xml#L260:~:text=Collection of contacts
Each collection item MUST reference an annotation of a Communication.Contact
Allowed terms:
- [Contact](Communication.md#Contact) [MediaResource](./UI.xml#L271:~:text=Properties that describe a media resource -[DataPoint](./UI.xml#L325:~:text=Visualization of a single point of data, typically a number; may also be textual, e.g. a status value -[KPI](./UI.xml#L633:~:text=A Key Performance Indicator (KPI) bundles a SelectionVariant and a DataPoint, and provides details for progressive disclosure -[Chart](./UI.xml#L679:~:text=Visualization of multiple data points -[ValueCriticality](./UI.xml#L903:~:text=Assign criticalities to primitive values. This information can be used for semantic coloring. -[CriticalityLabels](./UI.xml#L916:~:text=Assign labels to criticalities. This information can be used for semantic coloring. When applied to a property, a label for a criticality must be provided, if more than one value of the annotated property has been assigned to the same criticality. There must be no more than one label per criticality. -[SelectionFields](./UI.xml#L937:~:text=Properties that might be relevant for filtering a collection of entities of this type -[Facets](./UI.xml#L945:~:text=Collection of facets -[HeaderFacets](./UI.xml#L949:~:text=Facets for additional object header information -[QuickViewFacets](./UI.xml#L953:~:text=Facets that may be used for a quick overview of the object -[QuickCreateFacets](./UI.xml#L957:~:text=Facets that may be used for a (quick) create of the object -[FilterFacets](./UI.xml#L961:~:text=Facets that reference UI.FieldGroup annotations to group filterable fields -[SelectionPresentationVariant](./UI.xml#L1029:~:text=A SelectionPresentationVariant bundles a Selection Variant and a Presentation Variant -[PresentationVariant](./UI.xml#L1053:~:text=Defines how the result of a queried collection of entities is shaped and how this result is displayed -[SelectionVariant](./UI.xml#L1166:~:text=A SelectionVariant denotes a combination of parameters and filters to query the annotated entity set -[ThingPerspective](./UI.xml#L1322:~:text=The annotated term is a Thing Perspective -[IsSummary](./UI.xml#L1325:~:text=This Facet and all included Facets are the summary of the thing. At most one Facet of a thing can be tagged with this term -[PartOfPreview](./UI.xml#L1329:~:text=This record and all included structural elements are part of the Thing preview
This term can be applied e.g. to UI.Facet and UI.DataField -[Map](./UI.xml#L1333:~:text=Target MUST reference a UI.GeoLocation, Communication.Address or a collection of these -[Gallery](./UI.xml#L1337:~:text=Target MUST reference a UI.MediaResource -[IsImageURL](./UI.xml#L1342:~:text=Properties and terms annotated with this term MUST contain a valid URL referencing an resource with a MIME type image
Can be annotated with:
- [IsNaturalPerson](Common.md#IsNaturalPerson) -[IsImage](./UI.xml#L1352:~:text=Properties annotated with this term MUST be a stream property annotated with a MIME type image. Entity types annotated with this term MUST be a media entity type annotated with a MIME type image.
Can be annotated with:
- [IsNaturalPerson](Common.md#IsNaturalPerson) -[MultiLineText](./UI.xml#L1363:~:text=Properties and parameters annotated with this annotation should be rendered as multi-line text (e.g. text area) -[Placeholder](./UI.xml#L1368:~:text=A short, human-readable text that gives a hint or an example to help the user with data entry -[TextArrangement](./UI.xml#L1374:~:text=Describes the arrangement of a code or ID value and its text
This term annotates one of the following:
(1) a [`Common.Text`](Common.md#Text) annotation of the code or ID property where the annotation value is the text
(2) an entity type, this has the same effect as annotating all `Common.Text` annotations of properties of that entity type. -[Note](./UI.xml#L1397:~:text=Visualization of a note attached to an entity
Administrative data is given by the annotations [`Common.CreatedBy`](Common.md#CreatedBy), [`Common.CreatedAt`](Common.md#CreatedAt), [`Common.ChangedBy`](Common.md#ChangedBy), [`Common.ChangedAt`](Common.md#ChangedAt) on the same entity type. -[Importance](./UI.xml#L1450:~:text=Expresses the importance of e.g. a DataField or an annotation -[Hidden](./UI.xml#L1465:~:text=Properties or facets (see UI.Facet) annotated with this term will not be rendered if the annotation evaluates to true.
Hidden properties usually carry technical information that is used for application control and is of no direct interest to end users. The annotation value may be an expression to dynamically hide or render the annotated feature. If a navigation property is annotated with `Hidden` true, all subsequent parts are hidden - independent of their own potential `Hidden` annotations. -[IsCopyAction](./UI.xml#L1473:~:text=The annotated [`DataFieldForAction`](#DataFieldForAction) record references an action that deep-copies an instance of the annotated entity type
The referenced action MUST be bound to the annotated entity type and MUST create a new instance of the same entity type as a deep copy of the bound instance. Upon successful completion, the response MUST contain a `Location` header that contains the edit URL or read URL of the created entity, and the response MUST be either `201 Created` and a representation of the created entity, or `204 No Content` if the request included a `Prefer` header with a value of `return=minimal` and did not include the system query options `$select` and `$expand`. -[CreateHidden](./UI.xml#L1485:~:text=EntitySets annotated with this term can control the visibility of the Create operation dynamically
The annotation value should be a path to another property from a related entity. -[UpdateHidden](./UI.xml#L1490:~:text=EntitySets annotated with this term can control the visibility of the Edit/Save operation dynamically
The annotation value should be a path to another property from the same or a related entity. -[DeleteHidden](./UI.xml#L1495:~:text=EntitySets annotated with this term can control the visibility of the Delete operation dynamically
The annotation value should be a path to another property from the same or a related entity. -[HiddenFilter](./UI.xml#L1500:~:text=Properties annotated with this term will not be rendered as filter criteria if the annotation evaluates to true.
Properties annotated with `HiddenFilter` are intended as parts of a `$filter` expression that cannot be directly influenced by end users. The properties will be rendered in all other places, e.g. table columns or form fields. This is in contrast to properties annotated with [Hidden](#Hidden) that are not rendered at all. If a navigation property is annotated with `HiddenFilter` true, all subsequent parts are hidden in filter - independent of their own potential `HiddenFilter` annotations. -[AdaptationHidden](./UI.xml#L1509:~:text=Properties or entities annotated with this term can't be used for UI adaptation/configuration/personalization
The tagged elements can only be used in UI based on metadata, annnotations or code. -[DataFieldDefault](./UI.xml#L1515:~:text=Default representation of a property as a datafield, e.g. when the property is added as a table column or form field via personalization
Only concrete subtypes of [DataFieldAbstract](#DataFieldAbstract) can be used for a DataFieldDefault. For type [DataField](#DataField) and its subtypes the annotation target SHOULD be the same property that is referenced via a path expression in the `Value` of the datafield. -[Criticality](./UI.xml#L1733:~:text=Service-calculated criticality, alternative to UI.CriticalityCalculation -[CriticalityCalculation](./UI.xml#L1737:~:text=Parameters for client-calculated criticality, alternative to UI.Criticality -[Emphasized](./UI.xml#L1741:~:text=Highlight something that is of special interest
The usage of a property or operation should be highlighted as it's of special interest for the end user -[OrderBy](./UI.xml#L1747:~:text=Sort by the referenced property instead of by the annotated property
Example: annotated property `SizeCode` has string values XS, S, M, L, XL, referenced property SizeOrder has numeric values -2, -1, 0, 1, 2. Numeric ordering by SizeOrder will be more understandable than lexicographic ordering by SizeCode. -[ParameterDefaultValue](./UI.xml#L1753:~:text=Define default values for action parameters
For unbound actions the default value can either be a constant expression, or a dynamic expression using absolute paths, e.g. singletons or function import results. Whereas for bound actions the bound entity and its properties and associated properties can be used as default values -[RecommendationState](./UI.xml#L1759:~:text=Indicates whether a field contains or has a recommended value
Intelligent systems can help users by recommending input the user may "prefer". -[RecommendationList](./UI.xml#L1789:~:text=Specifies how to get a list of recommended values for a property or parameter
Intelligent systems can help users by recommending input the user may "prefer". -[ExcludeFromNavigationContext](./UI.xml#L1821:~:text=The contents of this property must not be propagated to the app-to-app navigation context -[DoNotCheckScaleOfMeasuredQuantity](./UI.xml#L1825:~:text=Do not check the number of fractional digits of the annotated measured quantity
The annotated property contains a measured quantity, and the user may enter more fractional digits than defined for the corresponding unit of measure.
This switches off the validation of user input with respect to decimals. -[LeadingEntitySet](./UI.xml#L1835:~:text=The referenced entity set is the preferred starting point for UIs using this service +[DataPoint](./UI.xml#L330:~:text=Visualization of a single point of data, typically a number; may also be textual, e.g. a status value +[KPI](./UI.xml#L638:~:text=A Key Performance Indicator (KPI) bundles a SelectionVariant and a DataPoint, and provides details for progressive disclosure +[Chart](./UI.xml#L684:~:text=Visualization of multiple data points +[ValueCriticality](./UI.xml#L908:~:text=Assign criticalities to primitive values. This information can be used for semantic coloring. +[CriticalityLabels](./UI.xml#L921:~:text=Assign labels to criticalities. This information can be used for semantic coloring. When applied to a property, a label for a criticality must be provided, if more than one value of the annotated property has been assigned to the same criticality. There must be no more than one label per criticality. +[SelectionFields](./UI.xml#L942:~:text=Properties that might be relevant for filtering a collection of entities of this type +[Facets](./UI.xml#L950:~:text=Collection of facets +[HeaderFacets](./UI.xml#L954:~:text=Facets for additional object header information +[QuickViewFacets](./UI.xml#L958:~:text=Facets that may be used for a quick overview of the object +[QuickCreateFacets](./UI.xml#L962:~:text=Facets that may be used for a (quick) create of the object +[FilterFacets](./UI.xml#L966:~:text=Facets that reference UI.FieldGroup annotations to group filterable fields +[SelectionPresentationVariant](./UI.xml#L1039:~:text=A SelectionPresentationVariant bundles a Selection Variant and a Presentation Variant +[PresentationVariant](./UI.xml#L1063:~:text=Defines how the result of a queried collection of entities is shaped and how this result is displayed +[SelectionVariant](./UI.xml#L1176:~:text=A SelectionVariant denotes a combination of parameters and filters to query the annotated entity set +[ThingPerspective](./UI.xml#L1332:~:text=The annotated term is a Thing Perspective +[IsSummary](./UI.xml#L1335:~:text=This Facet and all included Facets are the summary of the thing. At most one Facet of a thing can be tagged with this term +[PartOfPreview](./UI.xml#L1339:~:text=This record and all included structural elements are part of the Thing preview
This term can be applied e.g. to UI.Facet and UI.DataField +[Map](./UI.xml#L1343:~:text=Target MUST reference a UI.GeoLocation, Communication.Address or a collection of these +[Gallery](./UI.xml#L1347:~:text=Target MUST reference a UI.MediaResource +[IsImageURL](./UI.xml#L1352:~:text=Properties and terms annotated with this term MUST contain a valid URL referencing an resource with a MIME type image
Can be annotated with:
- [IsNaturalPerson](Common.md#IsNaturalPerson) +[IsImage](./UI.xml#L1362:~:text=Properties annotated with this term MUST be a stream property annotated with a MIME type image. Entity types annotated with this term MUST be a media entity type annotated with a MIME type image.
Can be annotated with:
- [IsNaturalPerson](Common.md#IsNaturalPerson) +[MultiLineText](./UI.xml#L1373:~:text=Properties and parameters annotated with this annotation should be rendered as multi-line text (e.g. text area) +[Placeholder](./UI.xml#L1378:~:text=A short, human-readable text that gives a hint or an example to help the user with data entry +[TextArrangement](./UI.xml#L1384:~:text=Describes the arrangement of a code or ID value and its text
This term annotates one of the following:
(1) a [`Common.Text`](Common.md#Text) annotation of the code or ID property where the annotation value is the text
(2) an entity type, this has the same effect as annotating all `Common.Text` annotations of properties of that entity type. +[Note](./UI.xml#L1407:~:text=Visualization of a note attached to an entity
Administrative data is given by the annotations [`Common.CreatedBy`](Common.md#CreatedBy), [`Common.CreatedAt`](Common.md#CreatedAt), [`Common.ChangedBy`](Common.md#ChangedBy), [`Common.ChangedAt`](Common.md#ChangedAt) on the same entity type. +[Importance](./UI.xml#L1460:~:text=Expresses the importance of e.g. a DataField or an annotation +[Hidden](./UI.xml#L1475:~:text=Properties or facets (see UI.Facet) annotated with this term will not be rendered if the annotation evaluates to true.
Hidden properties usually carry technical information that is used for application control and is of no direct interest to end users. The annotation value may be an expression to dynamically hide or render the annotated feature. If a navigation property is annotated with `Hidden` true, all subsequent parts are hidden - independent of their own potential `Hidden` annotations. +[IsCopyAction](./UI.xml#L1483:~:text=The annotated [`DataFieldForAction`](#DataFieldForAction) record references an action that deep-copies an instance of the annotated entity type
The referenced action MUST be bound to the annotated entity type and MUST create a new instance of the same entity type as a deep copy of the bound instance. Upon successful completion, the response MUST contain a `Location` header that contains the edit URL or read URL of the created entity, and the response MUST be either `201 Created` and a representation of the created entity, or `204 No Content` if the request included a `Prefer` header with a value of `return=minimal` and did not include the system query options `$select` and `$expand`. +[CreateHidden](./UI.xml#L1495:~:text=EntitySets annotated with this term can control the visibility of the Create operation dynamically
The annotation value should be a path to another property from a related entity. +[UpdateHidden](./UI.xml#L1500:~:text=EntitySets annotated with this term can control the visibility of the Edit/Save operation dynamically
The annotation value should be a path to another property from the same or a related entity. +[DeleteHidden](./UI.xml#L1505:~:text=EntitySets annotated with this term can control the visibility of the Delete operation dynamically
The annotation value should be a path to another property from the same or a related entity. +[HiddenFilter](./UI.xml#L1510:~:text=Properties annotated with this term will not be rendered as filter criteria if the annotation evaluates to true.
Properties annotated with `HiddenFilter` are intended as parts of a `$filter` expression that cannot be directly influenced by end users. The properties will be rendered in all other places, e.g. table columns or form fields. This is in contrast to properties annotated with [Hidden](#Hidden) that are not rendered at all. If a navigation property is annotated with `HiddenFilter` true, all subsequent parts are hidden in filter - independent of their own potential `HiddenFilter` annotations. +[AdaptationHidden](./UI.xml#L1519:~:text=Properties or entities annotated with this term can't be used for UI adaptation/configuration/personalization
The tagged elements can only be used in UI based on metadata, annnotations or code. +[DataFieldDefault](./UI.xml#L1525:~:text=Default representation of a property as a datafield, e.g. when the property is added as a table column or form field via personalization
Only concrete subtypes of [DataFieldAbstract](#DataFieldAbstract) can be used for a DataFieldDefault. For type [DataField](#DataField) and its subtypes the annotation target SHOULD be the same property that is referenced via a path expression in the `Value` of the datafield. +[Criticality](./UI.xml#L1748:~:text=Service-calculated criticality, alternative to UI.CriticalityCalculation +[CriticalityCalculation](./UI.xml#L1752:~:text=Parameters for client-calculated criticality, alternative to UI.Criticality +[Emphasized](./UI.xml#L1756:~:text=Highlight something that is of special interest
The usage of a property or operation should be highlighted as it's of special interest for the end user +[OrderBy](./UI.xml#L1762:~:text=Sort by the referenced property instead of by the annotated property
Example: annotated property `SizeCode` has string values XS, S, M, L, XL, referenced property SizeOrder has numeric values -2, -1, 0, 1, 2. Numeric ordering by SizeOrder will be more understandable than lexicographic ordering by SizeCode. +[ParameterDefaultValue](./UI.xml#L1768:~:text=Define default values for action parameters
For unbound actions the default value can either be a constant expression, or a dynamic expression using absolute paths, e.g. singletons or function import results. Whereas for bound actions the bound entity and its properties and associated properties can be used as default values +[RecommendationState](./UI.xml#L1774:~:text=Indicates whether a field contains or has a recommended value
Intelligent systems can help users by recommending input the user may "prefer". +[RecommendationList](./UI.xml#L1804:~:text=Specifies how to get a list of recommended values for a property or parameter
Intelligent systems can help users by recommending input the user may "prefer". +[ExcludeFromNavigationContext](./UI.xml#L1836:~:text=The contents of this property must not be propagated to the app-to-app navigation context +[DoNotCheckScaleOfMeasuredQuantity](./UI.xml#L1840:~:text=Do not check the number of fractional digits of the annotated measured quantity
The annotated property contains a measured quantity, and the user may enter more fractional digits than defined for the corresponding unit of measure.
This switches off the validation of user input with respect to decimals. +[LeadingEntitySet](./UI.xml#L1850:~:text=The referenced entity set is the preferred starting point for UIs using this service ## [HeaderInfoType](./UI.xml#L68:~:text=Can be annotated with:
- [LinkTarget](HTML5.md#LinkTarget) +[ContentType](./UI.xml#L285:~:text= -## [ImageType](./UI.xml#L300:~:text= -## [DataPointType](./UI.xml#L329:~:text=The value is typically provided via a `Path` construct. The path MUST lead to a direct property of the same entity type or a property of a complex property (recursively) of that entity type, navigation segments are not allowed.
It could be annotated with either `UoM.ISOCurrency` or `UoM.Unit`. Percentage values are annotated with `UoM.Unit = '%'`. A renderer should take an optional `Common.Text` annotation into consideration. -[TargetValue](./UI.xml#L354:~:text=Allowed terms:
- [CriticalityLabels](#CriticalityLabels) -[CriticalityRepresentation](./UI.xml#L393:~:text=The value is typically provided via a `Path` construct. The path MUST lead to a direct property of the same entity type or a property of a complex property (recursively) of that entity type, navigation segments are not allowed.
It could be annotated with either `UoM.ISOCurrency` or `UoM.Unit`. Percentage values are annotated with `UoM.Unit = '%'`. A renderer should take an optional `Common.Text` annotation into consideration. +[TargetValue](./UI.xml#L359:~:text=Allowed terms:
- [CriticalityLabels](#CriticalityLabels) +[CriticalityRepresentation](./UI.xml#L398:~:text= -## [NumberFormat](./UI.xml#L411:~:text= -## [VisualizationType](./UI.xml#L421:~:text= -## [ReferencePeriod](./UI.xml#L442:~:text= -## [CriticalityType](./UI.xml#L456:~:text= -## [CriticalityCalculationType](./UI.xml#L484:~:text=Constant thresholds shall only be used in order to refine constant values given for the data point overall (aggregation level with empty collection of property paths), but not if the thresholds are based on other measure elements. +[*AcceptanceRangeLowValue*](./UI.xml#L544:~:text=Constant thresholds shall only be used in order to refine constant values given for the data point overall (aggregation level with empty collection of property paths), but not if the thresholds are based on other measure elements. -## [CriticalityThresholdsType](./UI.xml#L537:~:text= -## [ImprovementDirectionType](./UI.xml#L559:~:text= -## [LevelThresholdsType](./UI.xml#L572:~:text= -## [TrendType](./UI.xml#L580:~:text= -## [TrendCalculationType](./UI.xml#L599:~:text= -## [KPIType](./UI.xml#L639:~:text=Additional data points are typically related to the main data point and provide complementing information or could be used for comparisons -[Detail](./UI.xml#L660:~:text=Additional data points are typically related to the main data point and provide complementing information or could be used for comparisons +[Detail](./UI.xml#L665:~:text= -## [KPIDetailType](./UI.xml#L664:~:text= -## [ChartDefinitionType](./UI.xml#L683:~:text=If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being visualized according to the `UI.Chart` annotation, the annotation path MUST be silently ignored.
Allowed terms:
- [AggregatedProperty](Analytics.md#AggregatedProperty)
- [CustomAggregate](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#CustomAggregate) -[MeasureAttributes](./UI.xml#L715:~:text=If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being visualized according to the `UI.Chart` annotation, the annotation path MUST be silently ignored.
Allowed terms:
- [AggregatedProperty](Analytics.md#AggregatedProperty)
- [CustomAggregate](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#CustomAggregate) +[MeasureAttributes](./UI.xml#L720:~:text= -## [ChartType](./UI.xml#L733:~:text= -## [ChartAxisScalingType](./UI.xml#L778:~:text= -## [ChartAxisScaleBehaviorType](./UI.xml#L790:~:text= -## [ChartAxisAutoScaleBehaviorType](./UI.xml#L803:~:text= -## [ChartAxisAutoScaleDataScopeType](./UI.xml#L812:~:text= -## [FixedScaleMultipleStackedMeasuresBoundaryValuesType](./UI.xml#L821:~:text= -## [ChartDimensionAttributeType](./UI.xml#L830:~:text= -## [ChartMeasureAttributeType](./UI.xml#L851:~:text=If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being visualized according to the `UI.Chart` annotation, the annotation path MUST be silently ignored.
Allowed terms:
- [AggregatedProperty](Analytics.md#AggregatedProperty)
- [CustomAggregate](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#CustomAggregate) -[Role](./UI.xml#L869:~:text=Allowed terms:
- [DataPoint](#DataPoint) -[UseSequentialColorLevels](./UI.xml#L878:~:text=If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being visualized according to the `UI.Chart` annotation, the annotation path MUST be silently ignored.
Allowed terms:
- [AggregatedProperty](Analytics.md#AggregatedProperty)
- [CustomAggregate](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#CustomAggregate) +[Role](./UI.xml#L874:~:text=Allowed terms:
- [DataPoint](#DataPoint) +[UseSequentialColorLevels](./UI.xml#L883:~:text= -## [ChartDimensionRoleType](./UI.xml#L884:~:text= -## [ChartMeasureRoleType](./UI.xml#L890:~:text= -## [EmphasisLabelType](./UI.xml#L896:~:text= -## [ValueCriticalityType](./UI.xml#L907:~:text= -## [CriticalityLabelType](./UI.xml#L927:~:text= -## [*Facet*](./UI.xml#L965:~:text= -## [CollectionFacet](./UI.xml#L981:~:text= -## [ReferenceFacet](./UI.xml#L987:~:text=Allowed terms:
- [Address](Communication.md#Address)
- [Contact](Communication.md#Contact)
- [Badge](#Badge)
- [Chart](#Chart)
- [Contacts](#Contacts)
- [DataPoint](#DataPoint)
- [FieldGroup](#FieldGroup)
- [GeoLocation](#GeoLocation)
- [GeoLocations](#GeoLocations)
- [HeaderInfo](#HeaderInfo)
- [Identification](#Identification)
- [KPI](#KPI)
- [LineItem](#LineItem)
- [MediaResource](#MediaResource)
- [Note](#Note)
- [PresentationVariant](#PresentationVariant)
- [SelectionFields](#SelectionFields)
- [SelectionPresentationVariant](#SelectionPresentationVariant)
- [StatusInfo](#StatusInfo) +[*Label*](./UI.xml#L978:~:text=Allowed terms:
- [Address](Communication.md#Address)
- [Contact](Communication.md#Contact)
- [Badge](#Badge)
- [Chart](#Chart)
- [Contacts](#Contacts)
- [DataPoint](#DataPoint)
- [FieldGroup](#FieldGroup)
- [GeoLocation](#GeoLocation)
- [GeoLocations](#GeoLocations)
- [HeaderInfo](#HeaderInfo)
- [Identification](#Identification)
- [KPI](#KPI)
- [LineItem](#LineItem)
- [MediaResource](#MediaResource)
- [Note](#Note)
- [PresentationVariant](#PresentationVariant)
- [SelectionFields](#SelectionFields)
- [SelectionPresentationVariant](#SelectionPresentationVariant)
- [StatusInfo](#StatusInfo) **Applicable Annotation Terms:** @@ -611,15 +611,15 @@ Property|Type|Description - [PartOfPreview](#PartOfPreview) -## [ReferenceURLFacet](./UI.xml#L1016:~:text=Can be annotated with:
- [LinkTarget](HTML5.md#LinkTarget) +[UrlContentType](./UI.xml#L1032:~:text= -## [SelectionPresentationVariantType](./UI.xml#L1035:~:text= -## [PresentationVariantType](./UI.xml#L1059:~:text=If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being presented according to the `UI.PresentationVariant` annotation, the annotation path MUST be silently ignored.
Allowed terms:
- [AggregatedProperty](Analytics.md#AggregatedProperty)
- [CustomAggregate](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#CustomAggregate) -[IncludeGrandTotal](./UI.xml#L1108:~:text=Allowed terms:
- [Chart](#Chart)
- [DataPoint](#DataPoint)
- [LineItem](#LineItem) -[RequestAtLeast](./UI.xml#L1134:~:text=Properties in `RequestAtLeast` must occur either in the `$select` clause of an OData request or among the grouping properties in an `$apply=groupby((grouping properties),...)` clause of an aggregating OData request. -[SelectionFields](./UI.xml#L1157:~:text=If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being presented according to the `UI.PresentationVariant` annotation, the annotation path MUST be silently ignored.
Allowed terms:
- [AggregatedProperty](Analytics.md#AggregatedProperty)
- [CustomAggregate](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#CustomAggregate) +[IncludeGrandTotal](./UI.xml#L1118:~:text=Allowed terms:
- [Chart](#Chart)
- [DataPoint](#DataPoint)
- [LineItem](#LineItem) +[RequestAtLeast](./UI.xml#L1144:~:text=Properties in `RequestAtLeast` must occur either in the `$select` clause of an OData request or among the grouping properties in an `$apply=groupby((grouping properties),...)` clause of an aggregating OData request. +[SelectionFields](./UI.xml#L1167:~:text= -## [SelectionVariantType](./UI.xml#L1171:~:text= -## [*ParameterAbstract*](./UI.xml#L1196:~:text= -## [Parameter](./UI.xml#L1199:~:text= -## [IntervalParameter](./UI.xml#L1208:~:text= -## [SelectOptionType](./UI.xml#L1224:~:text=If the annotation referenced by the annotation path does not apply to the same collection of entities as the one being filtered according to the `UI.SelectionVariant` annotation, this instance of `UI.SelectionVariant/SelectOptions` MUST be silently ignored. For an example, see the `UI.SelectionVariant` annotation in the [example](../examples/DynamicProperties-sample.xml).
Allowed terms:
- [AggregatedProperty](Analytics.md#AggregatedProperty)
- [CustomAggregate](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#CustomAggregate) -[Ranges](./UI.xml#L1253:~:text=If the annotation referenced by the annotation path does not apply to the same collection of entities as the one being filtered according to the `UI.SelectionVariant` annotation, this instance of `UI.SelectionVariant/SelectOptions` MUST be silently ignored. For an example, see the `UI.SelectionVariant` annotation in the [example](../examples/DynamicProperties-sample.xml).
Allowed terms:
- [AggregatedProperty](Analytics.md#AggregatedProperty)
- [CustomAggregate](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#CustomAggregate) +[Ranges](./UI.xml#L1263:~:text= -## [SelectionRangeType](./UI.xml#L1258:~:text= -## [SelectionRangeSignType](./UI.xml#L1276:~:text= -## [SelectionRangeOptionType](./UI.xml#L1285:~:text= -## [TextArrangementType](./UI.xml#L1382:~:text=