cx 25.6.2 → 25.6.3

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 (103) hide show
  1. package/dist/manifest.js +749 -749
  2. package/dist/widgets.css +5 -0
  3. package/dist/widgets.js +77 -34
  4. package/package.json +1 -1
  5. package/src/charts/Legend.d.ts +45 -45
  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/RangeMarker.js +159 -159
  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.js +611 -611
  17. package/src/charts/helpers/SnapPointFinder.js +69 -69
  18. package/src/data/Binding.spec.js +69 -69
  19. package/src/data/ExposedValueView.d.ts +19 -19
  20. package/src/data/Expression.js +229 -229
  21. package/src/data/Expression.spec.js +229 -229
  22. package/src/data/StringTemplate.js +92 -92
  23. package/src/data/StringTemplate.spec.js +132 -132
  24. package/src/data/StructuredSelector.js +132 -132
  25. package/src/data/getAccessor.spec.js +11 -11
  26. package/src/data/getSelector.js +49 -49
  27. package/src/hooks/createLocalStorageRef.d.ts +3 -3
  28. package/src/hooks/createLocalStorageRef.js +20 -20
  29. package/src/index.scss +6 -6
  30. package/src/ui/Culture.d.ts +57 -57
  31. package/src/ui/Culture.js +139 -139
  32. package/src/ui/FocusManager.js +171 -171
  33. package/src/ui/Format.js +108 -108
  34. package/src/ui/HoverSync.js +147 -147
  35. package/src/ui/Repeater.d.ts +61 -61
  36. package/src/ui/index.d.ts +42 -42
  37. package/src/ui/layout/ContentPlaceholder.d.ts +19 -19
  38. package/src/ui/layout/ContentPlaceholder.js +105 -105
  39. package/src/ui/layout/ContentPlaceholder.spec.js +579 -579
  40. package/src/ui/layout/LabelsTopLayout.js +134 -134
  41. package/src/util/Format.js +270 -270
  42. package/src/util/date/encodeDate.d.ts +1 -1
  43. package/src/util/date/encodeDate.js +8 -8
  44. package/src/util/date/encodeDateWithTimezoneOffset.d.ts +1 -1
  45. package/src/util/date/index.d.ts +11 -11
  46. package/src/util/date/index.js +11 -11
  47. package/src/util/date/parseDateInvariant.d.ts +3 -3
  48. package/src/util/date/parseDateInvariant.js +20 -20
  49. package/src/util/getSearchQueryPredicate.js +59 -59
  50. package/src/util/index.d.ts +51 -51
  51. package/src/util/index.js +54 -54
  52. package/src/util/isValidIdentifierName.d.ts +1 -1
  53. package/src/util/isValidIdentifierName.js +5 -5
  54. package/src/util/isValidIdentifierName.spec.js +33 -33
  55. package/src/util/scss/add-rules.scss +38 -38
  56. package/src/widgets/CxCredit.scss +37 -37
  57. package/src/widgets/HighlightedSearchText.js +36 -36
  58. package/src/widgets/HighlightedSearchText.scss +18 -18
  59. package/src/widgets/List.scss +91 -91
  60. package/src/widgets/Sandbox.d.ts +18 -16
  61. package/src/widgets/Sandbox.js +65 -63
  62. package/src/widgets/drag-drop/DropZone.js +214 -214
  63. package/src/widgets/form/Calendar.js +618 -618
  64. package/src/widgets/form/Calendar.scss +196 -196
  65. package/src/widgets/form/Checkbox.scss +127 -127
  66. package/src/widgets/form/ColorField.js +397 -397
  67. package/src/widgets/form/ColorField.scss +96 -96
  68. package/src/widgets/form/ColorPicker.scss +283 -283
  69. package/src/widgets/form/DateTimeField.js +576 -576
  70. package/src/widgets/form/DateTimePicker.js +392 -392
  71. package/src/widgets/form/LookupField.d.ts +179 -179
  72. package/src/widgets/form/LookupField.scss +219 -219
  73. package/src/widgets/form/MonthPicker.d.ts +8 -0
  74. package/src/widgets/form/MonthPicker.js +65 -23
  75. package/src/widgets/form/MonthPicker.scss +4 -0
  76. package/src/widgets/form/NumberField.js +459 -459
  77. package/src/widgets/form/NumberField.scss +61 -61
  78. package/src/widgets/form/Radio.scss +121 -121
  79. package/src/widgets/form/Select.scss +99 -99
  80. package/src/widgets/form/Slider.scss +118 -118
  81. package/src/widgets/form/Switch.scss +140 -140
  82. package/src/widgets/form/TextArea.scss +43 -43
  83. package/src/widgets/form/TextField.js +290 -290
  84. package/src/widgets/form/TextField.scss +55 -55
  85. package/src/widgets/form/UploadButton.d.ts +34 -34
  86. package/src/widgets/form/variables.scss +353 -353
  87. package/src/widgets/grid/Grid.d.ts +442 -442
  88. package/src/widgets/grid/GridRow.js +228 -228
  89. package/src/widgets/grid/TreeNode.d.ts +23 -23
  90. package/src/widgets/grid/TreeNode.scss +88 -88
  91. package/src/widgets/grid/variables.scss +133 -133
  92. package/src/widgets/nav/LinkButton.js +128 -128
  93. package/src/widgets/nav/Menu.scss +74 -74
  94. package/src/widgets/overlay/Dropdown.js +612 -612
  95. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  96. package/src/widgets/overlay/Overlay.d.ts +73 -73
  97. package/src/widgets/overlay/Window.js +202 -202
  98. package/src/widgets/overlay/captureMouse.js +124 -124
  99. package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +18 -18
  100. package/src/widgets/overlay/createHotPromiseWindowFactory.js +56 -56
  101. package/src/widgets/overlay/index.d.ts +11 -11
  102. package/src/widgets/overlay/index.js +11 -11
  103. package/src/widgets/variables.scss +144 -144
@@ -1,59 +1,59 @@
1
- import { escapeSpecialRegexCharacters } from "./escapeSpecialRegexCharacters";
2
-
3
- function getTermsAndRegularExpressions(query) {
4
- if (!query) return [[], []];
5
- let terms = query.split(" ").filter(Boolean);
6
- let regexes = terms.map((word) => new RegExp(escapeSpecialRegexCharacters(word), "gi"));
7
- return [terms, regexes];
8
- }
9
-
10
- export function getSearchQueryPredicate(query, options) {
11
- let [terms, regexes] = getTermsAndRegularExpressions(query);
12
- if (terms.length == 0) return () => true;
13
- if (regexes.length == 1) {
14
- let regex = regexes[0];
15
- return (text) => text && text.match(regex);
16
- }
17
- return (text) => text && regexes.every((re) => text.match(re));
18
- }
19
-
20
- var highlighterCache = {};
21
-
22
- export function getSearchQueryHighlighter(query, options) {
23
- let [terms, regexes] = getTermsAndRegularExpressions(query);
24
- if (terms.length == 0) return (text) => [text];
25
-
26
- if (highlighterCache[query]) return highlighterCache[query];
27
-
28
- let result = (query) => {
29
- query = new String(query);
30
- let chunks = [query];
31
- for (let i = 0; i < regexes.length; i++) {
32
- let newChunks = [];
33
- for (let j = 0; j < chunks.length; j++) {
34
- let at = 0;
35
- let chunk = chunks[j];
36
- let parts = chunk.split(regexes[i]);
37
- for (let k = 0; k < parts.length; k++) {
38
- newChunks.push(parts[k]);
39
- at += parts[k].length;
40
- if (k < parts.length - 1) {
41
- newChunks.push(chunk.substr(at, terms[i].length));
42
- at += terms[i].length;
43
- }
44
- }
45
- }
46
- chunks = newChunks;
47
- }
48
- return chunks;
49
- };
50
-
51
- if (options?.cache) {
52
- highlighterCache[query] = result;
53
- setTimeout(() => {
54
- delete highlighterCache[query];
55
- }, options?.cachePeriod || 5000);
56
- }
57
-
58
- return result;
59
- }
1
+ import { escapeSpecialRegexCharacters } from "./escapeSpecialRegexCharacters";
2
+
3
+ function getTermsAndRegularExpressions(query) {
4
+ if (!query) return [[], []];
5
+ let terms = query.split(" ").filter(Boolean);
6
+ let regexes = terms.map((word) => new RegExp(escapeSpecialRegexCharacters(word), "gi"));
7
+ return [terms, regexes];
8
+ }
9
+
10
+ export function getSearchQueryPredicate(query, options) {
11
+ let [terms, regexes] = getTermsAndRegularExpressions(query);
12
+ if (terms.length == 0) return () => true;
13
+ if (regexes.length == 1) {
14
+ let regex = regexes[0];
15
+ return (text) => text && text.match(regex);
16
+ }
17
+ return (text) => text && regexes.every((re) => text.match(re));
18
+ }
19
+
20
+ var highlighterCache = {};
21
+
22
+ export function getSearchQueryHighlighter(query, options) {
23
+ let [terms, regexes] = getTermsAndRegularExpressions(query);
24
+ if (terms.length == 0) return (text) => [text];
25
+
26
+ if (highlighterCache[query]) return highlighterCache[query];
27
+
28
+ let result = (query) => {
29
+ query = new String(query);
30
+ let chunks = [query];
31
+ for (let i = 0; i < regexes.length; i++) {
32
+ let newChunks = [];
33
+ for (let j = 0; j < chunks.length; j++) {
34
+ let at = 0;
35
+ let chunk = chunks[j];
36
+ let parts = chunk.split(regexes[i]);
37
+ for (let k = 0; k < parts.length; k++) {
38
+ newChunks.push(parts[k]);
39
+ at += parts[k].length;
40
+ if (k < parts.length - 1) {
41
+ newChunks.push(chunk.substr(at, terms[i].length));
42
+ at += terms[i].length;
43
+ }
44
+ }
45
+ }
46
+ chunks = newChunks;
47
+ }
48
+ return chunks;
49
+ };
50
+
51
+ if (options?.cache) {
52
+ highlighterCache[query] = result;
53
+ setTimeout(() => {
54
+ delete highlighterCache[query];
55
+ }, options?.cachePeriod || 5000);
56
+ }
57
+
58
+ return result;
59
+ }
@@ -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
+ });
@@ -1,38 +1,38 @@
1
- @mixin cx-add-rules($styles) {
2
- @each $rule, $value in $styles {
3
- #{$rule}: $value;
4
- }
5
- }
6
-
7
- @mixin cx-add-state-rules($state-style-map, $key) {
8
- @include cx-add-rules(map-get($state-style-map, $key));
9
- }
10
-
11
- @function cx-merge-state-style-maps($state-style-map, $override-style-map) {
12
- $result: $state-style-map;
13
-
14
- @if ($override-style-map != null) {
15
- @each $key, $new-value in $override-style-map {
16
- $old-value: map-get($state-style-map, $key);
17
- @if ($old-value != null) {
18
- $new-value: map-merge($old-value, $new-value);
19
- }
20
- $result: map-merge(
21
- $result,
22
- (
23
- $key: $new-value,
24
- )
25
- );
26
- }
27
- }
28
-
29
- @return $result;
30
- }
31
-
32
- @function cx-get-state-rule($state-style-map, $key, $rule, $default: null) {
33
- $result: map-get(map-get($state-style-map, $key), $rule);
34
- @if ($result != null) {
35
- @return $result;
36
- }
37
- @return $default;
38
- }
1
+ @mixin cx-add-rules($styles) {
2
+ @each $rule, $value in $styles {
3
+ #{$rule}: $value;
4
+ }
5
+ }
6
+
7
+ @mixin cx-add-state-rules($state-style-map, $key) {
8
+ @include cx-add-rules(map-get($state-style-map, $key));
9
+ }
10
+
11
+ @function cx-merge-state-style-maps($state-style-map, $override-style-map) {
12
+ $result: $state-style-map;
13
+
14
+ @if ($override-style-map != null) {
15
+ @each $key, $new-value in $override-style-map {
16
+ $old-value: map-get($state-style-map, $key);
17
+ @if ($old-value != null) {
18
+ $new-value: map-merge($old-value, $new-value);
19
+ }
20
+ $result: map-merge(
21
+ $result,
22
+ (
23
+ $key: $new-value,
24
+ )
25
+ );
26
+ }
27
+ }
28
+
29
+ @return $result;
30
+ }
31
+
32
+ @function cx-get-state-rule($state-style-map, $key, $rule, $default: null) {
33
+ $result: map-get(map-get($state-style-map, $key), $rule);
34
+ @if ($result != null) {
35
+ @return $result;
36
+ }
37
+ @return $default;
38
+ }
@@ -1,37 +1,37 @@
1
- @mixin cx-cxcredit($name: "cxcredit", $besm: $cx-besm) {
2
- $block: map-get($besm, block);
3
- $element: map-get($besm, element);
4
- $state: map-get($besm, state);
5
- $mod: map-get($besm, mod);
6
-
7
- .#{$block}#{$name} {
8
- width: 50px;
9
- height: 50px;
10
- opacity: 0.5;
11
- transition: opacity 0.3s ease-in-out;
12
- background: rgba(255, 255, 255, 0.1);
13
- cursor: pointer;
14
- position: fixed;
15
- bottom: 20px;
16
- right: 20px;
17
-
18
- &:hover {
19
- opacity: 1;
20
- }
21
-
22
- &.#{$mod}inline {
23
- position: relative;
24
- bottom: auto;
25
- right: auto;
26
- }
27
- }
28
-
29
- .#{$element}#{$name}-icon {
30
- width: 100%;
31
- height: 100%;
32
- }
33
- }
34
-
35
- @if (cx-should-include("cx/widgets/CxCredit")) {
36
- @include cx-cxcredit();
37
- }
1
+ @mixin cx-cxcredit($name: "cxcredit", $besm: $cx-besm) {
2
+ $block: map-get($besm, block);
3
+ $element: map-get($besm, element);
4
+ $state: map-get($besm, state);
5
+ $mod: map-get($besm, mod);
6
+
7
+ .#{$block}#{$name} {
8
+ width: 50px;
9
+ height: 50px;
10
+ opacity: 0.5;
11
+ transition: opacity 0.3s ease-in-out;
12
+ background: rgba(255, 255, 255, 0.1);
13
+ cursor: pointer;
14
+ position: fixed;
15
+ bottom: 20px;
16
+ right: 20px;
17
+
18
+ &:hover {
19
+ opacity: 1;
20
+ }
21
+
22
+ &.#{$mod}inline {
23
+ position: relative;
24
+ bottom: auto;
25
+ right: auto;
26
+ }
27
+ }
28
+
29
+ .#{$element}#{$name}-icon {
30
+ width: 100%;
31
+ height: 100%;
32
+ }
33
+ }
34
+
35
+ @if (cx-should-include("cx/widgets/CxCredit")) {
36
+ @include cx-cxcredit();
37
+ }
@@ -1,36 +1,36 @@
1
- import { Widget } from "../ui/Widget";
2
- import { VDOM } from "../ui/VDOM";
3
- import { getSearchQueryHighlighter } from "../util/getSearchQueryPredicate";
4
-
5
- export class HighlightedSearchText extends Widget {
6
- declareData(...args) {
7
- super.declareData(...args, {
8
- text: undefined,
9
- chunks: undefined,
10
- query: undefined,
11
- });
12
- }
13
-
14
- render(context, instance, key) {
15
- let { data } = instance;
16
- let { text, chunks, query, classNames, style } = data;
17
-
18
- if (!chunks && text && query) {
19
- let highlighter = getSearchQueryHighlighter(query, { cache: true });
20
- chunks = highlighter(text);
21
- }
22
-
23
- if (!chunks) return text;
24
- return chunks.map((text, i) => {
25
- if (i % 2 == 0) return text;
26
- return (
27
- <span key={`${key}-${i}`} className={classNames} style={style}>
28
- {text}
29
- </span>
30
- );
31
- });
32
- }
33
- }
34
-
35
- HighlightedSearchText.prototype.styled = true;
36
- HighlightedSearchText.prototype.baseClass = "highlightedsearchtext";
1
+ import { Widget } from "../ui/Widget";
2
+ import { VDOM } from "../ui/VDOM";
3
+ import { getSearchQueryHighlighter } from "../util/getSearchQueryPredicate";
4
+
5
+ export class HighlightedSearchText extends Widget {
6
+ declareData(...args) {
7
+ super.declareData(...args, {
8
+ text: undefined,
9
+ chunks: undefined,
10
+ query: undefined,
11
+ });
12
+ }
13
+
14
+ render(context, instance, key) {
15
+ let { data } = instance;
16
+ let { text, chunks, query, classNames, style } = data;
17
+
18
+ if (!chunks && text && query) {
19
+ let highlighter = getSearchQueryHighlighter(query, { cache: true });
20
+ chunks = highlighter(text);
21
+ }
22
+
23
+ if (!chunks) return text;
24
+ return chunks.map((text, i) => {
25
+ if (i % 2 == 0) return text;
26
+ return (
27
+ <span key={`${key}-${i}`} className={classNames} style={style}>
28
+ {text}
29
+ </span>
30
+ );
31
+ });
32
+ }
33
+ }
34
+
35
+ HighlightedSearchText.prototype.styled = true;
36
+ HighlightedSearchText.prototype.baseClass = "highlightedsearchtext";