cx 25.4.0 → 25.5.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.
Files changed (138) hide show
  1. package/dist/charts.js +2 -2
  2. package/dist/data.js +17 -3
  3. package/dist/manifest.js +651 -651
  4. package/dist/ui.js +88 -61
  5. package/dist/widgets.js +13 -13
  6. package/package.json +1 -1
  7. package/src/charts/Legend.d.ts +6 -6
  8. package/src/charts/LegendEntry.js +128 -128
  9. package/src/charts/LegendEntry.scss +27 -27
  10. package/src/charts/PieChart.d.ts +92 -92
  11. package/src/charts/RangeMarker.js +6 -2
  12. package/src/charts/axis/Axis.d.ts +113 -113
  13. package/src/charts/axis/Axis.js +280 -280
  14. package/src/charts/axis/CategoryAxis.d.ts +30 -30
  15. package/src/charts/axis/CategoryAxis.js +241 -241
  16. package/src/charts/axis/NumericAxis.d.ts +46 -46
  17. package/src/charts/axis/NumericAxis.js +351 -351
  18. package/src/charts/axis/Stack.js +55 -55
  19. package/src/charts/axis/TimeAxis.d.ts +31 -28
  20. package/src/charts/axis/TimeAxis.js +611 -611
  21. package/src/charts/helpers/PointReducer.js +47 -47
  22. package/src/charts/helpers/SnapPointFinder.js +69 -69
  23. package/src/data/AugmentedViewBase.js +77 -75
  24. package/src/data/Binding.spec.js +69 -69
  25. package/src/data/ExposedRecordView.js +75 -70
  26. package/src/data/ExposedValueView.js +73 -72
  27. package/src/data/Expression.js +229 -229
  28. package/src/data/Expression.spec.js +229 -229
  29. package/src/data/Ref.d.ts +24 -24
  30. package/src/data/Ref.spec.js +79 -79
  31. package/src/data/StoreRef.spec.js +24 -24
  32. package/src/data/StringTemplate.js +92 -92
  33. package/src/data/StringTemplate.spec.js +132 -132
  34. package/src/data/StructuredDataAccessor.d.ts +7 -7
  35. package/src/data/StructuredSelector.js +132 -132
  36. package/src/data/SubscribableView.js +54 -54
  37. package/src/data/getAccessor.spec.js +11 -11
  38. package/src/data/getSelector.js +49 -49
  39. package/src/hooks/createLocalStorageRef.d.ts +3 -3
  40. package/src/hooks/createLocalStorageRef.js +20 -20
  41. package/src/index.scss +6 -6
  42. package/src/ui/Container.js +154 -183
  43. package/src/ui/Culture.d.ts +57 -57
  44. package/src/ui/Culture.js +139 -139
  45. package/src/ui/Cx.js +3 -3
  46. package/src/ui/DataProxy.js +45 -44
  47. package/src/ui/DetachedScope.js +98 -94
  48. package/src/ui/FocusManager.js +171 -171
  49. package/src/ui/Format.js +108 -108
  50. package/src/ui/HoverSync.js +147 -147
  51. package/src/ui/Instance.d.ts +1 -1
  52. package/src/ui/Instance.js +25 -16
  53. package/src/ui/IsolatedScope.js +30 -30
  54. package/src/ui/Repeater.d.ts +61 -61
  55. package/src/ui/Rescope.js +35 -31
  56. package/src/ui/Restate.js +167 -163
  57. package/src/ui/Widget.js +184 -200
  58. package/src/ui/adapter/ArrayAdapter.js +152 -142
  59. package/src/ui/adapter/TreeAdapter.js +101 -100
  60. package/src/ui/createFunctionalComponent.d.ts +1 -1
  61. package/src/ui/createFunctionalComponent.js +31 -36
  62. package/src/ui/layout/ContentPlaceholder.d.ts +19 -19
  63. package/src/ui/layout/ContentPlaceholder.js +105 -105
  64. package/src/ui/layout/ContentPlaceholder.spec.js +579 -579
  65. package/src/ui/layout/LabelsTopLayout.js +134 -134
  66. package/src/ui/layout/exploreChildren.d.ts +12 -15
  67. package/src/ui/layout/exploreChildren.js +27 -40
  68. package/src/util/Format.js +270 -270
  69. package/src/util/date/encodeDate.d.ts +1 -1
  70. package/src/util/date/encodeDate.js +8 -8
  71. package/src/util/date/encodeDateWithTimezoneOffset.d.ts +1 -1
  72. package/src/util/date/index.d.ts +11 -11
  73. package/src/util/date/index.js +11 -11
  74. package/src/util/date/parseDateInvariant.d.ts +3 -3
  75. package/src/util/date/parseDateInvariant.js +20 -20
  76. package/src/util/debounce.js +18 -18
  77. package/src/util/getSearchQueryPredicate.js +59 -59
  78. package/src/util/index.d.ts +51 -51
  79. package/src/util/index.js +54 -54
  80. package/src/util/isValidIdentifierName.d.ts +1 -1
  81. package/src/util/isValidIdentifierName.js +5 -5
  82. package/src/util/isValidIdentifierName.spec.js +33 -33
  83. package/src/util/scss/add-rules.scss +38 -38
  84. package/src/util/validatedDebounce.js +19 -19
  85. package/src/widgets/Button.js +118 -118
  86. package/src/widgets/CxCredit.scss +37 -37
  87. package/src/widgets/HighlightedSearchText.js +36 -36
  88. package/src/widgets/HighlightedSearchText.scss +18 -18
  89. package/src/widgets/List.scss +91 -91
  90. package/src/widgets/Sandbox.js +9 -8
  91. package/src/widgets/drag-drop/DropZone.js +214 -214
  92. package/src/widgets/form/Calendar.d.ts +86 -86
  93. package/src/widgets/form/Calendar.js +618 -618
  94. package/src/widgets/form/Calendar.scss +196 -196
  95. package/src/widgets/form/Checkbox.scss +127 -127
  96. package/src/widgets/form/ColorField.js +397 -397
  97. package/src/widgets/form/ColorField.scss +96 -96
  98. package/src/widgets/form/ColorPicker.scss +283 -283
  99. package/src/widgets/form/DateTimeField.js +576 -576
  100. package/src/widgets/form/DateTimePicker.js +392 -392
  101. package/src/widgets/form/LookupField.d.ts +179 -179
  102. package/src/widgets/form/LookupField.scss +219 -219
  103. package/src/widgets/form/MonthField.d.ts +99 -99
  104. package/src/widgets/form/MonthField.js +523 -523
  105. package/src/widgets/form/MonthPicker.d.ts +76 -76
  106. package/src/widgets/form/MonthPicker.js +641 -641
  107. package/src/widgets/form/MonthPicker.scss +118 -118
  108. package/src/widgets/form/NumberField.js +459 -459
  109. package/src/widgets/form/NumberField.scss +61 -61
  110. package/src/widgets/form/Radio.scss +121 -121
  111. package/src/widgets/form/Select.scss +99 -99
  112. package/src/widgets/form/Slider.scss +118 -118
  113. package/src/widgets/form/Switch.scss +140 -140
  114. package/src/widgets/form/TextArea.scss +43 -43
  115. package/src/widgets/form/TextField.js +290 -290
  116. package/src/widgets/form/TextField.scss +55 -55
  117. package/src/widgets/form/UploadButton.d.ts +34 -34
  118. package/src/widgets/form/variables.scss +353 -353
  119. package/src/widgets/grid/Grid.d.ts +442 -442
  120. package/src/widgets/grid/Grid.js +3414 -3414
  121. package/src/widgets/grid/GridRow.js +228 -228
  122. package/src/widgets/grid/TreeNode.d.ts +23 -23
  123. package/src/widgets/grid/TreeNode.scss +88 -88
  124. package/src/widgets/grid/variables.scss +133 -133
  125. package/src/widgets/nav/LinkButton.js +128 -128
  126. package/src/widgets/nav/Menu.scss +74 -74
  127. package/src/widgets/nav/Route.js +102 -106
  128. package/src/widgets/overlay/Dropdown.js +612 -612
  129. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  130. package/src/widgets/overlay/Overlay.d.ts +73 -73
  131. package/src/widgets/overlay/Tooltip.js +1 -1
  132. package/src/widgets/overlay/Window.js +202 -202
  133. package/src/widgets/overlay/captureMouse.js +124 -124
  134. package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +18 -18
  135. package/src/widgets/overlay/createHotPromiseWindowFactory.js +56 -56
  136. package/src/widgets/overlay/index.d.ts +11 -11
  137. package/src/widgets/overlay/index.js +11 -11
  138. package/src/widgets/variables.scss +144 -144
@@ -1,128 +1,128 @@
1
- import { Widget, VDOM } from "../ui/Widget";
2
- import { getShape } from "./shapes";
3
- import { Selection } from "../ui/selection/Selection";
4
- import { stopPropagation } from "../util/eventCallbacks";
5
- import { isUndefined } from "../util/isUndefined";
6
- import { Container } from "../ui/Container";
7
-
8
- export class LegendEntry extends Container {
9
- init() {
10
- this.selection = Selection.create(this.selection);
11
- super.init();
12
- }
13
-
14
- declareData() {
15
- var selection = this.selection.configureWidget(this);
16
-
17
- super.declareData(...arguments, selection, {
18
- selected: undefined,
19
- shape: undefined,
20
- colorIndex: undefined,
21
- colorMap: undefined,
22
- colorName: undefined,
23
- name: undefined,
24
- active: true,
25
- size: undefined,
26
- rx: undefined,
27
- ry: undefined,
28
- text: undefined,
29
- });
30
- }
31
-
32
- prepareData(context, instance) {
33
- let { data } = instance;
34
-
35
- if (data.name && !data.colorName) data.colorName = data.name;
36
-
37
- super.prepareData(context, instance);
38
- }
39
-
40
- explore(context, instance) {
41
- var { data } = instance;
42
- instance.colorMap = data.colorMap && context.getColorMap && context.getColorMap(data.colorMap);
43
- if (instance.colorMap && data.colorName) instance.colorMap.acknowledge(data.colorName);
44
- super.explore(context, instance);
45
- }
46
-
47
- prepare(context, instance) {
48
- var { data, colorMap } = instance;
49
-
50
- if (colorMap && data.colorName) {
51
- data.colorIndex = colorMap.map(data.colorName);
52
- if (instance.cache("colorIndex", data.colorIndex)) instance.markShouldUpdate(context);
53
- }
54
- }
55
-
56
- handleClick(e, instance) {
57
- if (this.onClick && instance.invoke("onClick", e, instance) === false) return;
58
-
59
- e.stopPropagation();
60
-
61
- var any = this.legendAction == "auto";
62
-
63
- if (any || this.legendAction == "toggle") if (instance.set("active", !instance.data.active)) return;
64
-
65
- if ((any || this.legendAction == "select") && !this.selection.isDummy) this.selection.selectInstance(instance);
66
- }
67
-
68
- render(context, instance, key) {
69
- let { data } = instance;
70
- let content = !isUndefined(this.text) ? data.text : this.renderChildren(context, instance);
71
- return (
72
- <div
73
- key={key}
74
- className={data.classNames}
75
- style={data.style}
76
- onMouseDown={stopPropagation}
77
- onClick={(e) => {
78
- this.handleClick(e, instance);
79
- }}
80
- >
81
- {this.renderShape(instance)}
82
- {content != null && <div>{content}</div>}
83
- </div>
84
- );
85
- }
86
-
87
- renderShape(instance) {
88
- var entry = instance.data;
89
- var className = this.CSS.element(this.baseClass, "shape", {
90
- disabled: entry.disabled,
91
- selected: entry.selected || this.selection.isInstanceSelected(instance),
92
- [`color-${entry.colorIndex}`]: entry.colorIndex != null && (isUndefined(entry.active) || entry.active),
93
- });
94
- var shape = getShape(entry.shape || "square");
95
-
96
- // if the entry has a custom fill or stroke set, use it for both values
97
- let style = { ...entry.style };
98
- style.fill = style.fill ?? style.stroke;
99
- style.stroke = style.stroke ?? style.fill;
100
-
101
- return (
102
- <svg
103
- key="svg"
104
- className={this.CSS.element(this.baseClass, "svg")}
105
- style={{
106
- width: `${this.svgSize}px`,
107
- height: `${this.svgSize}px`,
108
- }}
109
- >
110
- {shape(this.svgSize / 2, this.svgSize / 2, entry.size, {
111
- style,
112
- className,
113
- rx: entry.rx,
114
- ry: entry.ry,
115
- })}
116
- </svg>
117
- );
118
- }
119
- }
120
-
121
- LegendEntry.prototype.baseClass = "legendentry";
122
- LegendEntry.prototype.shape = "square";
123
- LegendEntry.prototype.legendAction = "auto";
124
- LegendEntry.prototype.size = 18;
125
- LegendEntry.prototype.svgSize = 20;
126
- LegendEntry.prototype.styled = true;
127
-
128
- Widget.alias("legend-entry", LegendEntry);
1
+ import { Widget, VDOM } from "../ui/Widget";
2
+ import { getShape } from "./shapes";
3
+ import { Selection } from "../ui/selection/Selection";
4
+ import { stopPropagation } from "../util/eventCallbacks";
5
+ import { isUndefined } from "../util/isUndefined";
6
+ import { Container } from "../ui/Container";
7
+
8
+ export class LegendEntry extends Container {
9
+ init() {
10
+ this.selection = Selection.create(this.selection);
11
+ super.init();
12
+ }
13
+
14
+ declareData() {
15
+ var selection = this.selection.configureWidget(this);
16
+
17
+ super.declareData(...arguments, selection, {
18
+ selected: undefined,
19
+ shape: undefined,
20
+ colorIndex: undefined,
21
+ colorMap: undefined,
22
+ colorName: undefined,
23
+ name: undefined,
24
+ active: true,
25
+ size: undefined,
26
+ rx: undefined,
27
+ ry: undefined,
28
+ text: undefined,
29
+ });
30
+ }
31
+
32
+ prepareData(context, instance) {
33
+ let { data } = instance;
34
+
35
+ if (data.name && !data.colorName) data.colorName = data.name;
36
+
37
+ super.prepareData(context, instance);
38
+ }
39
+
40
+ explore(context, instance) {
41
+ var { data } = instance;
42
+ instance.colorMap = data.colorMap && context.getColorMap && context.getColorMap(data.colorMap);
43
+ if (instance.colorMap && data.colorName) instance.colorMap.acknowledge(data.colorName);
44
+ super.explore(context, instance);
45
+ }
46
+
47
+ prepare(context, instance) {
48
+ var { data, colorMap } = instance;
49
+
50
+ if (colorMap && data.colorName) {
51
+ data.colorIndex = colorMap.map(data.colorName);
52
+ if (instance.cache("colorIndex", data.colorIndex)) instance.markShouldUpdate(context);
53
+ }
54
+ }
55
+
56
+ handleClick(e, instance) {
57
+ if (this.onClick && instance.invoke("onClick", e, instance) === false) return;
58
+
59
+ e.stopPropagation();
60
+
61
+ var any = this.legendAction == "auto";
62
+
63
+ if (any || this.legendAction == "toggle") if (instance.set("active", !instance.data.active)) return;
64
+
65
+ if ((any || this.legendAction == "select") && !this.selection.isDummy) this.selection.selectInstance(instance);
66
+ }
67
+
68
+ render(context, instance, key) {
69
+ let { data } = instance;
70
+ let content = !isUndefined(this.text) ? data.text : this.renderChildren(context, instance);
71
+ return (
72
+ <div
73
+ key={key}
74
+ className={data.classNames}
75
+ style={data.style}
76
+ onMouseDown={stopPropagation}
77
+ onClick={(e) => {
78
+ this.handleClick(e, instance);
79
+ }}
80
+ >
81
+ {this.renderShape(instance)}
82
+ {content != null && <div>{content}</div>}
83
+ </div>
84
+ );
85
+ }
86
+
87
+ renderShape(instance) {
88
+ var entry = instance.data;
89
+ var className = this.CSS.element(this.baseClass, "shape", {
90
+ disabled: entry.disabled,
91
+ selected: entry.selected || this.selection.isInstanceSelected(instance),
92
+ [`color-${entry.colorIndex}`]: entry.colorIndex != null && (isUndefined(entry.active) || entry.active),
93
+ });
94
+ var shape = getShape(entry.shape || "square");
95
+
96
+ // if the entry has a custom fill or stroke set, use it for both values
97
+ let style = { ...entry.style };
98
+ style.fill = style.fill ?? style.stroke;
99
+ style.stroke = style.stroke ?? style.fill;
100
+
101
+ return (
102
+ <svg
103
+ key="svg"
104
+ className={this.CSS.element(this.baseClass, "svg")}
105
+ style={{
106
+ width: `${this.svgSize}px`,
107
+ height: `${this.svgSize}px`,
108
+ }}
109
+ >
110
+ {shape(this.svgSize / 2, this.svgSize / 2, entry.size, {
111
+ style,
112
+ className,
113
+ rx: entry.rx,
114
+ ry: entry.ry,
115
+ })}
116
+ </svg>
117
+ );
118
+ }
119
+ }
120
+
121
+ LegendEntry.prototype.baseClass = "legendentry";
122
+ LegendEntry.prototype.shape = "square";
123
+ LegendEntry.prototype.legendAction = "auto";
124
+ LegendEntry.prototype.size = 18;
125
+ LegendEntry.prototype.svgSize = 20;
126
+ LegendEntry.prototype.styled = true;
127
+
128
+ Widget.alias("legend-entry", LegendEntry);
@@ -1,27 +1,27 @@
1
- @mixin cx-legendentry($name: "legendentry", $besm: $cx-besm) {
2
- $block: map-get($besm, block);
3
- $element: map-get($besm, element);
4
- $state: map-get($besm, state);
5
-
6
- .#{$block}#{$name} {
7
- display: inline-flex;
8
- align-items: center;
9
- padding: 5px;
10
- gap: 5px;
11
- position: relative;
12
- box-sizing: border-box;
13
- cursor: pointer;
14
- }
15
-
16
- .#{$element}#{$name}-svg {
17
- flex-shrink: 0;
18
- }
19
-
20
- .#{$element}#{$name}-shape {
21
- fill: #eee;
22
- }
23
- }
24
-
25
- @if (cx-should-include("cx/charts/LegendEntry")) {
26
- @include cx-legendentry();
27
- }
1
+ @mixin cx-legendentry($name: "legendentry", $besm: $cx-besm) {
2
+ $block: map-get($besm, block);
3
+ $element: map-get($besm, element);
4
+ $state: map-get($besm, state);
5
+
6
+ .#{$block}#{$name} {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ padding: 5px;
10
+ gap: 5px;
11
+ position: relative;
12
+ box-sizing: border-box;
13
+ cursor: pointer;
14
+ }
15
+
16
+ .#{$element}#{$name}-svg {
17
+ flex-shrink: 0;
18
+ }
19
+
20
+ .#{$element}#{$name}-shape {
21
+ fill: #eee;
22
+ }
23
+ }
24
+
25
+ @if (cx-should-include("cx/charts/LegendEntry")) {
26
+ @include cx-legendentry();
27
+ }
@@ -1,92 +1,92 @@
1
- import * as Cx from "../core";
2
- import { BoundedObject, BoundedObjectProps } from "../svg/BoundedObject";
3
- import { PropertySelection, KeySelection } from "../ui/selection";
4
-
5
- interface PieChartProps extends BoundedObjectProps {
6
- /** Angle in degrees. Default is `360` which represents the full circle. */
7
- angle?: Cx.NumberProp;
8
-
9
- /** Start angle in degrees. Indicates the starting point of the first stack. Default is `0`. */
10
- startAngle?: Cx.NumberProp;
11
-
12
- /** When set to `true`, stacks are rendered in clock wise direction. */
13
- clockwise?: Cx.BooleanProp;
14
-
15
- /** Gap between slices in pixels. Default is `0` which means there is no gap. */
16
- gap?: Cx.NumberProp;
17
- }
18
-
19
- export class PieChart extends Cx.Widget<PieChartProps> {}
20
-
21
- interface PieSliceProps extends Cx.StyledContainerProps {
22
- /** Used to indicate whether an item is active or not. Inactive items are shown only in the legend. */
23
- active?: Cx.BooleanProp;
24
-
25
- /**
26
- * Inner pie radius in percents of the maximum available radius.
27
- * If `percentageRadius` flag is set to false, then the value represents the radius in pixels. Default is 0.
28
- */
29
- r0?: Cx.NumberProp;
30
-
31
- /**
32
- * Outer pie radius in percents of the maximum available radius.
33
- * If `percentageRadius` flag is set to false, then the value represents the radius in pixels. Default is 50.
34
- */
35
- r?: Cx.NumberProp;
36
-
37
- /** Index of a color from the standard palette of colors. 0-15. */
38
- colorIndex?: Cx.NumberProp;
39
-
40
- /** Used to automatically assign a color based on the `name` and the contextual `ColorMap` widget. */
41
- colorMap?: Cx.StringProp;
42
-
43
- /** Name used to resolve the color. If not provided, `name` is used instead. */
44
- colorName?: Cx.StringProp;
45
-
46
- /** Value in pixels to be used to explode the pie. */
47
- offset?: Cx.NumberProp;
48
-
49
- value?: Cx.NumberProp;
50
- disabled?: Cx.BooleanProp;
51
- innerPointRadius?: Cx.NumberProp;
52
- outerPointRadius?: Cx.NumberProp;
53
-
54
- /** Name of the item as it will appear in the legend. */
55
- name?: Cx.StringProp;
56
-
57
- /** Multi-level pie charts consist of multiple stacks. Assign a unique name to each level. Default is `stack`. */
58
- stack?: Cx.StringProp;
59
-
60
- /** Name of the legend to be used. Default is `legend`. */
61
- legend?: Cx.StringProp;
62
-
63
- percentageRaidus?: boolean;
64
-
65
- /** Base CSS class to be applied to the element. Defaults to `pieslice`. */
66
- baseClass?: string;
67
-
68
- legendAction?: string;
69
-
70
- /** Text to be displayed in the legend. The default is copying the `name` value. */
71
- legendDisplayText?: Cx.StringProp;
72
-
73
- /** Tooltip configuration. For more info see Tooltips. */
74
- tooltip?: Cx.StringProp | Cx.StructuredProp;
75
-
76
- /** Selection configuration. */
77
- selection?: { type: typeof PropertySelection | typeof KeySelection; [prop: string]: any };
78
-
79
- /** A value used to identify the group of components participating in hover effect synchronization. */
80
- hoverChannel?: string;
81
-
82
- /** A value used to uniquely identify the record within the hover sync group. */
83
- hoverId?: Cx.StringProp;
84
-
85
- /** Border radius of the slice. Default is 0. */
86
- borderRadius?: Cx.NumberProp;
87
-
88
- /** Border radius of the slice. Default is 0. */
89
- br?: Cx.NumberProp;
90
- }
91
-
92
- export class PieSlice extends Cx.Widget<PieSliceProps> {}
1
+ import * as Cx from "../core";
2
+ import { BoundedObject, BoundedObjectProps } from "../svg/BoundedObject";
3
+ import { PropertySelection, KeySelection } from "../ui/selection";
4
+
5
+ interface PieChartProps extends BoundedObjectProps {
6
+ /** Angle in degrees. Default is `360` which represents the full circle. */
7
+ angle?: Cx.NumberProp;
8
+
9
+ /** Start angle in degrees. Indicates the starting point of the first stack. Default is `0`. */
10
+ startAngle?: Cx.NumberProp;
11
+
12
+ /** When set to `true`, stacks are rendered in clock wise direction. */
13
+ clockwise?: Cx.BooleanProp;
14
+
15
+ /** Gap between slices in pixels. Default is `0` which means there is no gap. */
16
+ gap?: Cx.NumberProp;
17
+ }
18
+
19
+ export class PieChart extends Cx.Widget<PieChartProps> {}
20
+
21
+ interface PieSliceProps extends Cx.StyledContainerProps {
22
+ /** Used to indicate whether an item is active or not. Inactive items are shown only in the legend. */
23
+ active?: Cx.BooleanProp;
24
+
25
+ /**
26
+ * Inner pie radius in percents of the maximum available radius.
27
+ * If `percentageRadius` flag is set to false, then the value represents the radius in pixels. Default is 0.
28
+ */
29
+ r0?: Cx.NumberProp;
30
+
31
+ /**
32
+ * Outer pie radius in percents of the maximum available radius.
33
+ * If `percentageRadius` flag is set to false, then the value represents the radius in pixels. Default is 50.
34
+ */
35
+ r?: Cx.NumberProp;
36
+
37
+ /** Index of a color from the standard palette of colors. 0-15. */
38
+ colorIndex?: Cx.NumberProp;
39
+
40
+ /** Used to automatically assign a color based on the `name` and the contextual `ColorMap` widget. */
41
+ colorMap?: Cx.StringProp;
42
+
43
+ /** Name used to resolve the color. If not provided, `name` is used instead. */
44
+ colorName?: Cx.StringProp;
45
+
46
+ /** Value in pixels to be used to explode the pie. */
47
+ offset?: Cx.NumberProp;
48
+
49
+ value?: Cx.NumberProp;
50
+ disabled?: Cx.BooleanProp;
51
+ innerPointRadius?: Cx.NumberProp;
52
+ outerPointRadius?: Cx.NumberProp;
53
+
54
+ /** Name of the item as it will appear in the legend. */
55
+ name?: Cx.StringProp;
56
+
57
+ /** Multi-level pie charts consist of multiple stacks. Assign a unique name to each level. Default is `stack`. */
58
+ stack?: Cx.StringProp;
59
+
60
+ /** Name of the legend to be used. Default is `legend`. */
61
+ legend?: Cx.StringProp;
62
+
63
+ percentageRaidus?: boolean;
64
+
65
+ /** Base CSS class to be applied to the element. Defaults to `pieslice`. */
66
+ baseClass?: string;
67
+
68
+ legendAction?: string;
69
+
70
+ /** Text to be displayed in the legend. The default is copying the `name` value. */
71
+ legendDisplayText?: Cx.StringProp;
72
+
73
+ /** Tooltip configuration. For more info see Tooltips. */
74
+ tooltip?: Cx.StringProp | Cx.StructuredProp;
75
+
76
+ /** Selection configuration. */
77
+ selection?: { type: typeof PropertySelection | typeof KeySelection; [prop: string]: any };
78
+
79
+ /** A value used to identify the group of components participating in hover effect synchronization. */
80
+ hoverChannel?: string;
81
+
82
+ /** A value used to uniquely identify the record within the hover sync group. */
83
+ hoverId?: Cx.StringProp;
84
+
85
+ /** Border radius of the slice. Default is 0. */
86
+ borderRadius?: Cx.NumberProp;
87
+
88
+ /** Border radius of the slice. Default is 0. */
89
+ br?: Cx.NumberProp;
90
+ }
91
+
92
+ export class PieSlice extends Cx.Widget<PieSliceProps> {}
@@ -132,8 +132,12 @@ export class RangeMarker extends BoundedObject {
132
132
  }
133
133
 
134
134
  return (
135
- <g key={key} class={data.classNames} style={data.style}>
136
- <path d={path} class={CSS.expand(CSS.element(baseClass, "path"), data.lineClass)} style={data.lineStyle} />
135
+ <g key={key} className={data.classNames} style={data.style}>
136
+ <path
137
+ d={path}
138
+ className={CSS.expand(CSS.element(baseClass, "path"), data.lineClass)}
139
+ style={data.lineStyle}
140
+ />
137
141
  {this.renderChildren(context, instance)}
138
142
  </g>
139
143
  );