@jetbrains/ring-ui-built 6.0.31 → 6.0.32

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 (225) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +1 -567
  2. package/components/_helpers/anchor.js +7 -6
  3. package/components/_helpers/button__classes.js +16 -14
  4. package/components/_helpers/caption.js +14 -20
  5. package/components/_helpers/card.js +95 -105
  6. package/components/_helpers/dialog__body-scroll-preventer.js +11 -19
  7. package/components/_helpers/icon__svg.js +22 -25
  8. package/components/_helpers/input.js +146 -177
  9. package/components/_helpers/query-assist__suggestions.js +74 -90
  10. package/components/_helpers/select__filter.js +48 -69
  11. package/components/_helpers/services-link.js +29 -37
  12. package/components/_helpers/sidebar.js +99 -107
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +31 -40
  15. package/components/_helpers/title.js +57 -72
  16. package/components/alert/alert.js +150 -202
  17. package/components/alert/container.js +32 -41
  18. package/components/alert-service/alert-service.js +105 -170
  19. package/components/analytics/analytics.js +12 -22
  20. package/components/analytics/analytics__custom-plugin.js +54 -75
  21. package/components/auth/auth.js +4 -36
  22. package/components/auth/auth__core.js +746 -1471
  23. package/components/auth/background-flow.js +87 -127
  24. package/components/auth/down-notification.js +30 -73
  25. package/components/auth/iframe-flow.js +75 -133
  26. package/components/auth/request-builder.js +46 -82
  27. package/components/auth/response-parser.js +86 -116
  28. package/components/auth/storage.js +171 -334
  29. package/components/auth/token-validator.js +137 -242
  30. package/components/auth/window-flow.js +92 -134
  31. package/components/auth-dialog/auth-dialog.js +114 -172
  32. package/components/auth-dialog-service/auth-dialog-service.js +8 -31
  33. package/components/avatar/avatar-example-datauri.js +23 -1
  34. package/components/avatar/avatar.js +119 -152
  35. package/components/avatar/fallback-avatar.js +22 -38
  36. package/components/badge/badge.js +35 -45
  37. package/components/button/button.js +86 -107
  38. package/components/button-group/button-group.js +19 -33
  39. package/components/button-set/button-set.js +20 -32
  40. package/components/button-toolbar/button-toolbar.js +19 -31
  41. package/components/caret/caret.js +186 -220
  42. package/components/checkbox/checkbox.js +76 -101
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +35 -132
  45. package/components/code/code.js +92 -166
  46. package/components/collapse/collapse-content.js +42 -64
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +12 -14
  49. package/components/collapse/collapse.js +11 -17
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +1 -3
  52. package/components/confirm/confirm.js +66 -104
  53. package/components/confirm-service/confirm-service.js +37 -59
  54. package/components/content-layout/content-layout.js +43 -64
  55. package/components/content-layout/sidebar.js +0 -1
  56. package/components/contenteditable/contenteditable.js +50 -59
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +129 -182
  59. package/components/data-list/data-list.mock.js +2 -6
  60. package/components/data-list/item.js +143 -170
  61. package/components/data-list/selection.js +76 -136
  62. package/components/data-list/title.js +1 -12
  63. package/components/date-picker/consts.js +19 -26
  64. package/components/date-picker/date-input.js +113 -144
  65. package/components/date-picker/date-picker.js +227 -282
  66. package/components/date-picker/date-popup.js +350 -395
  67. package/components/date-picker/day.js +87 -116
  68. package/components/date-picker/month-names.js +43 -66
  69. package/components/date-picker/month-slider.js +51 -76
  70. package/components/date-picker/month.js +16 -25
  71. package/components/date-picker/months.js +43 -50
  72. package/components/date-picker/weekdays.js +12 -22
  73. package/components/date-picker/years.js +83 -110
  74. package/components/dialog/dialog.js +142 -190
  75. package/components/dialog/dialog__body-scroll-preventer.js +0 -4
  76. package/components/dropdown/anchor.js +0 -9
  77. package/components/dropdown/dropdown.js +182 -213
  78. package/components/dropdown-menu/dropdown-menu.js +71 -97
  79. package/components/editable-heading/editable-heading.js +75 -127
  80. package/components/error-bubble/error-bubble.js +31 -60
  81. package/components/error-message/error-message.js +39 -59
  82. package/components/footer/footer.js +27 -30
  83. package/components/global/compose.js +1 -10
  84. package/components/global/composeRefs.js +7 -12
  85. package/components/global/controls-height.js +2 -2
  86. package/components/global/create-stateful-context.js +15 -15
  87. package/components/global/data-tests.js +6 -14
  88. package/components/global/dom.js +47 -86
  89. package/components/global/focus-sensor-hoc.js +122 -132
  90. package/components/global/fuzzy-highlight.js +22 -36
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +4 -8
  93. package/components/global/inject-styles.js +10 -15
  94. package/components/global/listeners.js +27 -51
  95. package/components/global/memoize.js +6 -12
  96. package/components/global/normalize-indent.js +19 -50
  97. package/components/global/promise-with-timeout.js +6 -8
  98. package/components/global/prop-types.js +3 -5
  99. package/components/global/react-dom-renderer.js +28 -44
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +12 -30
  102. package/components/global/schedule-raf.js +5 -6
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +0 -22
  105. package/components/global/trivial-template-tag.js +3 -10
  106. package/components/global/typescript-utils.js +2 -6
  107. package/components/global/url.js +20 -26
  108. package/components/global/use-event-callback.js +6 -4
  109. package/components/grid/col.js +35 -52
  110. package/components/grid/grid.js +17 -31
  111. package/components/grid/row.js +35 -47
  112. package/components/group/group.js +17 -25
  113. package/components/header/header.js +33 -78
  114. package/components/header/logo.js +20 -36
  115. package/components/header/profile.js +166 -199
  116. package/components/header/services-link.js +0 -4
  117. package/components/header/services.js +73 -116
  118. package/components/header/smart-profile.js +111 -203
  119. package/components/header/smart-services.js +62 -113
  120. package/components/header/tray-icon.js +21 -37
  121. package/components/header/tray.js +21 -32
  122. package/components/heading/heading.js +24 -25
  123. package/components/http/http.d.ts +1 -3
  124. package/components/http/http.js +203 -353
  125. package/components/http/http.mock.js +49 -101
  126. package/components/hub-source/hub-source.js +83 -190
  127. package/components/hub-source/hub-source__user.js +11 -44
  128. package/components/hub-source/hub-source__users-groups.js +37 -65
  129. package/components/i18n/i18n-context.js +7 -10
  130. package/components/i18n/i18n.js +7 -10
  131. package/components/icon/icon.js +76 -93
  132. package/components/icon/icon__svg.js +0 -8
  133. package/components/icon/index.js +0 -8
  134. package/components/input/input.js +0 -13
  135. package/components/island/adaptive-island-hoc.js +30 -43
  136. package/components/island/content.js +115 -132
  137. package/components/island/header.js +57 -70
  138. package/components/island/island.js +28 -40
  139. package/components/island-legacy/content-legacy.js +17 -25
  140. package/components/island-legacy/header-legacy.js +19 -27
  141. package/components/island-legacy/island-legacy.js +17 -25
  142. package/components/link/clickableLink.js +44 -59
  143. package/components/link/link.js +57 -68
  144. package/components/list/consts.js +2 -2
  145. package/components/list/list.js +611 -698
  146. package/components/list/list__custom.js +44 -62
  147. package/components/list/list__hint.js +10 -19
  148. package/components/list/list__item.js +133 -174
  149. package/components/list/list__link.js +37 -50
  150. package/components/list/list__separator.js +14 -24
  151. package/components/list/list__title.js +22 -32
  152. package/components/list/list__users-groups-source.js +54 -126
  153. package/components/loader/loader.js +43 -74
  154. package/components/loader/loader__core.js +198 -263
  155. package/components/loader-inline/loader-inline.js +23 -35
  156. package/components/loader-screen/loader-screen.js +25 -46
  157. package/components/login-dialog/login-dialog.js +111 -158
  158. package/components/login-dialog/service.js +8 -34
  159. package/components/markdown/markdown.js +15 -23
  160. package/components/message/message.js +161 -203
  161. package/components/old-browsers-message/old-browsers-message.js +11 -18
  162. package/components/old-browsers-message/old-browsers-message__stop.js +0 -7
  163. package/components/old-browsers-message/white-list.js +8 -16
  164. package/components/pager/pager.js +212 -271
  165. package/components/panel/panel.js +17 -25
  166. package/components/permissions/permissions.js +127 -172
  167. package/components/permissions/permissions__cache.js +194 -224
  168. package/components/popup/popup.consts.js +1 -1
  169. package/components/popup/popup.js +284 -343
  170. package/components/popup/popup.target.js +9 -8
  171. package/components/popup/position.js +96 -106
  172. package/components/popup-menu/popup-menu.js +44 -80
  173. package/components/progress-bar/progress-bar.js +87 -104
  174. package/components/query-assist/query-assist.js +838 -916
  175. package/components/query-assist/query-assist__suggestions.js +1 -30
  176. package/components/radio/radio.js +19 -34
  177. package/components/radio/radio__item.js +52 -69
  178. package/components/select/select.js +852 -957
  179. package/components/select/select__filter.js +0 -30
  180. package/components/select/select__popup.js +373 -487
  181. package/components/shortcuts/core.js +166 -217
  182. package/components/shortcuts/shortcut-title.js +6 -11
  183. package/components/shortcuts/shortcuts-hoc.js +19 -45
  184. package/components/shortcuts/shortcuts.js +50 -75
  185. package/components/slider/slider.js +99 -122
  186. package/components/slider/slider.utils.js +14 -24
  187. package/components/storage/storage.js +4 -33
  188. package/components/storage/storage__fallback.js +149 -224
  189. package/components/storage/storage__local.js +90 -153
  190. package/components/tab-trap/tab-trap.js +122 -153
  191. package/components/table/cell.js +14 -26
  192. package/components/table/disable-hover-hoc.js +33 -51
  193. package/components/table/header-cell.js +64 -89
  194. package/components/table/header.js +104 -132
  195. package/components/table/multitable.js +107 -125
  196. package/components/table/row-with-focus-sensor.js +25 -69
  197. package/components/table/row.js +175 -216
  198. package/components/table/selection-adapter.js +1 -3
  199. package/components/table/selection-shortcuts-hoc.js +180 -181
  200. package/components/table/selection.js +156 -226
  201. package/components/table/smart-table.js +50 -88
  202. package/components/table/table.js +289 -358
  203. package/components/tabs/collapsible-more.js +46 -79
  204. package/components/tabs/collapsible-tab.js +31 -38
  205. package/components/tabs/collapsible-tabs.js +88 -153
  206. package/components/tabs/custom-item.js +4 -2
  207. package/components/tabs/dumb-tabs.js +74 -117
  208. package/components/tabs/smart-tabs.js +29 -69
  209. package/components/tabs/tab-link.js +1 -5
  210. package/components/tabs/tab.js +19 -31
  211. package/components/tabs/tabs.js +0 -31
  212. package/components/tag/tag.js +133 -173
  213. package/components/tags-input/tags-input.js +329 -427
  214. package/components/tags-list/tags-list.js +57 -78
  215. package/components/text/text.js +28 -39
  216. package/components/toggle/toggle.js +56 -70
  217. package/components/tooltip/tooltip.js +146 -190
  218. package/components/user-agreement/service.js +228 -371
  219. package/components/user-agreement/toolbox.eula.js +160 -1
  220. package/components/user-agreement/user-agreement.js +85 -120
  221. package/components/user-card/card.js +0 -29
  222. package/components/user-card/smart-user-card-tooltip.js +51 -111
  223. package/components/user-card/tooltip.js +47 -84
  224. package/components/user-card/user-card.js +0 -29
  225. package/package.json +1 -1
@@ -1,258 +1,224 @@
1
- import { _ as _defineProperty, b as _createClass, f as _classCallCheck } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.object.to-string.js';
3
- import 'core-js/modules/es.regexp.exec.js';
4
- import 'core-js/modules/es.regexp.to-string.js';
5
- import 'core-js/modules/es.string.replace.js';
6
1
  import { getRect } from '../global/dom.js';
7
- import 'core-js/modules/es.array.filter.js';
8
- import 'core-js/modules/es.array.iterator.js';
9
- import 'core-js/modules/es.object.assign.js';
10
- import 'core-js/modules/es.object.entries.js';
11
- import 'core-js/modules/es.set.js';
12
- import 'core-js/modules/es.string.split.js';
13
- import 'core-js/modules/web.dom-collections.for-each.js';
14
- import 'core-js/modules/web.dom-collections.iterator.js';
15
2
 
16
3
  /**
17
4
  * @name Caret
18
5
  */
19
- var Caret = /*#__PURE__*/function () {
20
- function Caret(target) {
21
- _classCallCheck(this, Caret);
22
- _defineProperty(this, "target", void 0);
6
+ class Caret {
7
+ /**
8
+ * Line endings RegExp
9
+ * @type {RegExp}
10
+ */
11
+ static returnRE = /\r/g;
12
+ /**
13
+ * Line endings normalizer
14
+ * Borrowed from jQuery
15
+ * @see https://github.com/jquery/jquery/blob/master/src/attributes/val.js
16
+ * @param value {*}
17
+ * @return {*}
18
+ */
19
+ static normalizeNewlines(value) {
20
+ return typeof value === 'string' ? value.replace(this.returnRE, '') : value;
21
+ }
22
+ target;
23
+ constructor(target) {
23
24
  this.target = target;
24
25
  }
25
- return _createClass(Caret, [{
26
- key: "isContentEditable",
27
- value: function isContentEditable() {
28
- return this.target.contentEditable === 'true';
26
+ isContentEditable() {
27
+ return this.target.contentEditable === 'true';
28
+ }
29
+ /**
30
+ * Set focus on target if possible
31
+ */
32
+ focus() {
33
+ if (!document.activeElement || document.activeElement !== this.target) {
34
+ this.target.focus();
29
35
  }
30
- /**
31
- * Set focus on target if possible
32
- */
33
- }, {
34
- key: "focus",
35
- value: function focus() {
36
- if (!document.activeElement || document.activeElement !== this.target) {
37
- this.target.focus();
36
+ }
37
+ /**
38
+ * Get absolute caret position index
39
+ * @return {number}
40
+ */
41
+ getAbsolutePosition(node) {
42
+ let _curNode = node;
43
+ let curPos = 0;
44
+ while (_curNode != null && _curNode !== this.target) {
45
+ while (_curNode.previousSibling) {
46
+ var _curNode$previousSibl;
47
+ curPos += (_curNode$previousSibl = _curNode.previousSibling.textContent?.length) !== null && _curNode$previousSibl !== void 0 ? _curNode$previousSibl : 0;
48
+ _curNode = _curNode.previousSibling;
38
49
  }
50
+ _curNode = _curNode.parentNode;
39
51
  }
40
- /**
41
- * Get absolute caret position index
42
- * @return {number}
43
- */
44
- }, {
45
- key: "getAbsolutePosition",
46
- value: function getAbsolutePosition(node) {
47
- var _curNode = node;
48
- var curPos = 0;
49
- while (_curNode != null && _curNode !== this.target) {
50
- while (_curNode.previousSibling) {
51
- var _curNode$previousSibl, _curNode$previousSibl2;
52
- curPos += (_curNode$previousSibl = (_curNode$previousSibl2 = _curNode.previousSibling.textContent) === null || _curNode$previousSibl2 === void 0 ? void 0 : _curNode$previousSibl2.length) !== null && _curNode$previousSibl !== void 0 ? _curNode$previousSibl : 0;
53
- _curNode = _curNode.previousSibling;
54
- }
55
- _curNode = _curNode.parentNode;
52
+ return curPos;
53
+ }
54
+ /**
55
+ * Get caret position index
56
+ * @param {Object} [params]
57
+ * @param {boolean} params.avoidFocus
58
+ * @return {number}
59
+ */
60
+ getPosition() {
61
+ let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
62
+ if (this.isContentEditable()) {
63
+ if (!params.avoidFocus) {
64
+ this.focus();
56
65
  }
57
- return curPos;
58
- }
59
- /**
60
- * Get caret position index
61
- * @param {Object} [params]
62
- * @param {boolean} params.avoidFocus
63
- * @return {number}
64
- */
65
- }, {
66
- key: "getPosition",
67
- value: function getPosition() {
68
- var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
69
- if (this.isContentEditable()) {
70
- if (!params.avoidFocus) {
71
- this.focus();
72
- }
73
- var selection = window.getSelection();
74
- if (!(selection !== null && selection !== void 0 && selection.rangeCount)) {
75
- return 0;
76
- }
77
- var range1 = selection.getRangeAt(0);
78
- var range2 = range1.cloneRange();
79
- range2.selectNodeContents(this.target);
80
- range2.setEnd(range1.endContainer, range1.endOffset);
81
- var _curNode = range1.startContainer;
82
- if (this.target === _curNode) {
83
- return range1.startOffset === 0 || _curNode.textContent == null ? 0 : _curNode.textContent.length;
84
- } else if (!this.target.contains(_curNode)) {
85
- return -1;
86
- } else if (!_curNode) {
87
- return 'selectionStart' in this.target && this.target.selectionStart || -1;
88
- }
89
- var curPos = this.getAbsolutePosition(_curNode);
90
- if (range1.startContainer === range1.endContainer) {
91
- if (range1.startOffset === range1.endOffset) {
92
- return curPos + range1.startOffset;
93
- } else {
94
- return {
95
- startOffset: curPos + range1.startOffset,
96
- endOffset: curPos + range1.endOffset,
97
- position: range2.toString().length
98
- };
99
- }
66
+ const selection = window.getSelection();
67
+ if (!selection?.rangeCount) {
68
+ return 0;
69
+ }
70
+ const range1 = selection.getRangeAt(0);
71
+ const range2 = range1.cloneRange();
72
+ range2.selectNodeContents(this.target);
73
+ range2.setEnd(range1.endContainer, range1.endOffset);
74
+ const _curNode = range1.startContainer;
75
+ if (this.target === _curNode) {
76
+ return range1.startOffset === 0 || _curNode.textContent == null ? 0 : _curNode.textContent.length;
77
+ } else if (!this.target.contains(_curNode)) {
78
+ return -1;
79
+ } else if (!_curNode) {
80
+ return 'selectionStart' in this.target && this.target.selectionStart || -1;
81
+ }
82
+ const curPos = this.getAbsolutePosition(_curNode);
83
+ if (range1.startContainer === range1.endContainer) {
84
+ if (range1.startOffset === range1.endOffset) {
85
+ return curPos + range1.startOffset;
100
86
  } else {
101
- var startOffset = curPos + range1.startOffset;
102
- var endPos = this.getAbsolutePosition(range1.endContainer);
103
- var endOffset = endPos + range1.endOffset;
104
87
  return {
105
- startOffset,
106
- endOffset,
88
+ startOffset: curPos + range1.startOffset,
89
+ endOffset: curPos + range1.endOffset,
107
90
  position: range2.toString().length
108
91
  };
109
92
  }
110
- }
111
- return 'selectionStart' in this.target && this.target.selectionStart || -1;
112
- }
113
- /**
114
- * Get relative position of query
115
- * @param {Node} curNode
116
- * @param {number} position
117
- * @return {{_correctedPosition: number, _curNode: Node}}
118
- */
119
- }, {
120
- key: "getRelativePosition",
121
- value: function getRelativePosition(curNode, position) {
122
- var curPos = 0;
123
- var _curNode = curNode;
124
- var nodeTypeText = 3;
125
- if (!_curNode) {
126
- return {
127
- _curNode: this.target,
128
- _correctedPosition: position
129
- };
130
- }
131
- if (position === 0) {
132
- while (_curNode.nodeType !== nodeTypeText) {
133
- _curNode = _curNode.childNodes[0];
134
- }
135
- var _correctedPosition2 = position;
93
+ } else {
94
+ const startOffset = curPos + range1.startOffset;
95
+ const endPos = this.getAbsolutePosition(range1.endContainer);
96
+ const endOffset = endPos + range1.endOffset;
136
97
  return {
137
- _curNode,
138
- _correctedPosition: _correctedPosition2
98
+ startOffset,
99
+ endOffset,
100
+ position: range2.toString().length
139
101
  };
140
102
  }
141
- var i = -1;
142
- if (_curNode && _curNode.nodeType !== undefined) {
143
- while (curPos < position && _curNode.nodeType !== nodeTypeText) {
144
- i++;
145
- if (_curNode.childNodes[i] != null) {
146
- var _curNode$childNodes$i, _curNode$childNodes$i2;
147
- curPos += (_curNode$childNodes$i = (_curNode$childNodes$i2 = _curNode.childNodes[i].textContent) === null || _curNode$childNodes$i2 === void 0 ? void 0 : _curNode$childNodes$i2.length) !== null && _curNode$childNodes$i !== void 0 ? _curNode$childNodes$i : 0;
148
- if (curPos >= position) {
149
- var _curNode$textContent$, _curNode$textContent;
150
- _curNode = _curNode.childNodes[i];
151
- curPos -= (_curNode$textContent$ = (_curNode$textContent = _curNode.textContent) === null || _curNode$textContent === void 0 ? void 0 : _curNode$textContent.length) !== null && _curNode$textContent$ !== void 0 ? _curNode$textContent$ : 0;
152
- i = -1;
153
- }
154
- } else {
155
- break;
156
- }
157
- }
103
+ }
104
+ return 'selectionStart' in this.target && this.target.selectionStart || -1;
105
+ }
106
+ /**
107
+ * Get relative position of query
108
+ * @param {Node} curNode
109
+ * @param {number} position
110
+ * @return {{_correctedPosition: number, _curNode: Node}}
111
+ */
112
+ getRelativePosition(curNode, position) {
113
+ let curPos = 0;
114
+ let _curNode = curNode;
115
+ const nodeTypeText = 3;
116
+ if (!_curNode) {
117
+ return {
118
+ _curNode: this.target,
119
+ _correctedPosition: position
120
+ };
121
+ }
122
+ if (position === 0) {
123
+ while (_curNode.nodeType !== nodeTypeText) {
124
+ _curNode = _curNode.childNodes[0];
158
125
  }
159
- var _correctedPosition = position - curPos;
126
+ const _correctedPosition = position;
160
127
  return {
161
128
  _curNode,
162
129
  _correctedPosition
163
130
  };
164
131
  }
165
- /**
166
- * Set caret position index
167
- * @param {number} position
168
- * @return {number}
169
- */
170
- }, {
171
- key: "setPosition",
172
- value: function setPosition(position) {
173
- var isContentEditable = this.isContentEditable();
174
- var correctedPosition;
175
- var curNode = this.target && this.target.childNodes[0];
176
- if (position !== undefined) {
177
- if (typeof position === 'object') {
178
- var range = new Range();
179
- var start = this.getRelativePosition(curNode, position.startOffset);
180
- range.setStart(start._curNode, start._correctedPosition);
181
- var end = this.getRelativePosition(curNode, position.endOffset);
182
- range.setEnd(end._curNode, end._correctedPosition);
183
- correctedPosition = range;
184
- } else if (position === -1) {
185
- var _value$length;
186
- var value = isContentEditable ? this.target.textContent : Caret.normalizeNewlines('value' in this.target ? this.target.value : undefined);
187
- correctedPosition = (_value$length = value === null || value === void 0 ? void 0 : value.length) !== null && _value$length !== void 0 ? _value$length : 0;
132
+ let i = -1;
133
+ if (_curNode && _curNode.nodeType !== undefined) {
134
+ while (curPos < position && _curNode.nodeType !== nodeTypeText) {
135
+ i++;
136
+ if (_curNode.childNodes[i] != null) {
137
+ var _curNode$childNodes$i;
138
+ curPos += (_curNode$childNodes$i = _curNode.childNodes[i].textContent?.length) !== null && _curNode$childNodes$i !== void 0 ? _curNode$childNodes$i : 0;
139
+ if (curPos >= position) {
140
+ var _curNode$textContent$;
141
+ _curNode = _curNode.childNodes[i];
142
+ curPos -= (_curNode$textContent$ = _curNode.textContent?.length) !== null && _curNode$textContent$ !== void 0 ? _curNode$textContent$ : 0;
143
+ i = -1;
144
+ }
188
145
  } else {
189
- var _this$getRelativePosi = this.getRelativePosition(curNode, position),
190
- _curNode = _this$getRelativePosi._curNode,
191
- _correctedPosition = _this$getRelativePosi._correctedPosition;
192
- curNode = _curNode;
193
- correctedPosition = _correctedPosition;
146
+ break;
194
147
  }
195
148
  }
196
- if (isContentEditable) {
197
- this.focus();
198
- try {
199
- if (correctedPosition instanceof Range) {
200
- var _window$getSelection, _window$getSelection2;
201
- (_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 || _window$getSelection.removeAllRanges();
202
- (_window$getSelection2 = window.getSelection()) === null || _window$getSelection2 === void 0 || _window$getSelection2.addRange(correctedPosition);
203
- } else {
204
- var _window$getSelection3;
205
- (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 || _window$getSelection3.collapse(curNode || this.target, correctedPosition);
206
- }
207
- } catch (e) {
208
- // Do nothing
209
- }
210
- } else if ('setSelectionRange' in this.target && typeof correctedPosition === 'number') {
211
- this.target.setSelectionRange(correctedPosition, correctedPosition);
149
+ }
150
+ const _correctedPosition = position - curPos;
151
+ return {
152
+ _curNode,
153
+ _correctedPosition
154
+ };
155
+ }
156
+ /**
157
+ * Set caret position index
158
+ * @param {number} position
159
+ * @return {number}
160
+ */
161
+ setPosition(position) {
162
+ const isContentEditable = this.isContentEditable();
163
+ let correctedPosition;
164
+ let curNode = this.target && this.target.childNodes[0];
165
+ if (position !== undefined) {
166
+ if (typeof position === 'object') {
167
+ const range = new Range();
168
+ const start = this.getRelativePosition(curNode, position.startOffset);
169
+ range.setStart(start._curNode, start._correctedPosition);
170
+ const end = this.getRelativePosition(curNode, position.endOffset);
171
+ range.setEnd(end._curNode, end._correctedPosition);
172
+ correctedPosition = range;
173
+ } else if (position === -1) {
174
+ var _value$length;
175
+ const value = isContentEditable ? this.target.textContent : Caret.normalizeNewlines('value' in this.target ? this.target.value : undefined);
176
+ correctedPosition = (_value$length = value?.length) !== null && _value$length !== void 0 ? _value$length : 0;
177
+ } else {
178
+ const {
179
+ _curNode,
180
+ _correctedPosition
181
+ } = this.getRelativePosition(curNode, position);
182
+ curNode = _curNode;
183
+ correctedPosition = _correctedPosition;
212
184
  }
213
- return correctedPosition;
214
185
  }
215
- /**
216
- * Get caret position in pixels
217
- * @return {number}
218
- */
219
- }, {
220
- key: "getOffset",
221
- value: function getOffset() {
222
- var offset = 0;
223
- var range;
186
+ if (isContentEditable) {
187
+ this.focus();
224
188
  try {
225
- var _window$getSelection4, _range;
226
- // Both statements may throw
227
- range = (_window$getSelection4 = window.getSelection()) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.getRangeAt(0).cloneRange();
228
- (_range = range) === null || _range === void 0 || _range.setStart(range.startContainer, range.startOffset - 1);
189
+ if (correctedPosition instanceof Range) {
190
+ window.getSelection()?.removeAllRanges();
191
+ window.getSelection()?.addRange(correctedPosition);
192
+ } else {
193
+ window.getSelection()?.collapse(curNode || this.target, correctedPosition);
194
+ }
229
195
  } catch (e) {
230
- return offset;
231
- }
232
- if (range && range.endOffset !== 0 && range.toString() !== '') {
233
- offset = getRect(range).right - getRect(this.target).left - (range.startContainer instanceof HTMLElement && range.startContainer.offsetLeft || 0);
196
+ // Do nothing
234
197
  }
198
+ } else if ('setSelectionRange' in this.target && typeof correctedPosition === 'number') {
199
+ this.target.setSelectionRange(correctedPosition, correctedPosition);
200
+ }
201
+ return correctedPosition;
202
+ }
203
+ /**
204
+ * Get caret position in pixels
205
+ * @return {number}
206
+ */
207
+ getOffset() {
208
+ let offset = 0;
209
+ let range;
210
+ try {
211
+ // Both statements may throw
212
+ range = window.getSelection()?.getRangeAt(0).cloneRange();
213
+ range?.setStart(range.startContainer, range.startOffset - 1);
214
+ } catch (e) {
235
215
  return offset;
236
216
  }
237
- }], [{
238
- key: "normalizeNewlines",
239
- value:
240
- /**
241
- * Line endings normalizer
242
- * Borrowed from jQuery
243
- * @see https://github.com/jquery/jquery/blob/master/src/attributes/val.js
244
- * @param value {*}
245
- * @return {*}
246
- */
247
- function normalizeNewlines(value) {
248
- return typeof value === 'string' ? value.replace(this.returnRE, '') : value;
217
+ if (range && range.endOffset !== 0 && range.toString() !== '') {
218
+ offset = getRect(range).right - getRect(this.target).left - (range.startContainer instanceof HTMLElement && range.startContainer.offsetLeft || 0);
249
219
  }
250
- }]);
251
- }();
252
- /**
253
- * Line endings RegExp
254
- * @type {RegExp}
255
- */
256
- _defineProperty(Caret, "returnRE", /\r/g);
220
+ return offset;
221
+ }
222
+ }
257
223
 
258
224
  export { Caret as default };
@@ -1,5 +1,4 @@
1
- import { _ as _defineProperty, a as _inherits, b as _createClass, c as _objectWithoutProperties, e as _extends, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import 'core-js/modules/es.array.concat.js';
1
+ import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
3
2
  import React, { PureComponent } from 'react';
4
3
  import PropTypes from 'prop-types';
5
4
  import classNames from 'classnames';
@@ -11,118 +10,94 @@ import composeRefs from '../global/composeRefs.js';
11
10
  import 'util-deprecate';
12
11
  import '../icon/icon__constants.js';
13
12
  import '../_helpers/icon__svg.js';
14
- import 'core-js/modules/es.regexp.exec.js';
15
- import 'core-js/modules/es.string.replace.js';
16
- import 'core-js/modules/es.string.starts-with.js';
17
13
  import '../global/memoize.js';
18
- import 'core-js/modules/es.array.iterator.js';
19
- import 'core-js/modules/es.map.js';
20
- import 'core-js/modules/es.object.to-string.js';
21
- import 'core-js/modules/es.weak-map.js';
22
- import 'core-js/modules/web.dom-collections.iterator.js';
23
- import 'core-js/modules/web.dom-collections.for-each.js';
24
14
 
25
15
  var modules_3199090e = {"checkboxSize":"14px","light":"light_rui_2ac4","checkbox":"checkbox_rui_219d","cell":"cell_rui_219d","icon":"icon_rui_219d","check":"check_rui_219d icon_rui_219d","minus":"minus_rui_219d icon_rui_219d","input":"input_rui_219d","focus":"focus_rui_219d","label":"label_rui_219d"};
26
16
 
27
- var _excluded = ["children", "label", "className", "containerClassName", "containerStyle", "cellClassName", "labelClassName", "indeterminate", "inputRef"];
28
17
  /**
29
18
  * @name Checkbox
30
19
  */
31
20
  /**
32
21
  * Displays a checkbox.
33
22
  */
34
- var Checkbox = /*#__PURE__*/function (_PureComponent) {
35
- function Checkbox() {
36
- var _this;
37
- _classCallCheck(this, Checkbox);
38
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
39
- args[_key] = arguments[_key];
23
+ class Checkbox extends PureComponent {
24
+ static propTypes = {
25
+ name: PropTypes.string,
26
+ label: PropTypes.string,
27
+ className: PropTypes.string,
28
+ containerClassName: PropTypes.string,
29
+ containerStyle: PropTypes.object,
30
+ cellClassName: PropTypes.string,
31
+ labelClassName: PropTypes.string,
32
+ defaultChecked: PropTypes.bool,
33
+ checked: PropTypes.bool,
34
+ indeterminate: PropTypes.bool,
35
+ disabled: PropTypes.bool,
36
+ onChange: PropTypes.func,
37
+ children: PropTypes.node,
38
+ inputRef: PropTypes.oneOfType([PropTypes.func, refObject(PropTypes.instanceOf(HTMLInputElement))])
39
+ };
40
+ static defaultProps = {
41
+ indeterminate: false
42
+ };
43
+ componentDidMount() {
44
+ if (this.input != null) {
45
+ this.input.indeterminate = this.props.indeterminate;
40
46
  }
41
- _this = _callSuper(this, Checkbox, [].concat(args));
42
- _defineProperty(_this, "input", void 0);
43
- _defineProperty(_this, "inputRef", function (el) {
44
- if (el != null) {
45
- el.indeterminate = _this.props.indeterminate;
46
- }
47
- _this.input = el;
48
- });
49
- return _this;
50
47
  }
51
- _inherits(Checkbox, _PureComponent);
52
- return _createClass(Checkbox, [{
53
- key: "componentDidMount",
54
- value: function componentDidMount() {
55
- if (this.input != null) {
56
- this.input.indeterminate = this.props.indeterminate;
57
- }
48
+ componentDidUpdate(prevProps) {
49
+ const {
50
+ indeterminate
51
+ } = this.props;
52
+ if (this.input != null && indeterminate !== prevProps.indeterminate) {
53
+ this.input.indeterminate = this.props.indeterminate;
58
54
  }
59
- }, {
60
- key: "componentDidUpdate",
61
- value: function componentDidUpdate(prevProps) {
62
- var indeterminate = this.props.indeterminate;
63
- if (this.input != null && indeterminate !== prevProps.indeterminate) {
64
- this.input.indeterminate = this.props.indeterminate;
65
- }
66
- }
67
- }, {
68
- key: "render",
69
- value: function render() {
70
- var _this$props = this.props,
71
- children = _this$props.children,
72
- label = _this$props.label,
73
- className = _this$props.className,
74
- containerClassName = _this$props.containerClassName,
75
- containerStyle = _this$props.containerStyle,
76
- cellClassName = _this$props.cellClassName,
77
- labelClassName = _this$props.labelClassName;
78
- _this$props.indeterminate;
79
- var inputRef = _this$props.inputRef,
80
- restProps = _objectWithoutProperties(_this$props, _excluded);
81
- var classes = classNames(modules_3199090e.input, className);
82
- var containerClasses = classNames(modules_3199090e.checkbox, containerClassName);
83
- var cellClasses = classNames(modules_3199090e.cell, cellClassName);
84
- var labelClasses = classNames(modules_3199090e.label, labelClassName);
85
- return /*#__PURE__*/React.createElement("label", {
86
- className: containerClasses,
87
- style: containerStyle,
88
- "data-test": "ring-checkbox"
89
- }, /*#__PURE__*/React.createElement("input", _extends({}, restProps, {
90
- "data-checked": restProps.checked,
91
- ref: composeRefs(this.inputRef, inputRef),
92
- type: "checkbox",
93
- className: classes
94
- })), /*#__PURE__*/React.createElement("span", {
95
- className: cellClasses
96
- }, /*#__PURE__*/React.createElement(Icon, {
97
- glyph: checkmarkIcon,
98
- className: modules_3199090e.check
99
- }), /*#__PURE__*/React.createElement(Icon, {
100
- glyph: minusIcon,
101
- className: modules_3199090e.minus
102
- })), /*#__PURE__*/React.createElement("span", {
103
- className: labelClasses
104
- }, label || children));
55
+ }
56
+ input;
57
+ inputRef = el => {
58
+ if (el != null) {
59
+ el.indeterminate = this.props.indeterminate;
105
60
  }
106
- }]);
107
- }(PureComponent);
108
- _defineProperty(Checkbox, "propTypes", {
109
- name: PropTypes.string,
110
- label: PropTypes.string,
111
- className: PropTypes.string,
112
- containerClassName: PropTypes.string,
113
- containerStyle: PropTypes.object,
114
- cellClassName: PropTypes.string,
115
- labelClassName: PropTypes.string,
116
- defaultChecked: PropTypes.bool,
117
- checked: PropTypes.bool,
118
- indeterminate: PropTypes.bool,
119
- disabled: PropTypes.bool,
120
- onChange: PropTypes.func,
121
- children: PropTypes.node,
122
- inputRef: PropTypes.oneOfType([PropTypes.func, refObject(PropTypes.instanceOf(HTMLInputElement))])
123
- });
124
- _defineProperty(Checkbox, "defaultProps", {
125
- indeterminate: false
126
- });
61
+ this.input = el;
62
+ };
63
+ render() {
64
+ const {
65
+ children,
66
+ label,
67
+ className,
68
+ containerClassName,
69
+ containerStyle,
70
+ cellClassName,
71
+ labelClassName,
72
+ indeterminate,
73
+ inputRef,
74
+ ...restProps
75
+ } = this.props;
76
+ const classes = classNames(modules_3199090e.input, className);
77
+ const containerClasses = classNames(modules_3199090e.checkbox, containerClassName);
78
+ const cellClasses = classNames(modules_3199090e.cell, cellClassName);
79
+ const labelClasses = classNames(modules_3199090e.label, labelClassName);
80
+ return /*#__PURE__*/React.createElement("label", {
81
+ className: containerClasses,
82
+ style: containerStyle,
83
+ "data-test": "ring-checkbox"
84
+ }, /*#__PURE__*/React.createElement("input", _extends({}, restProps, {
85
+ "data-checked": restProps.checked,
86
+ ref: composeRefs(this.inputRef, inputRef),
87
+ type: "checkbox",
88
+ className: classes
89
+ })), /*#__PURE__*/React.createElement("span", {
90
+ className: cellClasses
91
+ }, /*#__PURE__*/React.createElement(Icon, {
92
+ glyph: checkmarkIcon,
93
+ className: modules_3199090e.check
94
+ }), /*#__PURE__*/React.createElement(Icon, {
95
+ glyph: minusIcon,
96
+ className: modules_3199090e.minus
97
+ })), /*#__PURE__*/React.createElement("span", {
98
+ className: labelClasses
99
+ }, label || children));
100
+ }
101
+ }
127
102
 
128
103
  export { Checkbox as default };