cedro 0.1.28 → 0.1.30

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 CHANGED
@@ -14,6 +14,14 @@ Javascript library to build user interfece based on widgets.
14
14
 
15
15
  </div>
16
16
 
17
+ ## Cedro Demo
18
+
19
+ We have created a live demo of **Cedro** on CodeSandbox for you to explore its capabilities. This template provides a hands-on experience, allowing you to see Cedro in action and experiment with it in real-time.
20
+
21
+ [Check out the Cedro Demo on CodeSandbox](https://pyskv2-5173.csb.app)
22
+
23
+ Feel free to [fork the template](https://codesandbox.io/p/github/hdrdevs/vite-cedro/main?layout=%257B%2522sidebarPanel%2522%253A%2522EXPLORER%2522%252C%2522rootPanelGroup%2522%253A%257B%2522direction%2522%253A%2522horizontal%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522id%2522%253A%2522ROOT_LAYOUT%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522cm0gzwaud000620684w92xute%2522%252C%2522sizes%2522%253A%255B100%255D%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522EDITOR%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522id%2522%253A%2522cm0gzwaud000220684q50obd6%2522%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522SHELLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522id%2522%253A%2522cm0gzwaud00042068wm2ct2dl%2522%257D%255D%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522DEVTOOLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522id%2522%253A%2522cm0gzwaud00052068l97sq7ys%2522%257D%255D%257D%255D%252C%2522sizes%2522%253A%255B50%252C50%255D%257D%252C%2522tabbedPanels%2522%253A%257B%2522cm0gzwaud000220684q50obd6%2522%253A%257B%2522id%2522%253A%2522cm0gzwaud000220684q50obd6%2522%252C%2522activeTabId%2522%253A%2522cm0h02bw900372068zcijoffp%2522%252C%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cm0gzwaud00012068qh732zgi%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252FREADME.md%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%252C%257B%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252F.codesandbox%252Ftasks.json%2522%252C%2522id%2522%253A%2522cm0h02bw900372068zcijoffp%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%255D%257D%252C%2522cm0gzwaud00052068l97sq7ys%2522%253A%257B%2522id%2522%253A%2522cm0gzwaud00052068l97sq7ys%2522%252C%2522activeTabId%2522%253A%2522cm0gzwce5000d2068swd73pqe%2522%252C%2522tabs%2522%253A%255B%257B%2522type%2522%253A%2522SETUP_TASKS%2522%252C%2522id%2522%253A%2522cm0gzwce5000d2068swd73pqe%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%252C%2522cm0gzwaud00042068wm2ct2dl%2522%253A%257B%2522id%2522%253A%2522cm0gzwaud00042068wm2ct2dl%2522%252C%2522activeTabId%2522%253A%2522cm0gzwf76000k2068v1hzvy3c%2522%252C%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cm0gzwaud00032068ac13dwl5%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522NEW_TERMINAL%2522%257D%252C%257B%2522type%2522%253A%2522TASK_LOG%2522%252C%2522taskId%2522%253A%2522dev%2522%252C%2522id%2522%253A%2522cm0gzwf76000k2068v1hzvy3c%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%257D%252C%2522showDevtools%2522%253Atrue%252C%2522showShells%2522%253Atrue%252C%2522showSidebar%2522%253Atrue%252C%2522sidebarPanelSize%2522%253A15%257D) and customize it to suit your needs. This is a great way to start learning how to build complex user interfaces with Cedro.
24
+
17
25
  ## Documentation
18
26
 
19
27
  Visit [https://cedro.hdrdevs.com.ar](https://cedro.hdrdevs.com.ar) to view the full documentation.
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "ui-library",
17
17
  "widget-based"
18
18
  ],
19
- "version": "0.1.28",
19
+ "version": "0.1.30",
20
20
  "type": "module",
21
21
  "devDependencies": {
22
22
  "@types/node": "^20.4.4",
@@ -6,7 +6,7 @@ import "@fontsource/roboto/500.css";
6
6
  import "@fontsource/roboto/700.css";
7
7
  import "@fontsource/roboto/900.css";
8
8
  import "material-icons/iconfont/material-icons.css";
9
- import { Widget, WidgetAlignTypes, WidgetTypes } from "../ui/widget.ui";
9
+ import { Widget } from "../ui/widget.ui";
10
10
  import { Screen } from "./screeen.core";
11
11
  import { IApplication, IScreenSize } from "../interfaces/application.interface";
12
12
  import { IWidget, WUICallback, WUIEvent } from "../interfaces/widget.interface";
@@ -23,9 +23,16 @@ import {
23
23
  } from "./themes.core";
24
24
  import { Loading } from "../ui/loading.ui";
25
25
  import { OrientationTypes } from "../types/orientation.type";
26
+ import { WidgetAlignTypes, WidgetTypes } from "../ui/widget.types";
26
27
 
27
28
  declare global {
28
29
  var appConnections: Array<WUICallback>;
30
+
31
+ interface Window {
32
+ app: WApplication | undefined;
33
+ }
34
+
35
+ var app: WApplication | undefined;
29
36
  }
30
37
 
31
38
  class WApplication implements IApplication {
package/src/index.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import Application from "./core/application.core";
2
2
  import { DOMcreateElement, DOMcreateFragment } from "./core/jsxsupport";
3
- import { Widget, WidgetTypes, WidgetAlignTypes } from "./ui/widget.ui";
3
+ import { Widget } from "./ui/widget.ui";
4
4
  import { initWidgetCollection } from "./ui/widget.collection";
5
5
  import { createWidget } from "./ui/widget.builder";
6
+ import { WidgetAlignTypes, WidgetTypes } from "./ui/widget.types";
6
7
 
7
8
  initWidgetCollection();
8
9
 
@@ -1,4 +1,4 @@
1
- import { WidgetAlignTypes, WidgetTypes } from "../ui/widget.ui";
1
+ import { WidgetAlignTypes, WidgetTypes } from "../ui/widget.types";
2
2
  import { Vector2D } from "../types/vector2d.type";
3
3
 
4
4
  export type WUIEvent =
@@ -1,8 +1,9 @@
1
1
  import "./styles/icon.css";
2
2
  import { Colors } from "./colors.ui";
3
- import { normalizeWidget, WidgetProps } from "./widget.builder";
4
3
  import { connectWidgetCallback, getOnlyEventProps, Widget } from "./widget.ui";
5
4
  import { UID } from "../core/uid";
5
+ import { WidgetProps } from "./widget.types";
6
+ import { normalizeWidget } from "./widget.normalize";
6
7
 
7
8
  export type IconVariants = "Filled" | "Outlined" | "Round" | "Sharp" | "Two Tone";
8
9
  export type IconSizes = "small" | "medium" | "large" | "xlarge";
@@ -1,16 +1,11 @@
1
1
  import "./styles/button.css";
2
- import {
3
- Widget,
4
- WidgetAlignTypes,
5
- WidgetTypes,
6
- connectWidgetCallback,
7
- getOnlyEventProps,
8
- } from "./widget.ui";
2
+ import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
9
3
  import { Button, wButtonProps } from "./button.ui";
10
4
  import { Icon } from "./Icon.ui";
11
5
  import { Label } from "./label.ui";
12
- import { normalizeWidget } from "./widget.builder";
13
6
  import { UID } from "../core/uid";
7
+ import { WidgetAlignTypes, WidgetTypes } from "./widget.types";
8
+ import { normalizeWidget } from "./widget.normalize";
14
9
 
15
10
  export class IconButton extends Button {
16
11
  icon: Icon;
@@ -1,7 +1,8 @@
1
- import { normalizeWidget, WidgetProps } from "./widget.builder";
2
1
  import "./styles/textbox.css";
3
- import { Widget, WidgetTypes, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
2
+ import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
4
3
  import { UID } from "../core/uid";
4
+ import { WidgetProps, WidgetTypes } from "./widget.types";
5
+ import { normalizeWidget } from "./widget.normalize";
5
6
 
6
7
  export type InputTypes =
7
8
  | "text"
@@ -1,9 +1,11 @@
1
1
  import "./styles/accordion.css";
2
2
  import { IconButton } from "./IconButton.ui";
3
3
  import { Label } from "./label.ui";
4
- import { Widget, WidgetTypes } from "./widget.ui";
5
- import { createWidget, normalizeWidget, WidgetProps } from "./widget.builder";
4
+ import { Widget } from "./widget.ui";
5
+ import { createWidget } from "./widget.builder";
6
6
  import { UID } from "../core/uid";
7
+ import { WidgetProps, WidgetTypes } from "./widget.types";
8
+ import { normalizeWidget } from "./widget.normalize";
7
9
 
8
10
  const ACCORDION_HEADER_HEIGHT = 40;
9
11
 
@@ -2,9 +2,10 @@ import "./styles/button.css";
2
2
  import "./styles/stackbutton.css";
3
3
  import "./styles/vstackbutton.css";
4
4
  import { Colors } from "./colors.ui";
5
- import { Widget, WidgetTypes, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
6
- import { normalizeWidget, WidgetProps } from "./widget.builder";
5
+ import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
7
6
  import { UID } from "../core/uid";
7
+ import { WidgetProps, WidgetTypes } from "./widget.types";
8
+ import { normalizeWidget } from "./widget.normalize";
8
9
 
9
10
  export type ButonVariants =
10
11
  | "contained"
@@ -1,8 +1,8 @@
1
1
  import "./styles/buttoncolor.css";
2
2
  import { Button, wButtonProps } from "./button.ui";
3
3
  import { connectWidgetCallback, getOnlyEventProps, Widget } from "./widget.ui";
4
- import { normalizeWidget } from "./widget.builder";
5
4
  import { UID } from "../core/uid";
5
+ import { normalizeWidget } from "./widget.normalize";
6
6
 
7
7
  export class ButtonColor extends Button {
8
8
  inputColor: Widget;
@@ -2,7 +2,8 @@ import { UID } from "../core/uid";
2
2
  import { SelectItem } from "../types/select.item.type";
3
3
  import { Button, wButtonProps } from "./button.ui";
4
4
  import { Menu } from "./menu.ui";
5
- import { normalizeWidget, WidgetProps } from "./widget.builder";
5
+ import { normalizeWidget } from "./widget.normalize";
6
+ import { WidgetProps } from "./widget.types";
6
7
  import { Widget } from "./widget.ui";
7
8
 
8
9
  export class ButtonMenu extends Button {
@@ -1,15 +1,10 @@
1
1
  import { OrientationTypes } from "../types/orientation.type";
2
2
  import { IconButton } from "./IconButton.ui";
3
- import { ButonVariants, Button } from "./button.ui";
4
- import {
5
- connectWidgetCallback,
6
- getOnlyEventProps,
7
- Widget,
8
- WidgetAlignTypes,
9
- WidgetTypes,
10
- } from "./widget.ui";
11
- import { createWidget, normalizeWidget, WidgetProps } from "./widget.builder";
3
+ import { ButonVariants, Button, createButton } from "./button.ui";
4
+ import { connectWidgetCallback, getOnlyEventProps, Widget } from "./widget.ui";
12
5
  import { UID } from "../core/uid";
6
+ import { WidgetAlignTypes, WidgetProps, WidgetTypes } from "./widget.types";
7
+ import { normalizeWidget } from "./widget.normalize";
13
8
 
14
9
  export class ButtonStack extends Widget {
15
10
  orientation: OrientationTypes;
@@ -148,7 +143,7 @@ export function createButtonStack(
148
143
 
149
144
  content.childNodes.forEach((item: HTMLElement, _index: number) => {
150
145
  if (item.getAttribute("w-button") || item.getAttribute("w-icon-button")) {
151
- const widget = createWidget(item) as Button;
146
+ const widget = createButton(item.id, item) as Button;
152
147
 
153
148
  if (widget !== null) {
154
149
  newStack.addButton(widget);
@@ -1,6 +1,7 @@
1
1
  import { UID } from "../core/uid";
2
2
  import { ToggleButton } from "./toggle.ui";
3
- import { normalizeWidget, WidgetProps } from "./widget.builder";
3
+ import { normalizeWidget } from "./widget.normalize";
4
+ import { WidgetProps } from "./widget.types";
4
5
  import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
5
6
 
6
7
  export class Checkbox extends ToggleButton {
@@ -1,15 +1,11 @@
1
1
  import "./styles/container.css";
2
2
  import { OrientationTypes } from "../types/orientation.type";
3
- import {
4
- connectWidgetCallback,
5
- getOnlyEventProps,
6
- Widget,
7
- WidgetAlignTypes,
8
- WidgetTypes,
9
- } from "./widget.ui";
3
+ import { connectWidgetCallback, getOnlyEventProps, Widget } from "./widget.ui";
10
4
  import { UID } from "../core/uid";
11
- import { WidgetProps, createWidget, normalizeWidget } from "./widget.builder";
5
+ import { createWidget } from "./widget.builder";
12
6
  import { Scroll } from "./scroll.ui";
7
+ import { WidgetAlignTypes, WidgetProps, WidgetTypes } from "./widget.types";
8
+ import { normalizeWidget } from "./widget.normalize";
13
9
 
14
10
  export type ContainerVariants = "plain" | "contained" | "outlined";
15
11
 
@@ -1,13 +1,14 @@
1
1
  import "./styles/datagrid.css";
2
2
  import { Label } from "./label.ui";
3
- import { Widget, WidgetAlignTypes, WidgetTypes } from "./widget.ui";
3
+ import { Widget } from "./widget.ui";
4
4
  import { Scroll } from "./scroll.ui";
5
- import { normalizeWidget, WidgetEventProps, WidgetProps } from "./widget.builder";
6
5
  import { UID } from "../core/uid";
7
6
  import { decode } from "../core/html.entities";
8
7
  import { Button } from "./button.ui";
9
8
  import { IconButton } from "./IconButton.ui";
10
9
  import { ProgressBar } from "./progressbar.ui";
10
+ import { WidgetAlignTypes, WidgetEventProps, WidgetProps, WidgetTypes } from "./widget.types";
11
+ import { normalizeWidget } from "./widget.normalize";
11
12
 
12
13
  const DATA_GRID_HEADER_HEIGHT = 30;
13
14
  const DATA_GRID_FOOTER_HEIGHT = 40;
package/src/ui/dialog.tsx CHANGED
@@ -4,8 +4,10 @@ import { Button } from "./button.ui";
4
4
  import { Spacer } from "./container.ui";
5
5
  import { Label } from "./label.ui";
6
6
  import "./styles/dialog.css";
7
- import { createWidget, normalizeWidget, WidgetProps } from "./widget.builder";
8
- import { Widget, WidgetAlignTypes, WidgetTypes } from "./widget.ui";
7
+ import { createWidget } from "./widget.builder";
8
+ import { normalizeWidget } from "./widget.normalize";
9
+ import { WidgetAlignTypes, WidgetProps, WidgetTypes } from "./widget.types";
10
+ import { Widget } from "./widget.ui";
9
11
 
10
12
  const TITLE_BAR_HEIGHT = 40;
11
13
  const BUTTON_BAR_HEIGHT = 50;
@@ -1,6 +1,7 @@
1
1
  import { OrientationTypes } from "../types/orientation.type";
2
2
  import "./styles/draggable.css";
3
- import { Widget, WidgetTypes } from "./widget.ui";
3
+ import { WidgetTypes } from "./widget.types";
4
+ import { Widget } from "./widget.ui";
4
5
 
5
6
  export type DragOrientation = OrientationTypes | "both";
6
7
 
@@ -1,14 +1,10 @@
1
1
  import { UID } from "../core/uid";
2
2
  import { Draggable } from "./draggable.ui";
3
3
  import "./styles/hpanel.css";
4
- import { WidgetProps, createWidget, normalizeWidget } from "./widget.builder";
5
- import {
6
- connectWidgetCallback,
7
- getOnlyEventProps,
8
- Widget,
9
- WidgetAlignTypes,
10
- WidgetTypes,
11
- } from "./widget.ui";
4
+ import { createWidget } from "./widget.builder";
5
+ import { normalizeWidget } from "./widget.normalize";
6
+ import { WidgetAlignTypes, WidgetProps, WidgetTypes } from "./widget.types";
7
+ import { connectWidgetCallback, getOnlyEventProps, Widget } from "./widget.ui";
12
8
 
13
9
  const HPANEL_HANDLER_SIZE = 4;
14
10
 
@@ -1,11 +1,12 @@
1
1
  import { IconButton, wIconButtonProps } from "./IconButton.ui";
2
2
  import { Menu } from "./menu.ui";
3
3
  import { SelectItem } from "../types/select.item.type";
4
- import { normalizeWidget, WidgetProps } from "./widget.builder";
5
4
  import { connectWidgetCallback, getOnlyEventProps, Widget } from "./widget.ui";
6
5
  import { UID } from "../core/uid";
7
6
  import { connectCustomWidget } from "./widget.collection";
8
7
  import { IWidget } from "../interfaces/widget.interface";
8
+ import { WidgetProps } from "./widget.types";
9
+ import { normalizeWidget } from "./widget.normalize";
9
10
 
10
11
  export class IconButtonMenu extends IconButton {
11
12
  menu: Menu;
@@ -1,8 +1,9 @@
1
1
  import { UID } from "../core/uid";
2
2
  import "./styles/image.css";
3
- import { normalizeWidget, WidgetProps } from "./widget.builder";
4
- import { Widget, WidgetTypes, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
3
+ import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
5
4
  import { decode } from "../core/html.entities";
5
+ import { WidgetProps, WidgetTypes } from "./widget.types";
6
+ import { normalizeWidget } from "./widget.normalize";
6
7
 
7
8
  export class Image extends Widget {
8
9
  imageContainer: Widget;
package/src/ui/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { WidgetAlignTypes, WidgetTypes, Widget } from "./widget.ui";
1
+ import { Widget } from "./widget.ui";
2
2
  import { Textbox, WTextbox } from "./Textbox.ui";
3
3
  import { Select, WSelect, WSelectItem } from "./select.ui";
4
4
  import { Accordion, WAccordion, WAccordionItem } from "./accordion.ui";
@@ -26,6 +26,7 @@ import { ValueBar, WValueBar } from "./valuebar.ui";
26
26
  import { VPanel, WVPanel } from "./vpanel.ui";
27
27
  import { createWidget } from "./widget.builder";
28
28
  import { IconButtonMenu, WIconButtonMenu, WIconButtonMenuItem } from "./iconButtonMenu.ui";
29
+ import { WidgetAlignTypes, WidgetTypes } from "./widget.types";
29
30
 
30
31
  export type { ContainerParams };
31
32
 
@@ -1,8 +1,9 @@
1
1
  import "./styles/label.css";
2
- import { normalizeWidget, WidgetProps } from "./widget.builder";
3
2
  import { Colors } from "./colors.ui";
4
3
  import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
5
4
  import { UID } from "../core/uid";
5
+ import { WidgetProps } from "./widget.types";
6
+ import { normalizeWidget } from "./widget.normalize";
6
7
 
7
8
  export type LabelVariants = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span";
8
9
 
package/src/ui/menu.ui.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import "./styles/menu.css";
2
2
  import { IWidget } from "../interfaces/widget.interface";
3
3
  import { IconButton } from "./IconButton.ui";
4
- import { Widget, WidgetAlignTypes, WidgetTypes } from "./widget.ui";
4
+ import { Widget } from "./widget.ui";
5
+ import { WidgetAlignTypes, WidgetTypes } from "./widget.types";
5
6
 
6
7
  const MENU_OPTION_HEIGHT = 40;
7
8
 
@@ -1,8 +1,9 @@
1
1
  import { UID } from "../core/uid";
2
2
  import { Label } from "./label.ui";
3
3
  import "./styles/progressbar.css";
4
- import { normalizeWidget, WidgetProps } from "./widget.builder";
5
- import { Widget, WidgetTypes, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
4
+ import { normalizeWidget } from "./widget.normalize";
5
+ import { WidgetProps, WidgetTypes } from "./widget.types";
6
+ import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
6
7
 
7
8
  const PROGRESS_BAR_HEIGHT = 40;
8
9
 
@@ -1,6 +1,7 @@
1
1
  import { UID } from "../core/uid";
2
2
  import { ToggleButton } from "./toggle.ui";
3
- import { normalizeWidget, WidgetProps } from "./widget.builder";
3
+ import { normalizeWidget } from "./widget.normalize";
4
+ import { WidgetProps } from "./widget.types";
4
5
  import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
5
6
 
6
7
  export class RadioButton extends ToggleButton {
@@ -1,7 +1,8 @@
1
1
  import { OrientationTypes } from "../types/orientation.type";
2
2
  import "./styles/scroll.css";
3
- import { Widget, WidgetTypes } from "./widget.ui";
3
+ import { Widget } from "./widget.ui";
4
4
  import { Draggable } from "./draggable.ui";
5
+ import { WidgetTypes } from "./widget.types";
5
6
 
6
7
  const SCROLL_SIZE = 10;
7
8
 
@@ -3,8 +3,9 @@ import { IconButton } from "./IconButton.ui";
3
3
  import { Menu } from "./menu.ui";
4
4
  import { Widget } from "./widget.ui";
5
5
  import { SelectItem } from "../types/select.item.type";
6
- import { normalizeWidget, WidgetProps } from "./widget.builder";
7
6
  import { UID } from "../core/uid";
7
+ import { WidgetProps } from "./widget.types";
8
+ import { normalizeWidget } from "./widget.normalize";
8
9
 
9
10
  export class Select extends Widget {
10
11
  menu: Menu;
@@ -1,6 +1,7 @@
1
1
  import { UID } from "../core/uid";
2
2
  import { ToggleButton } from "./toggle.ui";
3
- import { normalizeWidget, WidgetProps } from "./widget.builder";
3
+ import { normalizeWidget } from "./widget.normalize";
4
+ import { WidgetProps } from "./widget.types";
4
5
  import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
5
6
  export class Switch extends ToggleButton {
6
7
  constructor(id: string, text: string = "", parent: Widget | null = null) {
@@ -1,13 +1,15 @@
1
1
  import "./styles/tabs.css";
2
2
 
3
3
  import { OrientationTypes } from "../types/orientation.type";
4
- import { Widget, WidgetAlignTypes, WidgetTypes } from "./widget.ui";
4
+ import { Widget } from "./widget.ui";
5
5
  import { Toolbar } from "./toolbar.ui";
6
6
  import { Label } from "./label.ui";
7
7
  import { Icon } from "./Icon.ui";
8
8
  import { Scroll } from "./scroll.ui";
9
- import { WidgetProps, createWidget, normalizeWidget } from "./widget.builder";
9
+ import { createWidget } from "./widget.builder";
10
10
  import { UID } from "../core/uid";
11
+ import { WidgetAlignTypes, WidgetProps, WidgetTypes } from "./widget.types";
12
+ import { normalizeWidget } from "./widget.normalize";
11
13
 
12
14
  const TAB_HEADER_SIZE = 40;
13
15
 
@@ -1,6 +1,7 @@
1
1
  import { UID } from "../core/uid";
2
2
  import "./styles/textarea.css";
3
- import { normalizeWidget, WidgetProps } from "./widget.builder";
3
+ import { normalizeWidget } from "./widget.normalize";
4
+ import { WidgetProps } from "./widget.types";
4
5
  import { connectWidgetCallback, getOnlyEventProps, Widget } from "./widget.ui";
5
6
 
6
7
  export class TextArea extends Widget {
@@ -1,10 +1,12 @@
1
1
  import "./styles/toolbar.css";
2
2
  import { IWidget } from "../interfaces/widget.interface";
3
- import { Widget, WidgetAlignTypes, WidgetTypes } from "./widget.ui";
3
+ import { Widget } from "./widget.ui";
4
4
  import { IconButton } from "./IconButton.ui";
5
5
  import { OrientationTypes } from "../types/orientation.type";
6
- import { WidgetProps, createWidget, normalizeWidget } from "./widget.builder";
6
+ import { createWidget } from "./widget.builder";
7
7
  import { UID } from "../core/uid";
8
+ import { WidgetAlignTypes, WidgetProps, WidgetTypes } from "./widget.types";
9
+ import { normalizeWidget } from "./widget.normalize";
8
10
 
9
11
  export type ToolbarVariants = "contained" | "outlined";
10
12
 
@@ -2,8 +2,9 @@ import "./styles/valuebar.css";
2
2
  import { OrientationTypes } from "../types/orientation.type";
3
3
  import { Widget, connectWidgetCallback, getOnlyEventProps } from "./widget.ui";
4
4
  import { Draggable } from "./draggable.ui";
5
- import { normalizeWidget, WidgetProps } from "./widget.builder";
6
5
  import { UID } from "../core/uid";
6
+ import { WidgetProps } from "./widget.types";
7
+ import { normalizeWidget } from "./widget.normalize";
7
8
 
8
9
  export class ValueBar extends Widget {
9
10
  orientation: OrientationTypes;
@@ -1,13 +1,9 @@
1
1
  import { Draggable } from "./draggable.ui";
2
2
  import "./styles/vpanel.css";
3
- import { WidgetProps, createWidget, normalizeWidget } from "./widget.builder";
4
- import {
5
- connectWidgetCallback,
6
- getOnlyEventProps,
7
- Widget,
8
- WidgetAlignTypes,
9
- WidgetTypes,
10
- } from "./widget.ui";
3
+ import { createWidget } from "./widget.builder";
4
+ import { normalizeWidget } from "./widget.normalize";
5
+ import { WidgetAlignTypes, WidgetProps, WidgetTypes } from "./widget.types";
6
+ import { connectWidgetCallback, getOnlyEventProps, Widget } from "./widget.ui";
11
7
 
12
8
  const VPANEL_HANDLER_SIZE = 4;
13
9
 
@@ -1,10 +1,9 @@
1
1
  import { UID } from "../core/uid";
2
- import { Widget, WidgetAlignTypes, WidgetTypes } from "./widget.ui";
2
+ import { Widget } from "./widget.ui";
3
3
  import { addNewWidget } from "./widget.collection";
4
4
  import { createTextbox } from "./Textbox.ui";
5
5
  import { createButton } from "./button.ui";
6
6
  import { createLabel } from "./label.ui";
7
- import { OrientationTypes } from "../types/orientation.type";
8
7
  import { createContainer } from "./container.ui";
9
8
  import { createIconButton } from "./IconButton.ui";
10
9
  import { createImage } from "./image.ui";
@@ -27,29 +26,7 @@ import { createTextarea } from "./textarea.ui";
27
26
  import { createSelect } from "./select.ui";
28
27
  import { createDialog, Dialog } from "./dialog";
29
28
  import { createDataGrid, DataGrid } from "./datagrid.ui";
30
-
31
- export type WidgetEventProps = {
32
- onClick?: (args: any) => {} | void;
33
- onResize?: (args: any) => {} | void;
34
- onMouseDown?: (args: any) => {} | void;
35
- onMouseUp?: (args: any) => {} | void;
36
- onMouseMove?: (args: any) => {} | void;
37
- onMouseOut?: (args: any) => {} | void;
38
- onMouseLeave?: (args: any) => {} | void;
39
- onWheel?: (args: any) => {} | void;
40
- onDrag?: (args: any) => {} | void;
41
- onRender?: (args: any) => {} | void;
42
- };
43
-
44
- export type WidgetProps = {
45
- id?: string | null;
46
- type?: WidgetTypes | null;
47
- padding?: number | null;
48
- classNames?: string | null;
49
- fixedSize?: number | null;
50
- orientation?: OrientationTypes | null;
51
- hidden?: boolean | null;
52
- } & WidgetEventProps;
29
+ import { WidgetAlignTypes, WidgetProps, WidgetTypes } from "./widget.types";
53
30
 
54
31
  export function createWidget(
55
32
  content: any,
@@ -213,31 +190,3 @@ export function createWidget(
213
190
 
214
191
  return null;
215
192
  }
216
-
217
- export function normalizeWidget(widget: any, props: WidgetProps) {
218
- if (props.fixedSize !== undefined) {
219
- widget.setAttribute("w-fixed-size", props.fixedSize);
220
- }
221
-
222
- if (props.padding !== undefined) {
223
- widget.setAttribute("w-padding", props.padding);
224
- }
225
-
226
- if (props.type !== undefined) {
227
- widget.setAttribute("w-type", props.type);
228
- }
229
-
230
- if (props.hidden !== undefined) {
231
- widget.setAttribute("w-hidden", props.hidden);
232
- }
233
-
234
- if (props.classNames !== undefined) {
235
- widget.setAttribute("w-classes", props.classNames);
236
- }
237
-
238
- if (props.orientation !== undefined) {
239
- widget.setAttribute("w-orientation", props.orientation);
240
- }
241
-
242
- return widget;
243
- }
@@ -1,15 +1,15 @@
1
- import WApplication from "../core/application.core";
1
+ //import WApplication from "../core/application.core";
2
2
  import { IWidget, WUICallback } from "../interfaces/widget.interface";
3
3
 
4
4
  declare global {
5
5
  interface Window {
6
- app: WApplication | undefined;
6
+ //app: WApplication | undefined;
7
7
  w: Map<string, IWidget>;
8
8
  widgetConnections: Map<string, WUICallback>;
9
9
  }
10
10
 
11
11
  var w: Map<string, IWidget>;
12
- var app: WApplication | undefined;
12
+ //var app: WApplication | undefined;
13
13
  var widgetConnections: Map<string, WUICallback>;
14
14
  var widgetCustomConnections: Map<string, WUICallback>;
15
15
  }
@@ -0,0 +1,29 @@
1
+ import { WidgetProps } from "./widget.types";
2
+
3
+ export function normalizeWidget(widget: any, props: WidgetProps) {
4
+ if (props.fixedSize !== undefined) {
5
+ widget.setAttribute("w-fixed-size", props.fixedSize);
6
+ }
7
+
8
+ if (props.padding !== undefined) {
9
+ widget.setAttribute("w-padding", props.padding);
10
+ }
11
+
12
+ if (props.type !== undefined) {
13
+ widget.setAttribute("w-type", props.type);
14
+ }
15
+
16
+ if (props.hidden !== undefined) {
17
+ widget.setAttribute("w-hidden", props.hidden);
18
+ }
19
+
20
+ if (props.classNames !== undefined) {
21
+ widget.setAttribute("w-classes", props.classNames);
22
+ }
23
+
24
+ if (props.orientation !== undefined) {
25
+ widget.setAttribute("w-orientation", props.orientation);
26
+ }
27
+
28
+ return widget;
29
+ }
@@ -0,0 +1,35 @@
1
+ import { OrientationTypes } from "../types/orientation.type";
2
+
3
+ export enum WidgetTypes {
4
+ FILL = 1,
5
+ CUSTOM = 2,
6
+ FREE = 3,
7
+ }
8
+
9
+ export enum WidgetAlignTypes {
10
+ HORIZONTAL = 1,
11
+ VERTICAL = 2,
12
+ }
13
+
14
+ export type WidgetEventProps = {
15
+ onClick?: (args: any) => {} | void;
16
+ onResize?: (args: any) => {} | void;
17
+ onMouseDown?: (args: any) => {} | void;
18
+ onMouseUp?: (args: any) => {} | void;
19
+ onMouseMove?: (args: any) => {} | void;
20
+ onMouseOut?: (args: any) => {} | void;
21
+ onMouseLeave?: (args: any) => {} | void;
22
+ onWheel?: (args: any) => {} | void;
23
+ onDrag?: (args: any) => {} | void;
24
+ onRender?: (args: any) => {} | void;
25
+ };
26
+
27
+ export type WidgetProps = {
28
+ id?: string | null;
29
+ type?: WidgetTypes | null;
30
+ padding?: number | null;
31
+ classNames?: string | null;
32
+ fixedSize?: number | null;
33
+ orientation?: OrientationTypes | null;
34
+ hidden?: boolean | null;
35
+ } & WidgetEventProps;
@@ -1,20 +1,9 @@
1
1
  import { UID } from "../core/uid";
2
2
  import { IWidget, WUIEvent, WUICallback } from "../interfaces/widget.interface";
3
3
  import { Vector2D } from "../types/vector2d.type";
4
- import { WidgetEventProps, WidgetProps } from "./widget.builder";
4
+ import { WidgetEventProps, WidgetProps, WidgetAlignTypes, WidgetTypes } from "./widget.types";
5
5
  import { addNewWidget, connectWidget } from "./widget.collection";
6
6
 
7
- export enum WidgetTypes {
8
- FILL = 1,
9
- CUSTOM = 2,
10
- FREE = 3,
11
- }
12
-
13
- export enum WidgetAlignTypes {
14
- HORIZONTAL = 1,
15
- VERTICAL = 2,
16
- }
17
-
18
7
  export class Widget implements IWidget {
19
8
  readonly id: string;
20
9