schyma 1.1.0 → 1.1.2

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/README.md ADDED
@@ -0,0 +1,83 @@
1
+ # JSON Schema Visualizer(Schyma)
2
+
3
+ Schyma is a tool designed to simplify the visualization of JSON Schemas, making it less tedious to learn how different parts of api specs are connected(especially when you’re just starting). The visualizer takes JSON Schema files as input and generates a user-friendly graphical representation of the specification.
4
+
5
+ ## Features
6
+
7
+ - Import JSON Schemas: The visualizer supports various JSON Schemas, such as AsyncAPI, Postman Collection Format, OpenAPI (formerly Swagger), Github Action Spec and so much more. You can easily import your JSON Schema files into the tool.
8
+
9
+ - Interactive Visualization: The visualizer provides an interactive and intuitive graphical representation of the JSON Schema. Names, Descriptions, Examples, and other essential details are visually presented for better understanding.
10
+
11
+ ## Supported JSON Schema Formats
12
+
13
+ The JSON Schema Visualizer currently supports the following JSON Schema formats:
14
+ `.json`
15
+
16
+
17
+ ## Installation & Usage
18
+
19
+ The easiest way to use schyma is to install it from npm and build it into your app with Webpack.
20
+
21
+ ```
22
+ npm install schyma
23
+ ```
24
+
25
+ Then use it in your app:
26
+
27
+ ```js
28
+ import React from 'react';
29
+ import Schyma from 'schyma';
30
+ import 'schyma/dist/esm/style.css'
31
+ import schema from '../config/2.6.0.json';
32
+
33
+ export default function App() {
34
+
35
+ return (
36
+ <div className="App">
37
+ <Schyma title="Name of Specification" description="Specification Description" schema={schema} />
38
+ </div>
39
+ );
40
+ }
41
+ ```
42
+
43
+ ## Monorepo Development
44
+
45
+ This repository is now organized as a monorepo:
46
+
47
+ - `packages/library`: the published `schyma` package
48
+ - `packages/playground`: a local React playground that consumes the workspace library
49
+
50
+ Run from the repository root:
51
+
52
+ ```bash
53
+ npm install
54
+ npm run dev
55
+ ```
56
+
57
+ Useful commands:
58
+
59
+ ```bash
60
+ npm run build
61
+ npm run build:library
62
+ npm run build:playground
63
+ npm run test
64
+ ```
65
+
66
+ ## Props
67
+
68
+ Common props you may want to specify include:
69
+
70
+ - `title`: The title of the JSON Schema, which will also be displayed on the initial node.
71
+
72
+ - `description`: The description of the JSON Schema being parsed
73
+
74
+ - `schema`: The JSON Schema schema which will be rendered on the visualizer.
75
+
76
+
77
+ ## Contributing
78
+ We welcome contributions from the community! If you find a bug, have a feature request, or want to contribute in any way.
79
+
80
+
81
+ ## License
82
+
83
+ Apache Liscence 2.0. Copyright (c) Azeez Elegbede 2026.
@@ -2,12 +2,12 @@ import React, { useEffect } from 'react';
2
2
  import Panel from './Panel';
3
3
  import { useState } from 'react';
4
4
  import Nodes from './Nodes';
5
- import Ajv from 'ajv';
6
5
  import { propMerge, getCompositionType } from '../utils/reusables';
7
6
  import { position } from '../constants/node';
8
7
  import Loader from '../icons/Loader';
8
+ import { getValidator } from '../helpers/ajv';
9
9
  function Schyma({ title, description, schema, defaultCollapsed = false }) {
10
- const ajv = new Ajv();
10
+ const ajv = getValidator(schema === null || schema === void 0 ? void 0 : schema.$schema);
11
11
  const [currentNode, setCurrentNode] = useState();
12
12
  const [nNodes, setnNodes] = useState({});
13
13
  const [render, setRender] = useState(false);
@@ -27,11 +27,16 @@ function Schyma({ title, description, schema, defaultCollapsed = false }) {
27
27
  },
28
28
  position,
29
29
  };
30
- const validate = ajv.validateSchema(schema);
30
+ let validate = false;
31
+ try {
32
+ const result = ajv.validateSchema(schema);
33
+ validate = typeof result === 'boolean' ? result : false;
34
+ }
35
+ catch (_a) {
36
+ validate = false;
37
+ }
31
38
  useEffect(() => {
32
- if (validate) {
33
- setRender(true);
34
- }
39
+ setRender(validate);
35
40
  }, [validate]);
36
41
  return (React.createElement("div", null, render ? (React.createElement("div", { className: 'body-wrapper' },
37
42
  React.createElement("div", { className: 'node-container' },
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,MAAM,MAAM,iBAAiB,CAAA;AAEpC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAW;IAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;IACrB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAQ,CAAA;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAA;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IACpD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAU,gBAAgB,CAAC,CAAA;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,WAAW,GAAS;QACxB,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;QAC1C,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK;YACZ,WAAW;YACX,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,EAAE;YACb,eAAe;YACf,MAAM,EAAE,IAAI;SACb;QACD,QAAQ;KACT,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACd,OAAO,CACL,iCACG,MAAM,CAAC,CAAC,CAAC,CACR,6BAAK,SAAS,EAAC,cAAc;QAC3B,6BAAK,SAAS,EAAC,gBAAgB;YAC7B,oBAAC,KAAK,IACJ,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GAClC,CACE;QACN,oBAAC,KAAK,IACJ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,gBAAgB,EAC7B,cAAc,EAAE,mBAAmB,GACnC,CACE,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,iBAAiB;QAC9B,oBAAC,MAAM,OAAG,CACN,CACP,CACG,CACP,CAAA;AACH,CAAC;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,MAAM,MAAM,iBAAiB,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAW;IAC/E,MAAM,GAAG,GAAG,YAAY,CAAE,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,OAAO,CAAC,CAAA;IAClD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAQ,CAAA;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAA;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IACpD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAU,gBAAgB,CAAC,CAAA;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,WAAW,GAAS;QACxB,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;QAC1C,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK;YACZ,WAAW;YACX,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,EAAE;YACb,eAAe;YACf,MAAM,EAAE,IAAI;SACb;QACD,QAAQ;KACT,CAAA;IAED,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QACzC,QAAQ,GAAG,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IACzD,CAAC;IAAC,WAAM,CAAC;QACP,QAAQ,GAAG,KAAK,CAAA;IAClB,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACd,OAAO,CACL,iCACG,MAAM,CAAC,CAAC,CAAC,CACR,6BAAK,SAAS,EAAC,cAAc;QAC3B,6BAAK,SAAS,EAAC,gBAAgB;YAC7B,oBAAC,KAAK,IACJ,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GAClC,CACE;QACN,oBAAC,KAAK,IACJ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,gBAAgB,EAC7B,cAAc,EAAE,mBAAmB,GACnC,CACE,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,iBAAiB;QAC9B,oBAAC,MAAM,OAAG,CACN,CACP,CACG,CACP,CAAA;AACH,CAAC;AAED,eAAe,MAAM,CAAA"}
@@ -1,21 +1,15 @@
1
1
  import React from 'react';
2
2
  import { Handle, Position } from 'reactflow';
3
- import { CompositionType } from '../types';
4
3
  import { compositionEdgeColors } from '../constants/node';
5
- const compositionSymbols = {
6
- [CompositionType.OneOf]: '⊕',
7
- [CompositionType.AnyOf]: '⊛',
8
- [CompositionType.AllOf]: '',
9
- [CompositionType.Not]: '⊘',
10
- };
11
4
  const SchemaNode = ({ data }) => {
12
5
  const { label, compositionType, isRoot } = data;
13
- const symbol = compositionType ? compositionSymbols[compositionType] : null;
14
6
  const symbolColor = compositionType ? compositionEdgeColors[compositionType] : undefined;
15
7
  return (React.createElement("div", { className: 'custom-node' },
16
8
  !isRoot && React.createElement(Handle, { type: 'target', position: Position.Left }),
17
9
  React.createElement("span", { className: 'custom-node-label' }, label),
18
- symbol && (React.createElement("span", { className: 'composition-symbol', style: { color: symbolColor }, title: compositionType || undefined }, symbol)),
10
+ symbolColor && (React.createElement(React.Fragment, null,
11
+ React.createElement("span", { className: 'composition-symbol', style: { color: symbolColor }, "aria-hidden": 'true' }),
12
+ React.createElement("span", { className: 'composition-tooltip' }, compositionType))),
19
13
  React.createElement(Handle, { type: 'source', position: Position.Right, style: { background: symbolColor || undefined } })));
20
14
  };
21
15
  export default SchemaNode;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomNode.js","sourceRoot":"","sources":["../../../src/components/CustomNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,eAAe,EAAY,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,MAAM,kBAAkB,GAAoC;IAC1D,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG;IAC5B,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG;IAC5B,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE;IAC3B,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG;CAC3B,CAAA;AAED,MAAM,UAAU,GAAkC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7D,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3E,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAExF,OAAO,CACL,6BAAK,SAAS,EAAC,aAAa;QACzB,CAAC,MAAM,IAAI,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAI;QAE7D,8BAAM,SAAS,EAAC,mBAAmB,IAAE,KAAK,CAAQ;QAEjD,MAAM,IAAI,CACT,8BAAM,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,IAAI,SAAS,IACpG,MAAM,CACF,CACR;QAED,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,IAAI,SAAS,EAAE,GAAI,CAC/F,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"CustomNode.js","sourceRoot":"","sources":["../../../src/components/CustomNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAA;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,MAAM,UAAU,GAAkC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7D,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/C,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAExF,OAAO,CACL,6BAAK,SAAS,EAAC,aAAa;QACzB,CAAC,MAAM,IAAI,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAI;QAE7D,8BAAM,SAAS,EAAC,mBAAmB,IAAE,KAAK,CAAQ;QAEjD,WAAW,IAAI,CACd;YACE,8BAAM,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,iBAAc,MAAM,GAAQ;YAC9F,8BAAM,SAAS,EAAC,qBAAqB,IAAE,eAAe,CAAQ,CAC7D,CACJ;QAED,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,IAAI,SAAS,EAAE,GAAI,CAC/F,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,3 @@
1
+ import Ajv from 'ajv';
2
+ import Ajv2020 from 'ajv/dist/2020';
3
+ export declare const getValidator: (schemaId?: string) => Ajv | Ajv2020;
@@ -0,0 +1,15 @@
1
+ import Ajv from 'ajv';
2
+ import Ajv2020 from 'ajv/dist/2020';
3
+ import AjvDraft04 from 'ajv-draft-04';
4
+ const normalizeSchemaId = (schemaId) => schemaId === null || schemaId === void 0 ? void 0 : schemaId.trim().replace(/#$/, '').toLowerCase();
5
+ export const getValidator = (schemaId) => {
6
+ const normalizedSchemaId = normalizeSchemaId(schemaId);
7
+ if (normalizedSchemaId === null || normalizedSchemaId === void 0 ? void 0 : normalizedSchemaId.includes('draft-04')) {
8
+ return new AjvDraft04();
9
+ }
10
+ if (normalizedSchemaId === null || normalizedSchemaId === void 0 ? void 0 : normalizedSchemaId.includes('2020-12')) {
11
+ return new Ajv2020();
12
+ }
13
+ return new Ajv();
14
+ };
15
+ //# sourceMappingURL=ajv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ajv.js","sourceRoot":"","sources":["../../../src/helpers/ajv.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,OAAO,MAAM,eAAe,CAAA;AACnC,OAAO,UAAU,MAAM,cAAc,CAAA;AAErC,MAAM,iBAAiB,GAAG,CAAC,QAAiB,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAA;AAEjG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAiB,EAAE,EAAE;IAChD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAEtD,IAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,UAAU,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,OAAO,EAAE,CAAA;IACtB,CAAC;IAED,OAAO,IAAI,GAAG,EAAE,CAAA;AAClB,CAAC,CAAA"}
@@ -632,6 +632,39 @@
632
632
  background: white;
633
633
  }
634
634
 
635
+ .composition-tooltip {
636
+ position: absolute;
637
+ left: 50%;
638
+ top: -30px;
639
+ transform: translateX(-50%);
640
+ background: #0f172a;
641
+ color: #f8fafc;
642
+ font-size: 11px;
643
+ line-height: 1;
644
+ padding: 5px 7px;
645
+ border-radius: 4px;
646
+ white-space: nowrap;
647
+ opacity: 0;
648
+ pointer-events: none;
649
+ transition: opacity 0.15s ease;
650
+ z-index: 20;
651
+ }
652
+
653
+ .composition-tooltip::after {
654
+ content: '';
655
+ position: absolute;
656
+ left: 50%;
657
+ top: 100%;
658
+ transform: translateX(-50%);
659
+ border-width: 4px;
660
+ border-style: solid;
661
+ border-color: #0f172a transparent transparent transparent;
662
+ }
663
+
664
+ .custom-node:hover .composition-tooltip {
665
+ opacity: 1;
666
+ }
667
+
635
668
  .required-sentence {
636
669
  font-size: 12px;
637
670
  font-style: italic;
@@ -1,4 +1,4 @@
1
- import { JSONSchema7Object } from 'json-schema';
1
+ import { JSONSchema4Object, JSONSchema7Object } from 'json-schema';
2
2
  import { Node } from 'reactflow';
3
3
  export declare enum CompositionType {
4
4
  OneOf = "oneOf",
@@ -9,7 +9,7 @@ export declare enum CompositionType {
9
9
  export interface ISchyma {
10
10
  title: string;
11
11
  description: string;
12
- schema: JSONSchema7Object;
12
+ schema: JSONSchema4Object | JSONSchema7Object;
13
13
  defaultCollapsed?: boolean;
14
14
  }
15
15
  export interface IObject {
@@ -27,6 +27,9 @@ function getSchemaName(schema, label, index) {
27
27
  }
28
28
  }
29
29
  }
30
+ if (schema.type && schema.const) {
31
+ return `${schema.const}`;
32
+ }
30
33
  if (schema.type && schema.type !== 'object') {
31
34
  return `${schema.type}`;
32
35
  }
@@ -84,6 +87,8 @@ export const handleCompositions = (schema, mergedProps, label) => {
84
87
  }
85
88
  else {
86
89
  const name = getSchemaName(item, label, i);
90
+ console.log(name);
91
+ console.log(item);
87
92
  mergedProps[name] = Object.assign(Object.assign({}, item), { _compositionSource: compositionType });
88
93
  }
89
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compositions.js","sourceRoot":"","sources":["../../../src/utils/compositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,UAAU,kBAAkB,CAAC,MAAW;IAC5C,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,eAAe,CAAC,KAAK,CAAA;IAC9C,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,eAAe,CAAC,KAAK,CAAA;IAC9C,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,eAAe,CAAC,KAAK,CAAA;IAC9C,IAAI,MAAM,CAAC,GAAG;QAAE,OAAO,eAAe,CAAC,GAAG,CAAA;IAC1C,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,aAAa,CAAC,MAAW,EAAE,KAAa,EAAE,KAAa;IAC9D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC;IACD,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAU,EAAE,KAAa;IACpD,MAAM,OAAO,GAAQ,EAAE,CAAA;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAW,EAAE,WAAgB,EAAE,KAAa,EAAE,EAAE;IACjF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,OAAO,GAA4B,EAAE,CAAA;QACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACjC,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACnC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,OAAO,mCAAQ,OAAO,GAAK,IAAI,CAAC,UAAU,CAAE,CAAA;gBAC9C,CAAC;gBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,OAAO,mCAAQ,OAAO,GAAK,IAAI,CAAC,iBAAiB,CAAE,CAAA;gBACrD,CAAC;gBACD,IAAI,IAAI,CAAC,oBAAoB,IAAI,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC;oBAC/E,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;wBACnC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;wBACxD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAA;oBAC3C,CAAC;gBACH,CAAC;gBACD,kDAAkD;gBAClD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAA;QAC1C,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAA;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,qEAAqE;YACrE,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;YAC9F,IAAI,eAAe,EAAE,CAAC;gBACpB,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC1C,WAAW,CAAC,IAAI,CAAC,mCAAQ,IAAI,KAAE,kBAAkB,EAAE,eAAe,GAAE,CAAA;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACzC,WAAW,CAAC,IAAI,CAAC,mCAAQ,MAAM,CAAC,GAAG,KAAE,kBAAkB,EAAE,eAAe,CAAC,GAAG,GAAE,CAAA;QAChF,CAAC;aAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3B,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAQ,MAAM,CAAC,GAAG,KAAE,kBAAkB,EAAE,eAAe,CAAC,GAAG,GAAE,CAAA;QAC3F,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"compositions.js","sourceRoot":"","sources":["../../../src/utils/compositions.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@ import React, { useEffect } from 'react';
2
2
  import Panel from './Panel';
3
3
  import { useState } from 'react';
4
4
  import Nodes from './Nodes';
5
- import Ajv from 'ajv';
6
5
  import { propMerge, getCompositionType } from '../utils/reusables';
7
6
  import { position } from '../constants/node';
8
7
  import Loader from '../icons/Loader';
8
+ import { getValidator } from '../helpers/ajv';
9
9
  function Schyma({ title, description, schema, defaultCollapsed = false }) {
10
- const ajv = new Ajv();
10
+ const ajv = getValidator(schema === null || schema === void 0 ? void 0 : schema.$schema);
11
11
  const [currentNode, setCurrentNode] = useState();
12
12
  const [nNodes, setnNodes] = useState({});
13
13
  const [render, setRender] = useState(false);
@@ -27,11 +27,16 @@ function Schyma({ title, description, schema, defaultCollapsed = false }) {
27
27
  },
28
28
  position,
29
29
  };
30
- const validate = ajv.validateSchema(schema);
30
+ let validate = false;
31
+ try {
32
+ const result = ajv.validateSchema(schema);
33
+ validate = typeof result === 'boolean' ? result : false;
34
+ }
35
+ catch (_a) {
36
+ validate = false;
37
+ }
31
38
  useEffect(() => {
32
- if (validate) {
33
- setRender(true);
34
- }
39
+ setRender(validate);
35
40
  }, [validate]);
36
41
  return (React.createElement("div", null, render ? (React.createElement("div", { className: 'body-wrapper' },
37
42
  React.createElement("div", { className: 'node-container' },
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,MAAM,MAAM,iBAAiB,CAAA;AAEpC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAW;IAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;IACrB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAQ,CAAA;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAA;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IACpD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAU,gBAAgB,CAAC,CAAA;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,WAAW,GAAS;QACxB,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;QAC1C,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK;YACZ,WAAW;YACX,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,EAAE;YACb,eAAe;YACf,MAAM,EAAE,IAAI;SACb;QACD,QAAQ;KACT,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACd,OAAO,CACL,iCACG,MAAM,CAAC,CAAC,CAAC,CACR,6BAAK,SAAS,EAAC,cAAc;QAC3B,6BAAK,SAAS,EAAC,gBAAgB;YAC7B,oBAAC,KAAK,IACJ,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GAClC,CACE;QACN,oBAAC,KAAK,IACJ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,gBAAgB,EAC7B,cAAc,EAAE,mBAAmB,GACnC,CACE,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,iBAAiB;QAC9B,oBAAC,MAAM,OAAG,CACN,CACP,CACG,CACP,CAAA;AACH,CAAC;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,MAAM,MAAM,iBAAiB,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAW;IAC/E,MAAM,GAAG,GAAG,YAAY,CAAE,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,OAAO,CAAC,CAAA;IAClD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAQ,CAAA;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAA;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IACpD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAU,gBAAgB,CAAC,CAAA;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,WAAW,GAAS;QACxB,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;QAC1C,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK;YACZ,WAAW;YACX,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,EAAE;YACb,eAAe;YACf,MAAM,EAAE,IAAI;SACb;QACD,QAAQ;KACT,CAAA;IAED,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QACzC,QAAQ,GAAG,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IACzD,CAAC;IAAC,WAAM,CAAC;QACP,QAAQ,GAAG,KAAK,CAAA;IAClB,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACd,OAAO,CACL,iCACG,MAAM,CAAC,CAAC,CAAC,CACR,6BAAK,SAAS,EAAC,cAAc;QAC3B,6BAAK,SAAS,EAAC,gBAAgB;YAC7B,oBAAC,KAAK,IACJ,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GAClC,CACE;QACN,oBAAC,KAAK,IACJ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,gBAAgB,EAC7B,cAAc,EAAE,mBAAmB,GACnC,CACE,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,iBAAiB;QAC9B,oBAAC,MAAM,OAAG,CACN,CACP,CACG,CACP,CAAA;AACH,CAAC;AAED,eAAe,MAAM,CAAA"}
@@ -1,21 +1,15 @@
1
1
  import React from 'react';
2
2
  import { Handle, Position } from 'reactflow';
3
- import { CompositionType } from '../types';
4
3
  import { compositionEdgeColors } from '../constants/node';
5
- const compositionSymbols = {
6
- [CompositionType.OneOf]: '⊕',
7
- [CompositionType.AnyOf]: '⊛',
8
- [CompositionType.AllOf]: '',
9
- [CompositionType.Not]: '⊘',
10
- };
11
4
  const SchemaNode = ({ data }) => {
12
5
  const { label, compositionType, isRoot } = data;
13
- const symbol = compositionType ? compositionSymbols[compositionType] : null;
14
6
  const symbolColor = compositionType ? compositionEdgeColors[compositionType] : undefined;
15
7
  return (React.createElement("div", { className: 'custom-node' },
16
8
  !isRoot && React.createElement(Handle, { type: 'target', position: Position.Left }),
17
9
  React.createElement("span", { className: 'custom-node-label' }, label),
18
- symbol && (React.createElement("span", { className: 'composition-symbol', style: { color: symbolColor }, title: compositionType || undefined }, symbol)),
10
+ symbolColor && (React.createElement(React.Fragment, null,
11
+ React.createElement("span", { className: 'composition-symbol', style: { color: symbolColor }, "aria-hidden": 'true' }),
12
+ React.createElement("span", { className: 'composition-tooltip' }, compositionType))),
19
13
  React.createElement(Handle, { type: 'source', position: Position.Right, style: { background: symbolColor || undefined } })));
20
14
  };
21
15
  export default SchemaNode;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomNode.js","sourceRoot":"","sources":["../../../src/components/CustomNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,eAAe,EAAY,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,MAAM,kBAAkB,GAAoC;IAC1D,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG;IAC5B,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG;IAC5B,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE;IAC3B,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG;CAC3B,CAAA;AAED,MAAM,UAAU,GAAkC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7D,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3E,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAExF,OAAO,CACL,6BAAK,SAAS,EAAC,aAAa;QACzB,CAAC,MAAM,IAAI,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAI;QAE7D,8BAAM,SAAS,EAAC,mBAAmB,IAAE,KAAK,CAAQ;QAEjD,MAAM,IAAI,CACT,8BAAM,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,IAAI,SAAS,IACpG,MAAM,CACF,CACR;QAED,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,IAAI,SAAS,EAAE,GAAI,CAC/F,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"CustomNode.js","sourceRoot":"","sources":["../../../src/components/CustomNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAA;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,MAAM,UAAU,GAAkC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7D,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/C,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAExF,OAAO,CACL,6BAAK,SAAS,EAAC,aAAa;QACzB,CAAC,MAAM,IAAI,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAI;QAE7D,8BAAM,SAAS,EAAC,mBAAmB,IAAE,KAAK,CAAQ;QAEjD,WAAW,IAAI,CACd;YACE,8BAAM,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,iBAAc,MAAM,GAAQ;YAC9F,8BAAM,SAAS,EAAC,qBAAqB,IAAE,eAAe,CAAQ,CAC7D,CACJ;QAED,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,IAAI,SAAS,EAAE,GAAI,CAC/F,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,3 @@
1
+ import Ajv from 'ajv';
2
+ import Ajv2020 from 'ajv/dist/2020';
3
+ export declare const getValidator: (schemaId?: string) => Ajv | Ajv2020;
@@ -0,0 +1,15 @@
1
+ import Ajv from 'ajv';
2
+ import Ajv2020 from 'ajv/dist/2020';
3
+ import AjvDraft04 from 'ajv-draft-04';
4
+ const normalizeSchemaId = (schemaId) => schemaId === null || schemaId === void 0 ? void 0 : schemaId.trim().replace(/#$/, '').toLowerCase();
5
+ export const getValidator = (schemaId) => {
6
+ const normalizedSchemaId = normalizeSchemaId(schemaId);
7
+ if (normalizedSchemaId === null || normalizedSchemaId === void 0 ? void 0 : normalizedSchemaId.includes('draft-04')) {
8
+ return new AjvDraft04();
9
+ }
10
+ if (normalizedSchemaId === null || normalizedSchemaId === void 0 ? void 0 : normalizedSchemaId.includes('2020-12')) {
11
+ return new Ajv2020();
12
+ }
13
+ return new Ajv();
14
+ };
15
+ //# sourceMappingURL=ajv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ajv.js","sourceRoot":"","sources":["../../../src/helpers/ajv.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,OAAO,MAAM,eAAe,CAAA;AACnC,OAAO,UAAU,MAAM,cAAc,CAAA;AAErC,MAAM,iBAAiB,GAAG,CAAC,QAAiB,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAA;AAEjG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAiB,EAAE,EAAE;IAChD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAEtD,IAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,UAAU,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,OAAO,EAAE,CAAA;IACtB,CAAC;IAED,OAAO,IAAI,GAAG,EAAE,CAAA;AAClB,CAAC,CAAA"}
@@ -632,6 +632,39 @@
632
632
  background: white;
633
633
  }
634
634
 
635
+ .composition-tooltip {
636
+ position: absolute;
637
+ left: 50%;
638
+ top: -30px;
639
+ transform: translateX(-50%);
640
+ background: #0f172a;
641
+ color: #f8fafc;
642
+ font-size: 11px;
643
+ line-height: 1;
644
+ padding: 5px 7px;
645
+ border-radius: 4px;
646
+ white-space: nowrap;
647
+ opacity: 0;
648
+ pointer-events: none;
649
+ transition: opacity 0.15s ease;
650
+ z-index: 20;
651
+ }
652
+
653
+ .composition-tooltip::after {
654
+ content: '';
655
+ position: absolute;
656
+ left: 50%;
657
+ top: 100%;
658
+ transform: translateX(-50%);
659
+ border-width: 4px;
660
+ border-style: solid;
661
+ border-color: #0f172a transparent transparent transparent;
662
+ }
663
+
664
+ .custom-node:hover .composition-tooltip {
665
+ opacity: 1;
666
+ }
667
+
635
668
  .required-sentence {
636
669
  font-size: 12px;
637
670
  font-style: italic;
@@ -1,4 +1,4 @@
1
- import { JSONSchema7Object } from 'json-schema';
1
+ import { JSONSchema4Object, JSONSchema7Object } from 'json-schema';
2
2
  import { Node } from 'reactflow';
3
3
  export declare enum CompositionType {
4
4
  OneOf = "oneOf",
@@ -9,7 +9,7 @@ export declare enum CompositionType {
9
9
  export interface ISchyma {
10
10
  title: string;
11
11
  description: string;
12
- schema: JSONSchema7Object;
12
+ schema: JSONSchema4Object | JSONSchema7Object;
13
13
  defaultCollapsed?: boolean;
14
14
  }
15
15
  export interface IObject {
@@ -27,6 +27,9 @@ function getSchemaName(schema, label, index) {
27
27
  }
28
28
  }
29
29
  }
30
+ if (schema.type && schema.const) {
31
+ return `${schema.const}`;
32
+ }
30
33
  if (schema.type && schema.type !== 'object') {
31
34
  return `${schema.type}`;
32
35
  }
@@ -84,6 +87,8 @@ export const handleCompositions = (schema, mergedProps, label) => {
84
87
  }
85
88
  else {
86
89
  const name = getSchemaName(item, label, i);
90
+ console.log(name);
91
+ console.log(item);
87
92
  mergedProps[name] = Object.assign(Object.assign({}, item), { _compositionSource: compositionType });
88
93
  }
89
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compositions.js","sourceRoot":"","sources":["../../../src/utils/compositions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compositions.js","sourceRoot":"","sources":["../../../src/utils/compositions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "schyma",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "JSON Schemas Visualizer React component",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -70,6 +70,7 @@
70
70
  "@tisoap/react-flow-smart-edge": "^4.0.1",
71
71
  "@types/json-schema": "^7.0.12",
72
72
  "ajv": "^8.12.0",
73
+ "ajv-draft-04": "^1.0.0",
73
74
  "json-schema-traverse": "^1.0.0",
74
75
  "node-fetch": "^3.3.1",
75
76
  "react-syntax-highlighter": "^15.5.0",