@ceed/cds 1.5.4-next.2 → 1.5.4-next.4

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,6 +1,8 @@
1
1
  export declare const getCalendarDates: (date: Date) => (number | undefined)[][];
2
2
  export declare const getYearName: (date: Date, locale: string) => string;
3
- export declare const getMonthName: (date: Date, locale: string) => string;
3
+ export declare const getMonthName: (date: Date, locale: string, options?: {
4
+ hideYear?: boolean;
5
+ }) => string;
4
6
  export declare const getMonthNameFromIndex: (index: number, locale: string) => string;
5
7
  /**
6
8
  * 일~토 / Sun ~ Sat 같은 요일 이름을 가져옵니다.
@@ -21,6 +21,7 @@ interface BaseMonthPickerProps {
21
21
  disablePast?: boolean;
22
22
  format?: string;
23
23
  displayFormat?: string;
24
+ locale?: string;
24
25
  }
25
26
  export type MonthPickerProps = BaseMonthPickerProps & Omit<React.ComponentProps<typeof Input>, "onChange" | "value" | "defaultValue">;
26
27
  declare const MonthPicker: React.ForwardRefExoticComponent<Omit<MonthPickerProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
package/dist/index.cjs CHANGED
@@ -851,8 +851,11 @@ var getCalendarDates = (date) => {
851
851
  var getYearName = (date, locale) => {
852
852
  return date.toLocaleString(locale, { year: "numeric" });
853
853
  };
854
- var getMonthName = (date, locale) => {
855
- return date.toLocaleString(locale, { year: "numeric", month: "long" });
854
+ var getMonthName = (date, locale, options) => {
855
+ return date.toLocaleString(locale, {
856
+ month: "long",
857
+ ...options?.hideYear ? {} : { year: "numeric" }
858
+ });
856
859
  };
857
860
  var getMonthNameFromIndex = (index, locale) => {
858
861
  return new Date(0, index).toLocaleString(locale, { month: "short" });
@@ -4563,13 +4566,10 @@ var MonthPickerRoot = (0, import_joy46.styled)("div", {
4563
4566
  })({
4564
4567
  width: "100%"
4565
4568
  });
4566
- function getMonthName2(date) {
4567
- return new Intl.DateTimeFormat("en-US", { month: "long" }).format(date);
4568
- }
4569
- var formatValueString3 = (date, format) => {
4569
+ var formatValueString3 = (date, format, locale = "default") => {
4570
4570
  const year = date.getFullYear().toString();
4571
4571
  const month = (date.getMonth() + 1).toString().padStart(2, "0");
4572
- const monthName = getMonthName2(date);
4572
+ const monthName = getMonthName(date, locale, { hideYear: true });
4573
4573
  const day = "01";
4574
4574
  return format.replace(/MMMM/g, monthName).replace(/MM/g, month).replace(/DD/g, day).replace(/YYYY/g, year);
4575
4575
  };
@@ -4612,9 +4612,16 @@ var MonthPicker = (0, import_react33.forwardRef)(
4612
4612
  // NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
4613
4613
  sx,
4614
4614
  className,
4615
+ /**
4616
+ * NOTE: 현재 CalendarDate는 YYYY-MM-DD로 개발하고 있어 date를 포함하여 value를 관리한다.
4617
+ * @see https://ecubelabs.atlassian.net/wiki/spaces/SW/pages/1938784349/Date#CalendarDate
4618
+ * @see https://github.com/Ecube-Labs/hds/pull/145
4619
+ *
4620
+ */
4615
4621
  format = "YYYY/MM/DD",
4616
4622
  displayFormat = "YYYY/MM",
4617
4623
  size,
4624
+ locale,
4618
4625
  ...innerProps
4619
4626
  } = props;
4620
4627
  const innerRef = (0, import_react33.useRef)(null);
@@ -4629,7 +4636,7 @@ var MonthPicker = (0, import_react33.forwardRef)(
4629
4636
  { disableStrict: true }
4630
4637
  );
4631
4638
  const [displayValue, setDisplayValue] = (0, import_react33.useState)(
4632
- () => value ? formatValueString3(parseDate3(value, format), displayFormat) : ""
4639
+ () => value ? formatValueString3(parseDate3(value, format), displayFormat, locale) : ""
4633
4640
  );
4634
4641
  const [anchorEl, setAnchorEl] = (0, import_react33.useState)(null);
4635
4642
  const open = Boolean(anchorEl);
@@ -4648,7 +4655,8 @@ var MonthPicker = (0, import_react33.forwardRef)(
4648
4655
  }
4649
4656
  const formattedValue = formatValueString3(
4650
4657
  parseDate3(value, format),
4651
- displayFormat
4658
+ displayFormat,
4659
+ locale
4652
4660
  );
4653
4661
  setDisplayValue(formattedValue);
4654
4662
  }, [displayFormat, format, value]);
@@ -4656,11 +4664,11 @@ var MonthPicker = (0, import_react33.forwardRef)(
4656
4664
  (event) => {
4657
4665
  const value2 = event.target.value;
4658
4666
  setDisplayValue(
4659
- value2 ? formatValueString3(parseDate3(value2, format), displayFormat) : value2
4667
+ value2 ? formatValueString3(parseDate3(value2, format), displayFormat, locale) : value2
4660
4668
  );
4661
4669
  setValue(value2);
4662
4670
  },
4663
- [displayFormat, format, setValue]
4671
+ [displayFormat, format, setValue, locale]
4664
4672
  );
4665
4673
  const handleCalendarToggle = (0, import_react33.useCallback)(
4666
4674
  (event) => {
@@ -4709,6 +4717,7 @@ var MonthPicker = (0, import_react33.forwardRef)(
4709
4717
  endDecorator: /* @__PURE__ */ import_react33.default.createElement(
4710
4718
  IconButton_default,
4711
4719
  {
4720
+ ref: buttonRef,
4712
4721
  variant: "plain",
4713
4722
  onClick: handleCalendarToggle,
4714
4723
  "aria-label": "Toggle Calendar",
@@ -4751,7 +4760,7 @@ var MonthPicker = (0, import_react33.forwardRef)(
4751
4760
  handleChange({
4752
4761
  target: {
4753
4762
  name: props.name,
4754
- value: formatValueString3(date, format)
4763
+ value: formatValueString3(date, format, locale)
4755
4764
  }
4756
4765
  });
4757
4766
  setAnchorEl(null);
@@ -4759,7 +4768,8 @@ var MonthPicker = (0, import_react33.forwardRef)(
4759
4768
  minDate: minDate ? new Date(minDate) : void 0,
4760
4769
  maxDate: maxDate ? new Date(maxDate) : void 0,
4761
4770
  disableFuture,
4762
- disablePast
4771
+ disablePast,
4772
+ locale
4763
4773
  }
4764
4774
  ), /* @__PURE__ */ import_react33.default.createElement(
4765
4775
  DialogActions_default,
package/dist/index.js CHANGED
@@ -782,8 +782,11 @@ var getCalendarDates = (date) => {
782
782
  var getYearName = (date, locale) => {
783
783
  return date.toLocaleString(locale, { year: "numeric" });
784
784
  };
785
- var getMonthName = (date, locale) => {
786
- return date.toLocaleString(locale, { year: "numeric", month: "long" });
785
+ var getMonthName = (date, locale, options) => {
786
+ return date.toLocaleString(locale, {
787
+ month: "long",
788
+ ...options?.hideYear ? {} : { year: "numeric" }
789
+ });
787
790
  };
788
791
  var getMonthNameFromIndex = (index, locale) => {
789
792
  return new Date(0, index).toLocaleString(locale, { month: "short" });
@@ -4559,13 +4562,10 @@ var MonthPickerRoot = styled20("div", {
4559
4562
  })({
4560
4563
  width: "100%"
4561
4564
  });
4562
- function getMonthName2(date) {
4563
- return new Intl.DateTimeFormat("en-US", { month: "long" }).format(date);
4564
- }
4565
- var formatValueString3 = (date, format) => {
4565
+ var formatValueString3 = (date, format, locale = "default") => {
4566
4566
  const year = date.getFullYear().toString();
4567
4567
  const month = (date.getMonth() + 1).toString().padStart(2, "0");
4568
- const monthName = getMonthName2(date);
4568
+ const monthName = getMonthName(date, locale, { hideYear: true });
4569
4569
  const day = "01";
4570
4570
  return format.replace(/MMMM/g, monthName).replace(/MM/g, month).replace(/DD/g, day).replace(/YYYY/g, year);
4571
4571
  };
@@ -4608,9 +4608,16 @@ var MonthPicker = forwardRef9(
4608
4608
  // NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
4609
4609
  sx,
4610
4610
  className,
4611
+ /**
4612
+ * NOTE: 현재 CalendarDate는 YYYY-MM-DD로 개발하고 있어 date를 포함하여 value를 관리한다.
4613
+ * @see https://ecubelabs.atlassian.net/wiki/spaces/SW/pages/1938784349/Date#CalendarDate
4614
+ * @see https://github.com/Ecube-Labs/hds/pull/145
4615
+ *
4616
+ */
4611
4617
  format = "YYYY/MM/DD",
4612
4618
  displayFormat = "YYYY/MM",
4613
4619
  size,
4620
+ locale,
4614
4621
  ...innerProps
4615
4622
  } = props;
4616
4623
  const innerRef = useRef6(null);
@@ -4625,7 +4632,7 @@ var MonthPicker = forwardRef9(
4625
4632
  { disableStrict: true }
4626
4633
  );
4627
4634
  const [displayValue, setDisplayValue] = useState9(
4628
- () => value ? formatValueString3(parseDate3(value, format), displayFormat) : ""
4635
+ () => value ? formatValueString3(parseDate3(value, format), displayFormat, locale) : ""
4629
4636
  );
4630
4637
  const [anchorEl, setAnchorEl] = useState9(null);
4631
4638
  const open = Boolean(anchorEl);
@@ -4644,7 +4651,8 @@ var MonthPicker = forwardRef9(
4644
4651
  }
4645
4652
  const formattedValue = formatValueString3(
4646
4653
  parseDate3(value, format),
4647
- displayFormat
4654
+ displayFormat,
4655
+ locale
4648
4656
  );
4649
4657
  setDisplayValue(formattedValue);
4650
4658
  }, [displayFormat, format, value]);
@@ -4652,11 +4660,11 @@ var MonthPicker = forwardRef9(
4652
4660
  (event) => {
4653
4661
  const value2 = event.target.value;
4654
4662
  setDisplayValue(
4655
- value2 ? formatValueString3(parseDate3(value2, format), displayFormat) : value2
4663
+ value2 ? formatValueString3(parseDate3(value2, format), displayFormat, locale) : value2
4656
4664
  );
4657
4665
  setValue(value2);
4658
4666
  },
4659
- [displayFormat, format, setValue]
4667
+ [displayFormat, format, setValue, locale]
4660
4668
  );
4661
4669
  const handleCalendarToggle = useCallback11(
4662
4670
  (event) => {
@@ -4705,6 +4713,7 @@ var MonthPicker = forwardRef9(
4705
4713
  endDecorator: /* @__PURE__ */ React31.createElement(
4706
4714
  IconButton_default,
4707
4715
  {
4716
+ ref: buttonRef,
4708
4717
  variant: "plain",
4709
4718
  onClick: handleCalendarToggle,
4710
4719
  "aria-label": "Toggle Calendar",
@@ -4747,7 +4756,7 @@ var MonthPicker = forwardRef9(
4747
4756
  handleChange({
4748
4757
  target: {
4749
4758
  name: props.name,
4750
- value: formatValueString3(date, format)
4759
+ value: formatValueString3(date, format, locale)
4751
4760
  }
4752
4761
  });
4753
4762
  setAnchorEl(null);
@@ -4755,7 +4764,8 @@ var MonthPicker = forwardRef9(
4755
4764
  minDate: minDate ? new Date(minDate) : void 0,
4756
4765
  maxDate: maxDate ? new Date(maxDate) : void 0,
4757
4766
  disableFuture,
4758
- disablePast
4767
+ disablePast,
4768
+ locale
4759
4769
  }
4760
4770
  ), /* @__PURE__ */ React31.createElement(
4761
4771
  DialogActions_default,