d2coreui 21.0.34 → 23.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/components/clipboard/clipboardUtils.d.ts +4 -3
  2. package/components/clipboard/clipboardUtils.js +47 -22
  3. package/components/clipboard/clipboardUtils.js.map +1 -1
  4. package/components/codemirror/SyntaxHighlighter.d.ts +21 -21
  5. package/components/codemirror/SyntaxHighlighter.js +45 -44
  6. package/components/codemirror/SyntaxHighlighter.js.map +1 -1
  7. package/components/collapse/expandable.d.ts +13 -12
  8. package/components/collapse/expandable.js +20 -20
  9. package/components/collapse/expandable.js.map +1 -1
  10. package/components/color/colorPicker.d.ts +20 -20
  11. package/components/color/colorPicker.js +53 -53
  12. package/components/color/colorPicker.js.map +1 -1
  13. package/components/color/colorSwatch.d.ts +13 -12
  14. package/components/color/colorSwatch.js +62 -62
  15. package/components/color/colorSwatch.js.map +1 -1
  16. package/components/color/colorUtils.d.ts +7 -7
  17. package/components/color/colorUtils.js +43 -43
  18. package/components/color/colorUtils.js.map +1 -1
  19. package/components/date/dateRangeInput.d.ts +66 -64
  20. package/components/date/dateRangeInput.js +292 -297
  21. package/components/date/dateRangeInput.js.map +1 -1
  22. package/components/date/dateRangeInputAdvancedPanel.d.ts +27 -26
  23. package/components/date/dateRangeInputAdvancedPanel.js +130 -115
  24. package/components/date/dateRangeInputAdvancedPanel.js.map +1 -1
  25. package/components/date/dateRangeInputConfirm.d.ts +31 -29
  26. package/components/date/dateRangeInputConfirm.js +132 -121
  27. package/components/date/dateRangeInputConfirm.js.map +1 -1
  28. package/components/date/dateTimeInput.d.ts +72 -69
  29. package/components/date/dateTimeInput.js +440 -412
  30. package/components/date/dateTimeInput.js.map +1 -1
  31. package/components/date/durationInput.d.ts +59 -56
  32. package/components/date/durationInput.js +269 -280
  33. package/components/date/durationInput.js.map +1 -1
  34. package/components/form/NiceFormItem.d.ts +14 -14
  35. package/components/form/NiceFormItem.js +28 -31
  36. package/components/form/NiceFormItem.js.map +1 -1
  37. package/components/grid/cell/beanAccessor.d.ts +9 -0
  38. package/components/grid/cell/beanAccessor.js +13 -0
  39. package/components/grid/cell/beanAccessor.js.map +1 -0
  40. package/components/grid/cell/cellEditorUtils.d.ts +4 -4
  41. package/components/grid/cell/cellEditorUtils.js +8 -8
  42. package/components/grid/cell/customEnumCellEditor.d.ts +4 -27
  43. package/components/grid/cell/customEnumCellEditor.js +82 -91
  44. package/components/grid/cell/customEnumCellEditor.js.map +1 -1
  45. package/components/grid/cell/dataGridCellEditorComponent.d.ts +14 -0
  46. package/components/grid/cell/dataGridCellEditorComponent.js +49 -0
  47. package/components/grid/cell/dataGridCellEditorComponent.js.map +1 -0
  48. package/components/grid/cell/dateCellEditor.d.ts +4 -25
  49. package/components/grid/cell/dateCellEditor.js +53 -72
  50. package/components/grid/cell/dateCellEditor.js.map +1 -1
  51. package/components/grid/cell/durationCellEditor.d.ts +4 -24
  52. package/components/grid/cell/durationCellEditor.js +74 -97
  53. package/components/grid/cell/durationCellEditor.js.map +1 -1
  54. package/components/grid/cell/hexaOctetStringCellEditor.d.ts +4 -24
  55. package/components/grid/cell/hexaOctetStringCellEditor.js +70 -94
  56. package/components/grid/cell/hexaOctetStringCellEditor.js.map +1 -1
  57. package/components/grid/cell/hexaValueCellEditor.d.ts +4 -24
  58. package/components/grid/cell/hexaValueCellEditor.js +65 -89
  59. package/components/grid/cell/hexaValueCellEditor.js.map +1 -1
  60. package/components/grid/cell/numberCellEditor.d.ts +4 -27
  61. package/components/grid/cell/numberCellEditor.js +73 -95
  62. package/components/grid/cell/numberCellEditor.js.map +1 -1
  63. package/components/grid/cell/rangeSelector.d.ts +78 -78
  64. package/components/grid/cell/rangeSelector.js +526 -518
  65. package/components/grid/cell/rangeSelector.js.map +1 -1
  66. package/components/grid/cell/simpleStatusTextCellEditor.d.ts +4 -32
  67. package/components/grid/cell/simpleStatusTextCellEditor.js +106 -116
  68. package/components/grid/cell/simpleStatusTextCellEditor.js.map +1 -1
  69. package/components/grid/cell/statusTextCellEditor.d.ts +4 -32
  70. package/components/grid/cell/statusTextCellEditor.js +136 -159
  71. package/components/grid/cell/statusTextCellEditor.js.map +1 -1
  72. package/components/grid/cell/tableDefaultRowStyleRules.d.ts +20 -20
  73. package/components/grid/cell/tableDefaultRowStyleRules.js +29 -18
  74. package/components/grid/cell/tableDefaultRowStyleRules.js.map +1 -1
  75. package/components/grid/cell/textCellEditor.d.ts +4 -21
  76. package/components/grid/cell/textCellEditor.js +63 -85
  77. package/components/grid/cell/textCellEditor.js.map +1 -1
  78. package/components/grid/cell/withAgGridHooks.d.ts +3 -0
  79. package/components/grid/cell/withAgGridHooks.js +15 -0
  80. package/components/grid/cell/withAgGridHooks.js.map +1 -0
  81. package/components/grid/columnUtils.d.ts +5 -5
  82. package/components/grid/columnUtils.js +26 -26
  83. package/components/grid/columnUtils.js.map +1 -1
  84. package/components/grid/config/columnTransfer.d.ts +21 -22
  85. package/components/grid/config/columnTransfer.js +205 -201
  86. package/components/grid/config/columnTransfer.js.map +1 -1
  87. package/components/grid/config/dataGridEditor.d.ts +41 -41
  88. package/components/grid/config/dataGridEditor.js +181 -160
  89. package/components/grid/config/dataGridEditor.js.map +1 -1
  90. package/components/grid/config/rowHeightCalculator.d.ts +8 -0
  91. package/components/grid/config/rowHeightCalculator.js +20 -0
  92. package/components/grid/config/rowHeightCalculator.js.map +1 -0
  93. package/components/grid/config/rowStylePicker.d.ts +27 -25
  94. package/components/grid/config/rowStylePicker.js +127 -109
  95. package/components/grid/config/rowStylePicker.js.map +1 -1
  96. package/components/grid/dataGrid.d.ts +217 -206
  97. package/components/grid/dataGrid.js +1629 -1538
  98. package/components/grid/dataGrid.js.map +1 -1
  99. package/components/grid/detail/detailHeaderPanel.d.ts +13 -13
  100. package/components/grid/detail/detailHeaderPanel.js +25 -25
  101. package/components/grid/detail/detailHeaderPanel.js.map +1 -1
  102. package/components/grid/export/contextMenu.d.ts +18 -24
  103. package/components/grid/export/contextMenu.js +116 -113
  104. package/components/grid/export/contextMenu.js.map +1 -1
  105. package/components/grid/export/progressPopup.d.ts +29 -29
  106. package/components/grid/export/progressPopup.js +93 -93
  107. package/components/grid/export/progressPopup.js.map +1 -1
  108. package/components/grid/export/worker/clipboardExport.d.ts +1 -1
  109. package/components/grid/export/worker/clipboardExport.js +8 -8
  110. package/components/grid/export/worker/csvExport.d.ts +1 -1
  111. package/components/grid/export/worker/csvExport.js +8 -8
  112. package/components/grid/export/worker/pdfExport.d.ts +1 -1
  113. package/components/grid/export/worker/pdfExport.js +81 -81
  114. package/components/grid/export/worker/pdfExport.js.map +1 -1
  115. package/components/grid/export/worker/txtExport.d.ts +1 -1
  116. package/components/grid/export/worker/txtExport.js +19 -19
  117. package/components/grid/extendedDataGrid.d.ts +140 -140
  118. package/components/grid/extendedDataGrid.js +703 -695
  119. package/components/grid/extendedDataGrid.js.map +1 -1
  120. package/components/grid/filter/customColumnFilter.d.ts +5 -21
  121. package/components/grid/filter/customColumnFilter.js +11 -82
  122. package/components/grid/filter/customColumnFilter.js.map +1 -1
  123. package/components/grid/filter/dataGridColumnFilter.d.ts +17 -0
  124. package/components/grid/filter/dataGridColumnFilter.js +49 -0
  125. package/components/grid/filter/dataGridColumnFilter.js.map +1 -0
  126. package/components/grid/filter/dateColumnFilter.d.ts +7 -11
  127. package/components/grid/filter/dateColumnFilter.js +22 -56
  128. package/components/grid/filter/dateColumnFilter.js.map +1 -1
  129. package/components/grid/filter/textColumnFilter.d.ts +8 -20
  130. package/components/grid/filter/textColumnFilter.js +24 -76
  131. package/components/grid/filter/textColumnFilter.js.map +1 -1
  132. package/components/grid/filter/wildcardQuickFilterEngine.d.ts +7 -0
  133. package/components/grid/filter/wildcardQuickFilterEngine.js +48 -0
  134. package/components/grid/filter/wildcardQuickFilterEngine.js.map +1 -0
  135. package/components/grid/header/simpleHeader.d.ts +17 -16
  136. package/components/grid/header/simpleHeader.js +230 -186
  137. package/components/grid/header/simpleHeader.js.map +1 -1
  138. package/components/grid/panel/dataGridPagination.d.ts +16 -16
  139. package/components/grid/panel/dataGridPagination.js +58 -58
  140. package/components/grid/panel/dataGridPagination.js.map +1 -1
  141. package/components/grid/panel/loadingOverlay.d.ts +6 -6
  142. package/components/grid/panel/loadingOverlay.js +10 -10
  143. package/components/grid/panel/loadingOverlay.js.map +1 -1
  144. package/components/grid/panel/noRecordsOverlay.d.ts +6 -6
  145. package/components/grid/panel/noRecordsOverlay.js +10 -10
  146. package/components/grid/panel/noRecordsOverlay.js.map +1 -1
  147. package/components/grid/panel/tablePagination.d.ts +10 -10
  148. package/components/grid/panel/tablePagination.js +45 -45
  149. package/components/grid/panel/tablePagination.js.map +1 -1
  150. package/components/icons/dropdownArrow.d.ts +8 -0
  151. package/components/icons/dropdownArrow.js +59 -0
  152. package/components/icons/dropdownArrow.js.map +1 -0
  153. package/components/icons/undoIcon.d.ts +8 -8
  154. package/components/icons/undoIcon.js +6 -6
  155. package/components/input/autoCompleteInput.d.ts +34 -35
  156. package/components/input/autoCompleteInput.js +122 -121
  157. package/components/input/autoCompleteInput.js.map +1 -1
  158. package/components/input/draftUtils.d.ts +4 -4
  159. package/components/input/draftUtils.js +48 -48
  160. package/components/input/draftUtils.js.map +1 -1
  161. package/components/input/draftail.d.ts +1 -1
  162. package/components/input/draftail.js +1 -1
  163. package/components/input/hexaFormattedInput.d.ts +16 -16
  164. package/components/input/hexaFormattedInput.js +54 -54
  165. package/components/input/hexaFormattedInput.js.map +1 -1
  166. package/components/input/mask/helpers.d.ts +28 -28
  167. package/components/input/mask/helpers.js +112 -112
  168. package/components/input/mask/helpers.js.map +1 -1
  169. package/components/input/mask/inputMaskCore.d.ts +46 -46
  170. package/components/input/mask/inputMaskCore.js +278 -278
  171. package/components/input/mask/inputMaskCore.js.map +1 -1
  172. package/components/input/mask/pattern.d.ts +20 -20
  173. package/components/input/mask/pattern.js +78 -78
  174. package/components/input/mask/pattern.js.map +1 -1
  175. package/components/input/maskedInput.d.ts +373 -351
  176. package/components/input/maskedInput.js +224 -224
  177. package/components/input/maskedInput.js.map +1 -1
  178. package/components/input/passwordInput.d.ts +9 -9
  179. package/components/input/passwordInput.js +55 -55
  180. package/components/input/passwordInput.js.map +1 -1
  181. package/components/input/simpleAutoComplete.d.ts +12 -12
  182. package/components/input/simpleAutoComplete.js +41 -43
  183. package/components/input/simpleAutoComplete.js.map +1 -1
  184. package/components/input/textarea/extractSpansOfClasses.d.ts +15 -15
  185. package/components/input/textarea/extractSpansOfClasses.js +96 -96
  186. package/components/input/textarea/extractSpansOfClasses.js.map +1 -1
  187. package/components/input/textarea/getRanges.d.ts +1 -1
  188. package/components/input/textarea/getRanges.js +73 -73
  189. package/components/input/textarea/getRanges.js.map +1 -1
  190. package/components/input/textarea/getType.d.ts +1 -1
  191. package/components/input/textarea/getType.js +26 -26
  192. package/components/input/textarea/getType.js.map +1 -1
  193. package/components/input/textarea/highlighedContents.d.ts +6 -6
  194. package/components/input/textarea/highlighedContents.js +10 -10
  195. package/components/input/textarea/mentionsWithHighlighting.d.ts +27 -27
  196. package/components/input/textarea/mentionsWithHighlighting.js +60 -60
  197. package/components/input/textarea/mentionsWithHighlighting.js.map +1 -1
  198. package/components/keyboard/keyboardUtils.d.ts +5 -5
  199. package/components/keyboard/keyboardUtils.js +32 -32
  200. package/components/modal/draggableModalProvider.d.ts +4 -4
  201. package/components/modal/draggableModalProvider.js +21 -21
  202. package/components/modal/draggableModalProvider.js.map +1 -1
  203. package/components/modal/impl/clamp.d.ts +1 -1
  204. package/components/modal/impl/clamp.js +1 -1
  205. package/components/modal/impl/clamp.js.map +1 -1
  206. package/components/modal/impl/draggableModal.d.ts +12 -12
  207. package/components/modal/impl/draggableModal.js +17 -17
  208. package/components/modal/impl/draggableModal.js.map +1 -1
  209. package/components/modal/impl/draggableModalContext.d.ts +9 -9
  210. package/components/modal/impl/draggableModalContext.js +2 -2
  211. package/components/modal/impl/draggableModalContext.js.map +1 -1
  212. package/components/modal/impl/draggableModalInner.d.ts +15 -13
  213. package/components/modal/impl/draggableModalInner.js +57 -55
  214. package/components/modal/impl/draggableModalInner.js.map +1 -1
  215. package/components/modal/impl/draggableModalReducer.d.ts +66 -62
  216. package/components/modal/impl/draggableModalReducer.js +77 -78
  217. package/components/modal/impl/draggableModalReducer.js.map +1 -1
  218. package/components/modal/impl/getWindowSize.d.ts +4 -4
  219. package/components/modal/impl/getWindowSize.js +4 -4
  220. package/components/modal/impl/getWindowSize.js.map +1 -1
  221. package/components/modal/impl/index.d.ts +3 -3
  222. package/components/modal/impl/index.js +3 -3
  223. package/components/modal/impl/index.js.map +1 -1
  224. package/components/modal/impl/resizeHandle.d.ts +3 -3
  225. package/components/modal/impl/resizeHandle.js +4 -4
  226. package/components/modal/impl/resizeHandle.js.map +1 -1
  227. package/components/modal/impl/useDrag.d.ts +5 -5
  228. package/components/modal/impl/useDrag.js +42 -42
  229. package/components/modal/impl/useDrag.js.map +1 -1
  230. package/components/modal/impl/usePrevious.d.ts +1 -1
  231. package/components/modal/impl/usePrevious.js +8 -8
  232. package/components/modal/impl/usePrevious.js.map +1 -1
  233. package/components/modal/impl/useResize.d.ts +7 -7
  234. package/components/modal/impl/useResize.js +46 -46
  235. package/components/modal/impl/useResize.js.map +1 -1
  236. package/components/modal/modalDialog.d.ts +49 -49
  237. package/components/modal/modalDialog.js +152 -152
  238. package/components/modal/modalDialog.js.map +1 -1
  239. package/components/picker/enumValuePicker.d.ts +16 -16
  240. package/components/picker/enumValuePicker.js +34 -34
  241. package/components/picker/enumValuePicker.js.map +1 -1
  242. package/components/platformSpecific.d.ts +10 -10
  243. package/components/platformSpecific.js +27 -27
  244. package/components/scrollTo/onlyText.d.ts +4 -4
  245. package/components/scrollTo/onlyText.js +30 -30
  246. package/components/scrollTo/onlyText.js.map +1 -1
  247. package/components/scrollTo/scrollTo.d.ts +41 -39
  248. package/components/scrollTo/scrollTo.js +264 -264
  249. package/components/scrollTo/scrollTo.js.map +1 -1
  250. package/components/style/withCss.d.ts +9 -0
  251. package/components/style/withCss.js +6 -0
  252. package/components/style/withCss.js.map +1 -0
  253. package/components/style/withInputNumberCss.d.ts +6 -0
  254. package/components/style/withInputNumberCss.js +13 -0
  255. package/components/style/withInputNumberCss.js.map +1 -0
  256. package/components/table/dragSortingTable.d.ts +13 -14
  257. package/components/table/dragSortingTable.js +96 -82
  258. package/components/table/dragSortingTable.js.map +1 -1
  259. package/components/text/impl/innerSize.d.ts +2 -2
  260. package/components/text/impl/innerSize.js +12 -12
  261. package/components/text/impl/series.d.ts +1 -1
  262. package/components/text/impl/series.js +28 -28
  263. package/components/text/impl/shallowEqual.d.ts +1 -1
  264. package/components/text/impl/shallowEqual.js +18 -18
  265. package/components/text/impl/shallowEqual.js.map +1 -1
  266. package/components/text/impl/uniqueId.d.ts +1 -1
  267. package/components/text/impl/uniqueId.js +4 -4
  268. package/components/text/impl/whilst.d.ts +1 -1
  269. package/components/text/impl/whilst.js +19 -19
  270. package/components/text/impl/whilst.js.map +1 -1
  271. package/components/text/textFit.d.ts +38 -38
  272. package/components/text/textFit.js +165 -168
  273. package/components/text/textFit.js.map +1 -1
  274. package/i18n/components.cs.json +101 -100
  275. package/i18n/components.sk.json +101 -100
  276. package/i18n/components.uk.json +101 -100
  277. package/i18n/componentsLocaleHolder.d.ts +3 -3
  278. package/i18n/componentsLocaleHolder.js +28 -28
  279. package/i18n/componentsLocaleHolder.js.map +1 -1
  280. package/package.json +70 -70
  281. package/style/index.less +245 -298
  282. package/style/modal/DraggableModal.css +43 -40
  283. package/style/modal/ResizeHandle.css +27 -19
  284. package/tsconfig.build.json +24 -24
  285. package/tsconfig.json +11 -11
  286. package/components/grid/cell/wildcardQuickFilter.d.ts +0 -11
  287. package/components/grid/cell/wildcardQuickFilter.js +0 -61
  288. package/components/grid/cell/wildcardQuickFilter.js.map +0 -1
  289. package/components/table/dataTable.d.ts +0 -17
  290. package/components/table/dataTable.js +0 -79
  291. package/components/table/dataTable.js.map +0 -1
  292. package/style/antd/antd-tree-showline.css +0 -25
  293. package/style/antd/full-height-tabs.scss +0 -63
  294. package/style/draftail/draftail-editor.css +0 -179
  295. package/style/table/dragSortingTable.css +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimeInput.js","sourceRoot":"","sources":["../../../../components/date/dateTimeInput.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,MAAgB,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACvD,OAAO,EAAC,GAAG,EAAC,MAAM,aAAa,CAAC;AAChC,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AA2DlE,MAAM,kBAAkB,GAAgB;IACpC,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAC;IAC1C,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;IACvC,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;IACvC,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;IACvC,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAC;IACjE,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;IACvC,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;CAC1C,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,UAAU,qBAAqB;IACjC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAiD;IAI9F,YAAY,KAAmC;;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;QAJT,aAAQ,GAA2B,KAAK,CAAC,SAAS,EAAE,CAAC;QACrD,UAAK,GAAW,MAAM,EAAE,CAAC;QAI7B,IAAI,CAAC,KAAK,GAAG;YACT,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;YAC/F,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE;gBACT,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,CAAC;aACZ;YACD,oBAAoB,EAAE,KAAK;YAC3B,oBAAoB,EAAE,MAAA,MAAA,MAAA,KAAK,CAAC,mBAAmB,0CAAE,KAAK,EAAE,mCAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3G,OAAO,EAAE,KAAK;SACjB,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAC,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;IAC1F,CAAC;IAED,kBAAkB,CAAC,SAAuC,EAAE,UAAwC,EAAE,SAAe;QACjH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE;YACnE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACjE,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACtC,IAAI,CAAC,QAAQ,CAAC,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EAAC,CAAC,CAAC;aACxI;SACJ;IACL,CAAC;IAED,IAAI,KAAK;;QACL,OAAO,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC;IACxC,CAAC;IAED,KAAK;;QACD,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC;gBACV,WAAW,EAAE,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;gBAChK,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc;aACzD,CAAC,CAAC;SACN;IACL,CAAC;IAEO,SAAS;;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;YACvI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC5B;QAED,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAEO,aAAa,CAAC,IAA4B;;QAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC9E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC,CAAC;aAC1D;iBAAM;gBACH,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;aACnD;SACJ;IACL,CAAC;IAEO,SAAS;;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;YACxI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC5B;QAED,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAEO,aAAa,CAAC,IAA4B;;QAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC/E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC,CAAC;aAC1D;iBAAM;gBACH,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;aACnD;SACJ;IACL,CAAC;IAED,eAAe,CAAC,QAAgB;;QAC5B,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,mBAAmB,mDAAG,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEO,wBAAwB,CAAC,KAAa;QAC1C,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SAC3C;QAED,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE;YAC1C,YAAY,CAAC,IAAI,CACb,oBAAC,MAAM,CAAC,MAAM,IAAC,SAAS,EAAC,YAAY,EAAC,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,IACnE,MAAM,CAAC,KAAK,CAAC,CACF,CACnB,CAAC;SACL;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1C,OAAO,CAAC,IAAI,CACR,oBAAC,MAAM,CAAC,MAAM,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAC,WAAW,IACjD,CAAC,CACU,CACnB,CAAC;SACL;QACD,OAAO,CACH,6BAAK,KAAK,EAAE,EAAC,aAAa,EAAE,CAAC,EAAC;YAC1B,6BAAK,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAC;gBACtE,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EACrE,QAAQ,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAC7F,OAAO,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;wBACrD,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAC,CAAC,CAAC;oBAC3E,CAAC,EACD,SAAS,EAAC,4BAA4B;oBAAC,8BAC3C,SAAS,EAAC,sBAAsB,GAAE,CAAS;gBAC/C,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,EACzB,IAAI,EAAC,OAAO,EACZ,wBAAwB,EAAE,KAAK,EAC/B,aAAa,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAC7B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EACpB,QAAQ,EAAE,aAAa,CAAC,EAAE;wBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;wBACzD,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC5C,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,QAAQ,EAAC,CAAC,CAAC;oBACpD,CAAC,IAEA,YAAY,CACR;gBACT,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EACrE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;wBAChD,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAC,CAAC,CAAC;oBAC3E,CAAC;oBACL,8BAAM,SAAS,EAAC,sBAAsB,GAAE,CACnC,CACP;YACN,6BAAK,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAC;gBACtD,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EACrE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;wBACpD,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAC,CAAC,CAAC;oBAC3E,CAAC;oBACL,8BAAM,SAAS,EAAC,sBAAsB,GAAE,CACnC;gBACT,oBAAC,MAAM,IACH,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAClB,wBAAwB,EAAE,KAAK,EAC/B,aAAa,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAC7B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,QAAQ,EAAE,OAAO,CAAC,EAAE;wBAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;wBACrF,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,QAAQ,EAAC,CAAC,CAAC;oBACpD,CAAC,EACD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAElB,OAAO,CACH;gBACT,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EACrE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;wBAC/C,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAC,CAAC,CAAC;oBAC3E,CAAC;oBACL,8BAAM,SAAS,EAAC,sBAAsB,GAAE,CACnC,CACP,CACJ,CACT,CAAC;IACN,CAAC;IAED,cAAc;;QACV,OAAO,CAAC,6BACA,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;;gBAC5C,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE;oBACrB,IAAI,OAAO,GAAG,MAAA,MAAC,CAAC,CAAC,MAAc,0CAAE,OAAO,0CAAE,WAAW,EAAE,CAAC;oBACxD,IAAI,OAAO,KAAK,OAAO,EAAE;wBACrB,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;qBAC1D;iBACJ;YACL,CAAC,CAAC,CAAC,CAAC,SAAS,EACb,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;gBACf,IAAI,CAAC,CAAC,MAAM,YAAY,oBAAoB,EAAE;oBAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;oBAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;iBAC9B;YACL,CAAC;YACD,oBAAC,QAAQ,IACL,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACjE,kBAAkB,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;oBAClC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,gDAAgD,CAAC;oBACrL,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;oBACzD,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;wBACjH,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE;wBAC5F,SAAS,IAAI,0BAA0B,CAAC;qBAC3C;yBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;wBAC9C,SAAS,IAAI,0BAA0B,CAAC;qBAC3C;oBACD,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAC,UAAU,EAAE,MAAM,EAAC,EACjD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;;4BACb,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE;gCACrB,IAAI,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCACpE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gCAC5E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,IAAI,CAAC,CAAC;6BAC/B;wBACL,CAAC,EACD,WAAW,EAAE,GAAG,EAAE;;4BACd,IAAI,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4BACpE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC5E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,mBAAmB,mDAAG,QAAQ,CAAC,CAAC;wBAC/C,CAAC,EACD,SAAS,EAAE,GAAG,EAAE;;4BACZ,IAAI,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4BACpE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC5E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,iBAAiB,mDAAG,QAAQ,CAAC,CAAC;wBAC7C,CAAC;wBAEF,6BAAK,SAAS,EAAE,gCAAgC,IAC3C,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CACjC;wBACN,6BAAK,SAAS,EAAE,kCAAkC,GAC5C,CACJ,CACT,CAAC;gBACN,CAAC,CAAC,EACF,YAAY,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;oBACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAChD,CAAC,EACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EACtC,UAAU,EAAE,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,QAAQ,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,QAAQ,CAAC,EACpF,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;;oBAChB,IAAI,MAAM,CAAC,KAAK,YAAY,UAAU,EAAE;wBACpC,IAAI,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACpE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC/E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,QAAQ,CAAC,CAAC;qBACnC;oBACD,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAC,CAAC,CAAC;gBAC9E,CAAC,GACH,CACA,CACT,CAAC;IACN,CAAC;IAED,WAAW;;QACP,MAAM,KAuBF,IAAI,CAAC,KAAK,EAvBR,EACF,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,cAAc,EACd,KAAK,EACL,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,SAAS,OAEC,EADP,KAAK,cAtBN,oUAuBL,CAAa,CAAC;QAEf,MAAM,YAAY,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClJ,MAAM,cAAc,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACrJ,MAAM,IAAI,GAAuB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,CAAC;QAClD,IAAI,YAAY,GAAG,yBAAyB,CAAC;QAC7C,IAAI,QAAQ,IAAI,aAAa,EAAE;YAC3B,YAAY,IAAI,wDAAwD,CAAC;SAC5E;aAAM;YACH,YAAY,IAAI,mBAAmB,CAAC;SACvC;QACD,IAAI,QAAQ,KAAK,KAAK,EAAE;YACpB,YAAY,IAAI,uBAAuB,CAAC;SAC3C;QAED,MAAM,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;QACvF,IAAI,UAAU,EAAE;YACZ,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;SAC/C;QAED,OAAO,CACH,2CAAK,KAAK,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,iCAAK,KAAK,KAAE,MAAM,EAAE,CAAC,IAAE,CAAC,CAAC,KAAK,IAAM,KAAK,IAAE,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY;YACnI,6BAAK,SAAS,EAAC,6BAA6B,EACvC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;wBACtB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;qBAC3B;yBAAM,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;wBAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;qBAC3B;gBACL,CAAC;gBACF,oBAAC,WAAW,IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAC/C,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,KAAK,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAC1I,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,KAAK,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACtG,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;wBACd,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wBAChF,IAAI,CAAC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;oBACnC,CAAC,CAAC,EACF,MAAM,EAAE,GAAG,EAAE;wBACT,IAAI,CAAC,QAAQ,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;oBACpC,CAAC,EACD,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,IAAI,aAAa,EACnC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACf,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;4BAClB,IAAI,CAAC,cAAc,EAAE;gCACjB,IAAI,CAAC,SAAS,EAAE,CAAC;6BACpB;yBACJ;wBACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;4BAClB,IAAI,CAAC,YAAY,EAAE;gCACf,IAAI,CAAC,SAAS,EAAE,CAAC;6BACpB;yBACJ;oBACL,CAAC,EACD,SAAS,EAAE,IAAI,CAAC,MAAM,EACtB,OAAO,EAAE,IAAI,CAAC,MAAM,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAChB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;wBACvC,MAAM,KAAK,GAAe,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;wBACzI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;4BAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gCACrF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;6BAC/C;4BAED,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gCACpF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;6BAC/C;4BACD,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;yBAClC;6BAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE;4BAChD,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,CAAC;yBACpB;6BAAM;4BACH,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,WAAW,CAAC,CAAC;yBACjC;wBACD,IAAI,CAAC,QAAQ,CAAC;4BACV,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC;4BACtG,WAAW,EAAE,KAAK;yBACrB,CAAC,CAAA;oBACN,CAAC,GAAG,CACf;YACL,CAAC,SAAS,IAAI,CAAC,gBAAgB,IAAI,6BAAK,SAAS,EAAE,+BAA+B,EAC1C,KAAK,EAAE;oBACH,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,aAAa;oBACzB,MAAM,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC7C,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACf,IAAI,QAAQ,CAAC,WAAW,EAAE;wBACtB,IAAI,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;wBAC5C,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBACzC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;qBAClC;gBACL,CAAC;gBAEtC,oBAAC,gBAAgB,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAC,GAAG,CAC5F,CACJ,CACT,CAAC;IACN,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAC7B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAChC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7B;aAAM;YACH,OAAO,CACH,oBAAC,OAAO,IAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EACnE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,iBAAiB,EAAE,EAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAC,EAC3F,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EACrC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;;oBACtB,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,OAAO,EAAC,CAAC,CAAC;oBAC/C,IAAI,OAAO,EAAE;wBACT,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,0CAAE,KAAK,EAAE,mCAAI,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,CAAC,CAAA;qBACzI;gBACL,CAAC,EACD,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAEnC,IAAI,CAAC,WAAW,EAAE,CACb,CACb,CAAC;SACL;IACL,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,IAAgB,EAAE,KAAoB,EAAE,MAAc;;QACzE,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,KAA2B,EAAE,MAAc,EAAE,IAAwC;QACvH,IAAI,KAAK,KAAK,IAAI,EAAE;YAChB,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,YAAkC,EAAE,KAAa,EAAE,IAAY,EAAE,SAAwB;;QACxH,IAAI,MAAM,GAAe;YACrB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAC9B,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC;SACZ,CAAC;QAEF,KAAK,IAAI,CAAC,IAAI,kBAAkB,EAAE;YAC9B,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;YACvB,IAAI,MAAM,GAAW,CAAC,CAAC;YACvB,IAAI,GAAG,GAAW,CAAC,CAAC;YACpB,IAAI,GAAG,GAAW,CAAC,CAAC;YAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAExB,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;wBACd,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;wBAClB,GAAG,GAAI,CAAC,CAAC,GAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,GAAG,GAAI,CAAC,CAAC,GAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,MAAM;qBACT;iBACJ;aACJ;iBAAM;gBACH,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;gBACtB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;gBACZ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;aACf;YAED,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,IAAI,GAAG,GAAW,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;gBAEjE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE;oBACzC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE;wBAChB,GAAG,EAAE,CAAC;qBACT;oBAED,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE;wBAChB,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;qBAC9B;yBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,MAAM,KAAK,CAAC,EAAE;wBACvC,MAAM,OAAO,GAAW,CAAC,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAClJ,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,CAAA;qBAC1C;yBAAM;wBACH,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;qBACjC;iBACJ;qBAAM;oBACH,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;oBACxB,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;oBACxB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;oBAClB,MAAM;iBACT;gBAED,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,GAAG,MAAM,EAAE;oBACzE,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;oBAChB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;iBAC1B;aACJ;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ","sourcesContent":["import React, {HTMLAttributes, RefObject} from \"react\";\nimport MaskedInput from \"../input/maskedInput\";\nimport padStart from 'lodash/padStart';\nimport isEqual from 'lodash/isEqual';\nimport debounce from 'lodash/debounce';\nimport moment, {Moment} from \"moment\";\nimport {CalendarOutlined} from \"@ant-design/icons\";\nimport {Button, Calendar, Select, Tooltip} from \"antd\";\nimport {Key} from \"ts-key-enum\";\nimport {D2000UnixTimeNullValue} from \"d2core/types/unixTimeUtils\";\nimport {TooltipPlacement} from \"antd/lib/tooltip\";\n\n\ninterface DateTimeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n mask: string\n value: Moment | null\n onChange?: (time: Moment | null) => void\n onInvalidValue?: (inputString: string) => void\n // allows to set no (null) date by datepicker\n allowClear?: boolean\n disabled?: boolean\n // disable only input component - useful when calendar popup is opened\n inputDisabled?: boolean\n minDateTime?: Moment\n maxDateTime?: Moment\n\n bordered?: boolean\n hidePopup?: boolean\n renderAsCalendar?: boolean\n autoFocus?: boolean\n placement?: TooltipPlacement;\n\n // special methods for rendering date range\n defaultSelectedDate?: Moment\n markedDateInterval?: [Moment, Moment]\n onDateItemMouseDown?: (date: Moment) => void\n onDateItemMouseUp?: (date: Moment) => void\n onDateItemMouseOver?: (date: Moment) => void\n\n inputStyle?: React.CSSProperties\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n\n ignoreKeyStrokes?: boolean\n}\n\ninterface DateTimeInputState {\n valid: boolean\n currentPos: number | null\n currentInfo: MaskResult\n popupCalendarVisible: boolean\n\n calendarSelectedDate: Moment\n focused: boolean\n}\n\ninterface MaskResult {\n time: Moment | undefined\n info: InfoEntry | undefined\n length: number\n}\n\ninterface InfoEntry {\n key: string | string[]\n min: number | number[]\n max: number | number[]\n unit: moment.unitOfTime.Base\n}\n\nconst DATE_TIME_DATA_MAP: InfoEntry[] = [\n {key: \"SSS\", min: 0, max: 999, unit: \"ms\"},\n {key: \"ss\", min: 0, max: 59, unit: \"s\"},\n {key: \"mm\", min: 0, max: 59, unit: \"m\"},\n {key: \"HH\", min: 0, max: 23, unit: \"h\"},\n {key: [\"YYYY\", \"YY\"], min: [1900, 0], max: [9999, 99], unit: \"y\"},\n {key: \"MM\", min: 1, max: 12, unit: \"M\"},\n {key: \"DD\", min: 1, max: 31, unit: \"d\"},\n];\n\nconst MIN_TIME = moment.unix(0);\nconst MAX_TIME = moment().add(1000, \"year\");\n\nexport function allowDatesBeforeEpoch() {\n DATE_TIME_DATA_MAP[4].min = 1902;\n}\n\nexport default class DateTimeInput extends React.Component<DateTimeInputProps, DateTimeInputState> {\n private inputRef: RefObject<MaskedInput> = React.createRef();\n private today: Moment = moment();\n\n constructor(props: Readonly<DateTimeInputProps>) {\n super(props);\n this.state = {\n valid: (!!props.value && props.value.isValid()) || (!!props.allowClear && props.value === null),\n currentPos: null,\n currentInfo: {\n info: undefined,\n time: undefined,\n length: 0\n },\n popupCalendarVisible: false,\n calendarSelectedDate: props.defaultSelectedDate?.clone() ?? props.value?.clone() ?? moment().startOf('day'),\n focused: false,\n };\n\n this.recalc = this.recalc.bind(this);\n this.increment = this.increment.bind(this);\n this.decrement = this.decrement.bind(this);\n this.onItemMouseOver = debounce(this.onItemMouseOver.bind(this), 100, {maxWait: 100});\n }\n\n componentDidUpdate(prevProps: Readonly<DateTimeInputProps>, _prevState: Readonly<DateTimeInputState>, _snapshot?: any): void {\n if (!isEqual(prevProps, this.props) && this.inputRef.current !== null) {\n this.inputRef.current.input.selectionStart = this.state.currentPos;\n this.inputRef.current.input.selectionEnd = this.state.currentPos;\n if (prevProps.value !== this.props.value) {\n this.setState({valid: (!!this.props.value && this.props.value.isValid()) || (!!this.props.allowClear && this.props.value === null)});\n }\n }\n }\n\n get input() {\n return this.inputRef.current?.input;\n }\n\n focus() {\n this.inputRef.current?.focus();\n }\n\n recalc(): void {\n if (this.inputRef.current !== null) {\n this.setState({\n currentInfo: DateTimeInput.parseDateTimeFormat(this.props.value, this.inputRef.current.input.value, this.props.mask, this.inputRef.current.input.selectionStart),\n currentPos: this.inputRef.current.input.selectionStart,\n });\n }\n }\n\n private increment(): void {\n if (this.state.currentInfo.info !== undefined && !!this.props.value && DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1)) {\n const unit = this.state.currentInfo.info.unit;\n this.incrementDate(unit);\n }\n\n this.inputRef.current?.focus();\n }\n\n private incrementDate(unit: moment.unitOfTime.Base) {\n if (!!this.props.value) {\n this.props.value.add(1, unit);\n if (!!this.props.maxDateTime && this.props.value.isAfter(this.props.maxDateTime)) {\n this.props.onChange?.(this.props.maxDateTime?.clone());\n } else {\n this.props.onChange?.(this.props.value.clone());\n }\n }\n }\n\n private decrement(): void {\n if (this.state.currentInfo.info !== undefined && !!this.props.value && DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1)) {\n const unit = this.state.currentInfo.info.unit;\n this.decrementDate(unit);\n }\n\n this.inputRef.current?.focus();\n }\n\n private decrementDate(unit: moment.unitOfTime.Base) {\n if (!!this.props.value) {\n this.props.value.subtract(1, unit);\n if (!!this.props.minDateTime && this.props.value.isBefore(this.props.minDateTime)) {\n this.props.onChange?.(this.props.minDateTime?.clone());\n } else {\n this.props.onChange?.(this.props.value.clone());\n }\n }\n }\n\n onItemMouseOver(itemDate: Moment) {\n this.props.onDateItemMouseOver?.(itemDate);\n }\n\n private renderCalendarNavigation(value: Moment) {\n const start = 0;\n const end = 12;\n const monthOptions = [];\n\n const current = value.clone();\n const localeData = value.localeData();\n const months = [];\n for (let i = 0; i < 12; i++) {\n current.month(i);\n months.push(localeData.months(current));\n }\n\n for (let index = start; index < end; index++) {\n monthOptions.push(\n <Select.Option className=\"month-item\" key={`${index}`} value={`${index}`}>\n {months[index]}\n </Select.Option>,\n );\n }\n const month = value.month();\n\n const year = value.year();\n const options = [];\n for (let i = year - 4; i <= year + 2; i += 1) {\n options.push(\n <Select.Option key={i} value={i} className=\"year-item\">\n {i}\n </Select.Option>,\n );\n }\n return (\n <div style={{paddingBottom: 8}}>\n <div style={{float: \"left\", paddingBottom: 8, width: 140, display: \"flex\"}}>\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\n disabled={!DateTimeInput.checkDateValueValidity(this.state.calendarSelectedDate, -1, \"month\")}\n onClick={() => {\n this.state.calendarSelectedDate.subtract(1, \"month\");\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\n }}\n className=\"ant-picker-header-prev-btn\"><span\n className=\"ant-picker-prev-icon\"/></Button>\n <Select\n style={{flex: \"1 1 auto\"}}\n size=\"small\"\n dropdownMatchSelectWidth={false}\n dropdownStyle={{zIndex: 2070}}\n getPopupContainer={this.props.getPopupContainer}\n value={String(month)}\n onChange={selectedMonth => {\n const newValue = this.state.calendarSelectedDate.clone();\n newValue.month(parseInt(selectedMonth, 10));\n this.setState({calendarSelectedDate: newValue});\n }}\n >\n {monthOptions}\n </Select>\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\n className=\"ant-picker-header-next-btn\"\n onClick={() => {\n this.state.calendarSelectedDate.add(1, \"month\");\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\n }}>\n <span className=\"ant-picker-next-icon\"/>\n </Button>\n </div>\n <div style={{float: \"right\", paddingBottom: 8, width: 110}}>\n <Button style={{width: 12, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\n className=\"ant-picker-header-prev-btn\"\n onClick={() => {\n this.state.calendarSelectedDate.subtract(1, \"year\");\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\n }}>\n <span className=\"ant-picker-prev-icon\"/>\n </Button>\n <Select\n size=\"small\"\n style={{width: 84}}\n dropdownMatchSelectWidth={false}\n dropdownStyle={{zIndex: 2070}}\n getPopupContainer={this.props.getPopupContainer}\n onChange={newYear => {\n const newValue = this.state.calendarSelectedDate.clone().year(parseInt(newYear, 10));\n this.setState({calendarSelectedDate: newValue});\n }}\n value={String(year)}\n >\n {options}\n </Select>\n <Button style={{width: 12, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\n className=\"ant-picker-header-next-btn\"\n onClick={() => {\n this.state.calendarSelectedDate.add(1, \"year\");\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\n }}>\n <span className=\"ant-picker-next-icon\"/>\n </Button>\n </div>\n </div>\n );\n }\n\n renderCalendar(): React.ReactElement {\n return (<div\n onKeyDown={!this.props.ignoreKeyStrokes ? (e) => {\n if (e.key === Key.Enter) {\n var tagName = (e.target as any)?.tagName?.toLowerCase();\n if (tagName !== \"input\") {\n this.props.onChange?.(this.state.calendarSelectedDate);\n }\n }\n } : undefined}\n onMouseOver={(e) => {\n if (e.target instanceof HTMLTableCellElement) {\n const date = moment(e.target.title, \"YYYY-MM-DD\");\n this.onItemMouseOver(date);\n }\n }}>\n <Calendar\n fullscreen={false}\n style={this.props.renderAsCalendar ? this.props.style : undefined}\n dateFullCellRender={((date: Moment) => {\n let className = date.isSame(this.today, \"date\") ? 'ant-picker-cell-inner ant-picker-calendar-date ant-picker-calendar-date-today' : 'ant-picker-cell-inner ant-picker-calendar-date';\n const markedDateInterval = this.props.markedDateInterval;\n if (markedDateInterval && (markedDateInterval[0].isBefore(date) || markedDateInterval[0].isSame(date, \"millisecond\")) &&\n (markedDateInterval[1].isAfter(date) || markedDateInterval[1].isSame(date, \"millisecond\"))) {\n className += \" date-picker-item-marked\";\n } else if (date.isSame(this.props.value, \"date\")) {\n className += \" date-picker-item-marked\";\n }\n return (\n <div className={className} style={{userSelect: \"none\"}}\n onKeyDown={(e) => {\n if (e.key === Key.Enter) {\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\n this.props.onChange?.(date);\n }\n }}\n onMouseDown={() => {\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\n this.props.onDateItemMouseDown?.(newValue);\n }}\n onMouseUp={() => {\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\n this.props.onDateItemMouseUp?.(newValue);\n }}\n >\n <div className={`ant-picker-calendar-date-value`}>\n {padStart(\"\" + date.date(), 2, '0')}\n </div>\n <div className={`ant-picker-calendar-date-content`}>\n </div>\n </div>\n );\n })}\n headerRender={({value}) => {\n return this.renderCalendarNavigation(value);\n }}\n value={this.state.calendarSelectedDate}\n validRange={[this.props.minDateTime ?? MIN_TIME, this.props.maxDateTime ?? MAX_TIME]}\n onSelect={(value) => {\n if (window.event instanceof MouseEvent) {\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\n newValue = newValue.year(value.year()).month(value.month()).date(value.date());\n this.props.onChange?.(newValue);\n }\n this.setState({calendarSelectedDate: value, popupCalendarVisible: false});\n }}\n />\n </div>\n );\n }\n\n renderInput() {\n const {\n mask,\n value,\n onChange,\n onInvalidValue,\n style,\n disabled,\n inputDisabled,\n bordered,\n hidePopup,\n renderAsCalendar,\n allowClear,\n minDateTime,\n maxDateTime,\n onDateItemMouseDown,\n onDateItemMouseOver,\n onDateItemMouseUp,\n markedDateInterval,\n inputStyle,\n getPopupContainer,\n autoFocus,\n className,\n ...props\n } = this.props;\n\n const isUpDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1);\n const isDownDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1);\n const unix: number | undefined = value?.valueOf();\n let divClassName = \"custom-date-time-picker\";\n if (disabled || inputDisabled) {\n divClassName += \" ant-input-number disabled ant-input-disabled readonly\";\n } else {\n divClassName += \" ant-input-number\";\n }\n if (bordered === false) {\n divClassName += \" ant-input-borderless\";\n }\n\n const maskedInputStyle = {color: this.state.valid ? \"inherit\" : \"red\", border: \"none\"};\n if (inputStyle) {\n Object.assign(maskedInputStyle, inputStyle);\n }\n\n return (\n <div style={bordered === false ? {...style, border: 0} : style} {...props} className={(className ? className + \" \" : \"\") + divClassName}>\n <div className=\"ant-input-number-input-wrap\"\n onKeyDown={(event) => {\n if (event.keyCode === 38) { // up\n this.increment();\n event.preventDefault();\n event.stopPropagation();\n } else if (event.keyCode === 40) { // down\n this.decrement();\n event.preventDefault();\n event.stopPropagation();\n }\n }}>\n <MaskedInput mask={this.props.mask.replace(/[a-zA-Z]/g, '1')}\n bordered={bordered}\n ref={this.inputRef}\n style={maskedInputStyle}\n value={(this.state.focused || unix !== D2000UnixTimeNullValue * 1000) ? (value?.locale(\"locale.d2000\").format(this.props.mask) ?? \"\") : \"\"}\n placeholder={(!this.state.focused && unix === D2000UnixTimeNullValue * 1000) ? \"Null Time\" : undefined}\n onFocus={(event => {\n event.target.selectionStart = event.target.selectionEnd = this.state.currentPos;\n this.setState({focused: true});\n })}\n onBlur={() => {\n this.setState({focused: false});\n }}\n autoFocus={autoFocus}\n disabled={disabled || inputDisabled}\n onWheel={(event) => {\n if (event.deltaY > 0) {\n if (!isDownDisabled) {\n this.decrement();\n }\n }\n if (event.deltaY < 0) {\n if (!isUpDisabled) {\n this.increment();\n }\n }\n }}\n onMouseUp={this.recalc}\n onKeyUp={this.recalc}\n onChange={(event) => {\n const inputString = event.target.value;\n const value: MaskResult = DateTimeInput.parseDateTimeFormat(this.props.value, inputString, this.props.mask, event.target.selectionStart);\n if (value.time !== undefined) {\n if (this.props.minDateTime !== undefined && value.time.isBefore(this.props.minDateTime)) {\n value.time = this.props.minDateTime.clone();\n }\n\n if (this.props.maxDateTime !== undefined && value.time.isAfter(this.props.maxDateTime)) {\n value.time = this.props.maxDateTime.clone();\n }\n onChange?.(value.time.clone());\n } else if (!!this.props.allowClear && !inputString) {\n onChange?.(null);\n } else {\n onInvalidValue?.(inputString);\n }\n this.setState({\n valid: (value.time !== undefined && value.time.isValid()) || (!!this.props.allowClear && !inputString),\n currentInfo: value\n })\n }}/>\n </div>\n {!hidePopup && !renderAsCalendar && <div className={\"ant-input-number-handler-wrap\"}\n style={{\n width: 28,\n opacity: 1,\n height: \"100%\",\n textAlign: \"center\",\n cursor: \"pointer\",\n background: \"transparent\",\n border: bordered === false ? 0 : undefined\n }}\n onClick={(event) => {\n if (document.createEvent) {\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent('contextmenu', true, false);\n event.target.dispatchEvent(ev);\n }\n }}\n >\n <CalendarOutlined style={{color: \"rgba(0,0,0,0.65)\", verticalAlign: \"middle\", marginTop: 2}}/>\n </div>}\n </div>\n );\n }\n\n render(): any {\n if (this.props.renderAsCalendar) {\n return this.renderCalendar();\n } else if (this.props.hidePopup) {\n return this.renderInput();\n } else {\n return (\n <Tooltip color={\"white\"} trigger={this.props.disabled ? [] : [\"contextMenu\"]}\n getPopupContainer={this.props.getPopupContainer}\n overlayInnerStyle={{maxHeight: \"100vh\", overflowY: \"auto\", overflowX: \"hidden\", width: 266}}\n open={this.state.popupCalendarVisible}\n onOpenChange={(visible) => {\n this.setState({popupCalendarVisible: visible});\n if (visible) {\n this.setState({calendarSelectedDate: this.props.defaultSelectedDate?.clone() ?? this.props.value?.clone() ?? moment().startOf(\"day\")})\n }\n }}\n title={this.renderCalendar()}\n placement={this.props.placement}\n >\n {this.renderInput()}\n </Tooltip>\n );\n }\n }\n\n private static isValid(info: MaskResult, value: Moment | null, offset: number): boolean {\n const unit = info.info?.unit;\n return this.checkDateValueValidity(value, offset, unit);\n }\n\n private static checkDateValueValidity(value: moment.Moment | null, offset: number, unit: moment.unitOfTime.Base | undefined) {\n if (value === null) {\n return false;\n }\n let v = value.clone().add(offset, unit);\n return v.isValid() && v.isSameOrAfter(moment(0));\n }\n\n private static parseDateTimeFormat(previousTime: moment.Moment | null, value: string, mask: string, cursorPos: number | null): MaskResult {\n let result: MaskResult = {\n time: moment(0).startOf(\"day\"),\n info: undefined,\n length: 0,\n };\n\n for (let v of DATE_TIME_DATA_MAP) {\n let index: number = -1;\n let length: number = 0;\n let min: number = 0;\n let max: number = 0;\n\n if (Array.isArray(v.key) || Array.isArray(v.min) || Array.isArray(v.max)) {\n for (let i = 0; i < v.key.length; i++) {\n const x = v.key[i];\n index = mask.indexOf(x);\n\n if (index !== -1) {\n length = x.length;\n min = (v.min as number[])[i];\n max = (v.max as number[])[i];\n break;\n }\n }\n } else {\n index = mask.indexOf(v.key);\n length = v.key.length;\n min = v.min;\n max = v.max;\n }\n\n if (index !== -1) {\n let val: number = Number(value.substring(index, index + length));\n\n if (!isNaN(val) && val >= min && val <= max) {\n if (v.unit === \"M\") {\n val--; // 0-11\n }\n\n if (v.unit === \"d\") {\n result.time?.set('D', val);\n } else if (v.unit === \"y\" && length === 2) {\n const century: number = (previousTime != null && previousTime.isValid()) ? Math.floor(previousTime.year() / 100) * 100 : (val > 70 ? 1900 : 2000); // if short year\n result.time?.set(v.unit, century + val)\n } else {\n result.time?.set(v.unit, val);\n }\n } else {\n result.time = undefined;\n result.info = undefined;\n result.length = 0;\n break;\n }\n\n if (cursorPos !== null && cursorPos >= index && cursorPos <= index + length) {\n result.info = v;\n result.length = length;\n }\n }\n }\n\n return result;\n }\n}"]}
1
+ {"version":3,"file":"dateTimeInput.js","sourceRoot":"","sources":["../../../../components/date/dateTimeInput.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACvD,OAAO,EAAC,GAAG,EAAC,MAAM,aAAa,CAAC;AAChC,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,OAAO,MAAM,mCAAmC,CAAC;AAIxD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAE;IAChD,OAAO;QACH,qBAAqB,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAoCzB;KACJ,CAAA;AACL,CAAC,CAAC,CAAC;AA2DH,MAAM,kBAAkB,GAAgB;IACpC,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAC;IAC1C,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;IACvC,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;IACvC,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;IACvC,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAC;IACjE,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;IACvC,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;CAC1C,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,UAAU,qBAAqB;IACjC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAiD;IAI9F,YAAY,KAAmC;;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;QAJT,aAAQ,GAA2B,KAAK,CAAC,SAAS,EAAE,CAAC;QACrD,UAAK,GAAU,KAAK,EAAE,CAAC;QAI3B,IAAI,CAAC,KAAK,GAAG;YACT,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC;YACtG,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE;gBACT,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,CAAC;aACZ;YACD,oBAAoB,EAAE,KAAK;YAC3B,oBAAoB,EAAE,MAAA,MAAA,MAAA,KAAK,CAAC,mBAAmB,0CAAE,KAAK,EAAE,mCAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1G,OAAO,EAAE,KAAK;SACjB,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAC,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;IAC1F,CAAC;IAED,kBAAkB,CAAC,SAAuC,EAAE,UAAwC,EAAE,SAAe;QACjH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACjE,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,EAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC;YAChJ,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,KAAK;;QACL,OAAO,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC;IACxC,CAAC;IAED,KAAK;;QACD,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC;gBACV,WAAW,EAAE,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;gBAChK,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc;aACzD,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,SAAS;;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;YACxI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAEO,aAAa,CAAC,IAAoB;;QACtC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpE,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACJ,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,KAAK,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAEO,SAAS;;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAEO,aAAa,CAAC,IAAoB;;QACtC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrE,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACJ,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,KAAK,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAED,eAAe,CAAC,QAAe;;QAC3B,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,mBAAmB,mDAAG,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEO,wBAAwB,CAAC,KAAY;QACzC,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3C,YAAY,CAAC,IAAI,CACb,oBAAC,MAAM,CAAC,MAAM,IAAC,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,IAC5C,MAAM,CAAC,KAAK,CAAC,CACF,CACnB,CAAC;QACN,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CACR,oBAAC,MAAM,CAAC,MAAM,IAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IACpC,CAAC,CACU,CACnB,CAAC;QACN,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;QAE7D,OAAO,CACH,6BAAK,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAC;YAC1C,6BAAK,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAC;gBACrC,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EACrE,QAAQ,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAClF,OAAO,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,EAAC,CAAC,CAAC;oBACrF,CAAC,EACD,SAAS,EAAC,4BAA4B;oBAAC,8BAC3C,SAAS,EAAC,sBAAsB,GAAE,CAAS;gBAC/C,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,EACzB,IAAI,EAAC,OAAO,EACZ,qBAAqB,EAAE,KAAK,EAC5B,aAAa,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAC7B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EACpB,QAAQ,EAAE,aAAa,CAAC,EAAE;wBACtB,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;oBACnG,CAAC,IAEA,YAAY,CACR;gBACT,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EACrE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAC,CAAC,CAAC;oBAChF,CAAC;oBACL,8BAAM,SAAS,EAAC,sBAAsB,GAAE,CACnC,CACP;YACN,6BAAK,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAC;gBACrC,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EACrE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAC,CAAC,CAAC;oBACpF,CAAC;oBACL,8BAAM,SAAS,EAAC,sBAAsB,GAAE,CACnC;gBACT,oBAAC,MAAM,IACH,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAClB,qBAAqB,EAAE,KAAK,EAC5B,aAAa,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAC7B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,QAAQ,EAAE,OAAO,CAAC,EAAE;wBAChB,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;oBAC5F,CAAC,EACD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAElB,OAAO,CACH;gBACT,oBAAC,MAAM,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,EACrE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAC,CAAC,CAAC;oBAC/E,CAAC;oBACL,8BAAM,SAAS,EAAC,sBAAsB,GAAE,CACnC,CACP,CACJ,CACT,CAAC;IACN,CAAC;IAED,cAAc;QACV,OAAO,CAAC,6BACA,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;;gBAC5C,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;oBACtB,IAAI,OAAO,GAAG,MAAA,MAAC,CAAC,CAAC,MAAc,0CAAE,OAAO,0CAAE,WAAW,EAAE,CAAC;oBACxD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;wBACtB,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBAC3D,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC,CAAC,SAAS,EACb,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;gBACf,IAAI,CAAC,CAAC,MAAM,YAAY,oBAAoB,EAAE,CAAC;oBAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;oBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;YACD,oBAAC,OAAO,IAAC,SAAS,EAAE,SAAS,IAAG,CAAC,GAAG,EAAE,EAAE;;gBACpC,OAAA,oBAAC,QAAQ,IACL,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAC3C,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACjE,cAAc,EAAE,CAAC,CAAC,IAAW,EAAE,EAAE;wBAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,gDAAgD,CAAC;wBACrL,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;wBACzD,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;4BACjH,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;4BAC7F,SAAS,IAAI,0BAA0B,CAAC;wBAC5C,CAAC;6BAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;4BAC/C,SAAS,IAAI,0BAA0B,CAAC;wBAC5C,CAAC;wBACD,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAC,UAAU,EAAE,MAAM,EAAC,EACjD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;;gCACb,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;oCACtB,IAAI,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oCACnE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oCAC5E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,QAAQ,CAAC,CAAC;gCACpC,CAAC;4BACL,CAAC,EACD,WAAW,EAAE,GAAG,EAAE;;gCACd,IAAI,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCACnE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gCAC5E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,mBAAmB,mDAAG,QAAQ,CAAC,CAAC;4BAC/C,CAAC,EACD,SAAS,EAAE,GAAG,EAAE;;gCACZ,IAAI,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCACnE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gCAC5E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,iBAAiB,mDAAG,QAAQ,CAAC,CAAC;4BAC7C,CAAC;4BAEF,6BAAK,SAAS,EAAE,gCAAgC,IAC3C,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CACjC;4BACN,6BAAK,SAAS,EAAE,kCAAkC,GAC5C,CACJ,CACT,CAAC;oBACN,CAAC,CAAC,EACF,YAAY,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;oBAChD,CAAC,EACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EACtC,UAAU,EAAE,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,QAAQ,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,QAAQ,CAAC,EACpF,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;;wBAChB,IAAI,MAAM,CAAC,KAAK,YAAY,UAAU,EAAE,CAAC;4BACrC,IAAI,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4BACnE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC/E,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,QAAQ,CAAC,CAAC;wBACpC,CAAC;wBACD,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAC,CAAC,CAAC;oBAC9E,CAAC,GACH,CAAA;aAAA,CACK,CACT,CACT,CAAC;IACN,CAAC;IAED,WAAW;;QACP,MAAM,KAwBF,IAAI,CAAC,KAAK,EAxBR,EACF,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,cAAc,EACd,KAAK,EACL,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,IAAI,OAEM,EADP,KAAK,cAvBN,4UAwBL,CAAa,CAAC;QAEf,MAAM,YAAY,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClJ,MAAM,cAAc,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACrJ,MAAM,IAAI,GAAuB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,CAAC;QAClD,MAAM,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAC,CAAC;QAC3E,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,CACH,2CAAK,KAAK,kCAAM,KAAK,KAAE,QAAQ,EAAE,UAAU,OAAO,KAAK,IAAE,SAAS,EAAE,SAAS;YACzE,6BACI,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;oBAC5B,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACpC,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;oBAC5B,CAAC;gBACL,CAAC;gBACD,oBAAC,WAAW,IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAC/C,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,KAAK,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAC1I,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,KAAK,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACtG,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;wBACd,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wBAChF,IAAI,CAAC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;oBACnC,CAAC,CAAC,EACF,MAAM,EAAE,GAAG,EAAE;wBACT,IAAI,CAAC,QAAQ,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;oBACpC,CAAC,EACD,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,IAAI,aAAa,EACnC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACf,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACnB,IAAI,CAAC,cAAc,EAAE,CAAC;gCAClB,IAAI,CAAC,SAAS,EAAE,CAAC;4BACrB,CAAC;wBACL,CAAC;wBACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACnB,IAAI,CAAC,YAAY,EAAE,CAAC;gCAChB,IAAI,CAAC,SAAS,EAAE,CAAC;4BACrB,CAAC;wBACL,CAAC;oBACL,CAAC,EACD,SAAS,EAAE,IAAI,CAAC,MAAM,EACtB,OAAO,EAAE,IAAI,CAAC,MAAM,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAChB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;wBACvC,MAAM,KAAK,GAAe,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;wBACzI,MAAM,KAAK,GAAY,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,CAAC;wBAElL,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;4BACpC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;wBACnC,CAAC;6BAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;4BACjD,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,CAAC;wBACrB,CAAC;6BAAM,CAAC;4BACJ,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,WAAW,CAAC,CAAC;wBAClC,CAAC;wBACD,IAAI,CAAC,QAAQ,CAAC;4BACV,KAAK,EAAE,KAAK;4BACZ,WAAW,EAAE,KAAK;yBACrB,CAAC,CAAA;oBACN,CAAC,GAAG,CACf;YACL,CAAC,SAAS,IAAI,CAAC,gBAAgB,IAAI,6BAChC,KAAK,EAAE;oBACH,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBAC5C,UAAU,EAAE,aAAa;oBACzB,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,CAAC;iBACX,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACf,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;wBACvB,IAAI,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;wBAC5C,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBACzC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;oBACnC,CAAC;gBACL,CAAC;gBAED,oBAAC,gBAAgB,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,CAC9F,CACJ,CACT,CAAC;IACN,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,OAAO,CACH,oBAAC,OAAO,IAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EACnE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,iBAAiB,EAAE,EAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAC,EAC3F,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EACrC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;;oBACtB,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,OAAO,EAAC,CAAC,CAAC;oBAC/C,IAAI,OAAO,EAAE,CAAC;wBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,0CAAE,KAAK,EAAE,mCAAI,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,mCAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,CAAC,CAAA;oBACzI,CAAC;gBACL,CAAC,EACD,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAEnC,IAAI,CAAC,WAAW,EAAE,CACb,CACb,CAAC;QACN,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,IAAgB,EAAE,KAAmB,EAAE,MAAc;;QACxE,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,KAAmB,EAAE,MAAc,EAAE,IAAgC;QACvG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,YAA0B,EAAE,KAAa,EAAE,IAAY,EAAE,SAAwB;;QAChH,IAAI,MAAM,GAAe;YACrB,IAAI,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC;SACZ,CAAC;QAEF,KAAK,IAAI,CAAC,IAAI,kBAAkB,EAAE,CAAC;YAC/B,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;YACvB,IAAI,MAAM,GAAW,CAAC,CAAC;YACvB,IAAI,GAAG,GAAW,CAAC,CAAC;YACpB,IAAI,GAAG,GAAW,CAAC,CAAC;YAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAExB,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;wBACf,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;wBAClB,GAAG,GAAI,CAAC,CAAC,GAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,GAAG,GAAI,CAAC,CAAC,GAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,MAAM;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;gBACtB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;gBACZ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;YAChB,CAAC;YAED,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,GAAG,GAAW,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;gBAEjE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;oBAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;wBACjB,GAAG,EAAE,CAAC;oBACV,CAAC;oBAED,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;wBACjB,MAAM,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC7C,CAAC;yBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,MAAM,OAAO,GAAW,CAAC,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAClJ,MAAM,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,CAAA;oBACzD,CAAC;yBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;wBACnE,MAAM,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAChD,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;oBACxB,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;oBACxB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;oBAClB,MAAM;gBACV,CAAC;gBAED,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;oBAC1E,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;oBAChB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC3B,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAoB,EAAE,WAAmB,EAAE,WAAmB,EAAE,UAAoB;QAC5G,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;IACzL,CAAC;CACJ","sourcesContent":["import React, {HTMLAttributes, RefObject} from \"react\";\r\nimport MaskedInput from \"../input/maskedInput\";\r\nimport padStart from 'lodash/padStart';\r\nimport isEqual from 'lodash/isEqual';\r\nimport debounce from 'lodash/debounce';\r\nimport dayjs, {Dayjs, ManipulateType} from \"dayjs\";\r\nimport {CalendarOutlined} from \"@ant-design/icons\";\r\nimport {Button, Calendar, Select, Tooltip} from \"antd\";\r\nimport {Key} from \"ts-key-enum\";\r\nimport {D2000UnixTimeNullValue} from \"d2core/types/unixTimeUtils\";\r\nimport {TooltipPlacement} from \"antd/lib/tooltip\";\r\nimport {createStyles} from \"antd-style\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\n\r\n// @ts-ignore\r\nconst useStyles = createStyles(({token, css, cx}) => {\r\n return {\r\n dateTimeInputCalendar: css`\r\n // adaptations of date-picker calendar styles\r\n .ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner:not(.date-picker-item-marked) {\r\n color: inherit;\r\n background: inherit;\r\n }\r\n\r\n .ant-picker-panel:focus > .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner:before {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n border: 1px solid #096dd9;\r\n border-radius: 2px;\r\n content: '';\r\n }\r\n\r\n .ant-picker-content thead {\r\n user-select: none;\r\n }\r\n\r\n .date-picker-item-marked {\r\n color: #fff;\r\n background: #1890ff;\r\n }\r\n\r\n .ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before {\r\n border: 1px solid #13c2c2;\r\n }\r\n\r\n .ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner, .ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner {\r\n background: #1890ff;\r\n color: rgba(0, 0, 0, 0.85);\r\n }\r\n `,\r\n }\r\n});\r\n\r\n\r\ninterface DateTimeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\r\n mask: string\r\n value: Dayjs | null\r\n onChange?: (time: Dayjs | null) => void\r\n onInvalidValue?: (inputString: string) => void\r\n // allows to set no (null) date by datepicker\r\n allowClear?: boolean\r\n disabled?: boolean\r\n // disable only input component - useful when calendar popup is opened\r\n inputDisabled?: boolean\r\n minDateTime?: Dayjs\r\n maxDateTime?: Dayjs\r\n\r\n bordered?: boolean\r\n hidePopup?: boolean\r\n renderAsCalendar?: boolean\r\n autoFocus?: boolean\r\n placement?: TooltipPlacement;\r\n size?: SizeType;\r\n\r\n // special methods for rendering date range\r\n defaultSelectedDate?: Dayjs\r\n markedDateInterval?: [Dayjs, Dayjs]\r\n onDateItemMouseDown?: (date: Dayjs) => void\r\n onDateItemMouseUp?: (date: Dayjs) => void\r\n onDateItemMouseOver?: (date: Dayjs) => void\r\n\r\n inputStyle?: React.CSSProperties\r\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\r\n\r\n ignoreKeyStrokes?: boolean\r\n}\r\n\r\ninterface DateTimeInputState {\r\n valid: boolean\r\n currentPos: number | null\r\n currentInfo: MaskResult\r\n popupCalendarVisible: boolean\r\n\r\n calendarSelectedDate: Dayjs\r\n focused: boolean\r\n}\r\n\r\ninterface MaskResult {\r\n time: Dayjs | undefined\r\n info: InfoEntry | undefined\r\n length: number\r\n}\r\n\r\ninterface InfoEntry {\r\n key: string | string[]\r\n min: number | number[]\r\n max: number | number[]\r\n unit: ManipulateType\r\n}\r\n\r\nconst DATE_TIME_DATA_MAP: InfoEntry[] = [\r\n {key: \"SSS\", min: 0, max: 999, unit: \"ms\"},\r\n {key: \"ss\", min: 0, max: 59, unit: \"s\"},\r\n {key: \"mm\", min: 0, max: 59, unit: \"m\"},\r\n {key: \"HH\", min: 0, max: 23, unit: \"h\"},\r\n {key: [\"YYYY\", \"YY\"], min: [1900, 0], max: [9999, 99], unit: \"y\"},\r\n {key: \"MM\", min: 1, max: 12, unit: \"M\"},\r\n {key: \"DD\", min: 1, max: 31, unit: \"d\"},\r\n];\r\n\r\nconst MIN_TIME = dayjs.unix(0);\r\nconst MAX_TIME = dayjs().add(1000, \"year\");\r\n\r\nexport function allowDatesBeforeEpoch() {\r\n DATE_TIME_DATA_MAP[4].min = 1902;\r\n}\r\n\r\nexport default class DateTimeInput extends React.Component<DateTimeInputProps, DateTimeInputState> {\r\n private inputRef: RefObject<MaskedInput> = React.createRef();\r\n private today: Dayjs = dayjs();\r\n\r\n constructor(props: Readonly<DateTimeInputProps>) {\r\n super(props);\r\n this.state = {\r\n valid: DateTimeInput.isValidValue(props.value, props.minDateTime, props.maxDateTime, props.allowClear),\r\n currentPos: null,\r\n currentInfo: {\r\n info: undefined,\r\n time: undefined,\r\n length: 0\r\n },\r\n popupCalendarVisible: false,\r\n calendarSelectedDate: props.defaultSelectedDate?.clone() ?? props.value?.clone() ?? dayjs().startOf('day'),\r\n focused: false,\r\n };\r\n\r\n this.recalc = this.recalc.bind(this);\r\n this.increment = this.increment.bind(this);\r\n this.decrement = this.decrement.bind(this);\r\n this.onItemMouseOver = debounce(this.onItemMouseOver.bind(this), 100, {maxWait: 100});\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<DateTimeInputProps>, _prevState: Readonly<DateTimeInputState>, _snapshot?: any): void {\r\n if (!isEqual(prevProps, this.props) && this.inputRef.current !== null) {\r\n this.inputRef.current.input.selectionStart = this.state.currentPos;\r\n this.inputRef.current.input.selectionEnd = this.state.currentPos;\r\n if (prevProps.value !== this.props.value) {\r\n this.setState({valid: DateTimeInput.isValidValue(this.props.value, this.props.minDateTime, this.props.maxDateTime, this.props.allowClear)});\r\n }\r\n }\r\n }\r\n\r\n get input() {\r\n return this.inputRef.current?.input;\r\n }\r\n\r\n focus() {\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n recalc(): void {\r\n if (this.inputRef.current !== null) {\r\n this.setState({\r\n currentInfo: DateTimeInput.parseDateTimeFormat(this.props.value, this.inputRef.current.input.value, this.props.mask, this.inputRef.current.input.selectionStart),\r\n currentPos: this.inputRef.current.input.selectionStart,\r\n });\r\n }\r\n }\r\n\r\n private increment(): void {\r\n if (this.state.currentInfo.info !== undefined && !!this.props.value && DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1)) {\r\n const unit = this.state.currentInfo.info.unit;\r\n this.incrementDate(unit);\r\n }\r\n\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n private incrementDate(unit: ManipulateType) {\r\n if (!!this.props.value) {\r\n const value = this.props.value.clone().add(1, unit);\r\n if (!!this.props.maxDateTime && value.isAfter(this.props.maxDateTime)) {\r\n this.props.onChange?.(this.props.maxDateTime?.clone());\r\n } else {\r\n this.props.onChange?.(value);\r\n }\r\n }\r\n }\r\n\r\n private decrement(): void {\r\n if (this.state.currentInfo.info !== undefined && !!this.props.value && DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1)) {\r\n const unit = this.state.currentInfo.info.unit;\r\n this.decrementDate(unit);\r\n }\r\n\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n private decrementDate(unit: ManipulateType) {\r\n if (!!this.props.value) {\r\n const value = this.props.value.clone().subtract(1, unit);\r\n if (!!this.props.minDateTime && value.isBefore(this.props.minDateTime)) {\r\n this.props.onChange?.(this.props.minDateTime?.clone());\r\n } else {\r\n this.props.onChange?.(value);\r\n }\r\n }\r\n }\r\n\r\n onItemMouseOver(itemDate: Dayjs) {\r\n this.props.onDateItemMouseOver?.(itemDate);\r\n }\r\n\r\n private renderCalendarNavigation(value: Dayjs) {\r\n const start = 0;\r\n const end = 12;\r\n const monthOptions = [];\r\n\r\n const current = value.clone();\r\n const localeData = value.localeData();\r\n const months = [];\r\n for (let i = 0; i < 12; i++) {\r\n months.push(localeData.months(current.month(i)));\r\n }\r\n\r\n for (let index = start; index < end; index++) {\r\n monthOptions.push(\r\n <Select.Option key={`${index}`} value={`${index}`}>\r\n {months[index]}\r\n </Select.Option>,\r\n );\r\n }\r\n const month = value.month();\r\n\r\n const year = value.year();\r\n const options = [];\r\n for (let i = year - 4; i <= year + 2; i += 1) {\r\n options.push(\r\n <Select.Option key={`${i}`} value={`${i}`}>\r\n {i}\r\n </Select.Option>,\r\n );\r\n }\r\n\r\n const calendarSelectedDate = this.state.calendarSelectedDate;\r\n\r\n return (\r\n <div style={{display: \"flex\", marginBottom: 6}}>\r\n <div style={{display: \"flex\", width: 140}}>\r\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n disabled={!DateTimeInput.checkDateValueValidity(calendarSelectedDate, -1, \"month\")}\r\n onClick={() => {\r\n this.setState({calendarSelectedDate: calendarSelectedDate.subtract(1, \"month\")});\r\n }}\r\n className=\"ant-picker-header-prev-btn\"><span\r\n className=\"ant-picker-prev-icon\"/></Button>\r\n <Select\r\n style={{flex: \"1 1 auto\"}}\r\n size=\"small\"\r\n popupMatchSelectWidth={false}\r\n dropdownStyle={{zIndex: 2070}}\r\n getPopupContainer={this.props.getPopupContainer}\r\n value={String(month)}\r\n onChange={selectedMonth => {\r\n this.setState({calendarSelectedDate: calendarSelectedDate.month(parseInt(selectedMonth, 10))});\r\n }}\r\n >\r\n {monthOptions}\r\n </Select>\r\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-next-btn\"\r\n onClick={() => {\r\n this.setState({calendarSelectedDate: calendarSelectedDate.add(1, \"month\")});\r\n }}>\r\n <span className=\"ant-picker-next-icon\"/>\r\n </Button>\r\n </div>\r\n <div style={{display: \"flex\", width: 110}}>\r\n <Button style={{width: 12, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-prev-btn\"\r\n onClick={() => {\r\n this.setState({calendarSelectedDate: calendarSelectedDate.subtract(1, \"year\")});\r\n }}>\r\n <span className=\"ant-picker-prev-icon\"/>\r\n </Button>\r\n <Select\r\n size=\"small\"\r\n style={{width: 84}}\r\n popupMatchSelectWidth={false}\r\n dropdownStyle={{zIndex: 2070}}\r\n getPopupContainer={this.props.getPopupContainer}\r\n onChange={newYear => {\r\n this.setState({calendarSelectedDate: calendarSelectedDate.year(parseInt(newYear, 10))});\r\n }}\r\n value={String(year)}\r\n >\r\n {options}\r\n </Select>\r\n <Button style={{width: 12, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-next-btn\"\r\n onClick={() => {\r\n this.setState({calendarSelectedDate: calendarSelectedDate.add(1, \"year\")});\r\n }}>\r\n <span className=\"ant-picker-next-icon\"/>\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderCalendar(): React.ReactElement {\r\n return (<div\r\n onKeyDown={!this.props.ignoreKeyStrokes ? (e) => {\r\n if (e.key === Key.Enter) {\r\n var tagName = (e.target as any)?.tagName?.toLowerCase();\r\n if (tagName !== \"input\") {\r\n this.props.onChange?.(this.state.calendarSelectedDate);\r\n }\r\n }\r\n } : undefined}\r\n onMouseOver={(e) => {\r\n if (e.target instanceof HTMLTableCellElement) {\r\n const date = dayjs(e.target.title, \"YYYY-MM-DD\");\r\n this.onItemMouseOver(date);\r\n }\r\n }}>\r\n <WithCss useStyles={useStyles}>{(css) =>\r\n <Calendar\r\n className={css.styles.dateTimeInputCalendar}\r\n fullscreen={false}\r\n style={this.props.renderAsCalendar ? this.props.style : undefined}\r\n fullCellRender={((date: Dayjs) => {\r\n let className = date.isSame(this.today, \"date\") ? 'ant-picker-cell-inner ant-picker-calendar-date ant-picker-calendar-date-today' : 'ant-picker-cell-inner ant-picker-calendar-date';\r\n const markedDateInterval = this.props.markedDateInterval;\r\n if (markedDateInterval && (markedDateInterval[0].isBefore(date) || markedDateInterval[0].isSame(date, \"millisecond\")) &&\r\n (markedDateInterval[1].isAfter(date) || markedDateInterval[1].isSame(date, \"millisecond\"))) {\r\n className += \" date-picker-item-marked\";\r\n } else if (date.isSame(this.props.value, \"date\")) {\r\n className += \" date-picker-item-marked\";\r\n }\r\n return (\r\n <div className={className} style={{userSelect: \"none\"}}\r\n onKeyDown={(e) => {\r\n if (e.key === Key.Enter) {\r\n let newValue = this.props.value?.clone() ?? dayjs().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onChange?.(newValue);\r\n }\r\n }}\r\n onMouseDown={() => {\r\n let newValue = this.props.value?.clone() ?? dayjs().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onDateItemMouseDown?.(newValue);\r\n }}\r\n onMouseUp={() => {\r\n let newValue = this.props.value?.clone() ?? dayjs().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onDateItemMouseUp?.(newValue);\r\n }}\r\n >\r\n <div className={`ant-picker-calendar-date-value`}>\r\n {padStart(\"\" + date.date(), 2, '0')}\r\n </div>\r\n <div className={`ant-picker-calendar-date-content`}>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n headerRender={({value}) => {\r\n return this.renderCalendarNavigation(value);\r\n }}\r\n value={this.state.calendarSelectedDate}\r\n validRange={[this.props.minDateTime ?? MIN_TIME, this.props.maxDateTime ?? MAX_TIME]}\r\n onSelect={(value) => {\r\n if (window.event instanceof MouseEvent) {\r\n let newValue = this.props.value?.clone() ?? dayjs().startOf(\"day\");\r\n newValue = newValue.year(value.year()).month(value.month()).date(value.date());\r\n this.props.onChange?.(newValue);\r\n }\r\n this.setState({calendarSelectedDate: value, popupCalendarVisible: false});\r\n }}\r\n />\r\n }</WithCss>\r\n </div>\r\n );\r\n }\r\n\r\n renderInput() {\r\n const {\r\n mask,\r\n value,\r\n onChange,\r\n onInvalidValue,\r\n style,\r\n disabled,\r\n inputDisabled,\r\n bordered,\r\n hidePopup,\r\n renderAsCalendar,\r\n allowClear,\r\n minDateTime,\r\n maxDateTime,\r\n onDateItemMouseDown,\r\n onDateItemMouseOver,\r\n onDateItemMouseUp,\r\n markedDateInterval,\r\n inputStyle,\r\n getPopupContainer,\r\n autoFocus,\r\n className,\r\n size,\r\n ...props\r\n } = this.props;\r\n\r\n const isUpDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1);\r\n const isDownDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1);\r\n const unix: number | undefined = value?.valueOf();\r\n const maskedInputStyle = {color: this.state.valid ? undefined : \"#ff4d4f\"};\r\n if (inputStyle) {\r\n Object.assign(maskedInputStyle, inputStyle);\r\n }\r\n\r\n return (\r\n <div style={{...style, position: \"relative\"}} {...props} className={className}>\r\n <div\r\n onKeyDown={(event) => {\r\n if (event.code === \"ArrowUp\") { // up\r\n this.increment();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n } else if (event.code === \"ArrowDown\") { // down\r\n this.decrement();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }}>\r\n <MaskedInput mask={this.props.mask.replace(/[a-zA-Z]/g, '1')}\r\n bordered={bordered}\r\n ref={this.inputRef}\r\n style={maskedInputStyle}\r\n size={size}\r\n value={(this.state.focused || unix !== D2000UnixTimeNullValue * 1000) ? (value?.locale(\"locale.d2000\").format(this.props.mask) ?? \"\") : \"\"}\r\n placeholder={(!this.state.focused && unix === D2000UnixTimeNullValue * 1000) ? \"Null Time\" : undefined}\r\n onFocus={(event => {\r\n event.target.selectionStart = event.target.selectionEnd = this.state.currentPos;\r\n this.setState({focused: true});\r\n })}\r\n onBlur={() => {\r\n this.setState({focused: false});\r\n }}\r\n autoFocus={autoFocus}\r\n disabled={disabled || inputDisabled}\r\n onWheel={(event) => {\r\n if (event.deltaY > 0) {\r\n if (!isDownDisabled) {\r\n this.decrement();\r\n }\r\n }\r\n if (event.deltaY < 0) {\r\n if (!isUpDisabled) {\r\n this.increment();\r\n }\r\n }\r\n }}\r\n onMouseUp={this.recalc}\r\n onKeyUp={this.recalc}\r\n onChange={(event) => {\r\n const inputString = event.target.value;\r\n const value: MaskResult = DateTimeInput.parseDateTimeFormat(this.props.value, inputString, this.props.mask, event.target.selectionStart);\r\n const valid: boolean = DateTimeInput.isValidValue(value.time, this.props.minDateTime, this.props.maxDateTime, this.props.allowClear) || (!!this.props.allowClear && !inputString);\r\n\r\n if (value.time !== undefined && valid) {\r\n onChange?.(value.time.clone());\r\n } else if (!!this.props.allowClear && !inputString) {\r\n onChange?.(null);\r\n } else {\r\n onInvalidValue?.(inputString);\r\n }\r\n this.setState({\r\n valid: valid,\r\n currentInfo: value\r\n })\r\n }}/>\r\n </div>\r\n {!hidePopup && !renderAsCalendar && <div\r\n style={{\r\n width: 28,\r\n opacity: 1,\r\n height: \"100%\",\r\n textAlign: \"center\",\r\n cursor: disabled ? \"not-allowed\" : \"pointer\",\r\n background: \"transparent\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 0,\r\n }}\r\n onClick={(event) => {\r\n if (document.createEvent) {\r\n var ev = document.createEvent('HTMLEvents');\r\n ev.initEvent('contextmenu', true, false);\r\n event.target.dispatchEvent(ev);\r\n }\r\n }}\r\n >\r\n <CalendarOutlined style={{color: \"rgba(0,0,0,0.65)\", verticalAlign: \"middle\", height: \"100%\"}}/>\r\n </div>}\r\n </div>\r\n );\r\n }\r\n\r\n render(): any {\r\n if (this.props.renderAsCalendar) {\r\n return this.renderCalendar();\r\n } else if (this.props.hidePopup) {\r\n return this.renderInput();\r\n } else {\r\n return (\r\n <Tooltip color={\"white\"} trigger={this.props.disabled ? [] : [\"contextMenu\"]}\r\n getPopupContainer={this.props.getPopupContainer}\r\n overlayInnerStyle={{maxHeight: \"100vh\", overflowY: \"auto\", overflowX: \"hidden\", width: 266}}\r\n open={this.state.popupCalendarVisible}\r\n onOpenChange={(visible) => {\r\n this.setState({popupCalendarVisible: visible});\r\n if (visible) {\r\n this.setState({calendarSelectedDate: this.props.defaultSelectedDate?.clone() ?? this.props.value?.clone() ?? dayjs().startOf(\"day\")})\r\n }\r\n }}\r\n title={this.renderCalendar()}\r\n placement={this.props.placement}\r\n >\r\n {this.renderInput()}\r\n </Tooltip>\r\n );\r\n }\r\n }\r\n\r\n private static isValid(info: MaskResult, value: Dayjs | null, offset: number): boolean {\r\n const unit = info.info?.unit;\r\n return this.checkDateValueValidity(value, offset, unit);\r\n }\r\n\r\n private static checkDateValueValidity(value: Dayjs | null, offset: number, unit: ManipulateType | undefined) {\r\n if (value === null) {\r\n return false;\r\n }\r\n let v = value.clone().add(offset, unit);\r\n return v.isValid() && v.isSameOrAfter(dayjs(0));\r\n }\r\n\r\n private static parseDateTimeFormat(previousTime: Dayjs | null, value: string, mask: string, cursorPos: number | null): MaskResult {\r\n let result: MaskResult = {\r\n time: dayjs().startOf(\"day\"),\r\n info: undefined,\r\n length: 0,\r\n };\r\n\r\n for (let v of DATE_TIME_DATA_MAP) {\r\n let index: number = -1;\r\n let length: number = 0;\r\n let min: number = 0;\r\n let max: number = 0;\r\n\r\n if (Array.isArray(v.key) || Array.isArray(v.min) || Array.isArray(v.max)) {\r\n for (let i = 0; i < v.key.length; i++) {\r\n const x = v.key[i];\r\n index = mask.indexOf(x);\r\n\r\n if (index !== -1) {\r\n length = x.length;\r\n min = (v.min as number[])[i];\r\n max = (v.max as number[])[i];\r\n break;\r\n }\r\n }\r\n } else {\r\n index = mask.indexOf(v.key);\r\n length = v.key.length;\r\n min = v.min;\r\n max = v.max;\r\n }\r\n\r\n if (index !== -1) {\r\n let val: number = Number(value.substring(index, index + length));\r\n\r\n if (!isNaN(val) && val >= min && val <= max) {\r\n if (v.unit === \"M\") {\r\n val--; // 0-11\r\n }\r\n\r\n if (v.unit === \"d\") {\r\n result.time = result.time?.set('D', val);\r\n } else if (v.unit === \"y\" && length === 2) {\r\n const century: number = (previousTime != null && previousTime.isValid()) ? Math.floor(previousTime.year() / 100) * 100 : (val > 70 ? 1900 : 2000); // if short year\r\n result.time = result.time?.set(v.unit, century + val)\r\n } else if (v.unit !== \"weeks\" && v.unit !== \"week\" && v.unit !== \"w\") {\r\n result.time = result.time?.set(v.unit, val);\r\n }\r\n } else {\r\n result.time = undefined;\r\n result.info = undefined;\r\n result.length = 0;\r\n break;\r\n }\r\n\r\n if (cursorPos !== null && cursorPos >= index && cursorPos <= index + length) {\r\n result.info = v;\r\n result.length = length;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private static isValidValue(value?: Dayjs | null, minDateTime?: Dayjs, maxDateTime?: Dayjs, allowClear?: boolean): boolean {\r\n return (!!value && value.isValid() && (!minDateTime || value.isSameOrAfter(minDateTime)) && (!maxDateTime || value.isSameOrBefore(maxDateTime))) || (!!allowClear && value === null);\r\n }\r\n}"]}
@@ -1,56 +1,59 @@
1
- import React, { HTMLAttributes } from "react";
2
- import moment from "moment";
3
- interface DurationInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
4
- mask: string;
5
- value: moment.Duration | null;
6
- onChange?: (time: moment.Duration | null) => void;
7
- predefinedValues?: {
8
- key: string;
9
- value: string;
10
- }[];
11
- disabled?: boolean;
12
- inputStyle?: React.CSSProperties;
13
- autoFocus?: boolean;
14
- }
15
- interface DurationInputState {
16
- valid: boolean;
17
- selectionStart: number | null;
18
- selectionEnd: number | null;
19
- currentInfo: MaskResult;
20
- opened: boolean;
21
- value: string;
22
- hover: boolean;
23
- }
24
- interface MaskResult {
25
- time?: moment.Duration;
26
- info?: InfoEntry;
27
- infoFromMask?: EntryValue[];
28
- length: number;
29
- }
30
- interface InfoEntry {
31
- key: string;
32
- min: number;
33
- max: number;
34
- len: number;
35
- mult: number;
36
- unit: moment.unitOfTime.Base;
37
- }
38
- interface EntryValue {
39
- length: number;
40
- infoEntry: InfoEntry;
41
- value: number;
42
- }
43
- export declare const MAX_VALID_DURATION: number;
44
- export declare function parseDuration(value: string, mask: string, cursorPos?: number, maskResult?: MaskResult): moment.Duration | null;
45
- export default class DurationInput extends React.Component<DurationInputProps, DurationInputState> {
46
- private inputRef;
47
- constructor(props: Readonly<DurationInputProps>);
48
- componentDidUpdate(): void;
49
- recalc(): void;
50
- increment(): void;
51
- decrement(): void;
52
- get input(): HTMLInputElement | undefined;
53
- focus(): void;
54
- render(): JSX.Element;
55
- }
56
- export {};
1
+ import React, { HTMLAttributes } from "react";
2
+ import { ManipulateType } from "dayjs";
3
+ import { Duration } from "d2core/dayjs/duration";
4
+ import { SizeType } from "antd/lib/config-provider/SizeContext";
5
+ interface DurationInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
6
+ mask: string;
7
+ value: Duration | null;
8
+ onChange?: (time: Duration | null) => void;
9
+ predefinedValues?: {
10
+ key: string;
11
+ value: string;
12
+ }[];
13
+ disabled?: boolean;
14
+ inputStyle?: React.CSSProperties;
15
+ autoFocus?: boolean;
16
+ size?: SizeType;
17
+ }
18
+ interface DurationInputState {
19
+ valid: boolean;
20
+ selectionStart: number | null;
21
+ selectionEnd: number | null;
22
+ currentInfo: MaskResult;
23
+ opened: boolean;
24
+ value: string;
25
+ }
26
+ interface MaskResult {
27
+ time?: Duration;
28
+ info?: InfoEntry;
29
+ infoFromMask?: EntryValue[];
30
+ length: number;
31
+ }
32
+ interface InfoEntry {
33
+ key: string;
34
+ min: number;
35
+ max: number;
36
+ minLen: number;
37
+ maxLen: number;
38
+ mult: number;
39
+ unit: ManipulateType;
40
+ }
41
+ interface EntryValue {
42
+ length: number;
43
+ infoEntry: InfoEntry;
44
+ value: number;
45
+ }
46
+ export declare const MAX_VALID_DURATION: number;
47
+ export declare function parseDuration(value: string, mask: string, cursorPos?: number, maskResult?: MaskResult): Duration | null;
48
+ export default class DurationInput extends React.Component<DurationInputProps, DurationInputState> {
49
+ private inputRef;
50
+ constructor(props: Readonly<DurationInputProps>);
51
+ componentDidUpdate(): void;
52
+ recalc(): void;
53
+ increment(): void;
54
+ decrement(): void;
55
+ get input(): HTMLInputElement | undefined;
56
+ focus(): void;
57
+ render(): React.JSX.Element;
58
+ }
59
+ export {};