cx 26.1.13 → 26.2.0
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/build/charts/Marker.d.ts +1 -1
- package/build/charts/Marker.d.ts.map +1 -1
- package/build/charts/Marker.js +16 -6
- package/build/charts/MouseTracker.d.ts +2 -0
- package/build/charts/MouseTracker.d.ts.map +1 -1
- package/build/charts/helpers/PointReducer.d.ts +2 -2
- package/build/charts/helpers/PointReducer.d.ts.map +1 -1
- package/build/data/View.d.ts +5 -3
- package/build/data/View.d.ts.map +1 -1
- package/build/data/View.js +3 -1
- package/build/data/ops/findTreeNode.d.ts +20 -1
- package/build/data/ops/findTreeNode.d.ts.map +1 -1
- package/build/data/ops/findTreeNode.js +19 -0
- package/build/data/ops/findTreePath.d.ts +1 -1
- package/build/data/ops/findTreePath.d.ts.map +1 -1
- package/build/data/ops/findTreePath.js +1 -1
- package/build/data/ops/removeTreeNodes.d.ts +14 -1
- package/build/data/ops/removeTreeNodes.d.ts.map +1 -1
- package/build/data/ops/removeTreeNodes.js +13 -0
- package/build/data/ops/updateArray.d.ts +1 -1
- package/build/data/ops/updateArray.d.ts.map +1 -1
- package/build/data/ops/updateArray.js +1 -1
- package/build/data/ops/updateTree.d.ts +20 -1
- package/build/data/ops/updateTree.d.ts.map +1 -1
- package/build/data/ops/updateTree.js +19 -0
- package/build/jsx-runtime.d.ts +1 -0
- package/build/jsx-runtime.d.ts.map +1 -1
- package/build/jsx-runtime.js +3 -1
- package/build/svg/Rectangle.d.ts +6 -4
- package/build/svg/Rectangle.d.ts.map +1 -1
- package/build/svg/Rectangle.js +9 -7
- package/build/ui/Instance.d.ts +1 -1
- package/build/ui/Instance.d.ts.map +1 -1
- package/build/ui/Instance.js +18 -8
- package/build/ui/IsolatedScope.d.ts +2 -1
- package/build/ui/IsolatedScope.d.ts.map +1 -1
- package/build/ui/Prop.d.ts +1 -1
- package/build/ui/Prop.d.ts.map +1 -1
- package/build/ui/Widget.d.ts +2 -0
- package/build/ui/Widget.d.ts.map +1 -1
- package/build/ui/Widget.js +4 -0
- package/build/ui/adapter/GroupAdapter.d.ts +4 -4
- package/build/ui/adapter/GroupAdapter.d.ts.map +1 -1
- package/build/ui/adapter/GroupAdapter.js +4 -4
- package/build/ui/adapter/TreeAdapter.d.ts +5 -3
- package/build/ui/adapter/TreeAdapter.d.ts.map +1 -1
- package/build/ui/adapter/TreeAdapter.js +12 -5
- package/build/ui/app/startAppLoop.d.ts +2 -2
- package/build/ui/app/startAppLoop.d.ts.map +1 -1
- package/build/ui/app/startHotAppLoop.d.ts +4 -4
- package/build/ui/app/startHotAppLoop.d.ts.map +1 -1
- package/build/ui/app/startHotAppLoop.js +1 -1
- package/build/ui/batchUpdates.d.ts.map +1 -1
- package/build/ui/batchUpdates.js +3 -4
- package/build/widgets/Button.d.ts +0 -7
- package/build/widgets/Button.d.ts.map +1 -1
- package/build/widgets/HtmlElement.d.ts +2 -2
- package/build/widgets/HtmlElement.d.ts.map +1 -1
- package/build/widgets/form/Checkbox.d.ts +3 -3
- package/build/widgets/form/Checkbox.d.ts.map +1 -1
- package/build/widgets/form/Checkbox.js +11 -6
- package/build/widgets/form/DateTimeField.d.ts +4 -0
- package/build/widgets/form/DateTimeField.d.ts.map +1 -1
- package/build/widgets/form/TextField.d.ts +2 -2
- package/build/widgets/form/TextField.d.ts.map +1 -1
- package/build/widgets/grid/Grid.d.ts +20 -16
- package/build/widgets/grid/Grid.d.ts.map +1 -1
- package/build/widgets/grid/Grid.js +200 -86
- package/build/widgets/nav/Menu.d.ts +2 -0
- package/build/widgets/nav/Menu.d.ts.map +1 -1
- package/build/widgets/nav/Route.js +1 -1
- package/build/widgets/overlay/FlyweightTooltipTracker.d.ts +6 -4
- package/build/widgets/overlay/FlyweightTooltipTracker.d.ts.map +1 -1
- package/build/widgets/overlay/FlyweightTooltipTracker.js +3 -0
- package/build/widgets/overlay/Overlay.d.ts +2 -2
- package/build/widgets/overlay/Overlay.d.ts.map +1 -1
- package/dist/data.js +52 -1
- package/dist/jsx-runtime.js +4 -2
- package/dist/manifest.js +910 -904
- package/dist/svg.js +3 -0
- package/dist/ui.js +1548 -1544
- package/dist/widgets.css +1 -1
- package/dist/widgets.js +395 -4
- package/package.json +2 -2
- package/src/charts/Marker.tsx +448 -394
- package/src/charts/MouseTracker.tsx +3 -0
- package/src/charts/helpers/PointReducer.ts +2 -2
- package/src/data/View.ts +76 -19
- package/src/data/ops/findTreeNode.ts +20 -1
- package/src/data/ops/findTreePath.ts +7 -2
- package/src/data/ops/removeTreeNodes.ts +14 -1
- package/src/data/ops/updateArray.ts +4 -4
- package/src/data/ops/updateTree.ts +32 -6
- package/src/index.scss +6 -6
- package/src/jsx-runtime.spec.tsx +40 -0
- package/src/jsx-runtime.ts +87 -84
- package/src/svg/Rectangle.tsx +80 -73
- package/src/ui/DataProxy.ts +55 -55
- package/src/ui/Instance.ts +142 -45
- package/src/ui/IsolatedScope.ts +4 -2
- package/src/ui/Prop.ts +141 -141
- package/src/ui/Rescope.ts +50 -50
- package/src/ui/Widget.tsx +292 -234
- package/src/ui/adapter/ArrayAdapter.ts +229 -229
- package/src/ui/adapter/GroupAdapter.ts +8 -10
- package/src/ui/adapter/TreeAdapter.ts +75 -15
- package/src/ui/app/Url.spec.ts +1 -1
- package/src/ui/app/startAppLoop.tsx +56 -45
- package/src/ui/app/startHotAppLoop.ts +4 -4
- package/src/ui/batchUpdates.ts +16 -21
- package/src/ui/exprHelpers.ts +96 -96
- package/src/widgets/Button.tsx +0 -8
- package/src/widgets/HtmlElement.spec.tsx +100 -72
- package/src/widgets/HtmlElement.tsx +11 -10
- package/src/widgets/Sandbox.ts +104 -104
- package/src/widgets/Section.scss +55 -55
- package/src/widgets/drag-drop/DropZone.scss +74 -74
- package/src/widgets/form/Checkbox.tsx +296 -243
- package/src/widgets/form/DateTimeField.tsx +6 -0
- package/src/widgets/form/TextField.tsx +2 -2
- package/src/widgets/grid/Grid.scss +43 -10
- package/src/widgets/grid/Grid.tsx +4401 -3848
- package/src/widgets/nav/Menu.tsx +3 -0
- package/src/widgets/nav/Route.ts +1 -1
- package/src/widgets/overlay/FlyweightTooltipTracker.ts +15 -4
- package/src/widgets/overlay/Overlay.tsx +2 -1
- package/src/widgets/overlay/index.d.ts +11 -11
|
@@ -22,6 +22,8 @@ export interface MenuConfig extends HtmlElementConfig {
|
|
|
22
22
|
showOnlyOverflowItems?: boolean;
|
|
23
23
|
/** Auto focus first menu item. */
|
|
24
24
|
autoFocus?: boolean;
|
|
25
|
+
/** Set to `true` to enable icons in menu items. */
|
|
26
|
+
icons?: boolean;
|
|
25
27
|
}
|
|
26
28
|
export declare class Menu extends HtmlElement<MenuConfig, MenuInstance> {
|
|
27
29
|
baseClass: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/widgets/nav/Menu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAU7D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IAClD,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAEtC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/widgets/nav/Menu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAU7D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IAClD,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAEtC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;CAClB;AASD,qBAAa,IAAK,SAAQ,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,4BAA4B,EAAE,MAAM,CAAC;IACrC,0BAA0B,EAAE,MAAM,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,CAAC,IAAI,EAAE,OAAO,QAAQ,CAAC;IAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,UAAU,CAAC;IACjC,IAAI;IA6BJ,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY;IAY7D,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY;IAKzD,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY;IAIhE,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM;IAQrE,GAAG,CAAC,IAAI,EAAE,GAAG;CAef;AAWD,qBAAa,YAAa,SAAQ,mBAAmB,CAAC,IAAI,CAAC;IAChD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Widget } from "../../ui/Widget";
|
|
2
2
|
import { PureContainerBase } from "../../ui/PureContainer";
|
|
3
|
-
import RouteMatcher from "route-parser";
|
|
3
|
+
import RouteMatcher from "route-parser-ts";
|
|
4
4
|
import { ReadOnlyDataView } from "../../data/ReadOnlyDataView";
|
|
5
5
|
import { routeAppend } from "../../util/routeAppend";
|
|
6
6
|
// Base class for extending with custom Config types
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Instance } from "../../ui/Instance";
|
|
2
2
|
import { RenderingContext } from "../../ui/RenderingContext";
|
|
3
|
-
import { Widget } from "../../ui/Widget";
|
|
3
|
+
import { Widget, WidgetConfig } from "../../ui/Widget";
|
|
4
4
|
import type { TooltipInstance } from "./Tooltip";
|
|
5
5
|
import { TooltipParentInstance, TooltipProp } from "./tooltip-ops";
|
|
6
|
-
export interface FlyweightTooltipTrackerConfig {
|
|
7
|
-
|
|
6
|
+
export interface FlyweightTooltipTrackerConfig extends WidgetConfig {
|
|
7
|
+
/** Callback invoked to get tooltip configuration for an element. */
|
|
8
|
+
onGetTooltip?: (element: Element, instance: Instance) => TooltipProp | undefined;
|
|
8
9
|
}
|
|
9
10
|
export declare class FlyweightTooltipTrackerInstance extends Instance<FlyweightTooltipTracker> implements TooltipParentInstance {
|
|
10
11
|
lastTarget?: EventTarget | null;
|
|
@@ -14,8 +15,9 @@ export declare class FlyweightTooltipTrackerInstance extends Instance<FlyweightT
|
|
|
14
15
|
[key: string]: TooltipInstance;
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
|
-
export declare class FlyweightTooltipTracker extends Widget {
|
|
18
|
+
export declare class FlyweightTooltipTracker extends Widget<FlyweightTooltipTrackerConfig, FlyweightTooltipTrackerInstance> {
|
|
18
19
|
onGetTooltip?: (element: Element, instance: Instance) => TooltipProp | undefined;
|
|
20
|
+
constructor(config?: FlyweightTooltipTrackerConfig);
|
|
19
21
|
initInstance(context: RenderingContext, instance: FlyweightTooltipTrackerInstance): void;
|
|
20
22
|
render(context: RenderingContext, instance: FlyweightTooltipTrackerInstance, key: string): any;
|
|
21
23
|
handleMouseMove(e: MouseEvent, instance: FlyweightTooltipTrackerInstance): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlyweightTooltipTracker.d.ts","sourceRoot":"","sources":["../../../src/widgets/overlay/FlyweightTooltipTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"FlyweightTooltipTracker.d.ts","sourceRoot":"","sources":["../../../src/widgets/overlay/FlyweightTooltipTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAGJ,qBAAqB,EACrB,WAAW,EACb,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IAChE,oEAAoE;IACpE,YAAY,CAAC,EAAE,CACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,KAChB,WAAW,GAAG,SAAS,CAAC;CAC/B;AAED,qBAAa,+BACV,SAAQ,QAAQ,CAAC,uBAAuB,CACxC,YAAW,qBAAqB;IAExB,UAAU,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,CAAC;CACvD;AAED,qBAAa,uBAAwB,SAAQ,MAAM,CAChD,6BAA6B,EAC7B,+BAA+B,CACjC;IACU,YAAY,CAAC,EAAE,CACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,KAChB,WAAW,GAAG,SAAS,CAAC;gBAEjB,MAAM,CAAC,EAAE,6BAA6B;IAIlD,YAAY,CACT,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,+BAA+B,GACzC,IAAI;IAUP,MAAM,CACH,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,+BAA+B,EACzC,GAAG,EAAE,MAAM,GACX,GAAG;IAIN,eAAe,CACZ,CAAC,EAAE,UAAU,EACb,QAAQ,EAAE,+BAA+B,GACzC,IAAI;CAuBT"}
|
|
@@ -5,6 +5,9 @@ import { tooltipMouseLeave, tooltipMouseMove, } from "./tooltip-ops";
|
|
|
5
5
|
export class FlyweightTooltipTrackerInstance extends Instance {
|
|
6
6
|
}
|
|
7
7
|
export class FlyweightTooltipTracker extends Widget {
|
|
8
|
+
constructor(config) {
|
|
9
|
+
super(config);
|
|
10
|
+
}
|
|
8
11
|
initInstance(context, instance) {
|
|
9
12
|
let handler = (e) => this.handleMouseMove(e, instance);
|
|
10
13
|
if (typeof document !== "undefined") {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @jsxImportSource react */
|
|
2
2
|
import type { Root } from "cx-react";
|
|
3
|
-
import {
|
|
3
|
+
import { View } from "../../data/View";
|
|
4
4
|
import { ContainerBase, StyledContainerConfig } from "../../ui/Container";
|
|
5
5
|
import { Instance } from "../../ui/Instance";
|
|
6
6
|
import { BooleanProp, NumberProp } from "../../ui/Prop";
|
|
@@ -127,7 +127,7 @@ export declare class OverlayBase<Config extends OverlayConfig = OverlayConfig, I
|
|
|
127
127
|
handleMouseEnter(instance: InstanceType, component: any): void;
|
|
128
128
|
getOverlayContainer(): HTMLElement;
|
|
129
129
|
containerFactory(): HTMLElement;
|
|
130
|
-
open(storeOrInstance?:
|
|
130
|
+
open(storeOrInstance?: View | Instance, options?: any): () => void;
|
|
131
131
|
handleMove(e: any, instance: InstanceType, component: any): void;
|
|
132
132
|
handleResize(e: any, instance: InstanceType, component: any): void;
|
|
133
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../src/widgets/overlay/Overlay.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../src/widgets/overlay/Overlay.tsx"],"names":[],"mappings":"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"}
|
package/dist/data.js
CHANGED
|
@@ -1641,6 +1641,25 @@ function updateArray(array, updateCallback, itemFilter, removeFilter) {
|
|
|
1641
1641
|
return dirty ? newArray : array;
|
|
1642
1642
|
}
|
|
1643
1643
|
|
|
1644
|
+
/**
|
|
1645
|
+
* Recursively updates nodes in a tree structure that match a filter.
|
|
1646
|
+
* Returns a new tree with updated nodes, or the original tree if no changes were made.
|
|
1647
|
+
*
|
|
1648
|
+
* @param array - The tree data array to update.
|
|
1649
|
+
* @param updateCallback - Function that receives a node and returns the updated node.
|
|
1650
|
+
* @param itemFilter - Predicate that returns `true` for nodes to update. If `null`, all nodes are updated.
|
|
1651
|
+
* @param childrenField - Name of the property containing child nodes.
|
|
1652
|
+
* @param removeFilter - Optional predicate that returns `true` for nodes to remove.
|
|
1653
|
+
* @returns A new tree with updates applied, or the original array if unchanged.
|
|
1654
|
+
*
|
|
1655
|
+
* @example
|
|
1656
|
+
* // Expand all non-leaf nodes
|
|
1657
|
+
* updateTree(data, node => ({ ...node, $expanded: true }), node => !node.$leaf, "$children");
|
|
1658
|
+
*
|
|
1659
|
+
* @example
|
|
1660
|
+
* // Add a child to a specific node
|
|
1661
|
+
* updateTree(data, node => ({ ...node, $children: [...node.$children, newChild] }), node => node.id === parentId, "$children");
|
|
1662
|
+
*/
|
|
1644
1663
|
function updateTree(array, updateCallback, itemFilter, childrenField, removeFilter) {
|
|
1645
1664
|
return updateArray(
|
|
1646
1665
|
array,
|
|
@@ -1661,6 +1680,19 @@ function updateTree(array, updateCallback, itemFilter, childrenField, removeFilt
|
|
|
1661
1680
|
);
|
|
1662
1681
|
}
|
|
1663
1682
|
|
|
1683
|
+
/**
|
|
1684
|
+
* Recursively removes nodes from a tree structure that match the criteria.
|
|
1685
|
+
* Returns a new tree without the matching nodes, or the original tree if no nodes were removed.
|
|
1686
|
+
*
|
|
1687
|
+
* @param array - The tree data array to filter.
|
|
1688
|
+
* @param criteria - Predicate that returns `true` for nodes to remove.
|
|
1689
|
+
* @param childrenField - Name of the property containing child nodes.
|
|
1690
|
+
* @returns A new tree with matching nodes removed, or the original array if unchanged.
|
|
1691
|
+
*
|
|
1692
|
+
* @example
|
|
1693
|
+
* // Remove node by ID
|
|
1694
|
+
* removeTreeNodes(data, node => node.id === targetId, "$children");
|
|
1695
|
+
*/
|
|
1664
1696
|
function removeTreeNodes(array, criteria, childrenField) {
|
|
1665
1697
|
return updateTree(
|
|
1666
1698
|
array,
|
|
@@ -1671,6 +1703,25 @@ function removeTreeNodes(array, criteria, childrenField) {
|
|
|
1671
1703
|
);
|
|
1672
1704
|
}
|
|
1673
1705
|
|
|
1706
|
+
/**
|
|
1707
|
+
* Recursively searches a tree structure for a node matching the criteria.
|
|
1708
|
+
*
|
|
1709
|
+
* @param array - The tree data array to search.
|
|
1710
|
+
* @param criteria - Predicate that returns `true` when a matching node is found.
|
|
1711
|
+
* @param childrenField - Name of the property containing child nodes.
|
|
1712
|
+
* @returns The first matching node, or `false` if not found.
|
|
1713
|
+
*
|
|
1714
|
+
* @example
|
|
1715
|
+
* // Find node by ID
|
|
1716
|
+
* const node = findTreeNode(data, n => n.id === targetId, "$children");
|
|
1717
|
+
*
|
|
1718
|
+
* @example
|
|
1719
|
+
* // Check if selected node is a leaf
|
|
1720
|
+
* const node = findTreeNode(data, n => n.id === selectedId, "$children");
|
|
1721
|
+
* if (node && node.$leaf) {
|
|
1722
|
+
* // Cannot add children to a leaf node
|
|
1723
|
+
* }
|
|
1724
|
+
*/
|
|
1674
1725
|
function findTreeNode(array, criteria, childrenField) {
|
|
1675
1726
|
if (!Array.isArray(array)) return false;
|
|
1676
1727
|
for (const node of array) {
|
|
@@ -1705,7 +1756,7 @@ function insertElement(array, index, ...elements) {
|
|
|
1705
1756
|
return [...array.slice(0, index), ...elements, ...array.slice(index)];
|
|
1706
1757
|
}
|
|
1707
1758
|
|
|
1708
|
-
function findTreePath(array, criteria, childrenField
|
|
1759
|
+
function findTreePath(array, criteria, childrenField, currentPath = []) {
|
|
1709
1760
|
if (!Array.isArray(array)) return false;
|
|
1710
1761
|
for (const node of array) {
|
|
1711
1762
|
currentPath.push(node);
|
package/dist/jsx-runtime.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { isArray, isString } from "cx/util";
|
|
2
2
|
import { HtmlElement, ReactElementWrapper } from "cx/widgets";
|
|
3
3
|
|
|
4
|
+
// Fragment symbol for supporting <>...</> syntax
|
|
5
|
+
const Fragment = Symbol.for("cx.fragment");
|
|
4
6
|
function jsx(typeName, props, key) {
|
|
5
7
|
if (isArray(typeName)) return typeName;
|
|
6
8
|
if (key) {
|
|
@@ -13,7 +15,7 @@ function jsx(typeName, props, key) {
|
|
|
13
15
|
if (typeName.type || typeName.$type) return typeName;
|
|
14
16
|
if (props.children && isArray(props.children) && props.children.length == 0) props.children = null;
|
|
15
17
|
if (props.children && props.children.length == 1) props.children = props.children[0];
|
|
16
|
-
if (typeName == "cx") return props.children;
|
|
18
|
+
if (typeName == "cx" || typeName === Fragment) return props.children;
|
|
17
19
|
if (isString(typeName) && typeName[0] == typeName[0].toLowerCase()) {
|
|
18
20
|
props.tag = typeName;
|
|
19
21
|
typeName = HtmlElement;
|
|
@@ -31,4 +33,4 @@ function jsx(typeName, props, key) {
|
|
|
31
33
|
}
|
|
32
34
|
const jsxs = jsx;
|
|
33
35
|
|
|
34
|
-
export { jsx, jsxs };
|
|
36
|
+
export { Fragment, jsx, jsxs };
|