d2coreui 21.0.15 → 21.0.16

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 (143) hide show
  1. package/components/clipboard/clipboardUtils.d.ts +1 -1
  2. package/components/clipboard/clipboardUtils.js +1 -18
  3. package/components/clipboard/clipboardUtils.js.map +1 -1
  4. package/components/codemirror/SyntaxHighlighter.js.map +1 -1
  5. package/components/collapse/expandable.js.map +1 -1
  6. package/components/color/colorPicker.js.map +1 -1
  7. package/components/color/colorSwatch.js.map +1 -1
  8. package/components/color/colorUtils.js.map +1 -1
  9. package/components/date/dateRangeInput.d.ts +3 -2
  10. package/components/date/dateRangeInput.js +34 -20
  11. package/components/date/dateRangeInput.js.map +1 -1
  12. package/components/date/dateRangeInputAdvancedPanel.js.map +1 -1
  13. package/components/date/dateRangeInputConfirm.js.map +1 -1
  14. package/components/date/dateTimeInput.d.ts +2 -0
  15. package/components/date/dateTimeInput.js +15 -9
  16. package/components/date/dateTimeInput.js.map +1 -1
  17. package/components/date/durationInput.d.ts +7 -7
  18. package/components/date/durationInput.js +128 -75
  19. package/components/date/durationInput.js.map +1 -1
  20. package/components/form/NiceFormItem.d.ts +14 -0
  21. package/components/form/NiceFormItem.js +32 -0
  22. package/components/form/NiceFormItem.js.map +1 -0
  23. package/components/grid/cell/cellEditorUtils.js.map +1 -1
  24. package/components/grid/cell/customEnumCellEditor.js.map +1 -1
  25. package/components/grid/cell/dateCellEditor.js +1 -1
  26. package/components/grid/cell/dateCellEditor.js.map +1 -1
  27. package/components/grid/cell/durationCellEditor.js.map +1 -1
  28. package/components/grid/cell/hexaOctetStringCellEditor.js.map +1 -1
  29. package/components/grid/cell/hexaValueCellEditor.js.map +1 -1
  30. package/components/grid/cell/numberCellEditor.js +2 -2
  31. package/components/grid/cell/numberCellEditor.js.map +1 -1
  32. package/components/grid/cell/rangeSelector.js.map +1 -1
  33. package/components/grid/cell/simpleStatusTextCellEditor.js.map +1 -1
  34. package/components/grid/cell/statusTextCellEditor.js.map +1 -1
  35. package/components/grid/cell/tableDefaultRowStyleRules.js.map +1 -1
  36. package/components/grid/cell/textCellEditor.js +2 -1
  37. package/components/grid/cell/textCellEditor.js.map +1 -1
  38. package/components/grid/cell/wildcardQuickFilter.js.map +1 -1
  39. package/components/grid/columnUtils.js.map +1 -1
  40. package/components/grid/config/columnTransfer.js.map +1 -1
  41. package/components/grid/config/dataGridEditor.js.map +1 -1
  42. package/components/grid/config/rowStylePicker.js.map +1 -1
  43. package/components/grid/dataGrid.d.ts +3 -2
  44. package/components/grid/dataGrid.js +51 -54
  45. package/components/grid/dataGrid.js.map +1 -1
  46. package/components/grid/detail/detailHeaderPanel.d.ts +13 -0
  47. package/components/grid/detail/detailHeaderPanel.js +26 -0
  48. package/components/grid/detail/detailHeaderPanel.js.map +1 -0
  49. package/components/grid/export/contextMenu.d.ts +2 -1
  50. package/components/grid/export/contextMenu.js +4 -4
  51. package/components/grid/export/contextMenu.js.map +1 -1
  52. package/components/grid/export/progressPopup.js.map +1 -1
  53. package/components/grid/export/worker/clipboardExport.js.map +1 -1
  54. package/components/grid/export/worker/csvExport.js.map +1 -1
  55. package/components/grid/export/worker/pdfExport.js.map +1 -1
  56. package/components/grid/export/worker/txtExport.js.map +1 -1
  57. package/components/grid/extendedDataGrid.d.ts +1 -0
  58. package/components/grid/extendedDataGrid.js +6 -2
  59. package/components/grid/extendedDataGrid.js.map +1 -1
  60. package/components/grid/filter/customColumnFilter.js.map +1 -1
  61. package/components/grid/filter/dateColumnFilter.js.map +1 -1
  62. package/components/grid/filter/textColumnFilter.js.map +1 -1
  63. package/components/grid/header/simpleHeader.js.map +1 -1
  64. package/components/grid/panel/dataGridPagination.d.ts +16 -0
  65. package/components/grid/panel/dataGridPagination.js +59 -0
  66. package/components/grid/panel/dataGridPagination.js.map +1 -0
  67. package/components/grid/panel/loadingOverlay.js.map +1 -1
  68. package/components/grid/panel/noRecordsOverlay.js.map +1 -1
  69. package/components/grid/panel/tablePagination.js.map +1 -1
  70. package/components/icons/ant-design-double-right-outline.svg +5 -5
  71. package/components/icons/ant-design_close-outline.svg +5 -5
  72. package/components/icons/undoIcon.js.map +1 -1
  73. package/components/input/autoCompleteInput.js.map +1 -1
  74. package/components/input/draftUtils.js.map +1 -1
  75. package/components/input/draftail.js.map +1 -1
  76. package/components/input/hexaFormattedInput.js.map +1 -1
  77. package/components/input/mask/helpers.js.map +1 -1
  78. package/components/input/mask/inputMaskCore.js.map +1 -1
  79. package/components/input/mask/pattern.js.map +1 -1
  80. package/components/input/maskedInput.d.ts +2 -2
  81. package/components/input/maskedInput.js.map +1 -1
  82. package/components/input/passwordInput.js.map +1 -1
  83. package/components/input/simpleAutoComplete.js.map +1 -1
  84. package/components/input/textarea/extractSpansOfClasses.js.map +1 -1
  85. package/components/input/textarea/getRanges.js.map +1 -1
  86. package/components/input/textarea/getType.js.map +1 -1
  87. package/components/input/textarea/highlighedContents.js.map +1 -1
  88. package/components/input/textarea/mentionsWithHighlighting.js +1 -1
  89. package/components/input/textarea/mentionsWithHighlighting.js.map +1 -1
  90. package/components/keyboard/keyboardUtils.js.map +1 -1
  91. package/components/modal/draggableModalProvider.js.map +1 -1
  92. package/components/modal/impl/clamp.js.map +1 -1
  93. package/components/modal/impl/draggableModal.js.map +1 -1
  94. package/components/modal/impl/draggableModalContext.js.map +1 -1
  95. package/components/modal/impl/draggableModalInner.js.map +1 -1
  96. package/components/modal/impl/draggableModalReducer.js.map +1 -1
  97. package/components/modal/impl/getWindowSize.js.map +1 -1
  98. package/components/modal/impl/index.js.map +1 -1
  99. package/components/modal/impl/resizeHandle.js.map +1 -1
  100. package/components/modal/impl/useDrag.js.map +1 -1
  101. package/components/modal/impl/usePrevious.js.map +1 -1
  102. package/components/modal/impl/useResize.js.map +1 -1
  103. package/components/modal/modalDialog.js.map +1 -1
  104. package/components/picker/enumValuePicker.js.map +1 -1
  105. package/components/platformSpecific.js.map +1 -1
  106. package/components/scrollTo/onlyText.js.map +1 -1
  107. package/components/scrollTo/scrollTo.js.map +1 -1
  108. package/components/table/dataTable.d.ts +1 -0
  109. package/components/table/dataTable.js.map +1 -1
  110. package/components/table/dragSortingTable.js.map +1 -1
  111. package/components/text/impl/innerSize.js.map +1 -1
  112. package/components/text/impl/series.js.map +1 -1
  113. package/components/text/impl/shallowEqual.js.map +1 -1
  114. package/components/text/impl/uniqueId.js.map +1 -1
  115. package/components/text/impl/whilst.js.map +1 -1
  116. package/components/text/textFit.js.map +1 -1
  117. package/i18n/components.cs.json +100 -0
  118. package/i18n/components.sk.json +5 -1
  119. package/i18n/components.uk.json +100 -0
  120. package/i18n/componentsLocaleHolder.d.ts +1 -1
  121. package/i18n/componentsLocaleHolder.js +6 -4
  122. package/i18n/componentsLocaleHolder.js.map +1 -1
  123. package/package.json +70 -70
  124. package/style/ag-grid/_ag-theme-antd-vars.scss +194 -194
  125. package/style/ag-grid/ag-theme-antd.scss +87 -87
  126. package/style/ag-grid/aggrid-adaptations.css +42 -42
  127. package/style/ag-grid/aggrid.scss +11 -11
  128. package/style/antd/antd-tree-showline.css +24 -24
  129. package/style/antd/full-height-tabs.scss +62 -62
  130. package/style/draftail/draftail-editor.css +179 -179
  131. package/style/flexLayout/flexLayout.scss +130 -130
  132. package/style/flexLayout/flexLayoutBase.scss +623 -623
  133. package/style/flexLayout/new/flexLayoutBase.scss +621 -621
  134. package/style/form/niceFormItem.css +39 -0
  135. package/style/index.less +299 -291
  136. package/style/loading.css +31 -31
  137. package/style/modal/DraggableModal.css +40 -40
  138. package/style/modal/ResizeHandle.css +19 -19
  139. package/style/splitPane/splitPane.css +48 -48
  140. package/style/table/dragSortingTable.css +6 -6
  141. package/components/date/millisecondDatePicker.d.ts +0 -16
  142. package/components/date/millisecondDatePicker.js +0 -56
  143. package/components/date/millisecondDatePicker.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dateRangeInputAdvancedPanel.js","sourceRoot":"","sources":["../../../../components/date/dateRangeInputAdvancedPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {Button, Col, Divider, Row} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {unitOfTime} from \"moment\";\r\nimport Icon from \"@ant-design/icons/es/components/Icon\";\r\n\r\nexport enum TimeShiftDirection {\r\n INCREMENT,\r\n DECREMENT,\r\n}\r\n\r\ninterface DateRangeInputAdvancedPanelProps {\r\n onBeginIntervalChange(unit: unitOfTime.StartOf | \"15minutes\"): void\r\n\r\n onIntervalDurationChange(unitOfTime: unitOfTime.DurationConstructor | \"4years\"): void\r\n\r\n onTimeShift(shiftBegin: boolean, shiftEnd: boolean, unitOfTime: unitOfTime.DurationConstructor, direction: TimeShiftDirection): void\r\n\r\n onEndIntervalChange(unit: unitOfTime.StartOf | \"15minutes\"): void\r\n}\r\n\r\ninterface DateRangeInputAdvancedPanelState {\r\n timeShiftBegin: boolean\r\n timeShiftBoth: boolean\r\n timeShiftEnd: boolean\r\n}\r\n\r\nexport default class DateRangeInputAdvancedPanel extends React.Component<DateRangeInputAdvancedPanelProps, DateRangeInputAdvancedPanelState> {\r\n constructor(props: Readonly<DateRangeInputAdvancedPanelProps>) {\r\n super(props);\r\n\r\n this.state = {\r\n timeShiftBegin: false,\r\n timeShiftBoth: true,\r\n timeShiftEnd: false,\r\n }\r\n }\r\n\r\n private renderSectionTitle(title: React.ReactNode, style?: React.CSSProperties) {\r\n return (\r\n <span style={\r\n Object.assign({display: \"block\", fontWeight: \"bold\", textAlign: \"center\", marginBottom: 4}, style)}\r\n >\r\n {`${title}:`}\r\n </span>\r\n );\r\n }\r\n\r\n private renderButton(title: React.ReactNode, callback: () => void) {\r\n return (\r\n <Button\r\n className=\"hoverable-primary-ghost-button\"\r\n style={{width: \"100%\", marginBottom: 6}}\r\n type=\"primary\"\r\n size=\"small\"\r\n // shape=\"round\"\r\n ghost\r\n onClick={callback}\r\n >\r\n {title}\r\n </Button>\r\n );\r\n }\r\n\r\n private renderTimeShiftItem(title: React.ReactNode, callback: (direction: TimeShiftDirection) => void) {\r\n const disabled = !this.state.timeShiftBegin && !this.state.timeShiftEnd && !this.state.timeShiftBoth;\r\n\r\n return (\r\n <div style={{position: \"relative\", marginBottom: 6}}>\r\n <Button\r\n className={disabled ? undefined : \"hoverable-primary-ghost-button\"}\r\n style={{width: \"20%\", borderRight: 0, borderRadius: \"2px 0px 0px 2px\"}}\r\n disabled={disabled}\r\n type=\"primary\"\r\n size=\"small\"\r\n ghost\r\n onClick={() => callback(TimeShiftDirection.DECREMENT)}\r\n >\r\n -\r\n </Button>\r\n <Button\r\n style={{width: \"60%\", borderLeft: 0, borderRight: 0, borderRadius: 0}}\r\n disabled={disabled}\r\n type=\"primary\"\r\n size=\"small\"\r\n ghost\r\n >\r\n {title}\r\n </Button>\r\n <Button\r\n className={disabled ? undefined : \"hoverable-primary-ghost-button\"}\r\n style={{width: \"20%\", borderLeft: 0, borderRadius: \"0px 2px 2px 0px\"}}\r\n disabled={disabled}\r\n type=\"primary\"\r\n size=\"small\"\r\n ghost\r\n onClick={() => callback(TimeShiftDirection.INCREMENT)}\r\n >\r\n +\r\n </Button>\r\n </div>\r\n );\r\n }\r\n\r\n private renderTimeShiftIcon(shiftType: \"begin\" | \"both\" | \"end\") {\r\n let checked = false;\r\n if (shiftType === \"begin\") {\r\n checked = this.state.timeShiftBegin;\r\n } else if (shiftType === \"both\") {\r\n checked = this.state.timeShiftBoth;\r\n } else if (shiftType === \"end\") {\r\n checked = this.state.timeShiftEnd;\r\n }\r\n\r\n return (\r\n <Icon component={() =>\r\n <svg\r\n className=\"icon\"\r\n viewBox=\"64 64 896 896\"\r\n version=\"1.1\"\r\n width={40}\r\n height={40}\r\n cursor=\"pointer\"\r\n color={checked ? \"#2998ff\" : \"rgba(0, 0, 0, 0.65)\"}\r\n onClick={() => {\r\n if (shiftType === \"begin\") {\r\n this.setState({timeShiftBegin: !this.state.timeShiftBegin, timeShiftBoth: false, timeShiftEnd: false});\r\n } else if (shiftType === \"both\") {\r\n this.setState({timeShiftBegin: false, timeShiftBoth: !this.state.timeShiftBoth, timeShiftEnd: false});\r\n } else if (shiftType === \"end\") {\r\n this.setState({timeShiftBegin: false, timeShiftBoth: false, timeShiftEnd: !this.state.timeShiftEnd});\r\n }\r\n }}\r\n >\r\n <path\r\n d=\"m 880.43128,184.00001 h -168 v -64 c 0,-4.4 -3.6,-8 -8,-8 h -56 c -4.4,0 -8,3.6 -8,8 v 64 h -256 v -64 c 0,-4.4 -3.6,-8 -8,-8 h -56 c -4.4,0 -8,3.6 -8,8 v 64 h -168 c -17.7,0 -32,14.3 -32,32 v 664 c 0,17.7 14.3,32 32,32 h 736 c 17.7,0 32,-14.3 32,-32 v -664 c 0,-17.7 -14.3,-32 -32,-32 z m -40,656 h -656 v -380 h 656 z m -656,-448 v -136 h 128 v 48 c 0,4.4 3.6,8 8,8 h 56 c 4.4,0 8,-3.6 8,-8 v -48 h 256 v 48 c 0,4.4 3.6,8 8,8 h 56 c 4.4,0 8,-3.6 8,-8 v -48 h 128 v 136 z\"\r\n id=\"path2231\"\r\n style={{fill: \"currentcolor\"}}\r\n />\r\n {[\"begin\", \"end\"].includes(shiftType) &&\r\n <g id=\"g41\">\r\n <g id=\"path2822\"/>\r\n <g id=\"path2824\"/>\r\n <g id=\"path2826\" transform={shiftType === \"end\" ? \"rotate(180,512.9334,646.24561)\" : \"unset\"}>\r\n <path\r\n id=\"path50\"\r\n style={{fill: \"currentcolor\"}}\r\n d=\"m 358.80859,510.14062 a 34.41795,34.41795 0 0 0 -23.58789,9.24219 L 226.40625,620.82422 a 34.41795,34.41795 0 0 0 -1.70508,48.64453 34.41795,34.41795 0 0 0 48.64453,1.70703 l 108.8125,-101.4414 a 34.41795,34.41795 0 0 0 1.70703,-48.64454 34.41795,34.41795 0 0 0 -25.05664,-10.94922 z M 249.87565,645.99998 358.68957,544.55871 M 249.7207,611.58203 a 34.41795,34.41795 0 0 0 -24.90625,10.82813 34.41795,34.41795 0 0 0 1.47071,48.65234 l 108.29492,101.93164 a 34.41795,34.41795 0 0 0 48.65234,-1.4707 34.41795,34.41795 0 0 0 -1.47265,-48.65235 L 273.46484,620.9375 a 34.41795,34.41795 0 0 0 -23.74414,-9.35547 z m 0.15495,34.41795 108.29422,101.93273 M 264.8125,610.01953 A 35.98045,35.98045 0 0 0 228.83203,646 35.98045,35.98045 0 0 0 264.8125,681.98047 H 550.48633 A 35.98045,35.98045 0 0 0 586.4668,646 35.98045,35.98045 0 0 0 550.48633,610.01953 Z m 285.67298,35.98045 h -285.6727\"/>\r\n </g>\r\n </g>}\r\n {shiftType === \"both\" && <g id=\"g65\" transform=\"rotate(180,512.9334,646.0254)\">\r\n <path\r\n id=\"path63\"\r\n style={{fill: \"currentcolor\"}}\r\n d=\"m 358.80859,510.14062 a 34.41795,34.41795 0 0 0 -23.58789,9.24219 L 226.40625,620.82422 a 34.41795,34.41795 0 0 0 -1.70508,48.64453 34.41795,34.41795 0 0 0 48.64453,1.70703 l 108.8125,-101.4414 a 34.41795,34.41795 0 0 0 1.70703,-48.64454 34.41795,34.41795 0 0 0 -25.05664,-10.94922 z M 249.87565,645.99998 358.68957,544.55871 M 249.7207,611.58203 a 34.41795,34.41795 0 0 0 -24.90625,10.82813 34.41795,34.41795 0 0 0 1.47071,48.65234 l 108.29492,101.93164 a 34.41795,34.41795 0 0 0 48.65234,-1.4707 34.41795,34.41795 0 0 0 -1.47265,-48.65235 L 273.46484,620.9375 a 34.41795,34.41795 0 0 0 -23.74414,-9.35547 z m 0.15495,34.41795 108.29422,101.93273 M 264.8125,610.01953 A 35.98045,35.98045 0 0 0 228.83203,646 35.98045,35.98045 0 0 0 264.8125,681.98047 H 550.48633 A 35.98045,35.98045 0 0 0 586.4668,646 35.98045,35.98045 0 0 0 550.48633,610.01953 Z m 285.67298,35.98045 h -285.6727 m 402.24543,135.9102 a -34.41795,-34.41795 0 0 0 23.58789,-9.24219 L 799.46055,671.22658 a -34.41795,-34.41795 0 0 0 1.70508,-48.64453 -34.41795,-34.41795 0 0 0 -48.64453,-1.70703 l -108.8125,101.4414 a -34.41795,-34.41795 0 0 0 -1.70703,48.64454 -34.41795,-34.41795 0 0 0 25.05664,10.94922 z M 775.99115,646.05082 667.17723,747.49209 M 776.1461,680.46877 a -34.41795,-34.41795 0 0 0 24.90625,-10.82813 -34.41795,-34.41795 0 0 0 -1.47071,-48.65234 L 691.28672,519.05666 a -34.41795,-34.41795 0 0 0 -48.65234,1.4707 -34.41795,-34.41795 0 0 0 1.47265,48.65235 L 752.40196,671.1133 a -34.41795,-34.41795 0 0 0 23.74414,9.35547 z M 775.99115,646.05082 667.69693,544.11809 M 761.0543,682.03127 A -35.98045,-35.98045 0 0 0 797.03477,646.0508 -35.98045,-35.98045 0 0 0 761.0543,610.07033 H 475.38047 A -35.98045,-35.98045 0 0 0 439.4,646.0508 -35.98045,-35.98045 0 0 0 475.38047,682.03127 Z M 475.38132,646.05082 h 285.6727\"/>\r\n </g>}\r\n </svg>\r\n }/>\r\n );\r\n }\r\n\r\n render() {\r\n const timeShiftBegin = this.state.timeShiftBegin || this.state.timeShiftBoth;\r\n const timeShiftEnd = this.state.timeShiftEnd || this.state.timeShiftBoth;\r\n\r\n return (\r\n <div style={{color: \"rgba(0, 0, 0, 0.65)\"}}>\r\n <Divider style={{margin: \"8px 0px 6px\"}}/>\r\n <Row>\r\n <Col span={8} style={{padding: \"0px 16px 0px\"}}>\r\n {this.renderSectionTitle(i18n(\"Interval Begin\"))}\r\n {this.renderButton(i18n(\"Now\"), () => this.props.onBeginIntervalChange(\"15minutes\"))}\r\n {this.renderButton(i18n(\"Today\"), () => this.props.onBeginIntervalChange(\"day\"))}\r\n {this.renderButton(i18n(\"This Week\"), () => this.props.onBeginIntervalChange(\"week\"))}\r\n {this.renderButton(i18n(\"This Month\"), () => this.props.onBeginIntervalChange(\"month\"))}\r\n {this.renderButton(i18n(\"This Quarter\"), () => this.props.onBeginIntervalChange(\"quarter\"))}\r\n {this.renderButton(i18n(\"This Year\"), () => this.props.onBeginIntervalChange(\"year\"))}\r\n </Col>\r\n <Col span={1}>\r\n <Divider type=\"vertical\" style={{height: \"100%\"}}/>\r\n </Col>\r\n <Col span={7} style={{padding: \"0px 14px 0px\"}}>\r\n {this.renderSectionTitle(i18n(\"Interval Duration\"))}\r\n {this.renderButton(i18n(\"Hour\"), () => this.props.onIntervalDurationChange(\"hour\"))}\r\n {this.renderButton(i18n(\"Day\"), () => this.props.onIntervalDurationChange(\"day\"))}\r\n {this.renderButton(i18n(\"Week\"), () => this.props.onIntervalDurationChange(\"week\"))}\r\n {this.renderButton(i18n(\"Month\"), () => this.props.onIntervalDurationChange(\"month\"))}\r\n {this.renderButton(i18n(\"Quarter\"), () => this.props.onIntervalDurationChange(\"quarter\"))}\r\n {this.renderButton(i18n(\"Year\"), () => this.props.onIntervalDurationChange(\"year\"))}\r\n {this.renderButton(`4 ${i18n(\"Years\")}`, () => this.props.onIntervalDurationChange(\"4years\"))}\r\n </Col>\r\n <Col span={1}>\r\n <Divider type=\"vertical\" style={{height: \"100%\"}}/>\r\n </Col>\r\n <Col span={7} style={{padding: \"0px 16px 0px\"}}>\r\n {this.renderSectionTitle(i18n(\"Time Shift\"))}\r\n <div style={{\r\n height: 52,\r\n marginBottom: 8,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n }}>\r\n {this.renderTimeShiftIcon(\"begin\")}\r\n {this.renderTimeShiftIcon(\"both\")}\r\n {this.renderTimeShiftIcon(\"end\")}\r\n </div>\r\n {this.renderTimeShiftItem(i18n(\"Hour\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"hour\", direction))}\r\n {this.renderTimeShiftItem(i18n(\"Day\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"day\", direction))}\r\n {this.renderTimeShiftItem(i18n(\"Week\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"week\", direction))}\r\n {this.renderTimeShiftItem(i18n(\"Month\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"month\", direction))}\r\n {this.renderTimeShiftItem(i18n(\"Year\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"year\", direction))}\r\n </Col>\r\n </Row>\r\n <Divider style={{margin: \"6px 0px 10px\"}}/>\r\n <div style={{display: \"flex\"}}>\r\n <div style={{width: 192}}>\r\n {this.renderSectionTitle(i18n(\"Interval End\"), {marginBottom: 0})}\r\n </div>\r\n <div style={{marginLeft: 18, width: 93}}>\r\n {this.renderButton(\"15 min\", () => this.props.onEndIntervalChange(\"15minutes\"))}\r\n </div>\r\n <div style={{marginLeft: 8, width: 93}}>\r\n {this.renderButton(i18n(\"Hour\"), () => this.props.onEndIntervalChange(\"hour\"))}\r\n </div>\r\n <div style={{marginLeft: 8, width: 92}}>\r\n {this.renderButton(i18n(\"Day\"), () => this.props.onEndIntervalChange(\"day\"))}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"dateRangeInputAdvancedPanel.js","sourceRoot":"","sources":["../../../../components/date/dateRangeInputAdvancedPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {Button, Col, Divider, Row} from \"antd\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {unitOfTime} from \"moment\";\nimport Icon from \"@ant-design/icons/es/components/Icon\";\n\nexport enum TimeShiftDirection {\n INCREMENT,\n DECREMENT,\n}\n\ninterface DateRangeInputAdvancedPanelProps {\n onBeginIntervalChange(unit: unitOfTime.StartOf | \"15minutes\"): void\n\n onIntervalDurationChange(unitOfTime: unitOfTime.DurationConstructor | \"4years\"): void\n\n onTimeShift(shiftBegin: boolean, shiftEnd: boolean, unitOfTime: unitOfTime.DurationConstructor, direction: TimeShiftDirection): void\n\n onEndIntervalChange(unit: unitOfTime.StartOf | \"15minutes\"): void\n}\n\ninterface DateRangeInputAdvancedPanelState {\n timeShiftBegin: boolean\n timeShiftBoth: boolean\n timeShiftEnd: boolean\n}\n\nexport default class DateRangeInputAdvancedPanel extends React.Component<DateRangeInputAdvancedPanelProps, DateRangeInputAdvancedPanelState> {\n constructor(props: Readonly<DateRangeInputAdvancedPanelProps>) {\n super(props);\n\n this.state = {\n timeShiftBegin: false,\n timeShiftBoth: true,\n timeShiftEnd: false,\n }\n }\n\n private renderSectionTitle(title: React.ReactNode, style?: React.CSSProperties) {\n return (\n <span style={\n Object.assign({display: \"block\", fontWeight: \"bold\", textAlign: \"center\", marginBottom: 4}, style)}\n >\n {`${title}:`}\n </span>\n );\n }\n\n private renderButton(title: React.ReactNode, callback: () => void) {\n return (\n <Button\n className=\"hoverable-primary-ghost-button\"\n style={{width: \"100%\", marginBottom: 6}}\n type=\"primary\"\n size=\"small\"\n // shape=\"round\"\n ghost\n onClick={callback}\n >\n {title}\n </Button>\n );\n }\n\n private renderTimeShiftItem(title: React.ReactNode, callback: (direction: TimeShiftDirection) => void) {\n const disabled = !this.state.timeShiftBegin && !this.state.timeShiftEnd && !this.state.timeShiftBoth;\n\n return (\n <div style={{position: \"relative\", marginBottom: 6}}>\n <Button\n className={disabled ? undefined : \"hoverable-primary-ghost-button\"}\n style={{width: \"20%\", borderRight: 0, borderRadius: \"2px 0px 0px 2px\"}}\n disabled={disabled}\n type=\"primary\"\n size=\"small\"\n ghost\n onClick={() => callback(TimeShiftDirection.DECREMENT)}\n >\n -\n </Button>\n <Button\n style={{width: \"60%\", borderLeft: 0, borderRight: 0, borderRadius: 0}}\n disabled={disabled}\n type=\"primary\"\n size=\"small\"\n ghost\n >\n {title}\n </Button>\n <Button\n className={disabled ? undefined : \"hoverable-primary-ghost-button\"}\n style={{width: \"20%\", borderLeft: 0, borderRadius: \"0px 2px 2px 0px\"}}\n disabled={disabled}\n type=\"primary\"\n size=\"small\"\n ghost\n onClick={() => callback(TimeShiftDirection.INCREMENT)}\n >\n +\n </Button>\n </div>\n );\n }\n\n private renderTimeShiftIcon(shiftType: \"begin\" | \"both\" | \"end\") {\n let checked = false;\n if (shiftType === \"begin\") {\n checked = this.state.timeShiftBegin;\n } else if (shiftType === \"both\") {\n checked = this.state.timeShiftBoth;\n } else if (shiftType === \"end\") {\n checked = this.state.timeShiftEnd;\n }\n\n return (\n <Icon component={() =>\n <svg\n className=\"icon\"\n viewBox=\"64 64 896 896\"\n version=\"1.1\"\n width={40}\n height={40}\n cursor=\"pointer\"\n color={checked ? \"#2998ff\" : \"rgba(0, 0, 0, 0.65)\"}\n onClick={() => {\n if (shiftType === \"begin\") {\n this.setState({timeShiftBegin: !this.state.timeShiftBegin, timeShiftBoth: false, timeShiftEnd: false});\n } else if (shiftType === \"both\") {\n this.setState({timeShiftBegin: false, timeShiftBoth: !this.state.timeShiftBoth, timeShiftEnd: false});\n } else if (shiftType === \"end\") {\n this.setState({timeShiftBegin: false, timeShiftBoth: false, timeShiftEnd: !this.state.timeShiftEnd});\n }\n }}\n >\n <path\n d=\"m 880.43128,184.00001 h -168 v -64 c 0,-4.4 -3.6,-8 -8,-8 h -56 c -4.4,0 -8,3.6 -8,8 v 64 h -256 v -64 c 0,-4.4 -3.6,-8 -8,-8 h -56 c -4.4,0 -8,3.6 -8,8 v 64 h -168 c -17.7,0 -32,14.3 -32,32 v 664 c 0,17.7 14.3,32 32,32 h 736 c 17.7,0 32,-14.3 32,-32 v -664 c 0,-17.7 -14.3,-32 -32,-32 z m -40,656 h -656 v -380 h 656 z m -656,-448 v -136 h 128 v 48 c 0,4.4 3.6,8 8,8 h 56 c 4.4,0 8,-3.6 8,-8 v -48 h 256 v 48 c 0,4.4 3.6,8 8,8 h 56 c 4.4,0 8,-3.6 8,-8 v -48 h 128 v 136 z\"\n id=\"path2231\"\n style={{fill: \"currentcolor\"}}\n />\n {[\"begin\", \"end\"].includes(shiftType) &&\n <g id=\"g41\">\n <g id=\"path2822\"/>\n <g id=\"path2824\"/>\n <g id=\"path2826\" transform={shiftType === \"end\" ? \"rotate(180,512.9334,646.24561)\" : \"unset\"}>\n <path\n id=\"path50\"\n style={{fill: \"currentcolor\"}}\n d=\"m 358.80859,510.14062 a 34.41795,34.41795 0 0 0 -23.58789,9.24219 L 226.40625,620.82422 a 34.41795,34.41795 0 0 0 -1.70508,48.64453 34.41795,34.41795 0 0 0 48.64453,1.70703 l 108.8125,-101.4414 a 34.41795,34.41795 0 0 0 1.70703,-48.64454 34.41795,34.41795 0 0 0 -25.05664,-10.94922 z M 249.87565,645.99998 358.68957,544.55871 M 249.7207,611.58203 a 34.41795,34.41795 0 0 0 -24.90625,10.82813 34.41795,34.41795 0 0 0 1.47071,48.65234 l 108.29492,101.93164 a 34.41795,34.41795 0 0 0 48.65234,-1.4707 34.41795,34.41795 0 0 0 -1.47265,-48.65235 L 273.46484,620.9375 a 34.41795,34.41795 0 0 0 -23.74414,-9.35547 z m 0.15495,34.41795 108.29422,101.93273 M 264.8125,610.01953 A 35.98045,35.98045 0 0 0 228.83203,646 35.98045,35.98045 0 0 0 264.8125,681.98047 H 550.48633 A 35.98045,35.98045 0 0 0 586.4668,646 35.98045,35.98045 0 0 0 550.48633,610.01953 Z m 285.67298,35.98045 h -285.6727\"/>\n </g>\n </g>}\n {shiftType === \"both\" && <g id=\"g65\" transform=\"rotate(180,512.9334,646.0254)\">\n <path\n id=\"path63\"\n style={{fill: \"currentcolor\"}}\n d=\"m 358.80859,510.14062 a 34.41795,34.41795 0 0 0 -23.58789,9.24219 L 226.40625,620.82422 a 34.41795,34.41795 0 0 0 -1.70508,48.64453 34.41795,34.41795 0 0 0 48.64453,1.70703 l 108.8125,-101.4414 a 34.41795,34.41795 0 0 0 1.70703,-48.64454 34.41795,34.41795 0 0 0 -25.05664,-10.94922 z M 249.87565,645.99998 358.68957,544.55871 M 249.7207,611.58203 a 34.41795,34.41795 0 0 0 -24.90625,10.82813 34.41795,34.41795 0 0 0 1.47071,48.65234 l 108.29492,101.93164 a 34.41795,34.41795 0 0 0 48.65234,-1.4707 34.41795,34.41795 0 0 0 -1.47265,-48.65235 L 273.46484,620.9375 a 34.41795,34.41795 0 0 0 -23.74414,-9.35547 z m 0.15495,34.41795 108.29422,101.93273 M 264.8125,610.01953 A 35.98045,35.98045 0 0 0 228.83203,646 35.98045,35.98045 0 0 0 264.8125,681.98047 H 550.48633 A 35.98045,35.98045 0 0 0 586.4668,646 35.98045,35.98045 0 0 0 550.48633,610.01953 Z m 285.67298,35.98045 h -285.6727 m 402.24543,135.9102 a -34.41795,-34.41795 0 0 0 23.58789,-9.24219 L 799.46055,671.22658 a -34.41795,-34.41795 0 0 0 1.70508,-48.64453 -34.41795,-34.41795 0 0 0 -48.64453,-1.70703 l -108.8125,101.4414 a -34.41795,-34.41795 0 0 0 -1.70703,48.64454 -34.41795,-34.41795 0 0 0 25.05664,10.94922 z M 775.99115,646.05082 667.17723,747.49209 M 776.1461,680.46877 a -34.41795,-34.41795 0 0 0 24.90625,-10.82813 -34.41795,-34.41795 0 0 0 -1.47071,-48.65234 L 691.28672,519.05666 a -34.41795,-34.41795 0 0 0 -48.65234,1.4707 -34.41795,-34.41795 0 0 0 1.47265,48.65235 L 752.40196,671.1133 a -34.41795,-34.41795 0 0 0 23.74414,9.35547 z M 775.99115,646.05082 667.69693,544.11809 M 761.0543,682.03127 A -35.98045,-35.98045 0 0 0 797.03477,646.0508 -35.98045,-35.98045 0 0 0 761.0543,610.07033 H 475.38047 A -35.98045,-35.98045 0 0 0 439.4,646.0508 -35.98045,-35.98045 0 0 0 475.38047,682.03127 Z M 475.38132,646.05082 h 285.6727\"/>\n </g>}\n </svg>\n }/>\n );\n }\n\n render() {\n const timeShiftBegin = this.state.timeShiftBegin || this.state.timeShiftBoth;\n const timeShiftEnd = this.state.timeShiftEnd || this.state.timeShiftBoth;\n\n return (\n <div style={{color: \"rgba(0, 0, 0, 0.65)\"}}>\n <Divider style={{margin: \"8px 0px 6px\"}}/>\n <Row>\n <Col span={8} style={{padding: \"0px 16px 0px\"}}>\n {this.renderSectionTitle(i18n(\"Interval Begin\"))}\n {this.renderButton(i18n(\"Now\"), () => this.props.onBeginIntervalChange(\"15minutes\"))}\n {this.renderButton(i18n(\"Today\"), () => this.props.onBeginIntervalChange(\"day\"))}\n {this.renderButton(i18n(\"This Week\"), () => this.props.onBeginIntervalChange(\"week\"))}\n {this.renderButton(i18n(\"This Month\"), () => this.props.onBeginIntervalChange(\"month\"))}\n {this.renderButton(i18n(\"This Quarter\"), () => this.props.onBeginIntervalChange(\"quarter\"))}\n {this.renderButton(i18n(\"This Year\"), () => this.props.onBeginIntervalChange(\"year\"))}\n </Col>\n <Col span={1}>\n <Divider type=\"vertical\" style={{height: \"100%\"}}/>\n </Col>\n <Col span={7} style={{padding: \"0px 14px 0px\"}}>\n {this.renderSectionTitle(i18n(\"Interval Duration\"))}\n {this.renderButton(i18n(\"Hour\"), () => this.props.onIntervalDurationChange(\"hour\"))}\n {this.renderButton(i18n(\"Day\"), () => this.props.onIntervalDurationChange(\"day\"))}\n {this.renderButton(i18n(\"Week\"), () => this.props.onIntervalDurationChange(\"week\"))}\n {this.renderButton(i18n(\"Month\"), () => this.props.onIntervalDurationChange(\"month\"))}\n {this.renderButton(i18n(\"Quarter\"), () => this.props.onIntervalDurationChange(\"quarter\"))}\n {this.renderButton(i18n(\"Year\"), () => this.props.onIntervalDurationChange(\"year\"))}\n {this.renderButton(`4 ${i18n(\"Years\")}`, () => this.props.onIntervalDurationChange(\"4years\"))}\n </Col>\n <Col span={1}>\n <Divider type=\"vertical\" style={{height: \"100%\"}}/>\n </Col>\n <Col span={7} style={{padding: \"0px 16px 0px\"}}>\n {this.renderSectionTitle(i18n(\"Time Shift\"))}\n <div style={{\n height: 52,\n marginBottom: 8,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}>\n {this.renderTimeShiftIcon(\"begin\")}\n {this.renderTimeShiftIcon(\"both\")}\n {this.renderTimeShiftIcon(\"end\")}\n </div>\n {this.renderTimeShiftItem(i18n(\"Hour\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"hour\", direction))}\n {this.renderTimeShiftItem(i18n(\"Day\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"day\", direction))}\n {this.renderTimeShiftItem(i18n(\"Week\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"week\", direction))}\n {this.renderTimeShiftItem(i18n(\"Month\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"month\", direction))}\n {this.renderTimeShiftItem(i18n(\"Year\"), (direction) => this.props.onTimeShift(timeShiftBegin, timeShiftEnd, \"year\", direction))}\n </Col>\n </Row>\n <Divider style={{margin: \"6px 0px 10px\"}}/>\n <div style={{display: \"flex\"}}>\n <div style={{width: 192}}>\n {this.renderSectionTitle(i18n(\"Interval End\"), {marginBottom: 0})}\n </div>\n <div style={{marginLeft: 18, width: 93}}>\n {this.renderButton(\"15 min\", () => this.props.onEndIntervalChange(\"15minutes\"))}\n </div>\n <div style={{marginLeft: 8, width: 93}}>\n {this.renderButton(i18n(\"Hour\"), () => this.props.onEndIntervalChange(\"hour\"))}\n </div>\n <div style={{marginLeft: 8, width: 92}}>\n {this.renderButton(i18n(\"Day\"), () => this.props.onEndIntervalChange(\"day\"))}\n </div>\n </div>\n </div>\n );\n }\n\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dateRangeInputConfirm.js","sourceRoot":"","sources":["../../../../components/date/dateRangeInputConfirm.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACrC,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,cAAc,EAAE,EAAC,kBAAkB,EAAsB,MAAM,kBAAkB,CAAC;AAGzF,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,GAAG,EAAC,MAAM,aAAa,CAAC;AAkBhC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,KAAK,CAAC,SAAiE;IAGtH,YAAY,KAA2C;;QACnD,KAAK,CAAC,KAAK,CAAC,CAAC;QAHT,mBAAc,GAA0B,IAAI,CAAC;QAIjD,IAAI,CAAC,KAAK,GAAG;YACT,gBAAgB,EAAE,MAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,KAAK,EAAE,mCAAI,IAAI;YAClD,cAAc,EAAE,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,KAAK,EAAE,mCAAI,IAAI;YAC9C,mBAAmB,EAAE,KAAK;YAC1B,aAAa,EAAE,CAAC;YAChB,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B;YAEvD,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,kBAAkB,CAAC,MAAM;SACvD,CAAC;QAEF,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,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB;QACb,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,oBAAoB;QAChB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE;YACzB,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE;YACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;IACL,CAAC;IAED,kBAAkB,CAAC,SAAwC;;QACvD,IAAI,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAChG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC9F,IAAI,CAAC,QAAQ,CAAC;gBACV,gBAAgB,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,KAAK,EAAE,mCAAI,IAAI;gBACvD,cAAc,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,KAAK,EAAE,mCAAI,IAAI;aACtD,CAAC,CAAA;SACL;IACL,CAAC;IAEO,SAAS;;QACb,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,EAAC,CAAC,CAAC;QACzF,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9E,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;IACtC,CAAC;IAEO,QAAQ;;QACZ,IAAI,CAAC,QAAQ,CAAC;YACV,gBAAgB,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,KAAK,EAAE,mCAAI,IAAI;YACvD,cAAc,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,KAAK,EAAE,mCAAI,IAAI;YACnD,mBAAmB,EAAE,KAAK;YAC1B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC;SAC9C,CAAC,CAAC;QACH,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;IACtC,CAAC;IAEO,oBAAoB,CAAC,IAAe,EAAE,WAAoB;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChJ,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAE7I,OAAO,CACH,oBAAC,MAAM,CAAC,KAAK,IAAC,KAAK,EAAE,EAAC,UAAU,EAAE,OAAO,EAAC;YACtC,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAC,EACrE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EACrB,GAAG,EAAC,QAAQ,EACZ,MAAM,QACN,KAAK,QACL,OAAO,EAAE,IAAI,CAAC,QAAQ;gBAEtB,oBAAC,QAAQ,OAAE,CACN;YACT,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,EAC3B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAC,cAAc,EACxC,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,SAAS,EACd,QAAQ,EAAE,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAC1D,OAAO,EAAE,IAAI,CAAC,SAAS;gBAEvB,oBAAC,aAAa,OAAE,CACX,CACE,CAClB,CAAC;IACN,CAAC;IAEO,qBAAqB;QACzB,MAAM,EAAC,gBAAgB,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACtD,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC9G,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9F,OAAO,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC5F,CAAC;IAED,MAAM;QACF,MAAM,KAQF,IAAI,CAAC,KAAK,EARR,EACF,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,0BAA0B,EAC1B,gBAAgB,OAEN,EADP,IAAI,cAPL,oGAQL,CAAa,CAAC;QACf,IAAI,KAAgB,CAAC;QACrB,IAAI,gBAAgB,KAAK,OAAO,EAAE;YAC9B,KAAK,GAAG,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC;SACnD;aAAM,IAAI,gBAAgB,KAAK,UAAU,EAAE;YACxC,KAAK,GAAG,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC;SAClD;aAAM;YAEH,KAAK,GAAG,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;SACnD;QACD,OAAO,CACH,oBAAC,OAAO,IAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAC,EACxE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EACnD,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EACjE,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACvC,oBAAC,cAAc,kBACX,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,EACjD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EACtC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAClC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;oBAClB,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC/C,CAAC,EACD,QAAQ,EAAE,CAAC,SAAwB,EAAE,OAAsB,EAAE,EAAE;oBAC3D,IAAI,CAAC,QAAQ,CAAC;wBACV,gBAAgB,EAAE,SAAS;wBAC3B,cAAc,EAAE,OAAO;wBACvB,mBAAmB,EAAE,KAAK;qBAC7B,CAAC,CAAA;gBACN,CAAC,EACD,sBAAsB,EAAE,GAAG,EAAE;oBACzB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;wBAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;qBACjD;oBACD,OAAO,SAAS,CAAC;gBACrB,CAAC,EACD,oBAAoB,EAAE,OAAO,CAAC,EAAE;oBAC5B,IAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAE,OAAO,EAAC,CAAC,CAAC;gBAC3C,CAAC,EACD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAC5B,YAAY,EAAE,IAAI,CAAC,EAAE;oBACjB,IAAI,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;gBAChC,CAAC,IACG,IAAI,EACV,CACI,CACb,CAAC;IACN,CAAC;CACJ","sourcesContent":["import React from \"react\";\r\nimport {Moment} from \"moment\";\r\nimport {Button, Tooltip} from \"antd\";\r\nimport {DateTimeUtils} from \"d2core/utils/dateTimeUtils\";\r\nimport {CheckOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport DateRangeInput, {DateRangeInputMode, DateRangeInputProps} from \"./dateRangeInput\";\r\nimport {TooltipPlacement} from \"antd/es/tooltip\";\r\nimport {AlignType} from \"rc-trigger/lib/interface\";\r\nimport {UndoIcon} from \"../icons/undoIcon\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {Key} from \"ts-key-enum\";\r\n\r\ninterface DateRangeInputConfirmProps extends DateRangeInputProps {\r\n requireConfirmationAtStart?: boolean\r\n confirmPlacement?: TooltipPlacement\r\n}\r\n\r\ninterface DateRangeInputConfirmState {\r\n currentFromValue: Moment | null\r\n currentToValue: Moment | null\r\n invalidDatesPresent: boolean\r\n inputKeyIndex: number,\r\n requireConfirmation: boolean\r\n\r\n popupVisible: boolean\r\n mode: DateRangeInputMode\r\n}\r\n\r\nexport default class DateRangeInputConfirm extends React.Component<DateRangeInputConfirmProps, DateRangeInputConfirmState> {\r\n private dateRangeInput: DateRangeInput | null = null;\r\n\r\n constructor(props: Readonly<DateRangeInputConfirmProps>) {\r\n super(props);\r\n this.state = {\r\n currentFromValue: props.fromValue?.clone() ?? null,\r\n currentToValue: props.toValue?.clone() ?? null,\r\n invalidDatesPresent: false,\r\n inputKeyIndex: 0,\r\n requireConfirmation: !!props.requireConfirmationAtStart,\r\n\r\n popupVisible: false,\r\n mode: props.defaultMode ?? DateRangeInputMode.SIMPLE,\r\n };\r\n\r\n this.onKeyDown = this.onKeyDown.bind(this);\r\n this.onConfirm = this.onConfirm.bind(this);\r\n this.onRevert = this.onRevert.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"keydown\", this.onKeyDown);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"keydown\", this.onKeyDown);\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent) {\r\n if (event.key === Key.Enter) {\r\n this.onConfirm();\r\n } else if (event.key === Key.Escape) {\r\n this.onRevert();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<DateRangeInputProps>) {\r\n if (DateTimeUtils.toUnixTime(prevProps.fromValue) !== DateTimeUtils.toUnixTime(this.props.fromValue) ||\r\n DateTimeUtils.toUnixTime(prevProps.toValue) !== DateTimeUtils.toUnixTime(this.props.toValue)) {\r\n this.setState({\r\n currentFromValue: this.props.fromValue?.clone() ?? null,\r\n currentToValue: this.props.toValue?.clone() ?? null\r\n })\r\n }\r\n }\r\n\r\n private onConfirm() {\r\n this.setState({requireConfirmation: false, inputKeyIndex: this.state.inputKeyIndex + 1});\r\n this.props.onChange?.(this.state.currentFromValue, this.state.currentToValue);\r\n this.dateRangeInput?.closePopup();\r\n }\r\n\r\n private onRevert() {\r\n this.setState({\r\n currentFromValue: this.props.fromValue?.clone() ?? null,\r\n currentToValue: this.props.toValue?.clone() ?? null,\r\n invalidDatesPresent: false,\r\n inputKeyIndex: this.state.inputKeyIndex + 1,\r\n });\r\n this.dateRangeInput?.closePopup();\r\n }\r\n\r\n private renderConfirmButtons(size?: SizeType, buttonWidth?: number) {\r\n const validInterval = this.props.allowClear ?\r\n (!this.state.currentFromValue || this.state.currentFromValue.isValid()) && (!this.state.currentToValue || this.state.currentToValue.isValid()) :\r\n this.state.currentFromValue && this.state.currentFromValue.isValid() && this.state.currentToValue && this.state.currentToValue.isValid();\r\n\r\n return (\r\n <Button.Group style={{background: \"white\"}}>\r\n <Button\r\n style={{borderRightWidth: 2, background: \"white\", width: buttonWidth}}\r\n size={size}\r\n title={i18n(\"Revert\")}\r\n key=\"revert\"\r\n danger\r\n ghost\r\n onClick={this.onRevert}\r\n >\r\n <UndoIcon/>\r\n </Button>\r\n <Button\r\n style={{width: buttonWidth}}\r\n title={i18n(\"Apply\")} key=\"apply-button\"\r\n size={size}\r\n type=\"primary\"\r\n disabled={!validInterval || this.state.invalidDatesPresent}\r\n onClick={this.onConfirm}\r\n >\r\n <CheckOutlined/>\r\n </Button>\r\n </Button.Group>\r\n );\r\n }\r\n\r\n private confirmButtonsVisible() {\r\n const {currentFromValue, currentToValue} = this.state;\r\n const valueChanged = DateTimeUtils.toUnixTime(currentFromValue) !== DateTimeUtils.toUnixTime(this.props.fromValue) ||\r\n DateTimeUtils.toUnixTime(currentToValue) !== DateTimeUtils.toUnixTime(this.props.toValue);\r\n\r\n return valueChanged || this.state.invalidDatesPresent || this.state.requireConfirmation;\r\n }\r\n\r\n render(): any {\r\n const {\r\n fromValue,\r\n toValue,\r\n onChange,\r\n allowClear,\r\n requireConfirmationAtStart,\r\n confirmPlacement,\r\n ...rest\r\n } = this.props;\r\n let align: AlignType;\r\n if (confirmPlacement === \"right\") {\r\n align = {points: [\"tl\", \"tr\"], offset: [-8, 0]};\r\n } else if (confirmPlacement === \"topRight\") {\r\n align = {points: [\"br\", \"tr\"], offset: [0, 8]};\r\n } else {\r\n // default bottomRight\r\n align = {points: [\"tr\", \"br\"], offset: [0, -8]};\r\n }\r\n return (\r\n <Tooltip color={\"transparent\"} overlayInnerStyle={{boxShadow: \"none\", padding: 0}}\r\n key={\"date-range-input-\" + this.state.inputKeyIndex}\r\n visible={this.confirmButtonsVisible() && !this.state.popupVisible}\r\n align={align}\r\n title={this.renderConfirmButtons()}>\r\n <DateRangeInput\r\n ref={component => this.dateRangeInput = component}\r\n fromValue={this.state.currentFromValue}\r\n toValue={this.state.currentToValue}\r\n allowClear={allowClear}\r\n onInvalidValue={(_) => {\r\n this.setState({invalidDatesPresent: true});\r\n }}\r\n onChange={(fromValue: Moment | null, toValue: Moment | null) => {\r\n this.setState({\r\n currentFromValue: fromValue,\r\n currentToValue: toValue,\r\n invalidDatesPresent: false,\r\n })\r\n }}\r\n confirmButtonsRenderer={() => {\r\n if (this.confirmButtonsVisible()) {\r\n return this.renderConfirmButtons(\"small\", 48);\r\n }\r\n return undefined;\r\n }}\r\n onPopupVisibleChange={visible => {\r\n this.setState({popupVisible: visible});\r\n }}\r\n defaultMode={this.state.mode}\r\n onModeChange={mode => {\r\n this.setState({mode: mode});\r\n }}\r\n {...rest}\r\n />\r\n </Tooltip>\r\n );\r\n }\r\n}"]}
1
+ {"version":3,"file":"dateRangeInputConfirm.js","sourceRoot":"","sources":["../../../../components/date/dateRangeInputConfirm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {Moment} from \"moment\";\nimport {Button, Tooltip} from \"antd\";\nimport {DateTimeUtils} from \"d2core/utils/dateTimeUtils\";\nimport {CheckOutlined} from \"@ant-design/icons\";\nimport i18n from \"d2core/i18n/i18n\";\nimport DateRangeInput, {DateRangeInputMode, DateRangeInputProps} from \"./dateRangeInput\";\nimport {TooltipPlacement} from \"antd/es/tooltip\";\nimport {AlignType} from \"rc-trigger/lib/interface\";\nimport {UndoIcon} from \"../icons/undoIcon\";\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\nimport {Key} from \"ts-key-enum\";\n\ninterface DateRangeInputConfirmProps extends DateRangeInputProps {\n requireConfirmationAtStart?: boolean\n confirmPlacement?: TooltipPlacement\n}\n\ninterface DateRangeInputConfirmState {\n currentFromValue: Moment | null\n currentToValue: Moment | null\n invalidDatesPresent: boolean\n inputKeyIndex: number,\n requireConfirmation: boolean\n\n popupVisible: boolean\n mode: DateRangeInputMode\n}\n\nexport default class DateRangeInputConfirm extends React.Component<DateRangeInputConfirmProps, DateRangeInputConfirmState> {\n private dateRangeInput: DateRangeInput | null = null;\n\n constructor(props: Readonly<DateRangeInputConfirmProps>) {\n super(props);\n this.state = {\n currentFromValue: props.fromValue?.clone() ?? null,\n currentToValue: props.toValue?.clone() ?? null,\n invalidDatesPresent: false,\n inputKeyIndex: 0,\n requireConfirmation: !!props.requireConfirmationAtStart,\n\n popupVisible: false,\n mode: props.defaultMode ?? DateRangeInputMode.SIMPLE,\n };\n\n this.onKeyDown = this.onKeyDown.bind(this);\n this.onConfirm = this.onConfirm.bind(this);\n this.onRevert = this.onRevert.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener(\"keydown\", this.onKeyDown);\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.onKeyDown);\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === Key.Enter) {\n this.onConfirm();\n } else if (event.key === Key.Escape) {\n this.onRevert();\n }\n }\n\n componentDidUpdate(prevProps: Readonly<DateRangeInputProps>) {\n if (DateTimeUtils.toUnixTime(prevProps.fromValue) !== DateTimeUtils.toUnixTime(this.props.fromValue) ||\n DateTimeUtils.toUnixTime(prevProps.toValue) !== DateTimeUtils.toUnixTime(this.props.toValue)) {\n this.setState({\n currentFromValue: this.props.fromValue?.clone() ?? null,\n currentToValue: this.props.toValue?.clone() ?? null\n })\n }\n }\n\n private onConfirm() {\n this.setState({requireConfirmation: false, inputKeyIndex: this.state.inputKeyIndex + 1});\n this.props.onChange?.(this.state.currentFromValue, this.state.currentToValue);\n this.dateRangeInput?.closePopup();\n }\n\n private onRevert() {\n this.setState({\n currentFromValue: this.props.fromValue?.clone() ?? null,\n currentToValue: this.props.toValue?.clone() ?? null,\n invalidDatesPresent: false,\n inputKeyIndex: this.state.inputKeyIndex + 1,\n });\n this.dateRangeInput?.closePopup();\n }\n\n private renderConfirmButtons(size?: SizeType, buttonWidth?: number) {\n const validInterval = this.props.allowClear ?\n (!this.state.currentFromValue || this.state.currentFromValue.isValid()) && (!this.state.currentToValue || this.state.currentToValue.isValid()) :\n this.state.currentFromValue && this.state.currentFromValue.isValid() && this.state.currentToValue && this.state.currentToValue.isValid();\n\n return (\n <Button.Group style={{background: \"white\"}}>\n <Button\n style={{borderRightWidth: 2, background: \"white\", width: buttonWidth}}\n size={size}\n title={i18n(\"Revert\")}\n key=\"revert\"\n danger\n ghost\n onClick={this.onRevert}\n >\n <UndoIcon/>\n </Button>\n <Button\n style={{width: buttonWidth}}\n title={i18n(\"Apply\")} key=\"apply-button\"\n size={size}\n type=\"primary\"\n disabled={!validInterval || this.state.invalidDatesPresent}\n onClick={this.onConfirm}\n >\n <CheckOutlined/>\n </Button>\n </Button.Group>\n );\n }\n\n private confirmButtonsVisible() {\n const {currentFromValue, currentToValue} = this.state;\n const valueChanged = DateTimeUtils.toUnixTime(currentFromValue) !== DateTimeUtils.toUnixTime(this.props.fromValue) ||\n DateTimeUtils.toUnixTime(currentToValue) !== DateTimeUtils.toUnixTime(this.props.toValue);\n\n return valueChanged || this.state.invalidDatesPresent || this.state.requireConfirmation;\n }\n\n render(): any {\n const {\n fromValue,\n toValue,\n onChange,\n allowClear,\n requireConfirmationAtStart,\n confirmPlacement,\n ...rest\n } = this.props;\n let align: AlignType;\n if (confirmPlacement === \"right\") {\n align = {points: [\"tl\", \"tr\"], offset: [-8, 0]};\n } else if (confirmPlacement === \"topRight\") {\n align = {points: [\"br\", \"tr\"], offset: [0, 8]};\n } else {\n // default bottomRight\n align = {points: [\"tr\", \"br\"], offset: [0, -8]};\n }\n return (\n <Tooltip color={\"transparent\"} overlayInnerStyle={{boxShadow: \"none\", padding: 0}}\n key={\"date-range-input-\" + this.state.inputKeyIndex}\n visible={this.confirmButtonsVisible() && !this.state.popupVisible}\n align={align}\n title={this.renderConfirmButtons()}>\n <DateRangeInput\n ref={component => this.dateRangeInput = component}\n fromValue={this.state.currentFromValue}\n toValue={this.state.currentToValue}\n allowClear={allowClear}\n onInvalidValue={(_) => {\n this.setState({invalidDatesPresent: true});\n }}\n onChange={(fromValue: Moment | null, toValue: Moment | null) => {\n this.setState({\n currentFromValue: fromValue,\n currentToValue: toValue,\n invalidDatesPresent: false,\n })\n }}\n confirmButtonsRenderer={() => {\n if (this.confirmButtonsVisible()) {\n return this.renderConfirmButtons(\"small\", 48);\n }\n return undefined;\n }}\n onPopupVisibleChange={visible => {\n this.setState({popupVisible: visible});\n }}\n defaultMode={this.state.mode}\n onModeChange={mode => {\n this.setState({mode: mode});\n }}\n {...rest}\n />\n </Tooltip>\n );\n }\n}"]}
@@ -13,6 +13,7 @@ interface DateTimeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onCha
13
13
  bordered?: boolean;
14
14
  hidePopup?: boolean;
15
15
  renderAsCalendar?: boolean;
16
+ autoFocus?: boolean;
16
17
  defaultSelectedDate?: Moment;
17
18
  markedDateInterval?: [Moment, Moment];
18
19
  onDateItemMouseDown?: (date: Moment) => void;
@@ -27,6 +28,7 @@ interface DateTimeInputState {
27
28
  currentPos: number | null;
28
29
  currentInfo: MaskResult;
29
30
  calendarSelectedDate: Moment;
31
+ focused: boolean;
30
32
  }
31
33
  interface MaskResult {
32
34
  time: Moment | undefined;
@@ -18,6 +18,7 @@ import moment from "moment";
18
18
  import { CalendarOutlined } from "@ant-design/icons";
19
19
  import { Button, Calendar, Select, Tooltip } from "antd";
20
20
  import { Key } from "ts-key-enum";
21
+ import { D2000UnixTimeNullValue } from "d2core/types/unixTimeUtils";
21
22
  const DATE_TIME_DATA_MAP = [
22
23
  { key: "SSS", min: 0, max: 999, unit: "ms" },
23
24
  { key: "ss", min: 0, max: 59, unit: "s" },
@@ -46,7 +47,8 @@ export default class DateTimeInput extends React.Component {
46
47
  time: undefined,
47
48
  length: 0
48
49
  },
49
- calendarSelectedDate: (_d = (_b = (_a = props.defaultSelectedDate) === null || _a === void 0 ? void 0 : _a.clone()) !== null && _b !== void 0 ? _b : (_c = props.value) === null || _c === void 0 ? void 0 : _c.clone()) !== null && _d !== void 0 ? _d : moment().startOf('day')
50
+ calendarSelectedDate: (_d = (_b = (_a = props.defaultSelectedDate) === null || _a === void 0 ? void 0 : _a.clone()) !== null && _b !== void 0 ? _b : (_c = props.value) === null || _c === void 0 ? void 0 : _c.clone()) !== null && _d !== void 0 ? _d : moment().startOf('day'),
51
+ focused: false,
50
52
  };
51
53
  this.recalc = this.recalc.bind(this);
52
54
  this.increment = this.increment.bind(this);
@@ -235,24 +237,25 @@ export default class DateTimeInput extends React.Component {
235
237
  }
236
238
  renderInput() {
237
239
  var _a;
238
- const _b = this.props, { mask, value, onChange, onInvalidValue, style, disabled, inputDisabled, bordered, hidePopup, renderAsCalendar, allowClear, minDateTime, maxDateTime, onDateItemMouseDown, onDateItemMouseOver, onDateItemMouseUp, markedDateInterval, inputStyle, getPopupContainer } = _b, props = __rest(_b, ["mask", "value", "onChange", "onInvalidValue", "style", "disabled", "inputDisabled", "bordered", "hidePopup", "renderAsCalendar", "allowClear", "minDateTime", "maxDateTime", "onDateItemMouseDown", "onDateItemMouseOver", "onDateItemMouseUp", "markedDateInterval", "inputStyle", "getPopupContainer"]);
240
+ const _b = this.props, { mask, value, onChange, onInvalidValue, style, disabled, inputDisabled, bordered, hidePopup, renderAsCalendar, allowClear, minDateTime, maxDateTime, onDateItemMouseDown, onDateItemMouseOver, onDateItemMouseUp, markedDateInterval, inputStyle, getPopupContainer, autoFocus, className } = _b, props = __rest(_b, ["mask", "value", "onChange", "onInvalidValue", "style", "disabled", "inputDisabled", "bordered", "hidePopup", "renderAsCalendar", "allowClear", "minDateTime", "maxDateTime", "onDateItemMouseDown", "onDateItemMouseOver", "onDateItemMouseUp", "markedDateInterval", "inputStyle", "getPopupContainer", "autoFocus", "className"]);
239
241
  const isUpDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1);
240
242
  const isDownDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1);
241
- let className = "custom-date-time-picker";
243
+ const unix = value === null || value === void 0 ? void 0 : value.valueOf();
244
+ let divClassName = "custom-date-time-picker";
242
245
  if (disabled || inputDisabled) {
243
- className += " ant-input-number disabled ant-input-disabled readonly";
246
+ divClassName += " ant-input-number disabled ant-input-disabled readonly";
244
247
  }
245
248
  else {
246
- className += " ant-input-number";
249
+ divClassName += " ant-input-number";
247
250
  }
248
251
  if (bordered === false) {
249
- className += " ant-input-borderless";
252
+ divClassName += " ant-input-borderless";
250
253
  }
251
254
  const maskedInputStyle = { color: this.state.valid ? "inherit" : "red", border: "none" };
252
255
  if (inputStyle) {
253
256
  Object.assign(maskedInputStyle, inputStyle);
254
257
  }
255
- return (React.createElement("div", Object.assign({ style: bordered === false ? Object.assign(Object.assign({}, style), { border: 0 }) : style }, props, { className: className }),
258
+ return (React.createElement("div", Object.assign({ style: bordered === false ? Object.assign(Object.assign({}, style), { border: 0 }) : style }, props, { className: (className ? className + " " : "") + divClassName }),
256
259
  React.createElement("div", { className: "ant-input-number-input-wrap", onKeyDown: (event) => {
257
260
  if (event.keyCode === 38) {
258
261
  this.increment();
@@ -265,9 +268,12 @@ export default class DateTimeInput extends React.Component {
265
268
  event.stopPropagation();
266
269
  }
267
270
  } },
268
- React.createElement(MaskedInput, { mask: this.props.mask.replace(/[a-zA-Z]/g, '1'), bordered: bordered, ref: this.inputRef, style: maskedInputStyle, value: (_a = value === null || value === void 0 ? void 0 : value.locale("locale.d2000").format(this.props.mask)) !== null && _a !== void 0 ? _a : "", onFocus: (event => {
271
+ React.createElement(MaskedInput, { mask: this.props.mask.replace(/[a-zA-Z]/g, '1'), bordered: bordered, ref: this.inputRef, style: maskedInputStyle, value: (this.state.focused || unix !== D2000UnixTimeNullValue * 1000) ? ((_a = value === null || value === void 0 ? void 0 : value.locale("locale.d2000").format(this.props.mask)) !== null && _a !== void 0 ? _a : "") : "", placeholder: (!this.state.focused && unix === D2000UnixTimeNullValue * 1000) ? "Null Time" : undefined, onFocus: (event => {
269
272
  event.target.selectionStart = event.target.selectionEnd = this.state.currentPos;
270
- }), disabled: disabled || inputDisabled, onWheel: (event) => {
273
+ this.setState({ focused: true });
274
+ }), onBlur: () => {
275
+ this.setState({ focused: false });
276
+ }, autoFocus: autoFocus, disabled: disabled || inputDisabled, onWheel: (event) => {
271
277
  if (event.deltaY > 0) {
272
278
  if (!isDownDisabled) {
273
279
  this.decrement();
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimeInput.js","sourceRoot":"","sources":["../../../../components/date/dateTimeInput.tsx"],"names":[],"mappings":"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","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 moment, {Moment} from \"moment\";\r\nimport {CalendarOutlined} from \"@ant-design/icons\";\r\nimport {Button, Calendar, Select, Tooltip} from \"antd\";\r\nimport {Key} from \"ts-key-enum\";\r\n\r\n\r\ninterface DateTimeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\r\n mask: string\r\n value: Moment | null\r\n onChange?: (time: Moment | 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?: Moment\r\n maxDateTime?: Moment\r\n\r\n bordered?: boolean\r\n hidePopup?: boolean\r\n renderAsCalendar?: boolean\r\n\r\n // special methods for rendering date range\r\n defaultSelectedDate?: Moment\r\n markedDateInterval?: [Moment, Moment]\r\n onDateItemMouseDown?: (date: Moment) => void\r\n onDateItemMouseUp?: (date: Moment) => void\r\n onDateItemMouseOver?: (date: Moment) => 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\r\n calendarSelectedDate: Moment\r\n}\r\n\r\ninterface MaskResult {\r\n time: Moment | 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\r\n max: number\r\n unit: moment.unitOfTime.Base\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: 1970, max: 9999, 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 = moment.unix(0);\r\nconst MAX_TIME = moment().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: Moment = moment();\r\n\r\n constructor(props: Readonly<DateTimeInputProps>) {\r\n super(props);\r\n this.state = {\r\n valid: (!!props.value && props.value.isValid()) || (!!props.allowClear && props.value === null),\r\n currentPos: null,\r\n currentInfo: {\r\n info: undefined,\r\n time: undefined,\r\n length: 0\r\n },\r\n calendarSelectedDate: props.defaultSelectedDate?.clone() ?? props.value?.clone() ?? moment().startOf('day')\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: (!!this.props.value && this.props.value.isValid()) || (!!this.props.allowClear && this.props.value === null)});\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.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: moment.unitOfTime.Base) {\r\n if (!!this.props.value) {\r\n this.props.value.add(1, unit);\r\n if (!!this.props.maxDateTime && this.props.value.isAfter(this.props.maxDateTime)) {\r\n this.props.onChange?.(this.props.maxDateTime?.clone());\r\n } else {\r\n this.props.onChange?.(this.props.value.clone());\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: moment.unitOfTime.Base) {\r\n if (!!this.props.value) {\r\n this.props.value.subtract(1, unit);\r\n if (!!this.props.minDateTime && this.props.value.isBefore(this.props.minDateTime)) {\r\n this.props.onChange?.(this.props.minDateTime?.clone());\r\n } else {\r\n this.props.onChange?.(this.props.value.clone());\r\n }\r\n }\r\n }\r\n\r\n onItemMouseOver(itemDate: Moment) {\r\n this.props.onDateItemMouseOver?.(itemDate);\r\n }\r\n\r\n private renderCalendarNavigation(value: Moment) {\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 current.month(i);\r\n months.push(localeData.months(current));\r\n }\r\n\r\n for (let index = start; index < end; index++) {\r\n monthOptions.push(\r\n <Select.Option className=\"month-item\" 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} className=\"year-item\">\r\n {i}\r\n </Select.Option>,\r\n );\r\n }\r\n return (\r\n <div style={{paddingBottom: 8}}>\r\n <div style={{float: \"left\", paddingBottom: 8, width: 140, display: \"flex\"}}>\r\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n disabled={!DateTimeInput.checkDateValueValidity(this.state.calendarSelectedDate, -1, \"month\")}\r\n onClick={() => {\r\n this.state.calendarSelectedDate.subtract(1, \"month\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\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 dropdownMatchSelectWidth={false}\r\n dropdownStyle={{zIndex: 2070}}\r\n getPopupContainer={this.props.getPopupContainer}\r\n value={String(month)}\r\n onChange={selectedMonth => {\r\n const newValue = this.state.calendarSelectedDate.clone();\r\n newValue.month(parseInt(selectedMonth, 10));\r\n this.setState({calendarSelectedDate: newValue});\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.state.calendarSelectedDate.add(1, \"month\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}>\r\n <span className=\"ant-picker-next-icon\"/>\r\n </Button>\r\n </div>\r\n <div style={{float: \"right\", paddingBottom: 8, 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.state.calendarSelectedDate.subtract(1, \"year\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\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 dropdownMatchSelectWidth={false}\r\n dropdownStyle={{zIndex: 2070}}\r\n getPopupContainer={this.props.getPopupContainer}\r\n onChange={newYear => {\r\n const newValue = this.state.calendarSelectedDate.clone().year(parseInt(newYear, 10));\r\n this.setState({calendarSelectedDate: newValue});\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.state.calendarSelectedDate.add(1, \"year\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\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 = moment(e.target.title, \"YYYY-MM-DD\");\r\n this.onItemMouseOver(date);\r\n }\r\n }}>\r\n <Calendar\r\n fullscreen={false}\r\n style={this.props.renderAsCalendar ? this.props.style : undefined}\r\n dateFullCellRender={((date: Moment) => {\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() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onChange?.(date);\r\n }\r\n }}\r\n onMouseDown={() => {\r\n let newValue = this.props.value?.clone() ?? moment().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() ?? moment().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() ?? moment().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});\r\n }}\r\n />\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 ...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 let className = \"custom-date-time-picker\";\r\n if (disabled || inputDisabled) {\r\n className += \" ant-input-number disabled ant-input-disabled readonly\";\r\n } else {\r\n className += \" ant-input-number\";\r\n }\r\n if (bordered === false) {\r\n className += \" ant-input-borderless\";\r\n }\r\n\r\n const maskedInputStyle = {color: this.state.valid ? \"inherit\" : \"red\", border: \"none\"};\r\n if (inputStyle) {\r\n Object.assign(maskedInputStyle, inputStyle);\r\n }\r\n\r\n return (\r\n <div style={bordered === false ? {...style, border: 0} : style} {...props} className={className}>\r\n <div className=\"ant-input-number-input-wrap\"\r\n onKeyDown={(event) => {\r\n if (event.keyCode === 38) { // up\r\n this.increment();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n } else if (event.keyCode === 40) { // 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 value={value?.locale(\"locale.d2000\").format(this.props.mask) ?? \"\"}\r\n onFocus={(event => {\r\n event.target.selectionStart = event.target.selectionEnd = this.state.currentPos;\r\n })}\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(inputString, this.props.mask, event.target.selectionStart);\r\n if (value.time !== undefined) {\r\n if (this.props.minDateTime !== undefined && value.time.isBefore(this.props.minDateTime)) {\r\n value.time = this.props.minDateTime.clone();\r\n }\r\n\r\n if (this.props.maxDateTime !== undefined && value.time.isAfter(this.props.maxDateTime)) {\r\n value.time = this.props.maxDateTime.clone();\r\n }\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: (value.time !== undefined && value.time.isValid()) || (!!this.props.allowClear && !inputString),\r\n currentInfo: value\r\n })\r\n }}/>\r\n </div>\r\n {!hidePopup && !renderAsCalendar && <div className={\"ant-input-number-handler-wrap\"}\r\n style={{\r\n width: 28,\r\n opacity: 1,\r\n height: \"100%\",\r\n textAlign: \"center\",\r\n cursor: \"pointer\",\r\n background: \"transparent\",\r\n border: bordered === false ? 0 : undefined\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\", marginTop: 2}}/>\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 onVisibleChange={(visible) => {\r\n if (visible) {\r\n this.setState({calendarSelectedDate: this.props.defaultSelectedDate?.clone() ?? this.props.value?.clone() ?? moment().startOf(\"day\")})\r\n }\r\n }}\r\n title={this.renderCalendar()}>\r\n {this.renderInput()}\r\n </Tooltip>\r\n );\r\n }\r\n }\r\n\r\n private static isValid(info: MaskResult, value: Moment | 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: moment.Moment | null, offset: number, unit: moment.unitOfTime.Base | 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(moment(0));\r\n }\r\n\r\n private static parseDateTimeFormat(value: string, mask: string, cursorPos: number | null): MaskResult {\r\n let result: MaskResult = {\r\n time: moment(0).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\r\n if (Array.isArray(v.key)) {\r\n for (let x of v.key) {\r\n index = mask.indexOf(x);\r\n\r\n if (index !== -1) {\r\n length = x.length;\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 }\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 >= v.min && val <= v.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?.set('D', val);\r\n } else {\r\n 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}"]}
1
+ {"version":3,"file":"dateTimeInput.js","sourceRoot":"","sources":["../../../../components/date/dateTimeInput.tsx"],"names":[],"mappings":"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","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\";\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\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\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\n max: 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: 1970, max: 9999, 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 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.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});\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(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 onVisibleChange={(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 {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(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\n if (Array.isArray(v.key)) {\n for (let x of v.key) {\n index = mask.indexOf(x);\n\n if (index !== -1) {\n length = x.length;\n break;\n }\n }\n } else {\n index = mask.indexOf(v.key);\n length = v.key.length;\n }\n\n if (index !== -1) {\n let val: number = Number(value.substring(index, index + length));\n\n if (!isNaN(val) && val >= v.min && val <= v.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 {\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}"]}
@@ -10,19 +10,21 @@ interface DurationInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onCha
10
10
  }[];
11
11
  disabled?: boolean;
12
12
  inputStyle?: React.CSSProperties;
13
+ autoFocus?: boolean;
13
14
  }
14
15
  interface DurationInputState {
15
16
  valid: boolean;
16
- currentPos: number | null;
17
+ selectionStart: number | null;
18
+ selectionEnd: number | null;
17
19
  currentInfo: MaskResult;
18
20
  opened: boolean;
19
21
  value: string;
20
22
  hover: boolean;
21
23
  }
22
24
  interface MaskResult {
23
- time: moment.Duration | undefined;
24
- info: InfoEntry | undefined;
25
- infoFromMask: EntryValue[] | undefined;
25
+ time?: moment.Duration;
26
+ info?: InfoEntry;
27
+ infoFromMask?: EntryValue[];
26
28
  length: number;
27
29
  }
28
30
  interface InfoEntry {
@@ -39,6 +41,7 @@ interface EntryValue {
39
41
  value: number;
40
42
  }
41
43
  export declare const MAX_VALID_DURATION: number;
44
+ export declare function parseDuration(value: string, mask: string, cursorPos?: number, maskResult?: MaskResult): moment.Duration | null;
42
45
  export default class DurationInput extends React.Component<DurationInputProps, DurationInputState> {
43
46
  private inputRef;
44
47
  constructor(props: Readonly<DurationInputProps>);
@@ -49,8 +52,5 @@ export default class DurationInput extends React.Component<DurationInputProps, D
49
52
  get input(): HTMLInputElement | undefined;
50
53
  focus(): void;
51
54
  render(): JSX.Element;
52
- private static checkValue;
53
- private static parseDurationFormat;
54
- private static parseTime;
55
55
  }
56
56
  export {};