@stoplight/elements-core 7.7.7 → 7.7.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/context/InlineRefResolver.d.ts +1 -0
- package/index.esm.js +19 -5
- package/index.js +19 -5
- package/index.mjs +19 -5
- package/package.json +2 -1
|
@@ -8,4 +8,5 @@ export declare const InlineRefResolverProvider: React.FC<InlineRefResolverProvid
|
|
|
8
8
|
export declare const useInlineRefResolver: () => ReferenceResolver | undefined;
|
|
9
9
|
export declare const useDocument: () => object | undefined;
|
|
10
10
|
export declare const useResolvedObject: (currentObject: object) => object;
|
|
11
|
+
export declare const useSchemaInlineRefResolver: () => ReferenceResolver;
|
|
11
12
|
export {};
|
package/index.esm.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __rest, __awaiter } from 'tslib';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useContext, useMemo } from 'react';
|
|
4
|
+
import { convertToJsonSchema } from '@stoplight/http-spec/oas';
|
|
4
5
|
import { resolveInlineRef, hasRef, isPlainObject as isPlainObject$1, safeParse, safeStringify } from '@stoplight/json';
|
|
5
6
|
import isArray from 'lodash/isArray.js';
|
|
6
7
|
import isPlainObject from 'lodash/isPlainObject.js';
|
|
@@ -123,6 +124,19 @@ const useResolvedObject = (currentObject) => {
|
|
|
123
124
|
const document = useDocument();
|
|
124
125
|
const resolver = useInlineRefResolver();
|
|
125
126
|
return React.useMemo(() => createResolvedObject(currentObject, { contextObject: document, resolver }), [currentObject, document, resolver]);
|
|
127
|
+
};
|
|
128
|
+
const useSchemaInlineRefResolver = () => {
|
|
129
|
+
const document = useDocument();
|
|
130
|
+
const resolver = useInlineRefResolver();
|
|
131
|
+
return React.useCallback((...args) => {
|
|
132
|
+
const resolved = resolver === null || resolver === void 0 ? void 0 : resolver(...args);
|
|
133
|
+
if (!isPlainObject$1(resolved)) {
|
|
134
|
+
return resolved;
|
|
135
|
+
}
|
|
136
|
+
const converted = convertToJsonSchema((document !== null && document !== void 0 ? document : {}), resolved);
|
|
137
|
+
delete converted.$schema;
|
|
138
|
+
return converted;
|
|
139
|
+
}, [document, resolver]);
|
|
126
140
|
};
|
|
127
141
|
|
|
128
142
|
const DEFAULT_CONTEXT = {};
|
|
@@ -2142,7 +2156,7 @@ const isBodyEmpty = (body) => {
|
|
|
2142
2156
|
};
|
|
2143
2157
|
const Body = ({ body, onChange }) => {
|
|
2144
2158
|
var _a;
|
|
2145
|
-
const refResolver =
|
|
2159
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2146
2160
|
const [chosenContent, setChosenContent] = React.useState(0);
|
|
2147
2161
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2148
2162
|
React.useEffect(() => {
|
|
@@ -2184,7 +2198,7 @@ const defaultStyle = {
|
|
|
2184
2198
|
};
|
|
2185
2199
|
const Parameters = ({ parameters, parameterType }) => {
|
|
2186
2200
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2187
|
-
const refResolver =
|
|
2201
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2188
2202
|
const schema = React.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
|
|
2189
2203
|
if (!schema)
|
|
2190
2204
|
return null;
|
|
@@ -2289,7 +2303,7 @@ Responses.displayName = 'HttpOperation.Responses';
|
|
|
2289
2303
|
const Response = ({ response, onMediaTypeChange }) => {
|
|
2290
2304
|
const { contents = [], headers = [], description } = response;
|
|
2291
2305
|
const [chosenContent, setChosenContent] = React.useState(0);
|
|
2292
|
-
const refResolver =
|
|
2306
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2293
2307
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2294
2308
|
const responseContent = contents[chosenContent];
|
|
2295
2309
|
const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
|
|
@@ -2531,7 +2545,7 @@ function useIsCompact(layoutOptions) {
|
|
|
2531
2545
|
|
|
2532
2546
|
const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, }) => {
|
|
2533
2547
|
var _a, _b;
|
|
2534
|
-
const resolveRef =
|
|
2548
|
+
const resolveRef = useSchemaInlineRefResolver();
|
|
2535
2549
|
const data = useResolvedObject(unresolvedData);
|
|
2536
2550
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2537
2551
|
const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
|
|
@@ -2697,7 +2711,7 @@ function isPartialHttpRequest(maybeHttpRequest) {
|
|
|
2697
2711
|
typeof maybeHttpRequest['url'] === 'string');
|
|
2698
2712
|
}
|
|
2699
2713
|
const SchemaAndDescription = ({ title: titleProp, schema }) => {
|
|
2700
|
-
const resolveRef =
|
|
2714
|
+
const resolveRef = useSchemaInlineRefResolver();
|
|
2701
2715
|
const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
|
|
2702
2716
|
return (React__default.createElement(Box, { py: 2 },
|
|
2703
2717
|
title && (React__default.createElement(Flex, { alignItems: "center", p: 2 },
|
package/index.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var React = require('react');
|
|
7
|
+
var oas = require('@stoplight/http-spec/oas');
|
|
7
8
|
var json = require('@stoplight/json');
|
|
8
9
|
var isArray = require('lodash/isArray.js');
|
|
9
10
|
var isPlainObject = require('lodash/isPlainObject.js');
|
|
@@ -177,6 +178,19 @@ const useResolvedObject = (currentObject) => {
|
|
|
177
178
|
const document = useDocument();
|
|
178
179
|
const resolver = useInlineRefResolver();
|
|
179
180
|
return React__namespace.useMemo(() => createResolvedObject(currentObject, { contextObject: document, resolver }), [currentObject, document, resolver]);
|
|
181
|
+
};
|
|
182
|
+
const useSchemaInlineRefResolver = () => {
|
|
183
|
+
const document = useDocument();
|
|
184
|
+
const resolver = useInlineRefResolver();
|
|
185
|
+
return React__namespace.useCallback((...args) => {
|
|
186
|
+
const resolved = resolver === null || resolver === void 0 ? void 0 : resolver(...args);
|
|
187
|
+
if (!json.isPlainObject(resolved)) {
|
|
188
|
+
return resolved;
|
|
189
|
+
}
|
|
190
|
+
const converted = oas.convertToJsonSchema((document !== null && document !== void 0 ? document : {}), resolved);
|
|
191
|
+
delete converted.$schema;
|
|
192
|
+
return converted;
|
|
193
|
+
}, [document, resolver]);
|
|
180
194
|
};
|
|
181
195
|
|
|
182
196
|
const DEFAULT_CONTEXT = {};
|
|
@@ -2196,7 +2210,7 @@ const isBodyEmpty = (body) => {
|
|
|
2196
2210
|
};
|
|
2197
2211
|
const Body = ({ body, onChange }) => {
|
|
2198
2212
|
var _a;
|
|
2199
|
-
const refResolver =
|
|
2213
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2200
2214
|
const [chosenContent, setChosenContent] = React__namespace.useState(0);
|
|
2201
2215
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2202
2216
|
React__namespace.useEffect(() => {
|
|
@@ -2238,7 +2252,7 @@ const defaultStyle = {
|
|
|
2238
2252
|
};
|
|
2239
2253
|
const Parameters = ({ parameters, parameterType }) => {
|
|
2240
2254
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2241
|
-
const refResolver =
|
|
2255
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2242
2256
|
const schema = React__namespace.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
|
|
2243
2257
|
if (!schema)
|
|
2244
2258
|
return null;
|
|
@@ -2343,7 +2357,7 @@ Responses.displayName = 'HttpOperation.Responses';
|
|
|
2343
2357
|
const Response = ({ response, onMediaTypeChange }) => {
|
|
2344
2358
|
const { contents = [], headers = [], description } = response;
|
|
2345
2359
|
const [chosenContent, setChosenContent] = React__namespace.useState(0);
|
|
2346
|
-
const refResolver =
|
|
2360
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2347
2361
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2348
2362
|
const responseContent = contents[chosenContent];
|
|
2349
2363
|
const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
|
|
@@ -2585,7 +2599,7 @@ function useIsCompact(layoutOptions) {
|
|
|
2585
2599
|
|
|
2586
2600
|
const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, }) => {
|
|
2587
2601
|
var _a, _b;
|
|
2588
|
-
const resolveRef =
|
|
2602
|
+
const resolveRef = useSchemaInlineRefResolver();
|
|
2589
2603
|
const data = useResolvedObject(unresolvedData);
|
|
2590
2604
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2591
2605
|
const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
|
|
@@ -2751,7 +2765,7 @@ function isPartialHttpRequest(maybeHttpRequest) {
|
|
|
2751
2765
|
typeof maybeHttpRequest['url'] === 'string');
|
|
2752
2766
|
}
|
|
2753
2767
|
const SchemaAndDescription = ({ title: titleProp, schema }) => {
|
|
2754
|
-
const resolveRef =
|
|
2768
|
+
const resolveRef = useSchemaInlineRefResolver();
|
|
2755
2769
|
const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
|
|
2756
2770
|
return (React__default["default"].createElement(mosaic.Box, { py: 2 },
|
|
2757
2771
|
title && (React__default["default"].createElement(mosaic.Flex, { alignItems: "center", p: 2 },
|
package/index.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __rest, __awaiter } from 'tslib';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useContext, useMemo } from 'react';
|
|
4
|
+
import { convertToJsonSchema } from '@stoplight/http-spec/oas';
|
|
4
5
|
import { resolveInlineRef, hasRef, isPlainObject as isPlainObject$1, safeParse, safeStringify } from '@stoplight/json';
|
|
5
6
|
import isArray from 'lodash/isArray.js';
|
|
6
7
|
import isPlainObject from 'lodash/isPlainObject.js';
|
|
@@ -123,6 +124,19 @@ const useResolvedObject = (currentObject) => {
|
|
|
123
124
|
const document = useDocument();
|
|
124
125
|
const resolver = useInlineRefResolver();
|
|
125
126
|
return React.useMemo(() => createResolvedObject(currentObject, { contextObject: document, resolver }), [currentObject, document, resolver]);
|
|
127
|
+
};
|
|
128
|
+
const useSchemaInlineRefResolver = () => {
|
|
129
|
+
const document = useDocument();
|
|
130
|
+
const resolver = useInlineRefResolver();
|
|
131
|
+
return React.useCallback((...args) => {
|
|
132
|
+
const resolved = resolver === null || resolver === void 0 ? void 0 : resolver(...args);
|
|
133
|
+
if (!isPlainObject$1(resolved)) {
|
|
134
|
+
return resolved;
|
|
135
|
+
}
|
|
136
|
+
const converted = convertToJsonSchema((document !== null && document !== void 0 ? document : {}), resolved);
|
|
137
|
+
delete converted.$schema;
|
|
138
|
+
return converted;
|
|
139
|
+
}, [document, resolver]);
|
|
126
140
|
};
|
|
127
141
|
|
|
128
142
|
const DEFAULT_CONTEXT = {};
|
|
@@ -2142,7 +2156,7 @@ const isBodyEmpty = (body) => {
|
|
|
2142
2156
|
};
|
|
2143
2157
|
const Body = ({ body, onChange }) => {
|
|
2144
2158
|
var _a;
|
|
2145
|
-
const refResolver =
|
|
2159
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2146
2160
|
const [chosenContent, setChosenContent] = React.useState(0);
|
|
2147
2161
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2148
2162
|
React.useEffect(() => {
|
|
@@ -2184,7 +2198,7 @@ const defaultStyle = {
|
|
|
2184
2198
|
};
|
|
2185
2199
|
const Parameters = ({ parameters, parameterType }) => {
|
|
2186
2200
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2187
|
-
const refResolver =
|
|
2201
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2188
2202
|
const schema = React.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
|
|
2189
2203
|
if (!schema)
|
|
2190
2204
|
return null;
|
|
@@ -2289,7 +2303,7 @@ Responses.displayName = 'HttpOperation.Responses';
|
|
|
2289
2303
|
const Response = ({ response, onMediaTypeChange }) => {
|
|
2290
2304
|
const { contents = [], headers = [], description } = response;
|
|
2291
2305
|
const [chosenContent, setChosenContent] = React.useState(0);
|
|
2292
|
-
const refResolver =
|
|
2306
|
+
const refResolver = useSchemaInlineRefResolver();
|
|
2293
2307
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2294
2308
|
const responseContent = contents[chosenContent];
|
|
2295
2309
|
const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
|
|
@@ -2531,7 +2545,7 @@ function useIsCompact(layoutOptions) {
|
|
|
2531
2545
|
|
|
2532
2546
|
const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, }) => {
|
|
2533
2547
|
var _a, _b;
|
|
2534
|
-
const resolveRef =
|
|
2548
|
+
const resolveRef = useSchemaInlineRefResolver();
|
|
2535
2549
|
const data = useResolvedObject(unresolvedData);
|
|
2536
2550
|
const { nodeHasChanged } = useOptionsCtx();
|
|
2537
2551
|
const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
|
|
@@ -2697,7 +2711,7 @@ function isPartialHttpRequest(maybeHttpRequest) {
|
|
|
2697
2711
|
typeof maybeHttpRequest['url'] === 'string');
|
|
2698
2712
|
}
|
|
2699
2713
|
const SchemaAndDescription = ({ title: titleProp, schema }) => {
|
|
2700
|
-
const resolveRef =
|
|
2714
|
+
const resolveRef = useSchemaInlineRefResolver();
|
|
2701
2715
|
const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
|
|
2702
2716
|
return (React__default.createElement(Box, { py: 2 },
|
|
2703
2717
|
title && (React__default.createElement(Flex, { alignItems: "center", p: 2 },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stoplight/elements-core",
|
|
3
|
-
"version": "7.7.
|
|
3
|
+
"version": "7.7.8",
|
|
4
4
|
"main": "./index.js",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"web-components.min.js",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"react-dom": ">=16.8"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
+
"@stoplight/http-spec": "^5.1.4",
|
|
27
28
|
"@stoplight/json": "^3.18.1",
|
|
28
29
|
"@stoplight/json-schema-ref-parser": "^9.0.5",
|
|
29
30
|
"@stoplight/json-schema-sampler": "0.2.3",
|