{
	"demo": {
		"text": "sap.ui.core",
		"links": [
			{
				"icon": "map-2",
				"text": "Employee Directory",
				"desc": "This app is an employee directory and shows the final result of the 'Navigation Tutorial'",
				"ref": "test-resources/sap/ui/core/demokit/tutorial/navigation/17/webapp/index.html",
				"links": {
					"View Tutorial": "topic/1b6dcd39a6a74f528b27ddb22f15af0d"
				},
				"category": "Tutorial",
				"config": "test-resources/sap/ui/core/demokit/tutorial/navigation/demoapp.json"
			}
		]
	},
	"explored" : {
		"entitiesDefaults" : {
			"formFactors" : "-"
		},
		"samplesRef": [
			{
				"namespace" : "sap.ui.core.sample",
				"ref" : "test-resources/sap/ui/core/demokit/sample"
			},
			{
				"namespace" : "sap.ui.core.tutorial",
				"ref" : "test-resources/sap/ui/core/demokit/tutorial"
			}
		],
		"entities" : [
			{
				"id" : "sap.ui.core.BusyIndicator",
				"name" : "Global Busy Indicator",
				"category" : "Display",
				"since" : "1.0",
				"samples" : [
					"sap.ui.core.sample.BusyIndicator"
				]
			},
			{
				"id" : "sap.ui.core.Control",
				"name" : "Control",
				"category" : "Display",
				"since" : "1.0",
				"samples" : [
					"sap.ui.core.sample.ControlBusyIndicator",
					"sap.ui.core.sample.FieldGroup"
				]
			},
			{
				"id" : "sap.ui.core.HTML",
				"name" : "HTML",
				"category" : "Display",
				"since" : "1.0",
				"samples" : [
					"sap.ui.core.sample.Html",
					"sap.ui.core.sample.Html.static",
					"sap.ui.core.sample.Html.preserveDOM"
				]
			},
			{
				"id" : "sap.ui.core.Icon",
				"name" : "Icon",
				"category" : "Display",
				"since" : "1.12",
				"samples" : [ "sap.ui.core.sample.Icon" ]
			},
			{
				"id" : "sap.ui.core.InvisibleMessage",
				"name" : "InvisibleMessage",
				"category" : "Display",
				"since" : "1.78",
				"samples" : [ "sap.ui.core.sample.InvisibleMessage" ]
			},
			{
				"id" : "sap.ui.core.InvisibleText",
				"name" : "InvisibleText",
				"category" : "Display",
				"since" : "1.28",
				"samples" : [ "sap.ui.core.sample.InvisibleText" ]
			},
			{
				"id" : "sap.ui.core.CommandExecution",
				"name" : "Commands",
				"category" : "Action",
				"since" : "1.70",
				"samples" : [ "sap.ui.core.sample.Commands" ]
			},
			{
				"id" : "sap.ui.core.mvc.View",
				"name" : "View",
				"category" : "Display",
				"formFactors" : "-",
				"since" : "1.30",
				"samples" : [
					"sap.ui.core.sample.View.async",
					"sap.ui.core.sample.View.preprocessor"
				]
			},
			{
				"id" : "sap.ui.core.XMLComposite",
				"name" : "XML Composite Control",
				"category" : "Display",
				"since" : "1.56",
				"samples" : [
					"sap.ui.core.sample.XMLComposite.01",
					"sap.ui.core.sample.XMLComposite.02"
				]
			},
			{
				"id" : "sap.ui.core.mvc.XMLView",
				"name" : "XMLView",
				"category" : "Display",
				"since" : "1.26",
				"samples" : [
					"sap.ui.core.sample.ViewTemplate.scenario",
					"sap.ui.core.sample.ViewTemplate.scenario.extension",
					"sap.ui.core.sample.ViewTemplate.tiny",
					"sap.ui.core.sample.ViewTemplate.types",
					"sap.ui.core.sample.ViewTemplate.valuelist"
				]
			},
			{
				"id": "sap.ui.model.json.JSONTreeBinding",
				"name": "Tree Binding",
				"category": "Data Binding",
				"since": "1.36",
				"samples": [
					"sap.ui.table.sample.TreeTable.JSONTreeBinding"
				]
			},
			{
				"id" : "sap.ui.test.Opa5",
				"name" : "OPA5",
				"category" : "Testing",
				"since" : "1.24",
				"samples" : [
					"sap.ui.core.sample.OpaGetStarted",
					"sap.ui.core.sample.OpaMatchers",
					"sap.ui.core.sample.OpaById",
					"sap.ui.core.sample.OpaDynamicWait",
					"sap.ui.core.sample.OpaPageObject",
					"sap.ui.core.sample.OpaStartup.iStartMyUIComponent",
					"sap.ui.core.sample.OpaStartup.iStartMyAppInAFrame",
					"sap.ui.core.sample.OpaAction",
					"sap.ui.core.sample.gherkin.GherkinWithOPA5",
					"sap.ui.core.sample.gherkin.GherkinWithPageObjects",
					"sap.ui.core.sample.gherkin.GherkinWithUIComponent",
					"sap.ui.core.sample.OpaURLParameters.iStartMyUIComponentWithURLParameters",
					"sap.ui.core.sample.OpaURLParameters.iStartMyAppInAFrameWithURLParameters",
					"sap.ui.core.sample.OpaWithSupportAssistant",
					"sap.ui.core.sample.OpaTestLibrary",
					"sap.ui.core.sample.OpaStaticAreaControls",
					"sap.ui.core.sample.OpaBusyIndicator",
					"sap.ui.core.sample.OpaAutoWaitParams"
				]
			},
			{
				"id": "sap.ui.core.hyphenation.Hyphenation",
				"name": "Hyphenation API",
				"category": "Display",
				"since": "1.60",
				"samples": [
					"sap.ui.core.sample.HyphenationAPI"
				]
			},
			{
				"id": "sap.ui.test.matchers",
				"name": "Matcher",
				"category": "Testing",
				"since": "1.32",
				"samples": [
					"sap.ui.core.sample.matcher.BindingPath",
					"sap.ui.core.sample.matcher.I18NText",
					"sap.ui.core.sample.matcher.LabelFor",
					"sap.ui.core.sample.matcher.Descendant",
					"sap.ui.core.sample.OpaMatchers"
				]
			},
			{
				"id": "sap.ui.core.message.MessageManager",
				"name": "Message Manager",
				"category": "Display",
				"since": "1.30",
				"samples": [
					"sap.ui.core.sample.MessageManager.BasicMessages",
					"sap.ui.core.sample.MessageManager.BasicODataMessages",
					"sap.ui.core.sample.MessageManager.ODataBackendMessagesComp"
				]
			},
			{
				"id" : "sap.ui.test.gherkin",
				"name" : "Gherkin",
				"category" : "Testing",
				"since" : "1.40",
				"samples" : [
					"sap.ui.core.sample.gherkin.GherkinWithQUnit",
					"sap.ui.core.sample.gherkin.GherkinWithOPA5",
					"sap.ui.core.sample.gherkin.GherkinWithPageObjects",
					"sap.ui.core.sample.gherkin.GherkinWithUIComponent"
				]
			},
			{
				"id" : "sap.ui.core.theming",
				"name" : "Theming",
				"category" : "Theming",
				"since" : "1.26",
				"samples" : [
					"sap.ui.core.sample.ThemeCustomClasses",
					"sap.ui.core.sample.BasicThemeParameters"
				]
			},
		 	{
				"id" : "sap.ui.core.routing.Targets",
				"name" : "Targets",
				"category" : "Routing",
				"since" : "1.28",
				"samples" : [
					"sap.ui.core.sample.TargetsStandalone"
				]
			},
			{
				"id" : "sap.ui.core.routing.Route",
				"name" : "Route",
				"category" : "Routing",
				"since" : "1.16",
				"samples" : [
					"sap.ui.core.sample.PatternMatching"
				]
			},
			{
				"id" : "sap.ui.core.routing.Router",
				"name" : "Router",
				"category" : "Routing",
				"since" : "1.16",
				"samples" : [
					"sap.ui.core.sample.RoutingFullscreen",
					"sap.ui.core.sample.RoutingMasterDetail",
					"sap.ui.core.sample.RoutingNestedComponent"
				]
			},
			{
				"id" : "sap.ui.model.odata.v4.ODataModel",
				"name" : "OData V4 Model",
				"category" : "Data Binding",
				"since" : "1.38",
				"samples" : [
					"sap.ui.core.sample.odata.v4.ConsumeV2Service",
					"sap.ui.core.sample.odata.v4.DeepCreate",
					"sap.ui.core.sample.odata.v4.Draft",
					"sap.ui.core.sample.odata.v4.ListBinding",
					"sap.ui.core.sample.odata.v4.SalesOrders",
					"sap.ui.core.sample.odata.v4.SalesOrdersTemplate",
					"sap.ui.core.sample.odata.v4.SalesOrderTP100_V4",
					"sap.ui.core.sample.odata.v4.SalesOrderTP100_V2"
				]
			},
			{
				"id" : "sap.ui.model.odata.type",
				"name" : "OData Types (V2 and V4)",
				"category" : "Data Binding",
				"since" : "1.27",
				"samples" : [
					"sap.ui.core.sample.odata.types.v2.DateTime",
					"sap.ui.core.sample.odata.types.v2.DateTimeOffset",
					"sap.ui.core.sample.odata.types.v2.Time",
					"sap.ui.core.sample.odata.types.v4.Date",
					"sap.ui.core.sample.odata.types.v4.DateTimeOffset",
					"sap.ui.core.sample.odata.types.v4.TimeOfDay"
				]
			},
			{
				"id" : "sap.ui.model.odata.type.Date",
				"name" : "Date Type (OData V4)",
				"category" : "Data Binding",
				"since" : "1.37",
				"samples" : [
					"sap.ui.core.sample.odata.types.v4.Date"
				]
			},
			{
				"id" : "sap.ui.model.odata.type.DateTime",
				"name" : "DateTime Type (OData V2)",
				"category" : "Data Binding",
				"since" : "1.27",
				"samples" : [
					"sap.ui.core.sample.odata.types.v2.DateTime"
				]
			},
			{
				"id" : "sap.ui.model.odata.type.DateTimeOffset",
				"name" : "DateTimeOffset Type (OData V2 and V4)",
				"category" : "Data Binding",
				"since" : "1.27",
				"samples" : [
					"sap.ui.core.sample.odata.types.v2.DateTimeOffset",
					"sap.ui.core.sample.odata.types.v4.DateTimeOffset"
				]
			},
			{
				"id" : "sap.ui.model.odata.type.Time",
				"name" : "Time Type (OData V2)",
				"category" : "Data Binding",
				"since" : "1.27",
				"samples" : [
					"sap.ui.core.sample.odata.types.v2.Time"
				]
			},
			{
				"id" : "sap.ui.model.odata.type.TimeOfDay",
				"name" : "TimeOfDay Type (OData V4)",
				"category" : "Data Binding",
				"since" : "1.37",
				"samples" : [
					"sap.ui.core.sample.odata.types.v4.TimeOfDay"
				]
			},
			{
				"id" : "sap.ui.model.type.Date",
				"name" : "Date Type",
				"category" : "Data Binding",
				"since" : "1.10",
				"samples" : [
					"sap.ui.core.sample.TypeDateAsDate",
					"sap.ui.core.sample.TypeDateAsString"
				]
			},
			{
				"id" : "sap.ui.model.type.DateTime",
				"name" : "DateTime Type",
				"category" : "Data Binding",
				"since" : "1.28",
				"samples" : [
					"sap.ui.core.sample.TypeDateTime"
				]
			},
			{
				"id" : "sap.ui.model.type.Time",
				"name" : "Time Type",
				"category" : "Data Binding",
				"since" : "1.28",
				"samples" : [
					"sap.ui.core.sample.TypeTimeAsTime"
				]
			},
			{
				"id" : "sap.ui.model.type.Integer",
				"name" : "Integer Type",
				"category" : "Data Binding",
				"since" : "1.28",
				"samples" : [
					"sap.ui.core.sample.TypeInteger"
				]
			},
			{
				"id" : "sap.ui.model.type.Float",
				"name" : "Float Type",
				"category" : "Data Binding",
				"since" : "1.28",
				"samples" : [
					"sap.ui.core.sample.TypeFloat"
				]
			},
			{
				"id" : "sap.ui.model.type.Currency",
				"name" : "Currency Type",
				"category" : "Data Binding",
				"since" : "1.28",
				"samples" : [
					"sap.ui.core.sample.TypeCurrency"
				]
			},
			{
				"id" : "sap.ui.model.type.FileSize",
				"name" : "FileSize Type",
				"category" : "Data Binding",
				"since" : "1.28",
				"samples" : [
					"sap.ui.core.sample.TypeFileSize"
				]
			},
			{
				"id": "sap.ui.core.tutorial.navigation",
				"name": "Navigation and Routing",
				"category": "Tutorial",
				"since": "1.30",
				"formFactors": "-",
				"description": "This tutorial illustrates the major features of navigation and routing inside SAPUI5 apps.",
				"docuLink": "topic/1b6dcd39a6a74f528b27ddb22f15af0d",
				"samplesAsSteps": [
					"Set Up the Initial App",
					"Enable Routing",
					"Catch Invalid Hashes",
					"Add a Back Button to the Not Found Page",
					"Display a Target Without Changing the Hash",
					"Navigate to Routes with Hard-Coded Patterns",
					"Navigate to Routes with Mandatory Parameters",
					"Navigate with Flip Transition",
					"Allow Bookmarkable Tabs with Optional Query Parameters",
					"Implement Lazy Loading",
					"Assign Multiple Targets",
					"Make a Search Bookmarkable",
					"Make Table Sorting Bookmarkable",
					"Make Dialogs Bookmarkable",
					"Reuse an Existing Route",
					"Handle Invalid Hashes by Listening to Bypassed Events",
					"Listen to Matched Events of Any Route"
				]
			},
			{
				"id": "sap.ui.core.tutorial.troubleshooting",
				"name": "Troubleshooting",
				"category": "Tutorial",
				"since": "1.48",
				"formFactors": "-",
				"description": "In this tutorial, we will show you some tools that will help you when you run into problems with your SAPUI5 app.",
				"docuLink": "topic/5661952e72df471b932eddc10350c081",
				"samplesAsSteps": [
					"Heap of Shards"
				]
			},
			{
				"id": "sap.ui.core.tutorial.databinding",
				"name": "Data Binding",
				"category": "Tutorial",
				"since": "1.30",
				"formFactors": "-",
				"description": "In this tutorial, we will explain the concepts of data binding in SAPUI5.",
				"docuLink": "topic/e5310932a71f42daa41f3a6143efca9c",
				"samplesAsSteps": [
					"No Data Binding",
					"Creating a Model",
					"Create Property Binding",
					"Two-Way Data Binding",
					"One-way Data Binding",
					"Resource Models",
					"(Optional) Resource Bundles and Multiple Languages",
					"Binding Paths: Accessing Properties in Hierarchically Structured Models",
					"Formatting Values",
					"Property Formatting Using Data Types",
					"Validation Using the Message Manager",
					"Aggregation Binding Using Templates",
					"Element Binding",
					"Expression Binding",
					"Aggregation Binding Using A Factory Function"
				]
			},
		    {
				"id": "sap.ui.core.tutorial.mockserver",
				"name": "OData V2 Mock Server",
				"category": "Tutorial",
				"since": "1.34",
				"formFactors": "-",
				"description": "In this tutorial, we will explore some advanced features of the OData V2 mock server.",
				"docuLink": "topic/3a9728ec31f94ca18a7d543ce419d85d",
				"samplesAsSteps": [
				  "Initial App Without Data",
				  "Creating a Mock Server to Simulate Data",
				  "Handling Custom URL Parameters",
				  "Calling a Function Import"
				]
		    },
			{
				"id": "sap.ui.core.tutorial.odatav4",
				"name": "OData V4",
				"category": "Tutorial",
				"since": "1.54",
				"formFactors": "-",
				"description": "In this tutorial, we will show you how to build a simple application using an OData V4 service.",
				"docuLink": "topic/bcdbde6911bd4fc68fd435cf8e306ed0",
				"samplesAsSteps": [
					"Set Up the Initial App",
					"Data Access and Client-Server Communication",
					"Automatic Type Detection",
					"Filtering, Sorting, and Counting",
					"Batch Groups",
					"Create and Edit",
					"Delete",
					"OData Operations",
					"Add list-detail scenario",
					"Context#setKeepAlive",
					"Add table with :n navigation to detail area"
				]
			}
		],
		"samples" : [
			{
				"id": "sap.ui.core.sample.odata.types.v2.DateTime",
				"name": "OData V2 Dates - Use sap.ui.model.odata.type.DateTime for Edm.DateTime",
				"description": "This sample explains how to use the OData V2 Edm.DateTime type in SAPUI5 applications."
			},
			{
				"id": "sap.ui.core.sample.odata.types.v2.DateTimeOffset",
				"name": "OData V2 Timestamps - Use sap.ui.model.odata.type.DateTimeOffset for Edm.DateTimeOffset",
				"description": "This sample explains how to use the OData V2 Edm.DateTimeOffset type in SAPUI5 applications."
			},
			{
				"id": "sap.ui.core.sample.odata.types.v2.Time",
				"name": "OData V2 Times - Use sap.ui.model.odata.type.Time for Edm.Time",
				"description": "This sample explains how to use the OData V2 Edm.Time type in SAPUI5 applications."
			},
			{
				"id": "sap.ui.core.sample.odata.types.v4.Date",
				"name": "OData V4 Dates - Use sap.ui.model.odata.type.Date for Edm.Date",
				"description": "This sample explains how to use the OData V4 Edm.Date type in SAPUI5 applications."
			},
			{
				"id": "sap.ui.core.sample.odata.types.v4.DateTimeOffset",
				"name": "OData V4 Timestamps - Use sap.ui.model.odata.type.DateTimeOffset for Edm.DateTimeOffset",
				"description": "This sample explains how to use the OData V4 Edm.DateTimeOffset type in SAPUI5 applications."
			},
			{
				"id": "sap.ui.core.sample.odata.types.v4.TimeOfDay",
				"name": "OData V4 Times - Use sap.ui.model.odata.type.TimeOfDay for Edm.TimeOfDay",
				"description": "This sample explains how to use the OData V4 Edm.TimeOfDay type in SAPUI5 applications."
			},
			{
				"id": "sap.ui.core.sample.TypeDateAsDate",
				"name": "Date Type - Source As Date",
				"description": "This sample explains the formatting options of the Date type with the date being available as date object."
			},
			{
				"id": "sap.ui.core.sample.TypeDateAsString",
				"name": "Date Type - Source As String",
				"description": "This sample explains the formatting options of the Date type with the date being available as string."
			},
			{
				"id": "sap.ui.core.sample.TypeDateTime",
				"name": "DateTime Type",
				"description": "This sample explains the formatting options of the DateTime type."
			},
			{
				"id": "sap.ui.core.sample.TypeTimeAsTime",
				"name": "Time Type",
				"description": "This sample explains the formatting options of the Time type."
			},
			{
				"id": "sap.ui.core.sample.TypeFileSize",
				"name": "FileSize Type",
				"description": "This sample explains the formatting options of the FileSize type."
			},
			{
				"id": "sap.ui.core.sample.BusyIndicator",
				"name": "Busy Indicator",
				"description": "A busy indicator can be used to block the entire screen until an operation has finished."
			},
			{
				"id": "sap.ui.core.sample.ControlBusyIndicator",
				"name": "Control Busy Indicator",
				"description": "A control's busy indicator can be used to block parts of the screen until an operation has finished. In this example we block the content of only one out of two panels."
			},
			{
				"id": "sap.ui.core.sample.FieldGroup",
				"name": "Field Groups",
				"description": "A control's field group id can be used to define a virtual group of fields that should be validated together. Field groups can be validated usinf the ValidateFieldGroup event if the user presses the enter key in a field belonging to the field group or focusses a control outside of the field group."
			},
			{
				"id": "sap.ui.core.sample.Html",
				"name": "HTML",
				"description": "With the HTML controls you can easily embed any kind of HTML content into your UI5 mobile application."
			},
			{
				"id": "sap.ui.core.sample.Html.static",
				"name": "Static HTML Provided as a String",
				"description": "This is the simple use case for the HTML control: Some - usually decorative - HTML fragment is specified as a string and set to the content property. Without further configuration, the HTML control will convert this string to DOM nodes whenever it has to render."
			},
			{
				"id": "sap.ui.core.sample.Html.preserveDOM",
				"name": "Static HTML Provided With Preserved DOM",
				"description": "The second use case is similar to the first one: The HTML fragment is specified as a string. The difference is that after the first rendering, the HTML control tries to preserve the created DOM nodes as long as possible. Before each re-rendering step, the existing DOM is preserved in some hidden page area, and then the control and its relatives (parents, siblings) are rendered - this creates a new DOM node hierarchy. After the rendering, the preserved DOM content of the controls is integrated in the newly created DOM tree."
			},
			{
				"id": "sap.ui.core.sample.Icon",
				"name": "Icon",
				"description": "Built with an embedded font, icons scale well, and can be altered with CSS. They can also fire a press event. See the Icon Explorer for more icons."
			},
			{
				"id": "sap.ui.core.sample.TypeInteger",
				"name": "Integer Format",
				"description": "Formats and parses only the integer digits. The decimal digits are ignored."
			},
			{
				"id": "sap.ui.core.sample.TypeFloat",
				"name": "Float Format",
				"description": "Formats and parses both integer and decimal digits."
			},
			{
				"id": "sap.ui.core.sample.TypeCurrency",
				"name": "Currency Format",
				"description": "Formats the number by using the parameters defined for the given currency code. Either currency symbol, currency code or none of them can be included in the final formatted string. It parses the given string into an array which contains both the currency number and currency code."
			},
			{
				"id" : "sap.ui.core.sample.InvisibleMessage",
				"name" : "InvisibleMessage",
				"description" : "The InvisibleMessage provides a way to programmaticaly expose dynamic content changes in a way that can be announced by screen readers."
			},
			{
				"id" : "sap.ui.core.sample.InvisibleText",
				"name" : "InvisibleText",
				"description" : "Many controls provide the associations ariaLabelledBy and ariaDescribedBy for accessibility purposes. The InvisibleText control can be used by application to provide hidden texts on the UI which can be referenced via these associations."
			},
			{
				"id": "sap.ui.core.sample.View.async",
				"name": "Async View loading and rendering",
				"description": "Example for Views with async source loading and the impact on rendering."
			},
			{
				"id": "sap.ui.core.sample.View.preprocessor",
				"name": "Preprocessor example with XMLView",
				"description": "A small example for View Preprocessor usage with XMLViews."
			},
			{
				"id": "sap.ui.core.sample.odata.v4.ConsumeV2Service",
				"name": "OData V2 Service Consumption",
				"description": "Example for OData V2 service consumption with an OData V4 model"
			},
			{
				"id": "sap.ui.core.sample.odata.v4.DeepCreate",
				"name": "Deep Create Handling",
				"description": "Example on how to deal with deep creates in an OData V4 model"
			},
			{
				"id": "sap.ui.core.sample.odata.v4.Draft",
				"name": "Draft Handling and Data Synchronisation",
				"description": "Example of an OData V4 model consuming a draft service that shows how to synchronise data between a list report and an object page"
			},
			{
				"id": "sap.ui.core.sample.odata.v4.ListBinding",
				"name": "Operation Binding",
				"description": "OData V4 model operation bindings example; refer to the Sales Orders example to understand other OData V4 model features"
			},
			{
				"id": "sap.ui.core.sample.odata.v4.SalesOrders",
				"name": "Sales Orders",
				"description": "Example for OData V4 EPM Sales Orders"
			},
			{
				"id": "sap.ui.core.sample.odata.v4.SalesOrdersTemplate",
				"name": "Sales Orders Template",
				"description": "Example for OData V4 EPM Sales Orders using XML Templating"
			},
			{
				"id": "sap.ui.core.sample.odata.v4.SalesOrderTP100_V4",
				"name": "Sales Orders TP100",
				"description": "Example for consuming an OData V4 Service"
			},
			{
				"id": "sap.ui.core.sample.odata.v4.SalesOrderTP100_V2",
				"name": "Sales Orders TP100 via OData V2 Service",
				"description": "Example for consuming an OData V2 Service via an OData V4 Model"
			},
			{
				"id": "sap.ui.core.sample.XMLComposite.01",
				"name": "XMLComposite: basic example",
				"description": "Basic example to show the structure of an XML composite control"
			},
			{
				"id": "sap.ui.core.sample.XMLComposite.02",
				"name": "XMLComposite: example showing usage of aggregation",
				"description": "Example showing how aggregations can be dealt with in an XML composite control"
			},
			{
				"id": "sap.ui.core.sample.ViewTemplate.scenario",
				"name": "XML Templating: demo scenario",
				"description": "Complete demo scenario for XML Templating based on OData V4 annotations"
			},
			{
				"id": "sap.ui.core.sample.ViewTemplate.scenario.extension",
				"name": "XML Templating: demo scenario extension",
				"description": "Complete demo scenario for XML Templating based on OData V4 annotations incl. custom extensions"
			},
			{
				"id": "sap.ui.core.sample.ViewTemplate.tiny",
				"name": "XML Templating: minimal sample",
				"description": "Minimal sample for XML Templating. BEWARE: This is meant to be a pure code sample. (To run it, you would need a proxy which is configured properly.)"
			},
			{
				"id": "sap.ui.core.sample.ViewTemplate.types",
				"name": "XML Templating: UI5 OData types",
				"description": "XML Templating sample with UI5 core primitive OData types"
			},
			{
				"id": "sap.ui.core.sample.ViewTemplate.valuelist",
				"name": "Separate Value List Loading",
				"description": "Separate loading of value lists to reduce size of OData service metadata to be loaded"
			},
			{
				"id": "sap.ui.core.sample.OpaMatchers",
				"name": "Using Matchers",
				"description": "Matchers are used in OPA tests to retrieve controls that have to match a condition, eg: Property matching a value"
			},
			{
				"id": "sap.ui.core.sample.OpaById",
				"name": "Finding controls by id",
				"description": "OPA finds a control by its id, triggers a tap and then finds multiple controls by their ids"
			},
			{
				"id": "sap.ui.core.sample.OpaDynamicWait",
				"name": "How to write nested actions",
				"description": "If you have complex control structures you are able to add actions based on the result of previous actions."
			},
			{
				"id": "sap.ui.core.sample.OpaPageObject",
				"name": "How to structure your OPA tests with Page Objects",
				"description": "If you have multiple pages or UI areas that have several operations, you should place reuse functions in Page Objects to make your OPA tests maintainable. The example shows as well how to share and reuse functionality within and across page objects."
			},
			{
				"id": "sap.ui.core.sample.gherkin.GherkinWithQUnit",
				"name": "Using Gherkin with QUnit",
				"description": "How to combine Gherkin and QUnit to run behavior driven development tests"
			},
			{
				"id": "sap.ui.core.sample.gherkin.GherkinWithOPA5",
				"name": "Using Gherkin with OPA5",
				"description": "How to combine Gherkin and OPA5 to run behavior driven development tests"
			},
			{
				"id": "sap.ui.core.sample.gherkin.GherkinWithPageObjects",
				"name": "Using Gherkin with OPA5 Page Objects",
				"description": "How to combine Gherkin and OPA5 page objects to run behavior driven development tests"
			},
			{
				"id": "sap.ui.core.sample.gherkin.GherkinWithUIComponent",
				"name": "Using Gherkin to load and test a UIComponent",
				"description": "How to use Gherkin and OPA5 to load a UIComponent and run behavior driven development tests on it"
			},
			{
				"id" : "sap.ui.core.sample.ThemeCustomClasses",
				"name" : "Theme-independent CSS-classes",
				"description" : "Sample display of 'sapTheme'-prefixed CSS classes for theme-independent styling of custom HTML/Controls. The set displayed is to be used to style static HTML elements."
			},
			{
				"id" : "sap.ui.core.sample.BasicThemeParameters",
				"name" : "Basic Theme Parameters",
				"description" : "Sample provides a link to the Theme Parameter Toolbox. There you can easily search, preview, and filter semantic theme parameters."
			},
			{
				"id" : "sap.ui.core.sample.PatternMatching",
				"name" : "Route Patterns",
				"description" : "Syntax for the Route pattern property."
			},
			{
				"id" : "sap.ui.core.sample.TargetsStandalone",
				"name" : "Targets without a Router",
				"description" : "If you do not need bookmarks, a router is too complicated you can use Targets to lazy load your views and navigate through your application."
			},
			{
				"id" : "sap.ui.core.sample.RoutingFullscreen",
				"name" : "Routing between Fullscreen pages a simple sample",
				"description" : "A mini app with 2 pages. Both are bookmarkable."
			},
			{
				"id" : "sap.ui.core.sample.RoutingMasterDetail",
				"name" : "Routing in a split screen layout with the master detail pattern",
				"description" : "A mini app with 2 detail pages. Both are bookmarkable."
			},
			{
				"id" : "sap.ui.core.sample.RoutingNestedComponent",
				"name" : "Routing with nested components consuming data from a mocked OData V2 service",
				"description" : "An app that shows how nested components with enabled routing can be used. This app uses a mocked OData V2 service and shows the 'Products', 'Categories' and 'Suppliers' entity sets and the relationships between them."
			},
			{
				"id": "sap.ui.core.sample.matcher.BindingPath",
				"name": "Binding Path Matcher",
				"description": "The binding path matcher checks if a control has a binding with the exact same binding context and/or binding property path in OPA tests."
			},
			{
				"id": "sap.ui.core.sample.matcher.I18NText",
				"name": "I18N Text Matcher",
				"description": "The I18N text matcher checks if a control property has the same value as a text of an I18N file in OPA tests."
			},
			{
				"id": "sap.ui.core.sample.matcher.LabelFor",
				"name": "Label For Matcher",
				"description": "The LabelFor matcher searches for given control associated with labelFor property in OPA tests."
			},
			{
				"id": "sap.ui.core.sample.matcher.Descendant",
				"name": "Descendant Matcher",
				"description": "The descendant matcher checks if a control has a given descendant."
			},
			{
				"id": "sap.ui.core.sample.MessageManager.BasicMessages",
				"name": "Basic Messages",
				"description": "Shows how to create messages on the frontend and display them afterwards. This can be used for form validation on the frontend."
			},
			{
				"id": "sap.ui.core.sample.MessageManager.BasicODataMessages",
				"name": "Basic OData Messages",
				"description": "Uses the OData V2 mock server to simulate an OData response containing different types of server side messages (error, warning, info, success)."
			},
			{
				"id": "sap.ui.core.sample.MessageManager.ODataBackendMessagesComp",
				"name": "OData Messages Component",
				"description": "Shows how to handle OData responses containing server side messages in component based apps. Also illustrates how the sap-message header works."
			},
			{
				"id": "sap.ui.core.sample.OpaStartup.iStartMyUIComponent",
				"name": "Starting a UIComponent",
				"description": "Use this function if you would like to run OPA tests for a single UIComponent (a component which creates entries in the DOM tree)"
			},
			{
				"id": "sap.ui.core.sample.OpaStartup.iStartMyAppInAFrame",
				"name": "Starting an app in an iFrame",
				"description": "Use this function if you would like to run your app isolated from the other tests and your app starts with a html file."
			},
			{
				"id": "sap.ui.core.sample.OpaURLParameters.iStartMyUIComponentWithURLParameters",
				"name": "Starting a UIComponent with URL parameters",
				"description": "Passing URL parameters from configurations when using UIComponent"
			},
			{
				"id": "sap.ui.core.sample.OpaURLParameters.iStartMyAppInAFrameWithURLParameters",
				"name": "Starting an app in an iFrame with passing URL parameters to the iFrame",
				"description": "Passing URL parameters to an app in an iFrame from configuration"
			},
			{
				"id": "sap.ui.core.sample.OpaAction",
				"name": "Simulating user interactions on UI5 controls with OPA5",
				"description": "There are built-in actions for OPA and you are also able to write custom actions if they do not fit the control you are using."
			},
			{
				"id": "sap.ui.core.sample.OpaGetStarted",
				"name": "Simulating a simple backend request with OPA5",
				"description": "This example is complementary to the OPA get started section in the developer guide. It shows how to simulate a simple backend server request with OPA5 and Sinon.JS"
			},
			{
				"id": "sap.ui.core.sample.OpaWithSupportAssistant",
				"name": "Running OPA tests with Support Assistant checks",
				"description": "This sample demonstrates how to extend existing OPA test/journey by plugging calls to Support Assistant extension assertions, with different severity and check scope parameters"
			},
			{
				"id": "sap.ui.core.sample.OpaTestLibrary",
				"name": "Creating and using OPA5 test libraries",
				"description": "This sample demonstrates how to create and use a simple OPA5 test library"
			},
			{
				"id": "sap.ui.core.sample.OpaStaticAreaControls",
				"name": "Retrieving controls located in the static area with OPA5",
				"description": "This sample demonstrates how to locate static area controls with OPA5"
			},
			{
				"id": "sap.ui.core.sample.OpaBusyIndicator",
				"name": "Testing busy controls with OPA5",
				"description": "This sample demonstrates how to test busy controls with OPA5"
			},
			{
				"id": "sap.ui.core.sample.OpaAutoWaitParams",
				"name": "OPA5 autoWait parameters",
				"description": "This sample demonstrates how to take advantage of OPA5 autoWait parameters"
			},
			{
				"id": "sap.ui.core.sample.HyphenationAPI",
				"name": "Hyphenation API",
				"description": "This sample demonstrates usage of the Hyphenation API"
			},
			{
				"id" : "sap.ui.core.sample.Commands",
				"name" : "Commands",
				"description": "This example demonstrates how to define shortcuts using commands in your application"
			}
		]
	}
}
