d2coreui 21.0.18 → 21.0.20

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.
@@ -12,8 +12,8 @@ export interface DateRangeInputProps extends Omit<HTMLAttributes<HTMLDivElement>
12
12
  onChange?: (fromValue: Moment | null, toValue: Moment | null) => void;
13
13
  onInvalidValue?: (input: string) => void;
14
14
  disabled?: boolean;
15
- minDate?: Moment;
16
- maxDate?: Moment;
15
+ minDateTime?: Moment;
16
+ maxDateTime?: Moment;
17
17
  allowClear?: boolean;
18
18
  ranges?: {
19
19
  [rangeName: string]: () => [Moment, Moment];
@@ -54,6 +54,7 @@ export default class DateRangeInput extends React.Component<DateRangeInputProps,
54
54
  private getFromValue;
55
55
  private getToValue;
56
56
  closePopup(): void;
57
+ private onChange;
57
58
  private renderSimplePart;
58
59
  private renderAdvancedPart;
59
60
  renderPopup(): React.ReactElement;
@@ -60,6 +60,16 @@ export default class DateRangeInput extends React.Component {
60
60
  closePopup() {
61
61
  this.setState({ popupKeyIndex: this.state.popupKeyIndex + 1, popupVisible: false });
62
62
  }
63
+ onChange(fromValue, toValue) {
64
+ var _a, _b;
65
+ if (this.props.minDateTime && (fromValue === null || fromValue === void 0 ? void 0 : fromValue.isBefore(this.props.minDateTime))) {
66
+ fromValue = this.props.minDateTime;
67
+ }
68
+ if (this.props.maxDateTime && (toValue === null || toValue === void 0 ? void 0 : toValue.isAfter(this.props.maxDateTime))) {
69
+ toValue = this.props.maxDateTime;
70
+ }
71
+ (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, fromValue, toValue);
72
+ }
63
73
  renderSimplePart() {
64
74
  const _a = this.props, { fromValue, toValue, onChange, style, allowClear, renderAsCalendar, hidePopup, align, defaultMode, onModeChange, confirmButtonsRenderer, onPopupVisibleChange } = _a, props = __rest(_a, ["fromValue", "toValue", "onChange", "style", "allowClear", "renderAsCalendar", "hidePopup", "align", "defaultMode", "onModeChange", "confirmButtonsRenderer", "onPopupVisibleChange"]);
65
75
  const markedDateInterval = this.props.fromValue && this.props.toValue ? [this.props.fromValue, this.props.toValue] : undefined;
@@ -146,40 +156,43 @@ export default class DateRangeInput extends React.Component {
146
156
  })))));
147
157
  }
148
158
  renderAdvancedPart() {
159
+ const _a = this.props, { fromValue, toValue, onChange, style, allowClear, renderAsCalendar, hidePopup, align, defaultMode, onModeChange, confirmButtonsRenderer, onPopupVisibleChange } = _a, props = __rest(_a, ["fromValue", "toValue", "onChange", "style", "allowClear", "renderAsCalendar", "hidePopup", "align", "defaultMode", "onModeChange", "confirmButtonsRenderer", "onPopupVisibleChange"]);
149
160
  return (React.createElement("div", null,
150
161
  React.createElement("div", { style: { display: "flex" } },
151
- React.createElement(DateTimeInput, { style: { width: "47%" }, mask: this.props.mask, value: this.props.fromValue, onChange: (value) => {
162
+ React.createElement(DateTimeInput, Object.assign({}, props, { style: { width: "47%" }, value: toValue, onChange: (value) => {
152
163
  var _a, _b;
153
164
  (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value, this.props.toValue);
154
- } }),
165
+ } })),
155
166
  React.createElement("span", { style: { width: "6%", paddingTop: 4, color: "rgba(0, 0, 0, 0.65)", textAlign: "center" } }, "\u27F7"),
156
- React.createElement(DateTimeInput, { style: { width: "47%" }, mask: this.props.mask, value: this.props.toValue, onChange: (value) => {
167
+ React.createElement(DateTimeInput, Object.assign({}, props, { style: { width: "47%" }, value: toValue, onChange: (value) => {
157
168
  var _a, _b;
158
169
  (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.fromValue, value);
159
- } })),
170
+ } }))),
160
171
  React.createElement(DateRangeInputAdvancedPanel, { onBeginIntervalChange: unit => {
161
- var _a, _b, _c, _d;
172
+ let from;
162
173
  if (unit === "15minutes") {
163
174
  const roundedMinutes = Math.floor(moment().minute() / 15) * 15;
164
- (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, moment().startOf("hour").minute(roundedMinutes), this.props.toValue);
175
+ from = moment().startOf("hour").minute(roundedMinutes);
165
176
  }
166
177
  else {
167
- (_d = (_c = this.props).onChange) === null || _d === void 0 ? void 0 : _d.call(_c, moment().startOf(unit), this.props.toValue);
178
+ from = moment().startOf(unit);
168
179
  }
180
+ this.onChange(from, this.props.toValue);
169
181
  }, onIntervalDurationChange: unitOfTime => {
170
- var _a, _b, _c, _d;
171
182
  if (this.props.fromValue) {
183
+ let to;
172
184
  if (unitOfTime === "4years") {
173
- (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.fromValue, this.props.fromValue.clone().add(4, "year").subtract(1, "minute"));
185
+ to = this.props.fromValue.clone().add(4, "year").subtract(1, "minute");
174
186
  }
175
187
  else {
176
- (_d = (_c = this.props).onChange) === null || _d === void 0 ? void 0 : _d.call(_c, this.props.fromValue, this.props.fromValue.clone().add(1, unitOfTime).subtract(1, "minute"));
188
+ to = this.props.fromValue.clone().add(1, unitOfTime).subtract(1, "minute");
177
189
  }
190
+ this.onChange(this.props.fromValue, to);
178
191
  }
179
192
  }, onTimeShift: (shiftBegin, shiftEnd, unitOfTime, type) => {
180
193
  var _a, _b, _c, _d;
181
- let fromValue = (_a = this.props.fromValue) === null || _a === void 0 ? void 0 : _a.clone();
182
- let toValue = (_b = this.props.toValue) === null || _b === void 0 ? void 0 : _b.clone();
194
+ let fromValue = (_b = (_a = this.props.fromValue) === null || _a === void 0 ? void 0 : _a.clone()) !== null && _b !== void 0 ? _b : null;
195
+ let toValue = (_d = (_c = this.props.toValue) === null || _c === void 0 ? void 0 : _c.clone()) !== null && _d !== void 0 ? _d : null;
183
196
  if (shiftBegin && fromValue) {
184
197
  if (type === TimeShiftDirection.INCREMENT) {
185
198
  fromValue.add(1, unitOfTime);
@@ -196,16 +209,17 @@ export default class DateRangeInput extends React.Component {
196
209
  toValue.subtract(1, unitOfTime);
197
210
  }
198
211
  }
199
- (_d = (_c = this.props).onChange) === null || _d === void 0 ? void 0 : _d.call(_c, fromValue !== null && fromValue !== void 0 ? fromValue : null, toValue !== null && toValue !== void 0 ? toValue : null);
212
+ this.onChange(fromValue, toValue);
200
213
  }, onEndIntervalChange: unit => {
201
- var _a, _b, _c, _d;
214
+ let to;
202
215
  if (unit === "15minutes") {
203
216
  const roundedMinutes = Math.floor(moment().minute() / 15) * 15;
204
- (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.fromValue, moment().startOf("hour").minute(roundedMinutes).subtract(1, "minute"));
217
+ to = moment().startOf("hour").minute(roundedMinutes).subtract(1, "minute");
205
218
  }
206
219
  else {
207
- (_d = (_c = this.props).onChange) === null || _d === void 0 ? void 0 : _d.call(_c, this.props.fromValue, moment().startOf(unit).subtract(1, "minute"));
220
+ to = moment().startOf(unit).subtract(1, "minute");
208
221
  }
222
+ this.onChange(this.props.fromValue, to);
209
223
  } })));
210
224
  }
211
225
  renderPopup() {
@@ -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\";\nimport moment, {Moment} from \"moment\";\nimport {CalendarOutlined} from \"@ant-design/icons\";\nimport {Divider, Switch, Tooltip} from \"antd\";\nimport DateTimeInput from \"./dateTimeInput\";\nimport memoizeOne from \"memoize-one\";\nimport {TooltipPlacement} from \"antd/es/tooltip\";\nimport KeyboardUtils from \"../keyboard/keyboardUtils\";\nimport i18n from \"d2core/i18n/i18n\";\nimport DateRangeInputAdvancedPanel, {TimeShiftDirection} from \"./dateRangeInputAdvancedPanel\";\n\nexport enum DateRangeInputMode {\n SIMPLE,\n ADVANCED,\n}\n\nexport interface DateRangeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n mask: string\n fromValue: Moment | null\n toValue: Moment | null\n onChange?: (fromValue: Moment | null, toValue: Moment | null) => void\n onInvalidValue?: (input: string) => void\n disabled?: boolean\n minDate?: Moment\n maxDate?: Moment\n // allows to set no (null) date by datepicker\n allowClear?: boolean\n ranges?: { [rangeName: string]: () => [Moment, Moment] }\n\n hidePopup?: boolean\n renderAsCalendar?: boolean\n placement?: TooltipPlacement\n align?: {\n points?: [string, string];\n offset?: [number, number];\n targetOffset?: [number, number];\n overflow?: {\n adjustX?: boolean;\n adjustY?: boolean;\n };\n useCssRight?: boolean;\n useCssBottom?: boolean;\n useCssTransform?: boolean;\n }\n\n defaultMode?: DateRangeInputMode\n\n onModeChange?(mode: DateRangeInputMode): void\n\n onFocus?(): void\n\n onBlur?(): void\n\n confirmButtonsRenderer?(): React.ReactNode\n\n onPopupVisibleChange?(visible: boolean): void\n}\n\ninterface DateRangeInputState {\n valid: boolean\n selectionStartDate: Moment | null\n popupKeyIndex: number\n popupVisible: boolean\n\n mode: DateRangeInputMode\n}\n\nexport default class DateRangeInput extends React.Component<DateRangeInputProps, DateRangeInputState> {\n constructor(props: Readonly<DateRangeInputProps>) {\n super(props);\n this.state = {\n valid: !!props.fromValue && props.fromValue.isValid() && !!props.toValue && props.toValue.isValid(),\n selectionStartDate: null,\n popupKeyIndex: 0,\n popupVisible: false,\n\n mode: props.defaultMode ?? DateRangeInputMode.SIMPLE,\n };\n this.getDefaultSelectedDateForFromPanel = memoizeOne(this.getDefaultSelectedDateForFromPanel.bind(this));\n }\n\n componentDidUpdate(_prevProps: Readonly<DateRangeInputProps>, prevState: Readonly<DateRangeInputState>) {\n if (prevState.popupVisible !== this.state.popupVisible && this.props.onPopupVisibleChange) {\n this.props.onPopupVisibleChange(this.state.popupVisible);\n }\n }\n\n getDefaultSelectedDateForFromPanel(fromDate: Moment | null, toDate: Moment | null): Moment {\n if (!!fromDate && !!toDate && fromDate.isSame(toDate, \"date\")) {\n return fromDate.clone().subtract(1, \"month\");\n } else {\n return fromDate ?? moment().startOf(\"day\").subtract(1, \"month\");\n }\n }\n\n private getFromValue(date: moment.Moment) {\n return (this.props.fromValue?.clone() ?? moment().startOf(\"day\")).year(date.year()).month(date.month()).date(date.date());\n }\n\n private getToValue(date: moment.Moment) {\n return (this.props.toValue?.clone() ?? moment().endOf(\"day\")).year(date.year()).month(date.month()).date(date.date());\n }\n\n closePopup() {\n // close tooltip\n this.setState({popupKeyIndex: this.state.popupKeyIndex + 1, popupVisible: false});\n }\n\n private renderSimplePart() {\n const {\n fromValue,\n toValue,\n onChange,\n style,\n allowClear,\n renderAsCalendar,\n hidePopup,\n align,\n defaultMode,\n onModeChange,\n confirmButtonsRenderer,\n onPopupVisibleChange,\n ...props\n } = this.props;\n const markedDateInterval: [Moment, Moment] | undefined = this.props.fromValue && this.props.toValue ? [this.props.fromValue, this.props.toValue] : undefined;\n\n return (\n <div>\n <div style={{display: \"flex\"}}>\n <DateTimeInput value={fromValue} {...props}\n allowClear={allowClear}\n renderAsCalendar\n style={{width: \"100%\"}}\n onChange={(date) => {\n if (date) {\n const fromValue = this.getFromValue(date);\n const toValue = this.getToValue(date);\n this.props.onChange?.(fromValue, toValue);\n }\n }}\n defaultSelectedDate={this.getDefaultSelectedDateForFromPanel(fromValue, toValue)}\n markedDateInterval={markedDateInterval}\n onDateItemMouseDown={(date) => {\n this.setState({selectionStartDate: date});\n const dateFrom = this.getFromValue(date);\n const dateTo = this.getToValue(date);\n this.props.onChange?.(dateFrom, dateTo);\n }}\n onDateItemMouseOver={(date) => {\n if (KeyboardUtils.isMouseDown() && !!this.state.selectionStartDate) {\n let dateFrom: Moment;\n let dateTo: Moment;\n if (this.state.selectionStartDate.isBefore(date)) {\n dateFrom = this.state.selectionStartDate;\n dateTo = date;\n } else {\n dateFrom = date;\n dateTo = this.state.selectionStartDate;\n }\n dateFrom = this.getFromValue(dateFrom);\n dateTo = this.getToValue(dateTo);\n this.props.onChange?.(dateFrom, dateTo);\n }\n }}\n onDateItemMouseUp={(_date) => {\n this.setState({selectionStartDate: null});\n }}\n ignoreKeyStrokes\n />\n <Divider type=\"vertical\" style={{height: \"auto\"}}/>\n <DateTimeInput value={toValue} {...props}\n renderAsCalendar\n allowClear={allowClear}\n style={{width: \"100%\"}}\n onChange={(date) => {\n if (date) {\n const fromValue = this.getFromValue(date);\n const toValue = this.getToValue(date);\n this.props.onChange?.(fromValue, toValue);\n }\n }}\n markedDateInterval={markedDateInterval}\n onDateItemMouseDown={(date) => {\n this.setState({selectionStartDate: date});\n const dateFrom = this.getFromValue(date);\n const dateTo = this.getToValue(date);\n this.props.onChange?.(dateFrom, dateTo);\n }}\n onDateItemMouseOver={(date) => {\n if (KeyboardUtils.isMouseDown() && !!this.state.selectionStartDate) {\n let dateFrom: Moment;\n let dateTo: Moment;\n if (this.state.selectionStartDate.isBefore(date)) {\n dateFrom = this.state.selectionStartDate;\n dateTo = date;\n } else {\n dateFrom = date;\n dateTo = this.state.selectionStartDate;\n }\n dateFrom = this.getFromValue(dateFrom);\n dateTo = this.getToValue(dateTo);\n this.props.onChange?.(dateFrom, dateTo);\n }\n }}\n onDateItemMouseUp={(_date) => {\n this.setState({selectionStartDate: null});\n }}\n ignoreKeyStrokes\n />\n </div>\n <div className=\"ant-picker-footer\">\n <ul className=\"ant-picker-ranges\" style={{padding: 0, borderTop: \"1px solid #ddd\"}}>\n {\n this.props.ranges && Object.keys(this.props.ranges).map((rangeName, index) => {\n return (<li className=\"ant-picker-preset\"\n key={`range-${index}`}\n onClick={() => {\n const rangeFunction = this.props.ranges?.[rangeName];\n if (rangeFunction) {\n const range = rangeFunction();\n this.props.onChange?.(range[0], range[1]);\n }\n }}>\n <span className=\"ant-tag ant-tag-blue\"\n style={{userSelect: \"none\"}}>{rangeName}</span>\n </li>);\n })\n }\n </ul>\n </div>\n </div>\n )\n }\n\n private renderAdvancedPart() {\n return (\n <div>\n <div style={{display: \"flex\"}}>\n <DateTimeInput\n style={{width: \"47%\"}}\n mask={this.props.mask}\n value={this.props.fromValue}\n onChange={(value) => {\n this.props.onChange?.(value, this.props.toValue);\n }}\n />\n <span style={{width: \"6%\", paddingTop: 4, color: \"rgba(0, 0, 0, 0.65)\", textAlign: \"center\"}}>\n {\"\\u27F7\"}\n </span>\n <DateTimeInput\n style={{width: \"47%\"}}\n mask={this.props.mask}\n value={this.props.toValue}\n onChange={(value) => {\n this.props.onChange?.(this.props.fromValue, value);\n }}\n />\n </div>\n <DateRangeInputAdvancedPanel\n onBeginIntervalChange={unit => {\n if (unit === \"15minutes\") {\n const roundedMinutes = Math.floor(moment().minute() / 15) * 15;\n this.props.onChange?.(moment().startOf(\"hour\").minute(roundedMinutes), this.props.toValue);\n } else {\n this.props.onChange?.(moment().startOf(unit), this.props.toValue);\n }\n }}\n onIntervalDurationChange={unitOfTime => {\n if (this.props.fromValue) {\n if (unitOfTime === \"4years\") {\n this.props.onChange?.(this.props.fromValue, this.props.fromValue.clone().add(4, \"year\").subtract(1, \"minute\"));\n } else {\n this.props.onChange?.(this.props.fromValue, this.props.fromValue.clone().add(1, unitOfTime).subtract(1, \"minute\"));\n }\n }\n }}\n onTimeShift={(shiftBegin, shiftEnd, unitOfTime, type) => {\n let fromValue = this.props.fromValue?.clone();\n let toValue = this.props.toValue?.clone();\n\n if (shiftBegin && fromValue) {\n if (type === TimeShiftDirection.INCREMENT) {\n fromValue.add(1, unitOfTime);\n } else if (type === TimeShiftDirection.DECREMENT) {\n fromValue.subtract(1, unitOfTime);\n }\n }\n\n if (shiftEnd && toValue) {\n if (type === TimeShiftDirection.INCREMENT) {\n toValue.add(1, unitOfTime);\n } else if (type === TimeShiftDirection.DECREMENT) {\n toValue.subtract(1, unitOfTime);\n }\n }\n\n this.props.onChange?.(fromValue ?? null, toValue ?? null);\n }}\n onEndIntervalChange={unit => {\n if (unit === \"15minutes\") {\n const roundedMinutes = Math.floor(moment().minute() / 15) * 15;\n this.props.onChange?.(this.props.fromValue, moment().startOf(\"hour\").minute(roundedMinutes).subtract(1, \"minute\"));\n } else {\n this.props.onChange?.(this.props.fromValue, moment().startOf(unit).subtract(1, \"minute\"));\n }\n }}\n />\n </div>\n )\n }\n\n renderPopup(): React.ReactElement {\n return (\n <div onFocus={this.props.onFocus} onBlur={this.props.onBlur}>\n {this.state.mode === DateRangeInputMode.SIMPLE && this.renderSimplePart()}\n {this.state.mode === DateRangeInputMode.ADVANCED && this.renderAdvancedPart()}\n <div style={{display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-end\"}}>\n <Switch\n style={{float: \"right\", marginTop: 8}}\n checked={this.state.mode === DateRangeInputMode.ADVANCED}\n onChange={checked => {\n const mode = checked ? DateRangeInputMode.ADVANCED : DateRangeInputMode.SIMPLE;\n this.setState({mode: mode});\n this.props.onModeChange?.(mode);\n }}\n checkedChildren={i18n(\"Advanced Mode\")}\n unCheckedChildren={i18n(\"Simple Mode\")}\n />\n {this.props.confirmButtonsRenderer?.()}\n </div>\n </div>\n );\n }\n\n renderInput() {\n const {\n fromValue,\n toValue,\n onChange,\n style,\n allowClear,\n renderAsCalendar,\n hidePopup,\n align,\n disabled,\n defaultMode,\n onModeChange,\n confirmButtonsRenderer,\n onPopupVisibleChange,\n ...props\n } = this.props;\n const className = (disabled || this.state.popupVisible) ? \"readonly\" : undefined;\n return (\n <div style={{...style, padding: 0}} className={\"ant-input\"} onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}>\n <div style={{display: \"flex\", width: \"calc(100% - 27px)\"}}>\n <DateTimeInput value={fromValue} {...props}\n disabled={disabled}\n inputDisabled={this.state.popupVisible}\n allowClear={allowClear}\n bordered={false}\n hidePopup={true}\n style={{width: \"auto\"}}\n inputStyle={{paddingRight: 2}}\n onChange={(value) => {\n this.props.onChange?.(value, this.props.toValue);\n }}\n />\n <span style={{paddingTop: 4}} className={className}>{\"\\u27F7\"}</span>\n <DateTimeInput value={toValue} {...props}\n disabled={disabled}\n inputDisabled={this.state.popupVisible}\n allowClear={allowClear}\n bordered={false}\n hidePopup={true}\n style={{width: \"auto\"}}\n inputStyle={{paddingLeft: 2}}\n onChange={(value) => {\n this.props.onChange?.(this.props.fromValue, value);\n }}/>\n </div>\n <div className={\"ant-input-number-handler-wrap \" + className}\n style={{\n width: 28,\n opacity: 1,\n height: \"100%\",\n textAlign: \"center\",\n cursor: disabled ? \"not-allowed\" : \"pointer\"\n }}\n onClick={(event) => {\n if (!disabled && document.createEvent) {\n if (this.state.popupVisible) {\n this.closePopup();\n } else {\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent('contextmenu', true, false);\n event.target.dispatchEvent(ev);\n this.props.onFocus?.();\n }\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.renderPopup();\n } else if (this.props.hidePopup) {\n return this.renderInput();\n } else {\n return (\n <Tooltip color={\"white\"}\n key={\"date-range-popup-\" + this.state.popupKeyIndex}\n trigger={this.props.disabled ? [] : [\"contextMenu\"]}\n align={this.props.align}\n placement={this.props.placement}\n overlayInnerStyle={{maxHeight: \"100vh\", overflowY: \"auto\", overflowX: \"hidden\"}}\n onVisibleChange={(visible) => {\n if (visible) {\n this.props.onFocus?.();\n } else {\n this.props.onBlur?.();\n }\n this.setState({popupVisible: visible});\n }}\n overlayClassName={\"date-range-picker-popup\"}\n title={this.renderPopup()}>\n {this.renderInput()}\n </Tooltip>\n );\n }\n }\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\";\nimport moment, {Moment} from \"moment\";\nimport {CalendarOutlined} from \"@ant-design/icons\";\nimport {Divider, Switch, Tooltip} from \"antd\";\nimport DateTimeInput from \"./dateTimeInput\";\nimport memoizeOne from \"memoize-one\";\nimport {TooltipPlacement} from \"antd/es/tooltip\";\nimport KeyboardUtils from \"../keyboard/keyboardUtils\";\nimport i18n from \"d2core/i18n/i18n\";\nimport DateRangeInputAdvancedPanel, {TimeShiftDirection} from \"./dateRangeInputAdvancedPanel\";\n\nexport enum DateRangeInputMode {\n SIMPLE,\n ADVANCED,\n}\n\nexport interface DateRangeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n mask: string\n fromValue: Moment | null\n toValue: Moment | null\n onChange?: (fromValue: Moment | null, toValue: Moment | null) => void\n onInvalidValue?: (input: string) => void\n disabled?: boolean\n minDateTime?: Moment\n maxDateTime?: Moment\n // allows to set no (null) date by datepicker\n allowClear?: boolean\n ranges?: { [rangeName: string]: () => [Moment, Moment] }\n\n hidePopup?: boolean\n renderAsCalendar?: boolean\n placement?: TooltipPlacement\n align?: {\n points?: [string, string];\n offset?: [number, number];\n targetOffset?: [number, number];\n overflow?: {\n adjustX?: boolean;\n adjustY?: boolean;\n };\n useCssRight?: boolean;\n useCssBottom?: boolean;\n useCssTransform?: boolean;\n }\n\n defaultMode?: DateRangeInputMode\n\n onModeChange?(mode: DateRangeInputMode): void\n\n onFocus?(): void\n\n onBlur?(): void\n\n confirmButtonsRenderer?(): React.ReactNode\n\n onPopupVisibleChange?(visible: boolean): void\n}\n\ninterface DateRangeInputState {\n valid: boolean\n selectionStartDate: Moment | null\n popupKeyIndex: number\n popupVisible: boolean\n\n mode: DateRangeInputMode\n}\n\nexport default class DateRangeInput extends React.Component<DateRangeInputProps, DateRangeInputState> {\n constructor(props: Readonly<DateRangeInputProps>) {\n super(props);\n this.state = {\n valid: !!props.fromValue && props.fromValue.isValid() && !!props.toValue && props.toValue.isValid(),\n selectionStartDate: null,\n popupKeyIndex: 0,\n popupVisible: false,\n\n mode: props.defaultMode ?? DateRangeInputMode.SIMPLE,\n };\n this.getDefaultSelectedDateForFromPanel = memoizeOne(this.getDefaultSelectedDateForFromPanel.bind(this));\n }\n\n componentDidUpdate(_prevProps: Readonly<DateRangeInputProps>, prevState: Readonly<DateRangeInputState>) {\n if (prevState.popupVisible !== this.state.popupVisible && this.props.onPopupVisibleChange) {\n this.props.onPopupVisibleChange(this.state.popupVisible);\n }\n }\n\n getDefaultSelectedDateForFromPanel(fromDate: Moment | null, toDate: Moment | null): Moment {\n if (!!fromDate && !!toDate && fromDate.isSame(toDate, \"date\")) {\n return fromDate.clone().subtract(1, \"month\");\n } else {\n return fromDate ?? moment().startOf(\"day\").subtract(1, \"month\");\n }\n }\n\n private getFromValue(date: moment.Moment) {\n return (this.props.fromValue?.clone() ?? moment().startOf(\"day\")).year(date.year()).month(date.month()).date(date.date());\n }\n\n private getToValue(date: moment.Moment) {\n return (this.props.toValue?.clone() ?? moment().endOf(\"day\")).year(date.year()).month(date.month()).date(date.date());\n }\n\n closePopup() {\n // close tooltip\n this.setState({popupKeyIndex: this.state.popupKeyIndex + 1, popupVisible: false});\n }\n\n private onChange(fromValue: Moment | null, toValue: Moment | null) {\n if (this.props.minDateTime && fromValue?.isBefore(this.props.minDateTime)) {\n fromValue = this.props.minDateTime;\n }\n if (this.props.maxDateTime && toValue?.isAfter(this.props.maxDateTime)) {\n toValue = this.props.maxDateTime;\n }\n this.props.onChange?.(fromValue, toValue);\n }\n\n private renderSimplePart() {\n const {\n fromValue,\n toValue,\n onChange,\n style,\n allowClear,\n renderAsCalendar,\n hidePopup,\n align,\n defaultMode,\n onModeChange,\n confirmButtonsRenderer,\n onPopupVisibleChange,\n ...props\n } = this.props;\n const markedDateInterval: [Moment, Moment] | undefined = this.props.fromValue && this.props.toValue ? [this.props.fromValue, this.props.toValue] : undefined;\n\n return (\n <div>\n <div style={{display: \"flex\"}}>\n <DateTimeInput value={fromValue} {...props}\n allowClear={allowClear}\n renderAsCalendar\n style={{width: \"100%\"}}\n onChange={(date) => {\n if (date) {\n const fromValue = this.getFromValue(date);\n const toValue = this.getToValue(date);\n this.props.onChange?.(fromValue, toValue);\n }\n }}\n defaultSelectedDate={this.getDefaultSelectedDateForFromPanel(fromValue, toValue)}\n markedDateInterval={markedDateInterval}\n onDateItemMouseDown={(date) => {\n this.setState({selectionStartDate: date});\n const dateFrom = this.getFromValue(date);\n const dateTo = this.getToValue(date);\n this.props.onChange?.(dateFrom, dateTo);\n }}\n onDateItemMouseOver={(date) => {\n if (KeyboardUtils.isMouseDown() && !!this.state.selectionStartDate) {\n let dateFrom: Moment;\n let dateTo: Moment;\n if (this.state.selectionStartDate.isBefore(date)) {\n dateFrom = this.state.selectionStartDate;\n dateTo = date;\n } else {\n dateFrom = date;\n dateTo = this.state.selectionStartDate;\n }\n dateFrom = this.getFromValue(dateFrom);\n dateTo = this.getToValue(dateTo);\n this.props.onChange?.(dateFrom, dateTo);\n }\n }}\n onDateItemMouseUp={(_date) => {\n this.setState({selectionStartDate: null});\n }}\n ignoreKeyStrokes\n />\n <Divider type=\"vertical\" style={{height: \"auto\"}}/>\n <DateTimeInput value={toValue} {...props}\n renderAsCalendar\n allowClear={allowClear}\n style={{width: \"100%\"}}\n onChange={(date) => {\n if (date) {\n const fromValue = this.getFromValue(date);\n const toValue = this.getToValue(date);\n this.props.onChange?.(fromValue, toValue);\n }\n }}\n markedDateInterval={markedDateInterval}\n onDateItemMouseDown={(date) => {\n this.setState({selectionStartDate: date});\n const dateFrom = this.getFromValue(date);\n const dateTo = this.getToValue(date);\n this.props.onChange?.(dateFrom, dateTo);\n }}\n onDateItemMouseOver={(date) => {\n if (KeyboardUtils.isMouseDown() && !!this.state.selectionStartDate) {\n let dateFrom: Moment;\n let dateTo: Moment;\n if (this.state.selectionStartDate.isBefore(date)) {\n dateFrom = this.state.selectionStartDate;\n dateTo = date;\n } else {\n dateFrom = date;\n dateTo = this.state.selectionStartDate;\n }\n dateFrom = this.getFromValue(dateFrom);\n dateTo = this.getToValue(dateTo);\n this.props.onChange?.(dateFrom, dateTo);\n }\n }}\n onDateItemMouseUp={(_date) => {\n this.setState({selectionStartDate: null});\n }}\n ignoreKeyStrokes\n />\n </div>\n <div className=\"ant-picker-footer\">\n <ul className=\"ant-picker-ranges\" style={{padding: 0, borderTop: \"1px solid #ddd\"}}>\n {\n this.props.ranges && Object.keys(this.props.ranges).map((rangeName, index) => {\n return (<li className=\"ant-picker-preset\"\n key={`range-${index}`}\n onClick={() => {\n const rangeFunction = this.props.ranges?.[rangeName];\n if (rangeFunction) {\n const range = rangeFunction();\n this.props.onChange?.(range[0], range[1]);\n }\n }}>\n <span className=\"ant-tag ant-tag-blue\"\n style={{userSelect: \"none\"}}>{rangeName}</span>\n </li>);\n })\n }\n </ul>\n </div>\n </div>\n )\n }\n\n private renderAdvancedPart() {\n const {\n fromValue,\n toValue,\n onChange,\n style,\n allowClear,\n renderAsCalendar,\n hidePopup,\n align,\n defaultMode,\n onModeChange,\n confirmButtonsRenderer,\n onPopupVisibleChange,\n ...props\n } = this.props;\n return (\n <div>\n <div style={{display: \"flex\"}}>\n <DateTimeInput\n {...props}\n style={{width: \"47%\"}}\n value={toValue}\n onChange={(value) => {\n this.props.onChange?.(value, this.props.toValue);\n }}\n />\n <span style={{width: \"6%\", paddingTop: 4, color: \"rgba(0, 0, 0, 0.65)\", textAlign: \"center\"}}>\n {\"\\u27F7\"}\n </span>\n <DateTimeInput\n {...props}\n style={{width: \"47%\"}}\n value={toValue}\n onChange={(value) => {\n this.props.onChange?.(this.props.fromValue, value);\n }}\n />\n </div>\n <DateRangeInputAdvancedPanel\n onBeginIntervalChange={unit => {\n let from: Moment;\n if (unit === \"15minutes\") {\n const roundedMinutes = Math.floor(moment().minute() / 15) * 15;\n from = moment().startOf(\"hour\").minute(roundedMinutes);\n } else {\n from = moment().startOf(unit);\n }\n this.onChange(from, this.props.toValue);\n }}\n onIntervalDurationChange={unitOfTime => {\n if (this.props.fromValue) {\n let to: Moment;\n if (unitOfTime === \"4years\") {\n to = this.props.fromValue.clone().add(4, \"year\").subtract(1, \"minute\");\n } else {\n to = this.props.fromValue.clone().add(1, unitOfTime).subtract(1, \"minute\")\n }\n this.onChange(this.props.fromValue, to);\n }\n }}\n onTimeShift={(shiftBegin, shiftEnd, unitOfTime, type) => {\n let fromValue = this.props.fromValue?.clone() ?? null;\n let toValue = this.props.toValue?.clone() ?? null;\n\n if (shiftBegin && fromValue) {\n if (type === TimeShiftDirection.INCREMENT) {\n fromValue.add(1, unitOfTime);\n } else if (type === TimeShiftDirection.DECREMENT) {\n fromValue.subtract(1, unitOfTime);\n }\n }\n\n if (shiftEnd && toValue) {\n if (type === TimeShiftDirection.INCREMENT) {\n toValue.add(1, unitOfTime);\n } else if (type === TimeShiftDirection.DECREMENT) {\n toValue.subtract(1, unitOfTime);\n }\n }\n\n this.onChange(fromValue, toValue);\n }}\n onEndIntervalChange={unit => {\n let to: Moment;\n if (unit === \"15minutes\") {\n const roundedMinutes = Math.floor(moment().minute() / 15) * 15;\n to = moment().startOf(\"hour\").minute(roundedMinutes).subtract(1, \"minute\");\n } else {\n to = moment().startOf(unit).subtract(1, \"minute\");\n }\n this.onChange(this.props.fromValue, to);\n }}\n />\n </div>\n )\n }\n\n renderPopup(): React.ReactElement {\n return (\n <div onFocus={this.props.onFocus} onBlur={this.props.onBlur}>\n {this.state.mode === DateRangeInputMode.SIMPLE && this.renderSimplePart()}\n {this.state.mode === DateRangeInputMode.ADVANCED && this.renderAdvancedPart()}\n <div style={{display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-end\"}}>\n <Switch\n style={{float: \"right\", marginTop: 8}}\n checked={this.state.mode === DateRangeInputMode.ADVANCED}\n onChange={checked => {\n const mode = checked ? DateRangeInputMode.ADVANCED : DateRangeInputMode.SIMPLE;\n this.setState({mode: mode});\n this.props.onModeChange?.(mode);\n }}\n checkedChildren={i18n(\"Advanced Mode\")}\n unCheckedChildren={i18n(\"Simple Mode\")}\n />\n {this.props.confirmButtonsRenderer?.()}\n </div>\n </div>\n );\n }\n\n renderInput() {\n const {\n fromValue,\n toValue,\n onChange,\n style,\n allowClear,\n renderAsCalendar,\n hidePopup,\n align,\n disabled,\n defaultMode,\n onModeChange,\n confirmButtonsRenderer,\n onPopupVisibleChange,\n ...props\n } = this.props;\n const className = (disabled || this.state.popupVisible) ? \"readonly\" : undefined;\n return (\n <div style={{...style, padding: 0}} className={\"ant-input\"} onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}>\n <div style={{display: \"flex\", width: \"calc(100% - 27px)\"}}>\n <DateTimeInput value={fromValue} {...props}\n disabled={disabled}\n inputDisabled={this.state.popupVisible}\n allowClear={allowClear}\n bordered={false}\n hidePopup={true}\n style={{width: \"auto\"}}\n inputStyle={{paddingRight: 2}}\n onChange={(value) => {\n this.props.onChange?.(value, this.props.toValue);\n }}\n />\n <span style={{paddingTop: 4}} className={className}>{\"\\u27F7\"}</span>\n <DateTimeInput value={toValue} {...props}\n disabled={disabled}\n inputDisabled={this.state.popupVisible}\n allowClear={allowClear}\n bordered={false}\n hidePopup={true}\n style={{width: \"auto\"}}\n inputStyle={{paddingLeft: 2}}\n onChange={(value) => {\n this.props.onChange?.(this.props.fromValue, value);\n }}/>\n </div>\n <div className={\"ant-input-number-handler-wrap \" + className}\n style={{\n width: 28,\n opacity: 1,\n height: \"100%\",\n textAlign: \"center\",\n cursor: disabled ? \"not-allowed\" : \"pointer\"\n }}\n onClick={(event) => {\n if (!disabled && document.createEvent) {\n if (this.state.popupVisible) {\n this.closePopup();\n } else {\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent('contextmenu', true, false);\n event.target.dispatchEvent(ev);\n this.props.onFocus?.();\n }\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.renderPopup();\n } else if (this.props.hidePopup) {\n return this.renderInput();\n } else {\n return (\n <Tooltip color={\"white\"}\n key={\"date-range-popup-\" + this.state.popupKeyIndex}\n trigger={this.props.disabled ? [] : [\"contextMenu\"]}\n align={this.props.align}\n placement={this.props.placement}\n overlayInnerStyle={{maxHeight: \"100vh\", overflowY: \"auto\", overflowX: \"hidden\"}}\n onVisibleChange={(visible) => {\n if (visible) {\n this.props.onFocus?.();\n } else {\n this.props.onBlur?.();\n }\n this.setState({popupVisible: visible});\n }}\n overlayClassName={\"date-range-picker-popup\"}\n title={this.renderPopup()}>\n {this.renderInput()}\n </Tooltip>\n );\n }\n }\n}"]}
@@ -74,14 +74,14 @@ export default class NumberCellEditor extends React.Component {
74
74
  render() {
75
75
  return (React.createElement(InputNumber, { ref: (component) => {
76
76
  this.inputComponent = component;
77
- }, size: "small", autoFocus: true, decimalSeparator: this.props.decimalSeparator, precision: this.props.precision, min: this.props.min, max: this.props.max, placeholder: this.state.value === null ? "NULL" : "", value: this.state.value !== undefined && this.state.value !== null ? this.state.value : undefined, onChange: (value) => {
77
+ }, size: "small", autoFocus: true, decimalSeparator: this.props.decimalSeparator, precision: this.props.precision, min: this.props.min, max: this.props.max, placeholder: this.state.value === null ? "NULL" : "", value: this.state.value !== null ? this.state.value : undefined, onChange: value => {
78
78
  if (KeyboardUtils.isKeyPressed(Key.Alt)) {
79
79
  return;
80
80
  }
81
81
  if (typeof value === "number") {
82
82
  this.setState({ value: value });
83
83
  }
84
- else if (value === undefined || value === "") {
84
+ else if (value === null || value === "") {
85
85
  this.setState({ value: null });
86
86
  }
87
87
  }, onKeyDown: (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"numberCellEditor.js","sourceRoot":"","sources":["../../../../../components/grid/cell/numberCellEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {InputNumber} from \"antd\";\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\nimport {Key} from \"ts-key-enum\";\nimport KeyboardUtils from \"d2coreui/components/keyboard/keyboardUtils\";\nimport {CellEditorUtils} from \"./cellEditorUtils\";\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_F2 = 113;\n\ninterface NumberCellEditorProperties extends ICellEditorParams {\n decimalSeparator?: string\n precision?: number\n min?: number\n max?: number\n}\n\ninterface NumericCellEditorState {\n value: number | null\n highlightAllOnFocus: boolean\n cancelEdit: boolean\n}\n\nexport default class NumberCellEditor extends React.Component<NumberCellEditorProperties, NumericCellEditorState> implements ICellEditor {\n private inputComponent: HTMLInputElement | null = null;\n private focusOpId: number | null = null;\n\n constructor(props: Readonly<NumberCellEditorProperties>) {\n super(props);\n this.state = this.getInitialState(props);\n }\n\n getInitialState(props: Readonly<NumberCellEditorProperties>): NumericCellEditorState {\n let value: number | null;\n let highlightAllOnFocus = true;\n\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n value = null;\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n const parsedValue = Number.parseInt(props.charPress);\n value = isNaN(parsedValue) ? props.value : parsedValue;\n highlightAllOnFocus = false;\n } else {\n // otherwise we start with the current value\n value = props.value;\n if (props.keyPress === KEY_F2) {\n highlightAllOnFocus = false;\n }\n }\n return {\n value: value,\n highlightAllOnFocus,\n cancelEdit: false\n } as NumericCellEditorState;\n }\n\n componentWillUnmount() {\n if (this.focusOpId) {\n clearTimeout(this.focusOpId);\n }\n }\n\n afterGuiAttached() {\n this.focusOpId = window.setTimeout(() => {\n this.inputComponent?.focus();\n if (this.state.highlightAllOnFocus) {\n this.inputComponent?.select();\n this.setState({\n highlightAllOnFocus: false,\n });\n } else {\n // when we started editing, we want the carot at the end, not the start.\n // this comes into play in two scenarios: a) when user hits F2 and b)\n // when user hits a printable character, then on IE (and only IE) the carot\n // was placed after the first character, thus 'apply' would end up as 'pplea'\n const length = this.inputComponent?.value ? this.inputComponent?.value.length : 0;\n if (length > 0) {\n this.inputComponent?.setSelectionRange(length, length);\n }\n }\n }, 200);\n }\n\n getValue() {\n return this.state.value;\n }\n\n isPopup(): boolean {\n return true;\n }\n\n isCancelBeforeStart(): boolean {\n return !!this.props.charPress && '1234567890'.indexOf(this.props.charPress) < 0;\n }\n\n isCancelAfterEnd() {\n return false;\n }\n\n render() {\n return (\n <InputNumber\n ref={(component) => {\n this.inputComponent = component;\n }}\n size=\"small\"\n autoFocus\n decimalSeparator={this.props.decimalSeparator}\n precision={this.props.precision}\n min={this.props.min}\n max={this.props.max}\n placeholder={this.state.value === null ? \"NULL\" : \"\"}\n value={this.state.value !== undefined && this.state.value !== null ? this.state.value : undefined}\n onChange={(value: number | string | undefined) => {\n if (KeyboardUtils.isKeyPressed(Key.Alt)) {\n // ignore navigational keystrokes ALT+cursor arrow\n return;\n }\n if (typeof value === \"number\") {\n this.setState({value: value});\n } else if (value === undefined || value === \"\") {\n this.setState({value: null});\n }\n }}\n onKeyDown={(e) => {\n if (CellEditorUtils.shouldIgnoreKeyEvent(e)) {\n // this.props.onKeyDown(e.nativeEvent);\n e.preventDefault();\n e.nativeEvent.stopImmediatePropagation();\n e.nativeEvent.preventDefault();\n }\n }}\n style={{width: '100%'}}\n />\n );\n }\n}"]}
1
+ {"version":3,"file":"numberCellEditor.js","sourceRoot":"","sources":["../../../../../components/grid/cell/numberCellEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {InputNumber} from \"antd\";\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\nimport {Key} from \"ts-key-enum\";\nimport KeyboardUtils from \"d2coreui/components/keyboard/keyboardUtils\";\nimport {CellEditorUtils} from \"./cellEditorUtils\";\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_F2 = 113;\n\ninterface NumberCellEditorProperties extends ICellEditorParams {\n decimalSeparator?: string\n precision?: number\n min?: number\n max?: number\n}\n\ninterface NumericCellEditorState {\n value: number | null\n highlightAllOnFocus: boolean\n cancelEdit: boolean\n}\n\nexport default class NumberCellEditor extends React.Component<NumberCellEditorProperties, NumericCellEditorState> implements ICellEditor {\n private inputComponent: HTMLInputElement | null = null;\n private focusOpId: number | null = null;\n\n constructor(props: Readonly<NumberCellEditorProperties>) {\n super(props);\n this.state = this.getInitialState(props);\n }\n\n getInitialState(props: Readonly<NumberCellEditorProperties>): NumericCellEditorState {\n let value: number | null;\n let highlightAllOnFocus = true;\n\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n value = null;\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n const parsedValue = Number.parseInt(props.charPress);\n value = isNaN(parsedValue) ? props.value : parsedValue;\n highlightAllOnFocus = false;\n } else {\n // otherwise we start with the current value\n value = props.value;\n if (props.keyPress === KEY_F2) {\n highlightAllOnFocus = false;\n }\n }\n return {\n value: value,\n highlightAllOnFocus,\n cancelEdit: false\n } as NumericCellEditorState;\n }\n\n componentWillUnmount() {\n if (this.focusOpId) {\n clearTimeout(this.focusOpId);\n }\n }\n\n afterGuiAttached() {\n this.focusOpId = window.setTimeout(() => {\n this.inputComponent?.focus();\n if (this.state.highlightAllOnFocus) {\n this.inputComponent?.select();\n this.setState({\n highlightAllOnFocus: false,\n });\n } else {\n // when we started editing, we want the carot at the end, not the start.\n // this comes into play in two scenarios: a) when user hits F2 and b)\n // when user hits a printable character, then on IE (and only IE) the carot\n // was placed after the first character, thus 'apply' would end up as 'pplea'\n const length = this.inputComponent?.value ? this.inputComponent?.value.length : 0;\n if (length > 0) {\n this.inputComponent?.setSelectionRange(length, length);\n }\n }\n }, 200);\n }\n\n getValue() {\n return this.state.value;\n }\n\n isPopup(): boolean {\n return true;\n }\n\n isCancelBeforeStart(): boolean {\n return !!this.props.charPress && '1234567890'.indexOf(this.props.charPress) < 0;\n }\n\n isCancelAfterEnd() {\n return false;\n }\n\n render() {\n return (\n <InputNumber\n ref={(component) => {\n this.inputComponent = component;\n }}\n size=\"small\"\n autoFocus\n decimalSeparator={this.props.decimalSeparator}\n precision={this.props.precision}\n min={this.props.min}\n max={this.props.max}\n placeholder={this.state.value === null ? \"NULL\" : \"\"}\n value={this.state.value !== null ? this.state.value : undefined}\n onChange={value => {\n if (KeyboardUtils.isKeyPressed(Key.Alt)) {\n // ignore navigational keystrokes ALT+cursor arrow\n return;\n }\n if (typeof value === \"number\") {\n this.setState({value: value});\n } else if (value === null || value === \"\") {\n this.setState({value: null});\n }\n }}\n onKeyDown={(e) => {\n if (CellEditorUtils.shouldIgnoreKeyEvent(e)) {\n // this.props.onKeyDown(e.nativeEvent);\n e.preventDefault();\n e.nativeEvent.stopImmediatePropagation();\n e.nativeEvent.preventDefault();\n }\n }}\n style={{width: '100%'}}\n />\n );\n }\n}"]}
@@ -39,6 +39,10 @@ export declare class ModalDialog extends React.Component<ModalDialogProps, {}> {
39
39
  destroy: () => void;
40
40
  update: (newConfig: ModalFuncProps) => void;
41
41
  };
42
+ static info(props: ModalDialogFuncProps): {
43
+ destroy: () => void;
44
+ update: (newConfig: ModalFuncProps) => void;
45
+ };
42
46
  render(): JSX.Element;
43
47
  private static getModalProperties;
44
48
  private static getModalFuncProperties;
@@ -60,6 +60,14 @@ export class ModalDialog extends React.Component {
60
60
  dialogHandler = Modal.success(modalDialogProperties);
61
61
  return dialogHandler;
62
62
  }
63
+ static info(props) {
64
+ let dialogHandler;
65
+ const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {
66
+ dialogHandler === null || dialogHandler === void 0 ? void 0 : dialogHandler.destroy();
67
+ });
68
+ dialogHandler = Modal.info(modalDialogProperties);
69
+ return dialogHandler;
70
+ }
63
71
  render() {
64
72
  const modalDialogProperties = ModalDialog.getModalProperties(this.props);
65
73
  return (React.createElement(DraggableModal, Object.assign({}, modalDialogProperties), this.props.children));
@@ -1 +1 @@
1
- {"version":3,"file":"modalDialog.js","sourceRoot":"","sources":["../../../../components/modal/modalDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {Button, Modal} from \"antd\";\nimport {ModalFuncProps, ModalProps} from \"antd/es/Modal\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {DraggableModal} from \"d2coreui/components/modal/impl\";\n\nexport const enum ModalDialogMode {\n NO_BUTTONS = \"NO_BUTTONS\",\n OK_CANCEL = \"OK_CANCEL\",\n YES_NO = \"YES_NO\",\n YES_NO_CANCEL = \"YES_NO_CANCEL\",\n OK = \"OK\",\n}\n\nexport interface ModalDialogFuncProps extends ModalFuncProps {\n mode: ModalDialogMode\n denyText?: string\n onDeny?: (...args: any[]) => any;\n}\n\nexport interface ModalDialogProps extends Omit<ModalProps, \"width\"> {\n mode: ModalDialogMode\n initialWidth?: number,\n initialHeight?: number\n\n // resize dialog handler\n onResize?(size: { width: number, height: number }): void\n}\n\nexport class ModalDialog extends React.Component<ModalDialogProps, {}> {\n constructor(props: Readonly<ModalDialogProps>) {\n super(props);\n }\n\n public static confirm(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n dialogHandler = Modal.confirm(modalDialogProperties);\n return dialogHandler;\n }\n\n public static error(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n dialogHandler = Modal.error(modalDialogProperties);\n return dialogHandler;\n }\n\n public static delete(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n if (props.okButtonProps) {\n props.okButtonProps.danger = true;\n }\n dialogHandler = Modal.confirm(modalDialogProperties);\n return dialogHandler;\n }\n\n public static success(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n dialogHandler = Modal.success(modalDialogProperties);\n return dialogHandler;\n }\n\n render() {\n const modalDialogProperties = ModalDialog.getModalProperties(this.props);\n return (\n <DraggableModal {...modalDialogProperties}>\n {this.props.children}\n </DraggableModal>);\n }\n\n private static getModalProperties(props: ModalDialogProps) {\n const {mode, ...rest} = props;\n if (mode === ModalDialogMode.NO_BUTTONS) {\n if (rest.footer === undefined) {\n rest.footer = null;\n }\n } else {\n switch (mode) {\n case ModalDialogMode.OK_CANCEL:\n rest.okText = props.okText ?? i18n(\"OK\");\n rest.cancelText = props.cancelText ?? i18n(\"Cancel\");\n break;\n case ModalDialogMode.YES_NO:\n rest.okText = props.okText ?? i18n(\"Yes\");\n rest.cancelText = props.cancelText ?? i18n(\"No\");\n break;\n case ModalDialogMode.OK:\n rest.okText = props.okText ?? i18n(\"OK\");\n rest.cancelButtonProps = undefined;\n break;\n }\n\n rest.okButtonProps = Object.assign(rest.okButtonProps !== undefined ? rest.okButtonProps : {}, {style: {marginRight: 8}});\n rest.cancelButtonProps = Object.assign(rest.cancelButtonProps !== undefined ? rest.cancelButtonProps : {}, {style: {float: \"right\"}});\n }\n return rest;\n }\n\n private static getModalFuncProperties(props: ModalDialogFuncProps, performClose: () => void) {\n const {mode, denyText, onDeny, ...rest} = props;\n switch (mode) {\n case ModalDialogMode.OK_CANCEL:\n rest.okText = rest.okText ?? i18n(\"OK\");\n rest.cancelText = rest.cancelText ?? i18n(\"Cancel\");\n break;\n case ModalDialogMode.YES_NO:\n rest.okText = rest.okText ?? i18n(\"Yes\");\n rest.cancelText = rest.cancelText ?? i18n(\"No\");\n break;\n case ModalDialogMode.YES_NO_CANCEL:\n rest.okText = rest.okText ?? i18n(\"Yes\");\n rest.cancelText = (<React.Fragment>\n <Button onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n onDeny?.(e);\n performClose();\n }}>{denyText ?? i18n(\"No\")}</Button>\n <Button>{rest.cancelText ?? i18n(\"Cancel\")}</Button>\n </React.Fragment>\n );\n if (!rest.cancelButtonProps) {\n rest.cancelButtonProps = {};\n }\n rest.cancelButtonProps.type = \"text\";\n break;\n case ModalDialogMode.OK:\n rest.okText = props.okText ?? i18n(\"OK\");\n rest.cancelButtonProps = {style: {display: \"none\"}};\n }\n if (rest.autoFocusButton === undefined) {\n rest.autoFocusButton = \"ok\";\n }\n\n rest.okButtonProps = Object.assign(rest.okButtonProps !== undefined ? rest.okButtonProps : {}, {style: {marginRight: 8}});\n\n if (mode !== ModalDialogMode.OK) {\n rest.cancelButtonProps = Object.assign(rest.cancelButtonProps !== undefined ? rest.cancelButtonProps : {}, {style: {float: \"right\"}});\n }\n\n if (mode === ModalDialogMode.YES_NO_CANCEL) {\n if (rest.cancelButtonProps && rest.cancelButtonProps.style) {\n rest.cancelButtonProps.style.padding = 0;\n rest.cancelButtonProps.style.marginTop = -1;\n rest.cancelButtonProps.style.cursor = \"default\";\n rest.cancelButtonProps.style.background = \"transparent\";\n }\n }\n return rest;\n }\n}"]}
1
+ {"version":3,"file":"modalDialog.js","sourceRoot":"","sources":["../../../../components/modal/modalDialog.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,MAAM,CAAC;AAEnC,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAE9D,MAAM,CAAN,IAAkB,eAMjB;AAND,WAAkB,eAAe;IAC7B,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,oCAAiB,CAAA;IACjB,kDAA+B,CAAA;IAC/B,4BAAS,CAAA;AACb,CAAC,EANiB,eAAe,KAAf,eAAe,QAMhC;AAiBD,MAAM,OAAO,WAAY,SAAQ,KAAK,CAAC,SAA+B;IAClE,YAAY,KAAiC;QACzC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,KAA2B;QAC7C,IAAI,aAAmF,CAAC;QACxF,MAAM,qBAAqB,GAAG,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE;YACzE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACrD,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,KAA2B;QAC3C,IAAI,aAAmF,CAAC;QACxF,MAAM,qBAAqB,GAAG,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE;YACzE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACnD,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAA2B;QAC5C,IAAI,aAAmF,CAAC;QACxF,MAAM,qBAAqB,GAAG,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE;YACzE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,aAAa,EAAE;YACrB,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;SACrC;QACD,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACrD,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,KAA2B;QAC7C,IAAI,aAAmF,CAAC;QACxF,MAAM,qBAAqB,GAAG,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE;YACzE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACrD,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,KAA2B;QAC1C,IAAI,aAAmF,CAAC;QACxF,MAAM,qBAAqB,GAAG,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE;YACzE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClD,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM;QACF,MAAM,qBAAqB,GAAG,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,CACH,oBAAC,cAAc,oBAAM,qBAAqB,GACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CACP,CAAC,CAAC;IAC3B,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,KAAuB;;QACrD,MAAM,EAAC,IAAI,KAAa,KAAK,EAAb,IAAI,UAAI,KAAK,EAAvB,QAAe,CAAQ,CAAC;QAC9B,IAAI,IAAI,iBAA+B,EAAE;YACrC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACtB;SACJ;aAAM;YACH,QAAQ,IAAI,EAAE;gBACV;oBACI,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzC,IAAI,CAAC,UAAU,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACrD,MAAM;gBACV;oBACI,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,CAAC,UAAU,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjD,MAAM;gBACV;oBACI,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;oBACnC,MAAM;aACb;YAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,EAAC,WAAW,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC;YAC1H,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC,EAAC,CAAC,CAAC;SACzI;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,KAA2B,EAAE,YAAwB;;QACvF,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAa,KAAK,EAAb,IAAI,UAAI,KAAK,EAAzC,8BAAiC,CAAQ,CAAC;QAChD,QAAQ,IAAI,EAAE;YACV;gBACI,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,MAAM;YACV;gBACI,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM;YACV;gBACI,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,UAAU,GAAG,CAAC,oBAAC,KAAK,CAAC,QAAQ;oBAC1B,oBAAC,MAAM,IAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACnB,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,CAAC,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;4BACzC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,CAAC;4BACZ,YAAY,EAAE,CAAC;wBACnB,CAAC,IAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,CAAU;oBACpC,oBAAC,MAAM,QAAE,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,QAAQ,CAAC,CAAU,CACvC,CACpB,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;iBAC/B;gBACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,MAAM,CAAC;gBACrC,MAAM;YACV;gBACI,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,iBAAiB,GAAG,EAAC,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,EAAC,CAAC;SAC3D;QACD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B;QAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,EAAC,WAAW,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC;QAE1H,IAAI,IAAI,SAAuB,EAAE;YAC7B,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC,EAAC,CAAC,CAAC;SACzI;QAED,IAAI,IAAI,oBAAkC,EAAE;YACxC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;gBACxD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBAChD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;aAC3D;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ","sourcesContent":["import React from \"react\";\nimport {Button, Modal} from \"antd\";\nimport {ModalFuncProps, ModalProps} from \"antd/es/Modal\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {DraggableModal} from \"d2coreui/components/modal/impl\";\n\nexport const enum ModalDialogMode {\n NO_BUTTONS = \"NO_BUTTONS\",\n OK_CANCEL = \"OK_CANCEL\",\n YES_NO = \"YES_NO\",\n YES_NO_CANCEL = \"YES_NO_CANCEL\",\n OK = \"OK\",\n}\n\nexport interface ModalDialogFuncProps extends ModalFuncProps {\n mode: ModalDialogMode\n denyText?: string\n onDeny?: (...args: any[]) => any;\n}\n\nexport interface ModalDialogProps extends Omit<ModalProps, \"width\"> {\n mode: ModalDialogMode\n initialWidth?: number,\n initialHeight?: number\n\n // resize dialog handler\n onResize?(size: { width: number, height: number }): void\n}\n\nexport class ModalDialog extends React.Component<ModalDialogProps, {}> {\n constructor(props: Readonly<ModalDialogProps>) {\n super(props);\n }\n\n public static confirm(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n dialogHandler = Modal.confirm(modalDialogProperties);\n return dialogHandler;\n }\n\n public static error(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n dialogHandler = Modal.error(modalDialogProperties);\n return dialogHandler;\n }\n\n public static delete(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n if (props.okButtonProps) {\n props.okButtonProps.danger = true;\n }\n dialogHandler = Modal.confirm(modalDialogProperties);\n return dialogHandler;\n }\n\n public static success(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n dialogHandler = Modal.success(modalDialogProperties);\n return dialogHandler;\n }\n\n public static info(props: ModalDialogFuncProps): { destroy: () => void; update: (newConfig: ModalFuncProps) => void } {\n let dialogHandler: { destroy: () => void; update: (newConfig: ModalFuncProps) => void };\n const modalDialogProperties = ModalDialog.getModalFuncProperties(props, () => {\n dialogHandler?.destroy();\n });\n dialogHandler = Modal.info(modalDialogProperties);\n return dialogHandler;\n }\n\n render() {\n const modalDialogProperties = ModalDialog.getModalProperties(this.props);\n return (\n <DraggableModal {...modalDialogProperties}>\n {this.props.children}\n </DraggableModal>);\n }\n\n private static getModalProperties(props: ModalDialogProps) {\n const {mode, ...rest} = props;\n if (mode === ModalDialogMode.NO_BUTTONS) {\n if (rest.footer === undefined) {\n rest.footer = null;\n }\n } else {\n switch (mode) {\n case ModalDialogMode.OK_CANCEL:\n rest.okText = props.okText ?? i18n(\"OK\");\n rest.cancelText = props.cancelText ?? i18n(\"Cancel\");\n break;\n case ModalDialogMode.YES_NO:\n rest.okText = props.okText ?? i18n(\"Yes\");\n rest.cancelText = props.cancelText ?? i18n(\"No\");\n break;\n case ModalDialogMode.OK:\n rest.okText = props.okText ?? i18n(\"OK\");\n rest.cancelButtonProps = undefined;\n break;\n }\n\n rest.okButtonProps = Object.assign(rest.okButtonProps !== undefined ? rest.okButtonProps : {}, {style: {marginRight: 8}});\n rest.cancelButtonProps = Object.assign(rest.cancelButtonProps !== undefined ? rest.cancelButtonProps : {}, {style: {float: \"right\"}});\n }\n return rest;\n }\n\n private static getModalFuncProperties(props: ModalDialogFuncProps, performClose: () => void) {\n const {mode, denyText, onDeny, ...rest} = props;\n switch (mode) {\n case ModalDialogMode.OK_CANCEL:\n rest.okText = rest.okText ?? i18n(\"OK\");\n rest.cancelText = rest.cancelText ?? i18n(\"Cancel\");\n break;\n case ModalDialogMode.YES_NO:\n rest.okText = rest.okText ?? i18n(\"Yes\");\n rest.cancelText = rest.cancelText ?? i18n(\"No\");\n break;\n case ModalDialogMode.YES_NO_CANCEL:\n rest.okText = rest.okText ?? i18n(\"Yes\");\n rest.cancelText = (<React.Fragment>\n <Button onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n onDeny?.(e);\n performClose();\n }}>{denyText ?? i18n(\"No\")}</Button>\n <Button>{rest.cancelText ?? i18n(\"Cancel\")}</Button>\n </React.Fragment>\n );\n if (!rest.cancelButtonProps) {\n rest.cancelButtonProps = {};\n }\n rest.cancelButtonProps.type = \"text\";\n break;\n case ModalDialogMode.OK:\n rest.okText = props.okText ?? i18n(\"OK\");\n rest.cancelButtonProps = {style: {display: \"none\"}};\n }\n if (rest.autoFocusButton === undefined) {\n rest.autoFocusButton = \"ok\";\n }\n\n rest.okButtonProps = Object.assign(rest.okButtonProps !== undefined ? rest.okButtonProps : {}, {style: {marginRight: 8}});\n\n if (mode !== ModalDialogMode.OK) {\n rest.cancelButtonProps = Object.assign(rest.cancelButtonProps !== undefined ? rest.cancelButtonProps : {}, {style: {float: \"right\"}});\n }\n\n if (mode === ModalDialogMode.YES_NO_CANCEL) {\n if (rest.cancelButtonProps && rest.cancelButtonProps.style) {\n rest.cancelButtonProps.style.padding = 0;\n rest.cancelButtonProps.style.marginTop = -1;\n rest.cancelButtonProps.style.cursor = \"default\";\n rest.cancelButtonProps.style.background = \"transparent\";\n }\n }\n return rest;\n }\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d2coreui",
3
- "version": "21.0.18",
3
+ "version": "21.0.20",
4
4
  "description": "Core UI components and utilities library.",
5
5
  "author": "Ipesoft s.r.o.",
6
6
  "license": "MIT",