d2coreui 23.0.14 → 23.0.15

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 (403) hide show
  1. package/components/clipboard/clipboardUtils.ts +53 -0
  2. package/components/codemirror/SyntaxHighlighter.tsx +58 -0
  3. package/components/collapse/expandable.tsx +48 -0
  4. package/components/color/colorPicker.tsx +121 -0
  5. package/components/color/colorSwatch.d.ts +18 -13
  6. package/components/color/colorSwatch.jsx +87 -0
  7. package/components/color/colorUtils.ts +60 -0
  8. package/components/date/dateRangeInput.tsx +468 -0
  9. package/components/date/dateRangeInputAdvancedPanel.tsx +238 -0
  10. package/components/date/dateRangeInputConfirm.tsx +200 -0
  11. package/components/date/dateTimeInput.tsx +633 -0
  12. package/components/date/durationInput.tsx +375 -0
  13. package/components/form/NiceFormItem.tsx +32 -0
  14. package/components/grid/cell/beanAccessor.ts +17 -0
  15. package/components/grid/cell/cellEditorUtils.ts +12 -0
  16. package/components/grid/cell/customEnumCellEditor.tsx +130 -0
  17. package/components/grid/cell/dataGridCellEditorComponent.tsx +61 -0
  18. package/components/grid/cell/dateCellEditor.tsx +83 -0
  19. package/components/grid/cell/durationCellEditor.tsx +105 -0
  20. package/components/grid/cell/hexaOctetStringCellEditor.tsx +101 -0
  21. package/components/grid/cell/hexaValueCellEditor.tsx +92 -0
  22. package/components/grid/cell/numberCellEditor.tsx +115 -0
  23. package/components/grid/cell/rangeSelector.d.ts +9 -78
  24. package/components/grid/cell/rangeSelector.js +674 -527
  25. package/components/grid/cell/simpleStatusTextCellEditor.tsx +168 -0
  26. package/components/grid/cell/statusTextCellEditor.tsx +198 -0
  27. package/components/grid/cell/tableDefaultRowStyleRules.ts +51 -0
  28. package/components/grid/cell/textCellEditor.tsx +94 -0
  29. package/components/grid/cell/withAgGridHooks.tsx +15 -0
  30. package/components/grid/columnUtils.ts +29 -0
  31. package/components/grid/config/columnTransfer.tsx +258 -0
  32. package/components/grid/config/dataGridEditor.tsx +328 -0
  33. package/components/grid/config/rowHeightCalculator.tsx +29 -0
  34. package/components/grid/config/rowStylePicker.tsx +196 -0
  35. package/components/grid/dataGrid.tsx +2183 -0
  36. package/components/grid/detail/detailHeaderPanel.tsx +59 -0
  37. package/components/grid/export/contextMenu.tsx +154 -0
  38. package/components/grid/export/progressPopup.tsx +106 -0
  39. package/components/grid/export/worker/clipboardExport.ts +10 -0
  40. package/components/grid/export/worker/csvExport.ts +10 -0
  41. package/components/grid/export/worker/pdfExport.ts +98 -0
  42. package/components/grid/export/worker/txtExport.ts +21 -0
  43. package/components/grid/extendedDataGrid.tsx +974 -0
  44. package/components/grid/filter/customColumnFilter.tsx +14 -0
  45. package/components/grid/filter/dataGridColumnFilter.tsx +70 -0
  46. package/components/grid/filter/dateColumnFilter.tsx +34 -0
  47. package/components/grid/filter/textColumnFilter.tsx +37 -0
  48. package/components/grid/filter/wildcardQuickFilterEngine.ts +50 -0
  49. package/components/grid/header/simpleHeader.tsx +270 -0
  50. package/components/grid/panel/dataGridPagination.tsx +123 -0
  51. package/components/grid/panel/loadingOverlay.tsx +14 -0
  52. package/components/grid/panel/noRecordsOverlay.tsx +16 -0
  53. package/components/grid/panel/tablePagination.tsx +77 -0
  54. package/components/icons/dropdownArrow.tsx +67 -0
  55. package/components/icons/undoIcon.tsx +16 -0
  56. package/components/input/autoCompleteInput.tsx +174 -0
  57. package/components/input/draftUtils.tsx +62 -0
  58. package/components/input/draftail.d.ts +186 -1
  59. package/components/input/draftail.js +1 -2
  60. package/components/input/hexaFormattedInput.tsx +64 -0
  61. package/components/input/mask/helpers.ts +154 -0
  62. package/components/input/mask/inputMaskCore.ts +452 -0
  63. package/components/input/mask/pattern.ts +122 -0
  64. package/components/input/maskedInput.tsx +275 -0
  65. package/components/input/passwordInput.tsx +62 -0
  66. package/components/input/simpleAutoComplete.tsx +60 -0
  67. package/components/input/textarea/extractSpansOfClasses.tsx +125 -0
  68. package/components/input/textarea/getRanges.ts +82 -0
  69. package/components/input/textarea/getType.ts +23 -0
  70. package/components/input/textarea/highlighedContents.tsx +20 -0
  71. package/components/input/textarea/highlightedTextarea.css +61 -0
  72. package/components/input/textarea/mentionsWithHighlighting.tsx +95 -0
  73. package/components/keyboard/keyboardUtils.ts +42 -0
  74. package/components/modal/draggableModalProvider.tsx +37 -0
  75. package/components/modal/impl/clamp.ts +4 -0
  76. package/components/modal/impl/draggableModal.tsx +36 -0
  77. package/components/modal/impl/draggableModalContext.ts +14 -0
  78. package/components/modal/impl/draggableModalInner.tsx +114 -0
  79. package/components/modal/impl/draggableModalReducer.ts +285 -0
  80. package/components/modal/impl/getWindowSize.ts +6 -0
  81. package/components/modal/impl/index.ts +5 -0
  82. package/components/modal/impl/resizeHandle.tsx +12 -0
  83. package/components/modal/impl/useDrag.ts +57 -0
  84. package/components/modal/impl/usePrevious.ts +11 -0
  85. package/components/modal/impl/useResize.ts +79 -0
  86. package/components/modal/modalDialog.tsx +172 -0
  87. package/components/picker/enumValuePicker.tsx +48 -0
  88. package/components/platformSpecific.ts +39 -0
  89. package/components/scrollTo/dom-scroll-into-view.d.ts +1 -0
  90. package/components/scrollTo/onlyText.ts +36 -0
  91. package/components/scrollTo/scrollTo.tsx +324 -0
  92. package/components/style/withCss.tsx +14 -0
  93. package/components/style/withInputNumberCss.tsx +18 -0
  94. package/components/svg.d.ts +1 -0
  95. package/components/table/dragSortingTable.tsx +123 -0
  96. package/components/text/impl/innerSize.ts +15 -0
  97. package/components/text/impl/series.ts +37 -0
  98. package/components/text/impl/shallowEqual.ts +19 -0
  99. package/components/text/impl/uniqueId.ts +5 -0
  100. package/components/text/impl/whilst.ts +25 -0
  101. package/components/text/textFit.tsx +229 -0
  102. package/i18n/components.cs.json +101 -101
  103. package/i18n/components.sk.json +101 -101
  104. package/i18n/components.uk.json +101 -101
  105. package/i18n/componentsLocaleHolder.js +24 -29
  106. package/i18n/componentsLocaleLoader.d.ts +9 -0
  107. package/lib/esm/components/color/colorSwatch.d.ts +13 -0
  108. package/lib/esm/components/grid/cell/rangeSelector.d.ts +78 -0
  109. package/lib/esm/components/grid/cell/rangeSelector.js +527 -0
  110. package/{components → lib/esm/components}/grid/export/contextMenu.js +4 -4
  111. package/lib/esm/components/input/draftail.d.ts +1 -0
  112. package/lib/esm/components/input/draftail.js +2 -0
  113. package/lib/esm/i18n/components.cs.json +101 -0
  114. package/lib/esm/i18n/components.sk.json +101 -0
  115. package/lib/esm/i18n/components.uk.json +101 -0
  116. package/lib/esm/i18n/componentsLocaleHolder.js +29 -0
  117. package/lib/esm/package.json +70 -0
  118. package/lib/esm/tsconfig.build.json +24 -0
  119. package/lib/esm/tsconfig.json +11 -0
  120. package/package.json +3 -3
  121. package/tsconfig.build.json +24 -24
  122. package/tsconfig.json +11 -11
  123. /package/{components → lib/esm/components}/clipboard/clipboardUtils.d.ts +0 -0
  124. /package/{components → lib/esm/components}/clipboard/clipboardUtils.js +0 -0
  125. /package/{components → lib/esm/components}/clipboard/clipboardUtils.js.map +0 -0
  126. /package/{components → lib/esm/components}/codemirror/SyntaxHighlighter.d.ts +0 -0
  127. /package/{components → lib/esm/components}/codemirror/SyntaxHighlighter.js +0 -0
  128. /package/{components → lib/esm/components}/codemirror/SyntaxHighlighter.js.map +0 -0
  129. /package/{components → lib/esm/components}/collapse/expandable.d.ts +0 -0
  130. /package/{components → lib/esm/components}/collapse/expandable.js +0 -0
  131. /package/{components → lib/esm/components}/collapse/expandable.js.map +0 -0
  132. /package/{components → lib/esm/components}/color/colorPicker.d.ts +0 -0
  133. /package/{components → lib/esm/components}/color/colorPicker.js +0 -0
  134. /package/{components → lib/esm/components}/color/colorPicker.js.map +0 -0
  135. /package/{components → lib/esm/components}/color/colorSwatch.js +0 -0
  136. /package/{components → lib/esm/components}/color/colorSwatch.js.map +0 -0
  137. /package/{components → lib/esm/components}/color/colorUtils.d.ts +0 -0
  138. /package/{components → lib/esm/components}/color/colorUtils.js +0 -0
  139. /package/{components → lib/esm/components}/color/colorUtils.js.map +0 -0
  140. /package/{components → lib/esm/components}/date/dateRangeInput.d.ts +0 -0
  141. /package/{components → lib/esm/components}/date/dateRangeInput.js +0 -0
  142. /package/{components → lib/esm/components}/date/dateRangeInput.js.map +0 -0
  143. /package/{components → lib/esm/components}/date/dateRangeInputAdvancedPanel.d.ts +0 -0
  144. /package/{components → lib/esm/components}/date/dateRangeInputAdvancedPanel.js +0 -0
  145. /package/{components → lib/esm/components}/date/dateRangeInputAdvancedPanel.js.map +0 -0
  146. /package/{components → lib/esm/components}/date/dateRangeInputConfirm.d.ts +0 -0
  147. /package/{components → lib/esm/components}/date/dateRangeInputConfirm.js +0 -0
  148. /package/{components → lib/esm/components}/date/dateRangeInputConfirm.js.map +0 -0
  149. /package/{components → lib/esm/components}/date/dateTimeInput.d.ts +0 -0
  150. /package/{components → lib/esm/components}/date/dateTimeInput.js +0 -0
  151. /package/{components → lib/esm/components}/date/dateTimeInput.js.map +0 -0
  152. /package/{components → lib/esm/components}/date/durationInput.d.ts +0 -0
  153. /package/{components → lib/esm/components}/date/durationInput.js +0 -0
  154. /package/{components → lib/esm/components}/date/durationInput.js.map +0 -0
  155. /package/{components → lib/esm/components}/form/NiceFormItem.d.ts +0 -0
  156. /package/{components → lib/esm/components}/form/NiceFormItem.js +0 -0
  157. /package/{components → lib/esm/components}/form/NiceFormItem.js.map +0 -0
  158. /package/{components → lib/esm/components}/grid/cell/beanAccessor.d.ts +0 -0
  159. /package/{components → lib/esm/components}/grid/cell/beanAccessor.js +0 -0
  160. /package/{components → lib/esm/components}/grid/cell/beanAccessor.js.map +0 -0
  161. /package/{components → lib/esm/components}/grid/cell/cellEditorUtils.d.ts +0 -0
  162. /package/{components → lib/esm/components}/grid/cell/cellEditorUtils.js +0 -0
  163. /package/{components → lib/esm/components}/grid/cell/cellEditorUtils.js.map +0 -0
  164. /package/{components → lib/esm/components}/grid/cell/customEnumCellEditor.d.ts +0 -0
  165. /package/{components → lib/esm/components}/grid/cell/customEnumCellEditor.js +0 -0
  166. /package/{components → lib/esm/components}/grid/cell/customEnumCellEditor.js.map +0 -0
  167. /package/{components → lib/esm/components}/grid/cell/dataGridCellEditorComponent.d.ts +0 -0
  168. /package/{components → lib/esm/components}/grid/cell/dataGridCellEditorComponent.js +0 -0
  169. /package/{components → lib/esm/components}/grid/cell/dataGridCellEditorComponent.js.map +0 -0
  170. /package/{components → lib/esm/components}/grid/cell/dateCellEditor.d.ts +0 -0
  171. /package/{components → lib/esm/components}/grid/cell/dateCellEditor.js +0 -0
  172. /package/{components → lib/esm/components}/grid/cell/dateCellEditor.js.map +0 -0
  173. /package/{components → lib/esm/components}/grid/cell/durationCellEditor.d.ts +0 -0
  174. /package/{components → lib/esm/components}/grid/cell/durationCellEditor.js +0 -0
  175. /package/{components → lib/esm/components}/grid/cell/durationCellEditor.js.map +0 -0
  176. /package/{components → lib/esm/components}/grid/cell/hexaOctetStringCellEditor.d.ts +0 -0
  177. /package/{components → lib/esm/components}/grid/cell/hexaOctetStringCellEditor.js +0 -0
  178. /package/{components → lib/esm/components}/grid/cell/hexaOctetStringCellEditor.js.map +0 -0
  179. /package/{components → lib/esm/components}/grid/cell/hexaValueCellEditor.d.ts +0 -0
  180. /package/{components → lib/esm/components}/grid/cell/hexaValueCellEditor.js +0 -0
  181. /package/{components → lib/esm/components}/grid/cell/hexaValueCellEditor.js.map +0 -0
  182. /package/{components → lib/esm/components}/grid/cell/numberCellEditor.d.ts +0 -0
  183. /package/{components → lib/esm/components}/grid/cell/numberCellEditor.js +0 -0
  184. /package/{components → lib/esm/components}/grid/cell/numberCellEditor.js.map +0 -0
  185. /package/{components → lib/esm/components}/grid/cell/rangeSelector.js.map +0 -0
  186. /package/{components → lib/esm/components}/grid/cell/simpleStatusTextCellEditor.d.ts +0 -0
  187. /package/{components → lib/esm/components}/grid/cell/simpleStatusTextCellEditor.js +0 -0
  188. /package/{components → lib/esm/components}/grid/cell/simpleStatusTextCellEditor.js.map +0 -0
  189. /package/{components → lib/esm/components}/grid/cell/statusTextCellEditor.d.ts +0 -0
  190. /package/{components → lib/esm/components}/grid/cell/statusTextCellEditor.js +0 -0
  191. /package/{components → lib/esm/components}/grid/cell/statusTextCellEditor.js.map +0 -0
  192. /package/{components → lib/esm/components}/grid/cell/tableDefaultRowStyleRules.d.ts +0 -0
  193. /package/{components → lib/esm/components}/grid/cell/tableDefaultRowStyleRules.js +0 -0
  194. /package/{components → lib/esm/components}/grid/cell/tableDefaultRowStyleRules.js.map +0 -0
  195. /package/{components → lib/esm/components}/grid/cell/textCellEditor.d.ts +0 -0
  196. /package/{components → lib/esm/components}/grid/cell/textCellEditor.js +0 -0
  197. /package/{components → lib/esm/components}/grid/cell/textCellEditor.js.map +0 -0
  198. /package/{components → lib/esm/components}/grid/cell/withAgGridHooks.d.ts +0 -0
  199. /package/{components → lib/esm/components}/grid/cell/withAgGridHooks.js +0 -0
  200. /package/{components → lib/esm/components}/grid/cell/withAgGridHooks.js.map +0 -0
  201. /package/{components → lib/esm/components}/grid/columnUtils.d.ts +0 -0
  202. /package/{components → lib/esm/components}/grid/columnUtils.js +0 -0
  203. /package/{components → lib/esm/components}/grid/columnUtils.js.map +0 -0
  204. /package/{components → lib/esm/components}/grid/config/columnTransfer.d.ts +0 -0
  205. /package/{components → lib/esm/components}/grid/config/columnTransfer.js +0 -0
  206. /package/{components → lib/esm/components}/grid/config/columnTransfer.js.map +0 -0
  207. /package/{components → lib/esm/components}/grid/config/dataGridEditor.d.ts +0 -0
  208. /package/{components → lib/esm/components}/grid/config/dataGridEditor.js +0 -0
  209. /package/{components → lib/esm/components}/grid/config/dataGridEditor.js.map +0 -0
  210. /package/{components → lib/esm/components}/grid/config/rowHeightCalculator.d.ts +0 -0
  211. /package/{components → lib/esm/components}/grid/config/rowHeightCalculator.js +0 -0
  212. /package/{components → lib/esm/components}/grid/config/rowHeightCalculator.js.map +0 -0
  213. /package/{components → lib/esm/components}/grid/config/rowStylePicker.d.ts +0 -0
  214. /package/{components → lib/esm/components}/grid/config/rowStylePicker.js +0 -0
  215. /package/{components → lib/esm/components}/grid/config/rowStylePicker.js.map +0 -0
  216. /package/{components → lib/esm/components}/grid/dataGrid.d.ts +0 -0
  217. /package/{components → lib/esm/components}/grid/dataGrid.js +0 -0
  218. /package/{components → lib/esm/components}/grid/dataGrid.js.map +0 -0
  219. /package/{components → lib/esm/components}/grid/detail/detailHeaderPanel.d.ts +0 -0
  220. /package/{components → lib/esm/components}/grid/detail/detailHeaderPanel.js +0 -0
  221. /package/{components → lib/esm/components}/grid/detail/detailHeaderPanel.js.map +0 -0
  222. /package/{components → lib/esm/components}/grid/export/contextMenu.d.ts +0 -0
  223. /package/{components → lib/esm/components}/grid/export/contextMenu.js.map +0 -0
  224. /package/{components → lib/esm/components}/grid/export/progressPopup.d.ts +0 -0
  225. /package/{components → lib/esm/components}/grid/export/progressPopup.js +0 -0
  226. /package/{components → lib/esm/components}/grid/export/progressPopup.js.map +0 -0
  227. /package/{components → lib/esm/components}/grid/export/worker/clipboardExport.d.ts +0 -0
  228. /package/{components → lib/esm/components}/grid/export/worker/clipboardExport.js +0 -0
  229. /package/{components → lib/esm/components}/grid/export/worker/clipboardExport.js.map +0 -0
  230. /package/{components → lib/esm/components}/grid/export/worker/csvExport.d.ts +0 -0
  231. /package/{components → lib/esm/components}/grid/export/worker/csvExport.js +0 -0
  232. /package/{components → lib/esm/components}/grid/export/worker/csvExport.js.map +0 -0
  233. /package/{components → lib/esm/components}/grid/export/worker/pdfExport.d.ts +0 -0
  234. /package/{components → lib/esm/components}/grid/export/worker/pdfExport.js +0 -0
  235. /package/{components → lib/esm/components}/grid/export/worker/pdfExport.js.map +0 -0
  236. /package/{components → lib/esm/components}/grid/export/worker/txtExport.d.ts +0 -0
  237. /package/{components → lib/esm/components}/grid/export/worker/txtExport.js +0 -0
  238. /package/{components → lib/esm/components}/grid/export/worker/txtExport.js.map +0 -0
  239. /package/{components → lib/esm/components}/grid/extendedDataGrid.d.ts +0 -0
  240. /package/{components → lib/esm/components}/grid/extendedDataGrid.js +0 -0
  241. /package/{components → lib/esm/components}/grid/extendedDataGrid.js.map +0 -0
  242. /package/{components → lib/esm/components}/grid/filter/customColumnFilter.d.ts +0 -0
  243. /package/{components → lib/esm/components}/grid/filter/customColumnFilter.js +0 -0
  244. /package/{components → lib/esm/components}/grid/filter/customColumnFilter.js.map +0 -0
  245. /package/{components → lib/esm/components}/grid/filter/dataGridColumnFilter.d.ts +0 -0
  246. /package/{components → lib/esm/components}/grid/filter/dataGridColumnFilter.js +0 -0
  247. /package/{components → lib/esm/components}/grid/filter/dataGridColumnFilter.js.map +0 -0
  248. /package/{components → lib/esm/components}/grid/filter/dateColumnFilter.d.ts +0 -0
  249. /package/{components → lib/esm/components}/grid/filter/dateColumnFilter.js +0 -0
  250. /package/{components → lib/esm/components}/grid/filter/dateColumnFilter.js.map +0 -0
  251. /package/{components → lib/esm/components}/grid/filter/textColumnFilter.d.ts +0 -0
  252. /package/{components → lib/esm/components}/grid/filter/textColumnFilter.js +0 -0
  253. /package/{components → lib/esm/components}/grid/filter/textColumnFilter.js.map +0 -0
  254. /package/{components → lib/esm/components}/grid/filter/wildcardQuickFilterEngine.d.ts +0 -0
  255. /package/{components → lib/esm/components}/grid/filter/wildcardQuickFilterEngine.js +0 -0
  256. /package/{components → lib/esm/components}/grid/filter/wildcardQuickFilterEngine.js.map +0 -0
  257. /package/{components → lib/esm/components}/grid/header/simpleHeader.d.ts +0 -0
  258. /package/{components → lib/esm/components}/grid/header/simpleHeader.js +0 -0
  259. /package/{components → lib/esm/components}/grid/header/simpleHeader.js.map +0 -0
  260. /package/{components → lib/esm/components}/grid/panel/dataGridPagination.d.ts +0 -0
  261. /package/{components → lib/esm/components}/grid/panel/dataGridPagination.js +0 -0
  262. /package/{components → lib/esm/components}/grid/panel/dataGridPagination.js.map +0 -0
  263. /package/{components → lib/esm/components}/grid/panel/loadingOverlay.d.ts +0 -0
  264. /package/{components → lib/esm/components}/grid/panel/loadingOverlay.js +0 -0
  265. /package/{components → lib/esm/components}/grid/panel/loadingOverlay.js.map +0 -0
  266. /package/{components → lib/esm/components}/grid/panel/noRecordsOverlay.d.ts +0 -0
  267. /package/{components → lib/esm/components}/grid/panel/noRecordsOverlay.js +0 -0
  268. /package/{components → lib/esm/components}/grid/panel/noRecordsOverlay.js.map +0 -0
  269. /package/{components → lib/esm/components}/grid/panel/tablePagination.d.ts +0 -0
  270. /package/{components → lib/esm/components}/grid/panel/tablePagination.js +0 -0
  271. /package/{components → lib/esm/components}/grid/panel/tablePagination.js.map +0 -0
  272. /package/{components → lib/esm/components}/icons/dropdownArrow.d.ts +0 -0
  273. /package/{components → lib/esm/components}/icons/dropdownArrow.js +0 -0
  274. /package/{components → lib/esm/components}/icons/dropdownArrow.js.map +0 -0
  275. /package/{components → lib/esm/components}/icons/undoIcon.d.ts +0 -0
  276. /package/{components → lib/esm/components}/icons/undoIcon.js +0 -0
  277. /package/{components → lib/esm/components}/icons/undoIcon.js.map +0 -0
  278. /package/{components → lib/esm/components}/input/autoCompleteInput.d.ts +0 -0
  279. /package/{components → lib/esm/components}/input/autoCompleteInput.js +0 -0
  280. /package/{components → lib/esm/components}/input/autoCompleteInput.js.map +0 -0
  281. /package/{components → lib/esm/components}/input/draftUtils.d.ts +0 -0
  282. /package/{components → lib/esm/components}/input/draftUtils.js +0 -0
  283. /package/{components → lib/esm/components}/input/draftUtils.js.map +0 -0
  284. /package/{components → lib/esm/components}/input/draftail.js.map +0 -0
  285. /package/{components → lib/esm/components}/input/hexaFormattedInput.d.ts +0 -0
  286. /package/{components → lib/esm/components}/input/hexaFormattedInput.js +0 -0
  287. /package/{components → lib/esm/components}/input/hexaFormattedInput.js.map +0 -0
  288. /package/{components → lib/esm/components}/input/mask/helpers.d.ts +0 -0
  289. /package/{components → lib/esm/components}/input/mask/helpers.js +0 -0
  290. /package/{components → lib/esm/components}/input/mask/helpers.js.map +0 -0
  291. /package/{components → lib/esm/components}/input/mask/inputMaskCore.d.ts +0 -0
  292. /package/{components → lib/esm/components}/input/mask/inputMaskCore.js +0 -0
  293. /package/{components → lib/esm/components}/input/mask/inputMaskCore.js.map +0 -0
  294. /package/{components → lib/esm/components}/input/mask/pattern.d.ts +0 -0
  295. /package/{components → lib/esm/components}/input/mask/pattern.js +0 -0
  296. /package/{components → lib/esm/components}/input/mask/pattern.js.map +0 -0
  297. /package/{components → lib/esm/components}/input/maskedInput.d.ts +0 -0
  298. /package/{components → lib/esm/components}/input/maskedInput.js +0 -0
  299. /package/{components → lib/esm/components}/input/maskedInput.js.map +0 -0
  300. /package/{components → lib/esm/components}/input/passwordInput.d.ts +0 -0
  301. /package/{components → lib/esm/components}/input/passwordInput.js +0 -0
  302. /package/{components → lib/esm/components}/input/passwordInput.js.map +0 -0
  303. /package/{components → lib/esm/components}/input/simpleAutoComplete.d.ts +0 -0
  304. /package/{components → lib/esm/components}/input/simpleAutoComplete.js +0 -0
  305. /package/{components → lib/esm/components}/input/simpleAutoComplete.js.map +0 -0
  306. /package/{components → lib/esm/components}/input/textarea/extractSpansOfClasses.d.ts +0 -0
  307. /package/{components → lib/esm/components}/input/textarea/extractSpansOfClasses.js +0 -0
  308. /package/{components → lib/esm/components}/input/textarea/extractSpansOfClasses.js.map +0 -0
  309. /package/{components → lib/esm/components}/input/textarea/getRanges.d.ts +0 -0
  310. /package/{components → lib/esm/components}/input/textarea/getRanges.js +0 -0
  311. /package/{components → lib/esm/components}/input/textarea/getRanges.js.map +0 -0
  312. /package/{components → lib/esm/components}/input/textarea/getType.d.ts +0 -0
  313. /package/{components → lib/esm/components}/input/textarea/getType.js +0 -0
  314. /package/{components → lib/esm/components}/input/textarea/getType.js.map +0 -0
  315. /package/{components → lib/esm/components}/input/textarea/highlighedContents.d.ts +0 -0
  316. /package/{components → lib/esm/components}/input/textarea/highlighedContents.js +0 -0
  317. /package/{components → lib/esm/components}/input/textarea/highlighedContents.js.map +0 -0
  318. /package/{components → lib/esm/components}/input/textarea/mentionsWithHighlighting.d.ts +0 -0
  319. /package/{components → lib/esm/components}/input/textarea/mentionsWithHighlighting.js +0 -0
  320. /package/{components → lib/esm/components}/input/textarea/mentionsWithHighlighting.js.map +0 -0
  321. /package/{components → lib/esm/components}/keyboard/keyboardUtils.d.ts +0 -0
  322. /package/{components → lib/esm/components}/keyboard/keyboardUtils.js +0 -0
  323. /package/{components → lib/esm/components}/keyboard/keyboardUtils.js.map +0 -0
  324. /package/{components → lib/esm/components}/modal/draggableModalProvider.d.ts +0 -0
  325. /package/{components → lib/esm/components}/modal/draggableModalProvider.js +0 -0
  326. /package/{components → lib/esm/components}/modal/draggableModalProvider.js.map +0 -0
  327. /package/{components → lib/esm/components}/modal/impl/clamp.d.ts +0 -0
  328. /package/{components → lib/esm/components}/modal/impl/clamp.js +0 -0
  329. /package/{components → lib/esm/components}/modal/impl/clamp.js.map +0 -0
  330. /package/{components → lib/esm/components}/modal/impl/draggableModal.d.ts +0 -0
  331. /package/{components → lib/esm/components}/modal/impl/draggableModal.js +0 -0
  332. /package/{components → lib/esm/components}/modal/impl/draggableModal.js.map +0 -0
  333. /package/{components → lib/esm/components}/modal/impl/draggableModalContext.d.ts +0 -0
  334. /package/{components → lib/esm/components}/modal/impl/draggableModalContext.js +0 -0
  335. /package/{components → lib/esm/components}/modal/impl/draggableModalContext.js.map +0 -0
  336. /package/{components → lib/esm/components}/modal/impl/draggableModalInner.d.ts +0 -0
  337. /package/{components → lib/esm/components}/modal/impl/draggableModalInner.js +0 -0
  338. /package/{components → lib/esm/components}/modal/impl/draggableModalInner.js.map +0 -0
  339. /package/{components → lib/esm/components}/modal/impl/draggableModalReducer.d.ts +0 -0
  340. /package/{components → lib/esm/components}/modal/impl/draggableModalReducer.js +0 -0
  341. /package/{components → lib/esm/components}/modal/impl/draggableModalReducer.js.map +0 -0
  342. /package/{components → lib/esm/components}/modal/impl/getWindowSize.d.ts +0 -0
  343. /package/{components → lib/esm/components}/modal/impl/getWindowSize.js +0 -0
  344. /package/{components → lib/esm/components}/modal/impl/getWindowSize.js.map +0 -0
  345. /package/{components → lib/esm/components}/modal/impl/index.d.ts +0 -0
  346. /package/{components → lib/esm/components}/modal/impl/index.js +0 -0
  347. /package/{components → lib/esm/components}/modal/impl/index.js.map +0 -0
  348. /package/{components → lib/esm/components}/modal/impl/resizeHandle.d.ts +0 -0
  349. /package/{components → lib/esm/components}/modal/impl/resizeHandle.js +0 -0
  350. /package/{components → lib/esm/components}/modal/impl/resizeHandle.js.map +0 -0
  351. /package/{components → lib/esm/components}/modal/impl/useDrag.d.ts +0 -0
  352. /package/{components → lib/esm/components}/modal/impl/useDrag.js +0 -0
  353. /package/{components → lib/esm/components}/modal/impl/useDrag.js.map +0 -0
  354. /package/{components → lib/esm/components}/modal/impl/usePrevious.d.ts +0 -0
  355. /package/{components → lib/esm/components}/modal/impl/usePrevious.js +0 -0
  356. /package/{components → lib/esm/components}/modal/impl/usePrevious.js.map +0 -0
  357. /package/{components → lib/esm/components}/modal/impl/useResize.d.ts +0 -0
  358. /package/{components → lib/esm/components}/modal/impl/useResize.js +0 -0
  359. /package/{components → lib/esm/components}/modal/impl/useResize.js.map +0 -0
  360. /package/{components → lib/esm/components}/modal/modalDialog.d.ts +0 -0
  361. /package/{components → lib/esm/components}/modal/modalDialog.js +0 -0
  362. /package/{components → lib/esm/components}/modal/modalDialog.js.map +0 -0
  363. /package/{components → lib/esm/components}/picker/enumValuePicker.d.ts +0 -0
  364. /package/{components → lib/esm/components}/picker/enumValuePicker.js +0 -0
  365. /package/{components → lib/esm/components}/picker/enumValuePicker.js.map +0 -0
  366. /package/{components → lib/esm/components}/platformSpecific.d.ts +0 -0
  367. /package/{components → lib/esm/components}/platformSpecific.js +0 -0
  368. /package/{components → lib/esm/components}/platformSpecific.js.map +0 -0
  369. /package/{components → lib/esm/components}/scrollTo/onlyText.d.ts +0 -0
  370. /package/{components → lib/esm/components}/scrollTo/onlyText.js +0 -0
  371. /package/{components → lib/esm/components}/scrollTo/onlyText.js.map +0 -0
  372. /package/{components → lib/esm/components}/scrollTo/scrollTo.d.ts +0 -0
  373. /package/{components → lib/esm/components}/scrollTo/scrollTo.js +0 -0
  374. /package/{components → lib/esm/components}/scrollTo/scrollTo.js.map +0 -0
  375. /package/{components → lib/esm/components}/style/withCss.d.ts +0 -0
  376. /package/{components → lib/esm/components}/style/withCss.js +0 -0
  377. /package/{components → lib/esm/components}/style/withCss.js.map +0 -0
  378. /package/{components → lib/esm/components}/style/withInputNumberCss.d.ts +0 -0
  379. /package/{components → lib/esm/components}/style/withInputNumberCss.js +0 -0
  380. /package/{components → lib/esm/components}/style/withInputNumberCss.js.map +0 -0
  381. /package/{components → lib/esm/components}/table/dragSortingTable.d.ts +0 -0
  382. /package/{components → lib/esm/components}/table/dragSortingTable.js +0 -0
  383. /package/{components → lib/esm/components}/table/dragSortingTable.js.map +0 -0
  384. /package/{components → lib/esm/components}/text/impl/innerSize.d.ts +0 -0
  385. /package/{components → lib/esm/components}/text/impl/innerSize.js +0 -0
  386. /package/{components → lib/esm/components}/text/impl/innerSize.js.map +0 -0
  387. /package/{components → lib/esm/components}/text/impl/series.d.ts +0 -0
  388. /package/{components → lib/esm/components}/text/impl/series.js +0 -0
  389. /package/{components → lib/esm/components}/text/impl/series.js.map +0 -0
  390. /package/{components → lib/esm/components}/text/impl/shallowEqual.d.ts +0 -0
  391. /package/{components → lib/esm/components}/text/impl/shallowEqual.js +0 -0
  392. /package/{components → lib/esm/components}/text/impl/shallowEqual.js.map +0 -0
  393. /package/{components → lib/esm/components}/text/impl/uniqueId.d.ts +0 -0
  394. /package/{components → lib/esm/components}/text/impl/uniqueId.js +0 -0
  395. /package/{components → lib/esm/components}/text/impl/uniqueId.js.map +0 -0
  396. /package/{components → lib/esm/components}/text/impl/whilst.d.ts +0 -0
  397. /package/{components → lib/esm/components}/text/impl/whilst.js +0 -0
  398. /package/{components → lib/esm/components}/text/impl/whilst.js.map +0 -0
  399. /package/{components → lib/esm/components}/text/textFit.d.ts +0 -0
  400. /package/{components → lib/esm/components}/text/textFit.js +0 -0
  401. /package/{components → lib/esm/components}/text/textFit.js.map +0 -0
  402. /package/{i18n → lib/esm/i18n}/componentsLocaleHolder.d.ts +0 -0
  403. /package/{i18n → lib/esm/i18n}/componentsLocaleHolder.js.map +0 -0
@@ -0,0 +1,168 @@
1
+ import React from 'react';
2
+ import {Select} from "antd";
3
+ import {LocaleHolder} from "d2core/i18n/localeHolder";
4
+ import ReactDOM from 'react-dom';
5
+ import {Key} from "ts-key-enum";
6
+ import debounce from "lodash/debounce";
7
+ import {RefSelectProps} from "antd/es/select";
8
+ import {CustomCellEditorProps} from "ag-grid-react";
9
+ import {DataGridCellEditorComponent, withAgGridHooks} from "./dataGridCellEditorComponent";
10
+
11
+ interface SimpleStatusTextCellEditorProperties extends CustomCellEditorProps {
12
+ decimalSeparator?: string
13
+ precision?: number
14
+ statusTexts: { text: string, value: number }[];
15
+ }
16
+
17
+ interface SimpleStatusTextCellEditorState {
18
+ value: number | null
19
+ opened: boolean
20
+ }
21
+
22
+ class SimpleStatusTextCellEditor extends DataGridCellEditorComponent<SimpleStatusTextCellEditorProperties, SimpleStatusTextCellEditorState> {
23
+ private selectComponent: RefSelectProps | null = null;
24
+ private wrappingComponent: HTMLDivElement | null = null;
25
+
26
+ constructor(props: Readonly<SimpleStatusTextCellEditorProperties>) {
27
+ super(props);
28
+ this.state = this.getInitialState(props);
29
+ this.updateValueFromPreselection = debounce(this.updateValueFromPreselection.bind(this), 200, {maxWait: 200});
30
+ }
31
+
32
+ getInitialState(props: Readonly<SimpleStatusTextCellEditorProperties>): SimpleStatusTextCellEditorState {
33
+ let value: number | null;
34
+ if (props.eventKey === Key.Backspace || props.eventKey === Key.Delete) {
35
+ // if backspace or delete pressed, we clear the cell
36
+ value = null;
37
+ props.onValueChange(null);
38
+ } else if (props.eventKey && props.eventKey.length === 1) {
39
+ // if a letter was pressed, we start with the letter
40
+ const parsedValue = Number.parseInt(props.eventKey);
41
+ value = isNaN(parsedValue) ? props.value : parsedValue;
42
+ props.onValueChange(value);
43
+ } else {
44
+ // otherwise we start with the current value
45
+ value = props.initialValue;
46
+ }
47
+ return {
48
+ value: value,
49
+ cancelEdit: false,
50
+ opened: true,
51
+ } as SimpleStatusTextCellEditorState;
52
+ }
53
+
54
+ focus() {
55
+ this.selectComponent?.focus();
56
+ }
57
+
58
+ select() {
59
+ }
60
+
61
+ placeCursorToEnd() {
62
+ }
63
+
64
+ render() {
65
+ return (
66
+ <div style={{width: "100%", minWidth: 150}}>
67
+ <Select<number>
68
+ ref={(component) => {
69
+ this.selectComponent = component;
70
+ }}
71
+ size={"small"}
72
+ virtual={false}
73
+ className={"select-with-one-item"}
74
+ showSearch
75
+ popupMatchSelectWidth={false}
76
+ style={{width: "100%", overflow: "auto", padding: 0, margin: 0}}
77
+ dropdownStyle={{maxHeight: 400, overflow: 'auto'}}
78
+ allowClear
79
+ showAction={['focus', 'click']}
80
+ filterOption={(inputValue, option) => {
81
+ const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);
82
+ const value = option?.value;
83
+ return (value !== undefined && value !== null && typeof value === "number" && LocaleHolder.formatNumber(value).indexOf(inputToSearch) >= 0) || ((option?.title?.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) ?? -1) >= 0);
84
+ }}
85
+ value={this.state.value !== null ? this.state.value : undefined}
86
+ onChange={(value) => {
87
+ this.setState({value: value === undefined ? null : value});
88
+ this.props.onValueChange(value === undefined ? null : value);
89
+ }}
90
+ onSelect={(value) => {
91
+ this.setState({value: value === undefined ? null : value});
92
+ this.props.onValueChange(value === undefined ? null : value);
93
+ }}
94
+ onMouseDown={() => {
95
+ this.updateValueImmediately();
96
+ }}
97
+ open={this.state.opened}
98
+ onDropdownVisibleChange={(visible) => {
99
+ this.setState({opened: visible});
100
+ }}
101
+ getPopupContainer={(_trigger) => {
102
+ // very nasty trick how to keep select's popup within focusable area of ag-grid cell editor popup (prevent closing cell editor when we click in select's dropdown area)
103
+ return (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;
104
+ }}
105
+ onInputKeyDown={(e) => {
106
+ if (!e.altKey && (e.key === Key.ArrowUp || e.key === Key.ArrowDown)) {
107
+ this.updateValueFromPreselection();
108
+ }
109
+ }}
110
+ onSearch={() => {
111
+ this.updateValueFromPreselection();
112
+ }}
113
+ dropdownRender={(menu) => {
114
+ return (
115
+ <div ref={(component) => {
116
+ this.wrappingComponent = component;
117
+ }}>
118
+ {menu}
119
+ </div>
120
+ );
121
+ }}
122
+ >
123
+ {this.props.statusTexts?.map((statusTextItem) => {
124
+ return <Select.Option
125
+ id={"select-value-" + statusTextItem.value}
126
+ key={"" + statusTextItem.value}
127
+ value={statusTextItem.value}
128
+ title={statusTextItem.text}
129
+ data-optionvalue={"" + statusTextItem.value}
130
+ >
131
+ <span
132
+ onMouseDown={() => {
133
+ this.setState({value: statusTextItem.value});
134
+ this.props.onValueChange(statusTextItem.value);
135
+ }}
136
+ style={{
137
+ color: "rgba(0, 0, 0, 0.85)",
138
+ whiteSpace: "nowrap"
139
+ }}>
140
+ {`${statusTextItem.text} (${statusTextItem.value})`}
141
+ </span>
142
+ </Select.Option>;
143
+ })}
144
+ </Select>
145
+ </div>
146
+ );
147
+ }
148
+
149
+ private updateValueFromPreselection() {
150
+ setTimeout(() => {
151
+ this.updateValueImmediately();
152
+ }, 200)
153
+ }
154
+
155
+ private updateValueImmediately() {
156
+ let selectables: HTMLElement[] = Array.from(this.wrappingComponent?.getElementsByClassName("ant-select-item-option-active") ?? []) as HTMLElement[];
157
+ if (selectables.length > 0) {
158
+ const optionStringValue = selectables[0].dataset?.optionvalue;
159
+ const optionValue = optionStringValue !== undefined ? Number.parseFloat(optionStringValue) : undefined
160
+ if (optionValue) {
161
+ this.setState({value: optionValue});
162
+ this.props.onValueChange(optionValue);
163
+ }
164
+ }
165
+ }
166
+ }
167
+
168
+ export default withAgGridHooks(SimpleStatusTextCellEditor)
@@ -0,0 +1,198 @@
1
+ import React from 'react';
2
+ import {InputNumber, Select} from "antd";
3
+ import {Key} from "ts-key-enum";
4
+ import KeyboardUtils from "d2coreui/components/keyboard/keyboardUtils";
5
+ import {LocaleHolder} from "d2core/i18n/localeHolder";
6
+ import ReactDOM from 'react-dom';
7
+ import scrollIntoView from "dom-scroll-into-view";
8
+ import {CustomCellEditorProps} from "ag-grid-react";
9
+ import {DataGridCellEditorComponent, withAgGridHooks} from "./dataGridCellEditorComponent";
10
+
11
+ interface StatusTextCellEditorProperties extends CustomCellEditorProps {
12
+ decimalSeparator?: string
13
+ precision?: number
14
+ statusTexts: { text: string, value: number }[];
15
+ }
16
+
17
+ interface StatusTextCellEditorState {
18
+ value: number | null
19
+ opened: boolean
20
+ }
21
+
22
+ class StatusTextCellEditor extends DataGridCellEditorComponent<StatusTextCellEditorProperties, StatusTextCellEditorState> {
23
+ private inputComponent: HTMLInputElement | null = null;
24
+
25
+ constructor(props: Readonly<StatusTextCellEditorProperties>) {
26
+ super(props);
27
+ this.state = this.getInitialState(props);
28
+ }
29
+
30
+ getInitialState(props: Readonly<StatusTextCellEditorProperties>): StatusTextCellEditorState {
31
+ let value: number | null;
32
+
33
+ if (props.eventKey === Key.Backspace || props.eventKey === Key.Delete) {
34
+ // if backspace or delete pressed, we clear the cell
35
+ value = null;
36
+ props.onValueChange(null);
37
+ } else if (props.eventKey && props.eventKey.length === 1) {
38
+ // if a letter was pressed, we start with the letter
39
+ const parsedValue = Number.parseInt(props.eventKey);
40
+ value = isNaN(parsedValue) ? props.value : parsedValue;
41
+ props.onValueChange(value);
42
+ } else {
43
+ // otherwise we start with the current value
44
+ value = props.initialValue;
45
+ }
46
+ return {value: value} as StatusTextCellEditorState;
47
+ }
48
+
49
+ focus() {
50
+ this.inputComponent?.focus();
51
+ }
52
+
53
+ select() {
54
+ this.inputComponent?.select();
55
+ }
56
+
57
+ placeCursorToEnd() {
58
+ // when we started editing, we want the carot at the end, not the start.
59
+ // this comes into play in two scenarios: a) when user hits F2 and b)
60
+ // when user hits a printable character, then on IE (and only IE) the carot
61
+ // was placed after the first character, thus 'apply' would end up as 'pplea'
62
+ const length = this.inputComponent?.value ? this.inputComponent?.value.length : 0;
63
+ if (length > 0) {
64
+ this.inputComponent?.setSelectionRange(length, length);
65
+ }
66
+ }
67
+
68
+ isCancelBeforeStart(): boolean {
69
+ return !!this.props.eventKey && this.props.eventKey.length === 1 && '1234567890'.indexOf(this.props.eventKey) < 0;
70
+ }
71
+
72
+ // noinspection DuplicatedCode
73
+ getScrollParent(element: HTMLElement, includeHidden = false): HTMLElement {
74
+ var style = getComputedStyle(element);
75
+ var excludeStaticParent = style.position === "absolute";
76
+ var overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;
77
+ if (style.position === "fixed") return document.body;
78
+ let parent: HTMLElement | null;
79
+ for (parent = element; (parent = parent.parentElement);) {
80
+ style = getComputedStyle(parent);
81
+ if (excludeStaticParent && style.position === "static") {
82
+ continue;
83
+ }
84
+ if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;
85
+ }
86
+ return document.body;
87
+ }
88
+
89
+ scrollTo(value: number) {
90
+ const elementToScroll = document.getElementById("select-value-" + value);
91
+ if (elementToScroll) {
92
+ const parent = this.getScrollParent(elementToScroll, true);
93
+ scrollIntoView(elementToScroll, parent, {
94
+ onlyScrollIfNeeded: true,
95
+ allowHorizontalScroll: false,
96
+ alignWithTop: true,
97
+ offsetTop: 20,
98
+ offsetBottom: 20,
99
+ });
100
+ }
101
+ }
102
+
103
+ render() {
104
+ return (
105
+ <div style={{width: "100%", minWidth: 150}}>
106
+ <Select<number>
107
+ size={"small"}
108
+ virtual={false}
109
+ popupMatchSelectWidth={false}
110
+ className={"select-with-one-item"}
111
+ style={{width: "100%", overflow: "auto", visibility: "hidden"}}
112
+ dropdownStyle={{maxHeight: 400, overflow: 'auto'}}
113
+ allowClear
114
+ dropdownAlign={{points: ["tl", "tr"], offset: [0, -100], overflow: {adjustX: true, adjustY: true}}}
115
+ filterOption={(inputValue, option) => {
116
+ const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);
117
+ const value: number = option?.value as number;
118
+ return (value?.toString().indexOf(inputToSearch) >= 0) || ((option?.title?.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) ?? -1) >= 0);
119
+ }}
120
+ value={this.state.value !== null ? this.state.value : undefined}
121
+ onChange={(value) => {
122
+ this.setState({value: value});
123
+ this.props.onValueChange(value);
124
+ }}
125
+ open={this.state.opened}
126
+ onDropdownVisibleChange={(visible) => {
127
+ this.setState({opened: visible});
128
+ }}
129
+ getPopupContainer={(_trigger) => {
130
+ // very nasty trick how to keep select's popup within focusable area of ag-grid cell editor popup (prevent closing cell editor when we click in select's dropdown area)
131
+ return (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;
132
+ }}
133
+ >
134
+ {this.props.statusTexts?.map((statusTextItem) => {
135
+ return <Select.Option
136
+ id={"select-value-" + statusTextItem.value}
137
+ key={"" + statusTextItem.value}
138
+ value={statusTextItem.value}
139
+ title={statusTextItem.text}
140
+ >
141
+ <span style={{
142
+ color: "rgba(0, 0, 0, 0.85)",
143
+ whiteSpace: "nowrap"
144
+ }}>{`${statusTextItem.text} (${statusTextItem.value})`}</span>
145
+ </Select.Option>;
146
+ })}
147
+ </Select>
148
+ <InputNumber
149
+ ref={(component) => {
150
+ this.inputComponent = component;
151
+ }}
152
+ size="small"
153
+ style={{
154
+ position: "absolute",
155
+ top: 0,
156
+ bottom: 0,
157
+ left: 0,
158
+ right: 0,
159
+ width: "100%"
160
+ }}
161
+ autoFocus
162
+ decimalSeparator={this.props.decimalSeparator}
163
+ precision={this.props.precision}
164
+ placeholder={this.state.value === null ? "NULL" : ""}
165
+ value={this.state.value !== undefined && this.state.value !== null ? this.state.value : undefined}
166
+ onChange={value => {
167
+ if (KeyboardUtils.isKeyPressed(Key.Alt)) {
168
+ // ignore navigational keystrokes ALT+cursor arrow
169
+ return;
170
+ }
171
+ if (typeof value === "number") {
172
+ this.setState({value: value, opened: true});
173
+ this.scrollTo(value);
174
+ this.props.onValueChange(value);
175
+ } else if (value === undefined || value === "") {
176
+ this.setState({value: null, opened: true});
177
+ this.props.onValueChange(null);
178
+ }
179
+ }}
180
+ onKeyDown={(e) => {
181
+ if (e.key === Key.ArrowUp || e.key === Key.ArrowDown) {
182
+ this.props.onKeyDown(e.nativeEvent);
183
+ e.preventDefault();
184
+ }
185
+ }}
186
+ onFocus={() => {
187
+ this.setState({opened: true});
188
+ }}
189
+ onClick={() => {
190
+ this.setState({opened: true});
191
+ }}
192
+ />
193
+ </div>
194
+ );
195
+ }
196
+ }
197
+
198
+ export default withAgGridHooks(StatusTextCellEditor)
@@ -0,0 +1,51 @@
1
+ import {RGBColor} from "react-color";
2
+ import {GRID_DEFAULT_FONT_SIZE, GRID_DEFAULT_ROW_HEIGHT_DELTA} from "../config/rowHeightCalculator";
3
+
4
+ export interface GridRowStyle {
5
+ [cssProperty: string]: string | number | RGBColor
6
+ }
7
+
8
+ export interface RowStyleRule {
9
+ name: string
10
+ divider?: string
11
+ key: string
12
+ expression: string | null
13
+ style: GridRowStyle
14
+ styleEditor?: {
15
+ backgroundColor?: boolean
16
+ color?: boolean
17
+ fontSize?: boolean
18
+ fontWeight?: boolean
19
+ rowHeightDelta?: boolean
20
+ }
21
+ }
22
+
23
+ const tableDefaultRowStyleRules = function (): RowStyleRule[] {
24
+ return [
25
+ {
26
+ name: "Font Size",
27
+ divider: "All Rows",
28
+ key: "table-font-size",
29
+ expression: null,
30
+ style: {
31
+ fontSize: GRID_DEFAULT_FONT_SIZE
32
+ },
33
+ styleEditor: {
34
+ fontSize: true,
35
+ }
36
+ },
37
+ {
38
+ name: "Line Indentation",
39
+ key: "table-line-indentation",
40
+ expression: null,
41
+ style: {
42
+ rowHeightDelta: GRID_DEFAULT_ROW_HEIGHT_DELTA
43
+ },
44
+ styleEditor: {
45
+ rowHeightDelta: true,
46
+ }
47
+ }
48
+ ];
49
+ };
50
+
51
+ export default tableDefaultRowStyleRules;
@@ -0,0 +1,94 @@
1
+ import React from 'react';
2
+ import {Input, InputRef} from "antd";
3
+ import {Key} from "ts-key-enum";
4
+ import KeyboardUtils from "d2coreui/components/keyboard/keyboardUtils";
5
+ import {CustomCellEditorProps} from "ag-grid-react";
6
+ import {DataGridCellEditorComponent, withAgGridHooks} from "./dataGridCellEditorComponent";
7
+
8
+ interface TextCellEditorProperties extends CustomCellEditorProps {
9
+ }
10
+
11
+ interface TextCellEditorState {
12
+ value: string | null
13
+ }
14
+
15
+ class TextCellEditorComponent extends DataGridCellEditorComponent<TextCellEditorProperties, TextCellEditorState> {
16
+ private inputComponent: InputRef | null = null;
17
+
18
+ constructor(props: Readonly<TextCellEditorProperties>) {
19
+ super(props);
20
+ this.state = this.getInitialState(props);
21
+ }
22
+
23
+ getInitialState(props: Readonly<TextCellEditorProperties>): TextCellEditorState {
24
+ let value: string | null;
25
+ if (props.eventKey === Key.Backspace || props.eventKey === Key.Delete) {
26
+ // if backspace or delete pressed, we clear the cell
27
+ value = null;
28
+ props.onValueChange(null);
29
+ } else if (props.eventKey && props.eventKey.length === 1) {
30
+ // if a letter was pressed, we start with the letter
31
+ value = props.eventKey;
32
+ props.onValueChange(value);
33
+ } else {
34
+ // otherwise we start with the current value
35
+ value = props.initialValue;
36
+ }
37
+ return {value: value} as TextCellEditorState;
38
+ }
39
+
40
+ focus() {
41
+ this.inputComponent?.focus();
42
+ }
43
+
44
+ select() {
45
+ this.inputComponent?.input?.select();
46
+ }
47
+
48
+ placeCursorToEnd() {
49
+ // when we started editing, we want the carot at the end, not the start.
50
+ // this comes into play in two scenarios: a) when user hits F2 and b)
51
+ // when user hits a printable character, then on IE (and only IE) the carot
52
+ // was placed after the first character, thus 'apply' would end up as 'pplea'
53
+ const length = this.inputComponent?.input?.value ? this.inputComponent?.input.value.length : 0;
54
+ if (length > 0) {
55
+ this.inputComponent?.input?.setSelectionRange(length, length);
56
+ }
57
+ }
58
+
59
+ render() {
60
+ const inputWidth = !!this.state.value && this.state.value.length > 40 ? this.state.value.length : 40;
61
+ return (
62
+ <Input
63
+ ref={(component) => {
64
+ this.inputComponent = component as InputRef | null;
65
+ }}
66
+ size="small"
67
+ autoFocus
68
+ placeholder={this.state.value === null ? "NULL" : ""}
69
+ value={this.state.value != undefined ? this.state.value : undefined}
70
+ onChange={(event) => {
71
+ if (KeyboardUtils.isKeyPressed(Key.Alt)) {
72
+ // ignore navigational keystrokes ALT+cursor arrow
73
+ return;
74
+ }
75
+ this.setState({value: event.target.value});
76
+ this.props.onValueChange(event.target.value);
77
+ }}
78
+ onKeyDown={(e) => {
79
+ if (e.key === Key.ArrowUp || e.key === Key.ArrowDown) {
80
+ this.props.onKeyDown(e.nativeEvent);
81
+ e.preventDefault();
82
+ }
83
+ // In watch panel Delete propagation cause remove of line
84
+ if (e.key === Key.Delete) {
85
+ e.stopPropagation();
86
+ }
87
+ }}
88
+ style={{width: '100%', minWidth: `min( 85vw, ${inputWidth}ch)`}}
89
+ />
90
+ );
91
+ }
92
+ }
93
+
94
+ export default withAgGridHooks(TextCellEditorComponent)
@@ -0,0 +1,15 @@
1
+ import {CustomCellEditorProps, useGridCellEditor} from "ag-grid-react";
2
+ import React, {useRef} from "react";
3
+ import {DataGridCellEditorComponent} from "./dataGridCellEditorComponent";
4
+
5
+ export function withAgGridHooks<P extends CustomCellEditorProps, S>(Component: any) {
6
+ return (props: CustomCellEditorProps) => {
7
+ const componentRef: React.MutableRefObject<DataGridCellEditorComponent<P, S> | null> = useRef(null);
8
+ useGridCellEditor({
9
+ isCancelBeforeStart: () => {
10
+ return componentRef.current?.isCancelBeforeStart?.() ?? false;
11
+ }
12
+ });
13
+ return <Component ref={componentRef} {...props} />;
14
+ };
15
+ }
@@ -0,0 +1,29 @@
1
+ import {ColDef, ColumnState} from "ag-grid-community";
2
+ import {DataGridColDef} from "./dataGrid";
3
+
4
+ export class ColumnUtils {
5
+ static mergeColumnsState(columnsState:ColumnState[], columnsDefinition: ColDef[] | DataGridColDef[]) {
6
+ const defaultState = columnsDefinition.map(columnDef=> {
7
+ return {
8
+ aggFunc: columnDef.aggFunc,
9
+ colId: columnDef.colId,
10
+ flex: columnDef.initialFlex,
11
+ hide: columnDef.initialHide,
12
+ pinned: columnDef.initialPinned,
13
+ pivot: columnDef.initialPivot,
14
+ pivotIndex: columnDef.initialPivotIndex,
15
+ rowGroup: columnDef.initialRowGroup,
16
+ rowGroupIndex: columnDef.initialRowGroupIndex,
17
+ sort: columnDef.initialSort,
18
+ sortIndex: columnDef.initialSortIndex,
19
+ width: columnDef.initialWidth,
20
+ } as ColumnState;
21
+ });
22
+ defaultState.forEach((defaultColumnState, index)=>{
23
+ const definedColumnState = columnsState.find(columnState=> columnState.colId === defaultColumnState.colId);
24
+ if(!definedColumnState) {
25
+ columnsState.splice(index, 0, defaultColumnState);
26
+ }
27
+ });
28
+ }
29
+ }