@ceed/cds 1.8.0-next.8 → 1.8.0

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.
@@ -1,9 +1,6 @@
1
1
  import React from "react";
2
2
  import Input from "../Input";
3
3
  interface BaseDateRangePickerProps {
4
- /**
5
- * props.format 의 형식을 따라야 한다.
6
- */
7
4
  value?: string;
8
5
  defaultValue?: string;
9
6
  onChange?: (event: {
@@ -22,14 +19,7 @@ interface BaseDateRangePickerProps {
22
19
  maxDate?: string;
23
20
  disableFuture?: boolean;
24
21
  disablePast?: boolean;
25
- /**
26
- * value, onChange의 값은 해당 포맷을 따른다.
27
- */
28
22
  format?: string;
29
- /**
30
- * Input 에 표시되는 값의 포맷을 지정한다.
31
- */
32
- displayFormat?: string;
33
23
  inputReadOnly?: boolean;
34
24
  hideClearButton?: boolean;
35
25
  }
package/dist/index.cjs CHANGED
@@ -4112,9 +4112,7 @@ var CalendarButton2 = (0, import_joy34.styled)(IconButton_default, {
4112
4112
  "&:focus": {
4113
4113
  "--Icon-color": "currentColor",
4114
4114
  outlineOffset: `${theme.getCssVar("focus-thickness")}`,
4115
- outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar(
4116
- "palette-focusVisible"
4117
- )}`
4115
+ outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar("palette-focusVisible")}`
4118
4116
  }
4119
4117
  }));
4120
4118
  var StyledPopper2 = (0, import_joy34.styled)(import_base3.Popper, {
@@ -4140,32 +4138,6 @@ var DateRangePickerRoot = (0, import_joy34.styled)("div", {
4140
4138
  })({
4141
4139
  width: "100%"
4142
4140
  });
4143
- var validValueFormat2 = (value, format) => {
4144
- try {
4145
- const [date1Str, date2Str] = value.split(" - ");
4146
- if (!date1Str || !date2Str) {
4147
- return false;
4148
- }
4149
- const parsedDate1 = parseDate2(date1Str, format);
4150
- const parsedDate2 = parseDate2(date2Str, format);
4151
- if (parsedDate1.toString() === "Invalid Date" || parsedDate2.toString() === "Invalid Date") {
4152
- return false;
4153
- }
4154
- const formattedValue = formatValueString2(
4155
- [parsedDate1, parsedDate2],
4156
- format
4157
- );
4158
- if (value !== formattedValue) {
4159
- return false;
4160
- }
4161
- const regex = new RegExp(
4162
- `^${format.replace(/Y/g, "\\d").replace(/M/g, "\\d").replace(/D/g, "\\d")} - ${format.replace(/Y/g, "\\d").replace(/M/g, "\\d").replace(/D/g, "\\d")}$`
4163
- );
4164
- return regex.test(value);
4165
- } catch (e) {
4166
- return false;
4167
- }
4168
- };
4169
4141
  var formatValueString2 = ([date1, date2], format) => {
4170
4142
  const getStr = (date) => {
4171
4143
  let day = `${date.getDate()}`;
@@ -4262,7 +4234,6 @@ var DateRangePicker = (0, import_react26.forwardRef)(
4262
4234
  sx,
4263
4235
  className,
4264
4236
  format = "YYYY/MM/DD",
4265
- displayFormat = "YYYY/MM/DD",
4266
4237
  size,
4267
4238
  inputReadOnly,
4268
4239
  hideClearButton,
@@ -4279,27 +4250,12 @@ var DateRangePicker = (0, import_react26.forwardRef)(
4279
4250
  [props.name, onChange]
4280
4251
  )
4281
4252
  );
4282
- const [displayValue, setDisplayValue] = (0, import_react26.useState)(
4283
- () => value ? formatValueString2(parseDates(value, format), displayFormat) : ""
4284
- );
4285
4253
  const [anchorEl, setAnchorEl] = (0, import_react26.useState)(null);
4286
4254
  const open = Boolean(anchorEl);
4287
4255
  const calendarValue = (0, import_react26.useMemo)(
4288
4256
  () => value ? parseDates(value, format) : void 0,
4289
4257
  [value, format]
4290
4258
  );
4291
- (0, import_react26.useEffect)(() => {
4292
- if (value) {
4293
- try {
4294
- const dates = parseDates(value, format);
4295
- const newDisplayValue = formatValueString2(dates, displayFormat);
4296
- setDisplayValue(newDisplayValue);
4297
- } catch (error2) {
4298
- }
4299
- } else {
4300
- setDisplayValue("");
4301
- }
4302
- }, [displayFormat, value, format]);
4303
4259
  (0, import_react26.useEffect)(() => {
4304
4260
  if (!anchorEl) {
4305
4261
  innerRef.current?.blur();
@@ -4310,41 +4266,9 @@ var DateRangePicker = (0, import_react26.forwardRef)(
4310
4266
  ]);
4311
4267
  const handleChange = (0, import_react26.useCallback)(
4312
4268
  (event) => {
4313
- const value2 = event.target.value;
4314
- setDisplayValue(
4315
- value2 ? formatValueString2(parseDates(value2, format), displayFormat) : value2
4316
- );
4317
- setValue(value2);
4318
- },
4319
- [displayFormat, format, setValue]
4320
- );
4321
- const handleDisplayInputChange = (0, import_react26.useCallback)(
4322
- (event) => {
4323
- if (event.target.value === "") {
4324
- handleChange({
4325
- target: {
4326
- name: props.name,
4327
- value: ""
4328
- }
4329
- });
4330
- return;
4331
- }
4332
- const isValidDisplayValue = validValueFormat2(
4333
- event.target.value,
4334
- displayFormat
4335
- );
4336
- if (isValidDisplayValue) {
4337
- const dates = parseDates(event.target.value, displayFormat);
4338
- const formattedValue = formatValueString2(dates, format);
4339
- handleChange({
4340
- target: {
4341
- name: props.name,
4342
- value: formattedValue
4343
- }
4344
- });
4345
- }
4269
+ setValue(event.target.value);
4346
4270
  },
4347
- [displayFormat, format, handleChange, props.name]
4271
+ [setValue]
4348
4272
  );
4349
4273
  const handleCalendarToggle = (0, import_react26.useCallback)(
4350
4274
  (event) => {
@@ -4356,26 +4280,10 @@ var DateRangePicker = (0, import_react26.forwardRef)(
4356
4280
  const handleCalendarChange = (0, import_react26.useCallback)(
4357
4281
  ([date1, date2]) => {
4358
4282
  if (!date1 || !date2) return;
4359
- const formattedValue = formatValueString2([date1, date2], format);
4360
- if (props.value !== void 0) {
4361
- onChange?.({ target: { name: props.name, value: formattedValue } });
4362
- } else {
4363
- setDisplayValue(
4364
- formatValueString2([date1, date2], displayFormat)
4365
- );
4366
- setValue(formattedValue);
4367
- }
4283
+ setValue(formatValueString2([date1, date2], format));
4368
4284
  setAnchorEl(null);
4369
4285
  },
4370
- [
4371
- props.value,
4372
- props.name,
4373
- onChange,
4374
- setValue,
4375
- setAnchorEl,
4376
- format,
4377
- displayFormat
4378
- ]
4286
+ [setValue, setAnchorEl, format]
4379
4287
  );
4380
4288
  const handleInputMouseDown = (0, import_react26.useCallback)(
4381
4289
  (event) => {
@@ -4393,21 +4301,17 @@ var DateRangePicker = (0, import_react26.forwardRef)(
4393
4301
  color: error ? "danger" : innerProps.color,
4394
4302
  ref,
4395
4303
  size,
4396
- value: displayValue,
4397
- onChange: handleDisplayInputChange,
4304
+ value,
4305
+ onChange: handleChange,
4398
4306
  disabled,
4399
4307
  required,
4400
- placeholder: `${displayFormat} - ${displayFormat}`,
4308
+ placeholder: `${format} - ${format}`,
4401
4309
  slotProps: {
4402
4310
  input: {
4403
4311
  component: TextMaskAdapter5,
4404
4312
  ref: innerRef,
4405
- format: displayFormat,
4406
- sx: {
4407
- "&:hover": {
4408
- cursor: inputReadOnly || readOnly ? "default" : "text"
4409
- }
4410
- },
4313
+ format,
4314
+ sx: { "&:hover": { cursor: inputReadOnly || readOnly ? "default" : "text" } },
4411
4315
  onMouseDown: handleInputMouseDown
4412
4316
  }
4413
4317
  },
@@ -4477,7 +4381,6 @@ var DateRangePicker = (0, import_react26.forwardRef)(
4477
4381
  color: "neutral",
4478
4382
  onClick: () => {
4479
4383
  setValue("");
4480
- setDisplayValue("");
4481
4384
  setAnchorEl(null);
4482
4385
  }
4483
4386
  },
package/dist/index.js CHANGED
@@ -4088,9 +4088,7 @@ var CalendarButton2 = styled13(IconButton_default, {
4088
4088
  "&:focus": {
4089
4089
  "--Icon-color": "currentColor",
4090
4090
  outlineOffset: `${theme.getCssVar("focus-thickness")}`,
4091
- outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar(
4092
- "palette-focusVisible"
4093
- )}`
4091
+ outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar("palette-focusVisible")}`
4094
4092
  }
4095
4093
  }));
4096
4094
  var StyledPopper2 = styled13(Popper3, {
@@ -4116,32 +4114,6 @@ var DateRangePickerRoot = styled13("div", {
4116
4114
  })({
4117
4115
  width: "100%"
4118
4116
  });
4119
- var validValueFormat2 = (value, format) => {
4120
- try {
4121
- const [date1Str, date2Str] = value.split(" - ");
4122
- if (!date1Str || !date2Str) {
4123
- return false;
4124
- }
4125
- const parsedDate1 = parseDate2(date1Str, format);
4126
- const parsedDate2 = parseDate2(date2Str, format);
4127
- if (parsedDate1.toString() === "Invalid Date" || parsedDate2.toString() === "Invalid Date") {
4128
- return false;
4129
- }
4130
- const formattedValue = formatValueString2(
4131
- [parsedDate1, parsedDate2],
4132
- format
4133
- );
4134
- if (value !== formattedValue) {
4135
- return false;
4136
- }
4137
- const regex = new RegExp(
4138
- `^${format.replace(/Y/g, "\\d").replace(/M/g, "\\d").replace(/D/g, "\\d")} - ${format.replace(/Y/g, "\\d").replace(/M/g, "\\d").replace(/D/g, "\\d")}$`
4139
- );
4140
- return regex.test(value);
4141
- } catch (e) {
4142
- return false;
4143
- }
4144
- };
4145
4117
  var formatValueString2 = ([date1, date2], format) => {
4146
4118
  const getStr = (date) => {
4147
4119
  let day = `${date.getDate()}`;
@@ -4238,7 +4210,6 @@ var DateRangePicker = forwardRef8(
4238
4210
  sx,
4239
4211
  className,
4240
4212
  format = "YYYY/MM/DD",
4241
- displayFormat = "YYYY/MM/DD",
4242
4213
  size,
4243
4214
  inputReadOnly,
4244
4215
  hideClearButton,
@@ -4255,27 +4226,12 @@ var DateRangePicker = forwardRef8(
4255
4226
  [props.name, onChange]
4256
4227
  )
4257
4228
  );
4258
- const [displayValue, setDisplayValue] = useState7(
4259
- () => value ? formatValueString2(parseDates(value, format), displayFormat) : ""
4260
- );
4261
4229
  const [anchorEl, setAnchorEl] = useState7(null);
4262
4230
  const open = Boolean(anchorEl);
4263
4231
  const calendarValue = useMemo9(
4264
4232
  () => value ? parseDates(value, format) : void 0,
4265
4233
  [value, format]
4266
4234
  );
4267
- useEffect6(() => {
4268
- if (value) {
4269
- try {
4270
- const dates = parseDates(value, format);
4271
- const newDisplayValue = formatValueString2(dates, displayFormat);
4272
- setDisplayValue(newDisplayValue);
4273
- } catch (error2) {
4274
- }
4275
- } else {
4276
- setDisplayValue("");
4277
- }
4278
- }, [displayFormat, value, format]);
4279
4235
  useEffect6(() => {
4280
4236
  if (!anchorEl) {
4281
4237
  innerRef.current?.blur();
@@ -4286,41 +4242,9 @@ var DateRangePicker = forwardRef8(
4286
4242
  ]);
4287
4243
  const handleChange = useCallback10(
4288
4244
  (event) => {
4289
- const value2 = event.target.value;
4290
- setDisplayValue(
4291
- value2 ? formatValueString2(parseDates(value2, format), displayFormat) : value2
4292
- );
4293
- setValue(value2);
4294
- },
4295
- [displayFormat, format, setValue]
4296
- );
4297
- const handleDisplayInputChange = useCallback10(
4298
- (event) => {
4299
- if (event.target.value === "") {
4300
- handleChange({
4301
- target: {
4302
- name: props.name,
4303
- value: ""
4304
- }
4305
- });
4306
- return;
4307
- }
4308
- const isValidDisplayValue = validValueFormat2(
4309
- event.target.value,
4310
- displayFormat
4311
- );
4312
- if (isValidDisplayValue) {
4313
- const dates = parseDates(event.target.value, displayFormat);
4314
- const formattedValue = formatValueString2(dates, format);
4315
- handleChange({
4316
- target: {
4317
- name: props.name,
4318
- value: formattedValue
4319
- }
4320
- });
4321
- }
4245
+ setValue(event.target.value);
4322
4246
  },
4323
- [displayFormat, format, handleChange, props.name]
4247
+ [setValue]
4324
4248
  );
4325
4249
  const handleCalendarToggle = useCallback10(
4326
4250
  (event) => {
@@ -4332,26 +4256,10 @@ var DateRangePicker = forwardRef8(
4332
4256
  const handleCalendarChange = useCallback10(
4333
4257
  ([date1, date2]) => {
4334
4258
  if (!date1 || !date2) return;
4335
- const formattedValue = formatValueString2([date1, date2], format);
4336
- if (props.value !== void 0) {
4337
- onChange?.({ target: { name: props.name, value: formattedValue } });
4338
- } else {
4339
- setDisplayValue(
4340
- formatValueString2([date1, date2], displayFormat)
4341
- );
4342
- setValue(formattedValue);
4343
- }
4259
+ setValue(formatValueString2([date1, date2], format));
4344
4260
  setAnchorEl(null);
4345
4261
  },
4346
- [
4347
- props.value,
4348
- props.name,
4349
- onChange,
4350
- setValue,
4351
- setAnchorEl,
4352
- format,
4353
- displayFormat
4354
- ]
4262
+ [setValue, setAnchorEl, format]
4355
4263
  );
4356
4264
  const handleInputMouseDown = useCallback10(
4357
4265
  (event) => {
@@ -4369,21 +4277,17 @@ var DateRangePicker = forwardRef8(
4369
4277
  color: error ? "danger" : innerProps.color,
4370
4278
  ref,
4371
4279
  size,
4372
- value: displayValue,
4373
- onChange: handleDisplayInputChange,
4280
+ value,
4281
+ onChange: handleChange,
4374
4282
  disabled,
4375
4283
  required,
4376
- placeholder: `${displayFormat} - ${displayFormat}`,
4284
+ placeholder: `${format} - ${format}`,
4377
4285
  slotProps: {
4378
4286
  input: {
4379
4287
  component: TextMaskAdapter5,
4380
4288
  ref: innerRef,
4381
- format: displayFormat,
4382
- sx: {
4383
- "&:hover": {
4384
- cursor: inputReadOnly || readOnly ? "default" : "text"
4385
- }
4386
- },
4289
+ format,
4290
+ sx: { "&:hover": { cursor: inputReadOnly || readOnly ? "default" : "text" } },
4387
4291
  onMouseDown: handleInputMouseDown
4388
4292
  }
4389
4293
  },
@@ -4453,7 +4357,6 @@ var DateRangePicker = forwardRef8(
4453
4357
  color: "neutral",
4454
4358
  onClick: () => {
4455
4359
  setValue("");
4456
- setDisplayValue("");
4457
4360
  setAnchorEl(null);
4458
4361
  }
4459
4362
  },