diff --git a/properties_pane/field_level/fieldLevelConfig.json b/properties_pane/field_level/fieldLevelConfig.json index f04ead2..46c1d45 100644 --- a/properties_pane/field_level/fieldLevelConfig.json +++ b/properties_pane/field_level/fieldLevelConfig.json @@ -250,7 +250,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -626,7 +678,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } } ], "number": [ @@ -954,7 +1058,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } } ], "integer": [ @@ -1282,7 +1438,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } } ], "boolean": [ @@ -1489,7 +1697,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } } ], "null": [ @@ -1650,29 +1910,81 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] - } - ], - "array": [ - { - "fieldName": "Name", - "fieldKeyword": "name", - "fieldType": "coupled", - "disabledOnCondition": [ - { - "key": "subtype", - "value": "anyParameter" - } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { - "fieldName": "Technical name", - "fieldKeyword": "code", - "fieldType": "coupled", - "disabledOnCondition": [ - { - "key": "subtype", - "value": "anyParameter" + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + } + ], + "array": [ + { + "fieldName": "Name", + "fieldKeyword": "name", + "fieldType": "coupled", + "disabledOnCondition": [ + { + "key": "subtype", + "value": "anyParameter" + } + ] + }, + { + "fieldName": "Technical name", + "fieldKeyword": "code", + "fieldType": "coupled", + "disabledOnCondition": [ + { + "key": "subtype", + "value": "anyParameter" } ] }, @@ -1955,8 +2267,74 @@ making sure that you maintain a proper JSON format. } ], "dependency": { - "key": "subtype", - "value": "schema" + "type": "and", + "values": [ + { + "key": "subtype", + "value": "schema" + }, + { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "and", + "values": [ + { + "key": "subtype", + "value": "schema" + }, + { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + ] } } ], @@ -2396,8 +2774,74 @@ making sure that you maintain a proper JSON format. } ], "dependency": { - "key": "subtype", - "value": "schema" + "type": "and", + "values": [ + { + "key": "subtype", + "value": "schema" + }, + { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "and", + "values": [ + { + "key": "subtype", + "value": "schema" + }, + { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + ] } }, "comments", @@ -2462,7 +2906,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -2541,37 +3037,89 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { - "propertyKeyword": "subtype", - "hidden": true - } - ], - "media": [ - { - "fieldName": "Name", - "fieldKeyword": "name", - "fieldType": "select-editable", - "options": [ - "application/json", - "application/xml", - "text/plain", - "text/html", - "text/xml", - "text/markdown", - "application/EDI-X12", - "application/EDIFACT", - "application/atom+xml", - "application/font-woff", - "application/gzip", - "application/javascript", - "application/msword", - "application/ogg", - "application/pdf", - "application/postscript", - "application/soap+xml", - "application/vnd.google-earth.kml+xml", + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyKeyword": "subtype", + "hidden": true + } + ], + "media": [ + { + "fieldName": "Name", + "fieldKeyword": "name", + "fieldType": "select-editable", + "options": [ + "application/json", + "application/xml", + "text/plain", + "text/html", + "text/xml", + "text/markdown", + "application/EDI-X12", + "application/EDIFACT", + "application/atom+xml", + "application/font-woff", + "application/gzip", + "application/javascript", + "application/msword", + "application/ogg", + "application/pdf", + "application/postscript", + "application/soap+xml", + "application/vnd.google-earth.kml+xml", "application/vnd.ms-excel", "application/vnd.ms-powerpoint", "application/x-bittorrent", @@ -2685,7 +3233,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -2756,7 +3356,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -2814,7 +3466,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -2895,7 +3599,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -3356,12 +4112,64 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { - "propertyKeyword": "subtype", - "hidden": true - } + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyKeyword": "subtype", + "hidden": true + } ], "callback": [ { @@ -3424,7 +4232,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } } ], "link": [ @@ -3587,7 +4447,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } } ], "expression": [ @@ -3698,7 +4610,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -3780,7 +4744,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -3862,7 +4878,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", @@ -3944,7 +5012,59 @@ making sure that you maintain a proper JSON format. "template": "textarea", "markdown": false } - ] + ], + "dependency": { + "type": "not", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } + }, + { + "propertyName": "extensions", + "propertyType": "group", + "propertyKeyword": "scopesExtensions", + "enableForReference": true, + "shouldValidate": true, + "propertyTooltip": "", + "structure": [ + { + "propertyName": "pattern", + "propertyKeyword": "extensionPattern", + "shouldValidate": true, + "propertyType": "text", + "regex": "^x-" + }, + { + "propertyName": "value", + "propertyKeyword": "extensionValue", + "propertyValidate": false, + "propertyTooltip": "Popup for multi-line text entry", + "propertyType": "details", + "template": "textarea", + "markdown": false + } + ], + "dependency": { + "type": "or", + "values": [ + { + "key": "refType", + "value": "polyglot" + }, + { + "key": "refType", + "value": "external" + } + ] + } }, { "propertyKeyword": "subtype", diff --git a/reverse_engineering/helpers/dataHelper.js b/reverse_engineering/helpers/dataHelper.js index 6c4730c..619bb46 100644 --- a/reverse_engineering/helpers/dataHelper.js +++ b/reverse_engineering/helpers/dataHelper.js @@ -26,6 +26,10 @@ const getExtensions = schema => { const getExtensionsObject = (data, keyword = 'scopesExtensions') => { const extensions = getExtensions(data); + if (extensions.length === 0) { + return {}; + } + return { [keyword]: extensions }; }; @@ -73,13 +77,14 @@ const getServersData = servers => { } const variables = server.variables ? getServersVariables(server.variables) : []; + const extensions = getExtensions(server); return [ ...accum, { serverURL: server.url, serverDescription: server.description, serverVariables: variables, - scopesExtensions: getExtensions(server), + ...(extensions.length > 0 && { scopesExtensions: extensions }), }, ]; }, []); @@ -88,12 +93,13 @@ const getServersData = servers => { const getServersVariables = variables => { return Object.keys(variables).map(variable => { const variableData = variables[variable]; + const extensions = getExtensions(variables); return { serverVariableName: variable, serverVariableEnum: (variableData.enum || []).map(enumVal => ({ serverVariableEnumValue: enumVal })), serverVariableDefault: variableData.default, serverVariableDescription: variableData.description, - scopesExtensions: getExtensions(variables), + ...(extensions.length > 0 && { scopesExtensions: extensions }), }; }, []); }; @@ -624,7 +630,7 @@ const handleSchemaExtensions = schema => { const mappedExtensionsObject = getExtensionsObject(schema); if ( !Array.isArray(mappedExtensionsObject.scopesExtensions) || - mappedExtensionsObject.scopesExtensions.length === 0 + mappedExtensionsObject.scopesExtensions?.length === 0 ) { return schema; }