cx 24.8.6 → 24.9.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.
package/dist/widgets.css CHANGED
@@ -833,6 +833,7 @@
833
833
  }
834
834
 
835
835
  .cxe-textfield-left-icon {
836
+ pointer-events: none;
836
837
  display: block;
837
838
  position: absolute;
838
839
  font-size: 16px;
@@ -844,7 +845,6 @@
844
845
  line-height: 16px;
845
846
  opacity: 0.6;
846
847
  text-align: center;
847
- pointer-events: none;
848
848
  }
849
849
  .cxe-textfield-left-icon:hover {
850
850
  opacity: 1;
@@ -961,6 +961,7 @@
961
961
  }
962
962
 
963
963
  .cxe-numberfield-tool {
964
+ pointer-events: none;
964
965
  display: block;
965
966
  position: absolute;
966
967
  font-size: 16px;
@@ -973,7 +974,6 @@
973
974
  opacity: 0.6;
974
975
  text-align: center;
975
976
  cursor: pointer;
976
- pointer-events: none;
977
977
  }
978
978
  .cxe-numberfield-tool:hover {
979
979
  opacity: 1;
@@ -992,6 +992,7 @@
992
992
  }
993
993
 
994
994
  .cxe-numberfield-left-icon {
995
+ pointer-events: none;
995
996
  display: block;
996
997
  position: absolute;
997
998
  font-size: 16px;
@@ -1003,7 +1004,6 @@
1003
1004
  line-height: 16px;
1004
1005
  opacity: 0.6;
1005
1006
  text-align: center;
1006
- pointer-events: none;
1007
1007
  }
1008
1008
  .cxe-numberfield-left-icon:hover {
1009
1009
  opacity: 1;
@@ -1030,6 +1030,11 @@
1030
1030
  }
1031
1031
 
1032
1032
  .cxb-calendar {
1033
+ display: inline-block;
1034
+ vertical-align: middle;
1035
+ width: 18em;
1036
+ overflow-y: auto;
1037
+ box-sizing: border-box;
1033
1038
  line-height: 16px;
1034
1039
  padding: 5px;
1035
1040
  border-width: 1px;
@@ -1046,11 +1051,6 @@
1046
1051
  -ms-appearance: none;
1047
1052
  -moz-appearance: none;
1048
1053
  -webkit-appearance: none;
1049
- display: inline-block;
1050
- vertical-align: middle;
1051
- width: 18em;
1052
- overflow-y: auto;
1053
- box-sizing: border-box;
1054
1054
  }
1055
1055
  .cxb-calendar:focus {
1056
1056
  border-color: rgba(77, 144, 254, 0.8);
@@ -1078,10 +1078,10 @@
1078
1078
  font-weight: 500;
1079
1079
  }
1080
1080
  .cxb-calendar tbody td {
1081
+ user-select: none;
1081
1082
  font-size: 13px;
1082
1083
  background-color: transparent;
1083
1084
  border-radius: 0;
1084
- user-select: none;
1085
1085
  }
1086
1086
  .cxb-calendar .cxe-calendar-header {
1087
1087
  font-size: 13px;
@@ -1198,12 +1198,12 @@ th.cxe-calendar-display {
1198
1198
  }
1199
1199
 
1200
1200
  .cxb-lookupfield {
1201
- position: relative;
1202
- display: inline-block;
1203
- box-sizing: border-box;
1204
1201
  cursor: pointer;
1205
1202
  width: 180px;
1206
1203
  font-size: 13px;
1204
+ position: relative;
1205
+ display: inline-block;
1206
+ box-sizing: border-box;
1207
1207
  }
1208
1208
  .cxb-lookupfield.cxs-view-mode {
1209
1209
  line-height: 16px;
@@ -1224,6 +1224,7 @@ th.cxe-calendar-display {
1224
1224
  }
1225
1225
 
1226
1226
  .cxe-lookupfield-input {
1227
+ height: 100%;
1227
1228
  box-sizing: border-box;
1228
1229
  line-height: 16px;
1229
1230
  padding: 5px 24px 5px 5px;
@@ -1241,7 +1242,6 @@ th.cxe-calendar-display {
1241
1242
  -ms-appearance: none;
1242
1243
  -moz-appearance: none;
1243
1244
  -webkit-appearance: none;
1244
- height: 100%;
1245
1245
  }
1246
1246
  .cxe-lookupfield-input:focus {
1247
1247
  border-color: rgba(77, 144, 254, 0.8);
@@ -1450,10 +1450,10 @@ th.cxe-calendar-display {
1450
1450
  opacity: 1;
1451
1451
  }
1452
1452
  .cxs-disabled > .cxe-lookupfield-tool {
1453
+ border-width: 0;
1453
1454
  background: rgb(235, 235, 228);
1454
1455
  color: rgb(84, 84, 84);
1455
1456
  pointer-events: none;
1456
- border-width: 0;
1457
1457
  }
1458
1458
  .cxe-lookupfield-left-icon {
1459
1459
  display: block;
@@ -1653,6 +1653,7 @@ th.cxe-calendar-display {
1653
1653
  border-color: transparent;
1654
1654
  }
1655
1655
  .cxb-select .cxe-select-left-icon {
1656
+ pointer-events: none;
1656
1657
  display: block;
1657
1658
  position: absolute;
1658
1659
  font-size: 16px;
@@ -1664,7 +1665,6 @@ th.cxe-calendar-display {
1664
1665
  line-height: 16px;
1665
1666
  opacity: 0.6;
1666
1667
  text-align: center;
1667
- pointer-events: none;
1668
1668
  }
1669
1669
  .cxb-select .cxe-select-left-icon:hover {
1670
1670
  opacity: 1;
@@ -1762,6 +1762,7 @@ th.cxe-calendar-display {
1762
1762
  }
1763
1763
 
1764
1764
  .cxe-select-tool {
1765
+ pointer-events: none;
1765
1766
  display: block;
1766
1767
  position: absolute;
1767
1768
  font-size: 16px;
@@ -1774,16 +1775,15 @@ th.cxe-calendar-display {
1774
1775
  opacity: 0.6;
1775
1776
  text-align: center;
1776
1777
  cursor: pointer;
1777
- pointer-events: none;
1778
1778
  }
1779
1779
  .cxe-select-tool:hover {
1780
1780
  opacity: 1;
1781
1781
  }
1782
1782
  .cxs-disabled > .cxe-select-tool {
1783
+ border-width: 0;
1783
1784
  background: rgb(235, 235, 228);
1784
1785
  color: rgb(84, 84, 84);
1785
1786
  pointer-events: none;
1786
- border-width: 0;
1787
1787
  }
1788
1788
  .cxe-select-icon {
1789
1789
  display: block;
@@ -1799,11 +1799,11 @@ th.cxe-calendar-display {
1799
1799
  }
1800
1800
 
1801
1801
  .cxb-textarea {
1802
+ line-height: 0;
1803
+ width: 300px;
1802
1804
  position: relative;
1803
1805
  display: inline-block;
1804
1806
  box-sizing: border-box;
1805
- line-height: 0;
1806
- width: 300px;
1807
1807
  }
1808
1808
  .cxb-textarea.cxs-view-mode {
1809
1809
  line-height: normal;
@@ -1814,6 +1814,8 @@ th.cxe-calendar-display {
1814
1814
  }
1815
1815
 
1816
1816
  .cxe-textarea-input {
1817
+ width: 100%;
1818
+ height: 100%;
1817
1819
  box-sizing: border-box;
1818
1820
  line-height: normal;
1819
1821
  padding: 5px;
@@ -1831,8 +1833,6 @@ th.cxe-calendar-display {
1831
1833
  -ms-appearance: none;
1832
1834
  -moz-appearance: none;
1833
1835
  -webkit-appearance: none;
1834
- width: 100%;
1835
- height: 100%;
1836
1836
  }
1837
1837
  .cxe-textarea-input:focus {
1838
1838
  border-color: rgba(77, 144, 254, 0.8);
@@ -1886,6 +1886,7 @@ th.cxe-calendar-display {
1886
1886
  }
1887
1887
 
1888
1888
  .cxb-checkbox {
1889
+ min-width: 14px;
1889
1890
  position: relative;
1890
1891
  display: inline-block;
1891
1892
  box-sizing: border-box;
@@ -1895,7 +1896,6 @@ th.cxe-calendar-display {
1895
1896
  border-style: solid;
1896
1897
  border-color: transparent;
1897
1898
  font-size: 13px;
1898
- min-width: 14px;
1899
1899
  }
1900
1900
  .cxb-checkbox.cxs-view-mode {
1901
1901
  line-height: 16px;
@@ -1944,6 +1944,12 @@ th.cxe-calendar-display {
1944
1944
  }
1945
1945
 
1946
1946
  .cxe-checkbox-input {
1947
+ width: 14px;
1948
+ height: 14px;
1949
+ top: calc(50% - 7px);
1950
+ left: 0;
1951
+ display: inline-block;
1952
+ position: absolute;
1947
1953
  box-sizing: border-box;
1948
1954
  line-height: 16px;
1949
1955
  padding: 0;
@@ -1962,12 +1968,6 @@ th.cxe-calendar-display {
1962
1968
  -moz-appearance: none;
1963
1969
  -webkit-appearance: none;
1964
1970
  margin: 0 !important;
1965
- width: 14px;
1966
- height: 14px;
1967
- top: calc(50% - 7px);
1968
- left: 0;
1969
- display: inline-block;
1970
- position: absolute;
1971
1971
  }
1972
1972
  .cxe-checkbox-input:focus {
1973
1973
  border-color: rgba(77, 144, 254, 0.8);
@@ -2001,6 +2001,7 @@ th.cxe-calendar-display {
2001
2001
  }
2002
2002
 
2003
2003
  .cxb-radio {
2004
+ min-width: 14px;
2004
2005
  position: relative;
2005
2006
  display: inline-block;
2006
2007
  box-sizing: border-box;
@@ -2010,7 +2011,6 @@ th.cxe-calendar-display {
2010
2011
  border-style: solid;
2011
2012
  border-color: transparent;
2012
2013
  font-size: 13px;
2013
- min-width: 14px;
2014
2014
  }
2015
2015
  .cxb-radio.cxs-view-mode {
2016
2016
  line-height: 16px;
@@ -2052,6 +2052,14 @@ th.cxe-calendar-display {
2052
2052
  }
2053
2053
 
2054
2054
  .cxe-radio-input {
2055
+ width: 14px;
2056
+ height: 14px;
2057
+ top: calc(50% - 7px);
2058
+ left: 0;
2059
+ display: inline-block;
2060
+ position: absolute;
2061
+ border-radius: 50%;
2062
+ opacity: 1;
2055
2063
  box-sizing: border-box;
2056
2064
  line-height: 16px;
2057
2065
  padding: 0;
@@ -2070,14 +2078,6 @@ th.cxe-calendar-display {
2070
2078
  -moz-appearance: none;
2071
2079
  -webkit-appearance: none;
2072
2080
  margin: 0 !important;
2073
- width: 14px;
2074
- height: 14px;
2075
- top: calc(50% - 7px);
2076
- left: 0;
2077
- display: inline-block;
2078
- position: absolute;
2079
- border-radius: 50%;
2080
- opacity: 1;
2081
2081
  }
2082
2082
  .cxe-radio-input:focus {
2083
2083
  border-color: rgba(77, 144, 254, 0.8);
@@ -2111,6 +2111,8 @@ th.cxe-calendar-display {
2111
2111
  }
2112
2112
 
2113
2113
  .cxb-colorpicker {
2114
+ display: inline-flex;
2115
+ flex-direction: column;
2114
2116
  line-height: 16px;
2115
2117
  padding: 4px;
2116
2118
  border-width: 1px;
@@ -2127,8 +2129,6 @@ th.cxe-calendar-display {
2127
2129
  -ms-appearance: none;
2128
2130
  -moz-appearance: none;
2129
2131
  -webkit-appearance: none;
2130
- display: inline-flex;
2131
- flex-direction: column;
2132
2132
  }
2133
2133
  @media screen and (min-width: 500px) {
2134
2134
  .cxb-colorpicker {
@@ -2405,6 +2405,11 @@ th.cxe-calendar-display {
2405
2405
  opacity: 1;
2406
2406
  }
2407
2407
  .cxe-colorfield-left-icon {
2408
+ box-sizing: border-box;
2409
+ opacity: 1;
2410
+ background-image: linear-gradient(45deg, rgba(128, 128, 128, 0.5) 25%, transparent 25%), linear-gradient(-45deg, rgba(128, 128, 128, 0.5) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(128, 128, 128, 0.5) 75%), linear-gradient(-45deg, transparent 75%, rgba(128, 128, 128, 0.5) 75%);
2411
+ background-size: 8px 8px;
2412
+ background-position: 0 0, 0 4px, 4px -4px, -4px 0px;
2408
2413
  display: block;
2409
2414
  position: absolute;
2410
2415
  font-size: 16px;
@@ -2417,11 +2422,6 @@ th.cxe-calendar-display {
2417
2422
  opacity: 0.6;
2418
2423
  text-align: center;
2419
2424
  cursor: pointer;
2420
- background-image: linear-gradient(45deg, rgba(128, 128, 128, 0.5) 25%, transparent 25%), linear-gradient(-45deg, rgba(128, 128, 128, 0.5) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(128, 128, 128, 0.5) 75%), linear-gradient(-45deg, transparent 75%, rgba(128, 128, 128, 0.5) 75%);
2421
- background-size: 8px 8px;
2422
- background-position: 0 0, 0 4px, 4px -4px, -4px 0px;
2423
- box-sizing: border-box;
2424
- opacity: 1;
2425
2425
  }
2426
2426
  .cxe-colorfield-left-icon:hover {
2427
2427
  opacity: 1;
@@ -2449,6 +2449,15 @@ th.cxe-calendar-display {
2449
2449
  }
2450
2450
 
2451
2451
  .cxb-monthpicker {
2452
+ overflow-y: scroll;
2453
+ overflow-x: hidden;
2454
+ min-height: 10em;
2455
+ max-height: 30em;
2456
+ height: 100%;
2457
+ position: relative;
2458
+ width: 23em;
2459
+ overflow-anchor: none;
2460
+ touch-action: pan-y;
2452
2461
  box-sizing: border-box;
2453
2462
  line-height: 16px;
2454
2463
  padding: 5px;
@@ -2466,15 +2475,6 @@ th.cxe-calendar-display {
2466
2475
  -ms-appearance: none;
2467
2476
  -moz-appearance: none;
2468
2477
  -webkit-appearance: none;
2469
- overflow-y: scroll;
2470
- overflow-x: hidden;
2471
- min-height: 10em;
2472
- max-height: 30em;
2473
- height: 100%;
2474
- position: relative;
2475
- width: 23em;
2476
- overflow-anchor: none;
2477
- touch-action: pan-y;
2478
2478
  }
2479
2479
  .cxb-monthpicker:focus {
2480
2480
  border-color: rgba(77, 144, 254, 0.8);
@@ -2497,14 +2497,17 @@ th.cxe-calendar-display {
2497
2497
  width: 100%;
2498
2498
  font-size: 0.9em;
2499
2499
  }
2500
- .cxb-monthpicker th, .cxb-monthpicker td {
2500
+ .cxb-monthpicker th,
2501
+ .cxb-monthpicker td {
2501
2502
  border-top: 1px solid rgba(191, 191, 191, 0.5);
2502
2503
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
2503
2504
  }
2504
- .cxb-monthpicker tbody:not(:first-child) tr:first-child th, .cxb-monthpicker tbody:not(:first-child) tr:first-child td {
2505
+ .cxb-monthpicker tbody:not(:first-child) tr:first-child th,
2506
+ .cxb-monthpicker tbody:not(:first-child) tr:first-child td {
2505
2507
  border-top: 1px solid #bfbfbf;
2506
2508
  }
2507
- .cxb-monthpicker th, .cxb-monthpicker td {
2509
+ .cxb-monthpicker th,
2510
+ .cxb-monthpicker td {
2508
2511
  text-align: center;
2509
2512
  font-size: smaller;
2510
2513
  font-weight: normal;
@@ -2535,13 +2538,14 @@ th.cxe-calendar-display {
2535
2538
  pointer-events: none;
2536
2539
  }
2537
2540
  .cxb-monthpicker td.cxs-selected {
2538
- background-color: rgba(123, 190, 255, 0.4);
2539
2541
  border-color: transparent;
2542
+ background-color: rgba(123, 190, 255, 0.4);
2540
2543
  }
2541
2544
  .cxb-monthpicker td.cxs-selected:hover {
2542
2545
  background-color: rgba(123, 190, 255, 0.2);
2543
2546
  }
2544
- .cxb-monthpicker td.cxs-cursor, .cxb-monthpicker th.cxs-cursor {
2547
+ .cxb-monthpicker td.cxs-cursor,
2548
+ .cxb-monthpicker th.cxs-cursor {
2545
2549
  background-color: rgba(128, 128, 128, 0.1);
2546
2550
  outline: none;
2547
2551
  cursor: pointer;
@@ -2549,7 +2553,8 @@ th.cxe-calendar-display {
2549
2553
  .cxb-monthpicker:focus td.cxs-selected {
2550
2554
  background-color: rgba(123, 190, 255, 0.4);
2551
2555
  }
2552
- .cxb-monthpicker:focus td.cxs-cursor, .cxb-monthpicker:focus th.cxs-cursor {
2556
+ .cxb-monthpicker:focus td.cxs-cursor,
2557
+ .cxb-monthpicker:focus th.cxs-cursor {
2553
2558
  background-color: rgba(123, 190, 255, 0.3);
2554
2559
  outline: none;
2555
2560
  }
@@ -2857,6 +2862,8 @@ th.cxe-calendar-display {
2857
2862
  }
2858
2863
 
2859
2864
  .cxb-slider {
2865
+ width: 180px;
2866
+ user-select: none;
2860
2867
  position: relative;
2861
2868
  display: inline-block;
2862
2869
  box-sizing: border-box;
@@ -2866,8 +2873,6 @@ th.cxe-calendar-display {
2866
2873
  border-style: solid;
2867
2874
  border-color: transparent;
2868
2875
  font-size: 13px;
2869
- width: 180px;
2870
- user-select: none;
2871
2876
  }
2872
2877
  .cxb-slider.cxs-view-mode {
2873
2878
  line-height: 16px;
@@ -2968,6 +2973,9 @@ th.cxe-calendar-display {
2968
2973
  }
2969
2974
 
2970
2975
  .cxb-switch {
2976
+ cursor: pointer;
2977
+ min-width: 50px;
2978
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
2971
2979
  position: relative;
2972
2980
  display: inline-block;
2973
2981
  box-sizing: border-box;
@@ -2977,9 +2985,6 @@ th.cxe-calendar-display {
2977
2985
  border-style: solid;
2978
2986
  border-color: transparent;
2979
2987
  font-size: 13px;
2980
- cursor: pointer;
2981
- min-width: 50px;
2982
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
2983
2988
  }
2984
2989
  .cxb-switch.cxs-view-mode {
2985
2990
  line-height: 16px;
package/dist/widgets.js CHANGED
@@ -141,45 +141,41 @@ import { HtmlElement as HtmlElement$1 } from "cx/widgets";
141
141
  import { parseStyle as parseStyle$1 } from "cx/src/util/parseStyle";
142
142
 
143
143
  function _extends() {
144
- _extends = Object.assign
145
- ? Object.assign.bind()
146
- : function (target) {
147
- for (var i = 1; i < arguments.length; i++) {
148
- var source = arguments[i];
149
- for (var key in source) {
150
- if (Object.prototype.hasOwnProperty.call(source, key)) {
151
- target[key] = source[key];
152
- }
144
+ return (
145
+ (_extends = Object.assign
146
+ ? Object.assign.bind()
147
+ : function (n) {
148
+ for (var e = 1; e < arguments.length; e++) {
149
+ var t = arguments[e];
150
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
153
151
  }
154
- }
155
- return target;
156
- };
157
- return _extends.apply(this, arguments);
158
- }
159
- function _inheritsLoose(subClass, superClass) {
160
- subClass.prototype = Object.create(superClass.prototype);
161
- subClass.prototype.constructor = subClass;
162
- _setPrototypeOf(subClass, superClass);
152
+ return n;
153
+ }),
154
+ _extends.apply(null, arguments)
155
+ );
163
156
  }
164
- function _setPrototypeOf(o, p) {
165
- _setPrototypeOf = Object.setPrototypeOf
166
- ? Object.setPrototypeOf.bind()
167
- : function _setPrototypeOf(o, p) {
168
- o.__proto__ = p;
169
- return o;
170
- };
171
- return _setPrototypeOf(o, p);
157
+ function _inheritsLoose(t, o) {
158
+ (t.prototype = Object.create(o.prototype)), (t.prototype.constructor = t), _setPrototypeOf(t, o);
172
159
  }
173
- function _objectWithoutPropertiesLoose(source, excluded) {
174
- if (source == null) return {};
175
- var target = {};
176
- for (var key in source) {
177
- if (Object.prototype.hasOwnProperty.call(source, key)) {
178
- if (excluded.indexOf(key) >= 0) continue;
179
- target[key] = source[key];
160
+ function _objectWithoutPropertiesLoose(r, e) {
161
+ if (null == r) return {};
162
+ var t = {};
163
+ for (var n in r)
164
+ if ({}.hasOwnProperty.call(r, n)) {
165
+ if (e.includes(n)) continue;
166
+ t[n] = r[n];
180
167
  }
181
- }
182
- return target;
168
+ return t;
169
+ }
170
+ function _setPrototypeOf(t, e) {
171
+ return (
172
+ (_setPrototypeOf = Object.setPrototypeOf
173
+ ? Object.setPrototypeOf.bind()
174
+ : function (t, e) {
175
+ return (t.__proto__ = e), t;
176
+ }),
177
+ _setPrototypeOf(t, e)
178
+ );
183
179
  }
184
180
 
185
181
  var impl$1 = false;
@@ -2219,7 +2215,7 @@ function captureMouse2(e, _ref) {
2219
2215
  }
2220
2216
  function doubleClick(e) {
2221
2217
  try {
2222
- onDblClick(e);
2218
+ onDblClick && onDblClick(e);
2223
2219
  } finally {
2224
2220
  tear();
2225
2221
  }
@@ -2271,16 +2267,16 @@ function captureMouseOrTouch2(e, _ref2) {
2271
2267
  e.preventDefault();
2272
2268
  });
2273
2269
  };
2274
- var end = function end(e) {
2270
+ var _end = function end(e) {
2275
2271
  batchUpdates(function () {
2276
2272
  el.removeEventListener("touchmove", move);
2277
- el.removeEventListener("touchend", end);
2273
+ el.removeEventListener("touchend", _end);
2278
2274
  if (onMouseUp) onMouseUp(e);
2279
2275
  e.preventDefault();
2280
2276
  });
2281
2277
  };
2282
2278
  el.addEventListener("touchmove", move);
2283
- el.addEventListener("touchend", end);
2279
+ el.addEventListener("touchend", _end);
2284
2280
  e.stopPropagation();
2285
2281
  } else
2286
2282
  captureMouse2(e, {
@@ -2721,7 +2717,7 @@ function notifyDragMove(e, captureData) {
2721
2717
  }
2722
2718
  if (scrollY || scrollX) {
2723
2719
  if (!scrollTimer) {
2724
- var cb = function cb() {
2720
+ var _cb = function cb() {
2725
2721
  if (scrollY) {
2726
2722
  var current = vscrollParent.scrollTop;
2727
2723
  var next = Math.min(
@@ -2738,9 +2734,9 @@ function notifyDragMove(e, captureData) {
2738
2734
  ); //60 FPS
2739
2735
  hscrollParent.scrollLeft = _next;
2740
2736
  }
2741
- scrollTimer = requestAnimationFrame(cb);
2737
+ scrollTimer = requestAnimationFrame(_cb);
2742
2738
  };
2743
- scrollTimer = requestAnimationFrame(cb);
2739
+ scrollTimer = requestAnimationFrame(_cb);
2744
2740
  }
2745
2741
  } else {
2746
2742
  clearScrollTimer();
@@ -4220,7 +4216,7 @@ function getTooltipInstance(e, parentInstance, tooltip, options) {
4220
4216
  if (
4221
4217
  tooltipInstance &&
4222
4218
  (tooltipInstance.widget.relatedElement != target ||
4223
- tooltipInstance.config != tooltip ||
4219
+ !shallowEquals(tooltipInstance.config, tooltip) ||
4224
4220
  tooltipInstance.store.store != parentInstance.store)
4225
4221
  ) {
4226
4222
  if (tooltipInstance.dismissTooltip) tooltipInstance.dismissTooltip();
@@ -4246,6 +4242,7 @@ function getTooltipInstance(e, parentInstance, tooltip, options) {
4246
4242
  });
4247
4243
  tooltipInstance = parentInstance.tooltips[name] = parentInstance.getDetachedChild(tooltipWidget, name, store);
4248
4244
  tooltipInstance.config = tooltip;
4245
+ tooltipInstance.tooltipName = name;
4249
4246
  if (tooltip.alwaysVisible || tooltip.trackMouse || tooltip.trackMouseX || tooltip.trackMouseY) {
4250
4247
  tooltipInstance.init(new RenderingContext());
4251
4248
  tooltipInstance.data = tooltipInstance.dataSelector(store);
@@ -4272,6 +4269,8 @@ function tooltipMouseMove(e, parentInstance, tooltip, options) {
4272
4269
  dismiss();
4273
4270
  });
4274
4271
  instance.dismissTooltip = function () {
4272
+ if (instance.parent.tooltips[instance.tooltipName] === instance)
4273
+ delete instance.parent.tooltips[instance.tooltipName];
4275
4274
  unsubscribeDismiss();
4276
4275
  dismiss();
4277
4276
  };
@@ -4295,7 +4294,9 @@ function tooltipMouseMove(e, parentInstance, tooltip, options) {
4295
4294
  }
4296
4295
  function tooltipMouseLeave(e, parentInstance, tooltip, options) {
4297
4296
  var instance = getTooltipInstance(e, parentInstance, tooltip, options);
4298
- if (instance) {
4297
+
4298
+ // do not process leave events twice even if called multiple times
4299
+ if (instance && instance.mouseOverTarget) {
4299
4300
  instance.mouseOverTarget = false;
4300
4301
  instance.widget.handleMouseLeavesParent(instance);
4301
4302
  }
@@ -4872,20 +4873,24 @@ var FlyweightTooltipTracker = /*#__PURE__*/ (function (_Widget) {
4872
4873
  };
4873
4874
  _proto.handleMouseMove = function handleMouseMove(e, instance) {
4874
4875
  if (!this.onGetTooltip) return;
4875
- if (instance.lastTarget != e.target) {
4876
- instance.lastTarget = e.target;
4877
- var tooltip = null;
4878
- instance.parentEl = closest(e.target, function (element) {
4879
- tooltip = instance.invoke("onGetTooltip", element, instance);
4880
- if (tooltip) return true;
4876
+ var parentEl, tooltip;
4877
+ if (instance.lastTarget == e.target) return;
4878
+ instance.lastTarget = e.target;
4879
+ parentEl = closest(e.target, function (element) {
4880
+ tooltip = instance.invoke("onGetTooltip", element, instance);
4881
+ if (tooltip) return true;
4882
+ });
4883
+ if (!parentEl)
4884
+ tooltipMouseLeave$1(e, instance, instance.tooltip, {
4885
+ target: instance.parentEl,
4881
4886
  });
4887
+ else {
4882
4888
  instance.tooltip = tooltip;
4883
- }
4884
- if (!instance.parentEl) tooltipMouseMove$1(e, instance, null);
4885
- else
4889
+ instance.parentEl = parentEl;
4886
4890
  tooltipMouseMove$1(e, instance, instance.tooltip, {
4887
- target: instance.parentEl,
4891
+ target: parentEl,
4888
4892
  });
4893
+ }
4889
4894
  };
4890
4895
  return FlyweightTooltipTracker;
4891
4896
  })(Widget);
@@ -13885,7 +13890,7 @@ var WheelComponent = /*#__PURE__*/ (function (_VDOM$Component) {
13885
13890
  _proto2.scrollTo = function scrollTo() {
13886
13891
  var _this4 = this;
13887
13892
  var size = this.props.size;
13888
- var callback = function callback() {
13893
+ var _callback = function callback() {
13889
13894
  if (!_this4.scrolling) return;
13890
13895
  var x = (_this4.index * _this4.state.wheelHeight) / size;
13891
13896
  var delta = Math.round(x - _this4.scrollEl.scrollTop);
@@ -13897,11 +13902,11 @@ var WheelComponent = /*#__PURE__*/ (function (_VDOM$Component) {
13897
13902
  delta = Math.abs(delta) / 10;
13898
13903
  if (delta < 1) delta = 1;
13899
13904
  _this4.scrollEl.scrollTop += sign * delta;
13900
- requestAnimationFrame(callback);
13905
+ requestAnimationFrame(_callback);
13901
13906
  };
13902
13907
  if (!this.scrolling) {
13903
13908
  this.scrolling = true;
13904
- requestAnimationFrame(callback);
13909
+ requestAnimationFrame(_callback);
13905
13910
  }
13906
13911
  };
13907
13912
  return WheelComponent;