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,238 @@
1
+ import React from "react";
2
+ import {Button, Col, Divider, Row, Space} from "antd";
3
+ import i18n from "d2core/i18n/i18n";
4
+ import {OpUnitType} from "dayjs";
5
+ import {DurationUnitType} from "d2core/dayjs/duration";
6
+ import Icon from "@ant-design/icons/es/components/Icon";
7
+
8
+ export enum TimeShiftDirection {
9
+ INCREMENT,
10
+ DECREMENT,
11
+ }
12
+
13
+ interface DateRangeInputAdvancedPanelProps {
14
+ onBeginIntervalChange(unit: OpUnitType | "15minutes"): void
15
+
16
+ onIntervalDurationChange(unitOfTime: DurationUnitType | "4years"): void
17
+
18
+ onTimeShift(shiftBegin: boolean, shiftEnd: boolean, unitOfTime: DurationUnitType, direction: TimeShiftDirection): void
19
+
20
+ onEndIntervalChange(unit: OpUnitType | "15minutes"): void
21
+ }
22
+
23
+ interface DateRangeInputAdvancedPanelState {
24
+ timeShiftBegin: boolean
25
+ timeShiftBoth: boolean
26
+ timeShiftEnd: boolean
27
+ }
28
+
29
+ export default class DateRangeInputAdvancedPanel extends React.Component<DateRangeInputAdvancedPanelProps, DateRangeInputAdvancedPanelState> {
30
+ constructor(props: Readonly<DateRangeInputAdvancedPanelProps>) {
31
+ super(props);
32
+
33
+ this.state = {
34
+ timeShiftBegin: false,
35
+ timeShiftBoth: true,
36
+ timeShiftEnd: false,
37
+ }
38
+ }
39
+
40
+ private renderSectionTitle(title: React.ReactNode, style?: React.CSSProperties) {
41
+ return (
42
+ <span style={
43
+ Object.assign({display: "block", fontWeight: "bold", textAlign: "center", marginBottom: 4}, style)}
44
+ >
45
+ {`${title}:`}
46
+ </span>
47
+ );
48
+ }
49
+
50
+ private renderButton(title: React.ReactNode, callback: () => void) {
51
+ return (
52
+ <Button
53
+ size="small"
54
+ block
55
+ onClick={callback}
56
+ >
57
+ {title}
58
+ </Button>
59
+ );
60
+ }
61
+
62
+ private renderTimeShiftItem(title: React.ReactNode, callback: (direction: TimeShiftDirection) => void) {
63
+ const disabled = !this.state.timeShiftBegin && !this.state.timeShiftEnd && !this.state.timeShiftBoth;
64
+
65
+ return (
66
+ <Space.Compact block size="small">
67
+ <Button
68
+ style={{width: "22%"}}
69
+ disabled={disabled}
70
+ icon="-"
71
+ onClick={() => callback(TimeShiftDirection.DECREMENT)}
72
+ />
73
+ <span
74
+ style={{
75
+ width: "56%",
76
+ color: "rgba(0, 0, 0, 0.88)",
77
+ borderTop: "1px solid #d9d9d9",
78
+ borderBottom: "1px solid #d9d9d9",
79
+ textAlign: "center",
80
+ cursor: "default",
81
+ }}
82
+ >
83
+ {title}
84
+ </span>
85
+ <Button
86
+ style={{width: "22%"}}
87
+ disabled={disabled}
88
+ icon="+"
89
+ onClick={() => callback(TimeShiftDirection.INCREMENT)}
90
+ />
91
+ </Space.Compact>
92
+ );
93
+ }
94
+
95
+ private renderTimeShiftIcon(shiftType: "begin" | "both" | "end") {
96
+ let checked = false;
97
+ if (shiftType === "begin") {
98
+ checked = this.state.timeShiftBegin;
99
+ } else if (shiftType === "both") {
100
+ checked = this.state.timeShiftBoth;
101
+ } else if (shiftType === "end") {
102
+ checked = this.state.timeShiftEnd;
103
+ }
104
+
105
+ return (
106
+ <Icon component={() =>
107
+ <svg
108
+ className="icon"
109
+ viewBox="64 64 896 896"
110
+ version="1.1"
111
+ width={40}
112
+ height={40}
113
+ cursor="pointer"
114
+ color={checked ? "#2998ff" : "rgba(0, 0, 0, 0.65)"}
115
+ onClick={() => {
116
+ if (shiftType === "begin") {
117
+ this.setState({
118
+ timeShiftBegin: !this.state.timeShiftBegin,
119
+ timeShiftBoth: false,
120
+ timeShiftEnd: false
121
+ });
122
+ } else if (shiftType === "both") {
123
+ this.setState({
124
+ timeShiftBegin: false,
125
+ timeShiftBoth: !this.state.timeShiftBoth,
126
+ timeShiftEnd: false
127
+ });
128
+ } else if (shiftType === "end") {
129
+ this.setState({
130
+ timeShiftBegin: false,
131
+ timeShiftBoth: false,
132
+ timeShiftEnd: !this.state.timeShiftEnd
133
+ });
134
+ }
135
+ }}
136
+ >
137
+ <path
138
+ d="m 880.43128,184.00001 h -168 v -64 c 0,-4.4 -3.6,-8 -8,-8 h -56 c -4.4,0 -8,3.6 -8,8 v 64 h -256 v -64 c 0,-4.4 -3.6,-8 -8,-8 h -56 c -4.4,0 -8,3.6 -8,8 v 64 h -168 c -17.7,0 -32,14.3 -32,32 v 664 c 0,17.7 14.3,32 32,32 h 736 c 17.7,0 32,-14.3 32,-32 v -664 c 0,-17.7 -14.3,-32 -32,-32 z m -40,656 h -656 v -380 h 656 z m -656,-448 v -136 h 128 v 48 c 0,4.4 3.6,8 8,8 h 56 c 4.4,0 8,-3.6 8,-8 v -48 h 256 v 48 c 0,4.4 3.6,8 8,8 h 56 c 4.4,0 8,-3.6 8,-8 v -48 h 128 v 136 z"
139
+ id="path2231"
140
+ style={{fill: "currentcolor"}}
141
+ />
142
+ {["begin", "end"].includes(shiftType) &&
143
+ <g id="g41">
144
+ <g id="path2822"/>
145
+ <g id="path2824"/>
146
+ <g id="path2826"
147
+ transform={shiftType === "end" ? "rotate(180,512.9334,646.24561)" : "unset"}>
148
+ <path
149
+ id="path50"
150
+ style={{fill: "currentcolor"}}
151
+ d="m 358.80859,510.14062 a 34.41795,34.41795 0 0 0 -23.58789,9.24219 L 226.40625,620.82422 a 34.41795,34.41795 0 0 0 -1.70508,48.64453 34.41795,34.41795 0 0 0 48.64453,1.70703 l 108.8125,-101.4414 a 34.41795,34.41795 0 0 0 1.70703,-48.64454 34.41795,34.41795 0 0 0 -25.05664,-10.94922 z M 249.87565,645.99998 358.68957,544.55871 M 249.7207,611.58203 a 34.41795,34.41795 0 0 0 -24.90625,10.82813 34.41795,34.41795 0 0 0 1.47071,48.65234 l 108.29492,101.93164 a 34.41795,34.41795 0 0 0 48.65234,-1.4707 34.41795,34.41795 0 0 0 -1.47265,-48.65235 L 273.46484,620.9375 a 34.41795,34.41795 0 0 0 -23.74414,-9.35547 z m 0.15495,34.41795 108.29422,101.93273 M 264.8125,610.01953 A 35.98045,35.98045 0 0 0 228.83203,646 35.98045,35.98045 0 0 0 264.8125,681.98047 H 550.48633 A 35.98045,35.98045 0 0 0 586.4668,646 35.98045,35.98045 0 0 0 550.48633,610.01953 Z m 285.67298,35.98045 h -285.6727"/>
152
+ </g>
153
+ </g>
154
+ }
155
+ {shiftType === "both" &&
156
+ <g id="g65" transform="rotate(180,512.9334,646.0254)">
157
+ <path
158
+ id="path63"
159
+ style={{fill: "currentcolor"}}
160
+ d="m 358.80859,510.14062 a 34.41795,34.41795 0 0 0 -23.58789,9.24219 L 226.40625,620.82422 a 34.41795,34.41795 0 0 0 -1.70508,48.64453 34.41795,34.41795 0 0 0 48.64453,1.70703 l 108.8125,-101.4414 a 34.41795,34.41795 0 0 0 1.70703,-48.64454 34.41795,34.41795 0 0 0 -25.05664,-10.94922 z M 249.87565,645.99998 358.68957,544.55871 M 249.7207,611.58203 a 34.41795,34.41795 0 0 0 -24.90625,10.82813 34.41795,34.41795 0 0 0 1.47071,48.65234 l 108.29492,101.93164 a 34.41795,34.41795 0 0 0 48.65234,-1.4707 34.41795,34.41795 0 0 0 -1.47265,-48.65235 L 273.46484,620.9375 a 34.41795,34.41795 0 0 0 -23.74414,-9.35547 z m 0.15495,34.41795 108.29422,101.93273 M 264.8125,610.01953 A 35.98045,35.98045 0 0 0 228.83203,646 35.98045,35.98045 0 0 0 264.8125,681.98047 H 550.48633 A 35.98045,35.98045 0 0 0 586.4668,646 35.98045,35.98045 0 0 0 550.48633,610.01953 Z m 285.67298,35.98045 h -285.6727 m 402.24543,135.9102 a -34.41795,-34.41795 0 0 0 23.58789,-9.24219 L 799.46055,671.22658 a -34.41795,-34.41795 0 0 0 1.70508,-48.64453 -34.41795,-34.41795 0 0 0 -48.64453,-1.70703 l -108.8125,101.4414 a -34.41795,-34.41795 0 0 0 -1.70703,48.64454 -34.41795,-34.41795 0 0 0 25.05664,10.94922 z M 775.99115,646.05082 667.17723,747.49209 M 776.1461,680.46877 a -34.41795,-34.41795 0 0 0 24.90625,-10.82813 -34.41795,-34.41795 0 0 0 -1.47071,-48.65234 L 691.28672,519.05666 a -34.41795,-34.41795 0 0 0 -48.65234,1.4707 -34.41795,-34.41795 0 0 0 1.47265,48.65235 L 752.40196,671.1133 a -34.41795,-34.41795 0 0 0 23.74414,9.35547 z M 775.99115,646.05082 667.69693,544.11809 M 761.0543,682.03127 A -35.98045,-35.98045 0 0 0 797.03477,646.0508 -35.98045,-35.98045 0 0 0 761.0543,610.07033 H 475.38047 A -35.98045,-35.98045 0 0 0 439.4,646.0508 -35.98045,-35.98045 0 0 0 475.38047,682.03127 Z M 475.38132,646.05082 h 285.6727"/>
161
+ </g>
162
+ }
163
+ </svg>
164
+ }/>
165
+ );
166
+ }
167
+
168
+ render() {
169
+ const timeShiftBegin = this.state.timeShiftBegin || this.state.timeShiftBoth;
170
+ const timeShiftEnd = this.state.timeShiftEnd || this.state.timeShiftBoth;
171
+
172
+ return (
173
+ <div style={{color: "rgba(0, 0, 0, 0.65)"}}>
174
+ <Divider style={{margin: "8px 0px 6px"}}/>
175
+ <Row>
176
+ <Col span={8} style={{padding: "0px 16px 0px"}}>
177
+ <Space direction="vertical">
178
+ {this.renderSectionTitle(i18n("Interval Begin"))}
179
+ {this.renderButton(i18n("Now"), () => this.props.onBeginIntervalChange("15minutes"))}
180
+ {this.renderButton(i18n("Today"), () => this.props.onBeginIntervalChange("day"))}
181
+ {this.renderButton(i18n("This Week"), () => this.props.onBeginIntervalChange("week"))}
182
+ {this.renderButton(i18n("This Month"), () => this.props.onBeginIntervalChange("month"))}
183
+ {this.renderButton(i18n("This Year"), () => this.props.onBeginIntervalChange("year"))}
184
+ </Space>
185
+ </Col>
186
+ <Col span={1}>
187
+ <Divider type="vertical" style={{height: "100%"}}/>
188
+ </Col>
189
+ <Col span={7} style={{padding: "0px 14px 0px"}}>
190
+ <Space direction="vertical">
191
+ {this.renderSectionTitle(i18n("Interval Duration"))}
192
+ {this.renderButton(i18n("Hour"), () => this.props.onIntervalDurationChange("hour"))}
193
+ {this.renderButton(i18n("Day"), () => this.props.onIntervalDurationChange("day"))}
194
+ {this.renderButton(i18n("Week"), () => this.props.onIntervalDurationChange("week"))}
195
+ {this.renderButton(i18n("Month"), () => this.props.onIntervalDurationChange("month"))}
196
+ {this.renderButton(i18n("Year"), () => this.props.onIntervalDurationChange("year"))}
197
+ {this.renderButton(`4 ${i18n("Years")}`, () => this.props.onIntervalDurationChange("4years"))}
198
+ </Space>
199
+ </Col>
200
+ <Col span={1}>
201
+ <Divider type="vertical" style={{height: "100%"}}/>
202
+ </Col>
203
+ <Col span={7} style={{padding: "0px 16px 0px"}}>
204
+ <Space direction="vertical">
205
+ {this.renderSectionTitle(i18n("Time Shift"))}
206
+ <div style={{display: "flex", justifyContent: "center", alignItems: "center"}}>
207
+ {this.renderTimeShiftIcon("begin")}
208
+ {this.renderTimeShiftIcon("both")}
209
+ {this.renderTimeShiftIcon("end")}
210
+ </div>
211
+ {this.renderTimeShiftItem(i18n("Hour"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, "hour", direction))}
212
+ {this.renderTimeShiftItem(i18n("Day"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, "day", direction))}
213
+ {this.renderTimeShiftItem(i18n("Week"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, "week", direction))}
214
+ {this.renderTimeShiftItem(i18n("Month"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, "month", direction))}
215
+ {this.renderTimeShiftItem(i18n("Year"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, "year", direction))}
216
+ </Space>
217
+ </Col>
218
+ </Row>
219
+ <Divider style={{margin: "6px 0px 10px"}}/>
220
+ <div style={{display: "flex"}}>
221
+ <div style={{width: 192}}>
222
+ {this.renderSectionTitle(i18n("Interval End"), {marginBottom: 0})}
223
+ </div>
224
+ <div style={{marginLeft: 18, width: 93}}>
225
+ {this.renderButton("15 min", () => this.props.onEndIntervalChange("15minutes"))}
226
+ </div>
227
+ <div style={{marginLeft: 8, width: 93}}>
228
+ {this.renderButton(i18n("Hour"), () => this.props.onEndIntervalChange("hour"))}
229
+ </div>
230
+ <div style={{marginLeft: 8, width: 92}}>
231
+ {this.renderButton(i18n("Day"), () => this.props.onEndIntervalChange("day"))}
232
+ </div>
233
+ </div>
234
+ </div>
235
+ );
236
+ }
237
+
238
+ }
@@ -0,0 +1,200 @@
1
+ import React, {createRef} from "react";
2
+ import {Dayjs} from "dayjs";
3
+ import {Button, Tooltip} from "antd";
4
+ import {DateTimeUtils} from "d2core/utils/dateTimeUtils";
5
+ import {CheckOutlined} from "@ant-design/icons";
6
+ import i18n from "d2core/i18n/i18n";
7
+ import DateRangeInput, {DateRangeInputMode, DateRangeInputProps} from "./dateRangeInput";
8
+ import {TooltipPlacement} from "antd/es/tooltip";
9
+ import {AlignType} from "@rc-component/trigger/lib/interface";
10
+ import {UndoIcon} from "../icons/undoIcon";
11
+ import {SizeType} from "antd/lib/config-provider/SizeContext";
12
+ import {Key} from "ts-key-enum";
13
+
14
+ interface DateRangeInputConfirmProps extends DateRangeInputProps {
15
+ requireConfirmationAtStart?: boolean
16
+ confirmPlacement?: TooltipPlacement
17
+ }
18
+
19
+ interface DateRangeInputConfirmState {
20
+ originalFromValue: Dayjs | null
21
+ originalToValue: Dayjs | null
22
+ currentFromValue: Dayjs | null
23
+ currentToValue: Dayjs | null
24
+ invalidDatesPresent: boolean
25
+ requireConfirmation: boolean
26
+
27
+ popupVisible: boolean
28
+ mode: DateRangeInputMode
29
+ }
30
+
31
+ export default class DateRangeInputConfirm extends React.Component<DateRangeInputConfirmProps, DateRangeInputConfirmState> {
32
+ private dateRangeInput: DateRangeInput | null = null;
33
+ private parentRef: React.RefObject<HTMLSpanElement> = createRef();
34
+
35
+ constructor(props: Readonly<DateRangeInputConfirmProps>) {
36
+ super(props);
37
+ this.state = {
38
+ originalFromValue: props.fromValue ?? null,
39
+ originalToValue: props.toValue ?? null,
40
+ currentFromValue: props.fromValue ?? null,
41
+ currentToValue: props.toValue ?? null,
42
+ invalidDatesPresent: false,
43
+ requireConfirmation: !!props.requireConfirmationAtStart,
44
+
45
+ popupVisible: false,
46
+ mode: props.defaultMode ?? DateRangeInputMode.SIMPLE,
47
+ };
48
+
49
+ this.onKeyDown = this.onKeyDown.bind(this);
50
+ this.onConfirm = this.onConfirm.bind(this);
51
+ this.onRevert = this.onRevert.bind(this);
52
+ }
53
+
54
+ onKeyDown(event: React.KeyboardEvent) {
55
+ if (event.key === Key.Enter) {
56
+ this.onConfirm();
57
+ } else if (event.key === Key.Escape) {
58
+ this.onRevert();
59
+ }
60
+ }
61
+
62
+ componentDidUpdate(prevProps: Readonly<DateRangeInputProps>) {
63
+ const preFromValueUnixTime = DateTimeUtils.toUnixTime(prevProps.fromValue);
64
+ const currentFromValueUnixTime = DateTimeUtils.toUnixTime(this.props.fromValue);
65
+ const prevToValueUnixTime = DateTimeUtils.toUnixTime(prevProps.toValue);
66
+ const currentToValueUnixTime = DateTimeUtils.toUnixTime(this.props.toValue);
67
+ if (preFromValueUnixTime !== currentFromValueUnixTime ||
68
+ prevToValueUnixTime !== currentToValueUnixTime) {
69
+ this.setState({
70
+ originalFromValue: this.props.fromValue ?? null,
71
+ originalToValue: this.props.toValue ?? null,
72
+ currentFromValue: this.props.fromValue ?? null,
73
+ currentToValue: this.props.toValue ?? null
74
+ })
75
+ }
76
+ }
77
+
78
+ private onConfirm() {
79
+ this.setState({requireConfirmation: false});
80
+ this.props.onChange?.(this.state.currentFromValue, this.state.currentToValue);
81
+ this.dateRangeInput?.closePopup();
82
+ }
83
+
84
+ private onRevert() {
85
+ this.setState({
86
+ currentFromValue: this.state.originalFromValue ?? null,
87
+ currentToValue: this.state.originalToValue ?? null,
88
+ invalidDatesPresent: false,
89
+ });
90
+ this.dateRangeInput?.closePopup();
91
+ }
92
+
93
+ private renderConfirmButtons(size?: SizeType, buttonWidth?: number) {
94
+ const validInterval = this.props.allowClear ?
95
+ (!this.state.currentFromValue || this.state.currentFromValue.isValid()) && (!this.state.currentToValue || this.state.currentToValue.isValid()) :
96
+ this.state.currentFromValue && this.state.currentFromValue.isValid() && this.state.currentToValue && this.state.currentToValue.isValid();
97
+
98
+ return (
99
+ <Button.Group style={{background: "white"}}>
100
+ <Button
101
+ style={{borderRightWidth: 2, background: "white", width: buttonWidth}}
102
+ size={size}
103
+ title={i18n("Revert")}
104
+ key="revert"
105
+ danger
106
+ ghost
107
+ onClick={this.onRevert}
108
+ >
109
+ <UndoIcon/>
110
+ </Button>
111
+ <Button
112
+ style={{width: buttonWidth}}
113
+ title={i18n("Apply")} key="apply-button"
114
+ size={size}
115
+ type="primary"
116
+ disabled={!validInterval || this.state.invalidDatesPresent}
117
+ onClick={this.onConfirm}
118
+ >
119
+ <CheckOutlined/>
120
+ </Button>
121
+ </Button.Group>
122
+ );
123
+ }
124
+
125
+ private confirmButtonsVisible() {
126
+ const {originalFromValue, originalToValue, currentFromValue, currentToValue} = this.state;
127
+ const valueChanged = DateTimeUtils.toUnixTime(currentFromValue) !== DateTimeUtils.toUnixTime(originalFromValue) ||
128
+ DateTimeUtils.toUnixTime(currentToValue) !== DateTimeUtils.toUnixTime(originalToValue);
129
+
130
+ return valueChanged || this.state.invalidDatesPresent || this.state.requireConfirmation;
131
+ }
132
+
133
+ render(): any {
134
+ const {
135
+ fromValue,
136
+ toValue,
137
+ onChange,
138
+ allowClear,
139
+ requireConfirmationAtStart,
140
+ confirmPlacement,
141
+ ...rest
142
+ } = this.props;
143
+ let align: AlignType;
144
+ if (confirmPlacement === "right") {
145
+ align = {points: ["tl", "tr"], offset: [-8, 0]};
146
+ } else if (confirmPlacement === "topRight") {
147
+ align = {points: ["br", "tr"], offset: [0, 8]};
148
+ } else {
149
+ // default bottomRight
150
+ align = {points: ["tr", "br"], offset: [0, -6]};
151
+ }
152
+ return (
153
+ <span onKeyDown={this.onKeyDown} ref={this.parentRef}>
154
+ <Tooltip
155
+ color={"transparent"}
156
+ overlayInnerStyle={{boxShadow: "none"}}
157
+ open={this.confirmButtonsVisible() && !this.state.popupVisible}
158
+ align={align}
159
+ title={this.renderConfirmButtons(rest.size, rest.size === "small" ? 48 : undefined)}
160
+ getPopupContainer={() => {
161
+ // very nasty trick how remove error of ResizeObservers infinite cycling - because popover (with dynamic size) is placed in resizable panel
162
+ const parentNode = (this.parentRef.current?.parentNode ?? document.body) as HTMLElement;
163
+ return parentNode;
164
+ }}
165
+ >
166
+ <DateRangeInput
167
+ ref={component => this.dateRangeInput = component}
168
+ fromValue={this.state.currentFromValue}
169
+ toValue={this.state.currentToValue}
170
+ allowClear={allowClear}
171
+ onInvalidValue={(_) => {
172
+ this.setState({invalidDatesPresent: true});
173
+ }}
174
+ onChange={(fromValue: Dayjs | null, toValue: Dayjs | null) => {
175
+ this.setState({
176
+ currentFromValue: fromValue,
177
+ currentToValue: toValue,
178
+ invalidDatesPresent: false,
179
+ })
180
+ }}
181
+ confirmButtonsRenderer={() => {
182
+ if (this.confirmButtonsVisible()) {
183
+ return this.renderConfirmButtons("small", 48);
184
+ }
185
+ return undefined;
186
+ }}
187
+ onPopupVisibleChange={visible => {
188
+ this.setState({popupVisible: visible});
189
+ }}
190
+ defaultMode={this.state.mode}
191
+ onModeChange={mode => {
192
+ this.setState({mode: mode});
193
+ }}
194
+ {...rest}
195
+ />
196
+ </Tooltip>
197
+ </span>
198
+ );
199
+ }
200
+ }