mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-01-12 07:12:54 +01:00
Compare commits
1 Commits
13-remove-
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
360cdc46f2 |
36
CONTRIBUTING.md
Normal file
36
CONTRIBUTING.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Contributing to OpenNoodl
|
||||||
|
|
||||||
|
Thank you for your interest in contributing! Here’s how you can help:
|
||||||
|
|
||||||
|
## How to Contribute
|
||||||
|
|
||||||
|
1. **Fork the repository** and create your feature branch:
|
||||||
|
```bash
|
||||||
|
git checkout -b feature/my-feature
|
||||||
|
```
|
||||||
|
2. **Make your changes** and ensure your code follows the existing style and conventions.
|
||||||
|
3. **Test your changes** locally.
|
||||||
|
4. **Commit your changes** with a clear message:
|
||||||
|
```bash
|
||||||
|
git commit -am 'Add new feature'
|
||||||
|
```
|
||||||
|
5. **Push to your branch**:
|
||||||
|
```bash
|
||||||
|
git push origin feature/my-feature
|
||||||
|
```
|
||||||
|
6. **Open a pull request** on GitHub. Describe your changes and the motivation behind them.
|
||||||
|
|
||||||
|
## Guidelines
|
||||||
|
|
||||||
|
- The branch name should be descriptive of the feature or fix. Either `feature/<my-feature>` or `fix/<my-fix>` prefixes are recommended. Also including an issue number can be helpful.
|
||||||
|
- Follow the coding style used in the project.
|
||||||
|
- Write clear, concise commit messages.
|
||||||
|
- Add tests for new features or bug fixes when possible.
|
||||||
|
- Document any new functionality.
|
||||||
|
|
||||||
|
## Need Help?
|
||||||
|
|
||||||
|
- Join our [community](https://the-low-code-foundation.fibery.io/invite/5NtlTThnCPh2vaAk)
|
||||||
|
- Open an issue for questions or suggestions.
|
||||||
|
|
||||||
|
Thank you for helping improve OpenNoodl!
|
||||||
19
README.md
19
README.md
@@ -1,6 +1,6 @@
|
|||||||
# OpenNoodl
|
# OpenNoodl
|
||||||
|
|
||||||
OpenNoodl is a fork of the original Noodl open source code under GPL-3.0 license. OpenNoodl / Noodl is a front end React app builder with a visual programming interface.
|
OpenNoodl is a fork of the original Noodl open source code under GPL-3.0 license. OpenNoodl / Noodl is a front end React app builder with a visual programming interface.
|
||||||
|
|
||||||
OpenNoodl will aim to stay entirely in sync with the original repository, including future updates to this repository. A roadmap for updates will be published soon.
|
OpenNoodl will aim to stay entirely in sync with the original repository, including future updates to this repository. A roadmap for updates will be published soon.
|
||||||
|
|
||||||
@@ -40,6 +40,21 @@ If you prefer self-hosting or a local backend, while still taking advantage of t
|
|||||||
|
|
||||||
See the original Noodl documentation below
|
See the original Noodl documentation below
|
||||||
|
|
||||||
|
# Contribution
|
||||||
|
|
||||||
|
We welcome contributions to OpenNoodl! To contribute:
|
||||||
|
|
||||||
|
1. **Fork the repository** and create your feature branch (`git checkout -b feature/my-feature`).
|
||||||
|
2. **Make your changes** and follow the existing code style.
|
||||||
|
3. **Test your changes** locally.
|
||||||
|
4. **Commit your changes** (`git commit -am 'Add new feature'`).
|
||||||
|
5. **Push to your branch** (`git push origin feature/my-feature`).
|
||||||
|
6. **Open a pull request** describing your changes.
|
||||||
|
|
||||||
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for details and our code of conduct.
|
||||||
|
|
||||||
|
If you have questions, join our [community](https://the-low-code-foundation.fibery.io/invite/5NtlTThnCPh2vaAk) or open an issue.
|
||||||
|
|
||||||
# Noodl
|
# Noodl
|
||||||
|
|
||||||
[Noodl](https://noodl.net) is a low-code platform where designers and developers build custom applications and experiences. Designed as a visual programming environment, it aims to expedite your development process. It promotes the swift and efficient creation of applications, requiring minimal coding knowledge.
|
[Noodl](https://noodl.net) is a low-code platform where designers and developers build custom applications and experiences. Designed as a visual programming environment, it aims to expedite your development process. It promotes the swift and efficient creation of applications, requiring minimal coding knowledge.
|
||||||
@@ -88,5 +103,5 @@ Packaged licensed under MIT:
|
|||||||
- `noodl-runtime`
|
- `noodl-runtime`
|
||||||
- `noodl-viewer-cloud`
|
- `noodl-viewer-cloud`
|
||||||
- `noodl-viewer-react`
|
- `noodl-viewer-react`
|
||||||
|
|
||||||
You can find a MIT LICENSE file in each of these packages. The rest of the repository is licensed under GPLv3.
|
You can find a MIT LICENSE file in each of these packages. The rest of the repository is licensed under GPLv3.
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ export function Checkbox({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{children && <div className={css['ChildContainer']}>{cloneElement(children, { isChecked })}</div>}
|
{children && <div className={css['ChildContainer']}>{cloneElement(children as TSFixme, { isChecked })}</div>}
|
||||||
{label && <InputLabelSection label={label} />}
|
{label && <InputLabelSection label={label} />}
|
||||||
</label>
|
</label>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ export function MenuDialog({
|
|||||||
{item.label}
|
{item.label}
|
||||||
</Label>
|
</Label>
|
||||||
</div>
|
</div>
|
||||||
{item.component && cloneElement(item.component(() => onClose()))}
|
{item.component && cloneElement(item.component(() => onClose()) as TSFixme)}
|
||||||
<div className={css['EndSlot']}>
|
<div className={css['EndSlot']}>
|
||||||
{item.endSlot && typeof item.endSlot === 'string' && <Text>{item.endSlot}</Text>}
|
{item.endSlot && typeof item.endSlot === 'string' && <Text>{item.endSlot}</Text>}
|
||||||
{item.endSlot && typeof item.endSlot !== 'string' && item.endSlot}
|
{item.endSlot && typeof item.endSlot !== 'string' && item.endSlot}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export enum PropertyPanelIconRadioSize {
|
|||||||
Default = 'default',
|
Default = 'default',
|
||||||
Large = 'large'
|
Large = 'large'
|
||||||
}
|
}
|
||||||
export interface PropertyPanelIconRadioProperties {
|
interface PropertyPanelIconRadioProperties {
|
||||||
name: string;
|
name: string;
|
||||||
options: {
|
options: {
|
||||||
icon: SingleSlot;
|
icon: SingleSlot;
|
||||||
|
|||||||
@@ -2,15 +2,15 @@ import classNames from 'classnames';
|
|||||||
import React, { useMemo } from 'react';
|
import React, { useMemo } from 'react';
|
||||||
|
|
||||||
import { PropertyPanelBaseInputProps } from '@noodl-core-ui/components/property-panel/PropertyPanelBaseInput';
|
import { PropertyPanelBaseInputProps } from '@noodl-core-ui/components/property-panel/PropertyPanelBaseInput';
|
||||||
import { PropertyPanelButton, PropertyPanelButtonProps } from '@noodl-core-ui/components/property-panel/PropertyPanelButton';
|
import { PropertyPanelButton } from '@noodl-core-ui/components/property-panel/PropertyPanelButton';
|
||||||
import { PropertyPanelCheckbox } from '@noodl-core-ui/components/property-panel/PropertyPanelCheckbox';
|
import { PropertyPanelCheckbox } from '@noodl-core-ui/components/property-panel/PropertyPanelCheckbox';
|
||||||
import { PropertyPanelIconRadioInput, PropertyPanelIconRadioProperties } from '@noodl-core-ui/components/property-panel/PropertyPanelIconRadioInput';
|
import { PropertyPanelIconRadioInput } from '@noodl-core-ui/components/property-panel/PropertyPanelIconRadioInput';
|
||||||
import { PropertyPanelLengthUnitInput } from '@noodl-core-ui/components/property-panel/PropertyPanelLengthUnitInput';
|
import { PropertyPanelLengthUnitInput } from '@noodl-core-ui/components/property-panel/PropertyPanelLengthUnitInput';
|
||||||
import { PropertyPanelNumberInput } from '@noodl-core-ui/components/property-panel/PropertyPanelNumberInput';
|
import { PropertyPanelNumberInput } from '@noodl-core-ui/components/property-panel/PropertyPanelNumberInput';
|
||||||
import { PropertyPanelSelectInput, PropertyPanelSelectProperties } from '@noodl-core-ui/components/property-panel/PropertyPanelSelectInput';
|
import { PropertyPanelSelectInput } from '@noodl-core-ui/components/property-panel/PropertyPanelSelectInput';
|
||||||
import { PropertyPanelSliderInput, PropertyPanelSliderInputProps } from '@noodl-core-ui/components/property-panel/PropertyPanelSliderInput';
|
import { PropertyPanelSliderInput } from '@noodl-core-ui/components/property-panel/PropertyPanelSliderInput';
|
||||||
import { PropertyPanelTextInput } from '@noodl-core-ui/components/property-panel/PropertyPanelTextInput';
|
import { PropertyPanelTextInput } from '@noodl-core-ui/components/property-panel/PropertyPanelTextInput';
|
||||||
import { PropertyPanelTextRadioInput, PropertyPanelTextRadioProperties } from '@noodl-core-ui/components/property-panel/PropertyPanelTextRadioInput';
|
import { PropertyPanelTextRadioInput } from '@noodl-core-ui/components/property-panel/PropertyPanelTextRadioInput';
|
||||||
import { Slot } from '@noodl-core-ui/types/global';
|
import { Slot } from '@noodl-core-ui/types/global';
|
||||||
|
|
||||||
import css from './PropertyPanelInput.module.scss';
|
import css from './PropertyPanelInput.module.scss';
|
||||||
@@ -31,13 +31,10 @@ export enum PropertyPanelInputType {
|
|||||||
// SizeMode = 'size-mode',
|
// SizeMode = 'size-mode',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type PropertyPanelProps = undefined |PropertyPanelIconRadioProperties | PropertyPanelButtonProps["properties"]
|
|
||||||
| PropertyPanelSliderInputProps ["properties"] | PropertyPanelSelectProperties | PropertyPanelTextRadioProperties
|
|
||||||
|
|
||||||
export interface PropertyPanelInputProps extends Omit<PropertyPanelBaseInputProps, 'type'> {
|
export interface PropertyPanelInputProps extends Omit<PropertyPanelBaseInputProps, 'type'> {
|
||||||
label: string;
|
label: string;
|
||||||
inputType: PropertyPanelInputType;
|
inputType: PropertyPanelInputType;
|
||||||
properties: PropertyPanelProps;
|
properties: TSFixme;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function PropertyPanelInput({
|
export function PropertyPanelInput({
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import { normalizeAlphanumericString } from '../../../utils/normalizeAlphanumeri
|
|||||||
import css from './PropertyPanelLengthUnitInput.module.scss';
|
import css from './PropertyPanelLengthUnitInput.module.scss';
|
||||||
|
|
||||||
export interface PropertyPanelLengthUnitInputProps extends Omit<PropertyPanelBaseInputProps, 'type'> {
|
export interface PropertyPanelLengthUnitInputProps extends Omit<PropertyPanelBaseInputProps, 'type'> {
|
||||||
|
properties?: TSFixme;
|
||||||
hasSmallText?: boolean;
|
hasSmallText?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,10 @@ import {
|
|||||||
|
|
||||||
import { extractNumber } from '../../../utils/extractNumber';
|
import { extractNumber } from '../../../utils/extractNumber';
|
||||||
|
|
||||||
|
export interface PropertyPanelNumberInputProps extends Omit<PropertyPanelBaseInputProps, 'type'> {
|
||||||
|
properties?: TSFixme;
|
||||||
|
}
|
||||||
|
|
||||||
export function PropertyPanelNumberInput({
|
export function PropertyPanelNumberInput({
|
||||||
value,
|
value,
|
||||||
isChanged,
|
isChanged,
|
||||||
@@ -15,7 +19,7 @@ export function PropertyPanelNumberInput({
|
|||||||
onFocus,
|
onFocus,
|
||||||
onBlur,
|
onBlur,
|
||||||
onKeyDown
|
onKeyDown
|
||||||
}: PropertyPanelBaseInputProps) {
|
}: PropertyPanelNumberInputProps) {
|
||||||
// TODO: This component doesnt handle the value types correct
|
// TODO: This component doesnt handle the value types correct
|
||||||
|
|
||||||
const [displayedInputValue, setDisplayedInputValue] = useState(value?.toString() || '');
|
const [displayedInputValue, setDisplayedInputValue] = useState(value?.toString() || '');
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import {
|
|||||||
} from '@noodl-core-ui/components/property-panel/PropertyPanelBaseInput';
|
} from '@noodl-core-ui/components/property-panel/PropertyPanelBaseInput';
|
||||||
|
|
||||||
export interface PropertyPanelPasswordInputProps extends Omit<PropertyPanelBaseInputProps<string>, 'type'> {
|
export interface PropertyPanelPasswordInputProps extends Omit<PropertyPanelBaseInputProps<string>, 'type'> {
|
||||||
value: string;
|
properties?: TSFixme;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function PropertyPanelPasswordInput({
|
export function PropertyPanelPasswordInput({
|
||||||
|
|||||||
@@ -9,11 +9,7 @@ import { linearMap } from '../../../utils/linearMap';
|
|||||||
import css from './PropertyPanelSliderInput.module.scss';
|
import css from './PropertyPanelSliderInput.module.scss';
|
||||||
|
|
||||||
export interface PropertyPanelSliderInputProps extends Omit<PropertyPanelBaseInputProps, 'type'> {
|
export interface PropertyPanelSliderInputProps extends Omit<PropertyPanelBaseInputProps, 'type'> {
|
||||||
properties: {
|
properties: TSFixme;
|
||||||
min: number | string;
|
|
||||||
max: number | string;
|
|
||||||
step: number | string;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function PropertyPanelSliderInput({
|
export function PropertyPanelSliderInput({
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import {
|
|||||||
} from '@noodl-core-ui/components/property-panel/PropertyPanelBaseInput';
|
} from '@noodl-core-ui/components/property-panel/PropertyPanelBaseInput';
|
||||||
|
|
||||||
export interface PropertyPanelTextInputProps extends Omit<PropertyPanelBaseInputProps<string>, 'type'> {
|
export interface PropertyPanelTextInputProps extends Omit<PropertyPanelBaseInputProps<string>, 'type'> {
|
||||||
value: string;
|
properties?: TSFixme;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function PropertyPanelTextInput({
|
export function PropertyPanelTextInput({
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { PropertyPanelBaseInputProps } from '@noodl-core-ui/components/property-
|
|||||||
|
|
||||||
import css from './PropertyPanelTextRadioInput.module.scss';
|
import css from './PropertyPanelTextRadioInput.module.scss';
|
||||||
|
|
||||||
export interface PropertyPanelTextRadioProperties {
|
interface PropertyPanelTextRadioProperties {
|
||||||
name: string;
|
name: string;
|
||||||
options: {
|
options: {
|
||||||
label: string;
|
label: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user