cx 25.4.1 → 25.5.1

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 (140) hide show
  1. package/dist/charts.js +2 -2
  2. package/dist/data.js +17 -3
  3. package/dist/manifest.js +732 -732
  4. package/dist/ui.js +94 -61
  5. package/dist/widgets.js +25 -13
  6. package/package.json +1 -1
  7. package/src/charts/Legend.d.ts +45 -45
  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/Repeater.js +109 -102
  56. package/src/ui/Rescope.js +35 -31
  57. package/src/ui/Restate.js +167 -163
  58. package/src/ui/Widget.js +184 -200
  59. package/src/ui/adapter/ArrayAdapter.js +152 -142
  60. package/src/ui/adapter/TreeAdapter.js +101 -100
  61. package/src/ui/createFunctionalComponent.d.ts +1 -1
  62. package/src/ui/createFunctionalComponent.js +31 -36
  63. package/src/ui/layout/ContentPlaceholder.d.ts +19 -19
  64. package/src/ui/layout/ContentPlaceholder.js +105 -105
  65. package/src/ui/layout/ContentPlaceholder.spec.js +579 -579
  66. package/src/ui/layout/LabelsTopLayout.js +134 -134
  67. package/src/ui/layout/exploreChildren.d.ts +12 -15
  68. package/src/ui/layout/exploreChildren.js +27 -40
  69. package/src/util/Format.js +270 -270
  70. package/src/util/date/encodeDate.d.ts +1 -1
  71. package/src/util/date/encodeDate.js +8 -8
  72. package/src/util/date/encodeDateWithTimezoneOffset.d.ts +1 -1
  73. package/src/util/date/index.d.ts +11 -11
  74. package/src/util/date/index.js +11 -11
  75. package/src/util/date/parseDateInvariant.d.ts +3 -3
  76. package/src/util/date/parseDateInvariant.js +20 -20
  77. package/src/util/debounce.js +18 -18
  78. package/src/util/getSearchQueryPredicate.js +59 -59
  79. package/src/util/index.d.ts +51 -51
  80. package/src/util/index.js +54 -54
  81. package/src/util/isValidIdentifierName.d.ts +1 -1
  82. package/src/util/isValidIdentifierName.js +5 -5
  83. package/src/util/isValidIdentifierName.spec.js +33 -33
  84. package/src/util/scss/add-rules.scss +38 -38
  85. package/src/util/validatedDebounce.js +19 -19
  86. package/src/widgets/Button.js +118 -118
  87. package/src/widgets/CxCredit.scss +37 -37
  88. package/src/widgets/HighlightedSearchText.js +36 -36
  89. package/src/widgets/HighlightedSearchText.scss +18 -18
  90. package/src/widgets/List.js +594 -587
  91. package/src/widgets/List.scss +91 -91
  92. package/src/widgets/Sandbox.js +9 -8
  93. package/src/widgets/drag-drop/DropZone.js +214 -214
  94. package/src/widgets/form/Calendar.d.ts +86 -86
  95. package/src/widgets/form/Calendar.js +618 -618
  96. package/src/widgets/form/Calendar.scss +196 -196
  97. package/src/widgets/form/Checkbox.scss +127 -127
  98. package/src/widgets/form/ColorField.js +397 -397
  99. package/src/widgets/form/ColorField.scss +96 -96
  100. package/src/widgets/form/ColorPicker.scss +283 -283
  101. package/src/widgets/form/DateTimeField.js +576 -576
  102. package/src/widgets/form/DateTimePicker.js +392 -392
  103. package/src/widgets/form/LookupField.d.ts +179 -179
  104. package/src/widgets/form/LookupField.scss +219 -219
  105. package/src/widgets/form/MonthField.d.ts +99 -99
  106. package/src/widgets/form/MonthField.js +523 -523
  107. package/src/widgets/form/MonthPicker.d.ts +76 -76
  108. package/src/widgets/form/MonthPicker.js +641 -641
  109. package/src/widgets/form/MonthPicker.scss +118 -118
  110. package/src/widgets/form/NumberField.js +459 -459
  111. package/src/widgets/form/NumberField.scss +61 -61
  112. package/src/widgets/form/Radio.scss +121 -121
  113. package/src/widgets/form/Select.scss +99 -99
  114. package/src/widgets/form/Slider.scss +118 -118
  115. package/src/widgets/form/Switch.scss +140 -140
  116. package/src/widgets/form/TextArea.scss +43 -43
  117. package/src/widgets/form/TextField.js +290 -290
  118. package/src/widgets/form/TextField.scss +55 -55
  119. package/src/widgets/form/UploadButton.d.ts +34 -34
  120. package/src/widgets/form/variables.scss +353 -353
  121. package/src/widgets/grid/Grid.d.ts +442 -442
  122. package/src/widgets/grid/Grid.js +7 -0
  123. package/src/widgets/grid/GridRow.js +228 -228
  124. package/src/widgets/grid/TreeNode.d.ts +23 -23
  125. package/src/widgets/grid/TreeNode.scss +88 -88
  126. package/src/widgets/grid/variables.scss +133 -133
  127. package/src/widgets/nav/LinkButton.js +128 -128
  128. package/src/widgets/nav/Menu.scss +74 -74
  129. package/src/widgets/nav/Route.js +102 -106
  130. package/src/widgets/overlay/Dropdown.js +612 -612
  131. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  132. package/src/widgets/overlay/Overlay.d.ts +73 -73
  133. package/src/widgets/overlay/Tooltip.js +1 -1
  134. package/src/widgets/overlay/Window.js +202 -202
  135. package/src/widgets/overlay/captureMouse.js +124 -124
  136. package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +18 -18
  137. package/src/widgets/overlay/createHotPromiseWindowFactory.js +56 -56
  138. package/src/widgets/overlay/index.d.ts +11 -11
  139. package/src/widgets/overlay/index.js +11 -11
  140. package/src/widgets/variables.scss +144 -144
@@ -1,135 +1,135 @@
1
- import {VDOM, getContent, contentAppend} from '../Widget';
2
- import {Container} from '../Container';
3
- import {PureContainer} from '../PureContainer';
4
- import {isArray} from '../../util/isArray';
5
- import {isUndefined} from '../../util/isUndefined';
6
- import {isNumber} from "../../util/isNumber";
7
-
8
- function validContent(r) {
9
- let content = [];
10
- for (let key in r)
11
- if (key != "label")
12
- contentAppend(content, r[key]);
13
- return content;
14
- }
15
-
16
- export class LabelsTopLayout extends Container {
17
-
18
- init() {
19
- if (this.vertical && isUndefined(this.columns))
20
- this.columns = 1;
21
-
22
- super.init();
23
- }
24
-
25
- render(context, instance, key) {
26
- let {children, data} = instance;
27
-
28
- let state = {
29
- rows: [],
30
- currentRow: 0,
31
- labelCells: [],
32
- fieldCells: [],
33
- rowCapacities: [this.columns]
34
- };
35
-
36
- const processContent = (r) => {
37
- if (!r)
38
- return;
39
- if (isArray(r.content) && r.useParentLayout)
40
- r.content.forEach((x) => processContent(x));
41
- else if (r.atomic && r.type == "layout-cell")
42
- this.addItem(state, isArray(r.content) && r.content.length == 1 ? r.content[0] : r.content, r.data);
43
- else
44
- this.addItem(state, r, {});
45
- };
46
-
47
- children.forEach(item => processContent(item.vdom));
48
-
49
- this.addRow(state);
50
-
51
- return <table key={key} className={data.classNames} style={data.style}>
52
- <tbody>
53
- {state.rows}
54
- </tbody>
55
- </table>;
56
- }
57
-
58
- addRow(state) {
59
- if (state.labelCells.length > 0)
60
- state.rows.push(<tr key={state.rows.length}>{state.labelCells}</tr>);
61
-
62
- if (state.fieldCells.length > 0)
63
- state.rows.push(<tr key={state.rows.length}>{state.fieldCells}</tr>);
64
-
65
- state.labelCells = [];
66
- state.fieldCells = [];
67
- state.currentRow++;
68
- if (state.currentRow == state.rowCapacities.length)
69
- state.rowCapacities.push(this.columns);
70
- }
71
-
72
-
73
- addItem(state, item, data) {
74
-
75
- while (state.labelCells.length == state.rowCapacities[state.currentRow])
76
- this.addRow(state);
77
-
78
- if (data.rowSpan > 1) {
79
- for (let row = state.currentRow + 1; row < state.currentRow + data.rowSpan; row++) {
80
- if (row == state.rowCapacities.length)
81
- state.rowCapacities.push(this.columns);
82
- state.rowCapacities[row] -= data.colSpan || 1;
83
- }
84
- }
85
-
86
- if (data.colSpan > 1)
87
- state.rowCapacities[state.currentRow] -= data.colSpan - 1;
88
-
89
- state.labelCells.push(
90
- <td className={this.CSS.element(this.baseClass, "label")} key={state.labelCells.length} colSpan={data.colSpan}>
91
- {getContent(item.label)}
92
- </td>
93
- );
94
- state.fieldCells.push(
95
- <td className={this.CSS.element(this.baseClass, "field")}
96
- key={state.fieldCells.length}
97
- colSpan={data.colSpan}
98
- rowSpan={isNumber(data.rowSpan) ? 2 * data.rowSpan - 1 : undefined}
99
- style={data.style}
100
- >
101
- {validContent(item)}
102
- </td>
103
- );
104
- }
105
- }
106
-
107
- LabelsTopLayout.prototype.baseClass = 'labelstoplayout';
108
- LabelsTopLayout.prototype.vertical = false;
109
- LabelsTopLayout.prototype.columns = undefined;
110
- LabelsTopLayout.prototype.styled = true;
111
-
112
- export class LabelsTopLayoutCell extends PureContainer {
113
-
114
- declareData(...args) {
115
- super.declareData(...args, {
116
- colSpan: undefined,
117
- rowSpan: undefined
118
- })
119
- }
120
-
121
- render(context, instance, key) {
122
-
123
- let { content } = this.renderChildren(context, instance);
124
-
125
- return {
126
- atomic: true,
127
- type: 'layout-cell',
128
- data: instance.data,
129
- content
130
- }
131
- }
132
- }
133
-
134
- LabelsTopLayoutCell.prototype.styled = true;
1
+ import {VDOM, getContent, contentAppend} from '../Widget';
2
+ import {Container} from '../Container';
3
+ import {PureContainer} from '../PureContainer';
4
+ import {isArray} from '../../util/isArray';
5
+ import {isUndefined} from '../../util/isUndefined';
6
+ import {isNumber} from "../../util/isNumber";
7
+
8
+ function validContent(r) {
9
+ let content = [];
10
+ for (let key in r)
11
+ if (key != "label")
12
+ contentAppend(content, r[key]);
13
+ return content;
14
+ }
15
+
16
+ export class LabelsTopLayout extends Container {
17
+
18
+ init() {
19
+ if (this.vertical && isUndefined(this.columns))
20
+ this.columns = 1;
21
+
22
+ super.init();
23
+ }
24
+
25
+ render(context, instance, key) {
26
+ let {children, data} = instance;
27
+
28
+ let state = {
29
+ rows: [],
30
+ currentRow: 0,
31
+ labelCells: [],
32
+ fieldCells: [],
33
+ rowCapacities: [this.columns]
34
+ };
35
+
36
+ const processContent = (r) => {
37
+ if (!r)
38
+ return;
39
+ if (isArray(r.content) && r.useParentLayout)
40
+ r.content.forEach((x) => processContent(x));
41
+ else if (r.atomic && r.type == "layout-cell")
42
+ this.addItem(state, isArray(r.content) && r.content.length == 1 ? r.content[0] : r.content, r.data);
43
+ else
44
+ this.addItem(state, r, {});
45
+ };
46
+
47
+ children.forEach(item => processContent(item.vdom));
48
+
49
+ this.addRow(state);
50
+
51
+ return <table key={key} className={data.classNames} style={data.style}>
52
+ <tbody>
53
+ {state.rows}
54
+ </tbody>
55
+ </table>;
56
+ }
57
+
58
+ addRow(state) {
59
+ if (state.labelCells.length > 0)
60
+ state.rows.push(<tr key={state.rows.length}>{state.labelCells}</tr>);
61
+
62
+ if (state.fieldCells.length > 0)
63
+ state.rows.push(<tr key={state.rows.length}>{state.fieldCells}</tr>);
64
+
65
+ state.labelCells = [];
66
+ state.fieldCells = [];
67
+ state.currentRow++;
68
+ if (state.currentRow == state.rowCapacities.length)
69
+ state.rowCapacities.push(this.columns);
70
+ }
71
+
72
+
73
+ addItem(state, item, data) {
74
+
75
+ while (state.labelCells.length == state.rowCapacities[state.currentRow])
76
+ this.addRow(state);
77
+
78
+ if (data.rowSpan > 1) {
79
+ for (let row = state.currentRow + 1; row < state.currentRow + data.rowSpan; row++) {
80
+ if (row == state.rowCapacities.length)
81
+ state.rowCapacities.push(this.columns);
82
+ state.rowCapacities[row] -= data.colSpan || 1;
83
+ }
84
+ }
85
+
86
+ if (data.colSpan > 1)
87
+ state.rowCapacities[state.currentRow] -= data.colSpan - 1;
88
+
89
+ state.labelCells.push(
90
+ <td className={this.CSS.element(this.baseClass, "label")} key={state.labelCells.length} colSpan={data.colSpan}>
91
+ {getContent(item.label)}
92
+ </td>
93
+ );
94
+ state.fieldCells.push(
95
+ <td className={this.CSS.element(this.baseClass, "field")}
96
+ key={state.fieldCells.length}
97
+ colSpan={data.colSpan}
98
+ rowSpan={isNumber(data.rowSpan) ? 2 * data.rowSpan - 1 : undefined}
99
+ style={data.style}
100
+ >
101
+ {validContent(item)}
102
+ </td>
103
+ );
104
+ }
105
+ }
106
+
107
+ LabelsTopLayout.prototype.baseClass = 'labelstoplayout';
108
+ LabelsTopLayout.prototype.vertical = false;
109
+ LabelsTopLayout.prototype.columns = undefined;
110
+ LabelsTopLayout.prototype.styled = true;
111
+
112
+ export class LabelsTopLayoutCell extends PureContainer {
113
+
114
+ declareData(...args) {
115
+ super.declareData(...args, {
116
+ colSpan: undefined,
117
+ rowSpan: undefined
118
+ })
119
+ }
120
+
121
+ render(context, instance, key) {
122
+
123
+ let { content } = this.renderChildren(context, instance);
124
+
125
+ return {
126
+ atomic: true,
127
+ type: 'layout-cell',
128
+ data: instance.data,
129
+ content
130
+ }
131
+ }
132
+ }
133
+
134
+ LabelsTopLayoutCell.prototype.styled = true;
135
135
  LabelsTopLayoutCell.prototype.useParentLayout = true;
@@ -1,15 +1,12 @@
1
- import * as Cx from '../../core';
2
- import {RenderingContext} from '../RenderingContext';
3
- import {View} from '../../data/View';
4
- import {Instance} from '../Instance';
5
-
6
- export function exploreChildren(
7
- context: RenderingContext,
8
- instance: Instance,
9
- children: Instance[],
10
- previousResult: Instance[],
11
- key?: string,
12
- store?: View,
13
- beforeCallback?: () => void,
14
- afterCallback?: () => void
15
- ) : Instance[];
1
+ import { View } from "../../data/View";
2
+ import { Instance } from "../Instance";
3
+ import { RenderingContext } from "../RenderingContext";
4
+
5
+ export function exploreChildren(
6
+ context: RenderingContext,
7
+ instance: Instance,
8
+ children: Instance[],
9
+ previousResult: Instance[],
10
+ key?: string,
11
+ store?: View,
12
+ ): Instance[];
@@ -1,40 +1,27 @@
1
- import {reverseSlice} from "../../util/reverseSlice";
2
-
3
- export function exploreChildren(context, instance, children, previousResult, key, store, beforeCallback, afterCallback) {
4
- let newChildren = previousResult || [];
5
- let oldChildren = previousResult || newChildren;
6
- let identical = previousResult ? 0 : -1;
7
-
8
- // if (children.length)
9
- // context.exploreStack.hop();
10
-
11
- for (let c = 0; c < children.length; c++) {
12
- let cell = instance.getChild(context, children[c], key, store);
13
-
14
- // if (beforeCallback)
15
- // beforeCallback(cell);
16
-
17
- if (cell.checkVisible(context)) {
18
- if (identical >= 0) {
19
- if (cell == oldChildren[identical])
20
- identical++;
21
- else {
22
- newChildren = newChildren.slice(0, identical);
23
- identical = -1;
24
- newChildren.push(cell);
25
- }
26
- }
27
- else
28
- newChildren.push(cell);
29
-
30
- context.exploreStack.push(cell);
31
- if (cell.needsExploreCleanup)
32
- context.exploreStack.push(cell);
33
- }
34
- }
35
-
36
- if (identical >= 0 && identical != newChildren.length)
37
- newChildren = newChildren.slice(0, identical);
38
-
39
- return newChildren;
40
- }
1
+ export function exploreChildren(context, instance, children, previousResult, key, store) {
2
+ let newChildren = previousResult || [];
3
+ let oldChildren = previousResult || newChildren;
4
+ let identical = previousResult ? 0 : -1;
5
+
6
+ for (let c = 0; c < children.length; c++) {
7
+ let cell = instance.getChild(context, children[c], key, store);
8
+
9
+ if (cell.checkVisible(context)) {
10
+ if (identical >= 0) {
11
+ if (cell == oldChildren[identical]) identical++;
12
+ else {
13
+ newChildren = newChildren.slice(0, identical);
14
+ identical = -1;
15
+ newChildren.push(cell);
16
+ }
17
+ } else newChildren.push(cell);
18
+
19
+ context.exploreStack.push(cell);
20
+ if (cell.needsExploreCleanup) context.exploreStack.push(cell);
21
+ }
22
+ }
23
+
24
+ if (identical >= 0 && identical != newChildren.length) newChildren = newChildren.slice(0, identical);
25
+
26
+ return newChildren;
27
+ }