cx 25.2.0 → 25.3.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 (113) hide show
  1. package/dist/manifest.js +606 -606
  2. package/dist/widgets.js +15 -4
  3. package/package.json +32 -32
  4. package/src/charts/Legend.js +167 -167
  5. package/src/charts/Legend.scss +40 -40
  6. package/src/charts/LegendEntry.js +128 -128
  7. package/src/charts/LegendEntry.scss +27 -27
  8. package/src/charts/PieChart.d.ts +92 -92
  9. package/src/charts/PieChart.js +529 -529
  10. package/src/charts/axis/Axis.d.ts +113 -113
  11. package/src/charts/axis/Axis.js +280 -280
  12. package/src/charts/axis/CategoryAxis.d.ts +30 -30
  13. package/src/charts/axis/CategoryAxis.js +241 -241
  14. package/src/charts/axis/NumericAxis.js +351 -351
  15. package/src/charts/axis/Stack.js +55 -55
  16. package/src/charts/axis/TimeAxis.d.ts +28 -28
  17. package/src/charts/axis/TimeAxis.js +611 -611
  18. package/src/charts/helpers/PointReducer.js +47 -47
  19. package/src/charts/helpers/SnapPointFinder.js +69 -69
  20. package/src/core.d.ts +40 -1
  21. package/src/data/Binding.spec.js +69 -69
  22. package/src/data/Expression.js +229 -229
  23. package/src/data/Expression.spec.js +229 -229
  24. package/src/data/StringTemplate.js +92 -92
  25. package/src/data/StringTemplate.spec.js +132 -132
  26. package/src/data/StructuredSelector.js +132 -132
  27. package/src/data/View.d.ts +36 -12
  28. package/src/data/getAccessor.spec.js +11 -11
  29. package/src/data/getSelector.js +49 -49
  30. package/src/hooks/createLocalStorageRef.d.ts +3 -3
  31. package/src/hooks/createLocalStorageRef.js +20 -20
  32. package/src/index.scss +6 -6
  33. package/src/ui/Culture.d.ts +57 -57
  34. package/src/ui/Culture.js +139 -139
  35. package/src/ui/FocusManager.js +171 -171
  36. package/src/ui/Format.js +108 -108
  37. package/src/ui/HoverSync.js +147 -147
  38. package/src/ui/Instance.d.ts +72 -72
  39. package/src/ui/Instance.js +614 -614
  40. package/src/ui/Repeater.d.ts +61 -61
  41. package/src/ui/ResizeManager.d.ts +4 -3
  42. package/src/ui/index.d.ts +42 -42
  43. package/src/ui/layout/ContentPlaceholder.d.ts +19 -19
  44. package/src/ui/layout/ContentPlaceholder.js +105 -105
  45. package/src/ui/layout/ContentPlaceholder.spec.js +579 -579
  46. package/src/ui/layout/LabelsTopLayout.js +134 -134
  47. package/src/util/date/encodeDate.d.ts +1 -1
  48. package/src/util/date/encodeDate.js +8 -8
  49. package/src/util/date/encodeDateWithTimezoneOffset.d.ts +1 -1
  50. package/src/util/date/index.d.ts +11 -11
  51. package/src/util/date/index.js +11 -11
  52. package/src/util/date/parseDateInvariant.d.ts +3 -3
  53. package/src/util/date/parseDateInvariant.js +20 -20
  54. package/src/util/debounce.d.ts +3 -4
  55. package/src/util/getSearchQueryPredicate.js +59 -59
  56. package/src/util/index.d.ts +51 -51
  57. package/src/util/index.js +54 -54
  58. package/src/util/isValidIdentifierName.d.ts +1 -1
  59. package/src/util/isValidIdentifierName.js +5 -5
  60. package/src/util/isValidIdentifierName.spec.js +33 -33
  61. package/src/util/scss/add-rules.scss +38 -38
  62. package/src/widgets/CxCredit.scss +37 -37
  63. package/src/widgets/HighlightedSearchText.js +36 -36
  64. package/src/widgets/HighlightedSearchText.scss +18 -18
  65. package/src/widgets/HtmlElement.d.ts +4 -0
  66. package/src/widgets/List.scss +91 -91
  67. package/src/widgets/drag-drop/DropZone.js +214 -214
  68. package/src/widgets/form/Calendar.js +618 -618
  69. package/src/widgets/form/Calendar.scss +196 -196
  70. package/src/widgets/form/Checkbox.scss +127 -127
  71. package/src/widgets/form/ColorField.js +397 -397
  72. package/src/widgets/form/ColorField.scss +96 -96
  73. package/src/widgets/form/ColorPicker.js +485 -480
  74. package/src/widgets/form/ColorPicker.scss +283 -283
  75. package/src/widgets/form/DateTimeField.js +576 -576
  76. package/src/widgets/form/DateTimePicker.js +392 -392
  77. package/src/widgets/form/LookupField.d.ts +179 -179
  78. package/src/widgets/form/LookupField.scss +219 -219
  79. package/src/widgets/form/MonthField.d.ts +99 -99
  80. package/src/widgets/form/MonthField.js +523 -523
  81. package/src/widgets/form/MonthPicker.d.ts +76 -76
  82. package/src/widgets/form/MonthPicker.js +641 -641
  83. package/src/widgets/form/MonthPicker.scss +118 -118
  84. package/src/widgets/form/NumberField.js +459 -459
  85. package/src/widgets/form/NumberField.scss +61 -61
  86. package/src/widgets/form/Radio.scss +121 -121
  87. package/src/widgets/form/Select.scss +99 -99
  88. package/src/widgets/form/Slider.scss +118 -118
  89. package/src/widgets/form/Switch.scss +140 -140
  90. package/src/widgets/form/TextArea.scss +43 -43
  91. package/src/widgets/form/TextField.js +290 -290
  92. package/src/widgets/form/TextField.scss +55 -55
  93. package/src/widgets/form/UploadButton.d.ts +34 -34
  94. package/src/widgets/form/variables.scss +353 -353
  95. package/src/widgets/grid/Grid.d.ts +442 -442
  96. package/src/widgets/grid/Grid.js +3414 -3414
  97. package/src/widgets/grid/GridRow.js +228 -228
  98. package/src/widgets/grid/TreeNode.d.ts +23 -23
  99. package/src/widgets/grid/TreeNode.scss +88 -88
  100. package/src/widgets/grid/variables.scss +133 -133
  101. package/src/widgets/nav/LinkButton.js +3 -3
  102. package/src/widgets/nav/Menu.scss +74 -74
  103. package/src/widgets/overlay/Dropdown.js +612 -612
  104. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  105. package/src/widgets/overlay/Overlay.d.ts +73 -73
  106. package/src/widgets/overlay/Tooltip.js +308 -303
  107. package/src/widgets/overlay/Window.js +202 -202
  108. package/src/widgets/overlay/captureMouse.js +124 -124
  109. package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +18 -18
  110. package/src/widgets/overlay/createHotPromiseWindowFactory.js +56 -56
  111. package/src/widgets/overlay/index.d.ts +11 -11
  112. package/src/widgets/overlay/index.js +11 -11
  113. package/src/widgets/variables.scss +144 -144
@@ -1,18 +1,18 @@
1
- import { View } from "cx/data";
2
- import { Instance } from "cx/ui";
3
- import { Overlay } from "cx/widgets";
4
-
5
- export interface HotPromiseWindowFactoryOptions {
6
- parent?: Instance;
7
- store?: View;
8
- }
9
-
10
- export function createHotPromiseWindowFactoryWithProps<Props, R = any>(
11
- module: any,
12
- factory: (props: Props) => (resolve: (value: R | PromiseLike<R>) => void, reject: (reason?: any) => void) => Overlay,
13
- ): (props: Props, options?: HotPromiseWindowFactoryOptions) => Promise<R>;
14
-
15
- export function createHotPromiseWindowFactory<R = any>(
16
- module: any,
17
- factory: (resolve: (value: R | PromiseLike<R>) => void, reject: (reason?: any) => void) => Overlay,
18
- ): (options?: HotPromiseWindowFactoryOptions) => Promise<R>;
1
+ import { View } from "cx/data";
2
+ import { Instance } from "cx/ui";
3
+ import { Overlay } from "cx/widgets";
4
+
5
+ export interface HotPromiseWindowFactoryOptions {
6
+ parent?: Instance;
7
+ store?: View;
8
+ }
9
+
10
+ export function createHotPromiseWindowFactoryWithProps<Props, R = any>(
11
+ module: any,
12
+ factory: (props: Props) => (resolve: (value: R | PromiseLike<R>) => void, reject: (reason?: any) => void) => Overlay,
13
+ ): (props: Props, options?: HotPromiseWindowFactoryOptions) => Promise<R>;
14
+
15
+ export function createHotPromiseWindowFactory<R = any>(
16
+ module: any,
17
+ factory: (resolve: (value: R | PromiseLike<R>) => void, reject: (reason?: any) => void) => Overlay,
18
+ ): (options?: HotPromiseWindowFactoryOptions) => Promise<R>;
@@ -1,56 +1,56 @@
1
- import { Store } from "../../data/Store";
2
- import { SubscriberList } from "../../util/SubscriberList";
3
- import { Window } from "./Window";
4
-
5
- export function createHotPromiseWindowFactoryWithProps(module, factory) {
6
- let subscriberList;
7
- if (module.hot) {
8
- if (module.hot.data?.subscriberList) subscriberList = module.hot.data.subscriberList;
9
- if (!subscriberList) subscriberList = new SubscriberList();
10
-
11
- module.hot.dispose((data) => {
12
- data.subscriberList = subscriberList;
13
- });
14
-
15
- module.hot.accept();
16
-
17
- if (!subscriberList.isEmpty()) subscriberList.notify(factory);
18
-
19
- subscriberList.subscribe((updatedFactory) => {
20
- factory = updatedFactory;
21
- });
22
- }
23
-
24
- return (props, options) => {
25
- let store = options?.parent ?? options?.store ?? new Store();
26
- let reloading = false;
27
- return new Promise((resolve, reject) => {
28
- let dismiss;
29
- let unsubscribe;
30
- function rerun() {
31
- dismiss?.();
32
- let window = Window.create(factory(props)(resolve, reject));
33
- window.overlayWillDismiss = () => {
34
- if (!reloading && unsubscribe) unsubscribe();
35
- };
36
- dismiss = window.open(store);
37
- }
38
- unsubscribe = subscriberList?.subscribe((updatedFactory) => {
39
- factory = updatedFactory;
40
- setTimeout(() => {
41
- // timeout is required for proper module initialization
42
- // sometimes elements are defined in the lower part of the module and if the function is run immediately, it will fail
43
- reloading = true;
44
- rerun();
45
- reloading = false;
46
- }, 10);
47
- });
48
- rerun();
49
- });
50
- };
51
- }
52
-
53
- export function createHotPromiseWindowFactory(module, factory) {
54
- let result = createHotPromiseWindowFactoryWithProps(module, () => factory);
55
- return (options) => result(null, options);
56
- }
1
+ import { Store } from "../../data/Store";
2
+ import { SubscriberList } from "../../util/SubscriberList";
3
+ import { Window } from "./Window";
4
+
5
+ export function createHotPromiseWindowFactoryWithProps(module, factory) {
6
+ let subscriberList;
7
+ if (module.hot) {
8
+ if (module.hot.data?.subscriberList) subscriberList = module.hot.data.subscriberList;
9
+ if (!subscriberList) subscriberList = new SubscriberList();
10
+
11
+ module.hot.dispose((data) => {
12
+ data.subscriberList = subscriberList;
13
+ });
14
+
15
+ module.hot.accept();
16
+
17
+ if (!subscriberList.isEmpty()) subscriberList.notify(factory);
18
+
19
+ subscriberList.subscribe((updatedFactory) => {
20
+ factory = updatedFactory;
21
+ });
22
+ }
23
+
24
+ return (props, options) => {
25
+ let store = options?.parent ?? options?.store ?? new Store();
26
+ let reloading = false;
27
+ return new Promise((resolve, reject) => {
28
+ let dismiss;
29
+ let unsubscribe;
30
+ function rerun() {
31
+ dismiss?.();
32
+ let window = Window.create(factory(props)(resolve, reject));
33
+ window.overlayWillDismiss = () => {
34
+ if (!reloading && unsubscribe) unsubscribe();
35
+ };
36
+ dismiss = window.open(store);
37
+ }
38
+ unsubscribe = subscriberList?.subscribe((updatedFactory) => {
39
+ factory = updatedFactory;
40
+ setTimeout(() => {
41
+ // timeout is required for proper module initialization
42
+ // sometimes elements are defined in the lower part of the module and if the function is run immediately, it will fail
43
+ reloading = true;
44
+ rerun();
45
+ reloading = false;
46
+ }, 10);
47
+ });
48
+ rerun();
49
+ });
50
+ };
51
+ }
52
+
53
+ export function createHotPromiseWindowFactory(module, factory) {
54
+ let result = createHotPromiseWindowFactoryWithProps(module, () => factory);
55
+ return (options) => result(null, options);
56
+ }
@@ -1,11 +1,11 @@
1
- export * from "./Overlay";
2
- export * from "./Dropdown";
3
- export * from "./tooltip-ops";
4
- export * from "./Tooltip";
5
- export * from "./Window";
6
- export * from "./MsgBox";
7
- export * from "./Toast";
8
- export * from "./captureMouse";
9
- export * from "./ContextMenu";
10
- export * from "./FlyweightTooltipTracker";
11
- export * from "./createHotPromiseWindowFactory";
1
+ export * from "./Overlay";
2
+ export * from "./Dropdown";
3
+ export * from "./tooltip-ops";
4
+ export * from "./Tooltip";
5
+ export * from "./Window";
6
+ export * from "./MsgBox";
7
+ export * from "./Toast";
8
+ export * from "./captureMouse";
9
+ export * from "./ContextMenu";
10
+ export * from "./FlyweightTooltipTracker";
11
+ export * from "./createHotPromiseWindowFactory";
@@ -1,11 +1,11 @@
1
- export * from "./Overlay";
2
- export * from "./Dropdown";
3
- export * from "./tooltip-ops";
4
- export * from "./Tooltip";
5
- export * from "./Window";
6
- export * from "./MsgBox";
7
- export * from "./Toast";
8
- export * from "./captureMouse";
9
- export * from "./ContextMenu";
10
- export * from "./FlyweightTooltipTracker";
11
- export * from "./createHotPromiseWindowFactory";
1
+ export * from "./Overlay";
2
+ export * from "./Dropdown";
3
+ export * from "./tooltip-ops";
4
+ export * from "./Tooltip";
5
+ export * from "./Window";
6
+ export * from "./MsgBox";
7
+ export * from "./Toast";
8
+ export * from "./captureMouse";
9
+ export * from "./ContextMenu";
10
+ export * from "./FlyweightTooltipTracker";
11
+ export * from "./createHotPromiseWindowFactory";
@@ -1,144 +1,144 @@
1
- // Padding
2
- $cx-default-padding-extra-small: 3px !default;
3
- $cx-default-padding-small: 5px !default;
4
- $cx-default-padding-medium: 10px !default;
5
- $cx-default-padding-large: 15px !default;
6
- $cx-default-padding-extra-large: 20px !default;
7
-
8
- $cx-pad-size: (
9
- xsmall: $cx-default-padding-extra-small,
10
- small: $cx-default-padding-small,
11
- medium: $cx-default-padding-medium,
12
- large: $cx-default-padding-large,
13
- xlarge: $cx-default-padding-extra-large,
14
- ) !default;
15
-
16
- @import "form/variables";
17
- @import "grid/variables";
18
- @import "nav/variables";
19
- @import "overlay/variables";
20
- @import "drag-drop/variables";
21
- @import "Button.variables";
22
-
23
- // HEADING
24
- $cx-caption-style-map: () !default;
25
-
26
- $cx-caption-level-style-map: (
27
- 1: (
28
- margin: 0,
29
- padding: 0,
30
- ),
31
- 2: (
32
- margin: 0,
33
- padding: 0,
34
- ),
35
- 3: (
36
- margin: 0,
37
- padding: 0,
38
- ),
39
- 4: (
40
- margin: 0,
41
- padding: 0,
42
- ),
43
- 5: (
44
- margin: 0,
45
- padding: 0,
46
- ),
47
- 6: (
48
- margin: 0,
49
- padding: 0,
50
- ),
51
- ) !default;
52
-
53
- // SECTION
54
- $cx-section-styles: () !default;
55
-
56
- $cx-section-mods: (
57
- card: (
58
- default: (
59
- background-color: rgba(255, 255, 255, 0.9),
60
- border-radius: 3px,
61
- ),
62
- ),
63
- warning: (
64
- default: (
65
- color: #fff,
66
- background-color: #f09037,
67
- border-radius: 3px,
68
- ),
69
- ),
70
- primary: (
71
- default: (
72
- color: #fff,
73
- background-color: #1f99f8,
74
- border-radius: 3px,
75
- ),
76
- ),
77
- success: (
78
- default: (
79
- color: #fff,
80
- background-color: #5cb85c,
81
- border-radius: 3px,
82
- ),
83
- ),
84
- error: (
85
- default: (
86
- color: #fff,
87
- background-color: #d9534f,
88
- border-radius: 3px,
89
- ),
90
- ),
91
- ) !default;
92
-
93
- // ProgressBar
94
- $cx-default-progressbar-width: 180px !default;
95
- $cx-default-progressbar-height: 24px !default;
96
- $cx-default-progressbar-font-size: smaller !default;
97
- $cx-default-progressbar-color: $cx-default-color !default;
98
- $cx-default-progressbar-background-color: rgba(#fff, 0.5) !default;
99
- $cx-default-progressbar-border-width: 1px !default;
100
- $cx-default-progressbar-border-color: #98d4ff !default;
101
- $cx-default-progressbar-border-radius: 0 !default;
102
-
103
- $cx-default-progressbar-indicator-background-color: rgba(#98d4ff, 0.8) !default;
104
-
105
- $cx-progressbar-state-style-map: (
106
- default: (
107
- position: relative,
108
- width: $cx-default-progressbar-width,
109
- min-height: $cx-default-progressbar-height,
110
- background-color: $cx-default-progressbar-background-color,
111
- border-style: solid,
112
- border-color: $cx-default-progressbar-border-color,
113
- border-width: $cx-default-progressbar-border-width,
114
- border-radius: $cx-default-progressbar-border-radius,
115
- font-size: $cx-default-progressbar-font-size,
116
- text-align: center,
117
- line-height: $cx-default-progressbar-height,
118
- ),
119
- disabled: (
120
- opacity: 0.2,
121
- ),
122
- );
123
-
124
- $cx-progressbar-mods: ();
125
-
126
- $cx-highlightedsearchtext-style-map: (
127
- font-weight: bold,
128
- ) !default;
129
-
130
- // for backward compatibility
131
- .cxm-well {
132
- @extend .cxm-card !optional;
133
- }
134
-
135
- $cx-dependencies: map-merge(
136
- $cx-dependencies,
137
- (
138
- "cx/widgets/FlexRow": "cx/widgets/FlexBox",
139
- "cx/widgets/FlexCol": "cx/widgets/FlexBox",
140
- "cx/widgets/CxCredit": "cx/widgets/Tooltip",
141
- "cx/widgets/Button": "cx/widgets/HtmlElement",
142
- "cx/widgets/HtmlElement": "cx/widgets/Tooltip",
143
- )
144
- );
1
+ // Padding
2
+ $cx-default-padding-extra-small: 3px !default;
3
+ $cx-default-padding-small: 5px !default;
4
+ $cx-default-padding-medium: 10px !default;
5
+ $cx-default-padding-large: 15px !default;
6
+ $cx-default-padding-extra-large: 20px !default;
7
+
8
+ $cx-pad-size: (
9
+ xsmall: $cx-default-padding-extra-small,
10
+ small: $cx-default-padding-small,
11
+ medium: $cx-default-padding-medium,
12
+ large: $cx-default-padding-large,
13
+ xlarge: $cx-default-padding-extra-large,
14
+ ) !default;
15
+
16
+ @import "form/variables";
17
+ @import "grid/variables";
18
+ @import "nav/variables";
19
+ @import "overlay/variables";
20
+ @import "drag-drop/variables";
21
+ @import "Button.variables";
22
+
23
+ // HEADING
24
+ $cx-caption-style-map: () !default;
25
+
26
+ $cx-caption-level-style-map: (
27
+ 1: (
28
+ margin: 0,
29
+ padding: 0,
30
+ ),
31
+ 2: (
32
+ margin: 0,
33
+ padding: 0,
34
+ ),
35
+ 3: (
36
+ margin: 0,
37
+ padding: 0,
38
+ ),
39
+ 4: (
40
+ margin: 0,
41
+ padding: 0,
42
+ ),
43
+ 5: (
44
+ margin: 0,
45
+ padding: 0,
46
+ ),
47
+ 6: (
48
+ margin: 0,
49
+ padding: 0,
50
+ ),
51
+ ) !default;
52
+
53
+ // SECTION
54
+ $cx-section-styles: () !default;
55
+
56
+ $cx-section-mods: (
57
+ card: (
58
+ default: (
59
+ background-color: rgba(255, 255, 255, 0.9),
60
+ border-radius: 3px,
61
+ ),
62
+ ),
63
+ warning: (
64
+ default: (
65
+ color: #fff,
66
+ background-color: #f09037,
67
+ border-radius: 3px,
68
+ ),
69
+ ),
70
+ primary: (
71
+ default: (
72
+ color: #fff,
73
+ background-color: #1f99f8,
74
+ border-radius: 3px,
75
+ ),
76
+ ),
77
+ success: (
78
+ default: (
79
+ color: #fff,
80
+ background-color: #5cb85c,
81
+ border-radius: 3px,
82
+ ),
83
+ ),
84
+ error: (
85
+ default: (
86
+ color: #fff,
87
+ background-color: #d9534f,
88
+ border-radius: 3px,
89
+ ),
90
+ ),
91
+ ) !default;
92
+
93
+ // ProgressBar
94
+ $cx-default-progressbar-width: 180px !default;
95
+ $cx-default-progressbar-height: 24px !default;
96
+ $cx-default-progressbar-font-size: smaller !default;
97
+ $cx-default-progressbar-color: $cx-default-color !default;
98
+ $cx-default-progressbar-background-color: rgba(#fff, 0.5) !default;
99
+ $cx-default-progressbar-border-width: 1px !default;
100
+ $cx-default-progressbar-border-color: #98d4ff !default;
101
+ $cx-default-progressbar-border-radius: 0 !default;
102
+
103
+ $cx-default-progressbar-indicator-background-color: rgba(#98d4ff, 0.8) !default;
104
+
105
+ $cx-progressbar-state-style-map: (
106
+ default: (
107
+ position: relative,
108
+ width: $cx-default-progressbar-width,
109
+ min-height: $cx-default-progressbar-height,
110
+ background-color: $cx-default-progressbar-background-color,
111
+ border-style: solid,
112
+ border-color: $cx-default-progressbar-border-color,
113
+ border-width: $cx-default-progressbar-border-width,
114
+ border-radius: $cx-default-progressbar-border-radius,
115
+ font-size: $cx-default-progressbar-font-size,
116
+ text-align: center,
117
+ line-height: $cx-default-progressbar-height,
118
+ ),
119
+ disabled: (
120
+ opacity: 0.2,
121
+ ),
122
+ );
123
+
124
+ $cx-progressbar-mods: ();
125
+
126
+ $cx-highlightedsearchtext-style-map: (
127
+ font-weight: bold,
128
+ ) !default;
129
+
130
+ // for backward compatibility
131
+ .cxm-well {
132
+ @extend .cxm-card !optional;
133
+ }
134
+
135
+ $cx-dependencies: map-merge(
136
+ $cx-dependencies,
137
+ (
138
+ "cx/widgets/FlexRow": "cx/widgets/FlexBox",
139
+ "cx/widgets/FlexCol": "cx/widgets/FlexBox",
140
+ "cx/widgets/CxCredit": "cx/widgets/Tooltip",
141
+ "cx/widgets/Button": "cx/widgets/HtmlElement",
142
+ "cx/widgets/HtmlElement": "cx/widgets/Tooltip",
143
+ )
144
+ );