Skip to content

Dev -> Main Release 2.3.0 preparation #643

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 26 commits into from
Jan 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
8ee1306
adapted Chinese language file
Jan 14, 2024
067ded9
Style Icons
Jan 14, 2024
e1e8b3b
Button Hover fix, Text Weight
Jan 14, 2024
6e1ba90
fix for color picker to show selected color
raheeliftikhar5 Jan 15, 2024
96da6e4
Merge pull request #634 from raheeliftikhar5/color-picker-fix
FalkWolsky Jan 15, 2024
a6685f9
Merge pull request #635 from lowcoder-org/dev
FalkWolsky Jan 15, 2024
6ee55e2
Allow editing folder name + handle queries name overflow issue
raheeliftikhar5 Jan 15, 2024
c8282d1
Merge pull request #636 from raheeliftikhar5/data-queries-fix
FalkWolsky Jan 15, 2024
0ece0bf
Button Hover fix, Text Weight, Background, Tabs
Jan 15, 2024
952da2f
Merge branch 'dev' into feature/styletypes-improvement
FalkWolsky Jan 15, 2024
e616845
Merge pull request #637 from lowcoder-org/feature/styletypes-improvement
FalkWolsky Jan 16, 2024
6f055ab
separate container styling into header, footer and body styles
raheeliftikhar5 Jan 16, 2024
90babb9
Merge pull request #640 from raheeliftikhar5/container-styling
FalkWolsky Jan 16, 2024
fb51faa
Style Update and Icon Introduction
Jan 16, 2024
dda2b04
Adding Font Family to Text Display
Jan 16, 2024
62db501
new: rename and consolidate environment variables
ludomikula Jan 15, 2024
27ca2d4
new: rename and consolidate environment variables
ludomikula Jan 15, 2024
0d40d43
Merge pull request #641 from lowcoder-org/env-variables-cleanup
FalkWolsky Jan 16, 2024
d5eb4b3
Icon Fix in Table Column Editor
Jan 16, 2024
e60d2d0
Setting the Version
Jan 16, 2024
0fae9ef
updated hillchart comp
raheeliftikhar5 Jan 16, 2024
689cc21
Merge branch 'dev' into update-hillchart
FalkWolsky Jan 16, 2024
a7f20af
Merge pull request #642 from raheeliftikhar5/update-hillchart
FalkWolsky Jan 16, 2024
7ebe581
Fixing tabbed container showHeader
Jan 16, 2024
8c70129
Version Naming and small Fixes
Jan 17, 2024
850642e
Merge branch 'main' into dev
FalkWolsky Jan 17, 2024
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file modified .DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ client/packages/lowcoder-plugin-demo/.yarn/install-state.gz
client/packages/lowcoder-plugin-demo/yarn.lock
client/packages/lowcoder-plugin-demo/.yarn/cache/@types-node-npm-16.18.68-56f72825c0-094ae9ed80.zip
.DS_Store
.DS_Store
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@

<div align="center">
<h1 style="border-bottom: none; margin-bottom: 0">Lowcoder</h1>
<h3 style="margin-top: 0">Lowcoder is the best Retool, Appsmith or Tooljet Alternative.</h3>
<h3 style="margin-top: 0">This is the only Platform, which closes the gap between App Development, Website Development and Slide-Presentations.</h3>
<p>
Create internal and external software applications for your Company and your Customers with minimal coding experience.
Create software applications (internal and customer-facing!) and Meeting/Collaboration tools for your Company and your Customers with minimal coding experience.
</p>
<h3 style="margin-top: 0">Lowcoder is the best Retool, Appsmith or Tooljet Alternative.</h3>
</div>

<img src="https://1167272343-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjNgeI0mUzgw6Re92iTOw%2Fuploads%2FnwXJC1XBqP2MvTQitPyo%2FApp%20Editor%20%7C%20Main%20Screeen%20clean.png?alt=media&token=e5fba81b-82a7-4c0e-a15d-baa781d5b13a"/>

## 📢 Use Lowcoder in 3 steps
1. Connect to any data sources or APIs.
2. Build UI with 50+ components.
2. Build UI with 60+ components.
3. Share with colleagues and customers.

## 💡 Why Lowcoder
Expand Down Expand Up @@ -52,7 +53,7 @@ Lowcoder wants to take a step forward. More specifically, Lowcoder is:
- build a Meeting tool with peace in mind. Blue buttons - ok. Red corners or circle Videostream - ok too.
- embedd applications in your Video-Meetings, so attendees can enjoy collaborative "anything". From shopping to working and gaming...
### Lowcoder vs Powerapps
- build a apps way faster than in Power Apps. Save up to 50& of the time at least.
- build a apps way faster than in Power Apps. Save up to 50& of the time and costs at least.
- Use self-hosting to keep all apps and data under your control for example at the own baremetals.
### Lowcoder vs Retool
- Lowcoder is open-source. You don't need to worry about vendor lock-in or being stuck with an outdated version of the software.
Expand Down Expand Up @@ -84,7 +85,7 @@ And we mean it... Day by day!
🔎 Submit an issue here on [GitHub](https://github.com/lowcoder-org/lowcoder/issues)

## 💻 Deployment Options
You can access Lowcoder from [cloud-hosted version](https://app.lowcoder.cloud/) at any time, or use the following resources for deploying Lowcoder on different platforms:
You can access Lowcoder from [cloud-hosted version](https://app.lowcoder.cloud/) at any time, or use the following resources for self-host Lowcoder on different platforms:
- [Docker](https://docs.lowcoder.cloud/lowcoder-documentation/setup-and-run/self-hosting)

## 💪 Contributing
Expand Down
10 changes: 5 additions & 5 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,23 @@
}
},
"env": {
"ENCRYPTION_PASSWORD": {
"LOWCODER_DB_ENCRYPTION_PASSWORD": {
"description": "The encryption password used to encrypt all sensitive credentials in the database. You can use any random string (eg abcd).",
"required": false
},
"ENCRYPTION_SALT": {
"LOWCODER_DB_ENCRYPTION_SALT": {
"description": "The encryption salt used to encrypt all sensitive credentials in the database. You can use any random string (eg abcd).",
"required": false
},
"CORS_ALLOWED_DOMAINS": {
"LOWCODER_CORS_DOMAINS": {
"description": "The domains supported for CORS requests. All domains are allowed by default. If there are multiple domains, please separate them with commas.",
"required": false
},
"MONGODB_URL": {
"LOWCODER_MONGODB_URL": {
"description": "Your Mongo Database URL.",
"required": false
},
"REDIS_URL": {
"LOWCODER_REDIS_URL": {
"description": "Your Redis Database URL.",
"required": false
}
Expand Down
2 changes: 1 addition & 1 deletion client/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
dev
2.3.0
12 changes: 8 additions & 4 deletions client/packages/lowcoder-cli-template-typescript/package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "lowcoder-cli-template-typescript",
"version": "0.0.16",
"version": "0.0.20",
"type": "module",
"scripts": {
"start": "vite",
"start": "NODE_OPTIONS=--max_old_space_size=6144 vite",
"build": "lowcoder-cli build",
"build_publish": "lowcoder-cli build --publish"
},
Expand All @@ -13,11 +13,15 @@
"hillcharts": {
"name": "Hillcharts Demo",
"icon": "./icons/hills.svg",
"description": "Hillchart Plugin Demo Component"
"description": "Hillchart Plugin Demo Component",
"layoutInfo": {
"w": 10,
"h": 40
}
}
}
},
"devDependencies": {
"dependencies": {
"@observablehq/runtime": "^4.8.2",
"@types/react": "^18.2.45",
"@types/react-dom": "^18.2.18",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,22 @@ import {
Section,
withDefault,
withExposingConfigs,
withMethodExposing,
eventHandlerControl,
styleControl,
toJSONObjectArray,
jsonControl,
AutoHeightControl,
EditorContext,
} from "lowcoder-sdk";
import { useResizeDetector } from "react-resize-detector";

import styles from "./styles.module.css";

import { i18nObjs, trans } from "./i18n/comps";

import { Chart } from './vendors'
import { useContext, useEffect, useRef, useState } from "react";
import { useState } from "react";


export const CompStyles = [
Expand Down Expand Up @@ -59,7 +61,13 @@ export const CompStyles = [
}
] as const;


interface Point {
id: number,
color?: string,
description?: string,
x: number,
size?: number,
}

// const HillchartsCompBase = new UICompBuilder(childrenMap, (props: any) => {
let HillchartsCompBase = (function () {
Expand All @@ -74,42 +82,57 @@ let HillchartsCompBase = (function () {
value: "change",
description: "Triggers when Chart data changes",
},
]),
] as const),
};

return new UICompBuilder(childrenMap, (props: { onEvent: (arg0: string) => void; styles: { backgroundColor: any; border: any; radius: any; borderWidth: any; margin: any; padding: any; textSize: any; }; data: any[] | null | undefined; }) => {
return new UICompBuilder(childrenMap, (props: {
onEvent: any;
styles: { backgroundColor: any; border: any; radius: any; borderWidth: any; margin: any; padding: any; textSize: any; };
data: any[] | null | undefined;
autoHeight: boolean;
}) => {
const handleDataChange = () => {
props.onEvent("change");
};

const conRef = useRef<HTMLDivElement>(null);
const [dimensions, setDimensions] = useState({ width: 400, height: 250 });
const [dimensions, setDimensions] = useState({ width: 480, height: 280 });
const { width, height, ref: conRef } = useResizeDetector({onResize: () =>{
const container = conRef.current;
if(!container || !width || !height) return;

useEffect(() => {
if (conRef.current) {
if(props.autoHeight) {
setDimensions({
width: conRef.current.clientWidth,
height: conRef.current.clientHeight
});
width,
height: dimensions.height,
})
return;
}
}, []);

setDimensions({
width,
height,
})
}});

return (
<div ref={conRef} className={styles.wrapper} style={{
display: "flex",
justifyContent: "center",
height: `100%`,
width: `100%`,
backgroundColor: `${props.styles.backgroundColor}`,
borderColor: `${props.styles.border}`,
borderRadius: `${props.styles.radius}`,
borderWidth: `${props.styles.borderWidth}`,
margin: `${props.styles.margin}`,
padding: `${props.styles.padding}`,
fontSize: `${props.styles.textSize}`,
}}>
<Chart data={props.data} height={dimensions.height} width={dimensions.width} onDataChange={handleDataChange}/>
</div>
<div ref={conRef} className={styles.wrapper} style={{
height: `100%`,
width: `100%`,
backgroundColor: `${props.styles.backgroundColor}`,
borderColor: `${props.styles.border}`,
borderRadius: `${props.styles.radius}`,
borderWidth: `${props.styles.borderWidth}`,
margin: `${props.styles.margin}`,
padding: `${props.styles.padding}`,
fontSize: `${props.styles.textSize}`,
}}>
<Chart
data={props.data}
height={dimensions.height}
width={dimensions.width}
onDataChange={handleDataChange}
/>
</div>
);
})
.setPropertyViewFn((children: any) => {
Expand Down Expand Up @@ -137,6 +160,38 @@ HillchartsCompBase = class extends HillchartsCompBase {
}
};

HillchartsCompBase = withMethodExposing(HillchartsCompBase, [
{
method: {
name: "setPoint",
description: trans("methods.setPoint"),
params: [{
name: "data",
type: "JSON",
description: "JSON value"
}],
},
execute: (comp: any, values: any[]) => {
const point = values[0] as Point;
if(typeof point !== 'object') {
return Promise.reject(trans("methods.invalidInput"))
}
if(!point.id) {
return Promise.reject(trans("methods.requiredField", { field: 'ID' }));
}
if(!point.x) {
return Promise.reject(trans("methods.requiredField", { field: 'X position' }));
}
const data = comp.children.data.getView();
const newData = [
...data,
point,
];
comp.children.data.dispatchChangeValueAction(JSON.stringify(newData, null, 2));
}
},
]);

export default withExposingConfigs(HillchartsCompBase, [
new NameConfig("data", trans("component.data")),
]);
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,9 @@ export const en = {
"component": {
"data": "Hillchart Data",
},
"methods": {
"setPoint": "Set Point",
"invalidInput": "Invalid Input",
"requiredField": "{field} is required",
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
display: flex;
justify-content: center;
align-items: center;
height: 100%;
/* height: 100%; */
border: 1px solid #dddddd;
background-color: white;
}
Original file line number Diff line number Diff line change
Expand Up @@ -194,9 +194,14 @@ function Chart(props) {
// Render an updated chart
runtime.module(define, Inspector.into(chartRef), 'chart');
}
}, [chartRef, props.data]);

return <div ref={useChartRef} style={{ height: "100%" }} />;
}, [chartRef, props.data, props.width, props.height]);

return (
<div
ref={useChartRef}
style={{ height: "100%" }}
/>
);
}


Expand Down
2 changes: 1 addition & 1 deletion client/packages/lowcoder-comps/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "lowcoder-comps",
"version": "0.0.23",
"version": "0.0.24",
"type": "module",
"license": "MIT",
"dependencies": {
Expand Down
4 changes: 4 additions & 0 deletions client/packages/lowcoder-design/src/components/Collapase.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ const Container = styled.div<{ $optColor?: boolean; $simple?: boolean }>`
line-height: 23px;
user-select: none;
cursor: pointer;

.ant-collapse-header-text {
min-width: 0;
}
}

.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ export const ColorSelect = (props: ColorSelectProps) => {
}, 200),
[dispatch]
);

return (
<Popover
trigger={trigger}
Expand Down Expand Up @@ -170,12 +169,12 @@ const BackDiv = styled.div.attrs<{ $color: string }>((props: { $color: string })
`;
// main block
const ColorBlock = styled.div<{ $color: string }>`
background-color: ${(props) => (isValidColor(props.$color) ? props.color : "#FFFFFF")};
background-color: ${(props) => (isValidColor(props.$color) ? props.$color : "#FFFFFF")};
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
height: 24px;
width: 24px;
cursor: pointer;
background-clip: content-box;
overflow: hidden;
`;
`;
18 changes: 10 additions & 8 deletions client/packages/lowcoder-design/src/components/edit.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export const TextWrapper = styled.div`
white-space: nowrap;
`;
const EditIcon = styled(Edit)`
visibility: hidden;
// visibility: hidden;
margin-left: 8px;
flex-shrink: 0;
`;
Expand Down Expand Up @@ -130,13 +130,15 @@ export const EditText = (props: EditTextProps) => {
<TextWrapper className={"taco-edit-text-body"} title={props.text}>
{props.text}
</TextWrapper>
<EditIcon
onClick={(e) => {
e.stopPropagation();
!props.disabled && setEditing(true);
}}
className={"taco-edit-text-icon"}
/>
{props.forceClickIcon && !props.disabled && (
<EditIcon
onClick={(e) => {
e.stopPropagation();
!props.disabled && setEditing(true);
}}
className={"taco-edit-text-icon"}
/>
)}
</EditTextWrapper>
)}
{props.prefixIcon && <Prefix>{props.prefixIcon}</Prefix>}
Expand Down
Loading