cx 24.9.4 → 24.10.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 (71) hide show
  1. package/dist/charts.css +19 -16
  2. package/dist/charts.js +127 -94
  3. package/dist/data.js +29 -26
  4. package/dist/manifest.js +692 -692
  5. package/dist/svg.js +56 -59
  6. package/dist/ui.js +52 -51
  7. package/dist/widgets.js +44 -40
  8. package/package.json +32 -32
  9. package/src/charts/Legend.js +49 -33
  10. package/src/charts/Legend.scss +40 -42
  11. package/src/charts/LegendEntry.js +120 -121
  12. package/src/charts/LegendEntry.scss +27 -31
  13. package/src/charts/PieLabel.js +71 -71
  14. package/src/charts/axis/NumericAxis.js +347 -347
  15. package/src/charts/axis/Stack.js +55 -55
  16. package/src/charts/helpers/PointReducer.js +43 -43
  17. package/src/charts/helpers/SnapPointFinder.js +69 -69
  18. package/src/data/Binding.spec.js +69 -69
  19. package/src/data/Expression.js +221 -221
  20. package/src/data/Expression.spec.js +184 -184
  21. package/src/data/StringTemplate.spec.js +105 -105
  22. package/src/data/getAccessor.spec.js +11 -11
  23. package/src/index.scss +6 -6
  24. package/src/svg/Text.d.ts +40 -40
  25. package/src/ui/Culture.d.ts +55 -55
  26. package/src/ui/Culture.js +139 -139
  27. package/src/ui/FocusManager.js +171 -171
  28. package/src/ui/Instance.d.ts +72 -72
  29. package/src/ui/VDOM.d.ts +12 -12
  30. package/src/ui/app/startAppLoop.js +58 -58
  31. package/src/ui/index.d.ts +42 -42
  32. package/src/ui/layout/LabelsTopLayout.js +134 -134
  33. package/src/util/Console.d.ts +4 -4
  34. package/src/util/index.d.ts +51 -51
  35. package/src/util/index.js +54 -54
  36. package/src/util/isValidIdentifierName.d.ts +1 -1
  37. package/src/util/isValidIdentifierName.js +5 -5
  38. package/src/util/isValidIdentifierName.spec.js +33 -33
  39. package/src/util/scss/add-rules.scss +38 -38
  40. package/src/widgets/CxCredit.scss +37 -37
  41. package/src/widgets/HighlightedSearchText.js +36 -36
  42. package/src/widgets/HighlightedSearchText.scss +18 -18
  43. package/src/widgets/List.scss +91 -91
  44. package/src/widgets/drag-drop/DropZone.js +214 -214
  45. package/src/widgets/form/Calendar.scss +196 -196
  46. package/src/widgets/form/ColorField.js +397 -397
  47. package/src/widgets/form/ColorPicker.scss +283 -283
  48. package/src/widgets/form/DateTimeField.js +573 -573
  49. package/src/widgets/form/LookupField.d.ts +179 -179
  50. package/src/widgets/form/MonthField.js +516 -516
  51. package/src/widgets/form/MonthPicker.scss +118 -118
  52. package/src/widgets/form/NumberField.js +459 -459
  53. package/src/widgets/form/NumberField.scss +61 -61
  54. package/src/widgets/form/Select.scss +99 -99
  55. package/src/widgets/form/Slider.scss +118 -118
  56. package/src/widgets/form/Switch.scss +140 -140
  57. package/src/widgets/form/TextArea.scss +43 -43
  58. package/src/widgets/form/TextField.js +290 -290
  59. package/src/widgets/form/TextField.scss +55 -55
  60. package/src/widgets/form/UploadButton.d.ts +34 -34
  61. package/src/widgets/form/variables.scss +353 -353
  62. package/src/widgets/grid/TreeNode.scss +88 -88
  63. package/src/widgets/grid/variables.scss +88 -88
  64. package/src/widgets/nav/Menu.scss +74 -74
  65. package/src/widgets/overlay/Dropdown.js +612 -612
  66. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  67. package/src/widgets/overlay/Tooltip.js +300 -300
  68. package/src/widgets/overlay/Window.js +196 -196
  69. package/src/widgets/overlay/captureMouse.js +124 -124
  70. package/src/widgets/overlay/variables.scss +83 -83
  71. package/src/widgets/variables.scss +144 -144
package/src/ui/index.d.ts CHANGED
@@ -1,42 +1,42 @@
1
- export * from "./Controller";
2
- export * from "./Widget";
3
- export * from "./Container";
4
- export * from "./PureContainer";
5
- export * from "./Repeater";
6
- export * from "./Rescope";
7
- export * from "./StaticText";
8
- export * from "./Text";
9
- export * from "./CSS";
10
- export * from "./CSSHelper";
11
- export * from "./FocusManager";
12
- export * from "./ResizeManager";
13
- export * from "./ZIndexManager";
14
- export * from "./Format";
15
- export * from "./Culture";
16
- export * from "./Localization";
17
- export * from "./Cx";
18
- export * from "./Instance";
19
- export * from "./RenderingContext";
20
- export * from "./ContentResolver";
21
- export * from "./batchUpdates";
22
- export * from "./IsolatedScope";
23
- export * from "./DetachedScope";
24
- export * from "./Restate";
25
- export * from "./DataProxy";
26
- export * from "./keyboardShortcuts";
27
- export * from "./createFunctionalComponent";
28
- export * from "./StructuredInstanceDataAccessor";
29
- export * from "./HoverSync";
30
-
31
- export * from "./selection/index";
32
- export * from "./layout/index";
33
- export * from "./app/index";
34
- export * from "./adapter/index";
35
-
36
- export * from "./bind";
37
- export * from "./tpl";
38
- export * from "./expr";
39
-
40
- //re-export computable here
41
- import { computable } from "../data/computable";
42
- export { computable };
1
+ export * from "./Controller";
2
+ export * from "./Widget";
3
+ export * from "./Container";
4
+ export * from "./PureContainer";
5
+ export * from "./Repeater";
6
+ export * from "./Rescope";
7
+ export * from "./StaticText";
8
+ export * from "./Text";
9
+ export * from "./CSS";
10
+ export * from "./CSSHelper";
11
+ export * from "./FocusManager";
12
+ export * from "./ResizeManager";
13
+ export * from "./ZIndexManager";
14
+ export * from "./Format";
15
+ export * from "./Culture";
16
+ export * from "./Localization";
17
+ export * from "./Cx";
18
+ export * from "./Instance";
19
+ export * from "./RenderingContext";
20
+ export * from "./ContentResolver";
21
+ export * from "./batchUpdates";
22
+ export * from "./IsolatedScope";
23
+ export * from "./DetachedScope";
24
+ export * from "./Restate";
25
+ export * from "./DataProxy";
26
+ export * from "./keyboardShortcuts";
27
+ export * from "./createFunctionalComponent";
28
+ export * from "./StructuredInstanceDataAccessor";
29
+ export * from "./HoverSync";
30
+
31
+ export * from "./selection/index";
32
+ export * from "./layout/index";
33
+ export * from "./app/index";
34
+ export * from "./adapter/index";
35
+
36
+ export * from "./bind";
37
+ export * from "./tpl";
38
+ export * from "./expr";
39
+
40
+ //re-export computable here
41
+ import { computable } from "../data/computable";
42
+ export { computable };
@@ -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,4 +1,4 @@
1
- export class Console {
2
- static log(...args: unknown[]): void;
3
- static warn(...args: unknown[]): void;
4
- }
1
+ export class Console {
2
+ static log(...args: unknown[]): void;
3
+ static warn(...args: unknown[]): void;
4
+ }
@@ -1,51 +1,51 @@
1
- export * from "./Console";
2
- export * from "./Debug";
3
- export * from "./DOM";
4
- export * from "./Format";
5
- export * from "./expandFatArrows";
6
- export * from "./GlobalCacheIdentifier";
7
- export * from "./innerTextTrim";
8
- export * from "./isDigit";
9
- export * from "./isPromise";
10
- export * from "./isTouchDevice";
11
- export * from "./KeyCode";
12
- export * from "./parseStyle";
13
- export * from "./quote";
14
- export * from "./scrollElementIntoView";
15
- export * from "./shallowEquals";
16
- export * from "./Timing";
17
- export * from "./date/index";
18
- export * from "./color/index";
19
- export * from "./getVendorPrefix";
20
- export * from "./eventCallbacks";
21
- export * from "./getSearchQueryPredicate";
22
- export * from "./escapeSpecialRegexCharacters";
23
- export * from "./browserSupportsPassiveEventHandlers";
24
- export * from "./isTouchEvent";
25
- export * from "./debounce";
26
- export * from "./throttle";
27
- export * from "./SubscriberList";
28
- export * from "./findScrollableParent";
29
- export * from "./getScrollerBoundingClientRect";
30
- export * from "./isNonEmptyArray";
31
- export * from "./isArray";
32
- export * from "./isObject";
33
- export * from "./isNumber";
34
- export * from "./isFunction";
35
- export * from "./isString";
36
- export * from "./isUndefined";
37
- export * from "./isDefined";
38
- export * from "./routeAppend";
39
- export * from "./reverseSlice";
40
- export * from "./getTopLevelBoundingClientRect";
41
- export * from "./getParentFrameBoundingClientRect";
42
- export * from "./getActiveElement";
43
- export * from "./Component";
44
- export * from "./onIdleCallback";
45
- export * from "./validatedDebounce";
46
- export * from "./addEventListenerWithOptions";
47
- export * from "./coalesce";
48
- export * from "./dummyCallback";
49
- export * from "./calculateNaturalElementHeight";
50
- export * from "./isTextInputElement";
51
- export * from "./isValidIdentifierName";
1
+ export * from "./Console";
2
+ export * from "./Debug";
3
+ export * from "./DOM";
4
+ export * from "./Format";
5
+ export * from "./expandFatArrows";
6
+ export * from "./GlobalCacheIdentifier";
7
+ export * from "./innerTextTrim";
8
+ export * from "./isDigit";
9
+ export * from "./isPromise";
10
+ export * from "./isTouchDevice";
11
+ export * from "./KeyCode";
12
+ export * from "./parseStyle";
13
+ export * from "./quote";
14
+ export * from "./scrollElementIntoView";
15
+ export * from "./shallowEquals";
16
+ export * from "./Timing";
17
+ export * from "./date/index";
18
+ export * from "./color/index";
19
+ export * from "./getVendorPrefix";
20
+ export * from "./eventCallbacks";
21
+ export * from "./getSearchQueryPredicate";
22
+ export * from "./escapeSpecialRegexCharacters";
23
+ export * from "./browserSupportsPassiveEventHandlers";
24
+ export * from "./isTouchEvent";
25
+ export * from "./debounce";
26
+ export * from "./throttle";
27
+ export * from "./SubscriberList";
28
+ export * from "./findScrollableParent";
29
+ export * from "./getScrollerBoundingClientRect";
30
+ export * from "./isNonEmptyArray";
31
+ export * from "./isArray";
32
+ export * from "./isObject";
33
+ export * from "./isNumber";
34
+ export * from "./isFunction";
35
+ export * from "./isString";
36
+ export * from "./isUndefined";
37
+ export * from "./isDefined";
38
+ export * from "./routeAppend";
39
+ export * from "./reverseSlice";
40
+ export * from "./getTopLevelBoundingClientRect";
41
+ export * from "./getParentFrameBoundingClientRect";
42
+ export * from "./getActiveElement";
43
+ export * from "./Component";
44
+ export * from "./onIdleCallback";
45
+ export * from "./validatedDebounce";
46
+ export * from "./addEventListenerWithOptions";
47
+ export * from "./coalesce";
48
+ export * from "./dummyCallback";
49
+ export * from "./calculateNaturalElementHeight";
50
+ export * from "./isTextInputElement";
51
+ export * from "./isValidIdentifierName";
package/src/util/index.js CHANGED
@@ -1,54 +1,54 @@
1
- export * from "./Console";
2
- export * from "./Debug";
3
- export * from "./DOM";
4
- export * from "./Format";
5
- export * from "./expandFatArrows";
6
- export * from "./GlobalCacheIdentifier";
7
- export * from "./innerTextTrim";
8
- export * from "./isDigit";
9
- export * from "./isPromise";
10
- export * from "./isTouchDevice";
11
- export * from "./KeyCode";
12
- export * from "./parseStyle";
13
- export * from "./quote";
14
- export * from "./scrollElementIntoView";
15
- export * from "./shallowEquals";
16
- export * from "./Timing";
17
- export * from "./date/index";
18
- export * from "./color/index";
19
- export * from "./getVendorPrefix";
20
- export * from "./eventCallbacks";
21
- export * from "./getSearchQueryPredicate";
22
- export * from "./escapeSpecialRegexCharacters";
23
- export * from "./browserSupportsPassiveEventHandlers";
24
- export * from "./isTouchEvent";
25
- export * from "./debounce";
26
- export * from "./throttle";
27
- export * from "./SubscriberList";
28
- export * from "./findScrollableParent";
29
- export * from "./getScrollerBoundingClientRect";
30
- export * from "./isNonEmptyArray";
31
- export * from "./isArray";
32
- export * from "./isObject";
33
- export * from "./isNumber";
34
- export * from "./isFunction";
35
- export * from "./isString";
36
- export * from "./isUndefined";
37
- export * from "./isDefined";
38
- export * from "./routeAppend";
39
- export * from "./reverseSlice";
40
- export * from "./getTopLevelBoundingClientRect";
41
- export * from "./getParentFrameBoundingClientRect";
42
- export * from "./getActiveElement";
43
- export * from "./Component";
44
- export * from "./onIdleCallback";
45
- export * from "./validatedDebounce";
46
- export * from "./addEventListenerWithOptions";
47
- export * from "./coalesce";
48
- export * from "./dummyCallback";
49
- export * from "./calculateNaturalElementHeight";
50
- export * from "./isTextInputElement";
51
- export * from "./capitalize";
52
- export * from "./isValidIdentifierName";
53
-
54
- export * from "./TraversalStack";
1
+ export * from "./Console";
2
+ export * from "./Debug";
3
+ export * from "./DOM";
4
+ export * from "./Format";
5
+ export * from "./expandFatArrows";
6
+ export * from "./GlobalCacheIdentifier";
7
+ export * from "./innerTextTrim";
8
+ export * from "./isDigit";
9
+ export * from "./isPromise";
10
+ export * from "./isTouchDevice";
11
+ export * from "./KeyCode";
12
+ export * from "./parseStyle";
13
+ export * from "./quote";
14
+ export * from "./scrollElementIntoView";
15
+ export * from "./shallowEquals";
16
+ export * from "./Timing";
17
+ export * from "./date/index";
18
+ export * from "./color/index";
19
+ export * from "./getVendorPrefix";
20
+ export * from "./eventCallbacks";
21
+ export * from "./getSearchQueryPredicate";
22
+ export * from "./escapeSpecialRegexCharacters";
23
+ export * from "./browserSupportsPassiveEventHandlers";
24
+ export * from "./isTouchEvent";
25
+ export * from "./debounce";
26
+ export * from "./throttle";
27
+ export * from "./SubscriberList";
28
+ export * from "./findScrollableParent";
29
+ export * from "./getScrollerBoundingClientRect";
30
+ export * from "./isNonEmptyArray";
31
+ export * from "./isArray";
32
+ export * from "./isObject";
33
+ export * from "./isNumber";
34
+ export * from "./isFunction";
35
+ export * from "./isString";
36
+ export * from "./isUndefined";
37
+ export * from "./isDefined";
38
+ export * from "./routeAppend";
39
+ export * from "./reverseSlice";
40
+ export * from "./getTopLevelBoundingClientRect";
41
+ export * from "./getParentFrameBoundingClientRect";
42
+ export * from "./getActiveElement";
43
+ export * from "./Component";
44
+ export * from "./onIdleCallback";
45
+ export * from "./validatedDebounce";
46
+ export * from "./addEventListenerWithOptions";
47
+ export * from "./coalesce";
48
+ export * from "./dummyCallback";
49
+ export * from "./calculateNaturalElementHeight";
50
+ export * from "./isTextInputElement";
51
+ export * from "./capitalize";
52
+ export * from "./isValidIdentifierName";
53
+
54
+ export * from "./TraversalStack";
@@ -1 +1 @@
1
- export function isValidIdentifierName(name: string): boolean;
1
+ export function isValidIdentifierName(name: string): boolean;
@@ -1,5 +1,5 @@
1
- const regex = /^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u;
2
-
3
- export function isValidIdentifierName(name) {
4
- return regex.test(name);
5
- }
1
+ const regex = /^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u;
2
+
3
+ export function isValidIdentifierName(name) {
4
+ return regex.test(name);
5
+ }
@@ -1,33 +1,33 @@
1
- import { isValidIdentifierName } from "./isValidIdentifierName";
2
- import assert from "assert";
3
-
4
- describe("isValidIdentifierName", function () {
5
- it("names starting with a number are not valid", function () {
6
- assert(!isValidIdentifierName("1a"));
7
- assert(!isValidIdentifierName("00"));
8
- assert(!isValidIdentifierName("0_abc"));
9
- });
10
-
11
- it("names starting with a dollar sign are valid", function () {
12
- assert(isValidIdentifierName("$a"));
13
- assert(isValidIdentifierName("$"));
14
- });
15
-
16
- it("names starting with an underscore are valid", function () {
17
- assert(isValidIdentifierName("_a"));
18
- assert(isValidIdentifierName("_"));
19
- });
20
-
21
- it("names starting with a letter are valid", function () {
22
- assert(isValidIdentifierName("a"));
23
- assert(isValidIdentifierName("abc"));
24
- assert(isValidIdentifierName("abc0123"));
25
- });
26
-
27
- it("names with invalid characters are not valid", function () {
28
- assert(!isValidIdentifierName("a b"));
29
- assert(!isValidIdentifierName("a-b"));
30
- assert(!isValidIdentifierName("a.b"));
31
- assert(!isValidIdentifierName("a!b"));
32
- });
33
- });
1
+ import { isValidIdentifierName } from "./isValidIdentifierName";
2
+ import assert from "assert";
3
+
4
+ describe("isValidIdentifierName", function () {
5
+ it("names starting with a number are not valid", function () {
6
+ assert(!isValidIdentifierName("1a"));
7
+ assert(!isValidIdentifierName("00"));
8
+ assert(!isValidIdentifierName("0_abc"));
9
+ });
10
+
11
+ it("names starting with a dollar sign are valid", function () {
12
+ assert(isValidIdentifierName("$a"));
13
+ assert(isValidIdentifierName("$"));
14
+ });
15
+
16
+ it("names starting with an underscore are valid", function () {
17
+ assert(isValidIdentifierName("_a"));
18
+ assert(isValidIdentifierName("_"));
19
+ });
20
+
21
+ it("names starting with a letter are valid", function () {
22
+ assert(isValidIdentifierName("a"));
23
+ assert(isValidIdentifierName("abc"));
24
+ assert(isValidIdentifierName("abc0123"));
25
+ });
26
+
27
+ it("names with invalid characters are not valid", function () {
28
+ assert(!isValidIdentifierName("a b"));
29
+ assert(!isValidIdentifierName("a-b"));
30
+ assert(!isValidIdentifierName("a.b"));
31
+ assert(!isValidIdentifierName("a!b"));
32
+ });
33
+ });