@stoplight/elements-core 9.0.5 → 9.0.7

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/index.js CHANGED
@@ -136,8 +136,6 @@ const isResolvedObjectProxy = (someObject) => {
136
136
  return !!someObject[originalObjectSymbol];
137
137
  };
138
138
  const getOriginalObject = (resolvedObject) => {
139
- if (!resolvedObject)
140
- return resolvedObject;
141
139
  const originalObject = resolvedObject[originalObjectSymbol] || resolvedObject;
142
140
  if (!originalObject) {
143
141
  return resolvedObject;
@@ -2758,349 +2756,13 @@ const PanelContent = ({ schemes }) => {
2758
2756
  })));
2759
2757
  };
2760
2758
 
2761
- const TYPES = ['string', 'integer', 'boolean', 'any', 'number'];
2762
- function resolvePointer(obj, pointer) {
2763
- const parts = pointer.replace(/^#\//, '').split('/');
2764
- return parts.reduce((acc, key) => acc && acc[key], obj);
2765
- }
2766
- function detectCircularPath(path) {
2767
- const ignored = ['properties', 'items'];
2768
- const parts = path.split('/').filter(part => !ignored.includes(part));
2769
- for (let i = 0; i < parts.length - 1; i++) {
2770
- const current = parts[i];
2771
- const rest = parts.slice(i + 1);
2772
- if (rest.includes(current)) {
2773
- return true;
2774
- }
2775
- }
2776
- return false;
2777
- }
2778
- function dereference(node, root, visited = new WeakSet(), depth = 0, maxDepth = 10) {
2779
- if (!node || typeof node !== 'object')
2780
- return node;
2781
- if (depth > maxDepth)
2782
- return node;
2783
- if (node.$ref || node['x-iata-$ref']) {
2784
- let refPath = node.$ref || node['x-iata-$ref'];
2785
- if (refPath.includes('#/%24defs')) {
2786
- refPath = refPath.replace('#/%24defs', '$defs');
2787
- }
2788
- else {
2789
- refPath = refPath.replace('__bundled__', 'definitions');
2790
- }
2791
- if (visited.has(node))
2792
- return { circular: true, $ref: refPath, title: node.title, type: 'any', description: node.description };
2793
- visited.add(node);
2794
- const target = resolvePointer(root, refPath);
2795
- if (!target)
2796
- return node;
2797
- const result = Object.assign({}, target);
2798
- if ('description' in node)
2799
- result.description = node.description;
2800
- if ('title' in node)
2801
- result.title = node.title;
2802
- return dereference(result, root, visited, depth + 1, maxDepth);
2803
- }
2804
- if (Array.isArray(node)) {
2805
- return node.map(item => dereference(item, root, visited, depth + 1, maxDepth));
2806
- }
2807
- const result = {};
2808
- for (const key in node) {
2809
- result[key] = dereference(node[key], root, visited, depth + 1, maxDepth);
2810
- }
2811
- return result;
2812
- }
2813
- const trimSlashes = (str) => {
2814
- return str.replace(/^\/|\/$/g, '');
2815
- };
2816
- function isPropertiesAllHidden(path, hideData) {
2817
- const current = trimSlashes(path);
2818
- const parts = current.split('/');
2819
- for (let i = parts.length; i >= 2; i--) {
2820
- if (parts[i - 1] === 'properties') {
2821
- const ancestorPropPath = parts.slice(0, i).join('/');
2822
- const block = hideData.find(h => trimSlashes(h.path) === ancestorPropPath && ancestorPropPath.endsWith('/properties'));
2823
- if (block && block.required === undefined) {
2824
- return true;
2825
- }
2826
- }
2827
- }
2828
- return false;
2829
- }
2830
- function isRequiredOverride(path, hideData) {
2831
- const entry = hideData.find(h => trimSlashes(h.path) === trimSlashes(path));
2832
- return entry && typeof entry.required === 'boolean' ? entry.required : undefined;
2833
- }
2834
- function isPathHidden(path, hideData) {
2835
- const normalizedPath = trimSlashes(path);
2836
- const direct = hideData.find(h => trimSlashes(h.path) === normalizedPath);
2837
- if (direct && direct.required === undefined)
2838
- return true;
2839
- if (isPropertiesAllHidden(path, hideData))
2840
- return true;
2841
- for (const h of hideData) {
2842
- const hPath = trimSlashes(h.path);
2843
- if (h.required !== undefined)
2844
- continue;
2845
- if (normalizedPath.length > hPath.length &&
2846
- normalizedPath.startsWith(hPath) &&
2847
- (hPath.endsWith('/items') || (hPath.match(/\/items\/[^\/]+$/) && normalizedPath.startsWith(hPath + '/')))) {
2848
- return true;
2849
- }
2850
- }
2851
- return false;
2852
- }
2853
- const LazySchemaTreePreviewer = ({ schema, root = schema, title, level = 1, path = '', hideData = [], parentRequired, propertyKey, _subType, }) => {
2854
- var _a, _b, _c, _d;
2855
- const [expanded, setExpanded] = React.useState(false);
2856
- const [selectedSchemaIndex, setSelectedSchemaIndex] = React.useState(0);
2857
- const [showSchemaDropdown, setShowSchemaDropdown] = React.useState(false);
2858
- const [isHoveringSelector, setIsHoveringSelector] = React.useState(false);
2859
- const isRoot = level === 1 && (title === undefined || path === '');
2860
- React.useState(() => {
2861
- const disabledPaths = hideData || [];
2862
- const initialState = {};
2863
- if (disabledPaths) {
2864
- for (const p of disabledPaths) {
2865
- const { path } = p;
2866
- initialState[path] = { checked: false, required: 0 };
2867
- }
2868
- }
2869
- return initialState;
2870
- });
2871
- React.useEffect(() => {
2872
- setSelectedSchemaIndex(0);
2873
- }, [schema === null || schema === void 0 ? void 0 : schema.anyOf, schema === null || schema === void 0 ? void 0 : schema.oneOf]);
2874
- const thisNodeRequiredOverride = isRequiredOverride(path, hideData);
2875
- const shouldHideAllChildren = (isRoot && hideData.some(h => trimSlashes(h.path) === 'properties' && h.required === undefined)) ||
2876
- (!isRoot && isPropertiesAllHidden(path, hideData));
2877
- const shouldHideNode = React.useMemo(() => {
2878
- if (isRoot)
2879
- return false;
2880
- if (isPathHidden(path, hideData) && thisNodeRequiredOverride === undefined)
2881
- return true;
2882
- return false;
2883
- }, [path, hideData, isRoot, thisNodeRequiredOverride]);
2884
- if (!schema || shouldHideNode) {
2885
- return null;
2886
- }
2887
- const displayTitle = level === 1 && (title === undefined || path === '') ? '' : (_a = title !== null && title !== void 0 ? title : schema === null || schema === void 0 ? void 0 : schema.title) !== null && _a !== void 0 ? _a : 'Node';
2888
- const handleToggle = () => {
2889
- const circular = detectCircularPath(path);
2890
- if (!circular) {
2891
- setExpanded(prev => !prev);
2892
- }
2893
- };
2894
- const renderChildren = () => {
2895
- var _a, _b, _c, _d;
2896
- if (shouldHideAllChildren)
2897
- return null;
2898
- if (!expanded && !isRoot)
2899
- return null;
2900
- const children = [];
2901
- if ((schema === null || schema === void 0 ? void 0 : schema.type) === 'object' && ((schema === null || schema === void 0 ? void 0 : schema.properties) || (schema === null || schema === void 0 ? void 0 : schema.allOf) || (schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf))) {
2902
- let props = schema === null || schema === void 0 ? void 0 : schema.properties;
2903
- if (schema === null || schema === void 0 ? void 0 : schema.allOf) {
2904
- schema === null || schema === void 0 ? void 0 : schema.allOf.forEach((item) => {
2905
- props = Object.assign(Object.assign({}, props), item.properties);
2906
- });
2907
- }
2908
- if ((schema === null || schema === void 0 ? void 0 : schema.anyOf) && (schema === null || schema === void 0 ? void 0 : schema.anyOf.length) > 0) {
2909
- const selectedSchema = (schema === null || schema === void 0 ? void 0 : schema.anyOf[selectedSchemaIndex]) || (schema === null || schema === void 0 ? void 0 : schema.anyOf[0]);
2910
- props = Object.assign(Object.assign({}, props), selectedSchema.properties);
2911
- }
2912
- if ((schema === null || schema === void 0 ? void 0 : schema.oneOf) && (schema === null || schema === void 0 ? void 0 : schema.oneOf.length) > 0) {
2913
- const selectedSchema = (schema === null || schema === void 0 ? void 0 : schema.oneOf[selectedSchemaIndex]) || (schema === null || schema === void 0 ? void 0 : schema.oneOf[0]);
2914
- props = Object.assign(Object.assign({}, props), selectedSchema.properties);
2915
- }
2916
- for (const [key, child] of Object.entries(props || {})) {
2917
- const childPath = `${path}/properties/${key}`;
2918
- const childRequiredOverride = isRequiredOverride(childPath, hideData);
2919
- const shouldHideChild = isPathHidden(childPath, hideData) && childRequiredOverride === undefined;
2920
- const resolved = dereference(child, root);
2921
- if (!shouldHideChild) {
2922
- children.push(React.createElement("li", { key: key },
2923
- React.createElement(LazySchemaTreePreviewer, { schema: resolved, root: root, title: key, level: level + 1, path: childPath, hideData: hideData, parentRequired: schema === null || schema === void 0 ? void 0 : schema.required, propertyKey: key, _subType: (_a = resolved === null || resolved === void 0 ? void 0 : resolved.items) === null || _a === void 0 ? void 0 : _a.type })));
2924
- }
2925
- }
2926
- }
2927
- else if ((schema === null || schema === void 0 ? void 0 : schema.type) === 'array' &&
2928
- (schema === null || schema === void 0 ? void 0 : schema.items) &&
2929
- Object.keys(schema === null || schema === void 0 ? void 0 : schema.items).length > 0 &&
2930
- !((_b = schema === null || schema === void 0 ? void 0 : schema.items) === null || _b === void 0 ? void 0 : _b.circular)) {
2931
- const resolvedItems = dereference(schema === null || schema === void 0 ? void 0 : schema.items, root);
2932
- const itemsPath = `${path}/items`;
2933
- if (resolvedItems && resolvedItems.type === 'object' && resolvedItems.properties) {
2934
- for (const [key, child] of Object.entries(resolvedItems.properties)) {
2935
- const childPath = `${itemsPath}/${key}`;
2936
- const childRequiredOverride = isRequiredOverride(childPath, hideData);
2937
- const shouldHideChild = isPathHidden(childPath, hideData) && childRequiredOverride === undefined;
2938
- if (!shouldHideChild) {
2939
- children.push(React.createElement("li", { key: key },
2940
- React.createElement(LazySchemaTreePreviewer, { schema: dereference(child, root), root: root, title: key, level: level + 2, path: childPath, hideData: hideData, parentRequired: resolvedItems.required, propertyKey: key, _subType: (_c = resolvedItems === null || resolvedItems === void 0 ? void 0 : resolvedItems.items) === null || _c === void 0 ? void 0 : _c.type })));
2941
- }
2942
- }
2943
- }
2944
- else if (resolvedItems && resolvedItems.type === 'array' && resolvedItems.items.length > 0) {
2945
- const childPath = `${path}/items`;
2946
- const childRequiredOverride = isRequiredOverride(childPath, hideData);
2947
- const shouldHideChild = isPathHidden(childPath, hideData) && childRequiredOverride === undefined;
2948
- if (!shouldHideChild) {
2949
- children.push(React.createElement("li", { key: "items" },
2950
- React.createElement(LazySchemaTreePreviewer, { schema: resolvedItems, root: root, title: "items", level: level + 1, path: childPath, hideData: hideData, parentRequired: schema === null || schema === void 0 ? void 0 : schema.required, propertyKey: "items", _subType: (_d = resolvedItems === null || resolvedItems === void 0 ? void 0 : resolvedItems.items) === null || _d === void 0 ? void 0 : _d.type })));
2951
- }
2952
- }
2953
- }
2954
- return children.length > 0 ? React.createElement("ul", { className: "ml-6 border-l border-gray-200 pl-2" }, children) : null;
2955
- };
2956
- const combinedSchemaSelector = () => {
2957
- var _a;
2958
- return (React.createElement(React.Fragment, null,
2959
- React.createElement(mosaic.Box, { pos: "fixed", top: 0, left: 0, right: 0, bottom: 0, bg: "transparent", style: { zIndex: 999 }, onClick: () => setShowSchemaDropdown(false) }),
2960
- React.createElement(mosaic.Box, { pos: "absolute", bg: "canvas", rounded: true, boxShadow: "md", style: {
2961
- zIndex: 1000,
2962
- top: '100%',
2963
- left: 0,
2964
- minWidth: '150px',
2965
- maxWidth: '200px',
2966
- marginTop: '2px',
2967
- border: '1px solid rgba(0, 0, 0, 0.1)',
2968
- }, fontSize: "sm", onClick: (e) => e.stopPropagation() }, (_a = ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf))) === null || _a === void 0 ? void 0 : _a.map((schemaOption, index) => (React.createElement(mosaic.Box, { key: index, px: 3, py: 2, cursor: "pointer", bg: selectedSchemaIndex === index ? 'primary-tint' : 'canvas', fontSize: "xs", display: "flex", alignItems: "center", style: {
2969
- borderBottom: index < ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)).length - 1 ? '1px solid rgba(0, 0, 0, 0.1)' : 'none',
2970
- gap: '8px',
2971
- }, onMouseEnter: (e) => {
2972
- if (selectedSchemaIndex !== index) {
2973
- e.currentTarget.style.backgroundColor = 'var(--sl-color-canvas-tint)';
2974
- }
2975
- }, onMouseLeave: (e) => {
2976
- if (selectedSchemaIndex !== index) {
2977
- e.currentTarget.style.backgroundColor = 'var(--sl-color-canvas)';
2978
- }
2979
- }, onClick: () => {
2980
- setSelectedSchemaIndex(index);
2981
- setShowSchemaDropdown(false);
2982
- } },
2983
- React.createElement(mosaic.Box, { flex: 1, color: "body" }, schemaOption.type || 'object'),
2984
- selectedSchemaIndex === index && (React.createElement(mosaic.Box, { color: "primary", fontSize: "xs" }, "\u2713"))))))));
2985
- };
2986
- const renderMinEnums = (schema) => {
2987
- if (!schema || typeof schema !== 'object')
2988
- return null;
2989
- const boxStyle = {
2990
- background: 'rgba(245, 247, 250, 0.5)',
2991
- border: '1px solid #a0aec0',
2992
- borderRadius: '4px',
2993
- padding: '0px 2px',
2994
- display: 'inline-block',
2995
- overflowWrap: 'break-word',
2996
- textAlign: 'left',
2997
- maxWidth: 'fit-content',
2998
- maxHeight: 'fit-content',
2999
- };
3000
- if ('minItems' in schema) {
3001
- const schemaWithMinItems = schema;
3002
- if (typeof schemaWithMinItems.minItems === 'number') {
3003
- return (React.createElement(mosaic.Box, { className: "sl-text-muted", fontFamily: "ui", fontWeight: "normal", mr: 2, style: boxStyle }, `>=${schemaWithMinItems.minItems} items`));
3004
- }
3005
- }
3006
- if ('enum' in schema && Array.isArray(schema.enum)) {
3007
- return (React.createElement("div", null,
3008
- "Allowed values:",
3009
- ' ',
3010
- schema.enum.map((val, idx) => (React.createElement(mosaic.Box, { key: idx, className: "sl-text-muted", fontFamily: "ui", fontWeight: "normal", mr: 2, style: boxStyle }, val)))));
3011
- }
3012
- return null;
3013
- };
3014
- const isRequired = parentRequired && propertyKey && parentRequired.includes(propertyKey);
3015
- let showRequiredLabel = false;
3016
- const hideDataEntry = hideData.find(hideEntry => trimSlashes(hideEntry.path) === trimSlashes(path));
3017
- if ((hideDataEntry === null || hideDataEntry === void 0 ? void 0 : hideDataEntry.required) === true || ((hideDataEntry === null || hideDataEntry === void 0 ? void 0 : hideDataEntry.required) === undefined && isRequired)) {
3018
- showRequiredLabel = true;
3019
- }
3020
- if (schema === null || schema === void 0 ? void 0 : schema.$ref) {
3021
- schema = dereference(schema, root);
3022
- }
3023
- return (React.createElement("div", { className: "mb-1" },
3024
- React.createElement(mosaic.Flex, { maxW: "full", pl: 3, py: 2, "data-test": "schema-row", pos: "relative" },
3025
- React.createElement(mosaic.VStack, { spacing: 1, maxW: "full", className: "w-full" },
3026
- React.createElement(mosaic.Flex, { onClick: !isRoot ? handleToggle : undefined, className: `w-full ${isRoot ? '' : 'cursor-pointer'}` },
3027
- !isRoot ? (React.createElement(mosaic.Box, { mr: 2, className: "sl-font-mono sl-font-semibold sl-mr-2" },
3028
- !TYPES.includes(schema === null || schema === void 0 ? void 0 : schema.type) &&
3029
- !detectCircularPath(path) &&
3030
- !((_b = schema === null || schema === void 0 ? void 0 : schema.items) === null || _b === void 0 ? void 0 : _b.circular) &&
3031
- !(schema === null || schema === void 0 ? void 0 : schema.circular) ? (React.createElement("i", { role: "img", "aria-hidden": "true", className: `sl-icon fal ${expanded ? 'fa-chevron-down' : 'fa-chevron-right'} fa-fw fa-sm` })) : (React.createElement("span", { className: "sl-icon fal fa-fw fa-sm", "aria-hidden": "true" })),
3032
- ' ' + displayTitle)) : null,
3033
- !isRoot ? (React.createElement(mosaic.Box, { mr: 2, pos: "relative" },
3034
- React.createElement(mosaic.Box, { display: "inline-flex", alignItems: "center", onMouseEnter: () => {
3035
- if ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)) {
3036
- setIsHoveringSelector(true);
3037
- }
3038
- }, onMouseLeave: () => {
3039
- if (!showSchemaDropdown) {
3040
- setIsHoveringSelector(false);
3041
- }
3042
- }, onClick: (e) => {
3043
- if ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)) {
3044
- e.stopPropagation();
3045
- setShowSchemaDropdown(prev => !prev);
3046
- }
3047
- }, style: {
3048
- cursor: (schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf) ? 'pointer' : 'default',
3049
- } },
3050
- React.createElement("span", { className: "sl-truncate sl-text-muted" },
3051
- (() => {
3052
- let typeDisplay = (schema === null || schema === void 0 ? void 0 : schema.type) === 'object' && (schema === null || schema === void 0 ? void 0 : schema.title) ? schema === null || schema === void 0 ? void 0 : schema.title : (schema === null || schema === void 0 ? void 0 : schema.type) || (root === null || root === void 0 ? void 0 : root.title);
3053
- if ((schema === null || schema === void 0 ? void 0 : schema.anyOf) && (schema === null || schema === void 0 ? void 0 : schema.anyOf.length) > 0) {
3054
- return `any of ${typeDisplay}`;
3055
- }
3056
- else if ((schema === null || schema === void 0 ? void 0 : schema.oneOf) && (schema === null || schema === void 0 ? void 0 : schema.oneOf.length) > 0) {
3057
- return `one of ${typeDisplay}`;
3058
- }
3059
- return typeDisplay;
3060
- })(),
3061
- (schema === null || schema === void 0 ? void 0 : schema.items) && ((_c = schema === null || schema === void 0 ? void 0 : schema.items) === null || _c === void 0 ? void 0 : _c.title) !== undefined ? ` [${(_d = schema === null || schema === void 0 ? void 0 : schema.items) === null || _d === void 0 ? void 0 : _d.title}] ` : null),
3062
- ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)) && (React.createElement(mosaic.Box, { display: "inline-flex", alignItems: "center", ml: 1, style: {
3063
- opacity: isHoveringSelector ? 1 : 0.6,
3064
- transition: 'opacity 0.2s',
3065
- } },
3066
- React.createElement("i", { className: "sl-icon fas fa-chevron-down", style: {
3067
- fontSize: '10px',
3068
- opacity: 0.6,
3069
- } })))),
3070
- React.createElement("span", { className: "text-gray-500" }, (schema === null || schema === void 0 ? void 0 : schema.format) !== undefined ? `<${schema === null || schema === void 0 ? void 0 : schema.format}>` : null),
3071
- ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)) && showSchemaDropdown && combinedSchemaSelector())) : null),
3072
- React.createElement(mosaic.Flex, { pl: 1, w: "full", align: "start", direction: "col", style: { overflow: 'visible', paddingLeft: '20px' } },
3073
- (schema === null || schema === void 0 ? void 0 : schema.description) && (React.createElement(mosaic.Box, { fontFamily: "ui", fontWeight: "light" },
3074
- React.createElement("span", { className: "sl-prose sl-markdown-viewer", style: { fontSize: '12px' } }, schema === null || schema === void 0 ? void 0 : schema.description))),
3075
- !isRoot && (schema === null || schema === void 0 ? void 0 : schema.examples) !== undefined && (React.createElement(mosaic.Flex, { align: "center", mb: 1, style: { flexWrap: 'wrap' } },
3076
- React.createElement("span", { className: "text-gray-500", style: { marginRight: 8, flexShrink: 0 } }, "Example"),
3077
- React.createElement(mosaic.Box, { className: "sl-text-muted", fontFamily: "ui", fontWeight: "normal", mr: 2, style: {
3078
- background: 'rgba(245, 247, 250, 0.5)',
3079
- border: '1px solid #a0aec0',
3080
- borderRadius: '4px',
3081
- padding: '4px 8px',
3082
- display: 'inline-block',
3083
- overflowWrap: 'break-word',
3084
- textAlign: 'left',
3085
- maxWidth: '530px',
3086
- } }, JSON.stringify(schema === null || schema === void 0 ? void 0 : schema.examples))))),
3087
- React.createElement(mosaic.Flex, { pl: 1, w: "full", align: "start", direction: "col", style: { overflow: 'visible', paddingLeft: '20px' } }, schema &&
3088
- typeof schema === 'object' &&
3089
- ('minItems' in schema || 'enum' in schema) &&
3090
- renderMinEnums(schema))),
3091
- !isRoot && (React.createElement("label", { className: "inline-flex items-top ml-2" },
3092
- React.createElement(mosaic.Box, { mr: 2, fontFamily: "ui", fontWeight: "normal" }, showRequiredLabel && (React.createElement("div", { className: "sl-ml-2 sl-text-warning" },
3093
- React.createElement("span", { style: { marginLeft: '10px' } }, "required"))))))),
3094
- renderChildren()));
3095
- };
3096
-
3097
2759
  const isBodyEmpty = (body) => {
3098
2760
  if (!body)
3099
2761
  return true;
3100
2762
  const { contents = [], description } = body;
3101
2763
  return contents.length === 0 && !(description === null || description === void 0 ? void 0 : description.trim());
3102
2764
  };
3103
- const Body = ({ body, onChange, isHttpWebhookOperation = false, disableProps }) => {
2765
+ const Body = ({ body, onChange, isHttpWebhookOperation = false }) => {
3104
2766
  var _a;
3105
2767
  const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
3106
2768
  const [chosenContent, setChosenContent] = React__namespace.useState(0);
@@ -3113,29 +2775,13 @@ const Body = ({ body, onChange, isHttpWebhookOperation = false, disableProps })
3113
2775
  const { contents = [], description } = body;
3114
2776
  const schema = (_a = contents[chosenContent]) === null || _a === void 0 ? void 0 : _a.schema;
3115
2777
  const descriptionChanged = nodeHasChanged === null || nodeHasChanged === void 0 ? void 0 : nodeHasChanged({ nodeId: body.id, attr: 'description' });
3116
- const getMaskProperties = () => {
3117
- const disablePropsConfig = disableProps || [];
3118
- const absolutePathsToHide = [];
3119
- disablePropsConfig.forEach(configEntry => {
3120
- const { location, paths } = configEntry;
3121
- paths.forEach((item) => {
3122
- const fullPath = location === '#' ? item === null || item === void 0 ? void 0 : item.path : `${location}/${item.path}`;
3123
- let object = { path: fullPath };
3124
- if (item.hasOwnProperty('required')) {
3125
- object = Object.assign(Object.assign({}, object), { required: item === null || item === void 0 ? void 0 : item.required });
3126
- }
3127
- absolutePathsToHide.push(object);
3128
- });
3129
- });
3130
- return absolutePathsToHide;
3131
- };
3132
2778
  return (React__namespace.createElement(mosaic.VStack, { spacing: 6 },
3133
2779
  React__namespace.createElement(SectionSubtitle, { title: "Body", id: "request-body" }, contents.length > 0 && (React__namespace.createElement(mosaic.Flex, { flex: 1, justify: "end" },
3134
2780
  React__namespace.createElement(mosaic.Select, { "aria-label": "Request Body Content Type", value: String(chosenContent), onChange: value => setChosenContent(parseInt(String(value), 10)), options: contents.map((content, index) => ({ label: content.mediaType, value: index })), size: "sm" })))),
3135
2781
  description && (React__namespace.createElement(mosaic.Box, { pos: "relative" },
3136
2782
  React__namespace.createElement(MarkdownViewer, { markdown: description }),
3137
2783
  React__namespace.createElement(mosaic.NodeAnnotation, { change: descriptionChanged }))),
3138
- schema && localStorage.getItem('use_new_mask_workflow') === 'true' ? (React__namespace.createElement(LazySchemaTreePreviewer, { schema: schema, hideData: getMaskProperties() })) : (isJSONSchema(schema) && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: isHttpWebhookOperation ? 'standalone' : 'write', renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon })))));
2784
+ isJSONSchema(schema) && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: isHttpWebhookOperation ? 'standalone' : 'write', renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))));
3139
2785
  };
3140
2786
  Body.displayName = 'HttpOperation.Body';
3141
2787
 
@@ -3202,7 +2848,7 @@ const httpOperationParamsToSchema = ({ parameters, parameterType }) => {
3202
2848
  return schema;
3203
2849
  };
3204
2850
 
3205
- const Request = ({ operation: { request, request: { path: pathParams = [], headers: headerParams = [], cookie: cookieParams = [], body, query: queryParams = [], } = {}, security, }, hideSecurityInfo, onChange, isHttpWebhookOperation = false, disableProps, }) => {
2851
+ const Request = ({ operation: { request, request: { path: pathParams = [], headers: headerParams = [], cookie: cookieParams = [], body, query: queryParams = [], } = {}, security, }, hideSecurityInfo, onChange, isHttpWebhookOperation = false, }) => {
3206
2852
  if (!request || typeof request !== 'object')
3207
2853
  return null;
3208
2854
  const bodyIsEmpty = isBodyEmpty(body);
@@ -3230,7 +2876,7 @@ const Request = ({ operation: { request, request: { path: pathParams = [], heade
3230
2876
  cookieParams.length > 0 && (React__namespace.createElement(mosaic.VStack, { spacing: 5 },
3231
2877
  React__namespace.createElement(SectionSubtitle, { title: "Cookies", id: "request-cookies" }),
3232
2878
  React__namespace.createElement(Parameters, { parameterType: "cookie", parameters: cookieParams }))),
3233
- body && (React__namespace.createElement(Body, { onChange: onChange, body: body, isHttpWebhookOperation: isHttpWebhookOperation, disableProps: disableProps }))));
2879
+ body && React__namespace.createElement(Body, { onChange: onChange, body: body, isHttpWebhookOperation: isHttpWebhookOperation })));
3234
2880
  };
3235
2881
  Request.displayName = 'HttpOperation.Request';
3236
2882
  const schemeExpandedState = utils.atomWithStorage('HttpOperation_security_expanded', {});
@@ -3261,7 +2907,7 @@ const OptionalMessage$1 = () => {
3261
2907
  return React__namespace.createElement(mosaic.Callout, { appearance: "outline" }, OptionalSecurityMessage);
3262
2908
  };
3263
2909
 
3264
- const Responses = ({ responses: unsortedResponses, onStatusCodeChange, onMediaTypeChange, isCompact, disableProps, }) => {
2910
+ const Responses = ({ responses: unsortedResponses, onStatusCodeChange, onMediaTypeChange, isCompact, }) => {
3265
2911
  var _a, _b;
3266
2912
  const responses = sortBy(uniqBy(unsortedResponses, r => r.code), r => r.code);
3267
2913
  const [activeResponseId, setActiveResponseId] = React__namespace.useState((_b = (_a = responses[0]) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : '');
@@ -3294,11 +2940,11 @@ const Responses = ({ responses: unsortedResponses, onStatusCodeChange, onMediaTy
3294
2940
  const tabResponses = (React__namespace.createElement(mosaic.TabList, { density: "compact" }, responses.map(({ code }) => (React__namespace.createElement(mosaic.Tab, { key: code, id: code, intent: codeToIntentVal(code) }, code)))));
3295
2941
  return (React__namespace.createElement(mosaic.VStack, { spacing: 8, as: mosaic.Tabs, selectedId: activeResponseId, onChange: setActiveResponseId, appearance: "pill" },
3296
2942
  React__namespace.createElement(SectionTitle, { title: "Responses", isCompact: isCompact }, isCompact ? compactResponses : tabResponses),
3297
- isCompact ? (React__namespace.createElement(Response, { response: response, onMediaTypeChange: onMediaTypeChange, disableProps: disableProps, statusCode: activeResponseId })) : (React__namespace.createElement(mosaic.TabPanels, { p: 0 }, responses.map(response => (React__namespace.createElement(mosaic.TabPanel, { key: response.code, id: response.code },
3298
- React__namespace.createElement(Response, { response: response, onMediaTypeChange: onMediaTypeChange, disableProps: disableProps, statusCode: response.code }))))))));
2943
+ isCompact ? (React__namespace.createElement(Response, { response: response, onMediaTypeChange: onMediaTypeChange })) : (React__namespace.createElement(mosaic.TabPanels, { p: 0 }, responses.map(response => (React__namespace.createElement(mosaic.TabPanel, { key: response.code, id: response.code },
2944
+ React__namespace.createElement(Response, { response: response, onMediaTypeChange: onMediaTypeChange }))))))));
3299
2945
  };
3300
2946
  Responses.displayName = 'HttpOperation.Responses';
3301
- const Response = ({ response, onMediaTypeChange, disableProps, statusCode }) => {
2947
+ const Response = ({ response, onMediaTypeChange }) => {
3302
2948
  const { contents = [], headers = [], description } = response;
3303
2949
  const [chosenContent, setChosenContent] = React__namespace.useState(0);
3304
2950
  const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
@@ -3309,24 +2955,6 @@ const Response = ({ response, onMediaTypeChange, disableProps, statusCode }) =>
3309
2955
  responseContent && (onMediaTypeChange === null || onMediaTypeChange === void 0 ? void 0 : onMediaTypeChange(responseContent.mediaType));
3310
2956
  }, [responseContent]);
3311
2957
  const descriptionChanged = nodeHasChanged === null || nodeHasChanged === void 0 ? void 0 : nodeHasChanged({ nodeId: response.id, attr: 'description' });
3312
- const getMaskProperties = () => {
3313
- if (!disableProps || !statusCode)
3314
- return [];
3315
- const configEntries = disableProps[statusCode] || [];
3316
- const absolutePathsToHide = [];
3317
- configEntries.forEach(({ location, paths }) => {
3318
- paths.forEach((item) => {
3319
- const fullPath = location === '#' ? item === null || item === void 0 ? void 0 : item.path : `${location}/${item.path}`;
3320
- let object = { path: fullPath };
3321
- if (item.hasOwnProperty('required')) {
3322
- object = Object.assign(Object.assign({}, object), { required: item === null || item === void 0 ? void 0 : item.required });
3323
- }
3324
- absolutePathsToHide.push(object);
3325
- console.log('object::', object, item);
3326
- });
3327
- });
3328
- return absolutePathsToHide;
3329
- };
3330
2958
  return (React__namespace.createElement(mosaic.VStack, { spacing: 8, pt: 8 },
3331
2959
  description && (React__namespace.createElement(mosaic.Box, { pos: "relative" },
3332
2960
  React__namespace.createElement(MarkdownViewer, { markdown: description }),
@@ -3338,7 +2966,7 @@ const Response = ({ response, onMediaTypeChange, disableProps, statusCode }) =>
3338
2966
  React__namespace.createElement(SectionSubtitle, { title: "Body", id: "response-body" },
3339
2967
  React__namespace.createElement(mosaic.Flex, { flex: 1, justify: "end" },
3340
2968
  React__namespace.createElement(mosaic.Select, { "aria-label": "Response Body Content Type", value: String(chosenContent), onChange: value => setChosenContent(parseInt(String(value), 10)), options: contents.map((content, index) => ({ label: content.mediaType, value: index })), size: "sm" }))),
3341
- schema && localStorage.getItem('use_new_mask_workflow') === 'true' ? (React__namespace.createElement(LazySchemaTreePreviewer, { schema: schema, path: "", hideData: getMaskProperties() })) : (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))))));
2969
+ schema && (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))))));
3342
2970
  };
3343
2971
  Response.displayName = 'HttpOperation.Response';
3344
2972
  const codeToIntentVal = (code) => {
@@ -3384,7 +3012,7 @@ const Callback = ({ data, isCompact }) => {
3384
3012
  };
3385
3013
  Callbacks.displayName = 'HttpOperation.Callback';
3386
3014
 
3387
- const HttpOperationComponent = React__namespace.memo(({ className, data: unresolvedData, layoutOptions, tryItCredentialsPolicy, tryItCorsProxy, disableProps }) => {
3015
+ const HttpOperationComponent = React__namespace.memo(({ className, data: unresolvedData, layoutOptions, tryItCredentialsPolicy, tryItCorsProxy }) => {
3388
3016
  var _a;
3389
3017
  const { nodeHasChanged } = useOptionsCtx();
3390
3018
  const data = useResolvedObject(unresolvedData);
@@ -3415,8 +3043,8 @@ const HttpOperationComponent = React__namespace.memo(({ className, data: unresol
3415
3043
  React__namespace.createElement(MarkdownViewer, { className: "HttpOperation__Description", markdown: data.description }),
3416
3044
  React__namespace.createElement(mosaic.NodeAnnotation, { change: descriptionChanged }))),
3417
3045
  React__namespace.createElement(NodeVendorExtensions, { data: data }),
3418
- React__namespace.createElement(Request, { onChange: setTextRequestBodyIndex, operation: data, hideSecurityInfo: layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideSecurityInfo, isHttpWebhookOperation: isHttpWebhookOperation(data), disableProps: disableProps === null || disableProps === void 0 ? void 0 : disableProps.request }),
3419
- data.responses && (React__namespace.createElement(Responses, { responses: data.responses, onMediaTypeChange: setResponseMediaType, onStatusCodeChange: setResponseStatusCode, isCompact: isCompact, disableProps: disableProps === null || disableProps === void 0 ? void 0 : disableProps.response })),
3046
+ React__namespace.createElement(Request, { onChange: setTextRequestBodyIndex, operation: data, hideSecurityInfo: layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideSecurityInfo, isHttpWebhookOperation: isHttpWebhookOperation(data) }),
3047
+ data.responses && (React__namespace.createElement(Responses, { responses: data.responses, onMediaTypeChange: setResponseMediaType, onStatusCodeChange: setResponseStatusCode, isCompact: isCompact })),
3420
3048
  ((_a = data.callbacks) === null || _a === void 0 ? void 0 : _a.length) ? React__namespace.createElement(Callbacks, { callbacks: data.callbacks, isCompact: isCompact }) : null,
3421
3049
  isCompact && tryItPanel));
3422
3050
  return (React__namespace.createElement(TwoColumnLayout, { ref: layoutRef, className: cn('HttpOperation', className), header: header, left: description, right: !isCompact && tryItPanel }));
@@ -3654,9 +3282,7 @@ const HttpServiceComponent = React__namespace.memo(({ data: unresolvedData, loca
3654
3282
  React__namespace.createElement(mosaic.Box, { pos: "relative" },
3655
3283
  React__namespace.createElement(mosaic.Heading, { size: 1, mb: 4, fontWeight: "semibold" }, data.name),
3656
3284
  React__namespace.createElement(mosaic.NodeAnnotation, { change: nameChanged })),
3657
- localStorage.getItem('use_new_mask_workflow') === 'true'
3658
- ? null
3659
- : exportProps && !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideExport) && !isCompact && React__namespace.createElement(ExportButton, Object.assign({}, exportProps)))),
3285
+ exportProps && !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideExport) && !isCompact && React__namespace.createElement(ExportButton, Object.assign({}, exportProps)))),
3660
3286
  data.version && (React__namespace.createElement(mosaic.Box, { mb: 5, pos: "relative" },
3661
3287
  React__namespace.createElement(VersionBadge, { value: data.version }),
3662
3288
  React__namespace.createElement(mosaic.NodeAnnotation, { change: versionChanged }))),
@@ -3672,7 +3298,7 @@ const HttpServiceComponent = React__namespace.memo(({ data: unresolvedData, loca
3672
3298
  HttpServiceComponent.displayName = 'HttpService.Component';
3673
3299
  const HttpService = reactErrorBoundary.withErrorBoundary(HttpServiceComponent, { recoverableProps: ['data'] });
3674
3300
 
3675
- const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, disableProps, }) => {
3301
+ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, }) => {
3676
3302
  var _a, _b;
3677
3303
  const [resolveRef, maxRefDepth] = useSchemaInlineRefResolver();
3678
3304
  const data = useResolvedObject(unresolvedData);
@@ -3692,36 +3318,16 @@ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOpti
3692
3318
  isDeprecated && React__namespace.createElement(DeprecatedBadge, null),
3693
3319
  isInternal && React__namespace.createElement(InternalBadge, null))),
3694
3320
  React__namespace.createElement(mosaic.NodeAnnotation, { change: titleChanged })),
3695
- localStorage.getItem('use_new_mask_workflow') === 'true'
3696
- ? null
3697
- : exportProps && !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideExport) && !isCompact && React__namespace.createElement(ExportButton, Object.assign({}, exportProps))));
3321
+ exportProps && !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideExport) && !isCompact && React__namespace.createElement(ExportButton, Object.assign({}, exportProps))));
3698
3322
  const modelExamples = !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideModelExamples) && React__namespace.createElement(ModelExamples, { data: data, isCollapsible: isCompact });
3699
3323
  const descriptionChanged = nodeHasChanged === null || nodeHasChanged === void 0 ? void 0 : nodeHasChanged({ nodeId, attr: 'description' });
3700
- const getMaskProperties = () => {
3701
- const disablePropsConfig = disableProps === null || disableProps === void 0 ? void 0 : disableProps.models;
3702
- const absolutePathsToHide = [];
3703
- if (disableProps === null || disableProps === void 0 ? void 0 : disableProps.models) {
3704
- disablePropsConfig.forEach((configEntry) => {
3705
- const { location, paths } = configEntry;
3706
- paths.forEach((item) => {
3707
- const fullPath = location === '#' ? item === null || item === void 0 ? void 0 : item.path : `${location}/${item.path}`;
3708
- let object = { path: fullPath };
3709
- if (item.hasOwnProperty('required')) {
3710
- object = Object.assign(Object.assign({}, object), { required: item === null || item === void 0 ? void 0 : item.required });
3711
- }
3712
- absolutePathsToHide.push(object);
3713
- });
3714
- });
3715
- }
3716
- return absolutePathsToHide;
3717
- };
3718
3324
  const description = (React__namespace.createElement(mosaic.VStack, { spacing: 10 },
3719
3325
  data.description && data.type === 'object' && (React__namespace.createElement(mosaic.Box, { pos: "relative" },
3720
3326
  React__namespace.createElement(MarkdownViewer, { role: "textbox", markdown: data.description }),
3721
3327
  React__namespace.createElement(mosaic.NodeAnnotation, { change: descriptionChanged }))),
3722
3328
  React__namespace.createElement(NodeVendorExtensions, { data: data }),
3723
- localStorage.getItem('use_new_mask_workflow') !== 'true' && isCompact && modelExamples,
3724
- data && localStorage.getItem('use_new_mask_workflow') === 'true' ? (React__namespace.createElement(LazySchemaTreePreviewer, { schema: data, hideData: getMaskProperties() })) : (React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon, skipTopLevelDescription: true }))));
3329
+ isCompact && modelExamples,
3330
+ React__namespace.createElement(jsonSchemaViewer.JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon, skipTopLevelDescription: true })));
3725
3331
  return (React__namespace.createElement(TwoColumnLayout, { ref: layoutRef, className: cn('Model', className), header: header, left: description, right: !isCompact && modelExamples }));
3726
3332
  };
3727
3333
  const ModelExamples = React__namespace.memo(({ data, isCollapsible = false }) => {
@@ -3744,30 +3350,30 @@ const Model = reactErrorBoundary.withErrorBoundary(ModelComponent, { recoverable
3744
3350
 
3745
3351
  const Docs = React__namespace.memo((_a) => {
3746
3352
  var _b;
3747
- var { nodeType, nodeData, disableProps, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged, renderExtensionAddon } = _a, commonProps = tslib.__rest(_a, ["nodeType", "nodeData", "disableProps", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged", "renderExtensionAddon"]);
3353
+ var { nodeType, nodeData, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged, renderExtensionAddon } = _a, commonProps = tslib.__rest(_a, ["nodeType", "nodeData", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged", "renderExtensionAddon"]);
3748
3354
  const parsedNode = useParsedData(nodeType, nodeData);
3749
3355
  if (!parsedNode) {
3750
3356
  (_b = commonProps.nodeUnsupported) === null || _b === void 0 ? void 0 : _b.call(commonProps, 'dataEmpty');
3751
3357
  return null;
3752
3358
  }
3753
- let elem = React__namespace.createElement(ParsedDocs, Object.assign({ node: parsedNode, disableProps: disableProps }, commonProps));
3359
+ let elem = React__namespace.createElement(ParsedDocs, Object.assign({ node: parsedNode }, commonProps));
3754
3360
  if (useNodeForRefResolving) {
3755
3361
  elem = (React__namespace.createElement(InlineRefResolverProvider, { document: parsedNode.data, resolver: refResolver, maxRefDepth: maxRefDepth }, elem));
3756
3362
  }
3757
3363
  return (React__namespace.createElement(ElementsOptionsProvider, { nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }, elem));
3758
3364
  });
3759
3365
  const ParsedDocs = (_a) => {
3760
- var { node, nodeUnsupported, disableProps } = _a, commonProps = tslib.__rest(_a, ["node", "nodeUnsupported", "disableProps"]);
3366
+ var { node, nodeUnsupported } = _a, commonProps = tslib.__rest(_a, ["node", "nodeUnsupported"]);
3761
3367
  switch (node.type) {
3762
3368
  case 'article':
3763
3369
  return React__namespace.createElement(Article, Object.assign({ data: node.data }, commonProps));
3764
3370
  case 'http_operation':
3765
3371
  case 'http_webhook':
3766
- return React__namespace.createElement(HttpOperation, Object.assign({ data: node.data, disableProps: disableProps }, commonProps));
3372
+ return React__namespace.createElement(HttpOperation, Object.assign({ data: node.data }, commonProps));
3767
3373
  case 'http_service':
3768
3374
  return React__namespace.createElement(HttpService, Object.assign({ data: node.data }, commonProps));
3769
3375
  case 'model':
3770
- return React__namespace.createElement(Model, Object.assign({ data: node.data, disableProps: disableProps }, commonProps));
3376
+ return React__namespace.createElement(Model, Object.assign({ data: node.data }, commonProps));
3771
3377
  default:
3772
3378
  nodeUnsupported === null || nodeUnsupported === void 0 ? void 0 : nodeUnsupported('invalidType');
3773
3379
  return null;