d2coreui 21.0.33 → 23.0.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 (295) hide show
  1. package/components/clipboard/clipboardUtils.d.ts +4 -3
  2. package/components/clipboard/clipboardUtils.js +47 -22
  3. package/components/clipboard/clipboardUtils.js.map +1 -1
  4. package/components/codemirror/SyntaxHighlighter.d.ts +21 -21
  5. package/components/codemirror/SyntaxHighlighter.js +45 -44
  6. package/components/codemirror/SyntaxHighlighter.js.map +1 -1
  7. package/components/collapse/expandable.d.ts +13 -12
  8. package/components/collapse/expandable.js +20 -20
  9. package/components/collapse/expandable.js.map +1 -1
  10. package/components/color/colorPicker.d.ts +20 -20
  11. package/components/color/colorPicker.js +53 -53
  12. package/components/color/colorPicker.js.map +1 -1
  13. package/components/color/colorSwatch.d.ts +13 -12
  14. package/components/color/colorSwatch.js +62 -62
  15. package/components/color/colorSwatch.js.map +1 -1
  16. package/components/color/colorUtils.d.ts +7 -7
  17. package/components/color/colorUtils.js +43 -43
  18. package/components/color/colorUtils.js.map +1 -1
  19. package/components/date/dateRangeInput.d.ts +66 -64
  20. package/components/date/dateRangeInput.js +292 -297
  21. package/components/date/dateRangeInput.js.map +1 -1
  22. package/components/date/dateRangeInputAdvancedPanel.d.ts +27 -26
  23. package/components/date/dateRangeInputAdvancedPanel.js +130 -115
  24. package/components/date/dateRangeInputAdvancedPanel.js.map +1 -1
  25. package/components/date/dateRangeInputConfirm.d.ts +31 -29
  26. package/components/date/dateRangeInputConfirm.js +132 -121
  27. package/components/date/dateRangeInputConfirm.js.map +1 -1
  28. package/components/date/dateTimeInput.d.ts +72 -69
  29. package/components/date/dateTimeInput.js +440 -412
  30. package/components/date/dateTimeInput.js.map +1 -1
  31. package/components/date/durationInput.d.ts +59 -56
  32. package/components/date/durationInput.js +269 -280
  33. package/components/date/durationInput.js.map +1 -1
  34. package/components/form/NiceFormItem.d.ts +14 -14
  35. package/components/form/NiceFormItem.js +28 -31
  36. package/components/form/NiceFormItem.js.map +1 -1
  37. package/components/grid/cell/beanAccessor.d.ts +9 -0
  38. package/components/grid/cell/beanAccessor.js +13 -0
  39. package/components/grid/cell/beanAccessor.js.map +1 -0
  40. package/components/grid/cell/cellEditorUtils.d.ts +4 -4
  41. package/components/grid/cell/cellEditorUtils.js +8 -8
  42. package/components/grid/cell/customEnumCellEditor.d.ts +4 -26
  43. package/components/grid/cell/customEnumCellEditor.js +82 -91
  44. package/components/grid/cell/customEnumCellEditor.js.map +1 -1
  45. package/components/grid/cell/dataGridCellEditorComponent.d.ts +14 -0
  46. package/components/grid/cell/dataGridCellEditorComponent.js +49 -0
  47. package/components/grid/cell/dataGridCellEditorComponent.js.map +1 -0
  48. package/components/grid/cell/dateCellEditor.d.ts +4 -25
  49. package/components/grid/cell/dateCellEditor.js +53 -72
  50. package/components/grid/cell/dateCellEditor.js.map +1 -1
  51. package/components/grid/cell/durationCellEditor.d.ts +4 -24
  52. package/components/grid/cell/durationCellEditor.js +74 -97
  53. package/components/grid/cell/durationCellEditor.js.map +1 -1
  54. package/components/grid/cell/hexaOctetStringCellEditor.d.ts +4 -24
  55. package/components/grid/cell/hexaOctetStringCellEditor.js +70 -94
  56. package/components/grid/cell/hexaOctetStringCellEditor.js.map +1 -1
  57. package/components/grid/cell/hexaValueCellEditor.d.ts +4 -24
  58. package/components/grid/cell/hexaValueCellEditor.js +65 -89
  59. package/components/grid/cell/hexaValueCellEditor.js.map +1 -1
  60. package/components/grid/cell/numberCellEditor.d.ts +4 -27
  61. package/components/grid/cell/numberCellEditor.js +73 -95
  62. package/components/grid/cell/numberCellEditor.js.map +1 -1
  63. package/components/grid/cell/rangeSelector.d.ts +78 -78
  64. package/components/grid/cell/rangeSelector.js +526 -518
  65. package/components/grid/cell/rangeSelector.js.map +1 -1
  66. package/components/grid/cell/simpleStatusTextCellEditor.d.ts +4 -32
  67. package/components/grid/cell/simpleStatusTextCellEditor.js +106 -116
  68. package/components/grid/cell/simpleStatusTextCellEditor.js.map +1 -1
  69. package/components/grid/cell/statusTextCellEditor.d.ts +4 -32
  70. package/components/grid/cell/statusTextCellEditor.js +136 -159
  71. package/components/grid/cell/statusTextCellEditor.js.map +1 -1
  72. package/components/grid/cell/tableDefaultRowStyleRules.d.ts +20 -20
  73. package/components/grid/cell/tableDefaultRowStyleRules.js +29 -18
  74. package/components/grid/cell/tableDefaultRowStyleRules.js.map +1 -1
  75. package/components/grid/cell/textCellEditor.d.ts +4 -21
  76. package/components/grid/cell/textCellEditor.js +63 -85
  77. package/components/grid/cell/textCellEditor.js.map +1 -1
  78. package/components/grid/cell/withAgGridHooks.d.ts +3 -0
  79. package/components/grid/cell/withAgGridHooks.js +15 -0
  80. package/components/grid/cell/withAgGridHooks.js.map +1 -0
  81. package/components/grid/columnUtils.d.ts +5 -5
  82. package/components/grid/columnUtils.js +26 -26
  83. package/components/grid/columnUtils.js.map +1 -1
  84. package/components/grid/config/columnTransfer.d.ts +21 -22
  85. package/components/grid/config/columnTransfer.js +205 -201
  86. package/components/grid/config/columnTransfer.js.map +1 -1
  87. package/components/grid/config/dataGridEditor.d.ts +41 -41
  88. package/components/grid/config/dataGridEditor.js +181 -160
  89. package/components/grid/config/dataGridEditor.js.map +1 -1
  90. package/components/grid/config/rowHeightCalculator.d.ts +8 -0
  91. package/components/grid/config/rowHeightCalculator.js +20 -0
  92. package/components/grid/config/rowHeightCalculator.js.map +1 -0
  93. package/components/grid/config/rowStylePicker.d.ts +27 -25
  94. package/components/grid/config/rowStylePicker.js +127 -109
  95. package/components/grid/config/rowStylePicker.js.map +1 -1
  96. package/components/grid/dataGrid.d.ts +218 -206
  97. package/components/grid/dataGrid.js +1629 -1538
  98. package/components/grid/dataGrid.js.map +1 -1
  99. package/components/grid/detail/detailHeaderPanel.d.ts +13 -13
  100. package/components/grid/detail/detailHeaderPanel.js +25 -25
  101. package/components/grid/detail/detailHeaderPanel.js.map +1 -1
  102. package/components/grid/export/contextMenu.d.ts +18 -24
  103. package/components/grid/export/contextMenu.js +116 -113
  104. package/components/grid/export/contextMenu.js.map +1 -1
  105. package/components/grid/export/progressPopup.d.ts +29 -29
  106. package/components/grid/export/progressPopup.js +93 -93
  107. package/components/grid/export/progressPopup.js.map +1 -1
  108. package/components/grid/export/worker/clipboardExport.d.ts +1 -1
  109. package/components/grid/export/worker/clipboardExport.js +8 -8
  110. package/components/grid/export/worker/csvExport.d.ts +1 -1
  111. package/components/grid/export/worker/csvExport.js +8 -8
  112. package/components/grid/export/worker/pdfExport.d.ts +1 -1
  113. package/components/grid/export/worker/pdfExport.js +81 -81
  114. package/components/grid/export/worker/pdfExport.js.map +1 -1
  115. package/components/grid/export/worker/txtExport.d.ts +1 -1
  116. package/components/grid/export/worker/txtExport.js +19 -19
  117. package/components/grid/extendedDataGrid.d.ts +140 -140
  118. package/components/grid/extendedDataGrid.js +704 -695
  119. package/components/grid/extendedDataGrid.js.map +1 -1
  120. package/components/grid/filter/customColumnFilter.d.ts +5 -21
  121. package/components/grid/filter/customColumnFilter.js +11 -82
  122. package/components/grid/filter/customColumnFilter.js.map +1 -1
  123. package/components/grid/filter/dataGridColumnFilter.d.ts +17 -0
  124. package/components/grid/filter/dataGridColumnFilter.js +49 -0
  125. package/components/grid/filter/dataGridColumnFilter.js.map +1 -0
  126. package/components/grid/filter/dateColumnFilter.d.ts +7 -11
  127. package/components/grid/filter/dateColumnFilter.js +22 -56
  128. package/components/grid/filter/dateColumnFilter.js.map +1 -1
  129. package/components/grid/filter/textColumnFilter.d.ts +8 -20
  130. package/components/grid/filter/textColumnFilter.js +24 -76
  131. package/components/grid/filter/textColumnFilter.js.map +1 -1
  132. package/components/grid/filter/wildcardQuickFilterEngine.d.ts +7 -0
  133. package/components/grid/filter/wildcardQuickFilterEngine.js +48 -0
  134. package/components/grid/filter/wildcardQuickFilterEngine.js.map +1 -0
  135. package/components/grid/header/simpleHeader.d.ts +17 -16
  136. package/components/grid/header/simpleHeader.js +230 -186
  137. package/components/grid/header/simpleHeader.js.map +1 -1
  138. package/components/grid/panel/dataGridPagination.d.ts +16 -16
  139. package/components/grid/panel/dataGridPagination.js +58 -58
  140. package/components/grid/panel/dataGridPagination.js.map +1 -1
  141. package/components/grid/panel/loadingOverlay.d.ts +6 -6
  142. package/components/grid/panel/loadingOverlay.js +10 -10
  143. package/components/grid/panel/loadingOverlay.js.map +1 -1
  144. package/components/grid/panel/noRecordsOverlay.d.ts +6 -6
  145. package/components/grid/panel/noRecordsOverlay.js +10 -10
  146. package/components/grid/panel/noRecordsOverlay.js.map +1 -1
  147. package/components/grid/panel/tablePagination.d.ts +10 -10
  148. package/components/grid/panel/tablePagination.js +45 -45
  149. package/components/grid/panel/tablePagination.js.map +1 -1
  150. package/components/icons/dropdownArrow.d.ts +8 -0
  151. package/components/icons/dropdownArrow.js +59 -0
  152. package/components/icons/dropdownArrow.js.map +1 -0
  153. package/components/icons/undoIcon.d.ts +8 -8
  154. package/components/icons/undoIcon.js +6 -6
  155. package/components/input/autoCompleteInput.d.ts +35 -35
  156. package/components/input/autoCompleteInput.js +122 -121
  157. package/components/input/autoCompleteInput.js.map +1 -1
  158. package/components/input/draftUtils.d.ts +4 -4
  159. package/components/input/draftUtils.js +48 -48
  160. package/components/input/draftUtils.js.map +1 -1
  161. package/components/input/draftail.d.ts +1 -1
  162. package/components/input/draftail.js +1 -1
  163. package/components/input/hexaFormattedInput.d.ts +16 -16
  164. package/components/input/hexaFormattedInput.js +54 -54
  165. package/components/input/hexaFormattedInput.js.map +1 -1
  166. package/components/input/mask/helpers.d.ts +28 -28
  167. package/components/input/mask/helpers.js +112 -112
  168. package/components/input/mask/helpers.js.map +1 -1
  169. package/components/input/mask/inputMaskCore.d.ts +46 -46
  170. package/components/input/mask/inputMaskCore.js +278 -278
  171. package/components/input/mask/inputMaskCore.js.map +1 -1
  172. package/components/input/mask/pattern.d.ts +20 -20
  173. package/components/input/mask/pattern.js +78 -78
  174. package/components/input/mask/pattern.js.map +1 -1
  175. package/components/input/maskedInput.d.ts +373 -351
  176. package/components/input/maskedInput.js +224 -224
  177. package/components/input/maskedInput.js.map +1 -1
  178. package/components/input/passwordInput.d.ts +9 -9
  179. package/components/input/passwordInput.js +55 -55
  180. package/components/input/passwordInput.js.map +1 -1
  181. package/components/input/simpleAutoComplete.d.ts +12 -12
  182. package/components/input/simpleAutoComplete.js +41 -43
  183. package/components/input/simpleAutoComplete.js.map +1 -1
  184. package/components/input/textarea/extractSpansOfClasses.d.ts +15 -15
  185. package/components/input/textarea/extractSpansOfClasses.js +96 -96
  186. package/components/input/textarea/extractSpansOfClasses.js.map +1 -1
  187. package/components/input/textarea/getRanges.d.ts +1 -1
  188. package/components/input/textarea/getRanges.js +73 -73
  189. package/components/input/textarea/getRanges.js.map +1 -1
  190. package/components/input/textarea/getType.d.ts +1 -1
  191. package/components/input/textarea/getType.js +26 -26
  192. package/components/input/textarea/getType.js.map +1 -1
  193. package/components/input/textarea/highlighedContents.d.ts +6 -6
  194. package/components/input/textarea/highlighedContents.js +10 -10
  195. package/components/input/textarea/mentionsWithHighlighting.d.ts +27 -27
  196. package/components/input/textarea/mentionsWithHighlighting.js +60 -60
  197. package/components/input/textarea/mentionsWithHighlighting.js.map +1 -1
  198. package/components/keyboard/keyboardUtils.d.ts +5 -5
  199. package/components/keyboard/keyboardUtils.js +32 -32
  200. package/components/modal/draggableModalProvider.d.ts +4 -4
  201. package/components/modal/draggableModalProvider.js +21 -21
  202. package/components/modal/draggableModalProvider.js.map +1 -1
  203. package/components/modal/impl/clamp.d.ts +1 -1
  204. package/components/modal/impl/clamp.js +1 -1
  205. package/components/modal/impl/clamp.js.map +1 -1
  206. package/components/modal/impl/draggableModal.d.ts +12 -12
  207. package/components/modal/impl/draggableModal.js +17 -17
  208. package/components/modal/impl/draggableModal.js.map +1 -1
  209. package/components/modal/impl/draggableModalContext.d.ts +9 -9
  210. package/components/modal/impl/draggableModalContext.js +2 -2
  211. package/components/modal/impl/draggableModalContext.js.map +1 -1
  212. package/components/modal/impl/draggableModalInner.d.ts +15 -13
  213. package/components/modal/impl/draggableModalInner.js +57 -55
  214. package/components/modal/impl/draggableModalInner.js.map +1 -1
  215. package/components/modal/impl/draggableModalReducer.d.ts +66 -62
  216. package/components/modal/impl/draggableModalReducer.js +77 -78
  217. package/components/modal/impl/draggableModalReducer.js.map +1 -1
  218. package/components/modal/impl/getWindowSize.d.ts +4 -4
  219. package/components/modal/impl/getWindowSize.js +4 -4
  220. package/components/modal/impl/getWindowSize.js.map +1 -1
  221. package/components/modal/impl/index.d.ts +3 -3
  222. package/components/modal/impl/index.js +3 -3
  223. package/components/modal/impl/index.js.map +1 -1
  224. package/components/modal/impl/resizeHandle.d.ts +3 -3
  225. package/components/modal/impl/resizeHandle.js +4 -4
  226. package/components/modal/impl/resizeHandle.js.map +1 -1
  227. package/components/modal/impl/useDrag.d.ts +5 -5
  228. package/components/modal/impl/useDrag.js +42 -42
  229. package/components/modal/impl/useDrag.js.map +1 -1
  230. package/components/modal/impl/usePrevious.d.ts +1 -1
  231. package/components/modal/impl/usePrevious.js +8 -8
  232. package/components/modal/impl/usePrevious.js.map +1 -1
  233. package/components/modal/impl/useResize.d.ts +7 -7
  234. package/components/modal/impl/useResize.js +46 -46
  235. package/components/modal/impl/useResize.js.map +1 -1
  236. package/components/modal/modalDialog.d.ts +49 -49
  237. package/components/modal/modalDialog.js +152 -152
  238. package/components/modal/modalDialog.js.map +1 -1
  239. package/components/picker/enumValuePicker.d.ts +16 -16
  240. package/components/picker/enumValuePicker.js +34 -34
  241. package/components/picker/enumValuePicker.js.map +1 -1
  242. package/components/platformSpecific.d.ts +10 -10
  243. package/components/platformSpecific.js +27 -27
  244. package/components/scrollTo/onlyText.d.ts +4 -4
  245. package/components/scrollTo/onlyText.js +30 -30
  246. package/components/scrollTo/onlyText.js.map +1 -1
  247. package/components/scrollTo/scrollTo.d.ts +41 -39
  248. package/components/scrollTo/scrollTo.js +264 -264
  249. package/components/scrollTo/scrollTo.js.map +1 -1
  250. package/components/style/withCss.d.ts +9 -0
  251. package/components/style/withCss.js +6 -0
  252. package/components/style/withCss.js.map +1 -0
  253. package/components/style/withInputNumberCss.d.ts +6 -0
  254. package/components/style/withInputNumberCss.js +13 -0
  255. package/components/style/withInputNumberCss.js.map +1 -0
  256. package/components/table/dragSortingTable.d.ts +13 -14
  257. package/components/table/dragSortingTable.js +96 -82
  258. package/components/table/dragSortingTable.js.map +1 -1
  259. package/components/text/impl/innerSize.d.ts +2 -2
  260. package/components/text/impl/innerSize.js +12 -12
  261. package/components/text/impl/series.d.ts +1 -1
  262. package/components/text/impl/series.js +28 -28
  263. package/components/text/impl/shallowEqual.d.ts +1 -1
  264. package/components/text/impl/shallowEqual.js +18 -18
  265. package/components/text/impl/shallowEqual.js.map +1 -1
  266. package/components/text/impl/uniqueId.d.ts +1 -1
  267. package/components/text/impl/uniqueId.js +4 -4
  268. package/components/text/impl/whilst.d.ts +1 -1
  269. package/components/text/impl/whilst.js +19 -19
  270. package/components/text/impl/whilst.js.map +1 -1
  271. package/components/text/textFit.d.ts +38 -38
  272. package/components/text/textFit.js +165 -168
  273. package/components/text/textFit.js.map +1 -1
  274. package/i18n/components.cs.json +101 -100
  275. package/i18n/components.sk.json +101 -100
  276. package/i18n/components.uk.json +101 -100
  277. package/i18n/componentsLocaleHolder.d.ts +3 -3
  278. package/i18n/componentsLocaleHolder.js +28 -28
  279. package/i18n/componentsLocaleHolder.js.map +1 -1
  280. package/package.json +71 -70
  281. package/style/index.less +274 -298
  282. package/style/modal/DraggableModal.css +43 -40
  283. package/style/modal/ResizeHandle.css +27 -19
  284. package/tsconfig.build.json +24 -24
  285. package/tsconfig.json +11 -11
  286. package/components/grid/cell/wildcardQuickFilter.d.ts +0 -11
  287. package/components/grid/cell/wildcardQuickFilter.js +0 -61
  288. package/components/grid/cell/wildcardQuickFilter.js.map +0 -1
  289. package/components/table/dataTable.d.ts +0 -17
  290. package/components/table/dataTable.js +0 -79
  291. package/components/table/dataTable.js.map +0 -1
  292. package/style/antd/antd-tree-showline.css +0 -25
  293. package/style/antd/full-height-tabs.scss +0 -63
  294. package/style/draftail/draftail-editor.css +0 -179
  295. package/style/table/dragSortingTable.css +0 -7
@@ -1,265 +1,265 @@
1
- import * as React from 'react';
2
- import { Component } from 'react';
3
- import scrollIntoView from "dom-scroll-into-view";
4
- import debounce from "lodash/debounce";
5
- import { Tooltip } from "antd";
6
- import onlyText from './onlyText';
7
- import memoizeOne from "memoize-one";
8
- import ReactDOMServer from "react-dom/server";
9
- import { Key } from "ts-key-enum";
10
- import KeyboardUtils from "../keyboard/keyboardUtils";
11
- const MarkTextContext = React.createContext("");
12
- export class ScrollToItem extends Component {
13
- constructor(props) {
14
- super(props);
15
- this.getChildrenTextContent = memoizeOne(this.getChildrenTextContent.bind(this));
16
- this.getChildrenHtmlContent = memoizeOne(this.getChildrenHtmlContent.bind(this));
17
- }
18
- getChildrenTextContent(children) {
19
- if (!!this.props.dangerouslySetInnerHTML) {
20
- return this.props.dangerouslySetInnerHTML.replace(/(<([^>]+)>)/ig, '').toLowerCase();
21
- }
22
- else if (children === undefined) {
23
- return "";
24
- }
25
- else {
26
- return onlyText(children).toLowerCase();
27
- }
28
- }
29
- getChildrenHtmlContent(children, markedString) {
30
- let htmlCode;
31
- if (!!this.props.dangerouslySetInnerHTML) {
32
- htmlCode = this.props.dangerouslySetInnerHTML;
33
- }
34
- else {
35
- switch (typeof children) {
36
- case "string":
37
- htmlCode = children;
38
- break;
39
- case "undefined":
40
- htmlCode = "";
41
- break;
42
- default:
43
- htmlCode = ReactDOMServer.renderToString(children);
44
- }
45
- }
46
- const markedStringIndex = htmlCode.toLowerCase().indexOf(markedString);
47
- if (markedStringIndex >= 0) {
48
- const markedTextClassName = this.props.markedTextClassName ? this.props.markedTextClassName : "marked-text";
49
- return htmlCode.substring(0, markedStringIndex) + "<span class=\"" + markedTextClassName + "\">" + htmlCode.substring(markedStringIndex, markedStringIndex + markedString.length) + "</span>" + htmlCode.substring(markedStringIndex + markedString.length);
50
- }
51
- else {
52
- return htmlCode;
53
- }
54
- }
55
- renderChildren() {
56
- if (this.context) {
57
- const childrenHtmlContent = this.getChildrenHtmlContent(this.props.children, this.context);
58
- return React.createElement("span", { dangerouslySetInnerHTML: { __html: childrenHtmlContent } });
59
- }
60
- else if (!!this.props.dangerouslySetInnerHTML) {
61
- return React.createElement("span", { dangerouslySetInnerHTML: { __html: this.props.dangerouslySetInnerHTML } });
62
- }
63
- else {
64
- return this.props.children;
65
- }
66
- }
67
- render() {
68
- const textContent = this.getChildrenTextContent(this.props.children);
69
- return (React.createElement("span", { tabIndex: 0, className: `selectable ${this.props.selected ? "selected" : ""}`, "data-content": textContent, "data-key": this.props.selectionKey }, this.renderChildren()));
70
- }
71
- }
72
- ScrollToItem.contextType = MarkTextContext;
73
- export default class ScrollTo extends Component {
74
- constructor(props) {
75
- super(props);
76
- this.scrollWrapper = null;
77
- this.scrollParent = null;
78
- this.state = {
79
- searchString: "",
80
- searchStringFound: false,
81
- };
82
- this.scrollToElement = debounce(this.scrollToElement, 400, { maxWait: 400 });
83
- }
84
- componentDidMount() {
85
- if (this.props.scrollOnMount && this.scrollWrapper) {
86
- const scrollToElement = this.scrollWrapper.querySelector(".selected");
87
- if (scrollToElement) {
88
- this.scrollToElement(scrollToElement);
89
- }
90
- }
91
- }
92
- scrollToElement(scrollToElem, scrollingUp = false) {
93
- scrollIntoView(scrollToElem, this.scrollParent, {
94
- onlyScrollIfNeeded: true,
95
- allowHorizontalScroll: false,
96
- alignWithTop: scrollingUp,
97
- offsetTop: 50,
98
- offsetBottom: 50,
99
- });
100
- }
101
- getScrollParent(element, includeHidden = false) {
102
- var style = getComputedStyle(element);
103
- var excludeStaticParent = style.position === "absolute";
104
- var overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;
105
- if (style.position === "fixed")
106
- return document.body;
107
- let parent;
108
- for (parent = element; (parent = parent.parentElement);) {
109
- style = getComputedStyle(parent);
110
- if (excludeStaticParent && style.position === "static") {
111
- continue;
112
- }
113
- if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX))
114
- return parent;
115
- }
116
- return document.body;
117
- }
118
- focusNext(currentElement, selectables) {
119
- if (currentElement) {
120
- const currentElementIndex = selectables.indexOf(currentElement);
121
- if (currentElementIndex >= 0 && currentElementIndex < selectables.length - 1) {
122
- const scrollToElem = selectables[currentElementIndex + 1];
123
- scrollToElem.focus();
124
- this.scrollToElement(scrollToElem);
125
- return;
126
- }
127
- else if (currentElementIndex === selectables.length - 1) {
128
- return;
129
- }
130
- }
131
- if (selectables.length > 0) {
132
- selectables[0].focus();
133
- this.scrollToElement(selectables[0]);
134
- }
135
- }
136
- scrollToLast() {
137
- if (!!this.scrollWrapper) {
138
- let selectables = Array.from(this.scrollWrapper.getElementsByClassName("selectable"));
139
- if (selectables.length > 0) {
140
- const focusedElement = selectables[selectables.length - 1];
141
- this.scrollToElement(focusedElement, false);
142
- }
143
- }
144
- }
145
- focusToLast() {
146
- if (!!this.scrollWrapper) {
147
- let selectables = Array.from(this.scrollWrapper.getElementsByClassName("selectable"));
148
- if (selectables.length > 0) {
149
- const focusedElement = selectables[selectables.length - 1];
150
- focusedElement.focus();
151
- this.scrollToElement(focusedElement, false);
152
- }
153
- }
154
- }
155
- focusPrev(currentElement, selectables) {
156
- if (currentElement) {
157
- const currentElementIndex = selectables.indexOf(currentElement);
158
- if (currentElementIndex > 0) {
159
- const scrollToElem = selectables[currentElementIndex - 1];
160
- scrollToElem.focus();
161
- this.scrollToElement(scrollToElem);
162
- return;
163
- }
164
- else if (currentElementIndex === 0) {
165
- return;
166
- }
167
- }
168
- if (selectables.length > 0) {
169
- const scrollToElem = selectables[selectables.length - 1];
170
- scrollToElem.focus();
171
- this.scrollToElement(scrollToElem);
172
- }
173
- }
174
- focusBySearchString(searchString) {
175
- var _a;
176
- const elementToFocus = (_a = this.scrollWrapper) === null || _a === void 0 ? void 0 : _a.querySelector(`.selectable[data-content*="${searchString.toLowerCase()}"]`);
177
- if (elementToFocus) {
178
- elementToFocus.focus();
179
- this.scrollToElement(elementToFocus);
180
- }
181
- return elementToFocus;
182
- }
183
- render() {
184
- return (React.createElement("div", { ref: (scrollWrapper) => {
185
- this.scrollWrapper = scrollWrapper;
186
- if (this.scrollWrapper) {
187
- this.scrollParent = this.getScrollParent(this.scrollWrapper);
188
- }
189
- else {
190
- this.scrollParent = null;
191
- }
192
- }, tabIndex: -1, onKeyDown: (e) => {
193
- var _a, _b, _c, _d;
194
- if (e.target instanceof HTMLInputElement) {
195
- return;
196
- }
197
- if (!this.scrollWrapper) {
198
- return;
199
- }
200
- if (KeyboardUtils.isKeyPressed(Key.Control) || KeyboardUtils.isKeyPressed(Key.Alt)) {
201
- return;
202
- }
203
- const supressKeyboardEvent = (_b = (_a = this.props).supressKeyboardEvent) === null || _b === void 0 ? void 0 : _b.call(_a, (_d = (_c = document.activeElement) === null || _c === void 0 ? void 0 : _c.dataset) === null || _d === void 0 ? void 0 : _d.key, e);
204
- if (supressKeyboardEvent) {
205
- e.preventDefault();
206
- return;
207
- }
208
- let focusedElement = document.activeElement;
209
- let selectables;
210
- if (this.state.searchString && this.state.searchStringFound) {
211
- selectables = Array.from(this.scrollWrapper.querySelectorAll(`.selectable[data-content*="${this.state.searchString.toLowerCase()}"]`));
212
- }
213
- else {
214
- selectables = Array.from(this.scrollWrapper.getElementsByClassName("selectable"));
215
- }
216
- const focusedElementIndex = selectables.indexOf(focusedElement);
217
- if (e.key === Key.ArrowDown || e.key === Key.ArrowUp) {
218
- e.preventDefault();
219
- if (!focusedElement || focusedElementIndex < 0) {
220
- const selectedElements = Array.from(this.scrollWrapper.getElementsByClassName("selected"));
221
- focusedElement = selectedElements.length > 0 ? selectedElements[0] : null;
222
- }
223
- if (e.key === Key.ArrowDown && focusedElement) {
224
- this.focusNext(focusedElement, selectables);
225
- }
226
- else if (e.key === Key.ArrowUp && focusedElement) {
227
- this.focusPrev(focusedElement, selectables);
228
- }
229
- }
230
- else if (e.key === Key.Enter && focusedElementIndex >= 0) {
231
- if (typeof focusedElement.click == "function") {
232
- focusedElement.click.apply(focusedElement);
233
- }
234
- this.setState({ searchString: "", searchStringFound: false });
235
- }
236
- else if (e.key.length === 1) {
237
- const searchString = this.state.searchString + e.key;
238
- const focusedElement = this.focusBySearchString(searchString);
239
- this.setState({ searchString: searchString, searchStringFound: !!focusedElement });
240
- }
241
- else if (e.key === Key.Backspace) {
242
- const searchString = this.state.searchString.slice(0, -1);
243
- const focusedElement = this.focusBySearchString(searchString);
244
- this.setState({ searchString: searchString, searchStringFound: !!focusedElement });
245
- }
246
- else if (e.key === Key.Escape) {
247
- this.setState({ searchString: "", searchStringFound: false });
248
- }
249
- }, onClick: () => {
250
- this.setState({ searchString: "", searchStringFound: false });
251
- }, onBlur: (_) => {
252
- setTimeout(() => {
253
- var _a, _b;
254
- if (!((_b = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.className) === null || _b === void 0 ? void 0 : _b.includes("selectable")) && (this.state.searchString !== "" || this.state.searchStringFound)) {
255
- this.setState({ searchString: "", searchStringFound: false });
256
- }
257
- }, 0);
258
- } },
259
- React.createElement("div", { style: { position: "fixed", top: 16, left: 16 } },
260
- React.createElement(Tooltip, { overlayClassName: !this.state.searchStringFound ? "search-string-not-found" : undefined, align: { points: ["tl", "tl"], overflow: { adjustX: true, adjustY: true } }, open: !!this.state.searchString, title: this.state.searchString },
261
- React.createElement("span", null))),
262
- React.createElement(MarkTextContext.Provider, { value: this.state.searchString }, this.props.children)));
263
- }
264
- }
1
+ import * as React from 'react';
2
+ import { Component } from 'react';
3
+ import scrollIntoView from "dom-scroll-into-view";
4
+ import debounce from "lodash/debounce";
5
+ import { Tooltip } from "antd";
6
+ import onlyText from './onlyText';
7
+ import memoizeOne from "memoize-one";
8
+ import ReactDOMServer from "react-dom/server";
9
+ import { Key } from "ts-key-enum";
10
+ import KeyboardUtils from "../keyboard/keyboardUtils";
11
+ const MarkTextContext = React.createContext("");
12
+ export class ScrollToItem extends Component {
13
+ constructor(props) {
14
+ super(props);
15
+ this.getChildrenTextContent = memoizeOne(this.getChildrenTextContent.bind(this));
16
+ this.getChildrenHtmlContent = memoizeOne(this.getChildrenHtmlContent.bind(this));
17
+ }
18
+ getChildrenTextContent(children) {
19
+ if (!!this.props.dangerouslySetInnerHTML) {
20
+ return this.props.dangerouslySetInnerHTML.replace(/(<([^>]+)>)/ig, '').toLowerCase();
21
+ }
22
+ else if (children === undefined) {
23
+ return "";
24
+ }
25
+ else {
26
+ return onlyText(children).toLowerCase();
27
+ }
28
+ }
29
+ getChildrenHtmlContent(children, markedString) {
30
+ let htmlCode;
31
+ if (!!this.props.dangerouslySetInnerHTML) {
32
+ htmlCode = this.props.dangerouslySetInnerHTML;
33
+ }
34
+ else {
35
+ switch (typeof children) {
36
+ case "string":
37
+ htmlCode = children;
38
+ break;
39
+ case "undefined":
40
+ htmlCode = "";
41
+ break;
42
+ default:
43
+ htmlCode = ReactDOMServer.renderToString(children);
44
+ }
45
+ }
46
+ const markedStringIndex = htmlCode.toLowerCase().indexOf(markedString);
47
+ if (markedStringIndex >= 0) {
48
+ const markedTextClassName = this.props.markedTextClassName ? this.props.markedTextClassName : "marked-text";
49
+ return htmlCode.substring(0, markedStringIndex) + "<span class=\"" + markedTextClassName + "\">" + htmlCode.substring(markedStringIndex, markedStringIndex + markedString.length) + "</span>" + htmlCode.substring(markedStringIndex + markedString.length);
50
+ }
51
+ else {
52
+ return htmlCode;
53
+ }
54
+ }
55
+ renderChildren() {
56
+ if (this.context) {
57
+ const childrenHtmlContent = this.getChildrenHtmlContent(this.props.children, this.context);
58
+ return React.createElement("span", { dangerouslySetInnerHTML: { __html: childrenHtmlContent } });
59
+ }
60
+ else if (!!this.props.dangerouslySetInnerHTML) {
61
+ return React.createElement("span", { dangerouslySetInnerHTML: { __html: this.props.dangerouslySetInnerHTML } });
62
+ }
63
+ else {
64
+ return this.props.children;
65
+ }
66
+ }
67
+ render() {
68
+ const textContent = this.getChildrenTextContent(this.props.children);
69
+ return (React.createElement("span", { tabIndex: 0, className: `selectable ${this.props.selected ? "selected" : ""}`, "data-content": textContent, "data-key": this.props.selectionKey }, this.renderChildren()));
70
+ }
71
+ }
72
+ ScrollToItem.contextType = MarkTextContext;
73
+ export default class ScrollTo extends Component {
74
+ constructor(props) {
75
+ super(props);
76
+ this.scrollWrapper = null;
77
+ this.scrollParent = null;
78
+ this.state = {
79
+ searchString: "",
80
+ searchStringFound: false,
81
+ };
82
+ this.scrollToElement = debounce(this.scrollToElement, 400, { maxWait: 400 });
83
+ }
84
+ componentDidMount() {
85
+ if (this.props.scrollOnMount && this.scrollWrapper) {
86
+ const scrollToElement = this.scrollWrapper.querySelector(".selected");
87
+ if (scrollToElement) {
88
+ this.scrollToElement(scrollToElement);
89
+ }
90
+ }
91
+ }
92
+ scrollToElement(scrollToElem, scrollingUp = false) {
93
+ scrollIntoView(scrollToElem, this.scrollParent, {
94
+ onlyScrollIfNeeded: true,
95
+ allowHorizontalScroll: false,
96
+ alignWithTop: scrollingUp,
97
+ offsetTop: 50,
98
+ offsetBottom: 50,
99
+ });
100
+ }
101
+ getScrollParent(element, includeHidden = false) {
102
+ var style = getComputedStyle(element);
103
+ var excludeStaticParent = style.position === "absolute";
104
+ var overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;
105
+ if (style.position === "fixed")
106
+ return document.body;
107
+ let parent;
108
+ for (parent = element; (parent = parent.parentElement);) {
109
+ style = getComputedStyle(parent);
110
+ if (excludeStaticParent && style.position === "static") {
111
+ continue;
112
+ }
113
+ if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX))
114
+ return parent;
115
+ }
116
+ return document.body;
117
+ }
118
+ focusNext(currentElement, selectables) {
119
+ if (currentElement) {
120
+ const currentElementIndex = selectables.indexOf(currentElement);
121
+ if (currentElementIndex >= 0 && currentElementIndex < selectables.length - 1) {
122
+ const scrollToElem = selectables[currentElementIndex + 1];
123
+ scrollToElem.focus();
124
+ this.scrollToElement(scrollToElem);
125
+ return;
126
+ }
127
+ else if (currentElementIndex === selectables.length - 1) {
128
+ return;
129
+ }
130
+ }
131
+ if (selectables.length > 0) {
132
+ selectables[0].focus();
133
+ this.scrollToElement(selectables[0]);
134
+ }
135
+ }
136
+ scrollToLast() {
137
+ if (!!this.scrollWrapper) {
138
+ let selectables = Array.from(this.scrollWrapper.getElementsByClassName("selectable"));
139
+ if (selectables.length > 0) {
140
+ const focusedElement = selectables[selectables.length - 1];
141
+ this.scrollToElement(focusedElement, false);
142
+ }
143
+ }
144
+ }
145
+ focusToLast() {
146
+ if (!!this.scrollWrapper) {
147
+ let selectables = Array.from(this.scrollWrapper.getElementsByClassName("selectable"));
148
+ if (selectables.length > 0) {
149
+ const focusedElement = selectables[selectables.length - 1];
150
+ focusedElement.focus();
151
+ this.scrollToElement(focusedElement, false);
152
+ }
153
+ }
154
+ }
155
+ focusPrev(currentElement, selectables) {
156
+ if (currentElement) {
157
+ const currentElementIndex = selectables.indexOf(currentElement);
158
+ if (currentElementIndex > 0) {
159
+ const scrollToElem = selectables[currentElementIndex - 1];
160
+ scrollToElem.focus();
161
+ this.scrollToElement(scrollToElem);
162
+ return;
163
+ }
164
+ else if (currentElementIndex === 0) {
165
+ return;
166
+ }
167
+ }
168
+ if (selectables.length > 0) {
169
+ const scrollToElem = selectables[selectables.length - 1];
170
+ scrollToElem.focus();
171
+ this.scrollToElement(scrollToElem);
172
+ }
173
+ }
174
+ focusBySearchString(searchString) {
175
+ var _a;
176
+ const elementToFocus = (_a = this.scrollWrapper) === null || _a === void 0 ? void 0 : _a.querySelector(`.selectable[data-content*="${searchString.toLowerCase()}"]`);
177
+ if (elementToFocus) {
178
+ elementToFocus.focus();
179
+ this.scrollToElement(elementToFocus);
180
+ }
181
+ return elementToFocus;
182
+ }
183
+ render() {
184
+ return (React.createElement("div", { ref: (scrollWrapper) => {
185
+ this.scrollWrapper = scrollWrapper;
186
+ if (this.scrollWrapper) {
187
+ this.scrollParent = this.getScrollParent(this.scrollWrapper);
188
+ }
189
+ else {
190
+ this.scrollParent = null;
191
+ }
192
+ }, tabIndex: -1, onKeyDown: (e) => {
193
+ var _a, _b, _c, _d;
194
+ if (e.target instanceof HTMLInputElement) {
195
+ return;
196
+ }
197
+ if (!this.scrollWrapper) {
198
+ return;
199
+ }
200
+ if (KeyboardUtils.isKeyPressed(Key.Control) || KeyboardUtils.isKeyPressed(Key.Alt)) {
201
+ return;
202
+ }
203
+ const supressKeyboardEvent = (_b = (_a = this.props).supressKeyboardEvent) === null || _b === void 0 ? void 0 : _b.call(_a, (_d = (_c = document.activeElement) === null || _c === void 0 ? void 0 : _c.dataset) === null || _d === void 0 ? void 0 : _d.key, e);
204
+ if (supressKeyboardEvent) {
205
+ e.preventDefault();
206
+ return;
207
+ }
208
+ let focusedElement = document.activeElement;
209
+ let selectables;
210
+ if (this.state.searchString && this.state.searchStringFound) {
211
+ selectables = Array.from(this.scrollWrapper.querySelectorAll(`.selectable[data-content*="${this.state.searchString.toLowerCase()}"]`));
212
+ }
213
+ else {
214
+ selectables = Array.from(this.scrollWrapper.getElementsByClassName("selectable"));
215
+ }
216
+ const focusedElementIndex = selectables.indexOf(focusedElement);
217
+ if (e.key === Key.ArrowDown || e.key === Key.ArrowUp) {
218
+ e.preventDefault();
219
+ if (!focusedElement || focusedElementIndex < 0) {
220
+ const selectedElements = Array.from(this.scrollWrapper.getElementsByClassName("selected"));
221
+ focusedElement = selectedElements.length > 0 ? selectedElements[0] : null;
222
+ }
223
+ if (e.key === Key.ArrowDown && focusedElement) {
224
+ this.focusNext(focusedElement, selectables);
225
+ }
226
+ else if (e.key === Key.ArrowUp && focusedElement) {
227
+ this.focusPrev(focusedElement, selectables);
228
+ }
229
+ }
230
+ else if (e.key === Key.Enter && focusedElementIndex >= 0) {
231
+ if (typeof focusedElement.click == "function") {
232
+ focusedElement.click.apply(focusedElement);
233
+ }
234
+ this.setState({ searchString: "", searchStringFound: false });
235
+ }
236
+ else if (e.key.length === 1) {
237
+ const searchString = this.state.searchString + e.key;
238
+ const focusedElement = this.focusBySearchString(searchString);
239
+ this.setState({ searchString: searchString, searchStringFound: !!focusedElement });
240
+ }
241
+ else if (e.key === Key.Backspace) {
242
+ const searchString = this.state.searchString.slice(0, -1);
243
+ const focusedElement = this.focusBySearchString(searchString);
244
+ this.setState({ searchString: searchString, searchStringFound: !!focusedElement });
245
+ }
246
+ else if (e.key === Key.Escape) {
247
+ this.setState({ searchString: "", searchStringFound: false });
248
+ }
249
+ }, onClick: () => {
250
+ this.setState({ searchString: "", searchStringFound: false });
251
+ }, onBlur: (_) => {
252
+ setTimeout(() => {
253
+ var _a, _b;
254
+ if (!((_b = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.className) === null || _b === void 0 ? void 0 : _b.includes("selectable")) && (this.state.searchString !== "" || this.state.searchStringFound)) {
255
+ this.setState({ searchString: "", searchStringFound: false });
256
+ }
257
+ }, 0);
258
+ } },
259
+ React.createElement("div", { style: { position: "fixed", top: 16, left: 16 } },
260
+ React.createElement(Tooltip, { overlayClassName: !this.state.searchStringFound ? "search-string-not-found" : undefined, align: { points: ["tl", "tl"], overflow: { adjustX: true, adjustY: true } }, open: !!this.state.searchString, title: this.state.searchString },
261
+ React.createElement("span", null))),
262
+ React.createElement(MarkTextContext.Provider, { value: this.state.searchString }, this.props.children)));
263
+ }
264
+ }
265
265
  //# sourceMappingURL=scrollTo.js.map