d2coreui 23.0.4 → 23.0.5

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.
@@ -18,6 +18,7 @@ import memoizeOne from "memoize-one";
18
18
  import KeyboardUtils from "../keyboard/keyboardUtils";
19
19
  import i18n from "d2core/i18n/i18n";
20
20
  import DateRangeInputAdvancedPanel, { TimeShiftDirection } from "./dateRangeInputAdvancedPanel";
21
+ import WithInputCss from "../style/withInputCss";
21
22
  export var DateRangeInputMode;
22
23
  (function (DateRangeInputMode) {
23
24
  DateRangeInputMode[DateRangeInputMode["SIMPLE"] = 0] = "SIMPLE";
@@ -242,32 +243,33 @@ export default class DateRangeInput extends React.Component {
242
243
  if (disabled || this.state.popupVisible) {
243
244
  className += " ant-input-disabled";
244
245
  }
245
- return (React.createElement("div", { style: Object.assign(Object.assign({}, style), { padding: 0, position: "relative" }), className: className, onFocus: this.props.onFocus, onBlur: this.props.onBlur },
246
- React.createElement("div", { style: { display: "flex", paddingRight: 8 } },
247
- React.createElement(DateTimeInput, Object.assign({ value: fromValue }, props, { disabled: disabled, inputDisabled: this.state.popupVisible, allowClear: allowClear, bordered: false, hidePopup: true, style: { width: "auto" }, inputStyle: { paddingRight: 2 }, onChange: (value) => {
248
- var _a, _b;
249
- (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value, this.props.toValue);
250
- } })),
251
- React.createElement("span", { style: { alignSelf: "center" } }, "\u27F7"),
252
- React.createElement(DateTimeInput, Object.assign({ value: toValue }, props, { disabled: disabled, inputDisabled: this.state.popupVisible, allowClear: allowClear, bordered: false, hidePopup: true, style: { width: "auto" }, inputStyle: { paddingLeft: 2 }, onChange: (value) => {
253
- var _a, _b;
254
- (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.fromValue, value);
255
- } })),
256
- !hidePopup && !renderAsCalendar &&
257
- React.createElement(CalendarOutlined, { style: { cursor: (disabled || this.state.popupVisible) ? "not-allowed" : "pointer" }, onClick: (event) => {
246
+ return (React.createElement(WithInputCss, null,
247
+ React.createElement("div", { style: Object.assign(Object.assign({}, style), { padding: 0, position: "relative" }), className: className, onFocus: this.props.onFocus, onBlur: this.props.onBlur },
248
+ React.createElement("div", { style: { display: "flex", paddingRight: 8 } },
249
+ React.createElement(DateTimeInput, Object.assign({ value: fromValue }, props, { disabled: disabled, inputDisabled: this.state.popupVisible, allowClear: allowClear, bordered: false, hidePopup: true, style: { width: "auto" }, inputStyle: { paddingRight: 2 }, onChange: (value) => {
258
250
  var _a, _b;
259
- if (!disabled && document.createEvent) {
260
- if (this.state.popupVisible) {
261
- this.closePopup();
262
- }
263
- else {
264
- var ev = document.createEvent('HTMLEvents');
265
- ev.initEvent('contextmenu', true, false);
266
- event.target.dispatchEvent(ev);
267
- (_b = (_a = this.props).onFocus) === null || _b === void 0 ? void 0 : _b.call(_a);
251
+ (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value, this.props.toValue);
252
+ } })),
253
+ React.createElement("span", { style: { alignSelf: "center" } }, "\u27F7"),
254
+ React.createElement(DateTimeInput, Object.assign({ value: toValue }, props, { disabled: disabled, inputDisabled: this.state.popupVisible, allowClear: allowClear, bordered: false, hidePopup: true, style: { width: "auto" }, inputStyle: { paddingLeft: 2 }, onChange: (value) => {
255
+ var _a, _b;
256
+ (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.fromValue, value);
257
+ } })),
258
+ !hidePopup && !renderAsCalendar &&
259
+ React.createElement(CalendarOutlined, { style: { cursor: (disabled || this.state.popupVisible) ? "not-allowed" : "pointer" }, onClick: (event) => {
260
+ var _a, _b;
261
+ if (!disabled && document.createEvent) {
262
+ if (this.state.popupVisible) {
263
+ this.closePopup();
264
+ }
265
+ else {
266
+ var ev = document.createEvent('HTMLEvents');
267
+ ev.initEvent('contextmenu', true, false);
268
+ event.target.dispatchEvent(ev);
269
+ (_b = (_a = this.props).onFocus) === null || _b === void 0 ? void 0 : _b.call(_a);
270
+ }
268
271
  }
269
- }
270
- } }))));
272
+ } })))));
271
273
  }
272
274
  render() {
273
275
  if (this.props.renderAsCalendar) {
@@ -1 +1 @@
1
- {"version":3,"file":"dateRangeInput.js","sourceRoot":"","sources":["../../../../components/date/dateRangeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {HTMLAttributes} from \"react\";\r\nimport dayjs, { Dayjs } from \"dayjs\";\r\nimport {CalendarOutlined} from \"@ant-design/icons\";\r\nimport {Divider, Switch, Tag, Tooltip} from \"antd\";\r\nimport DateTimeInput from \"./dateTimeInput\";\r\nimport memoizeOne from \"memoize-one\";\r\nimport {TooltipPlacement} from \"antd/es/tooltip\";\r\nimport KeyboardUtils from \"../keyboard/keyboardUtils\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport DateRangeInputAdvancedPanel, {TimeShiftDirection} from \"./dateRangeInputAdvancedPanel\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\n\r\nexport enum DateRangeInputMode {\r\n SIMPLE,\r\n ADVANCED,\r\n}\r\n\r\nexport interface DateRangeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\r\n mask: string\r\n fromValue: Dayjs | null\r\n toValue: Dayjs | null\r\n onChange?: (fromValue: Dayjs | null, toValue: Dayjs | null) => void\r\n onInvalidValue?: (input: string) => void\r\n disabled?: boolean\r\n minDateTime?: Dayjs\r\n maxDateTime?: Dayjs\r\n // allows to set no (null) date by datepicker\r\n allowClear?: boolean\r\n ranges?: { [rangeName: string]: () => [Dayjs, Dayjs] }\r\n size?: SizeType;\r\n\r\n hidePopup?: boolean\r\n renderAsCalendar?: boolean\r\n placement?: TooltipPlacement\r\n align?: {\r\n points?: [string, string];\r\n offset?: [number, number];\r\n targetOffset?: [number, number];\r\n overflow?: {\r\n adjustX?: boolean;\r\n adjustY?: boolean;\r\n };\r\n useCssRight?: boolean;\r\n useCssBottom?: boolean;\r\n useCssTransform?: boolean;\r\n }\r\n\r\n defaultMode?: DateRangeInputMode\r\n\r\n onModeChange?(mode: DateRangeInputMode): void\r\n\r\n onFocus?(): void\r\n\r\n onBlur?(): void\r\n\r\n confirmButtonsRenderer?(): React.ReactNode\r\n\r\n onPopupVisibleChange?(visible: boolean): void\r\n}\r\n\r\ninterface DateRangeInputState {\r\n valid: boolean\r\n selectionStartDate: Dayjs | null\r\n popupKeyIndex: number\r\n popupVisible: boolean\r\n\r\n mode: DateRangeInputMode\r\n}\r\n\r\nexport default class DateRangeInput extends React.Component<DateRangeInputProps, DateRangeInputState> {\r\n constructor(props: Readonly<DateRangeInputProps>) {\r\n super(props);\r\n this.state = {\r\n valid: !!props.fromValue && props.fromValue.isValid() && !!props.toValue && props.toValue.isValid(),\r\n selectionStartDate: null,\r\n popupKeyIndex: 0,\r\n popupVisible: false,\r\n\r\n mode: props.defaultMode ?? DateRangeInputMode.SIMPLE,\r\n };\r\n this.getDefaultSelectedDateForFromPanel = memoizeOne(this.getDefaultSelectedDateForFromPanel.bind(this));\r\n }\r\n\r\n componentDidUpdate(_prevProps: Readonly<DateRangeInputProps>, prevState: Readonly<DateRangeInputState>) {\r\n if (prevState.popupVisible !== this.state.popupVisible && this.props.onPopupVisibleChange) {\r\n this.props.onPopupVisibleChange(this.state.popupVisible);\r\n }\r\n }\r\n\r\n getDefaultSelectedDateForFromPanel(fromDate: Dayjs | null, toDate: Dayjs | null): Dayjs {\r\n if (!!fromDate && !!toDate && fromDate.isSame(toDate, \"date\")) {\r\n return fromDate.clone().subtract(1, \"month\");\r\n } else {\r\n return fromDate ?? dayjs().startOf(\"day\").subtract(1, \"month\");\r\n }\r\n }\r\n\r\n private getFromValue(date: Dayjs) {\r\n return (this.props.fromValue?.clone() ?? dayjs().startOf(\"day\")).year(date.year()).month(date.month()).date(date.date());\r\n }\r\n\r\n private getToValue(date: Dayjs) {\r\n return (this.props.toValue?.clone() ?? dayjs().endOf(\"day\")).year(date.year()).month(date.month()).date(date.date());\r\n }\r\n\r\n closePopup() {\r\n // close tooltip\r\n this.setState({popupKeyIndex: this.state.popupKeyIndex + 1, popupVisible: false});\r\n this.props.onPopupVisibleChange?.(false);\r\n }\r\n\r\n private onChange(fromValue: Dayjs | null, toValue: Dayjs | null) {\r\n if (this.props.minDateTime && fromValue?.isBefore(this.props.minDateTime)) {\r\n fromValue = this.props.minDateTime;\r\n }\r\n if (this.props.maxDateTime && toValue?.isAfter(this.props.maxDateTime)) {\r\n toValue = this.props.maxDateTime;\r\n }\r\n this.props.onChange?.(fromValue, toValue);\r\n }\r\n\r\n private renderSimplePart() {\r\n const {\r\n fromValue,\r\n toValue,\r\n onChange,\r\n style,\r\n allowClear,\r\n renderAsCalendar,\r\n hidePopup,\r\n align,\r\n defaultMode,\r\n onModeChange,\r\n confirmButtonsRenderer,\r\n onPopupVisibleChange,\r\n ...props\r\n } = this.props;\r\n const markedDateInterval: [Dayjs, Dayjs] | undefined = this.props.fromValue && this.props.toValue ? [this.props.fromValue, this.props.toValue] : undefined;\r\n\r\n return (\r\n <div>\r\n <div style={{display: \"flex\"}}>\r\n <DateTimeInput value={fromValue} {...props}\r\n allowClear={allowClear}\r\n renderAsCalendar\r\n style={{width: \"100%\"}}\r\n onChange={(date) => {\r\n if (date) {\r\n const fromValue = this.getFromValue(date);\r\n const toValue = this.getToValue(date);\r\n this.props.onChange?.(fromValue, toValue);\r\n }\r\n }}\r\n defaultSelectedDate={this.getDefaultSelectedDateForFromPanel(fromValue, toValue)}\r\n markedDateInterval={markedDateInterval}\r\n onDateItemMouseDown={(date) => {\r\n this.setState({selectionStartDate: date});\r\n const dateFrom = this.getFromValue(date);\r\n const dateTo = this.getToValue(date);\r\n this.props.onChange?.(dateFrom, dateTo);\r\n }}\r\n onDateItemMouseOver={(date) => {\r\n if (KeyboardUtils.isMouseDown() && !!this.state.selectionStartDate) {\r\n let dateFrom: Dayjs;\r\n let dateTo: Dayjs;\r\n if (this.state.selectionStartDate.isBefore(date)) {\r\n dateFrom = this.state.selectionStartDate;\r\n dateTo = date;\r\n } else {\r\n dateFrom = date;\r\n dateTo = this.state.selectionStartDate;\r\n }\r\n dateFrom = this.getFromValue(dateFrom);\r\n dateTo = this.getToValue(dateTo);\r\n this.props.onChange?.(dateFrom, dateTo);\r\n }\r\n }}\r\n onDateItemMouseUp={(_date) => {\r\n this.setState({selectionStartDate: null});\r\n }}\r\n ignoreKeyStrokes\r\n />\r\n <Divider type=\"vertical\" style={{height: \"auto\"}}/>\r\n <DateTimeInput value={toValue} {...props}\r\n renderAsCalendar\r\n allowClear={allowClear}\r\n style={{width: \"100%\"}}\r\n onChange={(date) => {\r\n if (date) {\r\n const fromValue = this.getFromValue(date);\r\n const toValue = this.getToValue(date);\r\n this.props.onChange?.(fromValue, toValue);\r\n }\r\n }}\r\n markedDateInterval={markedDateInterval}\r\n onDateItemMouseDown={(date) => {\r\n this.setState({selectionStartDate: date});\r\n const dateFrom = this.getFromValue(date);\r\n const dateTo = this.getToValue(date);\r\n this.props.onChange?.(dateFrom, dateTo);\r\n }}\r\n onDateItemMouseOver={(date) => {\r\n if (KeyboardUtils.isMouseDown() && !!this.state.selectionStartDate) {\r\n let dateFrom: Dayjs;\r\n let dateTo: Dayjs;\r\n if (this.state.selectionStartDate.isBefore(date)) {\r\n dateFrom = this.state.selectionStartDate;\r\n dateTo = date;\r\n } else {\r\n dateFrom = date;\r\n dateTo = this.state.selectionStartDate;\r\n }\r\n dateFrom = this.getFromValue(dateFrom);\r\n dateTo = this.getToValue(dateTo);\r\n this.props.onChange?.(dateFrom, dateTo);\r\n }\r\n }}\r\n onDateItemMouseUp={(_date) => {\r\n this.setState({selectionStartDate: null});\r\n }}\r\n ignoreKeyStrokes\r\n />\r\n </div>\r\n <div style={{borderTop: \"1px solid #ddd\", paddingTop: 6}}>\r\n {\r\n this.props.ranges && Object.keys(this.props.ranges).map((rangeName, index) => {\r\n return (<Tag style={{userSelect: \"none\", cursor: \"pointer\"}} color=\"blue\"\r\n key={`range-${index}`}\r\n onClick={() => {\r\n const rangeFunction = this.props.ranges?.[rangeName];\r\n if (rangeFunction) {\r\n const range = rangeFunction();\r\n this.props.onChange?.(range[0], range[1]);\r\n }\r\n }}>\r\n {rangeName}</Tag>);\r\n })\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n private renderAdvancedPart() {\r\n const {\r\n fromValue,\r\n toValue,\r\n onChange,\r\n style,\r\n allowClear,\r\n renderAsCalendar,\r\n hidePopup,\r\n align,\r\n defaultMode,\r\n onModeChange,\r\n confirmButtonsRenderer,\r\n onPopupVisibleChange,\r\n ...props\r\n } = this.props;\r\n return (\r\n <div>\r\n <div style={{display: \"flex\"}}>\r\n <DateTimeInput\r\n {...props}\r\n style={{width: \"47%\"}}\r\n value={fromValue}\r\n onChange={(value) => {\r\n this.props.onChange?.(value, this.props.toValue);\r\n }}\r\n />\r\n <span style={{width: \"6%\", paddingTop: 4, color: \"rgba(0, 0, 0, 0.65)\", textAlign: \"center\"}}>\r\n {\"\\u27F7\"}\r\n </span>\r\n <DateTimeInput\r\n {...props}\r\n style={{width: \"47%\"}}\r\n value={toValue}\r\n onChange={(value) => {\r\n this.props.onChange?.(this.props.fromValue, value);\r\n }}\r\n />\r\n </div>\r\n <DateRangeInputAdvancedPanel\r\n onBeginIntervalChange={unit => {\r\n let from: Dayjs;\r\n if (unit === \"15minutes\") {\r\n const roundedMinutes = Math.floor(dayjs().minute() / 15) * 15;\r\n from = dayjs().startOf(\"hour\").minute(roundedMinutes);\r\n } else {\r\n from = dayjs().startOf(unit);\r\n }\r\n this.onChange(from, this.props.toValue);\r\n }}\r\n onIntervalDurationChange={unitOfTime => {\r\n if (this.props.fromValue) {\r\n let to: Dayjs;\r\n if (unitOfTime === \"4years\") {\r\n to = this.props.fromValue.clone().add(4, \"year\").subtract(1, \"millisecond\");\r\n } else {\r\n to = this.props.fromValue.clone().add(1, unitOfTime).subtract(1, \"millisecond\")\r\n }\r\n this.onChange(this.props.fromValue, to);\r\n }\r\n }}\r\n onTimeShift={(shiftBegin, shiftEnd, unitOfTime, type) => {\r\n let fromValue = this.props.fromValue ?? null;\r\n let toValue = this.props.toValue ?? null;\r\n\r\n if (shiftBegin && fromValue) {\r\n if (type === TimeShiftDirection.INCREMENT) {\r\n fromValue = fromValue.add(1, unitOfTime);\r\n } else if (type === TimeShiftDirection.DECREMENT) {\r\n fromValue = fromValue.subtract(1, unitOfTime);\r\n }\r\n }\r\n\r\n if (shiftEnd && toValue) {\r\n if (type === TimeShiftDirection.INCREMENT) {\r\n toValue = toValue.add(1, unitOfTime);\r\n } else if (type === TimeShiftDirection.DECREMENT) {\r\n toValue = toValue.subtract(1, unitOfTime);\r\n }\r\n }\r\n\r\n this.onChange(fromValue, toValue);\r\n }}\r\n onEndIntervalChange={unit => {\r\n let to: Dayjs;\r\n if (unit === \"15minutes\") {\r\n const roundedMinutes = Math.floor(dayjs().minute() / 15) * 15;\r\n to = dayjs().startOf(\"hour\").minute(roundedMinutes).subtract(1, \"millisecond\");\r\n } else {\r\n to = dayjs().startOf(unit).subtract(1, \"millisecond\");\r\n }\r\n this.onChange(this.props.fromValue, to);\r\n }}\r\n />\r\n </div>\r\n )\r\n }\r\n\r\n renderPopup(): React.ReactElement {\r\n return (\r\n <div onFocus={this.props.onFocus} onBlur={this.props.onBlur}>\r\n {this.state.mode === DateRangeInputMode.SIMPLE && this.renderSimplePart()}\r\n {this.state.mode === DateRangeInputMode.ADVANCED && this.renderAdvancedPart()}\r\n <div style={{display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-end\"}}>\r\n <Switch\r\n style={{float: \"right\", marginTop: 8}}\r\n checked={this.state.mode === DateRangeInputMode.ADVANCED}\r\n onChange={checked => {\r\n const mode = checked ? DateRangeInputMode.ADVANCED : DateRangeInputMode.SIMPLE;\r\n this.setState({mode: mode});\r\n this.props.onModeChange?.(mode);\r\n }}\r\n checkedChildren={i18n(\"Advanced Mode\")}\r\n unCheckedChildren={i18n(\"Simple Mode\")}\r\n />\r\n {this.props.confirmButtonsRenderer?.()}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderInput() {\r\n const {\r\n fromValue,\r\n toValue,\r\n onChange,\r\n style,\r\n allowClear,\r\n renderAsCalendar,\r\n hidePopup,\r\n align,\r\n disabled,\r\n defaultMode,\r\n onModeChange,\r\n confirmButtonsRenderer,\r\n onPopupVisibleChange,\r\n ...props\r\n } = this.props;\r\n\r\n let className = \"ant-input ant-input-outlined\";\r\n if (disabled || this.state.popupVisible) {\r\n className += \" ant-input-disabled\";\r\n }\r\n\r\n return (\r\n <div style={{...style, padding: 0, position: \"relative\"}} className={className} onFocus={this.props.onFocus}\r\n onBlur={this.props.onBlur}>\r\n <div style={{display: \"flex\", paddingRight: 8}}>\r\n <DateTimeInput value={fromValue} {...props}\r\n disabled={disabled}\r\n inputDisabled={this.state.popupVisible}\r\n allowClear={allowClear}\r\n bordered={false}\r\n hidePopup={true}\r\n style={{width: \"auto\"}}\r\n inputStyle={{paddingRight: 2}}\r\n onChange={(value) => {\r\n this.props.onChange?.(value, this.props.toValue);\r\n }}\r\n />\r\n <span style={{alignSelf: \"center\"}}>{\"\\u27F7\"}</span>\r\n <DateTimeInput value={toValue} {...props}\r\n disabled={disabled}\r\n inputDisabled={this.state.popupVisible}\r\n allowClear={allowClear}\r\n bordered={false}\r\n hidePopup={true}\r\n style={{width: \"auto\"}}\r\n inputStyle={{paddingLeft: 2}}\r\n onChange={(value) => {\r\n this.props.onChange?.(this.props.fromValue, value);\r\n }}\r\n />\r\n {!hidePopup && !renderAsCalendar &&\r\n <CalendarOutlined\r\n style={{cursor: (disabled || this.state.popupVisible) ? \"not-allowed\" : \"pointer\"}}\r\n onClick={(event) => {\r\n if (!disabled && document.createEvent) {\r\n if (this.state.popupVisible) {\r\n this.closePopup();\r\n } else {\r\n var ev = document.createEvent('HTMLEvents');\r\n ev.initEvent('contextmenu', true, false);\r\n event.target.dispatchEvent(ev);\r\n this.props.onFocus?.();\r\n }\r\n }\r\n }}\r\n />\r\n }\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.renderPopup();\r\n } else if (this.props.hidePopup) {\r\n return this.renderInput();\r\n } else {\r\n return (\r\n <Tooltip color={\"white\"}\r\n key={\"date-range-popup-\" + this.state.popupKeyIndex}\r\n trigger={this.props.disabled ? [] : [\"contextMenu\"]}\r\n align={this.props.align}\r\n placement={this.props.placement}\r\n overlayInnerStyle={{maxHeight: \"100vh\", overflowY: \"auto\", overflowX: \"hidden\"}}\r\n onOpenChange={(visible) => {\r\n if (visible) {\r\n this.props.onFocus?.();\r\n } else {\r\n this.props.onBlur?.();\r\n }\r\n this.setState({popupVisible: visible});\r\n }}\r\n overlayClassName={\"date-range-picker-popup\"}\r\n title={this.renderPopup()}>\r\n {this.renderInput()}\r\n </Tooltip>\r\n );\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"dateRangeInput.js","sourceRoot":"","sources":["../../../../components/date/dateRangeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {HTMLAttributes} from \"react\";\r\nimport dayjs, { Dayjs } from \"dayjs\";\r\nimport {CalendarOutlined} from \"@ant-design/icons\";\r\nimport {Divider, Switch, Tag, Tooltip} from \"antd\";\r\nimport DateTimeInput from \"./dateTimeInput\";\r\nimport memoizeOne from \"memoize-one\";\r\nimport {TooltipPlacement} from \"antd/es/tooltip\";\r\nimport KeyboardUtils from \"../keyboard/keyboardUtils\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport DateRangeInputAdvancedPanel, {TimeShiftDirection} from \"./dateRangeInputAdvancedPanel\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport WithInputCss from \"../style/withInputCss\";\r\n\r\nexport enum DateRangeInputMode {\r\n SIMPLE,\r\n ADVANCED,\r\n}\r\n\r\nexport interface DateRangeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\r\n mask: string\r\n fromValue: Dayjs | null\r\n toValue: Dayjs | null\r\n onChange?: (fromValue: Dayjs | null, toValue: Dayjs | null) => void\r\n onInvalidValue?: (input: string) => void\r\n disabled?: boolean\r\n minDateTime?: Dayjs\r\n maxDateTime?: Dayjs\r\n // allows to set no (null) date by datepicker\r\n allowClear?: boolean\r\n ranges?: { [rangeName: string]: () => [Dayjs, Dayjs] }\r\n size?: SizeType;\r\n\r\n hidePopup?: boolean\r\n renderAsCalendar?: boolean\r\n placement?: TooltipPlacement\r\n align?: {\r\n points?: [string, string];\r\n offset?: [number, number];\r\n targetOffset?: [number, number];\r\n overflow?: {\r\n adjustX?: boolean;\r\n adjustY?: boolean;\r\n };\r\n useCssRight?: boolean;\r\n useCssBottom?: boolean;\r\n useCssTransform?: boolean;\r\n }\r\n\r\n defaultMode?: DateRangeInputMode\r\n\r\n onModeChange?(mode: DateRangeInputMode): void\r\n\r\n onFocus?(): void\r\n\r\n onBlur?(): void\r\n\r\n confirmButtonsRenderer?(): React.ReactNode\r\n\r\n onPopupVisibleChange?(visible: boolean): void\r\n}\r\n\r\ninterface DateRangeInputState {\r\n valid: boolean\r\n selectionStartDate: Dayjs | null\r\n popupKeyIndex: number\r\n popupVisible: boolean\r\n\r\n mode: DateRangeInputMode\r\n}\r\n\r\nexport default class DateRangeInput extends React.Component<DateRangeInputProps, DateRangeInputState> {\r\n constructor(props: Readonly<DateRangeInputProps>) {\r\n super(props);\r\n this.state = {\r\n valid: !!props.fromValue && props.fromValue.isValid() && !!props.toValue && props.toValue.isValid(),\r\n selectionStartDate: null,\r\n popupKeyIndex: 0,\r\n popupVisible: false,\r\n\r\n mode: props.defaultMode ?? DateRangeInputMode.SIMPLE,\r\n };\r\n this.getDefaultSelectedDateForFromPanel = memoizeOne(this.getDefaultSelectedDateForFromPanel.bind(this));\r\n }\r\n\r\n componentDidUpdate(_prevProps: Readonly<DateRangeInputProps>, prevState: Readonly<DateRangeInputState>) {\r\n if (prevState.popupVisible !== this.state.popupVisible && this.props.onPopupVisibleChange) {\r\n this.props.onPopupVisibleChange(this.state.popupVisible);\r\n }\r\n }\r\n\r\n getDefaultSelectedDateForFromPanel(fromDate: Dayjs | null, toDate: Dayjs | null): Dayjs {\r\n if (!!fromDate && !!toDate && fromDate.isSame(toDate, \"date\")) {\r\n return fromDate.clone().subtract(1, \"month\");\r\n } else {\r\n return fromDate ?? dayjs().startOf(\"day\").subtract(1, \"month\");\r\n }\r\n }\r\n\r\n private getFromValue(date: Dayjs) {\r\n return (this.props.fromValue?.clone() ?? dayjs().startOf(\"day\")).year(date.year()).month(date.month()).date(date.date());\r\n }\r\n\r\n private getToValue(date: Dayjs) {\r\n return (this.props.toValue?.clone() ?? dayjs().endOf(\"day\")).year(date.year()).month(date.month()).date(date.date());\r\n }\r\n\r\n closePopup() {\r\n // close tooltip\r\n this.setState({popupKeyIndex: this.state.popupKeyIndex + 1, popupVisible: false});\r\n this.props.onPopupVisibleChange?.(false);\r\n }\r\n\r\n private onChange(fromValue: Dayjs | null, toValue: Dayjs | null) {\r\n if (this.props.minDateTime && fromValue?.isBefore(this.props.minDateTime)) {\r\n fromValue = this.props.minDateTime;\r\n }\r\n if (this.props.maxDateTime && toValue?.isAfter(this.props.maxDateTime)) {\r\n toValue = this.props.maxDateTime;\r\n }\r\n this.props.onChange?.(fromValue, toValue);\r\n }\r\n\r\n private renderSimplePart() {\r\n const {\r\n fromValue,\r\n toValue,\r\n onChange,\r\n style,\r\n allowClear,\r\n renderAsCalendar,\r\n hidePopup,\r\n align,\r\n defaultMode,\r\n onModeChange,\r\n confirmButtonsRenderer,\r\n onPopupVisibleChange,\r\n ...props\r\n } = this.props;\r\n const markedDateInterval: [Dayjs, Dayjs] | undefined = this.props.fromValue && this.props.toValue ? [this.props.fromValue, this.props.toValue] : undefined;\r\n\r\n return (\r\n <div>\r\n <div style={{display: \"flex\"}}>\r\n <DateTimeInput value={fromValue} {...props}\r\n allowClear={allowClear}\r\n renderAsCalendar\r\n style={{width: \"100%\"}}\r\n onChange={(date) => {\r\n if (date) {\r\n const fromValue = this.getFromValue(date);\r\n const toValue = this.getToValue(date);\r\n this.props.onChange?.(fromValue, toValue);\r\n }\r\n }}\r\n defaultSelectedDate={this.getDefaultSelectedDateForFromPanel(fromValue, toValue)}\r\n markedDateInterval={markedDateInterval}\r\n onDateItemMouseDown={(date) => {\r\n this.setState({selectionStartDate: date});\r\n const dateFrom = this.getFromValue(date);\r\n const dateTo = this.getToValue(date);\r\n this.props.onChange?.(dateFrom, dateTo);\r\n }}\r\n onDateItemMouseOver={(date) => {\r\n if (KeyboardUtils.isMouseDown() && !!this.state.selectionStartDate) {\r\n let dateFrom: Dayjs;\r\n let dateTo: Dayjs;\r\n if (this.state.selectionStartDate.isBefore(date)) {\r\n dateFrom = this.state.selectionStartDate;\r\n dateTo = date;\r\n } else {\r\n dateFrom = date;\r\n dateTo = this.state.selectionStartDate;\r\n }\r\n dateFrom = this.getFromValue(dateFrom);\r\n dateTo = this.getToValue(dateTo);\r\n this.props.onChange?.(dateFrom, dateTo);\r\n }\r\n }}\r\n onDateItemMouseUp={(_date) => {\r\n this.setState({selectionStartDate: null});\r\n }}\r\n ignoreKeyStrokes\r\n />\r\n <Divider type=\"vertical\" style={{height: \"auto\"}}/>\r\n <DateTimeInput value={toValue} {...props}\r\n renderAsCalendar\r\n allowClear={allowClear}\r\n style={{width: \"100%\"}}\r\n onChange={(date) => {\r\n if (date) {\r\n const fromValue = this.getFromValue(date);\r\n const toValue = this.getToValue(date);\r\n this.props.onChange?.(fromValue, toValue);\r\n }\r\n }}\r\n markedDateInterval={markedDateInterval}\r\n onDateItemMouseDown={(date) => {\r\n this.setState({selectionStartDate: date});\r\n const dateFrom = this.getFromValue(date);\r\n const dateTo = this.getToValue(date);\r\n this.props.onChange?.(dateFrom, dateTo);\r\n }}\r\n onDateItemMouseOver={(date) => {\r\n if (KeyboardUtils.isMouseDown() && !!this.state.selectionStartDate) {\r\n let dateFrom: Dayjs;\r\n let dateTo: Dayjs;\r\n if (this.state.selectionStartDate.isBefore(date)) {\r\n dateFrom = this.state.selectionStartDate;\r\n dateTo = date;\r\n } else {\r\n dateFrom = date;\r\n dateTo = this.state.selectionStartDate;\r\n }\r\n dateFrom = this.getFromValue(dateFrom);\r\n dateTo = this.getToValue(dateTo);\r\n this.props.onChange?.(dateFrom, dateTo);\r\n }\r\n }}\r\n onDateItemMouseUp={(_date) => {\r\n this.setState({selectionStartDate: null});\r\n }}\r\n ignoreKeyStrokes\r\n />\r\n </div>\r\n <div style={{borderTop: \"1px solid #ddd\", paddingTop: 6}}>\r\n {\r\n this.props.ranges && Object.keys(this.props.ranges).map((rangeName, index) => {\r\n return (<Tag style={{userSelect: \"none\", cursor: \"pointer\"}} color=\"blue\"\r\n key={`range-${index}`}\r\n onClick={() => {\r\n const rangeFunction = this.props.ranges?.[rangeName];\r\n if (rangeFunction) {\r\n const range = rangeFunction();\r\n this.props.onChange?.(range[0], range[1]);\r\n }\r\n }}>\r\n {rangeName}</Tag>);\r\n })\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n private renderAdvancedPart() {\r\n const {\r\n fromValue,\r\n toValue,\r\n onChange,\r\n style,\r\n allowClear,\r\n renderAsCalendar,\r\n hidePopup,\r\n align,\r\n defaultMode,\r\n onModeChange,\r\n confirmButtonsRenderer,\r\n onPopupVisibleChange,\r\n ...props\r\n } = this.props;\r\n return (\r\n <div>\r\n <div style={{display: \"flex\"}}>\r\n <DateTimeInput\r\n {...props}\r\n style={{width: \"47%\"}}\r\n value={fromValue}\r\n onChange={(value) => {\r\n this.props.onChange?.(value, this.props.toValue);\r\n }}\r\n />\r\n <span style={{width: \"6%\", paddingTop: 4, color: \"rgba(0, 0, 0, 0.65)\", textAlign: \"center\"}}>\r\n {\"\\u27F7\"}\r\n </span>\r\n <DateTimeInput\r\n {...props}\r\n style={{width: \"47%\"}}\r\n value={toValue}\r\n onChange={(value) => {\r\n this.props.onChange?.(this.props.fromValue, value);\r\n }}\r\n />\r\n </div>\r\n <DateRangeInputAdvancedPanel\r\n onBeginIntervalChange={unit => {\r\n let from: Dayjs;\r\n if (unit === \"15minutes\") {\r\n const roundedMinutes = Math.floor(dayjs().minute() / 15) * 15;\r\n from = dayjs().startOf(\"hour\").minute(roundedMinutes);\r\n } else {\r\n from = dayjs().startOf(unit);\r\n }\r\n this.onChange(from, this.props.toValue);\r\n }}\r\n onIntervalDurationChange={unitOfTime => {\r\n if (this.props.fromValue) {\r\n let to: Dayjs;\r\n if (unitOfTime === \"4years\") {\r\n to = this.props.fromValue.clone().add(4, \"year\").subtract(1, \"millisecond\");\r\n } else {\r\n to = this.props.fromValue.clone().add(1, unitOfTime).subtract(1, \"millisecond\")\r\n }\r\n this.onChange(this.props.fromValue, to);\r\n }\r\n }}\r\n onTimeShift={(shiftBegin, shiftEnd, unitOfTime, type) => {\r\n let fromValue = this.props.fromValue ?? null;\r\n let toValue = this.props.toValue ?? null;\r\n\r\n if (shiftBegin && fromValue) {\r\n if (type === TimeShiftDirection.INCREMENT) {\r\n fromValue = fromValue.add(1, unitOfTime);\r\n } else if (type === TimeShiftDirection.DECREMENT) {\r\n fromValue = fromValue.subtract(1, unitOfTime);\r\n }\r\n }\r\n\r\n if (shiftEnd && toValue) {\r\n if (type === TimeShiftDirection.INCREMENT) {\r\n toValue = toValue.add(1, unitOfTime);\r\n } else if (type === TimeShiftDirection.DECREMENT) {\r\n toValue = toValue.subtract(1, unitOfTime);\r\n }\r\n }\r\n\r\n this.onChange(fromValue, toValue);\r\n }}\r\n onEndIntervalChange={unit => {\r\n let to: Dayjs;\r\n if (unit === \"15minutes\") {\r\n const roundedMinutes = Math.floor(dayjs().minute() / 15) * 15;\r\n to = dayjs().startOf(\"hour\").minute(roundedMinutes).subtract(1, \"millisecond\");\r\n } else {\r\n to = dayjs().startOf(unit).subtract(1, \"millisecond\");\r\n }\r\n this.onChange(this.props.fromValue, to);\r\n }}\r\n />\r\n </div>\r\n )\r\n }\r\n\r\n renderPopup(): React.ReactElement {\r\n return (\r\n <div onFocus={this.props.onFocus} onBlur={this.props.onBlur}>\r\n {this.state.mode === DateRangeInputMode.SIMPLE && this.renderSimplePart()}\r\n {this.state.mode === DateRangeInputMode.ADVANCED && this.renderAdvancedPart()}\r\n <div style={{display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-end\"}}>\r\n <Switch\r\n style={{float: \"right\", marginTop: 8}}\r\n checked={this.state.mode === DateRangeInputMode.ADVANCED}\r\n onChange={checked => {\r\n const mode = checked ? DateRangeInputMode.ADVANCED : DateRangeInputMode.SIMPLE;\r\n this.setState({mode: mode});\r\n this.props.onModeChange?.(mode);\r\n }}\r\n checkedChildren={i18n(\"Advanced Mode\")}\r\n unCheckedChildren={i18n(\"Simple Mode\")}\r\n />\r\n {this.props.confirmButtonsRenderer?.()}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderInput() {\r\n const {\r\n fromValue,\r\n toValue,\r\n onChange,\r\n style,\r\n allowClear,\r\n renderAsCalendar,\r\n hidePopup,\r\n align,\r\n disabled,\r\n defaultMode,\r\n onModeChange,\r\n confirmButtonsRenderer,\r\n onPopupVisibleChange,\r\n ...props\r\n } = this.props;\r\n\r\n let className = \"ant-input ant-input-outlined\";\r\n if (disabled || this.state.popupVisible) {\r\n className += \" ant-input-disabled\";\r\n }\r\n\r\n return (\r\n <WithInputCss>\r\n <div style={{...style, padding: 0, position: \"relative\"}} className={className} onFocus={this.props.onFocus}\r\n onBlur={this.props.onBlur}>\r\n <div style={{display: \"flex\", paddingRight: 8}}>\r\n <DateTimeInput value={fromValue} {...props}\r\n disabled={disabled}\r\n inputDisabled={this.state.popupVisible}\r\n allowClear={allowClear}\r\n bordered={false}\r\n hidePopup={true}\r\n style={{width: \"auto\"}}\r\n inputStyle={{paddingRight: 2}}\r\n onChange={(value) => {\r\n this.props.onChange?.(value, this.props.toValue);\r\n }}\r\n />\r\n <span style={{alignSelf: \"center\"}}>{\"\\u27F7\"}</span>\r\n <DateTimeInput value={toValue} {...props}\r\n disabled={disabled}\r\n inputDisabled={this.state.popupVisible}\r\n allowClear={allowClear}\r\n bordered={false}\r\n hidePopup={true}\r\n style={{width: \"auto\"}}\r\n inputStyle={{paddingLeft: 2}}\r\n onChange={(value) => {\r\n this.props.onChange?.(this.props.fromValue, value);\r\n }}\r\n />\r\n {!hidePopup && !renderAsCalendar &&\r\n <CalendarOutlined\r\n style={{cursor: (disabled || this.state.popupVisible) ? \"not-allowed\" : \"pointer\"}}\r\n onClick={(event) => {\r\n if (!disabled && document.createEvent) {\r\n if (this.state.popupVisible) {\r\n this.closePopup();\r\n } else {\r\n var ev = document.createEvent('HTMLEvents');\r\n ev.initEvent('contextmenu', true, false);\r\n event.target.dispatchEvent(ev);\r\n this.props.onFocus?.();\r\n }\r\n }\r\n }}\r\n />\r\n }\r\n </div>\r\n </div>\r\n </WithInputCss>\r\n );\r\n }\r\n\r\n render(): any {\r\n if (this.props.renderAsCalendar) {\r\n return this.renderPopup();\r\n } else if (this.props.hidePopup) {\r\n return this.renderInput();\r\n } else {\r\n return (\r\n <Tooltip color={\"white\"}\r\n key={\"date-range-popup-\" + this.state.popupKeyIndex}\r\n trigger={this.props.disabled ? [] : [\"contextMenu\"]}\r\n align={this.props.align}\r\n placement={this.props.placement}\r\n overlayInnerStyle={{maxHeight: \"100vh\", overflowY: \"auto\", overflowX: \"hidden\"}}\r\n onOpenChange={(visible) => {\r\n if (visible) {\r\n this.props.onFocus?.();\r\n } else {\r\n this.props.onBlur?.();\r\n }\r\n this.setState({popupVisible: visible});\r\n }}\r\n overlayClassName={\"date-range-picker-popup\"}\r\n title={this.renderPopup()}>\r\n {this.renderInput()}\r\n </Tooltip>\r\n );\r\n }\r\n }\r\n}"]}
@@ -17,7 +17,6 @@ import i18n from "d2core/i18n/i18n";
17
17
  import DateRangeInput, { DateRangeInputMode } from "./dateRangeInput";
18
18
  import { UndoIcon } from "../icons/undoIcon";
19
19
  import { Key } from "ts-key-enum";
20
- import WithInputCss from "../style/withInputCss";
21
20
  export default class DateRangeInputConfirm extends React.Component {
22
21
  constructor(props) {
23
22
  var _a, _b, _c, _d, _e;
@@ -105,31 +104,30 @@ export default class DateRangeInputConfirm extends React.Component {
105
104
  else {
106
105
  align = { points: ["tr", "br"], offset: [0, -6] };
107
106
  }
108
- return (React.createElement(WithInputCss, null,
109
- React.createElement("span", { onKeyDown: this.onKeyDown, ref: this.parentRef },
110
- React.createElement(Tooltip, { color: "transparent", overlayInnerStyle: { boxShadow: "none" }, open: this.confirmButtonsVisible() && !this.state.popupVisible, align: align, title: this.renderConfirmButtons(rest.size, rest.size === "small" ? 48 : undefined), getPopupContainer: () => {
111
- var _a, _b;
112
- const parentNode = ((_b = (_a = this.parentRef.current) === null || _a === void 0 ? void 0 : _a.parentNode) !== null && _b !== void 0 ? _b : document.body);
113
- return parentNode;
114
- } },
115
- React.createElement(DateRangeInput, Object.assign({ ref: component => this.dateRangeInput = component, fromValue: this.state.currentFromValue, toValue: this.state.currentToValue, allowClear: allowClear, onInvalidValue: (_) => {
116
- this.setState({ invalidDatesPresent: true });
117
- }, onChange: (fromValue, toValue) => {
118
- this.setState({
119
- currentFromValue: fromValue,
120
- currentToValue: toValue,
121
- invalidDatesPresent: false,
122
- });
123
- }, confirmButtonsRenderer: () => {
124
- if (this.confirmButtonsVisible()) {
125
- return this.renderConfirmButtons("small", 48);
126
- }
127
- return undefined;
128
- }, onPopupVisibleChange: visible => {
129
- this.setState({ popupVisible: visible });
130
- }, defaultMode: this.state.mode, onModeChange: mode => {
131
- this.setState({ mode: mode });
132
- } }, rest))))));
107
+ return (React.createElement("span", { onKeyDown: this.onKeyDown, ref: this.parentRef },
108
+ React.createElement(Tooltip, { color: "transparent", overlayInnerStyle: { boxShadow: "none" }, open: this.confirmButtonsVisible() && !this.state.popupVisible, align: align, title: this.renderConfirmButtons(rest.size, rest.size === "small" ? 48 : undefined), getPopupContainer: () => {
109
+ var _a, _b;
110
+ const parentNode = ((_b = (_a = this.parentRef.current) === null || _a === void 0 ? void 0 : _a.parentNode) !== null && _b !== void 0 ? _b : document.body);
111
+ return parentNode;
112
+ } },
113
+ React.createElement(DateRangeInput, Object.assign({ ref: component => this.dateRangeInput = component, fromValue: this.state.currentFromValue, toValue: this.state.currentToValue, allowClear: allowClear, onInvalidValue: (_) => {
114
+ this.setState({ invalidDatesPresent: true });
115
+ }, onChange: (fromValue, toValue) => {
116
+ this.setState({
117
+ currentFromValue: fromValue,
118
+ currentToValue: toValue,
119
+ invalidDatesPresent: false,
120
+ });
121
+ }, confirmButtonsRenderer: () => {
122
+ if (this.confirmButtonsVisible()) {
123
+ return this.renderConfirmButtons("small", 48);
124
+ }
125
+ return undefined;
126
+ }, onPopupVisibleChange: visible => {
127
+ this.setState({ popupVisible: visible });
128
+ }, defaultMode: this.state.mode, onModeChange: mode => {
129
+ this.setState({ mode: mode });
130
+ } }, rest)))));
133
131
  }
134
132
  }
135
133
  //# sourceMappingURL=dateRangeInputConfirm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateRangeInputConfirm.js","sourceRoot":"","sources":["../../../../components/date/dateRangeInputConfirm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {createRef} from \"react\";\r\nimport {Dayjs} from \"dayjs\";\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-component/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\nimport WithInputCss from \"../style/withInputCss\";\r\n\r\ninterface DateRangeInputConfirmProps extends DateRangeInputProps {\r\n requireConfirmationAtStart?: boolean\r\n confirmPlacement?: TooltipPlacement\r\n}\r\n\r\ninterface DateRangeInputConfirmState {\r\n originalFromValue: Dayjs | null\r\n originalToValue: Dayjs | null\r\n currentFromValue: Dayjs | null\r\n currentToValue: Dayjs | null\r\n invalidDatesPresent: boolean\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 private parentRef: React.RefObject<HTMLSpanElement> = createRef();\r\n\r\n constructor(props: Readonly<DateRangeInputConfirmProps>) {\r\n super(props);\r\n this.state = {\r\n originalFromValue: props.fromValue ?? null,\r\n originalToValue: props.toValue ?? null,\r\n currentFromValue: props.fromValue ?? null,\r\n currentToValue: props.toValue ?? null,\r\n invalidDatesPresent: false,\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 onKeyDown(event: React.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 const preFromValueUnixTime = DateTimeUtils.toUnixTime(prevProps.fromValue);\r\n const currentFromValueUnixTime = DateTimeUtils.toUnixTime(this.props.fromValue);\r\n const prevToValueUnixTime = DateTimeUtils.toUnixTime(prevProps.toValue);\r\n const currentToValueUnixTime = DateTimeUtils.toUnixTime(this.props.toValue);\r\n if (preFromValueUnixTime !== currentFromValueUnixTime ||\r\n prevToValueUnixTime !== currentToValueUnixTime) {\r\n this.setState({\r\n originalFromValue: this.props.fromValue ?? null,\r\n originalToValue: this.props.toValue ?? null,\r\n currentFromValue: this.props.fromValue ?? null,\r\n currentToValue: this.props.toValue ?? null\r\n })\r\n }\r\n }\r\n\r\n private onConfirm() {\r\n this.setState({requireConfirmation: false});\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.state.originalFromValue ?? null,\r\n currentToValue: this.state.originalToValue ?? null,\r\n invalidDatesPresent: false,\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 {originalFromValue, originalToValue, currentFromValue, currentToValue} = this.state;\r\n const valueChanged = DateTimeUtils.toUnixTime(currentFromValue) !== DateTimeUtils.toUnixTime(originalFromValue) ||\r\n DateTimeUtils.toUnixTime(currentToValue) !== DateTimeUtils.toUnixTime(originalToValue);\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, -6]};\r\n }\r\n return (\r\n <WithInputCss>\r\n <span onKeyDown={this.onKeyDown} ref={this.parentRef}>\r\n <Tooltip\r\n color={\"transparent\"}\r\n overlayInnerStyle={{boxShadow: \"none\"}}\r\n open={this.confirmButtonsVisible() && !this.state.popupVisible}\r\n align={align}\r\n title={this.renderConfirmButtons(rest.size, rest.size === \"small\" ? 48 : undefined)}\r\n getPopupContainer={() => {\r\n // very nasty trick how remove error of ResizeObservers infinite cycling - because popover (with dynamic size) is placed in resizable panel\r\n const parentNode = (this.parentRef.current?.parentNode ?? document.body) as HTMLElement;\r\n return parentNode;\r\n }}\r\n >\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: Dayjs | null, toValue: Dayjs | 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 </span>\r\n </WithInputCss>\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, {createRef} from \"react\";\r\nimport {Dayjs} from \"dayjs\";\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-component/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 originalFromValue: Dayjs | null\r\n originalToValue: Dayjs | null\r\n currentFromValue: Dayjs | null\r\n currentToValue: Dayjs | null\r\n invalidDatesPresent: boolean\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 private parentRef: React.RefObject<HTMLSpanElement> = createRef();\r\n\r\n constructor(props: Readonly<DateRangeInputConfirmProps>) {\r\n super(props);\r\n this.state = {\r\n originalFromValue: props.fromValue ?? null,\r\n originalToValue: props.toValue ?? null,\r\n currentFromValue: props.fromValue ?? null,\r\n currentToValue: props.toValue ?? null,\r\n invalidDatesPresent: false,\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 onKeyDown(event: React.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 const preFromValueUnixTime = DateTimeUtils.toUnixTime(prevProps.fromValue);\r\n const currentFromValueUnixTime = DateTimeUtils.toUnixTime(this.props.fromValue);\r\n const prevToValueUnixTime = DateTimeUtils.toUnixTime(prevProps.toValue);\r\n const currentToValueUnixTime = DateTimeUtils.toUnixTime(this.props.toValue);\r\n if (preFromValueUnixTime !== currentFromValueUnixTime ||\r\n prevToValueUnixTime !== currentToValueUnixTime) {\r\n this.setState({\r\n originalFromValue: this.props.fromValue ?? null,\r\n originalToValue: this.props.toValue ?? null,\r\n currentFromValue: this.props.fromValue ?? null,\r\n currentToValue: this.props.toValue ?? null\r\n })\r\n }\r\n }\r\n\r\n private onConfirm() {\r\n this.setState({requireConfirmation: false});\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.state.originalFromValue ?? null,\r\n currentToValue: this.state.originalToValue ?? null,\r\n invalidDatesPresent: false,\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 {originalFromValue, originalToValue, currentFromValue, currentToValue} = this.state;\r\n const valueChanged = DateTimeUtils.toUnixTime(currentFromValue) !== DateTimeUtils.toUnixTime(originalFromValue) ||\r\n DateTimeUtils.toUnixTime(currentToValue) !== DateTimeUtils.toUnixTime(originalToValue);\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, -6]};\r\n }\r\n return (\r\n <span onKeyDown={this.onKeyDown} ref={this.parentRef}>\r\n <Tooltip\r\n color={\"transparent\"}\r\n overlayInnerStyle={{boxShadow: \"none\"}}\r\n open={this.confirmButtonsVisible() && !this.state.popupVisible}\r\n align={align}\r\n title={this.renderConfirmButtons(rest.size, rest.size === \"small\" ? 48 : undefined)}\r\n getPopupContainer={() => {\r\n // very nasty trick how remove error of ResizeObservers infinite cycling - because popover (with dynamic size) is placed in resizable panel\r\n const parentNode = (this.parentRef.current?.parentNode ?? document.body) as HTMLElement;\r\n return parentNode;\r\n }}\r\n >\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: Dayjs | null, toValue: Dayjs | 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 </span>\r\n );\r\n }\r\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d2coreui",
3
- "version": "23.0.4",
3
+ "version": "23.0.5",
4
4
  "description": "Core UI components and utilities library.",
5
5
  "author": "Ipesoft s.r.o.",
6
6
  "license": "MIT",