cx 25.10.1 → 25.11.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.
- package/LICENSE-THIRD-PARTY.md +91 -91
- package/LICENSE.md +7 -7
- package/README.md +46 -46
- package/dist/manifest.js +705 -705
- package/dist/ui.js +4 -2
- package/dist/widgets.js +2 -0
- package/package.json +1 -1
- package/src/charts/Bar.d.ts +27 -27
- package/src/charts/BarGraph.d.ts +15 -15
- package/src/charts/Chart.d.ts +12 -12
- package/src/charts/ColorMap.d.ts +21 -21
- package/src/charts/Column.d.ts +29 -29
- package/src/charts/ColumnBarBase.d.ts +64 -64
- package/src/charts/ColumnBarGraphBase.d.ts +73 -73
- package/src/charts/ColumnGraph.d.ts +18 -18
- package/src/charts/Gridlines.d.ts +24 -24
- package/src/charts/Legend.d.ts +45 -45
- package/src/charts/LegendEntry.d.ts +54 -54
- package/src/charts/LineGraph.d.ts +101 -101
- package/src/charts/Marker.d.ts +110 -110
- package/src/charts/MarkerLine.d.ts +56 -56
- package/src/charts/MouseTracker.d.ts +16 -16
- package/src/charts/PieChart.d.ts +92 -92
- package/src/charts/PieLabel.d.ts +26 -26
- package/src/charts/PieLabelsContainer.d.ts +6 -6
- package/src/charts/Range.d.ts +74 -74
- package/src/charts/RangeMarker.d.ts +35 -35
- package/src/charts/ScatterGraph.d.ts +64 -64
- package/src/charts/Swimlane.d.ts +24 -24
- package/src/charts/Swimlanes.d.ts +41 -41
- package/src/charts/axis/Axis.d.ts +113 -113
- package/src/charts/axis/Axis.scss +22 -22
- package/src/charts/axis/CategoryAxis.d.ts +30 -30
- package/src/charts/axis/NumericAxis.d.ts +46 -46
- package/src/charts/axis/Stack.d.ts +10 -10
- package/src/charts/axis/TimeAxis.d.ts +31 -31
- package/src/charts/axis/index.d.ts +3 -3
- package/src/charts/axis/index.scss +5 -5
- package/src/charts/axis/variables.scss +2 -2
- package/src/charts/helpers/MinMaxFinder.d.ts +22 -22
- package/src/charts/helpers/PointReducer.d.ts +24 -24
- package/src/charts/helpers/SnapPointFinder.d.ts +30 -30
- package/src/charts/helpers/ValueAtFinder.d.ts +16 -16
- package/src/charts/helpers/index.d.ts +4 -4
- package/src/charts/index.d.ts +27 -27
- package/src/charts/index.scss +22 -22
- package/src/charts/shapes.d.ts +22 -22
- package/src/data/Grouper.spec.js +57 -57
- package/src/global.scss +13 -13
- package/src/index.scss +6 -6
- package/src/svg/index.scss +8 -8
- package/src/ui/adapter/ArrayAdapter.js +152 -152
- package/src/ui/adapter/GroupAdapter.js +143 -140
- package/src/ui/index.scss +2 -2
- package/src/ui/layout/index.scss +3 -3
- package/src/ui/layout/variables.scss +2 -2
- package/src/ui/variables.scss +1 -1
- package/src/util/call-once.scss +6 -6
- package/src/util/index.scss +10 -10
- package/src/util/scss/divide.scss +3 -3
- package/src/util/scss/index.scss +9 -9
- package/src/variables.scss +217 -217
- package/src/widgets/AccessorBindings.spec.tsx +66 -66
- package/src/widgets/Button.d.ts +58 -58
- package/src/widgets/CxCredit.d.ts +12 -12
- package/src/widgets/DocumentTitle.d.ts +11 -11
- package/src/widgets/FlexBox.d.ts +69 -69
- package/src/widgets/Heading.d.ts +16 -16
- package/src/widgets/HighlightedSearchText.d.ts +9 -9
- package/src/widgets/HtmlElement.d.ts +30 -30
- package/src/widgets/Icon.d.ts +34 -34
- package/src/widgets/ProgressBar.d.ts +17 -17
- package/src/widgets/Resizer.d.ts +27 -27
- package/src/widgets/Sandbox.d.ts +18 -18
- package/src/widgets/Section.d.ts +52 -52
- package/src/widgets/animations.scss +10 -10
- package/src/widgets/autoFocus.d.ts +1 -1
- package/src/widgets/cx.d.ts +1 -1
- package/src/widgets/drag-drop/DragSource.d.ts +45 -45
- package/src/widgets/drag-drop/DropZone.d.ts +98 -98
- package/src/widgets/drag-drop/index.d.ts +4 -4
- package/src/widgets/drag-drop/index.scss +3 -3
- package/src/widgets/drag-drop/ops.d.ts +56 -56
- package/src/widgets/enableAllInternalDependencies.d.ts +1 -1
- package/src/widgets/form/Calendar.variables.scss +63 -63
- package/src/widgets/form/Checkbox.variables.scss +39 -39
- package/src/widgets/form/ColorPicker.variables.scss +22 -22
- package/src/widgets/form/Radio.variables.scss +45 -45
- package/src/widgets/form/index.scss +24 -24
- package/src/widgets/grid/Grid.d.ts +3 -0
- package/src/widgets/grid/Grid.js +3431 -3429
- package/src/widgets/grid/GridCell.d.ts +38 -38
- package/src/widgets/grid/Pagination.d.ts +14 -14
- package/src/widgets/grid/TreeNode.d.ts +23 -23
- package/src/widgets/grid/index.d.ts +3 -3
- package/src/widgets/grid/index.scss +3 -3
- package/src/widgets/icons/arrow-down.svg +3 -3
- package/src/widgets/icons/arrow-right.svg +2 -2
- package/src/widgets/icons/base.svg +104 -104
- package/src/widgets/icons/calendar-old.svg +169 -169
- package/src/widgets/icons/calendar.svg +187 -187
- package/src/widgets/icons/clear.svg +74 -74
- package/src/widgets/icons/close.svg +74 -74
- package/src/widgets/icons/dropdown-arrow.svg +61 -61
- package/src/widgets/icons/file.svg +4 -4
- package/src/widgets/icons/folder-open.svg +5 -5
- package/src/widgets/icons/folder.svg +58 -58
- package/src/widgets/icons/forward.svg +67 -67
- package/src/widgets/icons/loading.svg +4 -4
- package/src/widgets/icons/search.svg +107 -107
- package/src/widgets/icons/sort-asc.svg +3 -3
- package/src/widgets/index.d.ts +55 -55
- package/src/widgets/index.scss +16 -16
- package/src/widgets/nav/Link.d.ts +26 -26
- package/src/widgets/nav/LinkButton.d.ts +34 -34
- package/src/widgets/nav/Menu.d.ts +27 -27
- package/src/widgets/nav/MenuItem.d.ts +31 -31
- package/src/widgets/nav/MenuSpacer.d.ts +5 -5
- package/src/widgets/nav/RedirectRoute.d.ts +9 -9
- package/src/widgets/nav/Route.d.ts +21 -21
- package/src/widgets/nav/Scroller.d.ts +17 -17
- package/src/widgets/nav/Submenu.d.ts +6 -6
- package/src/widgets/nav/Tab.d.ts +33 -33
- package/src/widgets/nav/Tab.variables.scss +84 -84
- package/src/widgets/nav/index.d.ts +10 -10
- package/src/widgets/nav/index.scss +5 -5
- package/src/widgets/overlay/ContextMenu.d.ts +10 -10
- package/src/widgets/overlay/Dropdown.d.ts +32 -32
- package/src/widgets/overlay/FlyweightTooltipTracker.d.ts +8 -8
- package/src/widgets/overlay/MsgBox.d.ts +16 -16
- package/src/widgets/overlay/Overlay.d.ts +73 -73
- package/src/widgets/overlay/Toast.d.ts +30 -30
- package/src/widgets/overlay/Tooltip.d.ts +50 -50
- package/src/widgets/overlay/Window.d.ts +42 -42
- package/src/widgets/overlay/Window.variables.scss +62 -62
- package/src/widgets/overlay/alerts.d.ts +7 -7
- package/src/widgets/overlay/captureMouse.d.ts +53 -53
- package/src/widgets/overlay/captureMouse.scss +13 -13
- package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +18 -18
- package/src/widgets/overlay/index.d.ts +11 -11
- package/src/widgets/overlay/index.scss +15 -15
package/src/variables.scss
CHANGED
|
@@ -1,217 +1,217 @@
|
|
|
1
|
-
// FUNCTIONS
|
|
2
|
-
@import "util/scss/index";
|
|
3
|
-
|
|
4
|
-
// SCREEN SIZE
|
|
5
|
-
$cx-screen-size-small: 400px !default;
|
|
6
|
-
$cx-screen-size-medium: 800px !default;
|
|
7
|
-
$cx-screen-size-large: 1300px !default;
|
|
8
|
-
$cx-screen-size-extra-large: 1800px !default;
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
// BESM
|
|
12
|
-
//
|
|
13
|
-
// B - block - top level HTML element
|
|
14
|
-
// E - element - part of the component (block)
|
|
15
|
-
// S - state - indicator of the component state which affects the appearance
|
|
16
|
-
// M - mod - user supplied instruction which overrides default appearance
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
$cx-besm: (
|
|
20
|
-
block: "cxb-",
|
|
21
|
-
element: "cxe-",
|
|
22
|
-
state: "cxs-",
|
|
23
|
-
mod: "cxm-"
|
|
24
|
-
) !default;
|
|
25
|
-
|
|
26
|
-
//
|
|
27
|
-
// Boxes
|
|
28
|
-
// -----
|
|
29
|
-
//
|
|
30
|
-
// Boxes are inline-block elements which are likely to appear in the same row, such as buttons and form elements.
|
|
31
|
-
// These elements should have the same height in order to avoid problems when put together in a toolbar
|
|
32
|
-
// or a complex form.
|
|
33
|
-
//
|
|
34
|
-
// To ensure the height consistency, all box models should use the same line-height, top/bottom padding and border-width;
|
|
35
|
-
//
|
|
36
|
-
// For elements which do not have a natural border, such as checkboxes, radios and buttons,
|
|
37
|
-
// border-color should be set to transparent.
|
|
38
|
-
//
|
|
39
|
-
// box height = line-height + padding-top + padding-bottom + border-width-top + border-width-bottom
|
|
40
|
-
//
|
|
41
|
-
// Some browsers do not respect the line-height being set and therefore explicit height value is
|
|
42
|
-
// calculated and set on all box elements.
|
|
43
|
-
//
|
|
44
|
-
// Hint: Use em units to make the box height grow with the font-size, but note that the elements
|
|
45
|
-
// will not be aligned in case of pixel boundaries and icons may appear blurry in some desktop browsers.
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
$cx-default-box-font-size: 13px !default;
|
|
49
|
-
$cx-default-box-font-family: inherit !default;
|
|
50
|
-
$cx-default-box-line-height: 16px !default;
|
|
51
|
-
$cx-default-box-padding: 5px !default; //should not be a list
|
|
52
|
-
$cx-default-box-border-width: 1px !default;
|
|
53
|
-
|
|
54
|
-
// Borders
|
|
55
|
-
// -------
|
|
56
|
-
|
|
57
|
-
$cx-default-border-color: #bfbfbf !default;
|
|
58
|
-
$cx-default-border-radius: 0 !default;
|
|
59
|
-
$cx-default-border-width: 1px !default;
|
|
60
|
-
|
|
61
|
-
// Padding
|
|
62
|
-
// -------
|
|
63
|
-
|
|
64
|
-
$cx-default-container-padding: 5px !default;
|
|
65
|
-
|
|
66
|
-
// Empty Texts
|
|
67
|
-
// ------------
|
|
68
|
-
//
|
|
69
|
-
// Displayed instead of whitespace
|
|
70
|
-
|
|
71
|
-
$cx-default-empty-text-color: rgba(128, 128, 128, 0.7) !default;
|
|
72
|
-
|
|
73
|
-
$cx-empty-text: (
|
|
74
|
-
color: $cx-default-empty-text-color
|
|
75
|
-
) !default;
|
|
76
|
-
|
|
77
|
-
//Icons
|
|
78
|
-
$cx-default-icon-size: 16px !default;
|
|
79
|
-
|
|
80
|
-
//Selection
|
|
81
|
-
$cx-selection-background-color: rgba(135, 206, 250, 0.6);
|
|
82
|
-
|
|
83
|
-
//List
|
|
84
|
-
$cx-default-list-item-padding: 5px 10px !default;
|
|
85
|
-
|
|
86
|
-
//Lists
|
|
87
|
-
$cx-list: (
|
|
88
|
-
default: (
|
|
89
|
-
-webkit-overflow-scrolling: touch
|
|
90
|
-
),
|
|
91
|
-
hover: (),
|
|
92
|
-
focus: (
|
|
93
|
-
outline: none
|
|
94
|
-
)
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
$cx-list-item: (
|
|
98
|
-
default: (),
|
|
99
|
-
hover: (
|
|
100
|
-
background-color: rgba(128, 128, 128, 0.1),
|
|
101
|
-
outline: none,
|
|
102
|
-
cursor: pointer
|
|
103
|
-
),
|
|
104
|
-
cursor: (
|
|
105
|
-
background-color: rgba(123, 190, 255, 0.15),
|
|
106
|
-
outline: none
|
|
107
|
-
),
|
|
108
|
-
selected: (
|
|
109
|
-
background-color: rgba(123, 190, 255, 0.4)
|
|
110
|
-
),
|
|
111
|
-
selected-hover: (
|
|
112
|
-
background-color: rgba(123, 190, 255, 0.2)
|
|
113
|
-
),
|
|
114
|
-
selected-cursor: (
|
|
115
|
-
background-color: rgba(123, 190, 255, 0.3),
|
|
116
|
-
outline: none
|
|
117
|
-
),
|
|
118
|
-
disabled: (
|
|
119
|
-
cursor: default,
|
|
120
|
-
opacity: 0.5,
|
|
121
|
-
pointer-events: none
|
|
122
|
-
),
|
|
123
|
-
active: (
|
|
124
|
-
//causes flickering
|
|
125
|
-
//background: rgba(123,190,255, 0.7)
|
|
126
|
-
)
|
|
127
|
-
) !default;
|
|
128
|
-
|
|
129
|
-
$cx-default-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
|
|
130
|
-
"Helvetica Neue", Arial, sans-serif !default;
|
|
131
|
-
|
|
132
|
-
$cx-default-font-size: 14px !default;
|
|
133
|
-
$cx-default-color: #373a3c !default;
|
|
134
|
-
|
|
135
|
-
$cx-element-style-map: (
|
|
136
|
-
html: (
|
|
137
|
-
font-family: $cx-default-font-family,
|
|
138
|
-
font-size: $cx-default-font-size,
|
|
139
|
-
height: 100%,
|
|
140
|
-
background-color: #eee
|
|
141
|
-
),
|
|
142
|
-
body: (
|
|
143
|
-
margin: 0,
|
|
144
|
-
padding: 0,
|
|
145
|
-
height: 100%,
|
|
146
|
-
color: $cx-default-color
|
|
147
|
-
),
|
|
148
|
-
h1: (
|
|
149
|
-
font-size: 2rem,
|
|
150
|
-
line-height: 1.1,
|
|
151
|
-
margin: 0 0 0.75rem 0,
|
|
152
|
-
font-weight: 500
|
|
153
|
-
),
|
|
154
|
-
h2: (
|
|
155
|
-
font-size: 1.75rem,
|
|
156
|
-
line-height: 1.1,
|
|
157
|
-
margin: 0 0 0.5rem 0,
|
|
158
|
-
font-weight: 500
|
|
159
|
-
),
|
|
160
|
-
h3: (
|
|
161
|
-
font-size: 1.5rem,
|
|
162
|
-
line-height: 1.1,
|
|
163
|
-
margin: 0 0 0.5rem 0,
|
|
164
|
-
font-weight: 500
|
|
165
|
-
),
|
|
166
|
-
h4: (
|
|
167
|
-
font-size: 1.3rem,
|
|
168
|
-
line-height: 1.1,
|
|
169
|
-
margin: 0 0 0.5rem 0,
|
|
170
|
-
font-weight: 500
|
|
171
|
-
),
|
|
172
|
-
h5: (
|
|
173
|
-
font-size: 1.15rem,
|
|
174
|
-
line-height: 1.1,
|
|
175
|
-
margin: 0 0 0.5rem 0,
|
|
176
|
-
font-weight: 500
|
|
177
|
-
),
|
|
178
|
-
h6: (
|
|
179
|
-
font-size: 1rem,
|
|
180
|
-
line-height: 1.1,
|
|
181
|
-
margin: 0 0 0.5rem 0,
|
|
182
|
-
font-weight: 500
|
|
183
|
-
),
|
|
184
|
-
p: (
|
|
185
|
-
margin: 0 0 1rem 0
|
|
186
|
-
),
|
|
187
|
-
a: (
|
|
188
|
-
text-decoration: none,
|
|
189
|
-
color: #0275d8
|
|
190
|
-
),
|
|
191
|
-
"a:hover": (
|
|
192
|
-
text-decoration: underline
|
|
193
|
-
),
|
|
194
|
-
ul: (
|
|
195
|
-
margin: 0 0 1rem 0
|
|
196
|
-
),
|
|
197
|
-
ol: (
|
|
198
|
-
margin: 0 0 1rem 0
|
|
199
|
-
),
|
|
200
|
-
th: (
|
|
201
|
-
font-weight: 500
|
|
202
|
-
),
|
|
203
|
-
text: (
|
|
204
|
-
fill: currentColor,
|
|
205
|
-
stroke: none
|
|
206
|
-
),
|
|
207
|
-
table: (
|
|
208
|
-
font-size: inherit
|
|
209
|
-
)
|
|
210
|
-
) !default;
|
|
211
|
-
|
|
212
|
-
$cx-default-cover-border-color: $cx-default-border-color !default;
|
|
213
|
-
$cx-default-cover-background-color: white !default;
|
|
214
|
-
|
|
215
|
-
@import "charts/variables";
|
|
216
|
-
@import "ui/variables";
|
|
217
|
-
@import "widgets/variables";
|
|
1
|
+
// FUNCTIONS
|
|
2
|
+
@import "util/scss/index";
|
|
3
|
+
|
|
4
|
+
// SCREEN SIZE
|
|
5
|
+
$cx-screen-size-small: 400px !default;
|
|
6
|
+
$cx-screen-size-medium: 800px !default;
|
|
7
|
+
$cx-screen-size-large: 1300px !default;
|
|
8
|
+
$cx-screen-size-extra-large: 1800px !default;
|
|
9
|
+
|
|
10
|
+
//
|
|
11
|
+
// BESM
|
|
12
|
+
//
|
|
13
|
+
// B - block - top level HTML element
|
|
14
|
+
// E - element - part of the component (block)
|
|
15
|
+
// S - state - indicator of the component state which affects the appearance
|
|
16
|
+
// M - mod - user supplied instruction which overrides default appearance
|
|
17
|
+
//
|
|
18
|
+
|
|
19
|
+
$cx-besm: (
|
|
20
|
+
block: "cxb-",
|
|
21
|
+
element: "cxe-",
|
|
22
|
+
state: "cxs-",
|
|
23
|
+
mod: "cxm-"
|
|
24
|
+
) !default;
|
|
25
|
+
|
|
26
|
+
//
|
|
27
|
+
// Boxes
|
|
28
|
+
// -----
|
|
29
|
+
//
|
|
30
|
+
// Boxes are inline-block elements which are likely to appear in the same row, such as buttons and form elements.
|
|
31
|
+
// These elements should have the same height in order to avoid problems when put together in a toolbar
|
|
32
|
+
// or a complex form.
|
|
33
|
+
//
|
|
34
|
+
// To ensure the height consistency, all box models should use the same line-height, top/bottom padding and border-width;
|
|
35
|
+
//
|
|
36
|
+
// For elements which do not have a natural border, such as checkboxes, radios and buttons,
|
|
37
|
+
// border-color should be set to transparent.
|
|
38
|
+
//
|
|
39
|
+
// box height = line-height + padding-top + padding-bottom + border-width-top + border-width-bottom
|
|
40
|
+
//
|
|
41
|
+
// Some browsers do not respect the line-height being set and therefore explicit height value is
|
|
42
|
+
// calculated and set on all box elements.
|
|
43
|
+
//
|
|
44
|
+
// Hint: Use em units to make the box height grow with the font-size, but note that the elements
|
|
45
|
+
// will not be aligned in case of pixel boundaries and icons may appear blurry in some desktop browsers.
|
|
46
|
+
//
|
|
47
|
+
|
|
48
|
+
$cx-default-box-font-size: 13px !default;
|
|
49
|
+
$cx-default-box-font-family: inherit !default;
|
|
50
|
+
$cx-default-box-line-height: 16px !default;
|
|
51
|
+
$cx-default-box-padding: 5px !default; //should not be a list
|
|
52
|
+
$cx-default-box-border-width: 1px !default;
|
|
53
|
+
|
|
54
|
+
// Borders
|
|
55
|
+
// -------
|
|
56
|
+
|
|
57
|
+
$cx-default-border-color: #bfbfbf !default;
|
|
58
|
+
$cx-default-border-radius: 0 !default;
|
|
59
|
+
$cx-default-border-width: 1px !default;
|
|
60
|
+
|
|
61
|
+
// Padding
|
|
62
|
+
// -------
|
|
63
|
+
|
|
64
|
+
$cx-default-container-padding: 5px !default;
|
|
65
|
+
|
|
66
|
+
// Empty Texts
|
|
67
|
+
// ------------
|
|
68
|
+
//
|
|
69
|
+
// Displayed instead of whitespace
|
|
70
|
+
|
|
71
|
+
$cx-default-empty-text-color: rgba(128, 128, 128, 0.7) !default;
|
|
72
|
+
|
|
73
|
+
$cx-empty-text: (
|
|
74
|
+
color: $cx-default-empty-text-color
|
|
75
|
+
) !default;
|
|
76
|
+
|
|
77
|
+
//Icons
|
|
78
|
+
$cx-default-icon-size: 16px !default;
|
|
79
|
+
|
|
80
|
+
//Selection
|
|
81
|
+
$cx-selection-background-color: rgba(135, 206, 250, 0.6);
|
|
82
|
+
|
|
83
|
+
//List
|
|
84
|
+
$cx-default-list-item-padding: 5px 10px !default;
|
|
85
|
+
|
|
86
|
+
//Lists
|
|
87
|
+
$cx-list: (
|
|
88
|
+
default: (
|
|
89
|
+
-webkit-overflow-scrolling: touch
|
|
90
|
+
),
|
|
91
|
+
hover: (),
|
|
92
|
+
focus: (
|
|
93
|
+
outline: none
|
|
94
|
+
)
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
$cx-list-item: (
|
|
98
|
+
default: (),
|
|
99
|
+
hover: (
|
|
100
|
+
background-color: rgba(128, 128, 128, 0.1),
|
|
101
|
+
outline: none,
|
|
102
|
+
cursor: pointer
|
|
103
|
+
),
|
|
104
|
+
cursor: (
|
|
105
|
+
background-color: rgba(123, 190, 255, 0.15),
|
|
106
|
+
outline: none
|
|
107
|
+
),
|
|
108
|
+
selected: (
|
|
109
|
+
background-color: rgba(123, 190, 255, 0.4)
|
|
110
|
+
),
|
|
111
|
+
selected-hover: (
|
|
112
|
+
background-color: rgba(123, 190, 255, 0.2)
|
|
113
|
+
),
|
|
114
|
+
selected-cursor: (
|
|
115
|
+
background-color: rgba(123, 190, 255, 0.3),
|
|
116
|
+
outline: none
|
|
117
|
+
),
|
|
118
|
+
disabled: (
|
|
119
|
+
cursor: default,
|
|
120
|
+
opacity: 0.5,
|
|
121
|
+
pointer-events: none
|
|
122
|
+
),
|
|
123
|
+
active: (
|
|
124
|
+
//causes flickering
|
|
125
|
+
//background: rgba(123,190,255, 0.7)
|
|
126
|
+
)
|
|
127
|
+
) !default;
|
|
128
|
+
|
|
129
|
+
$cx-default-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
|
|
130
|
+
"Helvetica Neue", Arial, sans-serif !default;
|
|
131
|
+
|
|
132
|
+
$cx-default-font-size: 14px !default;
|
|
133
|
+
$cx-default-color: #373a3c !default;
|
|
134
|
+
|
|
135
|
+
$cx-element-style-map: (
|
|
136
|
+
html: (
|
|
137
|
+
font-family: $cx-default-font-family,
|
|
138
|
+
font-size: $cx-default-font-size,
|
|
139
|
+
height: 100%,
|
|
140
|
+
background-color: #eee
|
|
141
|
+
),
|
|
142
|
+
body: (
|
|
143
|
+
margin: 0,
|
|
144
|
+
padding: 0,
|
|
145
|
+
height: 100%,
|
|
146
|
+
color: $cx-default-color
|
|
147
|
+
),
|
|
148
|
+
h1: (
|
|
149
|
+
font-size: 2rem,
|
|
150
|
+
line-height: 1.1,
|
|
151
|
+
margin: 0 0 0.75rem 0,
|
|
152
|
+
font-weight: 500
|
|
153
|
+
),
|
|
154
|
+
h2: (
|
|
155
|
+
font-size: 1.75rem,
|
|
156
|
+
line-height: 1.1,
|
|
157
|
+
margin: 0 0 0.5rem 0,
|
|
158
|
+
font-weight: 500
|
|
159
|
+
),
|
|
160
|
+
h3: (
|
|
161
|
+
font-size: 1.5rem,
|
|
162
|
+
line-height: 1.1,
|
|
163
|
+
margin: 0 0 0.5rem 0,
|
|
164
|
+
font-weight: 500
|
|
165
|
+
),
|
|
166
|
+
h4: (
|
|
167
|
+
font-size: 1.3rem,
|
|
168
|
+
line-height: 1.1,
|
|
169
|
+
margin: 0 0 0.5rem 0,
|
|
170
|
+
font-weight: 500
|
|
171
|
+
),
|
|
172
|
+
h5: (
|
|
173
|
+
font-size: 1.15rem,
|
|
174
|
+
line-height: 1.1,
|
|
175
|
+
margin: 0 0 0.5rem 0,
|
|
176
|
+
font-weight: 500
|
|
177
|
+
),
|
|
178
|
+
h6: (
|
|
179
|
+
font-size: 1rem,
|
|
180
|
+
line-height: 1.1,
|
|
181
|
+
margin: 0 0 0.5rem 0,
|
|
182
|
+
font-weight: 500
|
|
183
|
+
),
|
|
184
|
+
p: (
|
|
185
|
+
margin: 0 0 1rem 0
|
|
186
|
+
),
|
|
187
|
+
a: (
|
|
188
|
+
text-decoration: none,
|
|
189
|
+
color: #0275d8
|
|
190
|
+
),
|
|
191
|
+
"a:hover": (
|
|
192
|
+
text-decoration: underline
|
|
193
|
+
),
|
|
194
|
+
ul: (
|
|
195
|
+
margin: 0 0 1rem 0
|
|
196
|
+
),
|
|
197
|
+
ol: (
|
|
198
|
+
margin: 0 0 1rem 0
|
|
199
|
+
),
|
|
200
|
+
th: (
|
|
201
|
+
font-weight: 500
|
|
202
|
+
),
|
|
203
|
+
text: (
|
|
204
|
+
fill: currentColor,
|
|
205
|
+
stroke: none
|
|
206
|
+
),
|
|
207
|
+
table: (
|
|
208
|
+
font-size: inherit
|
|
209
|
+
)
|
|
210
|
+
) !default;
|
|
211
|
+
|
|
212
|
+
$cx-default-cover-border-color: $cx-default-border-color !default;
|
|
213
|
+
$cx-default-cover-background-color: white !default;
|
|
214
|
+
|
|
215
|
+
@import "charts/variables";
|
|
216
|
+
@import "ui/variables";
|
|
217
|
+
@import "widgets/variables";
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import assert from "assert";
|
|
2
|
-
import reactTestRenderer from "react-test-renderer";
|
|
3
|
-
import { createAccessorModelProxy } from "../data/createAccessorModelProxy";
|
|
4
|
-
import { Store } from "../data/Store";
|
|
5
|
-
import { expr } from "../ui";
|
|
6
|
-
import { Cx } from "../ui/Cx";
|
|
7
|
-
import { HtmlElement } from "./HtmlElement";
|
|
8
|
-
|
|
9
|
-
let DummyHack = HtmlElement;
|
|
10
|
-
|
|
11
|
-
interface Model {
|
|
12
|
-
$page: {
|
|
13
|
-
text?: string;
|
|
14
|
-
a?: number;
|
|
15
|
-
b?: number;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
let { $page } = createAccessorModelProxy<Model>();
|
|
20
|
-
|
|
21
|
-
describe("Accessors", () => {
|
|
22
|
-
it("work as regular bindings", () => {
|
|
23
|
-
let widget = (
|
|
24
|
-
<cx>
|
|
25
|
-
<div text={$page.text} />
|
|
26
|
-
</cx>
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
let store = new Store<Model>({
|
|
30
|
-
data: {
|
|
31
|
-
$page: {
|
|
32
|
-
text: "Test",
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
const component = reactTestRenderer.create(<Cx widget={widget} store={store} />);
|
|
38
|
-
|
|
39
|
-
let tree = component.toJSON();
|
|
40
|
-
assert(tree.type === "div");
|
|
41
|
-
assert.deepStrictEqual(tree.children, ["Test"]);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it("support expressions", () => {
|
|
45
|
-
let widget = (
|
|
46
|
-
<cx>
|
|
47
|
-
<div text={expr($page.a, $page.b, (a, b) => a + b)} />
|
|
48
|
-
</cx>
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
let store = new Store<Model>({
|
|
52
|
-
data: {
|
|
53
|
-
$page: {
|
|
54
|
-
a: 1,
|
|
55
|
-
b: 3,
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
const component = reactTestRenderer.create(<Cx widget={widget} store={store} />);
|
|
61
|
-
|
|
62
|
-
let tree = component.toJSON();
|
|
63
|
-
assert(tree.type === "div");
|
|
64
|
-
assert.deepStrictEqual(tree.children, ["4"]);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
1
|
+
import assert from "assert";
|
|
2
|
+
import reactTestRenderer from "react-test-renderer";
|
|
3
|
+
import { createAccessorModelProxy } from "../data/createAccessorModelProxy";
|
|
4
|
+
import { Store } from "../data/Store";
|
|
5
|
+
import { expr } from "../ui";
|
|
6
|
+
import { Cx } from "../ui/Cx";
|
|
7
|
+
import { HtmlElement } from "./HtmlElement";
|
|
8
|
+
|
|
9
|
+
let DummyHack = HtmlElement;
|
|
10
|
+
|
|
11
|
+
interface Model {
|
|
12
|
+
$page: {
|
|
13
|
+
text?: string;
|
|
14
|
+
a?: number;
|
|
15
|
+
b?: number;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
let { $page } = createAccessorModelProxy<Model>();
|
|
20
|
+
|
|
21
|
+
describe("Accessors", () => {
|
|
22
|
+
it("work as regular bindings", () => {
|
|
23
|
+
let widget = (
|
|
24
|
+
<cx>
|
|
25
|
+
<div text={$page.text} />
|
|
26
|
+
</cx>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
let store = new Store<Model>({
|
|
30
|
+
data: {
|
|
31
|
+
$page: {
|
|
32
|
+
text: "Test",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const component = reactTestRenderer.create(<Cx widget={widget} store={store} />);
|
|
38
|
+
|
|
39
|
+
let tree = component.toJSON();
|
|
40
|
+
assert(tree.type === "div");
|
|
41
|
+
assert.deepStrictEqual(tree.children, ["Test"]);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("support expressions", () => {
|
|
45
|
+
let widget = (
|
|
46
|
+
<cx>
|
|
47
|
+
<div text={expr($page.a, $page.b, (a, b) => a + b)} />
|
|
48
|
+
</cx>
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
let store = new Store<Model>({
|
|
52
|
+
data: {
|
|
53
|
+
$page: {
|
|
54
|
+
a: 1,
|
|
55
|
+
b: 3,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
const component = reactTestRenderer.create(<Cx widget={widget} store={store} />);
|
|
61
|
+
|
|
62
|
+
let tree = component.toJSON();
|
|
63
|
+
assert(tree.type === "div");
|
|
64
|
+
assert.deepStrictEqual(tree.children, ["4"]);
|
|
65
|
+
});
|
|
66
|
+
});
|
package/src/widgets/Button.d.ts
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import * as Cx from "../core";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { Instance } from "../ui/Instance";
|
|
4
|
-
|
|
5
|
-
export interface ButtonProps extends Cx.HtmlElementProps {
|
|
6
|
-
/** Confirmation text or configuration object. See MsgBox.yesNo for more details. */
|
|
7
|
-
confirm?: Cx.Prop<string | Cx.Config>;
|
|
8
|
-
|
|
9
|
-
/** If true button appears in pressed state. Useful for implementing toggle buttons. */
|
|
10
|
-
pressed?: Cx.BooleanProp;
|
|
11
|
-
|
|
12
|
-
/** Name of the icon to be put on the left side of the button. */
|
|
13
|
-
icon?: Cx.StringProp;
|
|
14
|
-
|
|
15
|
-
/** HTML tag to be used. Default is `button`. */
|
|
16
|
-
tag?: string;
|
|
17
|
-
|
|
18
|
-
/** Base CSS class to be applied to the element. Default is 'button'. */
|
|
19
|
-
baseClass?: string;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Determines if button should receive focus on mousedown event.
|
|
23
|
-
* Default is `false`, which means that focus can be set only using the keyboard `Tab` key.
|
|
24
|
-
*/
|
|
25
|
-
focusOnMouseDown?: boolean;
|
|
26
|
-
|
|
27
|
-
/** Add type="submit" to the button. */
|
|
28
|
-
submit?: boolean;
|
|
29
|
-
|
|
30
|
-
/** Set to `true` to disable the button. */
|
|
31
|
-
disabled?: Cx.BooleanProp;
|
|
32
|
-
|
|
33
|
-
/** Set to `false` to disable the button. */
|
|
34
|
-
enabled?: Cx.BooleanProp;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Click handler.
|
|
38
|
-
*
|
|
39
|
-
* @param e - Event.
|
|
40
|
-
* @param instance - Cx widget instance that fired the event.
|
|
41
|
-
*/
|
|
42
|
-
onClick?: string | ((e: MouseEvent, instance: Instance) => void);
|
|
43
|
-
|
|
44
|
-
onMouseDown?: string | ((e: MouseEvent, instance: Instance) => void);
|
|
45
|
-
|
|
46
|
-
/** Button type. */
|
|
47
|
-
type?: "submit" | "button";
|
|
48
|
-
|
|
49
|
-
/** If set to `true`, the Button will cause its parent Overlay (if one exists) to close. This, however, can be prevented if `onClick` explicitly returns `false`. */
|
|
50
|
-
dismiss?: boolean;
|
|
51
|
-
|
|
52
|
-
/** The form attribute specifies the form the button belongs to.
|
|
53
|
-
* The value of this attribute must be equal to the `id` attribute of a `<form>` element in the same document.
|
|
54
|
-
*/
|
|
55
|
-
form?: Cx.StringProp;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export class Button extends Cx.Widget<ButtonProps> {}
|
|
1
|
+
import * as Cx from "../core";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Instance } from "../ui/Instance";
|
|
4
|
+
|
|
5
|
+
export interface ButtonProps extends Cx.HtmlElementProps {
|
|
6
|
+
/** Confirmation text or configuration object. See MsgBox.yesNo for more details. */
|
|
7
|
+
confirm?: Cx.Prop<string | Cx.Config>;
|
|
8
|
+
|
|
9
|
+
/** If true button appears in pressed state. Useful for implementing toggle buttons. */
|
|
10
|
+
pressed?: Cx.BooleanProp;
|
|
11
|
+
|
|
12
|
+
/** Name of the icon to be put on the left side of the button. */
|
|
13
|
+
icon?: Cx.StringProp;
|
|
14
|
+
|
|
15
|
+
/** HTML tag to be used. Default is `button`. */
|
|
16
|
+
tag?: string;
|
|
17
|
+
|
|
18
|
+
/** Base CSS class to be applied to the element. Default is 'button'. */
|
|
19
|
+
baseClass?: string;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Determines if button should receive focus on mousedown event.
|
|
23
|
+
* Default is `false`, which means that focus can be set only using the keyboard `Tab` key.
|
|
24
|
+
*/
|
|
25
|
+
focusOnMouseDown?: boolean;
|
|
26
|
+
|
|
27
|
+
/** Add type="submit" to the button. */
|
|
28
|
+
submit?: boolean;
|
|
29
|
+
|
|
30
|
+
/** Set to `true` to disable the button. */
|
|
31
|
+
disabled?: Cx.BooleanProp;
|
|
32
|
+
|
|
33
|
+
/** Set to `false` to disable the button. */
|
|
34
|
+
enabled?: Cx.BooleanProp;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Click handler.
|
|
38
|
+
*
|
|
39
|
+
* @param e - Event.
|
|
40
|
+
* @param instance - Cx widget instance that fired the event.
|
|
41
|
+
*/
|
|
42
|
+
onClick?: string | ((e: MouseEvent, instance: Instance) => void);
|
|
43
|
+
|
|
44
|
+
onMouseDown?: string | ((e: MouseEvent, instance: Instance) => void);
|
|
45
|
+
|
|
46
|
+
/** Button type. */
|
|
47
|
+
type?: "submit" | "button";
|
|
48
|
+
|
|
49
|
+
/** If set to `true`, the Button will cause its parent Overlay (if one exists) to close. This, however, can be prevented if `onClick` explicitly returns `false`. */
|
|
50
|
+
dismiss?: boolean;
|
|
51
|
+
|
|
52
|
+
/** The form attribute specifies the form the button belongs to.
|
|
53
|
+
* The value of this attribute must be equal to the `id` attribute of a `<form>` element in the same document.
|
|
54
|
+
*/
|
|
55
|
+
form?: Cx.StringProp;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export class Button extends Cx.Widget<ButtonProps> {}
|