diff --git a/src/core/index.js b/src/core/index.js
index 9d910f67243..c08685de771 100644
--- a/src/core/index.js
+++ b/src/core/index.js
@@ -11,6 +11,7 @@ import DeepLinkingPlugin from "./plugins/deep-linking"
import ErrPlugin from "./plugins/err"
import FilterPlugin from "./plugins/filter"
import IconsPlugin from "./plugins/icons"
+import JSONSchema5Plugin from "./plugins/json-schema-5"
import JSONSchema202012Plugin from "./plugins/json-schema-2020-12"
import JSONSchema202012SamplesPlugin from "./plugins/json-schema-2020-12-samples"
import LayoutPlugin from "./plugins/layout"
@@ -257,6 +258,7 @@ SwaggerUI.plugins = {
Err: ErrPlugin,
Filter: FilterPlugin,
Icons: IconsPlugin,
+ JSONSchema5: JSONSchema5Plugin,
JSONSchema5Samples: JSONSchema5SamplesPlugin,
JSONSchema202012: JSONSchema202012Plugin,
JSONSchema202012Samples: JSONSchema202012SamplesPlugin,
diff --git a/src/core/components/array-model.jsx b/src/core/plugins/json-schema-5/components/array-model.jsx
similarity index 100%
rename from src/core/components/array-model.jsx
rename to src/core/plugins/json-schema-5/components/array-model.jsx
diff --git a/src/core/components/enum-model.jsx b/src/core/plugins/json-schema-5/components/enum-model.jsx
similarity index 100%
rename from src/core/components/enum-model.jsx
rename to src/core/plugins/json-schema-5/components/enum-model.jsx
diff --git a/src/core/components/json-schema-components.jsx b/src/core/plugins/json-schema-5/components/json-schema-components.jsx
similarity index 100%
rename from src/core/components/json-schema-components.jsx
rename to src/core/plugins/json-schema-5/components/json-schema-components.jsx
diff --git a/src/core/components/model-collapse.jsx b/src/core/plugins/json-schema-5/components/model-collapse.jsx
similarity index 100%
rename from src/core/components/model-collapse.jsx
rename to src/core/plugins/json-schema-5/components/model-collapse.jsx
diff --git a/src/core/components/model-example.jsx b/src/core/plugins/json-schema-5/components/model-example.jsx
similarity index 100%
rename from src/core/components/model-example.jsx
rename to src/core/plugins/json-schema-5/components/model-example.jsx
diff --git a/src/core/components/model-wrapper.jsx b/src/core/plugins/json-schema-5/components/model-wrapper.jsx
similarity index 100%
rename from src/core/components/model-wrapper.jsx
rename to src/core/plugins/json-schema-5/components/model-wrapper.jsx
diff --git a/src/core/components/model.jsx b/src/core/plugins/json-schema-5/components/model.jsx
similarity index 100%
rename from src/core/components/model.jsx
rename to src/core/plugins/json-schema-5/components/model.jsx
diff --git a/src/core/components/models.jsx b/src/core/plugins/json-schema-5/components/models.jsx
similarity index 100%
rename from src/core/components/models.jsx
rename to src/core/plugins/json-schema-5/components/models.jsx
diff --git a/src/core/components/object-model.jsx b/src/core/plugins/json-schema-5/components/object-model.jsx
similarity index 100%
rename from src/core/components/object-model.jsx
rename to src/core/plugins/json-schema-5/components/object-model.jsx
diff --git a/src/core/components/primitive-model.jsx b/src/core/plugins/json-schema-5/components/primitive-model.jsx
similarity index 100%
rename from src/core/components/primitive-model.jsx
rename to src/core/plugins/json-schema-5/components/primitive-model.jsx
diff --git a/src/core/components/schemes.jsx b/src/core/plugins/json-schema-5/components/schemes.jsx
similarity index 100%
rename from src/core/components/schemes.jsx
rename to src/core/plugins/json-schema-5/components/schemes.jsx
diff --git a/src/core/containers/schemes.jsx b/src/core/plugins/json-schema-5/containers/schemes.jsx
similarity index 100%
rename from src/core/containers/schemes.jsx
rename to src/core/plugins/json-schema-5/containers/schemes.jsx
diff --git a/src/core/plugins/json-schema-5/index.js b/src/core/plugins/json-schema-5/index.js
new file mode 100644
index 00000000000..799c9d5b004
--- /dev/null
+++ b/src/core/plugins/json-schema-5/index.js
@@ -0,0 +1,34 @@
+/**
+ * @prettier
+ */
+import ModelCollapse from "./components/model-collapse"
+import ModelExample from "./components/model-example"
+import ModelWrapper from "./components/model-wrapper"
+import Model from "./components/model"
+import Models from "./components/models"
+import EnumModel from "./components/enum-model"
+import ObjectModel from "./components/object-model"
+import ArrayModel from "./components/array-model"
+import PrimitiveModel from "./components/primitive-model"
+import Schemes from "./components/schemes"
+import SchemesContainer from "./containers/schemes"
+import * as JSONSchemaComponents from "./components/json-schema-components"
+
+const JSONSchema5Plugin = () => ({
+ components: {
+ modelExample: ModelExample,
+ ModelWrapper,
+ ModelCollapse,
+ Model,
+ Models,
+ EnumModel,
+ ObjectModel,
+ ArrayModel,
+ PrimitiveModel,
+ schemes: Schemes,
+ SchemesContainer,
+ ...JSONSchemaComponents,
+ },
+})
+
+export default JSONSchema5Plugin
diff --git a/src/core/plugins/oas3/wrap-components/model.jsx b/src/core/plugins/oas3/wrap-components/model.jsx
index 2476a529e56..d22de8175d8 100644
--- a/src/core/plugins/oas3/wrap-components/model.jsx
+++ b/src/core/plugins/oas3/wrap-components/model.jsx
@@ -1,7 +1,6 @@
import React, { Component } from "react"
import PropTypes from "prop-types"
import { OAS3ComponentWrapFactory } from "../helpers"
-import Model from "core/components/model"
class ModelComponent extends Component {
static propTypes = {
@@ -13,10 +12,11 @@ class ModelComponent extends Component {
expandDepth: PropTypes.number,
includeReadOnly: PropTypes.bool,
includeWriteOnly: PropTypes.bool,
+ Ori: PropTypes.func.isRequired,
}
render(){
- let { getConfigs, schema } = this.props
+ let { getConfigs, schema, Ori: Model } = this.props
let classes = ["model-box"]
let isDeprecated = schema.get("deprecated") === true
let message = null
diff --git a/src/core/presets/base/index.js b/src/core/presets/base/index.js
index 7ee4891a7bb..b220c5949fd 100644
--- a/src/core/presets/base/index.js
+++ b/src/core/presets/base/index.js
@@ -11,6 +11,7 @@ import LayoutPlugin from "core/plugins/layout"
import LogsPlugin from "core/plugins/logs"
import OnCompletePlugin from "core/plugins/on-complete"
import RequestSnippetsPlugin from "core/plugins/request-snippets"
+import JSONSchema5Plugin from "core/plugins/json-schema-5"
import JSONSchema5SamplesPlugin from "core/plugins/json-schema-5-samples"
import SpecPlugin from "core/plugins/spec"
import SwaggerClientPlugin from "core/plugins/swagger-client"
@@ -23,7 +24,6 @@ import SafeRenderPlugin from "core/plugins/safe-render"
// ad-hoc plugins
import CoreComponentsPlugin from "core/presets/base/plugins/core-components"
import FormComponentsPlugin from "core/presets/base/plugins/form-components"
-import JSONSchemaComponentsPlugin from "core/presets/base/plugins/json-schema-components"
const BasePreset = () => [
ConfigsPlugin,
@@ -35,11 +35,11 @@ const BasePreset = () => [
ErrPlugin,
IconsPlugin,
LayoutPlugin,
+ JSONSchema5Plugin,
JSONSchema5SamplesPlugin,
CoreComponentsPlugin,
FormComponentsPlugin,
SwaggerClientPlugin,
- JSONSchemaComponentsPlugin,
AuthPlugin,
DownloadUrlPlugin,
DeepLinkingPlugin,
diff --git a/src/core/presets/base/plugins/core-components/index.js b/src/core/presets/base/plugins/core-components/index.js
index f4836bc25ca..048bc576e46 100644
--- a/src/core/presets/base/plugins/core-components/index.js
+++ b/src/core/presets/base/plugins/core-components/index.js
@@ -51,17 +51,6 @@ import Footer from "core/components/footer"
import FilterContainer from "core/containers/filter"
import ParamBody from "core/components/param-body"
import Curl from "core/components/curl"
-import Schemes from "core/components/schemes"
-import SchemesContainer from "core/containers/schemes"
-import ModelCollapse from "core/components/model-collapse"
-import ModelExample from "core/components/model-example"
-import ModelWrapper from "core/components/model-wrapper"
-import Model from "core/components/model"
-import Models from "core/components/models"
-import EnumModel from "core/components/enum-model"
-import ObjectModel from "core/components/object-model"
-import ArrayModel from "core/components/array-model"
-import PrimitiveModel from "core/components/primitive-model"
import Property from "core/components/property"
import TryItOutButton from "core/components/try-it-out-button"
import VersionPragmaFilter from "core/components/version-pragma-filter"
@@ -117,17 +106,6 @@ const CoreComponentsPlugin = () => ({
FilterContainer,
ParamBody: ParamBody,
curl: Curl,
- schemes: Schemes,
- SchemesContainer,
- modelExample: ModelExample,
- ModelWrapper,
- ModelCollapse,
- Model,
- Models,
- EnumModel,
- ObjectModel,
- ArrayModel,
- PrimitiveModel,
Property,
TryItOutButton,
Markdown,
diff --git a/src/core/presets/base/plugins/json-schema-components/index.js b/src/core/presets/base/plugins/json-schema-components/index.js
deleted file mode 100644
index aa1c40a071f..00000000000
--- a/src/core/presets/base/plugins/json-schema-components/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * @prettier
- */
-import * as JSONSchemaComponents from "core/components/json-schema-components"
-
-const JSONSchemaComponentsPlugin = () => ({
- components: { ...JSONSchemaComponents },
-})
-
-export default JSONSchemaComponentsPlugin
diff --git a/test/unit/core/helpers/get-model-name.js b/test/unit/core/helpers/get-model-name.js
index 2dbdd99c735..63407055702 100644
--- a/test/unit/core/helpers/get-model-name.js
+++ b/test/unit/core/helpers/get-model-name.js
@@ -2,7 +2,7 @@
* @prettier
*/
-import Model from "../../../../src/core/components/model"
+import Model from "../../../../src/core/plugins/json-schema-5/components/model"
describe("getModelName", () => {
const model = new Model()
diff --git a/test/unit/components/json-schema-form.jsx b/test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx
similarity index 98%
rename from test/unit/components/json-schema-form.jsx
rename to test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx
index 14fc629f8d1..488589dc724 100644
--- a/test/unit/components/json-schema-form.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx
@@ -2,7 +2,7 @@ import React from "react"
import Immutable, { List } from "immutable"
import { Select, Input, TextArea } from "core/components/layout-utils"
import { mount, render } from "enzyme"
-import * as JsonSchemaComponents from "core/components/json-schema-components"
+import * as JsonSchemaComponents from "core/plugins/json-schema-5/components/json-schema-components"
const components = {...JsonSchemaComponents, Select, Input, TextArea}
diff --git a/test/unit/components/model-example.jsx b/test/unit/core/plugins/json-schema-5/components/model-example.jsx
similarity index 95%
rename from test/unit/components/model-example.jsx
rename to test/unit/core/plugins/json-schema-5/components/model-example.jsx
index 3aa78544aee..737be87af9b 100644
--- a/test/unit/components/model-example.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/model-example.jsx
@@ -1,7 +1,7 @@
import React from "react"
import { shallow } from "enzyme"
-import ModelExample from "core/components/model-example"
-import ModelComponent from "core/components/model-wrapper"
+import ModelExample from "core/plugins/json-schema-5/components/model-example"
+import ModelComponent from "core/plugins/json-schema-5/components/model-wrapper"
describe("", function(){
let components, props
diff --git a/test/unit/components/models.jsx b/test/unit/core/plugins/json-schema-5/components/models.jsx
similarity index 84%
rename from test/unit/components/models.jsx
rename to test/unit/core/plugins/json-schema-5/components/models.jsx
index b86157ae540..3203f486376 100644
--- a/test/unit/components/models.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/models.jsx
@@ -1,9 +1,9 @@
import React from "react"
import { shallow } from "enzyme"
import { fromJS, Map } from "immutable"
-import Models from "core/components/models"
-import ModelCollapse from "core/components/model-collapse"
-import ModelComponent from "core/components/model-wrapper"
+import Models from "core/plugins/json-schema-5/components/models"
+import ModelCollapse from "core/plugins/json-schema-5/components/model-collapse"
+import ModelComponent from "core/plugins/json-schema-5/components/model-wrapper"
describe("", function(){
const dummyComponent = () => null
diff --git a/test/unit/components/object-model.jsx b/test/unit/core/plugins/json-schema-5/components/object-model.jsx
similarity index 94%
rename from test/unit/components/object-model.jsx
rename to test/unit/core/plugins/json-schema-5/components/object-model.jsx
index 478a49c0e5f..9f4c5f72382 100644
--- a/test/unit/components/object-model.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/object-model.jsx
@@ -1,11 +1,11 @@
import React from "react"
import { shallow } from "enzyme"
import { List } from "immutable"
-import ObjectModel from "core/components/object-model"
+import ObjectModel from "core/plugins/json-schema-5/components/object-model"
// import ModelExample from "core/components/model-example"
import Immutable from "immutable"
-import Model from "core/components/model"
-import ModelCollapse from "core/components/model-collapse"
+import Model from "core/plugins/json-schema-5/components/model"
+import ModelCollapse from "core/plugins/json-schema-5/components/model-collapse"
import Property from "core/components/property"
// import { inferSchema } from "core/plugins/samples/fn"
diff --git a/test/unit/components/primitive-model.jsx b/test/unit/core/plugins/json-schema-5/components/primitive-model.jsx
similarity index 90%
rename from test/unit/components/primitive-model.jsx
rename to test/unit/core/plugins/json-schema-5/components/primitive-model.jsx
index b021667732e..6fd3d529b2b 100644
--- a/test/unit/components/primitive-model.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/primitive-model.jsx
@@ -1,8 +1,8 @@
import React from "react"
import { shallow } from "enzyme"
import { fromJS } from "immutable"
-import PrimitiveModel from "core/components/primitive-model"
-import ModelCollapse from "core/components/model-collapse"
+import PrimitiveModel from "core/plugins/json-schema-5/components/primitive-model"
+import ModelCollapse from "core/plugins/json-schema-5/components/model-collapse"
describe("", function () {
const dummyComponent = () => null
diff --git a/test/unit/components/response.jsx b/test/unit/core/plugins/json-schema-5/components/response.jsx
similarity index 96%
rename from test/unit/components/response.jsx
rename to test/unit/core/plugins/json-schema-5/components/response.jsx
index 626b16ab97f..f5eed6a0edb 100644
--- a/test/unit/components/response.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/response.jsx
@@ -6,7 +6,7 @@ import { shallow } from "enzyme"
import { fromJS, List } from "immutable"
import Response from "core/components/response"
-import ModelExample from "core/components/model-example"
+import ModelExample from "core/plugins/json-schema-5/components/model-example"
import {
inferSchema,
memoizedSampleFromSchema,
diff --git a/test/unit/components/schemes-wrapper.jsx b/test/unit/core/plugins/json-schema-5/components/schemes-wrapper.jsx
similarity index 94%
rename from test/unit/components/schemes-wrapper.jsx
rename to test/unit/core/plugins/json-schema-5/components/schemes-wrapper.jsx
index 01348343671..55352232286 100644
--- a/test/unit/components/schemes-wrapper.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/schemes-wrapper.jsx
@@ -1,8 +1,8 @@
import React from "react"
import { mount } from "enzyme"
import { fromJS } from "immutable"
-import SchemesContainer from "core/containers/schemes"
-import Schemes from "core/components/schemes"
+import SchemesContainer from "core/plugins/json-schema-5/containers/schemes"
+import Schemes from "core/plugins/json-schema-5/components/schemes"
import { Col } from "core/components/layout-utils"
describe("", function(){
diff --git a/test/unit/components/schemes.jsx b/test/unit/core/plugins/json-schema-5/components/schemes.jsx
similarity index 96%
rename from test/unit/components/schemes.jsx
rename to test/unit/core/plugins/json-schema-5/components/schemes.jsx
index 57a2cf4fe47..9709419a765 100644
--- a/test/unit/components/schemes.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/schemes.jsx
@@ -1,7 +1,7 @@
import React from "react"
import { shallow } from "enzyme"
import { fromJS } from "immutable"
-import Schemes from "core/components/schemes"
+import Schemes from "core/plugins/json-schema-5/components/schemes"
describe("", function(){
it("calls props.specActions.setScheme() when no currentScheme is selected", function(){