1.23.1 • Published 9 months ago

@gorules/jdm-editor v1.23.1

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

JDM Editor

JDM Editor is an open-source React component for crafting and designing JDM (JSON Decision model) files. Whether you’re a developer, data analyst, or decision model expert, JDM Editor can help you harness the full potential of decision modeling, making it more accessible and manageable than ever before

A JDM Editor Live demo and usage at https://gorules.github.io/jdm-editor/

Installation

npm i @gorules/jdm-editor

Usage

...
import '@gorules/jdm-editor/dist/style.css';
import { DecisionGraph, JdmConfigProvider } from '@gorules/jdm-editor';
...

<JdmConfigProvider>
  <DecisionGraph
    value={graph}
    onChange={(val) => setGraph(val as any)}
  />
</JdmConfigProvider>

Decision Graph

export type DecisionGraphProps = {
  id?: string;
  forwardedRef?: (instance: DecisionGraphRef) => void;
  defaultValue?: DecisionGraphType;
  value?: DecisionGraphType;
  disabled?: boolean;
  configurable?: boolean;
  components?: CustomNodeType[];
  onChange?: (val: DecisionGraphType) => void;
  manager?: DragDropManager;
  reactFlowProOptions?: ProOptions;
  onReactFlowInit?: () => void;
  simulate?: Simulation;
};

Decision Table

API

export type DecisionTableProps = {
  id?: string;
  defaultValue?: DecisionTableType;
  value?: DecisionTableType;
  onChange?: (decisionTable: DecisionTableType) => void;
  activeRules?: string[];
  configurable?: boolean;
  disabled?: boolean;
  disableHitPolicy?: boolean;
  minColWidth?: number;
  colWidth?: number;
  inputsSchema?: SchemaSelectProps[];
  outputsSchema?: SchemaSelectProps[];
  cellRenderer?: (props: CellProps) => JSX.Element | null | undefined;
};

Self-hosting Monaco Editor

To self-host monaco editor in Vite.

import type { Monaco } from '@monaco-editor/react';
import { loader } from '@monaco-editor/react';
import * as monaco from 'monaco-editor';
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';

declare global {
  interface Window {
    monaco?: Monaco;
  }
}

self.monaco = monaco;

self.MonacoEnvironment = {
  getWorker(workerId: string, label: string): Promise<Worker> | Worker {
    if (label === 'json') {
      return new jsonWorker();
    }
    if (label === 'css' || label === 'scss' || label === 'less') {
      return new cssWorker();
    }
    if (label === 'html' || label === 'handlebars' || label === 'razor') {
      return new htmlWorker();
    }
    if (label === 'typescript' || label === 'javascript') {
      return new tsWorker();
    }

    return new editorWorker();
  },
};

loader.config({ monaco });

For webpack and other configurations, you may require some additional loaders, such as https://www.npmjs.com/package/monaco-editor-webpack-plugin.

License

MIT © GoRules

1.23.0

9 months ago

1.23.1

9 months ago

1.22.1

9 months ago

1.22.2

9 months ago

1.21.0

9 months ago

1.22.0

9 months ago

1.20.5

9 months ago

1.20.3

9 months ago

1.20.4

9 months ago

1.20.1

9 months ago

1.20.2

9 months ago

1.20.0

9 months ago

1.18.1

9 months ago

1.18.0

10 months ago

1.18.2

9 months ago

1.19.0

9 months ago

1.19.1

9 months ago

1.16.1

10 months ago

1.17.2

10 months ago

1.17.1

10 months ago

1.17.0

10 months ago

1.16.0

10 months ago

1.16.1-beta.0

10 months ago

1.15.1

10 months ago

1.16.0-beta.0

10 months ago

1.15.0

11 months ago

1.14.0

11 months ago

1.12.0

11 months ago

1.8.0

1 year ago

1.6.1

1 year ago

1.6.0

1 year ago

1.7.4

1 year ago

1.11.0

12 months ago

1.13.0

11 months ago

1.11.1

12 months ago

1.7.3

1 year ago

1.9.0

1 year ago

1.7.2

1 year ago

1.7.1

1 year ago

1.7.0

1 year ago

1.10.0

12 months ago

1.5.2

1 year ago

1.5.1

1 year ago

1.5.0

1 year ago

1.4.3

1 year ago

1.4.2

1 year ago

1.4.1

1 year ago

1.4.0

1 year ago

1.3.0-beta.2

1 year ago

1.3.0-beta.1

1 year ago

1.3.0-beta.0

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.1.0

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

1.0.0-beta.6

1 year ago

1.0.0-beta.7

1 year ago

1.0.0-beta.8

1 year ago

1.0.0-beta.4

1 year ago

1.0.0-beta.5

1 year ago

1.0.0-beta.2

1 year ago

1.0.0-beta.3

1 year ago

1.0.0-beta.1

1 year ago

0.5.1

1 year ago

0.5.0

2 years ago

0.4.1-beta.2

2 years ago

0.4.1-beta.1

2 years ago

0.1.6-beta.1

2 years ago

0.4.0-beta.0

2 years ago

0.4.0-beta.1

2 years ago

0.4.0-beta.2

2 years ago

0.4.0-beta.3

2 years ago

0.2.2-beta.2

2 years ago

0.2.0-beta.2

2 years ago

0.2.2-beta.1

2 years ago

0.2.0-beta.1

2 years ago

0.2.2-beta.15

2 years ago

0.2.2-beta.4

2 years ago

0.2.2-beta.14

2 years ago

0.2.2-beta.3

2 years ago

0.2.2-beta.6

2 years ago

0.2.2-beta.12

2 years ago

0.2.2-beta.5

2 years ago

0.2.0-beta.5

2 years ago

0.2.2-beta.11

2 years ago

0.2.2-beta.8

2 years ago

0.2.0-beta.4

2 years ago

0.2.2-beta.10

2 years ago

0.2.2-beta.7

2 years ago

0.2.0-beta.3

2 years ago

0.1.0

2 years ago

0.2.2-beta.9

2 years ago

0.3.0

2 years ago

0.1.2

2 years ago

0.2.0

2 years ago

0.1.1

2 years ago

0.1.4

2 years ago

0.4.0

2 years ago

0.3.1

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.0.10

2 years ago

0.0.11

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago